NRF24L01+中文翻译连载之一——无线电控制

前言

对于初学者来说,最痛苦的莫过于看英文技术手册,所以当初小白的自己就想,要是有人将这些手册翻译成中文就好了。但是对于高手而言,他又不屑于翻译手册,因为他直接就能看懂,根本不需要翻译。所以在寻找NRF24L01+ 的中文手册无果之后,萌生了翻译这篇手册的想法。首先无线数据传输这个技术我很感兴趣,其次我觉得这个芯片非常适合初学者去掌握模块的使用方法,这个模块的应用也相当广泛,所以历经一星期的时间将其翻译成了中文,方便他人,亦是方便自己。

------------------------2018/05/06 --鱼鹰-----------------------------
---------------------详情请看英文技术手册-----------------------------

nRF24L01 +是一款带有嵌入式基带协议引擎(Enhanced ShockBurst™)的单芯片2.4GHz收发器,适用于超低功耗无线应用。 nRF24L01 +设计用于2.400-2.4835GHz的全球ISM频段。要用nRF24L01 +设计无线电系统,您只需要一个MCU(微控制器)和一些外部无源组件。您可以通过串行外设接口(SPI)来操作和配置nRF24L01 +。寄存器映射可通过SPI访问,其中包含nRF24L01 +中的所有配置寄存器,并且可在芯片的所有操作模式下访问。嵌入式基带协议引擎(Enhanced ShockBurst™)基于数据包通信,支持从手动操作到高级自治协议操作等各种模式。内部FIFO确保无线电前端和系统MCU之间的数据流畅通。 Enhanced Shock Burst™通过处理所有高速链路层操作来降低系统成本。无线电前端使用GFSK调制。它具有用户可配置的参数,如频道,输出功率和空中数据速率。 nRF24L01 +支持250 kbps,1 Mbps和2Mbps的空中数据速率。高空中数据速率与两种省电模式相结合,使nRF24L01 +非常适合超低功耗设计。 nRF24L01 +与nRF24L01直接兼容,并与nRF2401A,nRF2402,nRF24E1和nRF24E2在空中兼容。 nRF24L01 +中的互调和宽带阻塞值与nRF24L01相比有了很大的改进,并且nRF24L01 +的内部滤波功能增加了满足RF监管标准的余量。内部稳压器确保高电源抑制比(PSRR)和宽电源范围。

nRF24L01 +的特点包括:

信号

  • 全球2.4GHz ISM频段操作
  • 126个RF通道
  • 公共RX和TX接口
  • GFSK调制
  • 250kbps,1和2Mbps空中数据速率
  • 1MHz非重叠信道间隔,1Mbps
  • 2MHz非重叠信道间隔,2Mbps

发射机

  • 可编程输出功率:0,-6,-12或-18dBm
    输出功率为0dBm时X 11.3mA

接收器

  • Fast AGC改善动态范围
  • 集成通道过滤器
  • 在2Mbps时X 13.5mA
    2Mbps时灵敏度为-82dBm
    在1Mbps时X-85dBm灵敏度
    250kbps时灵敏度为-94dBm

RF合成器

  • 完全集成的合成器
  • 无需外部回路滤波器,VCO变容二极管或谐振器
  • 接受低成本±60ppm 16MHz晶振

增强ShockBurst™

  • 1到32个字节的动态净荷长度
  • 自动数据包处理
  • 自动数据包事务处理
  • 6数据管道MultiCeiver™用于1:6星形网络
  • 能源管理
  • 集成稳压器
  • 1.9至3.6V电源范围
  • 具有快速启动时间的空闲模式,用于高级电源管理
  • 26μA待机I模式,900nA掉电模式
  • 最大1.5ms从掉电模式启动
  • Max 130us从待机I模式启动

主机接口

  • 4针硬件SPI
  • 最大10Mbps
  • 3级32个字节的TX和RX FIFO
  • 5V宽容输入
  • 紧凑型20引脚4x4mm QFN封装

2.1 无线电控制

本章介绍nRF24L01 +无线电收发器的工作模式和用于控制无线电的参数。nRF24L01 +内置状态机,用于控制芯片工作模式之间的转换。 状态机从用户定义的寄存器值和内部信号中获取输入。

2.1.1 操作模式

您可以在掉电,待机,RX或TX模式下配置nRF24L01 +。 本节详细介绍这些模式。

2.1.1.1 状态图

图4中的状态图显示了操作模式及其功能。 状态图中突出显示了三种不同的状态:

  • 推荐的操作模式:是正常操作期间使用的推荐状态。
  • 可能的操作模式:可能的操作状态,但在正常操作期间不使用。
  • 过渡状态:在振荡器启动和PLL建立期间使用的时间限制状态。

当VDD达到1.9V或更高时,nRF24L01 +进入上电复位状态,保持复位状态直到进入掉电模式。
在这里插入图片描述

2.1.1.2 掉电模式

在掉电模式下,nRF24L01 +使用最小电流消耗来禁用。 所有可用的寄存器值都将保持不变,并且SPI保持活动状态,从而可以更改配置以及数据寄存器的上载/下载。 关于启动时间,请参见第16页的表16.通过将CONFIG寄存器中的PWR_UP位设置为低电平来进入掉电模式。

