User's Guide
Revision 1.0 Page 29 of 75
nRF24L01+ Preliminary Product Specification
7.4.1 Static and Dynamic Payload Length
Enhanced ShockBurst™ provides two alternatives for handling payload lengths; static and dynamic.
The default is static payload length. With static payload length all packets between a transmitter and a
receiver have the same length. Static payload length is set by the RX_PW_Px registers on the receiver side.
The payload length on the transmitter side is set by the number of bytes clocked into the TX_FIFO and
must equal the value in the RX_PW_Px register on the receiver side.
Dynamic Payload Length (DPL) is an alternative to static payload length. DPL enables the transmitter to
send packets with variable payload length to the receiver. This means that for a system with different pay-
load lengths it is not necessary to scale the packet length to the longest payload.
With the DPL feature the nRF24L01+ can decode the payload length of the received packet automatically
instead of using the RX_PW_Px registers. The MCU can read the length of the received payload by using
the R_RX_PL_WID command.
In order to enable DPL the EN_DPL bit in the FEATURE register must be enabled. In RX mode the DYNPD
register must be set. A PTX that transmits to a PRX with DPL enabled must have the DPL_P0 bit in DYNPD
set.
7.4.2 Automatic packet assembly
The automatic packet assembly assembles the preamble, address, packet control field, payload and CRC
to make a complete packet before it is transmitted.
7.4.2.1 Preamble
The preamble is automatically generated based on the address field.
7.4.2.2 Address
The address is fetched from the TX_ADDR register. The address field can be configured to be 3, 4 or 5
bytes long with the AW register.
7.4.2.3 Packet control field
For the static packet length option the payload length field is not used. With DPL enabled, the value in the
payload length field is automatically set to the number of bytes in the payload clocked into the TX FIFO.
The transmitter increments the PID field each time it generates a new packet and uses the same PID on
packets that are retransmitted. Refer to the left flow chart in Figure 6. on page 30
.
The PTX can set the NO_ACK flag bit in the Packet Control Field with this command:
W_TX_PAYLOAD_NOACK
However, the function must first be enabled in the FEATURE register by setting the EN_DYN_ACK bit.
When you use this option the PTX goes directly to standby-I mode after transmitting the packet. The PRX
does not transmit an ACK packet when it receives the packet.