ANT-NRF24L01 特性
●真正的GFSK 单收发芯片
●内置链路层
●增强型ShockBurst TM
●自动应答及自动重发功能
●地址及CRC 检验功能
●数据传输率1 或2Mbps
●SPI 接口数据速率0~8Mbps
●125 个可选工作频道
●很短的频道切换时间可用于跳频
●与nRF 24XX 系列完全兼容
●可接受5V 电平的输入
●20 脚QFN 4 4mm 封装
●极低的晶振要求60ppm
●低成本电感和双面PCB 板
●工作电压1.9~3.6V
应用
●无线鼠标键盘游戏机操纵杆
●无线门禁
●无线数据通讯
●安防系统
●遥控装置
●遥感勘测
●智能运动设备
●工业传感器
●玩具
概述:
ANT-NRF24L01 是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片无线收发器包括:频
率发生器增强型SchockBurst TM 模式控制器功率放大器晶体振荡器调制器解调器输出功率
频道选择和协议的设置可以通过SPI 接口进行设置
极低的电流消耗当工作在发射模式下发射功率为-6dBm 时电流消耗为9.0mA 接收模式时为
12.3mA
掉电模式和待机模式下电流消耗更低
快速参考数据
表1 ANT-NRF24L01 快速参考数据
ANT-NRF24L01 在不同模式下的引脚功能
待机模式
待机模式I 在保证快速启动的同时减少系统平均消耗电流在待机模式I 下晶振正常工作在待机
模式II 下部分时钟缓冲器处在工作模式当发送端TX FIFO 寄存器为空并且CE 为高电平时进入待机模式
II 在待机模式期间寄存器配置字内容保持不变
掉电模式
在掉电模式下,ANT-NRF24L01 各功能关闭保持电流消耗最小进入掉电模式后ANT-NRF24L01 停止工作
但寄存器内容保持不变启动时间见表格13 掉电模式由寄存器中PWR_UP 位来控制
数据包处理方式
ANT-NRF24L01 有如下几种数据包处理方式
ShockBurst TM 与nRF2401 nRF24E1 nRF2402 nRF24E2 数据传输率为1Mbps 时相同
增强型ShockBurst TM 模式
ShockBurst TM 模式
ShockBurst 模式下ANT-NRF24L01 可以与成本较低的低速MCU 相连高速信号处理是由芯片内部的射频
协议处理的ANT-NRF24L01 提供SPI 接口数据率取决于单片机本身接口速度ShockBurst 模式通
过允许与
单片机低速通信而无线部分高速通信减小了通信的平均消耗电流
在ShockBurst TM 接收模式下当接收到有效的地址和数据时IRQ 通知MCU 随后MCU 可将接收到的数据从RX FIFO 寄存器中读出
在ShockBurst TM 发送模式下ANT-NRF24L01 自动生成前导码及CRC 校验参见表格12 数据发送完毕
后IRQ 通知MCU 减少了MCU 的查询时间也就意味着减少了MCU 的工作量同时减少了软件的开
发
时间ANT-NRF24L01 内部有三个不同的RX FIFO 寄存器6 个通道共享此寄存器和三个不同的TX FIFO 寄
存器在掉电模式下待机模式下和数据传输的过程中MCU 可以随时访问FIFO 寄存器这就允许SPI 接口可以以低速进行数据传送并且可以应用于MCU 硬件上没有SPI 接口的情况下
增强型的ShockBurst TM 模式
增强型ShockBurst TM 模式可以使得双向链接协议执行起来更为容易有效典型的双向链接为发送
方要求终端设备在接收到数据后有应答信号以便于发送方检测有无数据丢失一旦数据丢失则通过重
新发送功能将丢失的数据恢复增强型的ShockBurst TM 模式可以同时控制应答及重发功能而无需增加MCU
工作量
在增强型ShockBurst TM 模式下nRF24L01 有如下的特征
当工作在应答模式时快速的空中传输及启动时间极大的降低了电流消耗
低成本nRF24L01 集成了所有高速链路层操作比如重发丢失数据包和产生应答信号无需单
片机硬件上一定有SPI 口与其相连SPI 接口可以利用单片机通用I/O 口进行模拟
由于空中传输时间很短极大的降低了无线传输中的碰撞现象
由于链路层完全集成在芯片上非常便于软硬件的开发
增强型ShockBurst TM 发送模式
1 配置寄存器位PRIM_RX 为低
2 当MCU 有数据要发送时接收节点地址TX_ADDR 和有效数据(TX_PLD)通过SPI 接口写入nRF24L01 发送数据的长度以字节计数从MCU 写入TX FIFO 当CSN 为低时数据被不断的写入发送端发送完数据后将通道0 设置为接收模式来接收应答信号其接收地址(RX_ADDR_P0)与接
收端地址(TX_ADDR)相同例在图5 中数据通道5 的发送端(TX5)及接收端(RX)地址设置如下
TX5 TX_ADDR=0xB3B4B5B605
TX5 RX_ADDR_P0=0xB3B4B5B605
RX RX_ADDR_P5=0xB3B4B5B605
3 设置CE 为高启动发射CE 高电平持续时间最小为10 us
4 nRF24L01 ShockBurst TM 模式
无线系统上电
启动内部16MHz 时钟
无线发送数据打包见数据包描述
高速发送数据由MCU 设定为1Mbps 或2Mbps
5 如果启动了自动应答模式自动重发计数器不等于0 ENAA_P0=1 无线芯片立即进入接收模式
如果在有效应答时间范围内收到应答信号则认为数据成功发送到了接收端此时状态寄存器的
TX_DS 位置高并把数据从TX FIFO 中清除掉如果在设定时间范围内没有接收到应答信号则重
新发送数据如果自动重发计数器ARC_CNT 溢出超过了编程设定的值则状态寄存器的
MAX_RT 位置高不清除TX FIFO 中的数据当MAX_RT 或TX_DS 为高电平时IRQ 引脚产生中断IRQ 中断通过写状态寄存器来复位见中断章节如果重发次数在达到设定的最大重发次数
时还没有收到应答信号的话在MAX_RX 中断清除之前不会重发数据包数据包丢失计数器(PLOS_CNT)在每次产生MAX_RT 中断后加一也就是说重发计数器ARC_CNT 计算重发数据
包次数PLOS_CNT 计算在达到最大允许重发次数时仍没有发送成功的数据包个数
6 如果CE 置低则系统进入待机模式I 如果不设置CE 为低则系统会发送TX FIFO 寄存器中下
一包数据如果TX FIFO 寄存器为空并且CE 为高则系统进入待机模式II.
7 如果系统在待机模式II 当CE 置低后系统立即进入待机模式I.
增强型ShockBurst TM 接收模式
1 ShockBurst TM 接收模式是通过设置寄存器中PRIM_RX 位为高来选择的准备接收数据的通道必须
被使能EN_RXADDR 寄存器所有工作在增强型ShockBurst TM 模式下的数据通道的自动应答功
能是由(EN_AA 寄存器)来使能的有效数据宽度是由RX_PW_Px 寄存器来设置的地址的建立过
程见增强型ShockBurst TM 发送章节
2 接收模式由设置CE 为高来启动
3 130us 后nRF24L01 开始检测空中信息
4 接收到有效的数据包后地址匹配CRC 检验正确数据存储在RX_FIFO 中同时RX_DR 位
置高并产生中断状态寄存器中RX_P_NO 位显示数据是由哪个通道接收到的
5 如果使能自动确认信号则发送确认信号
6 MCU 设置CE 脚为低进入待机模式I 低功耗模式
7 MCU 将数据以合适的速率通过SPI 口将数据读出
8 芯片准备好进入发送模式接收模式或掉电模式
两种数据双方向的通讯方式
如果想要数据在双方向上通讯,PRIM_RX 寄存器必须紧随芯片工作模式的变化而变化处理器必须保
证PTX 和PRX 端的同步性在RX_FIFO 和TX_FIFO 寄存器中可能同时存有数据__
自动应答RX
自动应答功能减少了外部MCU 的工作量并且在鼠标/键盘等应用中也可以不要求硬件一定有SPI 接
口因此降低成本减少电流消耗自动重应答功能可以通过SPI 口对不同的数据通道分别进行配置
在自动应答模式使能的情况下收到有效的数据包后系统将进入发送模式并发送确认信号发送完
确认信号后系统进入正常工作模式工作模式由PRIM_RX 位和CE 引脚决定
自动重发功能ART (TX)
自动重发功能是针对自动应答系统的发送方SETUP_RETR 寄存器设置启动重发数据的时间长度
在每次发送结束后系统都会进入接收模式并在设定的时间范围内等待应答信号接收到应答信号后系统
转入正常发送模式如果TX FIFO 中没有待发送的数据且CE 脚电平为低则系统将进入待机模式I 如
果没有收到确认信号则系统返回到发送模式并重发数据直到收到确认信号或重发次数超过设定值达到
最大的重发次数有新的数据发送或PRIM_RX 寄存器配置改变时丢包计数器复位
数据包识别和CRC 校验应用于增强型ShockBurst TM 模式下
每一包数据都包括两位的PID 数据包识别来识别接收的数据是新数据包还是重发的数据包PID
识别可以防止接收端同一数据包多次送入MCU 在发送方每从MCU 取得一包新数据后PID 值加一PID
和CRC 校验应用在接收方识别接收的数据是重发的数据包还是新数据包如果在链接中有一些数据
丢失
了则PID 值与上一包数据的PID 值相同如果一包数据拥有与上一包数据相同的PID 值nRF24L01
将
对两包数据的CRC 值进行比较如果CRC 值也相同的话就认为后面一包是前一包的重发数据包而
被舍弃
1 接收方
接收方对新接收数据包的PID 值与上一包进行比较如果PID 值不同则认为接收的数据包是新
数据包如果PID 值与上一包相同则新接收的数据包有可能与前一包相同接收方必须确认CRC
值是否相等如果CRC 值与前一包数据的CRC 值相等则认为是同一包数据并将其舍弃
2 发送方
每发送一包新的数据则发送方的PID 值加一
图
CRC 校验的长度是通过SPI 接口进行配置的一定要注意CRC 计算范围包括整个数据包地址PID 和有效数据等若CRC 校验错误则不会接收数据包这一点是接收数据包的附加要求在上图没有说明载波检测CD
当接收端检测到射频范围内的信号时将CD 置高否则CD 为低内部的CD 信号在写入寄存器之前是经过滤波的内部CD 高电平状态至少保持128us 以上
在增强型ShockBurst TM模式中只有当发送模块没有成功发送数据时推荐使用CD检测功能如果发送端PLOS_CNT显示数据包丢失率太高时可将其设置位接收模式检测CD值如果CD为高说明通道出现
了拥挤现象需要更改通信频道如果CD为低电平状态距离超出通信范围可保持原有通信频道但
需作其它调整
数据通道
nRF24L01 配置为接收模式时可以接收6 路不同地址相同频率的数据每个数据通道拥有自己的地址
并且可以通过寄存器来进行分别配置
数据通道是通过寄存器EN_RXADDR 来设置的默认状态下只有数据通道0 和数据通道1 是开启状态的
每一个数据通道的地址是通过寄存器RX_ADDR_Px 来配置的通常情况下不允许不同的数据通道
设
置完全相同的地址
数据通道0 有40 位可配置地址数据通道1~5 的地址为32 位共用地址+各自的地址最低字节
图7 所示的是数据通道1~5 的地址设置方法举例所有数据通道可以设置为多达40 位但是1~5 数
据通
道的最低位必须不同
当从一个数据通道中接收到数据并且此数据通道设置为应答方式的话则nRF24L01 在收到数据后
产生应答信号此应答信号的目标地址为接收通道地址
寄存器配置有些是针对所有数据通道的有些则是针对个别的如下设置举例是针对所有数据通道的CRC 使能/禁止
CRC 计算
接收地址宽度
频道设置
无线数据通信速率
LNA 增益
射频输出功率
寄存器配置nRF24L01 所有配置都在配置寄存器中所有寄存器都是通过SPI 口进行配置的
SPI 接口
SPI 接口是标准的SPI 接口其最大的数据传输率为10Mbps 大多数寄存器是可读的
SPI 指令设置
SPI 接口可能用到的指令在下面有所说明CSN 为低后SPI 接口等待执行指令每一条指令的执行都必须通过一次CSN 由高到低的变化
SPI 指令格式
<命令字由高位到低位每字节>
<数据字节低字节到高字节每一字节高位在前>参看图8 及图9
图8 nRF24L01 SPI 串行口指令设置
R_REGISTER 和W_REGISTER 寄存器可能操作单字节或多字节寄存器当访问多字节寄存器时首先
要读/写的是最低字节的高位在所有多字节寄存器被写完之前可以结束写SPI 操作在这种情况下没有
写完的高字节保持原有内容不变例如RX_ADDR_P0 寄存器的最低字节可以通过写一个字节给寄
存器
RX_ADDR_P0 来改变在CSN 状态由高变低后可以通过MISO 来读取状态寄存器的内容
中断
nRF24L01 的中断引脚IRQ 为低电平触发当状态寄存器中TX_DS RX_DR 或MAX_RT 为高时触发中断当MCU 给中断源写1 时中断引脚被禁止可屏蔽中断可以被IRQ 中断屏蔽通过设置
可屏蔽中断位为高则中断响应被禁止默认状态下所有的中断源是被禁止的
SPI 时序
图8 9 10 和表9 10 给出了SPI 操作及时序在写寄存器之前一定要进入待机模式或掉电模式在图8 至图10 中用到了下面的符号
Cn-SPI 指令位
Sn-状态寄存器位
Dn-数据位备注由低字节到高字节每个字节中高位在前
图8 SPI 读操作
图9 SPI 写操作
图10 SPI NOP 操作时序图
表9 SPI 参考时间C load=5Pf
表10 SPI 参考时间C load=10pF
表11 nRF24L01 寄存器地址
与nRF24XX 兼容的寄存器配置
如何建立nRF24L01 从nRF2401/ nRF2402/ nRF24E1/ nRF24E2 接收数据使用与nRF2401/ nRF2402/ nRF24E1/ nRF24E2 相同的CRC 配置设置PRIM_RX 位为1
相应通道禁止自动应答功能
与发射模块使用相同的地址宽度