3. Radio Control 无线电控制

nRF24L01+可以配置为:power down, standbyRx/Tx mode

3.1. 无线控制状态图

当VDD电压大于1.9V时,进入上电复位状态,并保持复位状态,直到进入掉电模式:

需要注意的是:

  1. 从待机模式到TX/RX模式的过度时间,和反过来,从TX/RX模式到待机模式的过渡时间是相同的;

  2. 芯片从掉电模式进入TX/RX模式前,必须经过待机I模式;也就是说需要在进入掉电模式后等待Tpd2stby(见表16,估计是晶体振荡器建立时间及稳定之类的时间)后,才能将CE拉高(至少10us)进入RX/TX模式

  3. 晶体振荡器的启动时间与晶体等效电感成正比。在一些晶体数据表中,等效串联电感Ls称为L1或Lm,Cs称为C1或Cm。

    Tpd2stby = Ls/30mH * 1.5ms ,可以这么粗略的计算

  4. 如果芯片掉电,原来寄存器的值不会保存,所以需要从新开始配置;





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_UPPRIM_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 无线电控制的更多相关文章

  1. WHAT IS PPM Encoder ?

    About PPM Encoder The PPM encoder allows to encode up to 8 PWM (pulse width modulated) signals into ...

  2. linux查看端口及端口详解

    今天现场查看了TCP端口的占用情况,如下图   红色部分是IP,现场那边问我是不是我的程序占用了tcp的链接,,我远程登陆现场查看了一下,这种类型的tcp链接占用了400多个,,后边查了一下资料,说E ...

  3. 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 ...

  4. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证

    在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...

  5. linux 常用端口列表

    常见端口表汇总 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器 2 compressnet Management Utility com ...

  6. uCGUI窗口重绘代码分析

    一.概述 µC/GUI的窗口重绘是学习者理解窗口工作原理和应用窗口操作的重点.µC/GUI的窗口重绘引入了回调机制,回调机制可以实现图形系统调用用户的代码,由于图形系统使用了剪切算法,使得屏幕重绘的效 ...

  7. USB设备类型代码(class类型)

    Base Class E0h (Wireless Controller) This base class is defined for devices that are Wireless contro ...

  8. boolean attribute(布尔值属性) attribute vs property

    boolean attribute(布尔值属性) boolean attribute     HTML - Why boolean attributes do not have boolean val ...

  9. 网络-05-端口号-F5-负载均衡设-linux端口详解大全--TCP注册端口号大全备

    [root@test1:Standby] config # [root@test1:Standby] config # [root@test1:Standby] config # [root@test ...

  10. 网络-02-端口号-linux端口详解大全

    端口详解 1 tcpmux TCP Port Service Multiplexer 传输控制协议端口服务多路开关选择器  2 compressnet Management Utility compr ...

随机推荐

  1. 浅析Vite本地构建原理

    前言 随着Vue3的逐渐普及以及Vite的逐渐成熟,我们有必要来了解一下关于vite的本地构建原理. 对于webpack打包的核心流程是通过分析JS文件中引用关系,通过递归得到整个项目的依赖关系,并且 ...

  2. 记一次 Edge 及谷歌 Chrome 浏览器兼容性冲突的解决

    目录 记一次 Edge 及谷歌 Chrome 浏览器兼容性冲突的解决 浏览器兼容性冲突症状 解决方法 1. 把本机和远程的 8235 和 8237 端口屏蔽,包括 TCP 和 UDP 端口 2. 在 ...

  3. 高通LCD开发常见问题&分析

    reference : https://blog.csdn.net/sinat_34606064/article/details/77921323 https://www.cnblogs.com/bi ...

  4. python爬虫-bs4基础

    # 下面的一段HTML代码将作为例子被多次用到.这是 爱丽丝梦游仙境的 的一段内容(以后内容中简称为 爱丽丝 的文档): html_doc = """ <html& ...

  5. 国产芯片!EtherCAT主站和瑞芯微RK3568融合,引领智能化升级!

    转载自:北京盟通科技 盟通成果 随着工业智能化的迅猛推进,国产芯片作为我国自主创新的重要成果,正逐渐崭露头角.在实现工业智能化的过程中,EtherCAT主站技术的应用也愈发重要.盟通此次将瑞芯微国产开 ...

  6. 【资料分享】Xilinx Zynq-7010/7020工业评估板规格书(双核ARM Cortex-A9 + FPGA,主频766MHz)

    1 评估板简介 创龙科技TLZ7x-EasyEVM是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗处理器设计的异构多核SoC评估板,处理器集成PS端双核ARM ...

  7. 树莓派4B-PCA9685驱动舵机

    前言 不知道你们有没有遇到过这么一种情况,直接用树莓派的引脚输出PWM控制舵机,舵机是会出现抖动的.就算代码进行一定的时延迟优化还是会有影响的. 现在我们可以使用PCA9685这个模块去驱动舵机. P ...

  8. input标签 手机端数字键盘

    要一点击提起数字键盘,安卓只要设置input的类型是number或tel, ios 需要 pattern="number"可以直接打开搜狗输入法的数字键盘,可以输入.和数字如果只能 ...

  9. C#事件总结(二)

    续接上一篇文<C#事件总结>,那是通过一个结合例子的文字描述,接下来我将通过图文形式展现. 现在VS开发环境中看看事件是什么样子的: 再来看看我的笔记,希望对你的理解有帮助. 哦,顺便提醒 ...

  10. 解决方案 | 笔记本电脑能连上WIFI,但是无Internet显示地球图标,怎么回事?(win10)

    一.背景 任务栏托盘区显示地球图标,但是实际上可以上网. 疑难诊断一般是这种情况: 二.可能的有效解决方案 0 方案0:使用360断网急救箱傻瓜式修复 个人制作 | 360断网急救箱新版-2.0版单文 ...