NRF24L01是一款单芯片无线电收发器,在全球范围内使用2.4 – 2.5 GHz ISM频段。收发器是指同一模块可以用作发射器或接收器。NRF24L01模块的功耗非常低,在-6dBm输出功率时仅为9.0mA,在RX模式下为12.3mA,甚至低于LED。
此外,如果在带有天线的开放空间中使用,NRF24L01器件最大范围可达100米。NRF24L01示意图如下图所示:
NRF24L01总共包括8个pin脚,其示意图和功能说明如下所示:
引脚配置说明如下:
| PIN | 引脚名称 | 说明 |
| 1 | VCC | 该引脚用于为模块供电,电压范围为1.9至3.9伏。所以,可以将它直接连接到Arduino的3.3V输出。 |
| 2 | CSN(Chip Select Not) | 它是低电平有效引脚,通常保持高电平。需要将此引脚保持为高电平,除非向设备发送SPI命令或SPI总线上从微控制器接收数据。 |
| 3 | MOSI(Master Out Slave In) | SPI输入,用于接收来自单片机的数据. |
| 4 | IRQ | 是一个中断引脚,可在有新数据可供处理时提醒主机。 |
| 5 | MISO(Master In Slave Out) | SPI 输出,用于向微控制器发送数据。 |
| 6 | SCK (Serial Clock) | 接受SPI总线主机提供的时钟脉冲。 |
| 7 | CE (Chip Enable) | 是模块的启用引脚,用于选择NRF24L01的模式,即发送或接收,具体取决于它当前所处的模式。 |
| 8 | GND | 接地引脚。它通常通过将引脚包围在一个正方形中来标记,因此可以用来识别其他引脚。 |
NRF24L01主要规格参数如下表格所示:
| 频率范围 | 2.4GHz ISM频段 |
| 最大空中数据速率 | 2兆比特/秒 |
| 调制格式 | GFSK |
| 最大限度输出功率 | 0分贝 |
| 工作电源电压 | 1.9V至3.6V |
| 最大限度工作电流 | 13.5毫安 |
| 最小电流(待机模式) | 26微安 |
| 逻辑输入 | 5V宽容 |
| 工作温度范围 | -40~+85°C |
NRF24L01收发模块在一定频率上发送和接收数据,称为Channel。连接两个或多个收发器模块进行相互通信时,它们需要在同一信道上。该信道频率位于2.4 GHz ISM频段或2.400至2.525 GHz(2400 至 2525 MHz)之间。
每个通道占用的带宽小于1MHz,它精确地提供了125个间隔为1MHz的可能信道,即(2525 – 2400)/1=125个信道。
由于NRF24L01模块的工作电压范围为1.9~3.6V,可以直接将VCC引脚接3.3V。但模块的其它引脚可承受5V 电压,所以可以直接连接到Arduino引脚。
MOSI、MISO和SCK是SPI(串行外设接口)引脚,必须仅连接到Arduino 的SPI引脚。不同的Arduino开发板有不同的SPI引脚。以下是一些流行的Arduino开发板的SPI引脚:
| Arduino | MOSI | MISO | SCK |
| Arduino Uno | 11 | 12 | 13 |
| Arduino Nano | 11 | 12 | 13 |
| Arduino Mega | 51 | 50 | 52 |
NRF24L01发射器连接示意图如下所示:
| NRF24L01 | Arduino UNO |
| VCC | 3.3V |
| GND | GND |
| SCK | D13 |
| MISO | D12 |
| MOSI | D11 |
| CSN | D7 |
| CE | D8 |
| NRF24L01 | Arduino UNO |
| VCC | 3.3V |
| GND | GND |
| SCK | D13 |
| MISO | D12 |
| MOSI | D11 |
| CSN | D7 |
| CE | D8 |
据了解,NRF24L01配置为PTX,具有增强型ShockBurst™ 使能引脚,将使用ShockBurst™ 当微控制器需要时发送数据包的功能。数据包发送后,NRF24L01将打开其接收器,并期待来自终端部分的确认。如果该确认未到达,nRF24L01将重新发送相同的数据包,直到收到确认或重试次数超过SETUP_RETR_ARC寄存器中给定的允许重试次数。如果重试次数超过允许的重试次数,这将由给出中断的STATUS寄存器位MAX_RT显示。
另外,每当NRF24L01接收到确认时,它会将最后发送的数据包视为已发送。然后将从TX FIFO中清除,TX_DS IRQ源将设置为高,其实用性非常的广泛。
