SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
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 26.11.4.8.1, Acceptance Filtering. Section 26.11.4.11.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 filed (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 26-197 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).
Figure 26-197 Rx FIFO StatusRx 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 26-872 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 |