This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi Team,
In the customer's project, CAN initialization is configured through sysconfig, enabling 2 mailboxes: MB1 for transmit and MB2 for receive. Interrupts refer to the CAN example.
A. There is no problem with sending, the frame sent by the F280025 can be detected by the CAN analyzer and the interrupt works fine.
B. For reception, set ID=0x0020 for MB2 and the SysCfg configuration does not use receive filtering. When the message is actually sent through the CAN Analyzer interface, ID=0x0020 can be received and interrupt generated, and the ID and data read in the interrupt are correct. However, when the ID is other, such as 0x0021, the interrupt cannot be entered.
By checking the CAN register, it's found that NewDat is not set, umask=0 and the IFxMask registers are all 0, that is, data cannot be received as long as the message ID transmitted by the bus is not the programd mailbox ID.
Could you help check this case? Thanks.
Best Regards,
Cherry
Hi Cherry,
If customer needs to receive all message IDs for mailbox 2, UMask has to be set to 1 to allow for message filtering, then set all mask bit positions in the CAN_IF1MSK register to 0's. This will allow the mailbox to receive all message IDs.
Regards,
Joseph
Cherry,
www.ti.com/lit/SPRACE5 explains how acceptance mask filtering works, with an example.