2.1.1.3 待机模式

2.1.1.3.1待机I模式

通过将CONFIG寄存器中的PWR_UP位设置为1,器件进入待机I模式。 待机I模式用于在保持较短的启动时间的同时将平均电流消耗降至最低。 在这种模式下,只有部分晶体振荡器处于活动状态。 只有在CE设置为高电平且CE设置为低电平时,才会切换到活动模式,nRF24L01将从TX和RX模式返回到待机I模式。

2.1.1.3.2待机II模式

在备用-II模式下,额外的时钟缓冲器处于活动状态,与待机I模式相比,使用更多的电流。如果CE在具有空TX FIFO的PTX器件上保持高电平,则nRF24L01 +进入待机II模式。 如果一个新的数据包上传到TX FIFO,PLL会立即启动并在正常的PLL建立延迟(130μs)后发送数据包。寄存器值保持不变,并且在两种待机模式下均可激活SPI。 有关启动时间,请参阅第24页上的表16。

2.1.1.4 接收模式

RX模式是将nRF24L01 +无线电用作接收器的主动模式。要进入该模式,nRF24L01 +必须将PWR_UP位,PRIM_RX位和CE引脚设置为高电平。在接收模式下,接收器解调来自RF信道的信号,不断向基带协议引擎提供解调数据。基带协议引擎不断搜索有效的数据包。如果找到了有效的数据包(通过匹配的地址和有效的CRC),数据包的有效负载将显示在RX FIFO的空闲时隙中。如果RX FIFO已满,则接收的数据包将被丢弃。 nRF24L01 +保持在RX模式,直到MCU将其配置为待机I模式或掉电模式。但是,如果基带协议引擎中的自动协议功能(Enhanced ShockBurst™)已启用,nRF24L01 +可以进入其他模式以执行协议。在接收模式下,接收功率检测器(RPD)信号可用。 RPD是在接收频道内检测到高于-64 dBm的RF信号时设置为高电平的信号。内部RPD信号在提供给RPD寄存器之前被过滤。在RPD设置为高电平之前,RF信号必须至少存在40μs。第25页第6.4节描述了如何使用RPD

2.1.1.5 发送模式

TX模式是传输数据包的主动模式。 要进入该模式,nRF24L01 +必须将PWR_UP位设置为高电平,将PRIM_RX位设置为低电平,TX FIFO中的有效负载和CE上的高电平脉冲超过10μs。 nRF24L01 +一直处于TX模式,直到完成发送数据包。 如果CE = 0,则nRF24L01 +返回待机I模式。 如果CE = 1,则TX FIFO的状态决定下一个操作。 如果TX FIFO不为空,则nRF24L01 +将保持在TX模式并发送下一个数据包。 如果TX FIFO为空,则nRF24L01 +进入待机II模式。 处于TX模式时,nRF24L01 +发送器PLL工作在开环状态。 重要的是,一次不要将nRF24L01 +保持在TX模式下的时间超过4ms。 如果启用增强ShockBurst™功能,则nRF24L01 +绝不会在TX模式下长于4ms。
(译者注:测试连续往 TX FIFO 中传输数据,看接收端是否能正确接收数据。并观察状态。猜测:空中发送数据比SPI传输速度更快,接收端能正确接收数据)

2.1.1.6 操作模式配置

在这里插入图片描述A.如果CE保持高电平,则所有TX FIFO都清空,并执行所有必要的ACK和可能的重传。 只要TX FIFO被重新填充,传输就会继续。 如果CE仍为高电平时TX FIFO为空,则nRF24L01 +进入待机II模式。 在这种模式下,只要在将数据包上载(UL)到TX FIFO后CSN置为高电平,数据包的传输就会开始。
B.该工作模式将CE脉冲至少持续10μs。 这允许传送一个分组。这是正常的操作模式。 数据包传输完成后,nRF24L01 +进入待机I模式。

2.1.1.7 时间信息

本节中的时序信息涉及模式之间的转换和CE引脚的时序。 如表16所述,从TX模式到RX模式或反向模式的转换与从待机模式到TX模式或RX模式(最大130μs)的转换相同。
在这里插入图片描述
为使nRF24L01 +从掉电模式进入TX模式或RX模式,必须首先通过待机模式。在CE设置为高电平之前,nRF24L01 +离开掉电模式后,必须延迟Tpd2stby(见表16)。
注:如果VDD关闭,寄存器值将丢失,您必须在进入TX或RX模式之前配置nRF24L01 +。

2.1.2 空中数据速率

空中数据速率是nRF24L01 +在发送和接收数据时使用的调制信号速率。 它可以是250kbps,1Mbps或2Mbps。 使用较低的空中数据速率比较高的空中数据速率提供更好的接收器灵敏度 但是,空中数据传输速率较高,平均电流消耗较低,并且可减少空中碰撞的可能性。 空中数据速率由RF_SETUP寄存器中的RF_DR位设置。 发射机和接收机必须以相同的空中数据速率进行编程才能相互通信。 nRF24L01 +与nRF24L01完全兼容。 为了与nRF2401A,nRF2402,nRF24E1和nRF24E2兼容,空中数据速率必须设置为250kbps或1Mbps。

