1 nRF24L01芯片的介绍
nRF24L01是单片射频收发芯片,工作于2.4~2.5 GHz ISM频段。工作电压为1.9~3.6 V,有多达125个频道可供选择。可通过SPI写入数据,最高可达10 Mb/s,数据传输率最快可达2 Mb/s,并且有自动应答和自动再发射功能。和上一代nRF2401相比,nRF2401数据传输率更快,数据写入速度更高,内嵌的功能更完备。
芯片内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融进了增强式ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-6 dBm的功率发射时,工作电流只有9 mA,接收时工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
1.1 nRF24L01引脚介绍
芯片引脚排列见图1。
各引脚具体功能如下:CE为发射和接收的使能端;CSN为SPI的使能端;SCK为SPI时钟输入;MOSI为SPI数据主输从人端;MISO为SPI数据主人从输端;IRQ为中断输出;VDD为电源端,接3 V直流电源;VSS为参考接地端;XC1,XC2为晶振端;VDD_PA给功率放大器供电1.8 V;ANT1,ANT2为天线接口端;IREF为参考电流端。
1.2 nRF24L01的指令结构
nRF24L01所有的配置字都由配置寄存器来定义,这些配置寄存器可通过SPI口访问。
1.2.1 SPI接口设置
SPI接口由SCK,MOSI,MISO及CSN组成。
(1)在配置模式下单片机通过SPI接口配置nRF24L01的工作参数。
(2)在发射或接收模式下单片机SPI接口发送或接收数据。
和SPI接口的指令共有8个,使用每个指令时必须使CSN变低,用完后将其变高。单片机的控制指令从nRF24L01的MOSI引脚输入,而nRF24L01的状态信息和数据信息是从其MISO引脚输出并送给单片机的。利用SPI传数时,他是先传低位字节,再传高位字节,并且在传每个字节时是从高位字节传起的。指令分别是;读寄存器指令,格式是000A AAAA;写寄存器指令,格式是001AAAAA(A AAAA代表寄存器在内存中的地址;读Payload指令;写Payload指令;清发射堆栈指令;清接收堆栈指令;发射数据再利用;空操作。
1.2.2 中断
当nRF24L01的中断源(TX_DS,RX_DR,MAX_RT)被置高时(TX_DS为发送成功标志位,RX_DR为接收数据成功标志位,MAX_RT为自动重发超上限标志位),就会使IRQ引脚置低。可以向状态寄存器写1来清这些中断标志位。通过设置CONFIG寄存器的某些位来屏蔽掉这些中断源,默认情况下,这三个中断源都是允许的。
1.2.3 内存区
下面介绍nRF24L01的内存区,一共24个寄存器,以下选取几个重要的加以介绍。
0号寄存器:第7位是保留位;第6位到第4位分别是TX_DS,RX_DR,MAX_RT屏蔽位,置高能屏蔽相应的中断源;第3位是CRC使能位;第2位是选择CRC长度;第1位是PWR_UP位,高电平为使芯片上电;第0位是发射、接收选择位,高电平是发射,低电平是接收。
1号寄存器:第7和第6位是保留位,第5到第0位是使能通道5到通道0的自动应答,高电平有效。
2号寄存器:第7和第6位是保留位,第5到第0位是使能接收通道地址5到地址0,高电平有效。