SWCU185G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
After the frame filtering is done, the rest of the packet is received and stored in the receive queue. The last two bytes of the PHY packet is the MAC footer, or FCS, which is a checked CRC. The CRC is only stored in the queue if rxConfig.bIncludeCrc is 1.
The status of the received frame depends on the frame filtering result and the CRC check result. Two status bits bCrcErr and bIgnore must be maintained. If configured, these bits are present in the Status byte of the RX queue entry. The bCrcErr bit is 1 if the frame had a CRC error, and 0 otherwise. The bIgnore bit is 1 if frame filtering is enabled and the frame was rejected by frame filtering, and 0 otherwise.
If frameFiltOpt.frameFiltStop is 1, frames with bIgnore equal to 1 are never observed, as the reception is stopped and the received bytes are not stored in the queue. If rxConfig.bAutoFlushCrc is 1, packets with bCrcErr equal to 1 are removed from the queue after reception, and if rxConfig.bAutoFlushIgn is 1, packets with bIgnore equal to 1 are removed from the queue after reception.
After a packet is received, an interrupt is raised and one of the counters in pOutput is incremented. Table 26-83 lists these conditions.
Condition | Counter Incremented | Interrupt Generated |
---|---|---|
Frame received with CRC OK and frame filtering disabled | nRxData | RX_OK |
Frame received with CRC error | nRxNok | RX_NOK |
Frame received that did not fit in the RX queue | nRxBufFull | RX_BUF_FULL |
Beacon frame received with CRC OK and bIgnore = 0 | nRxBeacon | RX_OK |
ACK frame received with CRC OK and bIgnore = 0 | nRxAck | RX_OK |
Data frame received with CRC OK and bIgnore = 0 | nRxData | RX_OK |
MAC command frame received with CRC OK and bIgnore = 0 | nRxMacCmd | RX_OK |
Frame with reserved frame type received with CRC OK and bIgnore = 0 | nRxReserved | RX_OK |
Frame received with CRC OK and bIgnore = 1 | nRxIgnored | RX_IGNORED |
The first RX data entry in the RX queue changed state to finished | — | RX_ENTRY_DONE |
When a frame is received, the RSSI observed while receiving the frame is written to
pOutput->lastRssi. If the frame was a beacon frame accepted by the frame filtering and with CRC OK, the timestamp at the beginning of the frame is written to pOutput ->beaconTimeStamp. If the timestamp is appended to the RX entry element (see Section 26.7.1), these two timestamps are the same for a beacon frame.
After a packet is received, the radio CPU either restarts sync search or sends an acknowledgment frame. The conditions for the latter are as given in Section 26.5.4.1.3.