The TI E2E™ design support forums will undergo maintenance from July 11 to July 13. If you need design support during this time, open a new support request with our customer support center.

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.

TCAN4550EVM: CAN Rx problem

Part Number: TCAN4550EVM
Other Parts Discussed in Thread: TCAN4550

Tool/software:

Hi Team,

I have connected the STM32 and TCAN4550EVM.

CAN Tx works normally, but Rx can not work.

When I send data to the TCAN4550, mcan_ir.RF0N == 1 indicates that there is data in the RX FIFO.

However, I am unable to read the data when attempting to read the next FIFO.

However, if I send a second CAN data before calling TCAN4x5x_MCAN_ReadNextFIFO,

I am able to receive the first CAN data.

How can I resolve this issue? 

The image below shows that I sent the first message as 33 and the second message as 44, but only received 33.

Regards,

Hsinyu

  • Hi Hsinyu,

    How many RX FIFO 0 elements have you enabled?

    Can you try to verify the RX FIFO 0 Get and PUT Index values before during and after this process?  The Get Index is typically used to calculate the MRAM address as an Offset from the Start Address based on the number of bytes allocated for each RX Buffer element.

    Can you also try to verify the MRAM Address of the first read of the RX message so that we can verify it matches the correct address for the RX FIFO element according to the Get Index?

    If the first message read fails to return the message data, but the second read returns the first message, it sounds like there is an issue with the Get Index and it may be off by 1, or incorrectly calculating the MRAM address.

    If you tried to send 3 messages, would the third read return the second message?  If so, this would indicate a pattern.

    If possible, you could also go read the MRAM RX FIFO 0 address space and manually verify the bytes are being placed in the correct locations.  This will help locate the whether there is a start address issue, or an index calculation issue, etc.

    Regards,

    Jonathan