User's Guide
Revision 1.0 Page 30 of 75
nRF24L01+ Preliminary Product Specification
7.4.2.4 Payload
The payload is fetched from the TX FIFO.
7.4.2.5 CRC
The CRC is automatically calculated based on the packet content with the polynomials in section 7.3.5 on
page 28. The number of bytes in the CRC is set by the CRCO bit in the CONFIG register.
7.4.3 Automatic packet validation
In receive mode the nRF24L01+ is constantly searching for a valid address (given in the RX_ADDR regis-
ters). If a valid address is detected, Enhanced ShockBurst™ starts to validate the packet.
With static packet length the Enhanced ShockBurst™ captures the packet according to the length given by
the RX_PW register. With DPL, Enhanced ShockBurst™ captures the packet according to the payload
length field in the packet control field. After capturing the packet, Enhanced ShockBurst™ performs CRC.
If the CRC is valid, Enhanced ShockBurst™ checks PID. The received PID is compared with the previous
received PID. If the PID fields are different, the packet is considered new. If the PID fields are equal the
receiver must check if the received CRC is equal to the previous CRC. If the CRCs are equal, the packet is
defined as equal to the previous packet and is discarded. Refer to the right flow chart in Figure 6.
Figure 6. PID generation/detection
7.4.4 Automatic packet disassembly
After the packet is validated, Enhanced ShockBurst™ disassembles the packet and loads the payload into
the RX FIFO, and asserts the RX_DR IRQ.
Start
New packet
from MCU?
Yes
increment PID
End
Start
PID equal
last PID?
Yes
CRC equal
last CRC?
New packet is
valid for MCU
End
No
Discard packet
as a copy
No
Yes
PTX side functionality PRX side functionality
No