STM32控制NRF24L01无线模块进行通信_nrf24l01通讯只能spi模拟吗 ,物联网嵌入式开发开发基础培训

42 阅读9分钟

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。 img img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

8.IRQ7MISO
6.MOSI5.SCK
4.CSN3.CE
2.VCC1.GND

具体说明:

1.vcc:接1.9V~3.6V间的电压
2.GND:接地
3.CE:芯片的模式控制线。在 CSN 为低的情况下,CE 协同NRF24L01 的CONFIG 寄存器共同决定NRF24L01 的状态                
4.CSN:为芯片的片选线  CSN 为低电平芯片工作
5.SCK:为芯片控制的时钟线(SPI时钟)
6.MOSI:为芯片控制数据线,主设备数据输出  从设备数据输入
7.MISO:芯片控制数据线,主设备数据输入  从设备数据输出
8.IRQ:中断信号引脚。中断时变为低电平,即NRF24L01内部发生中断时IRQ引脚从高电平变为低电平。引脚会在以下三种情况变低:(1)Tx FIFO 发完并且收到ACK(使能ACK情况下);(2)Rx FIFO 收到数据;(3)达到最大重发次数。

3.工作模式

工作模式设定

模式PWR_UPPRIM_RXCEFIFO寄存器状态
接收模式111-
发送模式101数据在TX FIFO寄存器中
发送模式101->0停留在发送模式,直到数据发送完
待机模式2101TX FIFO为空
待机模式11-0无数据传输
掉电模式0---

PWR_UP: 上电
PRIM_RX: 掉电
CE: 芯片使能
PWR_UP和PRIM_RX 在配置寄存器(CONFIG)中设置位0和位1:

地址参数复位值类型描述
00寄存器配置寄存器
-保留(未用)70R/W默认位“0”
-MASK_RX_DR60R/W可屏蔽中断RX_RD;1:IRQ引脚不显示RX_RD 中断;0:RX_RD 中断产生时IRQ 引脚电平为低
-MASK_TX_DS50R/W可屏蔽中断TX_DS;1:IRQ引脚不显示TX_DS 中断;0:TX_DS中断产生时IRQ 引脚电平为低
-MASK_MAX_RT40R/W可屏蔽中断MAX_RT;1:IRQ 引脚不显示TX_DS 中断;0:MAX_RT 中断产生时IRQ 引脚电平为低
-EN_CRC30R/WCRC使能;如果EN_AA中任意一位为高EN_CRC 强迫为高
-CRCO20R/WCRC模式;‘0’-8 位CRC 校验‘1’-16 位CRC 校验
-PWR_UP10R/WNRF24L01上电掉电模式设置位;1:上电;0:掉电
-PRIM_RX00R/WNRF24L01接收、发射模式设置位;1:接收模式 0:发射模式

3.1 收发模式

收发模式有Enhanced(增强型) ShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种。

3.1.1 ShockBurstTM 模式
ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)
发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相
关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能
进行高速射频发射);数据在空中停留时间短,抗干扰性高。nRF2401 的 ShockBurstTM 技术同时也减小
了整个系统的平均工作电流。
在 ShockBurstTM 收发模式下,nRF2401 自动处理字头和 CRC 校验码。在接收数据时,自动把字头和
CRC 校验码移去。在发送数据时,自动加上字头和 CRC 校验码,当发送过程完成后,数据准备好引脚通
知微处理器数据发射完毕。

ShockBurstTM收发模式可以与Nrf2401a,02,E1及E2兼容

3.1.2 Enhanced(增强型) ShockBurstTM 模式

增强型ShockBurst TM 典型的双链方式为:发送方要求终端设备在接收到数据后有应答信号,以便发送方检测有无数据丢失,一旦丢失则重发数据。重发数据设置在地址为 04 的数据重发设置寄存器 用于设置其重发次数及设置在未收到应答信号后等待重发的时间。

数据重发设置寄存器(SETUP_RETR):

地址参数复位值类型描述
04寄存器数据重发设置寄存器
-ARD[7:4]0000R/W自动重发延时: ‘0000’-等待250+86us; ‘0001’-等待500+86us; ‘0010’-等待750+86us; …… ‘1111’-等待4000+86us; (延时时间是指一包数据发送完成到下一包数据开始发射之间的时间间隔)
-ARC[3:0]0011R/W自动重发计数: ‘0000’-禁止自动重发; ‘0001’-自动重发一次; …… ‘1111’-自动重发15次

nRF24L01 在接收模式下可以接收6 路不同通道的数据。
每一个数据通道使用不同的地址,但是共用相同的频道。

也就是说6 个不同的nRF24L01 设置为发送模式后可以与同一个设置为接收模式的nRF24L01 进行通讯,而设置为接收模式的nRF24L01 可以对这6 个发射端进行识别。

数据通道0 是唯一
的一个可以配置为40 位自身地址的数据通道。1~5 数据通道都为8 位自身地址和32 位公用地址。所有的
数据通道都可以设置为增强型ShockBurst 模式。

NRF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号,在发送端,数据通道0被用作接收应答信号,因此属通道0 的接收地址要与发送地址端地址相等,以确保接收到正确的应答信号。

这里写图片描述

当MCU控制NRF24L01发送数据时,NRF24L01就会启动发送数据,发送完后NRF24L01就会转到接收模式并等待终端的应答信号。

如果没有收到应答信号,NRF24L01就会重发数据包,直到收到应答信号,或达到重发次数寄存器设定的最大值为止,如果重发次数超过了设定值则产生MAX_RT(最大重发次数中断)(应该在该中断没有被屏蔽的情况下的时候才会发生)

只要收到确认信号,nRF24L01 就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO
中的数据清除掉并产生TX_DS中断(数据发送完中断)(IRQ 引脚置高)。

3.1.2.1 Enhanced ShockBurstTM发射流程
1.配置CONFIG寄存器位PRIM_RX 为低,进入发送模式
2.当MCU 有数据要发送时,接收节点地址(TX_ADDR)和有效数据(TX_PLD)通过SPI 接口写入
nRF24L01。发送数据的长度以字节计数从MCU 写入TX FIFO。当CSN 为低时数据被不断的写入。
发送端发送完数据后,将通道0 设置为接收模式来接收应答信号,其接收地址(RX_ADDR_P0)与接
收端地址(TX_ADDR)相同。
例:在上图 中数据通道5 的发送端(TX5)及接收端(RX)地址设置如下:
TX5:TX_ADDR=0xB3B4B5B605
TX5:RX_ADDR_P0=0xB3B4B5B605
RX:RX_ADDR_P5=0xB3B4B5B605
3.把CE置高,最小时间为10us,激发nRF24L01进行Enhanced ShockBurstTM 发射
4.nRF24L01 Enhanced ShockBurstTM 模式:
(1) 无线系统上电
(2) 频数据打包(加字头、 CRC校验码)
(3) 高速发射数据包(由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.

相关寄存器:

自动应答寄存器:

地址参数复位值类型描述

img img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取