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.

TCAN4550-Q1: TCAN4550 CAN message monitor

Part Number: TCAN4550-Q1

Hi team,

Customer has below questions of TCAN4550-Q1 

When they test CAN message sending and receiving, when using the receiving FIFO, because the RX FIFO capacity is too small, when the bus load is high, the RX FIFO will be filled, resulting in missed frames of the message.
They would like to ask a few questions,
1. When the FIFO receive buffer is read, will it continue to receive messages on the bus?
2. If you continue to receive, will the received messages be queued after the messages already in the FIFO, or will they be stored as long as there is free space in the FIFO?

Thank you

Scarlett

  • Hi Scarlett,

    1. When the FIFO receive buffer is read, will it continue to receive messages on the bus?

    When the message stored in a RX FIFO buffer is read, the MCU will need to "Acknowledge" the message in that buffer has been read in order to let the TCAN4550-Q1 know that this RX FIFO buffer element is now available for a new message.  This is done by writing the buffer element index value to the RX FIFO Acknowledge Index register 0x10A8 or 0x10B8 depending on whether you are using RX FIFO 0 or RX FIFO 1.

    2. If you continue to receive, will the received messages be queued after the messages already in the FIFO, or will they be stored as long as there is free space in the FIFO?

    The messages will be stored normally in the RX FIFO as long as it has unused buffer elements available to store the new messages.  If the RX FIFO becomes full, then the device will do one of two things depending on how you have configured the FIFO Operation Mode bit in the RX FIFO Configuration registers 0x10A0 and 0x10B0. 

    If this field has been set to "0" (default value), then the RX FIFO will block any new messages from being stored.  This means that you will keep the oldest messages received but may miss the newer messages arriving.

    If this field has been set to "1", then the RX FIFO will overwrite the oldest messages stored and you will always keep the newest messages received, but you will lose the oldest unread messages.

    Using filters to exclude reception of unnecessary messages is recommended to help reduce the FIFO fill rate and keep the level to a manageable level that will prevent a full FIFO and lost messages.

    Regards,

    Jonathan