nRF24L01 Product Specification v2 0
nRF24L01 Product Specification v2 0
Applications
Wireless PC Peripherals Mouse, keyboards and remotes 3-in-one desktop bundles Advanced Media center remote controls VoIP headsets Game controllers Sports watches and sensors RF remote controls for consumer electronics Home and commercial automation Ultra low power sensor networks Active RFID Asset tracing systems Toys
All rights reserved. Reproduction in whole or in part is prohibited without the prior written permission of the copyright holder. July 2007
Limiting values
Stress above one or more of the limiting values may cause permanent damage to the device. These are stress ratings only and operation of the device at these or at any other conditions above those given in the specifications are not implied. Exposure to limiting values for extended periods may affect device reliability.
This product specification contains target specifications for product development. Preliminary product specification This product specification contains preliminary data; supplementary data may be published from Nordic Semiconductor ASA later. Product specification This product specification contains final product specifications. Nordic Semiconductor ASA reserves the right to make changes at any time without notice in order to improve design and supply the best possible product.
Contact details
Visit www.nordicsemi.no for Nordic Semiconductor sales offices and distributors worldwide Main office:
Otto Nielsens vei 12 7004 Trondheim Phone: +47 72 89 89 00 Fax: +47 72 89 89 89 www.nordicsemi.no
Revision 2.0
Page 2 of 74
Revision History
Date July 2007 Version 2.0 Description Restructured layout in a new template Added details of the following features: X Dynamic Payload Length (DPL) X Acknowledgement Payload (ACK_PLD) X Feature register X ACTIVATE SPI command X Selective Auto Acknowledgement (NO_ACK)
Revision 2.0
Page 3 of 74
Revision 2.0
Page 4 of 74
Revision 2.0
Page 5 of 74
Revision 2.0
Page 6 of 74
The nRF24L01 is a single chip 2.4GHz transceiver with an embedded baseband protocol engine (Enhanced ShockBurst), designed for ultra low power wireless applications. The nRF24L01 is designed for operation in the world wide ISM frequency band at 2.400 - 2.4835GHz. An MCU (microcontroller) and very few external passive components are needed to design a radio system with the nRF24L01. The nRF24L01 is configured and operated through a Serial Peripheral Interface (SPI.) Through this interface the register map is available. The register map contains all configuration registers in the nRF24L01 and is accessible in all operation modes of the chip. The embedded baseband protocol engine (Enhanced ShockBurst) is based on packet communication and supports various modes from manual operation to advanced autonomous protocol operation. Internal FIFOs ensure a smooth data flow between the radio front end and the systems MCU. Enhanced ShockBurst reduces system cost by handling all the high-speed link layer operations. The radio front end uses GFSK modulation. It has user configurable parameters like frequency channel, output power and air data rate. The air data rate supported by the nRF24L01 is configurable to 2Mbps. The high air data rate combined with two power saving modes makes the nRF24L01 very suitable for ultra low power designs. Internal voltage regulators ensure a high Power Supply Rejection Ratio (PSRR) and a wide power supply range.
Revision 2.0
Page 7 of 74
Features of the nRF24L01 include: Radio X Worldwide 2.4GHz ISM band operation X 126 RF channels X Common RX and TX pins X GFSK modulation X 1 and 2Mbps air data rate X 1MHz non-overlapping channel spacing at 1Mbps X 2MHz non-overlapping channel spacing at 2Mbps Transmitter X Programmable output power: 0, -6, -12 or -18dBm X 11.3mA at 0dBm output power Receiver X Integrated channel filters X 12.3mA at 2Mbps X -82dBm sensitivity at 2Mbps X -85dBm sensitivity at 1Mbps X Programmable LNA gain RF Synthesizer X Fully integrated synthesizer X No external loop filer, VCO varactor diode or resonator X Accepts low cost 60ppm 16MHz crystal Enhanced ShockBurst X 1 to 32 bytes dynamic payload length X Automatic packet handling X Auto packet transaction handling X 6 data pipe MultiCeiver for 1:6 star networks Power Management X Integrated voltage regulator X 1.9 to 3.6V supply range X Idle modes with fast start-up times for advanced power management X 22uA Standby-I mode, 900nA power down mode X Max 1.5ms start-up from power down mode X Max 130us start-up from standby-I mode Host Interface X 4-pin hardware SPI X Max 8Mbps X 3 separate 32 bytes TX and RX FIFOs X 5V tolerant inputs Compact 20-pin 4x4mm QFN package
Revision 2.0
Page 8 of 74
Baseband
TX FIFOs SPI Enhanced ShockBurst Baseband Engine RX Filter GFSK Demodulator RX FIFOs
RF Receiver ANT1
LNA
Power Management
Radio Control
DVDD
Revision 2.0
Page 9 of 74
VDD_PA
VDD
VSS
IREF
Register map
VSS
VDD
20
19
18
CE
VSS
17
15
VDD
CSN
14
VSS
nRF24L01
SCK
3 13
ANT2
ANT1
MISO
11
VDD_PA
10
IRQ
VDD
VSS
XC2
Figure 2. nRF24L01 pin assignment (top view) for the QFN20 4x4 package
Revision 2.0
Page 10 of 74
XC1
12 13 14 15 16 17 18 19 20
Revision 2.0
Page 11 of 74
Revision 2.0
Page 12 of 74
Symbol Parameter (condition) VDD Supply voltage Supply voltage if input signals >3.6V VDD TEMP Operating Temperature
Revision 2.0
Page 13 of 74
5.1
Power consumption
Symbol IVDD_PD IVDD_ST1 IVDD_ST2 IVDD_SU IVDD_TX0 IVDD_TX6 Parameter (condition) Notes Idle modes Supply current in power down a Supply current in standby-I mode Supply current in standby-II mode Average current during 1.5ms crystal oscillator startup Transmit b Supply current @ 0dBm output power b Supply current @ -6dBm output power b Supply current @ -12dBm output power b Supply current @ -18dBm output power c Average Supply current @ -6dBm output power, Enhanced ShockBurst d Average current during TX settling Receive Supply current 2Mbps Supply current 2Mbps LNA low current Supply current 1Mbps Supply current 1Mbps LNA low current e Average current during RX settling Min. Typ. 900 22 320 285 11.3 9.0 7.5 7.0 0.12 8.0 12.3 11.5 11.8 11.1 8.4 Max. Units nA A A A mA mA mA mA mA mA mA mA mA mA mA
Current is given for a 12pF crystal. Current when using external clock is dependent on signal swing. Antenna load impedance = 15+j88. Antenna load impedance = 15+j88. Average data rate 10kbps and full packets Average current consumption for TX startup (130s) and when changing mode from RX to TX (130s). Average current consumption for RX startup (130s) and when changing mode from TX to RX (130s).
Revision 2.0
Page 14 of 74
Min. 2400
Max. 2525
b c c
1000 1 2
2000
a. Usable band is determined by local regulations b. Data rate in each burst on-air c. The minimum channel spacing is 1Mhz
5.3
Transmitter operation
Parameter (condition) Maximum Output Power RF Power Control Range RF Power Accuracy 20dB Bandwidth for Modulated Carrier (2Mbps) 20dB Bandwidth for Modulated Carrier (1Mbps) 1st Adjacent Channel Transmit Power 2MHz 2nd Adjacent Channel Transmit Power 4MHz Notes
a
Min. 16
Revision 2.0
Page 15 of 74
RX selectivity according to ETSI EN 300 440-1 V1.3.1 (2001-09) page 27 a C/ICO C/I Co-channel (@2Mbps) st C/I1ST 1 Adjacent Channel Selectivity C/I 2MHz C/I2ND 2nd Adjacent Channel Selectivity C/I 4MHz C/I3RD 3rd Adjacent Channel Selectivity C/I 6MHz b C/ICO C/I Co-channel (@1Mbps) C/I1ST 1st Adjacent Channel Selectivity C/I 1MHz C/I2ND 2nd Adjacent Channel Selectivity C/I 2MHz C/I3RD 3rd Adjacent Channel Selectivity C/I 3MHz RX selectivity with nRF24L01 equal modulation on interfering signal a C/ICO C/I Co-channel (@2Mbps) (Modulated carrier) C/I1ST 1st Adjacent Channel Selectivity C/I 2MHz C/I2ND 2nd Adjacent Channel Selectivity C/I 4MHz C/I3RD 3rd Adjacent Channel Selectivity C/I 6MHz b C/ICO C/I Co-channel (@1Mbps) C/I1ST 1st Adjacent Channel Selectivity C/I 1MHz C/I2ND 2nd Adjacent Channel Selectivity C/I 2MHz C/I3RD 3rd Adjacent Channel Selectivity C/I 3MHz
a. Data rate is 2Mbps for the following C/I measurements b. Data rate is 1Mbps for the following C/I measurements
dB dB dB dB dB dB dB dB
dB dB dB dB dB dB dB dB
Revision 2.0
Page 16 of 74
Min.
Typ. 16 60 1.5 12
Max.
7.0 16 100
a. Frequency accuracy including; tolerance at 25C, temperature drift, aging and crystal loading. b. Frequency regulations in certain regions sets tighter requirements to frequency tolerance (Ex: Japan and Korea max. +/- 50ppm)
Revision 2.0
Page 17 of 74
Max.
a. If the input signal >3.6V, the VDD of the nRF24L01 must be between 2.7V and 3.3V (3.0V10%)
Table 9. Digital input pin Symbol VOH VOL Parameter (condition) HIGH level output voltage (IOH=-0.25mA) LOW level output voltage (IOL=0.25mA) Notes Min. VDD -0.3 Typ. Max. VDD 0.3 Units V V
5.7
Power on reset
Symbol TPUP TPOR Parameter (condition) Power ramp up time Power on reset Notes
a b
Min. 1.6
Typ. 5.3
Units ms ms
a. From 0V to 1.9V b. Measured when the VDD reaches 1.9V to when the reset finishes
Revision 2.0
Page 18 of 74
This chapter describes the different modes the nRF24L01 radio transceiver can operate in and the parameters used to control the radio. The nRF24L01 has a built-in state machine that controls the transitions between the different operating modes of the chip. The state machine takes input from user defined register values and internal signals.
6.1
Operational Modes
The nRF24L01 can be configured in four main modes of operation. This section describes these modes.
6.1.1
State diagram
The state diagram (Figure 3.) shows the modes the nRF24L01 can operate in and how they are accessed. The nRF24L01 is undefined until the VDD becomes 1.9V or higher. When this happens nRF24L01 enters the Power on reset state where it remains in reset until it enters the Power Down mode. Even when the nRF24L01 enters Power Down mode the MCU can control the chip through the SPI and the Chip Enable (CE) pin Three types of states are used in the state diagram. Recommended operating mode is a state that is used during normal operation. Possible operating mode is a state that is allowed to use, but it is not used during normal operation. Transition state is a time limited state used during start up of the oscillator and settling of the PLL.
Revision 2.0
Page 19 of 74
Undefined
Undefined
Transition state
Recommended path between operating modes Possible path between operating modes
CE = 1 PWR_DN = 1 TX FIFO empty
Power Down
PWR_UP=0
PWR_UP = 0
Standby-I
PWR_UP = 0 CE = 0
RX Settling 130 us
PRIM_RX = 1 CE = 1
CE = 0
RX Mode
TX FIFO empty CE = 1
6.1.2
In power down mode nRF24L01 is disabled with minimal current consumption. In power down mode all the register values available from the SPI are maintained and the SPI can be activated. For start up time see Table 13. on page 22. Power down mode is entered by setting the PWR_UP bit in the CONFIG register low.
6.1.3
Standby Modes
By settting the PWR_UP bit in the CONFIG register to 1, the device enters standby-I mode. Standby-I mode is used to minimize average current consumption while maintaining short start up times. In this mode part of the crystal oscillator is active. This is the mode the nRF24L01 returns to from TX or RX mode when CE is set low. In standby-II mode extra clock buffers are active compared to standby-I mode and much more current is used compared to standby-I mode. Standby-II occurs when CE is held high on a PTX device with empty TX FIFO. If a new packet is uploaded to the TX FIFO, the PLL starts and the packet is transmitted.
Revision 2.0
Page 20 of 74
6.1.4
RX mode
The RX mode is an active mode where the nRF24L01 radio is a receiver. To enter this mode, the nRF24L01 must have the PWR_UP bit set high, PRIM_RX bit set high and the CE pin set high. In this mode the receiver demodulates the signals from the RF channel, constantly presenting the demodulated data to the baseband protocol engine. The baseband protocol engine constantly searches for a valid packet. If a valid packet is found (by a matching address and a valid CRC) the payload of the packet is presented in a vacant slot in the RX FIFO. If the RX FIFO is full, the received packet is discarded. The nRF24L01 remains in RX mode until the MCU configures it to standby-I mode or power down mode. If the automatic protocol features (Enhanced ShockBurst) in the baseband protocol engine are enabled, the nRF24L01 can enter other modes in order to execute the protocol. In RX mode a carrier detect signal is avaliable. The carrier detect is a signal that is set high when a RF signal is detected inside the receiving frequency channel. The signal must be FSK modulated for a secure detection. Other signals can also be detected. The Carrier Detect (CD) is set high when an RF signal is detected in RX mode, otherwise CD is low. The internal CD signal is filtered before presented to CD register. The RF signal must be present for at least 128s before the CD is set high. How to use the CD is described in Appendix E on page 74.
6.1.5
TX mode
The TX mode is an active mode where the nRF24L01 transmits a packet. To enter this mode, the nRF24L01 must have the PWR_UP bit set high, PRIM_RX bit set low, a payload in the TX FIFO and, a high pulse on the CE for more than 10s. The nRF24L01 stays in TX mode until it finishes transmitting a current packet. If CE = 0 nRF24L01 returns to standby-I mode. If CE = 1, the next action is determined by the status of the TX FIFO. If the TX FIFO is not empty the nRF24L01 remains in TX mode, transmitting the next packet. If the TX FIFO is empty the nRF24L01 goes into standby-II mode.The nRF24L01 transmitter PLL operates in open loop when in TX mode. It is important to never keep the nRF24L01 in TX mode for more than 4ms at a time. If the auto retransmit is enabled, the nRF24L01 is never in TX mode long enough to disobey this rule.
6.1.6
The following table (Table 12.) describes how to configure the operational modes. Mode RX mode TX mode TX mode Standby-II Standby-I Power Down PWR_UP register 1 1 1 1 1 0 PRIM_RX register 1 0 0 0 CE 1 1 FIFO state
Data in TX FIFO. Will empty all levels in TX FIFOa. minimum 10s Data in TX FIFO.Will empty one high pulse level in TX FIFOb. 1 TX FIFO empty 0 No ongoing packet transmission -
Revision 2.0
Page 21 of 74
6.1.7
Timing Information
The timing information in this section is related to the transitions between modes and the timing for the CE pin. The transition from TX mode to RX mode or vice versa is the same as the transition from standby-I to TX mode or RX mode,Tstby2a. Name Tpd2stby Tpd2stby Tstby2a Thce Tpece2csn nRF24L01 Power Down Standby mode Power Down Standby mode Standby modes TX/RX mode Minimum CE high Delay from CE pos. edge to CSN low Max. 1.5ms 150s 130s 10s 4s Min. Comments Internal crystal oscillator With external clock
Table 13. Operational timing of nRF24L01 When nRF24L01 is in power down mode it must settle for 1.5ms before it can enter the TX or RX modes. If an external clock is used this delay is reduced to 150s, see Table 13. on page 22. The settling time must be controlled by the MCU. Note: The register value is lost if VDD is turned off. In this case, nRF24L01 must be configured before entering the TX or RX modes.
6.2
The air data rate is the modulated signaling rate the nRF24L01 uses when transmitting and receiving data. The air data rate can be 1Mbps or 2Mbps. The 1Mbps data rate gives 3dB better receiver sensitivity compared to 2Mbps. High air data rate means lower average current consumption and reduced probability of on-air collisions. The air data rate is set by the RF_DR bit in the RF_SETUP register. A transmitter and a receiver must be programmed with the same air data rate to be able to communicate with each other. For compatibility with nRF2401A, nRF24E1, nRF2402 and nRF24E2 the air data rate must be set to 1Mbps.
Revision 2.0
Page 22 of 74
The RF channel frequency determines the center of the channel used by the nRF24L01. The channel occupies a bandwidth of 1MHz at 1Mbps and 2MHz at 2Mbps. nRF24L01 can operate on frequencies from 2.400GHz to 2.525GHz. The resolution of the RF channel frequency setting is 1MHz. At 2Mbps the channel occupies a bandwidth wider than the resolution of the RF channel frequency setting. To ensure non-overlapping channels in 2Mbps mode, the channel spacing must be 2MHz or more. At 1Mbps the channel bandwidth is the same as the resolution of the RF frequency setting. The RF channel frequency is set by the RF_CH register according to the following formula: F0= 2400 + RF_CH [MHz] A transmitter and a receiver must be programmed with the same RF channel frequency to be able to communicate with each other.
6.4
PA control
The PA control is used to set the output power from the nRF24L01 power amplifier (PA). In TX mode PA control has four programmable steps, see Table 14. The PA control is set by the RF_PWR bits in the RF_SETUP register. SPI RF-SETUP RF output power (RF_PWR) 11 0dBm 10 -6dBm 01 -12dBm 00 -18dBm DC current consumption 11.3mA 9.0mA 7.5mA 7.0mA
Conditions: VDD = 3.0V, VSS = 0V, TA = 27C, Load impedance = 15+j88. Table 14. RF output power setting for the nRF24L01
6.5
LNA gain
The gain in the Low Noise Amplifier (LNA) in the nRF24L01 receiver is controlled by the LNA gain setting. The LNA gain makes it possible to reduce the current consumption in RX mode with 0.8mA at the cost of 1.5dB reduction in receiver sensitivity. The LNA gain has two steps and is set by the LNA_HCURR bit in the RF_SETUP register.
6.6
RX/TX control
The RX/TX control is set by PRIM_RX bit in the CONFIG register and sets the nRF24L01 in transmit/ receive.
Revision 2.0
Page 23 of 74
Enhanced ShockBurst is a packet based data link layer. It features automatic packet assembly and timing, automatic acknowledgement and re-transmissions of packets. Enhanced ShockBurst enables the implementation of ultra low power, high performance communication with low cost host microcontrollers. The features enable significant improvements of power efficiency for bi-directional and uni-directional systems, without adding complexity on the host controller side.
7.1
Features
The main features of Enhanced ShockBurst are: 1 to 32 bytes dynamic payload length Automatic packet handling Auto packet transaction handling X Auto Acknowledgement X Auto retransmit 6 data pipe MultiCeiver for 1:6 star networks
7.2
Enhanced ShockBurst uses ShockBurst for automatic packet handling and timing. During transmit, ShockBurst assembles the packet and clocks the bits in the data packet into the transmitter for transmission. During receive, ShockBurst constantly searches for a valid address in the demodulated signal. When ShockBurst finds a valid address, it processes the rest of the packet and validates it by CRC. If the packet is valid the payload is moved into the RX FIFO. The high speed bit handling and timing is controlled by ShockBurst. Enhanced ShockBurst features automatic packet transaction handling that enables the implementation of a reliable bi-directional data link. An Enhanced ShockBurst packet transaction is a packet exchange between to transceivers, where one transceiver is the Primary Receiver (PRX) and the other is the Primary Transmitter (PTX). An Enhanced ShockBurst packet transaction is always initiated by a packet transmission from the PTX, the transaction is complete when the PTX has received an acknowledgment packet (ACK packet) from the PRX. The automatic packet transaction handling works as follows: The user initiates the transaction by transmitting a data packet from the PTX to the PRX. Enhanced ShockBurst automatically sets the PTX in receive mode to wait for the ack packet. If the packet is received by the PRX, Enhanced ShockBurst automatically assembles and transmits an acknowledgment packet (ACK packet) to the PTX before returning to receive mode If the PTX does not receive the ACK packet within a set time, Enhanced ShockBurst will automatically retransmit the original data packet and set the PTX in receive mode to wait for the ACK packet
The PRX can attach user data to the ACK packet enabling a bi-directional data link. The Enhanced ShockBurst is highly configurable; it is possible to configure parameters such as maximum number of retransmits and the delay from one transmission to the next retransmission. All automatic handling is done without involvement of the MCU. Section 7.3 on page 25 gives a description of the Enhanced ShockBurst packet format, section 7.4 on page 26 describes autmatic packet handling, section 7.5 on page 28 describes automatic packet transaction handling, section 7.6 on page 31 provides flowcharts for PTX and PRX operation.
Revision 2.0
Page 24 of 74
The format of the Enhanced ShockBurst packet is described in this chapter. The Enhanched ShockBurst packet contains a preamble field, address field, packet control field, payload field and a CRC field. Figure 4. on page 25 shows the packet format with MSB to the left.
P re a m b le 1 b y te
A d d re s s 3 -5 b y te
P a c k e t C o n tro l F ie ld 9 b it
P a y lo a d 0 - 3 2 b y te
C R C 1 -2 b y te
7.3.1
Preamble
The preamble is a bit sequence used to detect 0 and 1 levels in the receiver. The preamble is one byte long and is either 01010101 or 10101010. If the first bit in the address is 1 the preamble is automatically set to 10101010 and if the first bit is 0 the preamble is automatically set to 01010101. This is done to ensure there are enough transitions in the preamble to stabilize the receiver.
7.3.2
Address
This is the address for the receiver. An address ensures that the correct packet are detected by the receiver. The address field can be configured to be 3, 4 or, 5 bytes long with the AW register. Note: Addresses where the level shifts only one time (that is, 000FFFFFFF) can often be detected in noise and can give a false detection, which may give a raised Packet-Error-Rate. Addresses as a continuation of the preamble (hi-low toggling) raises the Packet-Error-Rate.
7.3.3
Figure 5 shows the format of the 9 bit packet control field, MSB to the left.
PID 2bit
NO_ACK 1bit
Figure 5. Packet control field The packet control field contains a 6 bit payload length field, a 2 bit PID (Packet Identity) field and, a 1 bit NO_ACK flag.
7.3.3.1
Payload length
This 6 bit field specifies the length of the payload in bytes. The length of the payload can be from 0 to 32 bytes.
Revision 2.0
Page 25 of 74
7.3.3.2
The 2 bit PID field is used to detect if the received packet is new or retransmitted. PID prevents the PRX device from presenting the same payload more than once to the MCU. The PID field is incremented at the TX side for each new packet received through the SPI. The PID and CRC fields (see section 7.3.5 on page 26) are used by the PRX device to determine if a packet is retransmitted or new. When several data packets are lost on the link, the PID fields may become equal to the last received PID. If a packet has the same PID as the previous packet, nRF24L01 compares the CRC sums from both packets. If the CRC sums are also equal, the last received packet is considered a copy of the previously received packet and discarded.
7.3.3.3
No Acknowledgment flag(NO_ACK)
The Selective Auto Acknowledgement feature controls the NO_ACK flag. This flag is only used when the auto acknowledgement feature is used. Setting the flag high, tells the receiver that the packet is not to be auto acknowledged.
7.3.4
Payload
The payload is the user defined content of the packet. It can be 0 to 32 bytes wide and is transmitted on-air as it is uploaded (unmodified) to the device.
7.3.5
The CRC is the error detection mechanism in the packet. It may either be 1 or 2 bytes and is calculated over the address, Packet Control Field, and Payload. The polynomial for 1 byte CRC is X8 + X2 + X + 1. Initial value 0xFF The polynomial for 2 byte CRC is X16+ X12 + X5 + 1. Initial value 0xFFFF No packet is accepted by Enhanced ShockBurst if the CRC fails.
7.4
Enhanced ShockBurst uses ShockBurst for automatic packet handling. The functions are static and dynamic payload length, automatic packet assembly, automatic packet validation and automatic packet disassembly.
7.4.1
The Enhanced ShockBurst provides two alternatives for handling payload lengths, static and dynamic. The default alternative 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 variabel payload length to the receiver. This means for a system with different payload lenghts it is not necessary to scale the packet length to the longest payload.
Revision 2.0
Page 26 of 74
7.4.2
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
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
For the static packet lenght option the payload length field is not used. With DPL enabled, the value in the payload length field is automaticly 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 28 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 and the PRX does not transmit an ACK packet when it receives the packet.
7.4.2.4
Payload
7.4.2.5
CRC
The CRC is automaticly calculated based on the packet content with the polynomials in 7.3.5 on page 26. The number of bytes in the CRC is set by the CRCO bit in the CONFIG register.
7.4.3
Enhanced ShockBurst features automatic packet validation. In receive mode the nRF24L01 is constanly searching for a valid address (given in the RX_ADDR registers.) If a valid address is detected the Enhanched ShockBurst will start to validate the packet.
Revision 2.0
Page 27 of 74
Yes
Yes
No
Yes
End
End
7.4.4
After the packet is validated,Enhanched ShockBurst disassembles the packet and loads the payload into the RX FIFO, and assert the RX_DR IRQ
7.5
Enhanced ShockBurst features two functions for automatic packet transaction handling; auto acknowledgement and auto re-transmit.
Revision 2.0
Page 28 of 74
Auto acknowledgment is a function that automatically transmits an ACK packet to the PTX after it has received and validated a packet. The auto acknowledgement function reduces the load of the system MCU and can remove the need for dedicated SPI hardware. This also reduces cost and average current consumption. The Auto Acknowledgement feature is enabled by setting the EN_AA register. Note: If the received packet has the NO_ACK flag set, the auto acknowledgement is not executed. An ACK packet can contain an optional payload from PRX to PTX. In order to use this feature, the dynamic payload length feature mus be enabled. The MCU on the PRX side has to upload the payload by clocking it into the TX FIFO by using the W_ACK_PAYLOAD command. The payload is pending in the TX FIFO (PRX) until a new packet is received from the PTX. nRF24L01 can have three ACK packet payloads pending in the TX FIFO (PRX) at the same time.
RX Pipe address
Address decoder and buffer controller
ACK generator
TX Pipe address
SPI Module
From MCU
Figure 7. TX FIFO (PRX) with pending payloads Figure 7. shows how the TX FIFO (PRX) is operated when handling pending ACK packet payloads. From the MCU the payload is clocked in with the W_ACK_PAYLOAD command. The address decoder and buffer controller ensure that the payload is stored in a vacant slot in the TX FIFO (PRX). When a packet is received, the address decoder and buffer controller are notified with the PTX address. This ensures that the right payload is presented to the ACK generator. If the TX FIFO (PRX) contains more than one payload to a PTX, payloads are handled using the first in first out principle. The TX FIFO (PRX) is blocked if all pending payloads are addressed to a PTX where the link is lost. In this case, the MCU can flush the TX FIFO (PRX) by using the FLUSH_TX command. In order to enable Auto Acknowledgement with payload the EN_ACK_PAY bit in the FEATURE register must be set.
7.5.2
The auto retransmission is a function that retransmits a packet if an ACK packet is not received. It is used at the PTX side in an auto acknowledgement system. You can set up the number of times a packet is allowed to be retransmitted if a packet is not acknowledged with the ARC bits in the SETUP_RETR register. PTX enters RX mode and waits a time period for an ACK packet each time a packet is transmitted. The time period the PTX is in RX mode is based on the following conditions: Auto Retransmit Delay (ARD) elapsed or No address match within 250s or After received packet (CRC correct or not) if address match within 250s
nRF24L01 asserts the TX_DS IRQ when the ACK packet is received
Revision 2.0
Page 29 of 74
Revision 2.0
Page 30 of 74
This section shows flowcharts for PTX and PRX operation in Enhanced ShockBurst. ShockBurst operation is marked with a dashed square in the flow charts.
7.6.1
PTX operation
The flowchart in Figure 8. shows how a nRF24L01 configured as a PTX behaves after entering standby-I mode.
Start Primary TX
Is CE=1?
Yes
No
Is CE =1?
Yes
Standby-II mode
No
Packet in TX FIFO?
Yes No No
Packet in TX FIFO?
Yes
TX Settling
Packet in TX FIFO?
Yes
Yes
No
Yes
Yes
No_ACK?
No
Timeout?
No
Is an ACK received?
Yes
Yes
Standby-I mode
No
Yes
No
Yes
Yes
Figure 8. PTX operations in Enhanced ShockBurst You activate PTX mode by setting the CE pin high. If there is a packet present in the TX FIFO the nRF24L01 enters TX mode and transmits the packet. If Auto Retransmit is enabled, the state machine
Revision 2.0
Page 31 of 74
Revision 2.0
Page 32 of 74
The flowchart in Figure 9. shows how a nRF24L01 configured as a PRX behaves after entering standby-I mode.
Start Primary RX
ShockBurst operation
Standby-I mode
No
Is CE =1?
No Yes
RX Settling RX mode
Yes
Is CE =1?
RX FIFO Full?
No
Yes
Packet received?
Yes
No
Yes
No
Yes Yes
Discard packet
No
Yes
No
No
Yes
TX Settling
Figure 9. PRX operations in Enhanced ShockBurst You activate PRX mode by setting the CE pin high. The nRF24L01 enters RX mode and starts searching for packets. If a packet is received and Auto Acknowledgement is enabled the nRF24L01 decides if this is a new packet or a copy of a previously received packet. If the packet is new the payload is made available in the RX FIFO and the RX_DR IRQ is asserted. If the last received packet from the transmitter is acknowledged with an ACK packet with payload, the TX_DS IRQ indicates that the PTX received the ACK packet
Revision 2.0
Page 33 of 74
Revision 2.0
Page 34 of 74
Multiceiver is a feature used in RX mode that contains a set of 6 parallel data pipes with unique addresses. A data pipe is a logical channel in the physical RF channel. Each data pipe has its own physical address decoding in the nRF24L01.
PTX3 PTX2
Pipe 4
Data
PTX4 PTX5
Data
Da ta P
Da ta
PTX1
Pi pe
ipe 1
Figure 10. PRX using multiceiver nRF24L01 configured as PRX (primary receiver) can receive data addressed to six different data pipes in one frequency channel as shown in Figure 10. Each data pipe has its own unique address and can be configured for individual behavior. Up to six nRF24L01s configured as PTX can communicate with one nRF24L01 configured as PRX. All data pipe addresses are searched for simultaneously. Only one data pipe can receive a packet at a time. All data pipes can perform Enhanced ShockBurst functionality. The following settings are common to all data pipes: CRC enabled/disabled (CRC always enabled when Enhanced ShockBurst is enabled) CRC encoding scheme RX address width Frequency channel Air data rate LNA gain
The data pipes are enabled with the bits in the EN_RXADDR register. By default only data pipe 0 and 1 are enabled. Each data pipe address is configured in the RX_ADDR_PX registers.
ta Da pe Pi 2
Frequency Channel N
Pipe 3
PTX6
P 0 ipe
Data
PRX
Revision 2.0
Page 35 of 74
Revision 2.0
Page 36 of 74
PTX3
PTX4
PTX2
Data
Pi p
Pipe
TX _ A R X _ D D R: A DD 0x R_ P 0 : 0 B 3 B 4B 5 x B3 B4 B B 6 F 1 5B 6 F1
Da ta
Da ta
PTX1
TX RX _AD _A DR DD : R_ P0 0x :0 B3 xB B4 3B B5 4B B6 5B 0F 60 F
Figure 12. Example of data pipe addressing in multiceiver No other data pipe can receive data until a complete packet is received by a data pipe that has detected its address. When multiple PTXs are transmitting to a PRX, the ARD can be used to skew the auto retransmission so that they only block each other once.
PTX5
Data
ta Da pe Pi 2
Pip e1
Data Data Data Data Data Data Pipe Pipe Pipe Pipe Pipe Pipe 0 1 2 3 4 5
Pipe 3
PTX6
D at
aP
0 ipe
R: 0 P ADD TX_ AD DR_ RX _
PRX
Frequency Channel N
Revision 2.0
Page 37 of 74
This section describes the timing sequence of Enhanced ShockBurst and how all modes are initiated and operated. The Enhanced ShockBurst timing is controlled through the Data and Control interface. The nRF24L01 can be set to static modes or autonomous modes where the internal state machine controls the events. Each autonomous mode/sequence is ended with an interrupt at the IRQ pin. All the interrupts are indicated as IRQ events in the timing diagrams.
>10us TIRQ TUL PTX SPI UL 130us TOA
IRQ: TX DS1
PTX CE
PTX IRQ
PTX MODE
Standby 1
PLL Lock
TX
Standby-I
Figure 13. Transmitting one packet with NO_ACK on The following equations calculate various timing measurements: Symbol TOA Description Time on-air
TOA
Equation
8bit 1[byte]+ 3,4 or 5 [bytes ]+ N [bytes ]+ 1 or 2 [bytes ] + byte preamble packet length address payload CRC = = air data rate air data rate bit s 9 [bit ]
packet control field
[ ]
[ ]
TACK
TUL
Time Upload
TU L = N [bytes ] 8 bit byte payload length payload = SPI data rate SPI data rate bit s
[ ]
TESB
Revision 2.0
Page 38 of 74
130us
TOA
IRQ: TX DS
PTX CE
PTX IRQ
PTX MODE
Standby 1
PLL Lock
TX
PLL Lock
RX
Standby 1
PRX MODE
Standby 1
PLL Lock
RX
PLL Lock
TX
PLL Lock
RX
PRX IRQ
PRX CE
Figure 14. Timing of Enhanced ShockBurst for one packet upload (2Mbps) In Figure 14. the transmission and acknowledgement of a packet are shown. The PRX device is turned into RX mode (CE=1), and the PTX device is set to TX mode (CE=1 for minimum 10s). After 130s the transmission starts and finishes after the elapse of TOA. When the transmission ends the PTX device automatically switches to RX mode to wait for the ACK packet from the PRX device. After the PTX device receives the ACK packet it responds with an interrupt to the MCU. When the PRX device receives the packet it responds with an interrupt to the MCU.
Revision 2.0
Page 39 of 74
This section describes how several scenarios for the Enhanced ShockBurst automatic transaction handling. The call outs in this sections figures indicate the IRQs and other events. For MCU activity the event may be placed at a different timeframe. Note: The figures in this section indicate the earliest possible download (DL) of the packet to the MCU and the latest possible upload (UL) of payload to the transmitter.
7.9.1
In Figure 15. the basic auto acknowledgement is shown. After the packet is transmitted by the PTX and received by the PRX the ACK packet is transmitted from the PRX to the PTX. The RX_DR IRQ is asserted after the packet is received by the PRX, whereas the TX_DS IRQ is asserted when the packet is acknowledged and the ACK packet is received by the PTX.
MCU PTX
UL
IRQ
130us1
PTX
TX:PID=1
RX
PRX
RX
ACK:PID=1
MCU PRX
1 Radio Turn Around Delay
DL
Figure 15. TX/RX cycles with ACK and the according interrupts
Revision 2.0
Page 40 of 74
Figure 16. is a scenario where a retransmission is needed due to loss of the first packet transmit. After the packet is transmitted, the PTX enters RX mode to receive the ACK packet. After the first transmission, the PTX waits a specified time for the ACK packet, if it is not in the specific time slot the PTX retransmits the packet as shown in Figure 16.
MCU PTX
UL IRQ
130us1
130us1
RX TX:PID=1
130us1
RX
PTX
TX:PID=1
ARD
PRX
RX
ACK:PID=1
MCU PRX
1 Radio Turn Around Delay
DL
Figure 16. TX/RX cycles with ACK and the according interrupts when the first packet transmit fails When an address is detected the PTX stays in RX mode until the packet is received. When the retransmitted packet is received by the PRX (see Figure 16.), the RX_DR IRQ is asserted and an ACK is transmitted back to the PTX. When the ACK is received by the PTX, the TX_DS IRQ is asserted.
7.9.3
Figure 17. is a scenario where a retransmission is needed after a loss of the ACK packet. The corresponding interrupts are also indicated.
MCU PTX
UL No address detected. RX off to save current Auto retransmit delay elapsed
1
130us
130us
RX
130us1
TX:PID=1 RX
PTX
TX:PID=1
ARD
PRX
RX
ACK:PID=1
RX
ACK:PID=1
MCU PRX
Figure 17. TX/RX cycles with ACK and the according interrupts when the ACK packet fails
Revision 2.0
Page 41 of 74
Figure 18. is a scenario of the basic auto acknowledgement with payload. After the packet is transmitted by the PTX and received by the PRX the ACK packet with payload is transmitted from the PRX to the PTX. The RX_DR IRQ is asserted after the packet is received by the PRX, whereas on the PTX side the TX_DS IRQ is asserted when the ACK packet is received by the PTX. On the PRX side, the TX_DS IRQ for the ACK packet payload is asserted after a new packet from PTX is received. The position of the IRQ in Figure 18. shows where the MCU can respond to the interrupt.
MCU PTX
UL1 UL2 ACK received IRQ: TX DS (PID=1) RX DR (ACK1PAY) DL IRQ Transmit of packet PID=2
130us1
130us3
RX TX:PID=2
PTX
TX:PID=1
PRX
RX
ACK1 PAY
RX
MCU PRX
UL2
1 Radio Turn Around Delay 2 Uploading Paylod for Ack Packet 3 Delay defined by MCU on PTX side, 130us
Figure 18. TX/RX cycles with ACK Payload and the according interrupts
7.9.5
Figure 19. is a scenario where the first packet is lost and a retransmission is needed before the RX_DR IRQ on the PRX side is asserted. For the PTX both the TX_DS and RX_DR IRQ are asserted after the ACK packet is received. After the second packet (PID=2) is received on the PRX side both the RX_DR (PID=2) and TX_DS (ACK packet payload) IRQ are asserted.
MCU PTX
UL1
UL2
DL IRQ Auto retransmit delay elapsed Retransmit of packet PID=1 ACK received IRQ: TX DS (PID=1) RX DR (ACK1PAY)
130us1
130us1
RX TX:PID=1
130us1
RX
130us3
TX:PID=2
PTX
TX:PID=1
ARD
PRX
RX
ACK1 PAY
RX
MCU PRX
UL 2
1 Radio Turn Around Delay 2 Uploading Paylod for Ack Packet 3 Delay defined by MCU on PTX side, 130us
Figure 19. TX/RX cycles and the according interrupts when the packet transmission fails
Revision 2.0
Page 42 of 74
MCU PTX
130us
130us
RX
130us
TX:PID=1
130us3
RX TX:PID=2
130us 1
RX
130us3
TX:PID=3
PTX
TX:PID=1
ARD
PRX
RX
ACK1 PAY
RX
ACK1 PAY
RX
ACK2 PAY
RX
MCU PRX
UL1
1 Radio Turn Around Delay 2 Uploading Paylod for Ack Packet 3 Delay defined by MCU on PTX side, 130us
Figure 20. TX/RX cycles with ACK Payload and the according interrupts when the ACK packet fails In Figure 20. the ACK packet is lost and a retransmission is needed before the TX_DS IRQ is asserted, but the RX_DR IRQ is asserted immediately. The retransmission of the packet (PID=1) results in a discarded packet. For the PTX both the TX_DS and RX_DR IRQ are asserted after the second transmission of ACK, which is received. After the second packet (PID=2) is received on the PRX both the RX_DR (PID=2) and TX_DS (ACK1PAY) IRQ is asserted. The callouts explains the different events and interrupts.
7.9.7
UL
130us1
130us1
RX TX:PID=1
130us 1
RX
130us3
TX:PID=1
130us1
RX
PTX
TX:PID=1
ARD
ARD 130us1
PRX
Packet received. IRQ: RX DR (PID=1)
RX
ACK1 PAY
RX
ACK1 PAY
RX
MCU PRX
UL2
1 Radio Turn Around Delay 2 Uploading Paylod for Ack Packet 3 Delay defined by MCU on PTX side, 130us
Figure 21. TX/RX cycles with ACK Payload and the according interrupts when the transmission fails. ARC is set to 2. If the auto retransmit counter (ARC_CNT) exceeds the programmed maximum limit (ARC), the MAX_RT IRQ is asserted. In Figure 21. the packet transmission ends with a MAX_RT IRQ. The payload in TX FIFO is NOT removed and the MCU decides the next step in the protocol. A toggle of the CE starts a new sequence of transmitting the same packet. The payload can be removed from the TX FIFO using the FLUSH_TX command.
Revision 2.0
Page 43 of 74
The nRF24L01 can have the Enhanced ShockBurst feature disabled in order to be backward compatible with the nRF2401A, nRF24E1, nRF2402 and nRF24E2. Disabling the Enhanced ShockBurst features is done by setting register EN_AA=0x00 and the ARC = 0. In addition, the nRF24L01 air data rate must be set to 1Mbps.
7.10.1
The ShockBurst packet format is described in this chapter. MSB to the left.
CRC 1-2 byte
Preamble 1 byte
Payload 1 - 32 byte
Figure 22. A ShockBurst packet compatible with nRF2401/nRF2402/nRF24E1/nRF24E2 devices. The ShockBurst packet format has a preamble, address, payload and CRC field that is the same as in the Enhanced ShockBurst packet format described in section 7.3 on page 25. The differences between the ShockBurst packet and the Enhanced ShockBurst packet are: The 9 bit Packet Control Field is not present in the ShockBurst packet format. The CRC is optional in the ShockBurst packet format and is controled by the EN_CRC bit in the CONFIG register.
Revision 2.0
Page 44 of 74
The data and control interface gives you access to all the features in the nRF24L01. The data and control interface consists of the following six 5Volt tolerant digital signals: IRQ (this signal is active low and is controlled by three maskable interrupt sources) CE (this signal is active high and is used to activate the chip in RX or TX mode) CSN (SPI signal) SCK (SPI signal) MOSI (SPI signal) MISO (SPI signal)
You can use the SPI to activate the nRF24L01 data FIFOs or the register map by 1 byte SPI commands during all modes of operation.
8.1
Features
Special SPI commands for quick access to the most frequently used features 0-8Mbps 4-wire SPI serial interface 8 bit command set Easily configurable register map Full three level FIFO for both TX and RX direction
8.2
Functional description
8.3
SPI operation
8.3.1
SPI Commands
The SPI commands are shown in Table 16.. Every new command must be started by a high to low transition on CSN. In parallel to the SPI command word applied on the MOSI pin, the STATUS register is shifted serially out on the MISO pin. The serial shifting SPI commands is in the following format: <Command word: MSBit to LSBit (one byte)> <Data bytes: LSByte to MSByte, MSBit in each byte first> See Figure 23. on page 47 and Figure 24. on page 48 for timing information.
Revision 2.0
Page 45 of 74
R_RX_PAYLOAD
REUSE_TX_PL
1110 0011
ACTIVATE
0101 0000
R_RX_PL_WIDa W_ACK_PAYLOADa
Revision 2.0
Page 46 of 74
Table 16. Command set for the nRF24L01 SPI The W_REGISTER and R_REGISTER commands can operate on single or multi-byte registers. When accessing multi-byte registers you read or write to the MSBit of LSByte first. You can terminate the writing before all bytes in a multi-byte register are written, leaving the unwritten MSByte(s) unchanged. For example, the LSByte of RX_ADDR_P0 can be modified by writing only one byte to the RX_ADDR_P0 register. The content of the status register is always read to MISO after a high to low transition on CSN. Note: The 3 bit pipe information in the STATUS register is updated during the IRQ pin high to low transition. If the STATUS register is read during an IRQ pin high to low transition, the pipe information is unreliable.
8.3.2
SPI timing
SPI operation and timing is shown in Figure 23. on page 47 to Figure 25. on page 48 and in Table 18. on page 49 to Table 23. on page 50. nRF24L01 must be in one of the standby modes or in power down mode before writing to the configuration registers. In Figure 23. on page 47 to Figure 25. on page 48 the following abbreviations are used: Abbreviation Description Cn SPI command bit Sn STATUS register bit Dn Data Bit (Note: LSByte to MSByte, MSBit in each byte first) Table 17. Abbreviations used in Figure 23. to Figure 25.
S7
S6
S5
S4
S3
S2
S1
S0
D7
D6
D5
D4
D3
D2
D1
D0
D1 5
D1 4
D1 3
D1 2
D1 1
D1 0
D9
D8
Revision 2.0
Page 47 of 74
S7
S6
S5
S4
S3
S2
S1
S0
Tcc
SCK
Tch Tdh
Tcl
Tcch
Tdc
MOSI
C7 C6 C0
Tcsd
MISO
S7
Tcd
S0
Tcdz
Figure 25. SPI NOP timing diagram Figure 26. shows the Rpull and Cload that are referenced in Table 18. to Table 23.
Vdd
Rpull
Pin of nRF24L01
External Cload
Revision 2.0
Page 48 of 74
Symbol Tdc Tdh Tcsd Tcd Tcl Tch Fsck Tr,Tf Tcc Tcch Tcwh Tcdz
Parameters Data to SCK Setup SCK to Data Hold CSN to Data Valid SCK to Data Valid SCK Low Time SCK High Time SCK Frequency SCK Rise and Fall CSN to SCK Setup SCK to CSN Hold CSN Inactive time CSN to Output High Z
Min 2 2 40 40 0 2 2 50
Max
38 55 8 100
38
Units ns ns ns ns ns ns MHz ns ns ns ns ns
Table 18. SPI timing parameters (Cload = 5pF) Symbol Tdc Tdh Tcsd Tcd Tcl Tch Fsck Tr,Tf Tcc Tcch Tcwh Tcdz Parameters Data to SCK Setup SCK to Data Hold CSN to Data Valid SCK to Data Valid SCK Low Time SCK High Time SCK Frequency SCK Rise and Fall CSN to SCK Setup SCK to CSN Hold CSN Inactive time CSN to Output High Z Min 2 2 40 40 0 2 2 50 42 Max Units ns ns ns ns ns ns MHz ns ns ns ns ns
42 58 8 100
Table 19. SPI timing parameters (Cload = 10pF) Symbol Tdc Tdh Tcsd Tcd Tcl Tch Fsck Tr,Tf Tcc Tcch Tcwh Tcdz Parameters Data to SCK Setup SCK to Data Hold CSN to Data Valid SCK to Data Valid SCK Low Time SCK High Time SCK Frequency SCK Rise and Fall CSN to SCK Setup SCK to CSN Hold CSN Inactive time CSN to Output High Z Min 2 2 40 40 0 2 2 50 75 Max Units ns ns ns ns ns ns MHz ns ns ns ns ns
75 86 5 100
Revision 2.0
Page 49 of 74
Symbol Tdc Tdh Tcsd Tcd Tcl Tch Fsck Tr,Tf Tcc Tcch Tcwh Tcdz
Parameters Data to SCK Setup SCK to Data Hold CSN to Data Valid SCK to Data Valid SCK Low Time SCK High Time SCK Frequency SCK Rise and Fall CSN to SCK Setup SCK to CSN Hold CSN Inactive time CSN to Output High Z
Min 2 2 40 40 0 2 2 50
Max
116
Units ns ns ns ns ns ns MHz ns ns ns ns ns
Table 21. SPI timing parameters (Rpull = 10k, Cload = 100pF) Symbol Tdc Tdh Tcsd Tcd Tcl Tch Fsck Tr,Tf Tcc Tcch Tcwh Tcdz Parameters Data to SCK Setup SCK to Data Hold CSN to Data Valid SCK to Data Valid SCK Low Time SCK High Time SCK Frequency SCK Rise and Fall CSN to SCK Setup SCK to CSN Hold CSN Inactive time CSN to Output High Z Min 2 2 40 40 0 2 2 50 75 Max Units ns ns ns ns ns ns MHz ns ns ns ns ns
75 85 5 100
Table 22. SPI timing parameters (Rpull = 50k, Cload = 50pF) Symbol Tdc Tdh Tcsd Tcd Tcl Tch Fsck Tr,Tf Tcc Tcch Tcwh Tcdz Parameters Data to SCK Setup SCK to Data Hold CSN to Data Valid SCK to Data Valid SCK Low Time SCK High Time SCK Frequency SCK Rise and Fall CSN to SCK Setup SCK to CSN Hold CSN Inactive time CSN to Output High Z Min 2 2 40 40 0 2 2 50 116 Max Units ns ns ns ns ns ns MHz ns ns ns ns ns
Revision 2.0
Page 50 of 74
The data FIFOs are used to store payload that is transmitted (TX FIFO) or payload that is received and ready to be clocked out (RX FIFO). The FIFOs are accessible in both PTX mode and PRX mode. The following FIFOs are present in nRF24L01: TX three level, 32 byte FIFO RX three level, 32 byte FIFO
Both FIFOs have a controller and are accessible through the SPI by using dedicated SPI commands. A TX FIFO in PRX can store payload for ACK packets to three different PTX devices. If the TX FIFO contains more than one payload to a pipe, payloads are handled using the first in - first out principle. The TX FIFO in a PRX is blocked if all pending payloads are addressed to pipes where the link to the PTX is lost. In this case, the MCU can flush the TX FIFO by using the FLUSH_TX command. The RX FIFO in PRX may contain payload from up to three different PTX devices. A TX FIFO in PTX can have up to three payloads stored. The TX FIFO can be written to by three commands, W_TX_PAYLOAD and W_TX_PAYLOAD_NO_ACK in PTX mode and W_ACK_PAYLOAD in PRX mode. All three commands give access to the TX_PLD register. The RX FIFO can be read by the command R_RX_PAYLOAD in both PTX and PRX mode. This command gives access to the RX_PLD register. The payload in TX FIFO in a PTX is NOT removed if the MAX_RT IRQ is asserted. Figure 27. is a block diagram of the TX FIFO and the RX FIFO.
RX FIFO 32 byte Data 32 byte 32 byte Data
Figure 27. FIFO block diagram In the FIFO_STATUS register it is possible to read if the TX and RX FIFO is full or empty. The TX_REUSE bit is also available in the FIFO_STATUS register. TX_REUSE is set by the SPI command REUSE_TX_PL, and is reset by the SPI commands W_TX_PAYLOAD or FLUSH TX.
Revision 2.0
Page 51 of 74
SPI
The nRF24L01 has an active low interrupt (IRQ) pin. The IRQ pin is activated when TX_DS IRQ, RX_DR IRQ or MAX_RT IRQ are set high by the state machine in the STATUS register. The IRQ pin resets when MCU writes '1' to the IRQ source bit in the STATUS register. The IRQ mask in the CONFIG register is used to select the IRQ sources that are allowed to assert the IRQ pin. By setting one of the MASK bits high, the corresponding IRQ source is disabled. By default all IRQ sources are enabled. Note: The 3 bit pipe information in the STATUS register is updated during the IRQ pin high to low transition. If the STATUS register is read during an IRQ pin high to low transition, the pipe information is unreliable.
Revision 2.0
Page 52 of 74
You can configure and control the radio chip by accessing the register map through the SPI by using read and write commands.
9.1
All undefined bits in the table below are redundant. They are read out as '0'. Note: Addresses 18 to 1B are reserved for test purposes, altering them will make the chip malfunction. Address (Hex) 00 Mnemonic CONFIG Reserved MASK_RX_DR Bit Reset Value Type Description
7 6
0 0
MASK_TX_DS
MASK_MAX_RT
EN_CRC CRCO
3 2
1 0
PWR_UP PRIM_RX
1 0
0 0
Configuration Register R/W Only '0' allowed R/W Mask interrupt caused by RX_DR 1: Interrupt not reflected on the IRQ pin 0: Reflect RX_DR as active low interrupt on the IRQ pin R/W Mask interrupt caused by TX_DS 1: Interrupt not reflected on the IRQ pin 0: Reflect TX_DS as active low interrupt on the IRQ pin R/W Mask interrupt caused by MAX_RT 1: Interrupt not reflected on the IRQ pin 0: Reflect MAX_RT as active low interrupt on the IRQ pin R/W Enable CRC. Forced high if one of the bits in the EN_AA is high R/W CRC encoding scheme '0' - 1 byte '1' 2 bytes R/W 1: POWER UP, 0:POWER DOWN R/W RX/TX control 1: PRX, 0: PTX Enable Auto Acknowledgment Function Disable this functionality to be compatible with nRF2401, see page 65 Only '00' allowed Enable auto acknowledgement data pipe 5 Enable auto acknowledgement data pipe 4 Enable auto acknowledgement data pipe 3 Enable auto acknowledgement data pipe 2 Enable auto acknowledgement data pipe 1 Enable auto acknowledgement data pipe 0
01
EN_AA Enhanced ShockBurst Reserved ENAA_P5 ENAA_P4 ENAA_P3 ENAA_P2 ENAA_P1 ENAA_P0 EN_RXADDR Reserved ERX_P5 ERX_P4
7:6 5 4 3 2 1 0 7:6 5 4
00 1 1 1 1 1 1 00 0 0
02
Enabled RX Addresses R/W Only '00' allowed R/W Enable data pipe 5. R/W Enable data pipe 4.
Revision 2.0
Page 53 of 74
Setup of Address Widths (common for all data pipes) R/W Only '000000' allowed R/W RX/TX Address field width '00' - Illegal '01' - 3 bytes '10' - 4 bytes '11' 5 bytes LSByte is used if address width is below 5 bytes Setup of Automatic Retransmission R/W Auto Retransmit Delay 0000 Wait 250S 0001 Wait 500S 0010 Wait 750S .. 1111 Wait 4000S (Delay defined from end of transmission to start of next transmission)a R/W Auto Retransmit Count 0000 Re-Transmit disabled 0001 Up to 1 Re-Transmit on fail of AA 1111 Up to 15 Re-Transmit on fail of AA RF Channel R/W Only '0' allowed R/W Sets the frequency channel nRF24L01 operates on RF Setup Register R/W Only '000' allowed R/W Force PLL lock signal. Only used in test R/W Air Data Rate 0 1Mbps 1 2Mbps R/W Set RF output power in TX mode '00' -18dBm '01' -12dBm '10' -6dBm '11' 0dBm R/W Setup LNA gain
04
SETUP_RETR ARD
7:4
0000
ARC
3:0
0011
05
7 6:0
0 0000010
06
7:5 4 3
000 0 1
RF_PWR
2:1
11
LNA_HCURR
Revision 2.0
Page 54 of 74
Reserved RX_DR
7 6
0 0
R/W R/W
TX_DS
R/W
MAX_RT
R/W
RX_P_NO
3:1
111
TX_FULL
08
OBSERVE_TX PLOS_CNT
7:4
ARC_CNT
3:0
09
CD Reserved CD RX_ADDR_P0
R R
0A 0B 0C 0D 0E 0F
RX_ADDR_P1
R/W Receive address data pipe 0. 5 Bytes maximum length. (LSByte is written first. Write the number of bytes defined by SETUP_AW) R/W Receive address data pipe 1. 5 Bytes maximum length. (LSByte is written first. Write the number of bytes defined by SETUP_AW) R/W Receive address data pipe 2. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8] R/W Receive address data pipe 3. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8] R/W Receive address data pipe 4. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8] R/W Receive address data pipe 5. Only LSB. MSBytes is equal to RX_ADDR_P1[39:8]
Revision 2.0
Page 55 of 74
R/W Transmit address. Used for a PTX device only. (LSByte is written first) Set RX_ADDR_P0 equal to this address to handle automatic acknowledge if this is a PTX device with Enhanced ShockBurst enabled. See page 65. R/W Only '00' allowed R/W Number of bytes in RX payload in data pipe 0 (1 to 32 bytes). 0 Pipe not used 1 = 1 byte 32 = 32 bytes R/W Only '00' allowed R/W Number of bytes in RX payload in data pipe 1 (1 to 32 bytes). 0 Pipe not used 1 = 1 byte 32 = 32 bytes R/W Only '00' allowed R/W Number of bytes in RX payload in data pipe 2 (1 to 32 bytes). 0 Pipe not used 1 = 1 byte 32 = 32 bytes R/W Only '00' allowed R/W Number of bytes in RX payload in data pipe 3 (1 to 32 bytes). 0 Pipe not used 1 = 1 byte 32 = 32 bytes R/W Only '00' allowed
11
7:6 5:0
00 0
12
7:6 5:0
00 0
13
7:6 5:0
00 0
14
7:6 5:0
00 0
15
RX_PW_P4 Reserved
7:6
00
Revision 2.0
Page 56 of 74
R/W Number of bytes in RX payload in data pipe 4 (1 to 32 bytes). 0 Pipe not used 1 = 1 byte 32 = 32 bytes R/W Only '00' allowed R/W Number of bytes in RX payload in data pipe 5 (1 to 32 bytes). 0 Pipe not used 1 = 1 byte 32 = 32 bytes FIFO Status Register R/W Only '0' allowed R Reuse last transmitted data packet if set high. The packet is repeatedly retransmitted as long as CE is high. TX_REUSE is set by the SPI command REUSE_TX_PL, and is reset by the SPI commands W_TX_PAYLOAD or FLUSH TX R TX FIFO full flag. 1: TX FIFO full. 0: Available locations in TX FIFO. R TX FIFO empty flag. 1: TX FIFO empty. 0: Data in TX FIFO. R/W Only '00' allowed R RX FIFO full flag. 1: RX FIFO full. 0: Available locations in RX FIFO. R RX FIFO empty flag. 1: RX FIFO empty. 0: Data in RX FIFO. W Written by separate SPI command ACK packet payload to data pipe number PPP given in SPI command Used in RX mode only Maximum three ACK packet payloads can be pending. Payloads with same PPP are handled first in first out. W Written by separate SPI command TX data payload register 1 - 32 bytes. This register is implemented as a FIFO with three levels. Used in TX mode only
16
7:6 5:0
00 0
17
7 6
0 0
TX_FULL TX_EMPTY
5 4
0 1
Reserved RX_FULL
3:2 1
00 0
RX_EMPTY
N/A
ACK_PLDc
255:0
N/A
TX_PLD
255:0
Revision 2.0
Page 57 of 74
1C
7:6 5 4 3 2 1 0
0 0 0 0 0 0 0
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
1D
7:3 2 1 0
0 0 0 0
a. This is the time the PTX is waiting for an ACK packet before a retransmit is made. The PTX is in RX mode for a minimum of 250S, but it stays in RX mode to the end of the packet if that is longer than 250S. Then it goes to standby-I mode for the rest of the specified ARD. After the ARD it goes to TX mode and then retransmits the packet. b. The RX_DR IRQ is asserted by a new packet arrival event. The procedure for handling this interrupt should be: 1) read payload through SPI, 2) clear RX_DR IRQ, 3) read FIFO_STATUS to check if there are more payloads available in RX FIFO, 4) if there are more data in RX FIFO, repeat from 1) c. To activate this feature use the ACTIVATE SPI command followed by data 0x73. The corresponding bits in the FEATURE register must be set. d. If ACK packet payload is activated, ACK packets have dynamic payload lengths and the Dynamic Payload Length feature should be enabled for pipe 0 on the PTX and PRX. This is to ensure that they receive the ACK packets with payloads. If the payload in ACK is more than 15 byte in 2Mbps mode the ARD must be 500S or more, and if the payload is more than 5byte in 1Mbps mode the ARD must be 500S or more.
Revision 2.0
Page 58 of 74
This chapter describes peripheral circuitry and PCB layout requirements that are important for achieving optimum RF performance from the nRF24L01.
10.1
Antenna output
The ANT1 and ANT2 output pins provide a balanced RF output to the antenna. The pins must have a DC path to VDD_PA, either through a RF choke or through the center point in a balanced dipole antenna. A load of 15+j88 is recommended for maximum output power (0dBm). Lower load impedance (for instance 50) can be obtained by fitting a simple matching network between the load and ANT1 and ANT2. A recommended matching network for 50 load impedance is described in Appendix D on page 69.
10.2
Crystal oscillator
A crystal being used with the nRF24L01 must fulfil the specifications given in Table 8. on page 17. To achieve a crystal oscillator solution with low power consumption and fast start-up time a crystal with a low load capacitance specification must be used. A lower C0 also gives lower current consumption and faster start-up time, but may increase the cost of the crystal. Typically C0=1.5pF at a crystal specified for C0max=7.0pF. The crystal load capacitance, CL, is given by:
CL =
C1 and C2 are SMD capacitors as shown in the application schematics, see Figure 30. on page 69. CPCB1 and CPCB2 are the layout parasitic on the circuit board. CI1 and CI2 are the capacitance seen into the XC1 and XC2 pins respectively; the value is typically 1pF for each of these pins.
10.3
When using an MCU to drive the crystal reference input XC1 of the nRF24L01 transceiver the rules described in the following sections (10.3.1 and 10.3.2) must be followed.
10.3.1
Crystal parameters
The requirement of load capacitance CL is only set by the MCU when the MCU drives the nRF24L01 clock input. The frequency accuracy of 60ppm is still required to get a functional radio link. The nRF24L01 loads the crystal by 1pF in addition to the PCB routing.
10.3.2
The input signal should not have amplitudes exceeding any rail voltage. Exceeding rail voltage excites the ESD structure and the radio performance is degraded below specification. You must use an external DC block if you are testing the nRF24L01 with a reference source that has no DC offset (which is often the case with a RF source).
Revision 2.0
Page 59 of 74
XO_OUT
Vss
ESD
Vss
Figure 28. Principle of crystal oscillator The nRF24L01 crystal oscillator is amplitude regulated. It is recommended to use an input signal larger than 0.4V-peak to achieve low current consumption and good signal-to-noise ratio when using an external clock. XC2 is not used and can be left as an open pin when clocked externally.
10.4
A well designed PCB is necessary to achieve good RF performance. A poor layout can lead to loss of performance or functionality. A fully qualified RF-layout for the nRF24L01 and its surrounding components, including matching networks, can be downloaded from www.nordicsemi.no. A PCB with a minimum of two layers including a ground plane is recommended for optimum performance. The nRF24L01 DC supply voltage should be decoupled as close as possible to the VDD pins with high performance RF capacitors, see Table 26. on page 69. It is preferable to mount a large surface mount capacitor (for example, 4.7F ceramic) in parallel with the smaller value capacitors. The nRF24L01 supply voltage should be filtered and routed separately from the supply voltages of any digital circuitry. Long power supply lines on the PCB should be avoided. All device grounds, VDD connections and VDD bypass capacitors must be connected as close as possible to the nRF24L01 IC. For a PCB with a topside RF ground plane, the VSS pins should be connected directly to the ground plane. For a PCB with a bottom ground plane, the best technique is to have via holes as close as possible to the VSS pads. A minimum of one via hole should be used for each VSS pin. Full swing digital data or control signals should not be routed close to the crystal or the power supply lines. The exposed die attach pad is a ground pad connected to the IC substrate die ground and is intentionally not used in our layouts. It is recommended to keep it unconnected.
Revision 2.0
Page 60 of 74
nRF24L01 uses the QFN20 4x4 package, with matt tin plating.
Revision 2.0
Page 61 of 74
A1 A3 K D/E e 0.00 0.02 0.20 0.20 min 4.0 0.5 BSC 0.05 REF. BSCa
L1 0.15 max
a. BSC: Basic Spacing between Centers, ref. JEDEC standard 95, page 4.17-11/A
Revision 2.0
Page 62 of 74
a. MOQ = Minimum order quantity b. Moisture Sensitivity Level: MSL2@260C, three times reflow
12.1
n 2 Y
Package marking
X L
R F B 4 L 0 1 Y W W L
12.2
Abbreviations
Abbreviation nRF B X YY WW LL Definition Fixed text Variable Build Code, that is, unique code for production sites, package type and test platform X" grade, i.e. Engineering Samples (optional) 2 digit Year number 2 digit Week number 2 letter wafer lot number code
Revision 2.0
Page 63 of 74
Revision 2.0
Page 64 of 74
nRF24L01 Product Specification Appendix A - Enhanced ShockBurst - Configuration and Communication Example Enhanced ShockBurst Transmitting Payload
1. 2. The configuration bit PRIM_RX has to be low. When the application MCU has data to transmit, the address for the receiving node (TX_ADDR) and payload data (TX_PLD) has to be clocked into nRF24L01 through the SPI. The width of TXpayload is counted from number of bytes written into the TX FIFO from the MCU. TX_PLD must be written continuously while holding CSN low. TX_ADDR does not have to be rewritten if it is unchanged from last transmit. If the PTX device shall receive acknowledge, data pipe 0 has to be configured to receive the ACK packet. The RX address for data pipe 0 (RX_ADDR_P0) has to be equal to the TX address (TX_ADDR) in the PTX device. For the example in Figure 12. on page 37 the following address settings have to be performed for the TX5 device and the RX device: TX5 device: TX_ADDR = 0xB3B4B5B605 TX5 device: RX_ADDR_P0 = 0xB3B4B5B605 RX device: RX_ADDR_P5 = 0xB3B4B5B605 A high pulse on CE starts the transmission. The minimum pulse width on CE is 10s. nRF24L01 ShockBurst: X Radio is powered up. X 16MHz internal clock is started. X RF packet is completed (see the packet description). X Data is transmitted at high speed (1Mbps or 2Mbps configured by MCU). If auto acknowledgement is activated (ENAA_P0=1) the radio goes into RX mode immediately, unless the NO_ACK bit is set in the received packet. If a valid packet has been received in the valid acknowledgement time window, the transmission is considered a success. The TX_DS bit in the STATUS register is set high and the payload is removed from TX FIFO. If a valid ACK packet is not received in the specified time window, the payload is retransmitted (if auto retransmit is enabled). If the auto retransmit counter (ARC_CNT) exceeds the programmed maximum limit (ARC), the MAX_RT bit in the STATUS register is set high. The payload in TX FIFO is NOT removed. The IRQ pin is active when MAX_RT or TX_DS is high. To turn off the IRQ pin, the interrupt source must be reset by writing to the STATUS register (see Interrupt chapter). If no ACK packet is received for a packet after the maximum number of retransmits, no further packets can be transmitted before the MAX_RT interrupt is cleared. The packet loss counter (PLOS_CNT) is incremented at each MAX_RT interrupt. That is, ARC_CNT counts the number of retransmits that was required to get a single packet through. PLOS_CNT counts the number of packets that did not get through after maximum number of retransmits. nRF24L01 goes into standby-I mode if CE is low. Otherwise next payload in TX FIFO is transmitted. If TX FIFO is empty and CE is still high, nRF24L01 enters standby-II mode. If nRF24L01 is in standby-II mode, it goes to standby-I mode immediately if CE is set low.
3. 4.
5.
6. 7.
2. 3. 4.
Revision 2.0
Page 65 of 74
5. 6. 7. 8.
Revision 2.0
Page 66 of 74
How to setup nRF24L01 to transmit to an nRF2401/nRF24E1: 1. 2. 3. 4. 5. 6. 7. 8. 9. Use the same CRC configuration as the nRF2401/nRF2402/nRF24E1/nRF24E2 Set the PRIM_RX bit to 0 Set the Auto Retransmit Count to 0 to disable the auto retransmit functionality Use the same address width as the nRF2401/nRF2402/nRF24E1/nRF24E2 uses Use the same frequency channel as the nRF2401/nRF2402/nRF24E1/nRF24E2 uses Select data rate 1Mbps on both nRF24L01 and nRF2401/nRF2402/nRF24E1/nRF24E2 Set PWR_UP high Clock in a payload that has the same length as the nRF2401/nRF2402/nRF24E1/nRF24E2 is configured to receive Pulse CE to transmit the packet
Revision 2.0
Page 67 of 74
Configuration
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Set PWR_UP = 1 in the CONFIG register Wait 1.5ms PWR_UP->standby Clear the PRIM_RX in the CONFIG register Set all auto acknowledgement functionality in the EN_AA register and the SETUP_RETR register to 0 Set output power Set PLL_LOCK to 1 Configure TX address as 5 bytes with all 0xFF Fill the TX payload with 32 bytes of 0xFF Turn off CRC Set the wanted RF channel Transmit the packet by pulsing CE (minimum 10s) Wait until the transmission ends (indicated by IRQ going active, a fixed delay of 1ms can also be used) Set CE high Use the SPI command for re-use of last sent packet (REUSE_TX_PL) Keep CE high as long as the carrier is needed
The nRF24L01 should now output a carrier. Note: This is not a clean carrier but is slightly modulated by the preamble.
Revision 2.0
Page 68 of 74
VDD
C7 33nF 0402
R2 22K 0402
1 2 3 4 5
C9 10nF 0402
C8 1nF 0402
U1
20 19 18 17 16
nRF24L01
15 14 13 12 11
IRQ
6 7 8 9 10
X1
C3 2.2nF 0402
C4 4.7pF 0402
Figure 30. nRF24L01 schematic for RF layouts with single ended 50 RF output Part 22pFa 22pFa 2.2nF 4.7pF 1.5pF 1,0pF 33nF 1nF 10nF 8,2nH 2.7nH 3,9nH 1M 22k nRF24L01 16MHz Designator C1 C2 C3 C4 C5 C6 C7 C8 C9 L1 L2 L3 R1 R2 U1 X1 Footprint 0402 0402 0402 0402 0402 0402 0402 0402 0402 0402 0402 0402 0402 0402 QFN20 4x4 Description NPO, +/- 2% NPO, +/- 2% X7R, +/- 10% NPO, +/- 0.25pF NPO, +/- 0.1pF NPO, +/- 0.1pF X7R, +/- 10% X7R, +/- 10% X7R, +/- 10% chip inductor +/- 5% chip inductor +/- 5% chip inductor +/- 5% +/-10% +/-1% +/-60ppm, CL=12pF
a. C1 and C2 must have values that match the crystals load capacitance, CL.
Table 26. Recommended components (BOM) in nRF24L01 with antenna matching network
Revision 2.0
Page 69 of 74
Figure 31. Top overlay (nRF24L01 RF layout with single ended connection to PCB antenna and 0402 size passive components)
Revision 2.0
Page 70 of 74
Figure 32. Top layer (nRF24L01 RF layout with single ended connection to PCB antenna and 0402 size passive components)
Figure 33. Bottom layer (nRF24L01 RF layout with single ended connection to PCB antenna and 0402 size passive components The nest figure (Figure 34. on page 72, Figure 35. on page 72 and Figure 36. on page 73) is for the SMA output to have a board for direct measurements at a 50 SMA connector.
Revision 2.0
Page 71 of 74
Figure 34. Top Overlay (Module with OFM crystal and SMA connector)
Figure 35. Top Layer (Module with OFM crystal and SMA connector)
Revision 2.0
Page 72 of 74
Figure 36. Bottom Layer (Module with OFM crystal and SMA connector)
Revision 2.0
Page 73 of 74
Revision 2.0
Page 74 of 74