[nRF24L01+] 3. Radio Control 无线电控制
3. Radio Control 无线电控制
nRF24L01+可以配置为:power down, standby, Rx/Tx mode
3.1. 无线控制状态图
当VDD电压大于1.9V时,进入上电复位状态,并保持复位状态,直到进入掉电模式:

需要注意的是:
从待机模式到TX/RX模式的过度时间,和反过来,从TX/RX模式到待机模式的过渡时间是相同的;
芯片从掉电模式进入TX/RX模式前,必须经过待机I模式;也就是说需要在进入掉电模式后等待
Tpd2stby(见表16,估计是晶体振荡器建立时间及稳定之类的时间)后,才能将CE拉高(至少10us)进入RX/TX模式晶体振荡器的启动时间与晶体等效电感成正比。在一些晶体数据表中,等效串联电感Ls称为L1或Lm,Cs称为C1或Cm。
Tpd2stby = Ls/30mH * 1.5ms,可以这么粗略的计算如果芯片掉电,原来寄存器的值不会保存,所以需要从新开始配置;



3.2. Power Down Mode 掉电模式
可以通过把CONTROL寄存器的PWR_UP清零, 进入掉电模式,900nA;只有寄存器和SPI是活动的,以便可以通过SPI修改寄存器的值,即更改工作状态。

3.3. 待机1模式
把CONTROL寄存器的PWR_UP置1,可以进入待机I模式,26uA;这个模式下只有晶振一部分是活动的,它是在保持最小启动时间下的平均电流消耗最小的一个状态;
思考:这个状态下,晶振电路是工作的,也是耗电的;在按键扫描电路中,可以先使用电平触发让芯片从掉电模式下启动,然后再开始扫描判定是哪个按键按下,如此应该可以得到最小的功耗;前提是在掉电模式下GPIO的中断可以唤醒!
此外,在RX或者TX模式下,CE拉低芯片同样会进入待机1模式;而拉高CE则可以进入RX或者TX模式,取决于配置和寄存器的状态;
3.4. 待机II模式
相比待机I模式下,在待机II模式下更多的时钟和缓冲器处于活动状态下,因此更耗电;当CE拉高准备进入TX模式时,如果此时的TX-FIFO为空(没有要发送的数据)就会进入待机II模式;而一旦TX-FIFO填充了数据,将在延迟130us等待PLL和配置稳定后进入TX模式。
3.5. RX接收模式
当PWR_UP、PRIM_RX控制位置一并且CE管脚拉高时,会进入RX模式;
在RX模式下,接收机会持续将调制后的数据呈现给基带协议引擎,如果找到有效的数据包(通过匹配地址和有效的CRC),则数据包会出现在RXFIFO里;如果RX FIFO已满就会丢弃接收到的数据。
在MCU重新配置芯片为待机I或者掉电模式前,它都会一直保持在RX模式下;但是如果自动协议功能(Enhanced ShockBurst)启用后,芯片可以进入其他模式以执行协议;
在RX模式下,接收功率检测器(RPD,Received Power Dectector)信号可用。RPD当在接收频率信道内检测到高于-64dBm的RF信号时,会被设置为拉高的信号; RPD信号在呈现给寄存器之前会经过滤波,射频信号至少存在40us后才能被拉高。
RPD当成功接受到数据包时,状态将会被锁存,可以用来指示发射机的信号强度(也就是说如果地址或者CRC错误了,也会被置位,这样就知道你的接收机发送的信号到底有没有被收到了);如果没有收到数据包时,会保留最后一个接受周期的状态,这个状态会作为MCU将CE拉低或者RX接收超时的结果,由增强型协议功能控制。
RPD的值需要等待 Tstby2a +Tdelay_AGC= 130us + 40us 后才是正确的(好理解,因为接收机自己配置好需要时间);接收的增益会随着温度变化而改变,所以RPD的曾因判定阈值也是如此:- 5dB at T = -40°C, + 5dB at 85°C

3.6. TX发射模式
进入TX模式需要把PWR_UP置一, PRIM_RX清零,往TX_FIFO里存入数据,最后再把CE管脚拉高至少10us; 24L01+将会保持在TX模式,一直等到一包的数据发送完成;当CE=0时,24L01+将会返回到待机I模式下;
TX模式下,PLL是在开环下运行的(不知道是否为其原因),不要在TX模式下超过4ms(在增强协议模式下,不会超过4ms)。
a. 如果CE=1,所有的TX_FIFO都会被清空,同时在发送过程中必要的ACK和可能的重发机制都会被执行。如果TX_FIFO为空但是CE=1仍然为高时,将会进入待机II模式;此模式下一旦TX_FIFO不为空(SPI的数据传输进来后,管脚CSN拉高),就会立即进入TX模式发送数据包;
b. 此操作模式使CE脉冲高至少10µs。这允许传输一个数据包。这是正常操作模式。数据包传输后,nRF24L01+进入待机I 模式。

