Radio Frequency (RF) Communication

Introducing Nordic’s nRF24L01  2.4GHz Transceiver

The Nordic nRF24L01+ is a highly integrated, ultra low power (ULP) 2Mbps RF transceiver for the 2.4GHz ISM (Industrial, Scientific and Medical) band. With peak RX/TX currents lower than 14mA, a sub μA power down mode, advanced power management, and a 1.9 to 3.6V supply range, the nRF24L01+ provides a true ULP solution enabling months to years of battery life from coin cell or AA/AAA batteries. The Enhanced ShockBurst™ hardware protocol accelerator offloads time critical protocol functions from the application microcontroller enabling the implementation of advanced and robust wireless connectivity with low cost microcontrollers.

The Nordic nRF24L01+ integrates a complete 2.4GHz RF transceiver, RF synthesizer, and baseband logic including the Enhanced ShockBurst™ hardware protocol accelerator supporting a high-speed SPI interface for the application controller.

 

nRF24L01 Versions 

1.   nRF24L01 – old version  (not recommended for new design)

nRF24L01

 

 

 

 

 

 

2.  nRF24L01+  Upgrade version

 

nRF24L01+ Upgrade

This module based on Nordic nRF24L01, highly integrated, ultra low power (ULP) 2Mbps RF transceiver for the 2.4GHz ISM (Industrial, Scientific and Medical) band.  Nordic nRF24L01+ integrates a complete 2.4GHz RF transceiver, RF synthesizer, and baseband logic including the Enhanced ShockBurst™ hardware protocol accelerator supporting a high-speed SPI interface for the application controller.
Features
  • Worldwide license-free 2.4GHz ISM band operation
  • 250kbps, 1Mbps and 2Mbps on-air data-rate options
  • Enhanced ShockBurst™ hardware protocol accelerator
  • Ultra low power consumption – months to years of battery lifetime
Specifications
  • Power supply : 1.9~3.6V
  • IO port working voltage :  0~3.3v / 5v
  • Transmitting rate : +7dB
  • Receiving sensitivity : ≤ -90dB
  • Transmission range : 250m in open area

 

 

3.  nRF24L1+ Power Enhanced Version

 

nRF24l01 Power enhanced

 

 

This module based on Nordic nRF24L01, highly integrated, ultra low power (ULP) 2Mbps RF transceiver for the 2.4GHz ISM (Industrial, Scientific and Medical) band.  Nordic nRF24L01+ integrates a complete 2.4GHz RF transceiver, RF synthesizer, and baseband logic including the Enhanced ShockBurst™ hardware protocol accelerator supporting a high-speed SPI interface for the application controller.

Features

  • Worldwide license-free 2.4GHz ISM band operation
  • 250kbps, 1Mbps and 2Mbps on-air data-rate options
  • Enhanced ShockBurst™ hardware protocol accelerator
  • Ultra low power consumption – months to years of battery lifetime

Specifications

  • Power supply: 1.9 to 3.6V
  • IO port input voltage: -0.3 to 5.25V
  • Maximum output power: +20dBm
  • Supply current in transmit mode: 115mA
  • Supply current in receiving mode: 45mA
  • Supply current in power down: 4.2uA
  • Receiving sensitivity 2Mbps: -92dBm
  • Receiving sensitivity 1Mbps: -95dBm
  • Receiving sensitivity 250kbps: -104dBm
  • PA power gain: 20dB
  • Transmission range: 1000m in open area

 

 

4.  nRF24L01+PA+LNA

NRF24L01+PA+LNA

This wireless Transceiver module is an easy and suitable module if you want to setup your wireless communication system with low cost.
 This nRF24L01+ module is designed with Power amplifier(PA), Low Noise Amplifier (LNA) and IPX antenna. The PA control is used to set the output power from the nRF24L01 power amplifier (PA). 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.
Specifications:
  • Frequence: 2.4GHz~2.5GHz
  • Operating voltage: 3 ~ 3.6V Max
  • Current: 115mA
  • Multi-frequency: 125 frequency
  • Support up to six channels of data reception
  • Transmission range: 1100m in open area

 

 

NRF24L01 Module Pins

nRF24L01 pins

 

VCC:  3.3V
GND:  Ground
CE:   Digital Input. Chip Enable Activates RX or TX mode. Need a resistor about 500O in series when connecting to              Arduino board. In the library NRF24L01.h, the default setting is Digital pin 9.
CSN: Digital Input. SPI Chip Select. Connecting with Digital pin 10 of Arduino board through a resistor about 470                  ohm series.
SCK: Digital Input. SPI Clock. Connecting with Digital pin 13 of Arduino board through a
resistor about 500Oin series.

MOSI: Digital Input. SPI Slave Data Input. Connecting with Digital pin 11 of Arduino board
through a resistor about 500O in series.

MISO: Digital Output. SPI Slave Data Output. Connecting with Digital pin 12 of Arduino board.

IRQ:    Digital Output.Maskable interrupt pin,Active low. In the library NRF24L01.h, the default
setting is Digital pin 2.

 

 NRF24L01.h Library

This library is designed to use NRF24L01 module on Arduino platform. Using the functions of the
library, you can easily send and receive data by the NRF24L01 module. When using, you should
copy the library folder to the path “\arduino\libraries\” first.
For the users who want to realize wireless communication through the module, you just need to
know the following functions. And I think it is enough for most applications. If you want to
study the chip NRF24L01 carefully, you can refer the other functions in the NRF24L01.h library
and the datasheet for details.

void Init(void)

Description

NRF24L01 initialization, including the setting of Spi pins, mode and the setting of IRQ, CE, CSN
pins. It must be called before using other functions.

Parameters
None
Returns
None

void RegConfigSettings(void)

Description

Some common NRF24L01 register configuration, including RF, address width, auto ack enable. It
should be called after Init and before RX/TX.

Parameters
None
Returns
None

void RX_Setting(byte pipe_num, byte *pipe_address, byte RX_pload_width)

Description

NRF24L01 RX setting, including the pipe number for receiving and the corresponding pipe
address, address width, RX payload width. It should be called before start RX mode. And it can be
called several times for different pipe setting if you need.

Parameters
pipe_num: the number of pipe (0-5)
pipe_address: address corresponding to pipe_num
pipe_addr_width: address width corresponding to pipe_address (pipe 0-1 is 5; pipe 2-5 is 1)
RX_pload_width: RX payload width (should be equal to TX payload width)

Returns
None

void RX_ModeStart(void)

Description
Make NRF24L01 into RX mode.

Parameters
None

Returns
None

void TX_Setting(byte *TX_addr, byte TX_addr_width, byte *TX_data_buf, byte TX_pload_width)

Description
NRF24L01 TX setting, it should be called before start TX mode.

Parameters
TX_addr: TX destination address
TX_addr_width: TX address width(equal to the setting in SETUP_AW)
TX_data_buf: data buffer to send
TX_pload_width: TX payload width(equal to RX payload width)

Returns
None

byte CheckSendFlag(void)

Description
Check whether transmits data successfully or not.

Parameters
None

Returns
TX flag, return 1 when TX successfully.

byte CheckReceiveFlag(void)

Description
Check receiving data or not.

Parameters
None

Returns
RX flag, return 1 when receiving data.

byte ReceiveData(byte *rxBuffer, byte RX_pload_width)

Description
Read data received from RX FIFO.

Parameters
rxBuffer: buffer to store data
RX_pload_width: RX data width

Returns
The pipe number which received data. It will return 0x07 if no data.

Leave a Reply