60.5.7.2 Rx Buffer and FIFO Element
Up to 64 Rx Buffers and two Rx FIFOs can be configured in the Message RAM. Each Rx FIFO section can be configured to store up to 64 received messages. The structure of a Rx Buffer / FIFO element is shown in the table below. The element size can be configured for storage of CAN FD messages with up to 64 bytes data field via register MCAN_RXESC.
R1A: When no TSU is used (CCCR.UTSU = ‘0’), R1A.RXTS[15:0] holds the 16-bit timestamp generated by the MCAN internal timestamping logic.
R1B: When a TSU is used (CCCR.UTSU = ‘1’) and when bit SSYNC/ESYNC of the matching filter element is set, R1B.TSC = ‘1’ and R1B.RXTSP[3:0] holds the number of the TSU Timestamp register which holds the 32-bit timestamp captured by the TSU. Else R1B.TSC = ‘0’ and R1B.RXTSP[3:0] is not valid.
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
R0 | ESI | XTD | RTR | ID[28:0] | |||||||||||||||||||||||||||||
R1A | ANMF | FIDX[6:0] | – | FDF | BRS | DLC[3:0] | RXTS[15:0] | ||||||||||||||||||||||||||
R1B | ANMF | FIDX[6:0] | – | FDF | BRS | DLC[3:0] | – | TSC | RXTSP[3:0] | ||||||||||||||||||||||||
R2 | DB3[7:0] | DB2[7:0] | DB1[7:0] | DB0[7:0] | |||||||||||||||||||||||||||||
R3 | DB7[7:0] | DB6[7:0] | DB5[7:0] | DB4[7:0] | |||||||||||||||||||||||||||||
... | .. | ... | ... | ... | |||||||||||||||||||||||||||||
Rn | DBm[7:0] | DBm-1[7:0]DBM[7:0] | DBm-2[7:0]DBM[7:0] | DBm-3[7:0]DBM[7:0] |
• R0 Bit 31 ESI: Error State Indicator
0: Transmitting node is error active.
1: Transmitting node is error passive.
• R0 Bit 30 XTD: Extended Identifier
Signals to the processor whether the received frame has a standard or extended identifier.
0: 11-bit standard identifier.
1: 29-bit extended identifier.
• R0 Bit 29 RTR: Remote Transmission Request
Signals to the processor whether the received frame is a data frame or a remote frame.
0: Received frame is a data frame.
1: Received frame is a remote frame.
• R0 Bits 28:0 ID[28:0]: Identifier
Standard or extended identifier depending on bit XTD. A standard identifier is stored into ID[28:18].
• R1A/B Bit 31 ANMF: Accepted Non-matching Frame
Acceptance of non-matching frames may be enabled via MCAN_GFC.ANFS and MCAN_GFC.ANFE.
0: Received frame matching filter index FIDX.
1: Received frame did not match any Rx filter element.
• R1A/B Bits 30:24 FIDX[6:0]: Filter Index
0-127: Index of matching Rx acceptance filter element (invalid if ANMF = ‘1’). Range is 0 to MCAN_SIDFC.LSS - 1 resp. MCAN_XIDFC.LSE - 1.
• R1A/B Bit 21 FDF: FD Format
0: Standard frame format.
1: CAN FD frame format (new DLC-coding and CRC).
• R1A/B Bit 20 BRS: Bit Rate Switch
0: Frame received without bit rate switching.
1: Frame received with bit rate switching.
Bits ESI, FDF, and BRS are only evaluated when CAN FD operation is enabled (MCAN_CCCR.FDOE = 1). Bit BRS is only evaluated when in addition MCAN_CCCR.BRSE = 1.
• R1A/B Bits 19:16 DLC[3:0]: Data Length Code
0-8: CAN + CAN FD: received frame has 0-8 data bytes.
9-15: CAN: received frame has 8 data bytes.
9-15: CAN FD: received frame has 12/16/20/24/32/48/64 data bytes.
• R1A/B Bits 15:0 RXTS[15:0]: Rx Timestamp
Timestamp Counter value captured on start of frame reception. Resolution depending on configuration of the Timestamp Counter Prescaler MCAN_TSCC.TCP.
• R1B Bits 3:0 RXTSP[3:0]: Rx Timestamp Pointer
Number of the TSU Timestamp register (TS0..15) where the related timestamp is stored.
• R1B Bit 4 TSC: Timestamp Captured
0: No timestamp captured.
1: Timestamp captured and stored in TSU Timestamp register referenced by R1B.RXTSP.
• R2 Bits 31:24 DB3[7:0]: Data Byte 3
• R2 Bits 23:16 DB2[7:0]: Data Byte 2
• R2 Bits 15:8 DB1[7:0]: Data Byte 1
• R2 Bits 7:0 DB0[7:0]: Data Byte 0
• R3 Bits 31:24 DB7[7:0]: Data Byte 7
• R3 Bits 23:16 DB6[7:0]: Data Byte 6
• R3 Bits 15:8 DB5[7:0]: Data Byte 5
• R3 Bits 7:0 DB4[7:0]: Data Byte 4
... ... ...
• Rn Bits 31:24 DBm[7:0]: Data Byte m
• Rn Bits 23:16 DBm-1[7:0]: Data Byte m-1
• Rn Bits 15:8 DBm-2[7:0]: Data Byte m-2
• Rn Bits 7:0 DBm-3[7:0]: Data Byte m-3