3.7. Air data rate 空中数据速率
通过RF_SETUP寄存器的RF_DR控制,接收机和发射机的速率要配置成一样的;
空中数据速率是nRF24L01+在发送和接收数据时使用的调制信令速率。它可以是250kbps、1Mbps或2Mbps。
使用较低的空中数据速率可以获得更好的接收灵敏度,相比于更高的空气数据速率。但是,高空中数据速率会降低平均电流消耗,降低空中碰撞的概率。
3.8. RF Channel Frequency
nRF24L01+可以在2.400GHz至2.525GHz的频率范围内工作。RF信道频率设置的编程分辨率为1MHz,(525-400=125,即0~125)。
F0 = 2400 + RFCH [MHz]
RF信道频率决定nRF24L01+使用的信道中心。频道在250kbps和1Mbps时占用小于1MHz的带宽,在2Mhz时占用小于2MHz的带宽。

3.9. PA(Power Amplifier) Control
PA(功率放大器)控制用于设置nRF24L01+功率放大器的输出功率。PA控制由RF_SETUP寄存器中的RF_PWR位设置。

[nRF24L01+] 3. Radio Control 无线电控制的更多相关文章
- WHAT IS PPM Encoder ?
About PPM Encoder The PPM encoder allows to encode up to 8 PWM (pulse width modulated) signals into ...
- linux查看端口及端口详解
今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...
- Magic xpa 2.5发布 Magic xpa 2.5 Release Notes
Magic xpa 2.5發佈 Magic xpa 2.5 Release Notes Magic xpa 2.5 Release NotesNew Features, Feature Enhance ...
- 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证
在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...
- linux 常用端口列表
常见端口表汇总 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器 2 compressnet Management Utility com ...
- uCGUI窗口重绘代码分析
一.概述 µC/GUI的窗口重绘是学习者理解窗口工作原理和应用窗口操作的重点.µC/GUI的窗口重绘引入了回调机制,回调机制可以实现图形系统调用用户的代码,由于图形系统使用了剪切算法,使得屏幕重绘的效 ...
- USB设备类型代码(class类型)
Base Class E0h (Wireless Controller) This base class is defined for devices that are Wireless contro ...
- boolean attribute(布尔值属性) attribute vs property
boolean attribute(布尔值属性) boolean attribute HTML - Why boolean attributes do not have boolean val ...
- 网络-05-端口号-F5-负载均衡设-linux端口详解大全--TCP注册端口号大全备
[root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # [root@test ...
- 网络-02-端口号-linux端口详解大全
端口详解 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器 2 compressnet Management Utility compr ...
随机推荐
- typroa破解
Typora 一款 Markdown 编辑器和阅读器 风格极简 / 多种主题 / 支持 macOS,Windows 及 Linux 实时预览 / 图片与文字 / 代码块 / 数学公式 / 图表 目录大 ...
- Numpy技巧: 由label获得相等矩阵
Numpy技巧: 由label获得相等矩阵 假设Label为: [ABAC] , 如何方便的得到一个矩阵, 其元素i,j表示第i位和第j位相等呢? 先把Label复制扩展成: m,m 的 ...
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Ads Kit
1.问题描述: 开屏广告效果最好的实现方式? 解决方法: 1.动画效果和开发者的实现方式有关,和开屏广告页面本身没什么关系的: 2.示例代码中使用Router跳转的方式展示广告,主要是用于演示广告接口 ...
- python重拾第十三天-那就做个堡垒机吧
本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...
- Linux 内核:利用of_函数读取设备树结点/属性信息
Linux 内核:利用of_函数读取设备树结点/属性信息 背景 设备树描述了设备的详细信息,这些信息包括数字类型的.字符串类型的.数组类型的,我们在编写驱动的时候需要获取到这些信息. Linux 内核 ...
- 高通Android平台 电池 相关配置
背景 在新基线上移植有关的代码时,在log中发现有关的东西,请教了有关的同事以后,解决了这个问题. [ 12.775863] pmi632_charger: smblib_eval_chg_termi ...
- PromQL全方位解读:监控与性能分析的关键技术
本文全面探索PromQL,从基础语法到高级操作,详细介绍了数据聚合.时间序列分析及内置函数应用,旨在提升用户构建复杂监控策略和性能分析的能力. 关注[TechLeadCloud],分享互联网架构.云服 ...
- 2.模块文件以及增删改查(CURD操作)
创建 db.py db.py 文件是我们管理数据库连接和模型基类的地方.它让我们的代码更加模块化和可维护,实际生产中也是类似的,无论是在 FastAPI 或者 Flask 等框架中,当使用到 SqlA ...
- mac 安装homebrew 报443
描述 macOS安装Homebrew时总是报错(Failed to connect to raw.githubusercontent.com port 443: Connection refused) ...
- SpringMVC springmvc.xml配置路径前缀和后缀
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...