1 nrf24l01概述
nrf24.l01是一款新型单片射频收发器件,工作于2.4 ghz~2.5 ghz ism频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型shockburst技术,其中输出功率和通信频道可通过程序进行配置。nrf24l01功耗低,在以-6 dbm的功率发射时,工作电流也只有9 ma;接收时,工作电流只有12.3 ma,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
nrf24l01主要特性如下:
gfsk调制:
硬件集成osi链路层;
具有自动应答和自动再发射功能;
片内自动生成报头和crc校验码;
数据传输率为l mb/s或2mb/s;
spi速率为0 mb/s~10 mb/s;
125个频道:
与其他nrf24系列射频器件相兼容;
qfn20引脚4 mm×4 mm封装;
供电电压为1.9 v~3.6 v。
2 引脚功能及描述
nrf24l01的封装及引脚排列如图1所示。各引脚功能如下:
ce:使能发射或接收;
csn,sck,mosi,miso:spi引脚端,微处理器可通过此引脚配置nrf24l01:
irq:中断标志位;
vdd:电源输入端;
vss:电源地:
xc2,xc1:晶体振荡器引脚;
vdd_pa:为功率放大器供电,输出为1.8 v;
ant1,ant2:天线接口;
iref:参考电流输入。
3 工作模式
通过配置寄存器可将nrf241l01配置为发射、接收、空闲及掉电四种工作模式,如表1所示。
空闲模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;空闲模式2则是在当发射堆栈为空且ce=1时发生(用在ptx设备);在空闲模式下,配置字仍然保留。
在掉电模式下电流损耗最小,同时nrf24l01也不工作,但其所有配置寄存器的值仍然保留。
4 工作原理
发射数据时,首先将nrf24l01配置为发射模式:接着把地址tx_addr和数据tx_pld按照时序由spi口写入nrf24l01缓存区,tx_pld必须在csn为低时连续写入,而tx_addr在发射时写入一次即可,然后ce置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nrf24l01在发射数据后立即进入接收模式,接收应答信号。如果收到应答,则认为此次通信成功,tx_ds置高,同时tx_pld从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(arc_cnt)达到上限,max_rt置高,tx_pld不会被清除;max_rt或tx_ds置高时,使irq变低,以便通知mcu。最后发射成功时,若ce为低则nrf24l01进入空闲模式1;若发送堆栈中有数据且ce为高,则进入下一次发射;若发送堆栈中无数据且ce为高,则进入空闲模式2。
接收数据时,首先将nrf24l01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和crc时,就将数据包存储在接收堆栈中,同时中断标志位rx_dr置高,irq变低,以便通知mcu去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若ce变低,则nrf24l01进入空闲模式1。
5 配置字
spi口为同步串行通信接口,最大传输速率为10 mb/s,传输时先传送低位字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与spi相关的指令共有8个,使用时这些控制指令由nrf24l01的mosi输入。相应的状态和数据信息是从miso输出给mcu。
nrf24l0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过spi口访问。nrf24l01
的配置寄存器共有25个,常用的配置寄存器如表2所示。