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.

TCAN4551-Q1: FIFO size of the device

Part Number: TCAN4551-Q1

Hi Team

What's the FIFO size of this device?

My customer is looking for CAN controller device with FIFO size greater than 32, but I can't fine the FIFO size specification in the ds.

Regards

  • Hello David,

    I'm not sure if you are referring to a TX FIFO, or a RX FIFO.  The device contains 2KB of Memory RAM (MRAM) that can be configured or allocated as you wish.  All of the TX and RX FIFO/Buffer elements as well as the Message Filter Elements are stored within this memory space.  The allocation is done through the device's configuration registers by providing basic information about the number of elements, and the starting address location for the first element.  Therefore you can adjust the number of each type of element and the location in MRAM to your preference.

    For the TX FIFO/Queue, the device can have a maximum of 32 elements and is configured in register 0x10C0.

    For the RX FIFO/Buffers, there are actually 2 RX FIFOs (RX FIFO 0 and RX FIFO 1) as well as dedicated RX Buffer elements.  Each of these can have a maximum of 64 elements configured and the use of Filter elements can be created to filter the incoming messages and direct them to different storage locations.  The RX FIFO 0/1 are configured respectively in registers 0x10A0 and 0x10B0.  The MRAM start address for the dedicated RX Buffer elements is set in register 0x10AC.

    However, note, that while each of these elements have a maximum number of elements that can each be allocated, the device only has 2KB of MRAM space that needs to be allocated appropriately.  The Buffer/FIFO element sizes are also configurable depending on how many data bytes you are expecting to receive in your messages.  These are set in registers 0x10C0 (TX) and 0x10BC (RX).  Therefore you will need to determine how many elements you need of each type, the size of each element, and the number of filter elements needed.  Then you will need to calculate the total amount of memory needed for each type of element and determine the MRAM Start Address for each of these sections.a

    I would recommend you read and review the following documents for additional information.

    TCAN45xx Software Users Guide: https://www.ti.com/lit/pdf/sllu270

    Bosch M_CAN Users Guide:  https://www.bosch-semiconductors.com/media/ip_modules/pdf_2/m_can/mcan_users_manual_v330.pdf

    Note, the TCAN4551-Q1 contains the M_CAN CAN FD Controller IP developed by Bosch and additional information can be found in their documentation.

    Regards,

    Jonathan

  • Hi Jonathan

    Thanks for the response!

    You mentioned that the device has 2 RX FIFO, is there a reason for 2 FIFOs instead of one? (Is there any specific use case that requires 2 RX FIFOs?)

    Also the customer is looking for a device that can mask the packet when the packet is not sent to the device.

    Can this device mask the packet? If it could, what mask it is and how many filters can be configured by the customer? (You mentioned 2 RX FIFOs with 64 elements maximum so does it make that 128 filter maximum?)

    Regards

  • Hi David,

    No, there is no specific reason or use case that requires both RX FIFOs be used, but they are available to use if you would like.  Message Filter elements can be created to check the incoming message ID's and direct them to the different storage locations.  Perhaps one example is that certain higher priority messages get directed to one RX FIFO, and other lower priority messages get directed to the other RX FIFO.  Then when messages are received in both FIFOs the MCU can know to prioritize the handling of the messages in the FIFO with higher priority messages.  This is just a question of how the end user wants to allocate the available resources.

    The Filter Elements can also be used to mask out messages that are not sent to this device.  If the message ID doesn't match the acceptance filter requirements, it can be ignored and not stored.  The device will still acknowledge it as a proper message on the bus, but it will take no other action and it will not store the message or generate an interrupt.

    You can have up yo 64 XID (29-bit filters) and up to 128 SID (11-bit filters), assuming it will fit in the 2K MRAM space.  The exact number of filter elements that can be stored will depend on how much space in the MRAM is allocated to the RX/TX FIFOs and buffer elements because those too are contained in this MRAM. 

    I would direct you to sections 2.4 (MRAM), 3.4 (Rx Handling), 3.5 (Tx Handling), and 3.6 (FIFO Acknowledge Handling) of the Bosch M_CAN User's Guide document I provided the link for in my previous post.  It clearly explains how the FIFOs and Filter elements are used.  There are different types of filters, but generally speaking, this CAN FD controller is fully functional and capable of doing everything the customer would want to do.

    Regards,

    Jonathan