CAN with extframe=True do not receive message with standard ID

The official pyboard running MicroPython.
This is the reference design and main target board for MicroPython.
You can buy one at the store.
Target audience: Users with a pyboard.
Post Reply
jgui
Posts: 4
Joined: Thu Nov 10, 2016 5:06 pm

CAN with extframe=True do not receive message with standard ID

Post by jgui » Sun Nov 20, 2016 10:27 pm

I'm using the pyboard to communicate with a product via CAN bus. This product sends and receives messages both with extended and standard ID.
As the pyboard has to send message with extended ID for the product to operate, I first configure the CAN module:
> with option extframe=True
> and set the filter to LIST32. The first filter ID is for a message with extended ID, and the second for a message with standard ID.
However, I found that the message with standard ID was never received. The message with extended ID is received.

Then I have tested several configurations to understand, using CAN1 to send messages to CAN2, and changing CAN1/CAN2 configuration each test.
The test schematic is available here: http://www.casimages.com/img.php?i=1611 ... 649492.png
The test table + results is available here: http://www.casimages.com/img.php?i=1611 ... 649493.png

So my question is: why a CAN module configured with extframe=True is not able to receive a message with standard ID?
Is it a limitation in the way pyboard module configure the CAN or is it the expected behavior defined in the CAN standard?

I have read the STM32 datasheet and try to understand in detail CAN operation but can't get definitive answer and hope someone could advise.

Thanks!

User avatar
kamikaze
Posts: 154
Joined: Tue Aug 16, 2016 10:10 am
Location: Latvia
Contact:

Re: CAN with extframe=True do not receive message with standard ID

Post by kamikaze » Mon Nov 21, 2016 12:56 am

still not a CAN bus pro, but as I see it - there should be same rules for all nodes.

User avatar
FraggaMuffin
Posts: 9
Joined: Sat Nov 11, 2017 1:10 am
Location: Melbourne, Australia
Contact:

Re: CAN with extframe=True do not receive message with standard ID

Post by FraggaMuffin » Mon Jul 09, 2018 3:47 am

I'm attempting to do the same thing (use a pyboard as a node for both extended and standard addressing).

For reference, this issue has been raised recently https://github.com/micropython/micropython/issues/3916

jickster
Posts: 629
Joined: Thu Sep 07, 2017 8:57 pm

Re: CAN with extframe=True do not receive message with standard ID

Post by jickster » Mon Jul 16, 2018 2:42 am

jgui wrote:I'm using the pyboard to communicate with a product via CAN bus. This product sends and receives messages both with extended and standard ID.
As the pyboard has to send message with extended ID for the product to operate, I first configure the CAN module:
> with option extframe=True
> and set the filter to LIST32. The first filter ID is for a message with extended ID, and the second for a message with standard ID.
However, I found that the message with standard ID was never received. The message with extended ID is received.

Then I have tested several configurations to understand, using CAN1 to send messages to CAN2, and changing CAN1/CAN2 configuration each test.
The test schematic is available here: http://www.casimages.com/img.php?i=1611 ... 649492.png
The test table + results is available here: http://www.casimages.com/img.php?i=1611 ... 649493.png

So my question is: why a CAN module configured with extframe=True is not able to receive a message with standard ID?
Is it a limitation in the way pyboard module configure the CAN or is it the expected behavior defined in the CAN standard?

I have read the STM32 datasheet and try to understand in detail CAN operation but can't get definitive answer and hope someone could advise.

Thanks!
It’s incorrect uPy implementation and needs to be fixed hence the open issue.

Post Reply