SPRUIU1C July 2020 – February 2024 DRA821U , DRA821U-Q1
The configuration of the Rx FIFOs (Rx FIFO 0 and Rx FIFO 1) can be done via the MCAN_RXF0C and MCAN_RXF1C registers. Each Rx FIFO can be configured to store up to 64 received messages.
After acceptance filtering the received messages that passed are transferred to the Rx FIFO. The filter mechanisms available for the Rx FIFO 0 and Rx FIFO 1 is described in Section 12.4.4.4.7.1, Acceptance Filtering. Section 12.4.4.4.10.2, Rx Buffer and FIFO Element describes the Rx FIFO element.
The Rx FIFO watermark can be used to prevent an Rx FIFO overflow. If the Rx FIFO fill level reaches the Rx FIFO watermark configured by the MCAN_RXFnC[30-24] FnWM field (where: n = 0 or 1) an interrupt flag MCAN_IR[1] RF0W/MCAN_IR[5] RF1W is set.
When the Rx FIFO Put Index reaches the Rx FIFO Get Index (MCAN_RXFnS[21-16] FnPI = MCAN_RXFnS[13-8] FnGI) an Rx FIFO Full condition is signalled by the MCAN_RXFnS[24] FnF status bit and interrupt flag MCAN_IR[2] RF0F/MCAN_IR[6] RF1F is set. Figure 12-2741 shows Rx FIFO Status. The FIFOs fill level is presented in the MCAN_RXFnS[6-0] FnFL field (the number of elements stored in Rx FIFO).
Rx FIFOs start address in the Message RAM (MCAN_RXFnC[15-2] FnSA field) have to be configured when reading from an Rx FIFO (Rx FIFO Get Index - MCAN_RXFnS[13-8] FnGI). Table 12-5204 presents Rx Buffer/Rx FIFO Element Size for different Rx Buffer/Rx FIFO Data Field Size which is configured via the MCAN_RXESC register.
MCAN_RXESC[10-8] RBDS MCAN_RXESC[2-0] F0DS/MCAN_RXESC[6-4] F1DS | Data Field [bytes] | FIFO Element Size [RAM words] | |||
---|---|---|---|---|---|
000 | 8 | 4 | |||
001 | 12 | 5 | |||
010 | 16 | 6 | |||
011 | 20 | 7 | |||
100 | 24 | 8 | |||
101 | 32 | 10 | |||
110 | 48 | 14 | |||
111 | 64 | 18 |