SLLSFR8B September 2025 – January 2026 TCAN5102-Q1
ADVANCE INFORMATION
The TCAN5102-Q1 has a 2kB message RAM (MRAM) that is used for storing the mailboxes for SPI, I2C, and UART communication. This RAM can split the memory allocated to any combination of the 2 IP blocks based upon the end-application's needs in 25% increments. The split between RX and TX is not adjustable and is always 50/50%. Handling of the RX and TX FIFOs is done by the TCAN5102-Q1, and requires no user setup outside of choosing how much of the MRAM to allocate to each IP block.
SPI and I2C have a straight forward split for memory use, where 50% of the allocated memory is used to store the TX data and the other 50% is used to store the RX data if specified.
For UART, there are additional bytes needed to store the status of each received byte. This means that for each byte of data received on UART, 1 additional byte is needed for storing the status of the byte. The result is that only 2/3 of the allocated memory for UART is used for storing actual data bytes.
Table 7-7 shows how many bytes of data are allocated to the TX or RX buffers for each IP block. The size shown is the same value for both the TX and RX buffers, and is NOT the value shared between both. For example, if 100% of the MRAM space is allocated to the SPI, then the SPI TX size is 1024 bytes, and the SPI RX buffer is 1024 bytes. Together, the TX and RX buffer sum up to 2048 bytes, which is all of the memory.
In the example where 50% of the MRAM is allocated to SPI and UART, the SPI RX and TX sizes are 512 each (1kB total). The UART IP is only 340 bytes for each buffer. Due to UART RX requiring an additional byte to store the status for each byte received, only 2/3 of the available 1024 bytes is used to store data. Internally, the number of bytes that can be stored by the TX and RX buffers are identical. For this reason, 4 bytes of data end up unused, because the 4 bytes remaining cannot be divided evenly across 3 functions (TX, RX, and RX status).
| % Allocated to SPI | SPI TX or RX Size (Bytes) |
UART TX or RX Size (Bytes) |
Total Bytes Used (% of Total) |
|---|---|---|---|
| 100% | 1024 | 0 | 2048 (100%) |
| 75% | 768 | 168 | 2040 (99.6%) |
| 50% | 512 | 340 | 2044 (99.8%) |
| 25% | 256 | 512 | 2048 (100%) |
| 0% | 0 | 680 | 2040 (99.6%) |
| MRAM_IP_EN (Hex) | % Allocated to SPI | % Allocated to UART | % Allocated to I2C | SPI TX and RX Size (Bytes) |
UART TX and RX Size (Bytes) |
I2C TX and RX Size (Bytes) |
Total Bytes Used (% of Total) |
|---|---|---|---|---|---|---|---|
| 0h | 0% | 0% | 0% | 0 | 0 | 0 | 0 (0%) |
| 1h | 0% | 100% | 0% | 0 | 680 | 0 | 2040 (99.61%) |
| 2h | 25% | 75% | 0% | 256 | 512 | 0 | 2048 (100%) |
| 3h | 50% | 50% | 0% | 512 | 340 | 0 | 2044 (99.8%) |
| 4h | 75% | 25% | 0% | 768 | 168 | 0 | 2040 (99.61%) |
| 5h | 100% | 0% | 0% | 1024 | 0 | 0 | 2048 (100%) |
| 6h | 0% | 0% | 100% | 0 | 0 | 1024 | 2048 (100%) |
| 7h | 0% | 25% | 75% | 0 | 168 | 768 | 2040 (99.61%) |
| 8h | 0% | 50% | 50% | 0 | 340 | 512 | 2044 (99.8%) |
| 9h | 0% | 75% | 25% | 0 | 512 | 256 | 2048 (100%) |
| Ah | 25% | 0% | 75% | 256 | 0 | 768 | 2048 (100%) |
| Bh | 50% | 0% | 50% | 512 | 0 | 512 | 2048 (100%) |
| Ch | 75% | 0% | 25% | 768 | 0 | 256 | 2048 (100%) |
In the above graphic, an example of how the MRAM holds data for I2C is shown. Each individual I2C frame/message is shown in a different color to show how the messages are grouped tightly in each RX or TX FIFO. The user does not need to be aware of how the data is stored in the FIFO, only the total size of the FIFO and the fact that any header/status bytes are also stored in memory.