nrf24l01模块使用教程

nrf24l01模块使用教程,第1张

  nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器晶体振荡器、调制器和解调器。

  输出功率频道选择和协议的设置可以通过SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成无线数据传送工作。

  极低的电流消耗:当工作在发射模式下发射功率为0dBm 时电流消耗为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。

  nrf24l01模块使用教程

  NRF24L01与控制器的通信采用的SPI通信协议,这个协议具体细节大家可能都懂,不懂的可以之间百度;他们的通信模型是这样的:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第2张

  NRF*之间基本上可以互相通信,只要你地址设置的没有问题!他有六个通道,每一个通道都有自己的缓冲区,这六个通道可以同时跟不同的NRF进行通信,但是通信的两个之间的TX_ADDR和RX_ADDR一定要相同;

  nrf24l01模块使用教程,nrf24l01模块使用教程,第3张

  这幅图能够充分的说明这个问题;Point1 to Point2,Point1和Point2的通道地址一定要一样;具体的设置在下面这个寄存器里面配置:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第4张

  NRF24L01有RX模式,TX模式,Standby-I模式,Standby-II模式,掉电模式;他们之间的模式转换如下图:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第5张

  这张图看着可能没有一点感觉,比较乱,下面这张可能会比较清晰一点:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第6张

  只要我们想切换到什么模式就可以根据这个对寄存器进行配置;不过在配置的过程中,一点要注意适当的延时,我这次也被这个延时纠结了半天;

  nrf24l01模块使用教程,nrf24l01模块使用教程,第7张

  从Standy Mode转化到Tx/Rx mode 我这次就是可能延时的比较长,导致初始化一直没有成功,我刚开始一直的想法是,只要我等待的时间越长,他就越容易实现我的配置;看来这种观念需要改正下;

  为了让整个传输稳定和快速,我可以可以设置自动应答模式;但是他只适合单通道模式:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第8张

  当发送方把数据发送给接收方,接收方会有一个短暂的延时大致130us,然后会高速发送方我接收了;然后接收方会产生一个中断信号,当发送方没有接收到这个ACk,他就会一直卡在这里;

  说到他的中断,他有三种中断模式,一种是接收中断,二是发送完成中断,三发送超时中断;具体我们可以看STATU寄存器:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第9张

  我们一般判断的主要是[6:4],RX_DR是接收到中断标志位,TX_DS发送完成中断标志位,MAX_RT超过最大发送次数标志位;这三位是可读可写的;写1的时候是清除中断标志位;这里还有一个预留位,我们一般不用,但是有时候我可以用他来测试看看是否写寄存器成功;当然,其他寄存器的预留位也可以来测试是否控制器与NRF模块通信是否正常。

  另外还有FIFO_STATUS寄存器,他主要是检测FIFO寄存器的状态:

  nrf24l01模块使用教程,nrf24l01模块使用教程,第10张

  说这么久了,忘记说这个FIFO寄存器,也就是数据寄存器,他有32个Byte,所以我们在设置装载数据的大小时,只能最大设置为32byte;当然可以小于32byte;在接收模式下,如果接收完毕,我们最好把FIFO寄存器清空了,可以看FLUSH_RX寄存器,不过理论上,只要把数据读走,他都会自动清空;但是为了以防万一,还是清空了好;

  nrf24l01模块使用教程,nrf24l01模块使用教程,第11张

  这几个是比较重要的寄存器,要写寄存器的话,必须以W_REGISTER为基地址+命令地址进行写 *** 作;读的话同样的方法;但是一般不写R_REGISTER,因为AAAAA=5bit Register Map Address,正好R_Register的高三位为0,所有Register Map Address的高三位都为0,所以我们可以不用写了;但是对于写 *** 作,高三为为001,故我们一般定义W_REGISTER为0x20,然后与Command与 *** 作;即可;

  R_RX_PAYLOAD与W_TX_PAYLOAD作为发送和接收的缓冲区。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2717170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存