2.1.3 射频频道频率

RF信道频率决定了nRF24L01 +使用的信道的中心。该信道在250kbps和1Mbps的带宽下占用带宽小于1MHz,在2Mbps带宽下带宽小于2MHz。 nRF24L01 +可以在2.400GHz至2.525GHz的频率下工作。 RF信道频率设置的编程分辨率为1MHz。 在2Mbps时,信道占用比RF信道频率设置的分辨率更宽的带宽。 为确保2Mbps模式下不重叠的通道,通道间隔必须为2MHz或更高。 在1Mbps和250kbps时,信道带宽与RF频率的分辨率相同或更低。
RF通道频率由RF_CH寄存器根据以下公式设置:
F0= 2400 + RF_CH [MHz]
您必须使用相同的RF信道频率编程发射机和接收机才能彼此通信。

2.1.4 接收功率检测器测量

位于寄存器09中的接收功率检测器(RPD)位0触发接收的功率电平高于-64 dBm,这些功率电平出现在您接收的RF信道中。 如果接收功率小于-64 dBm,则RDP = 0。当nRF24L01 +处于接收模式时,可以随时读出RPD。 这提供了该频道当前接收功率电平的快照。 接收到有效数据包后,RPD状态将被锁存,然后指示来自您自己的发射机的信号强度。 如果没有收到数据包,RPD在接收周期结束时被锁存,因为主机MCU设置CE低或RX超时由Enhanced ShockBurst™控制。 当接收模式启用且等待时间Tstby2a + Tdelay_AGC = 130us + 40us后,RPD状态正确。 RX增益随温度变化,这意味着RPD阈值也随温度而变化。 在T = -40°C时,RPD阈值降低了-5dB,并在85°C时增加了+ 5dB。

2.1.5 PA控制

PA(功率放大器)控制用于设置nRF24L01 +功率放大器的输出功率。 在TX模式下,PA控制有四个可编程步骤,参见表17. PA控制由RF_SETUP寄存器中的RF_PWR位设置
在这里插入图片描述

2.1.6 RX/TX 控制

RX / TX控制由CONFIG寄存器中的PRIM_RX位置1,并将nRF24L01 +设置为发送/接收模式。

下一篇:NRF24L01+中文翻译连载之二——增强ShockBurst™

关注微信公众号,获取最新技术文章

  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一、测试距离 0.软件为Keil5,不知道是否支持Keil4(如不行请手动新建Keil4工程) 1.单片机为STM32F103C8,采用硬件SPI 2.nRF24L01+采用3.3V供电,接线如下:       24L01+       STM32 CE   ——   PA3 CS   ——   PA4 SCK  ——   PA5 MISO ——   PA6 MOSI ——   PA7   IRQ未接(采用查询方式,如须用自加外部中断程序) 3.led灯为PC13控制,低电平亮(在User\led.c中修改GPIO);按键为PA0,按下后(接地)才开始发送,默认注释了,如需要可在程序中加上 4.My24L01_Tx为发送端程序,My24L01_Rx为接收端程序; 5.发送端约100ms发送一次,不要ACK;接收端每接收到一次led反转;将程序下载到单片机后可看到接收端led快速闪动,可将接收端的24L01在一定范围内走动,若led闪动变慢,则说明有丢包;led不闪,说明没有收到数据;因此大致可测得发送距离 6.24L01采用0频道,2Mbps, 0dBm, Address 3Bytes,实测距离大于10米(在不同的房间) 二、测试速率 0.软件为Keil5,不知道是否支持Keil4(如不行请手动新建Keil4工程) 
1.单片机为STM32F103C8,采用硬件SPI
 2.nRF24L01+采用3.3V供电,接线如下:
      24L01+       STM32
 CE   ——   PA3
 CS   ——   PA4
 SCK  ——   PA5
 MISO ——   PA6
 MOSI ——   PA7  
 IRQ未接(采用查询方式,如须用自加外部中断程序) 

3.led灯为PC13控制,低电平亮(在User\led.c中修改GPIO);按键为PA0,按下后(接地)才开始发送!!! 

4.My24L01_Tx为发送端程序,My24L01_Rx为接收端程序;

 5.接收端先上电,发送端上电后按下按键后才发送50KB(32B一帧 共32*50帧 32*32=1024=1K),发送端收到ACK后才发下一帧,发完后进入死循环,如须再发要先复位或重新上电;接收端每收到一次led反转;(如未反转说明未成功发送,发送端接收端重新复位后再试)时间可看在接收程序中tim3Count(单位ms 16进制,定时器1ms中断)在Watch1中

 6.发送端我用的是延时等待查询STATUS寄存器,用外部中断IRQ应该会更好(未测试) 

7.24L01采用0频道,2Mbps, 0dBm, Address 3Bytes,实测速率约为50KB/s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值