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!
CAN with extframe=True do not receive message with standard ID
Re: CAN with extframe=True do not receive message with standard ID
still not a CAN bus pro, but as I see it - there should be same rules for all nodes.
- 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
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
For reference, this issue has been raised recently https://github.com/micropython/micropython/issues/3916
Re: CAN with extframe=True do not receive message with standard ID
It’s incorrect uPy implementation and needs to be fixed hence the open issue.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!