NRF24L01 无线模块

article/2025/9/21 0:59:29

NRF24L01 简介

NRF24L01 可以实现点对点或者是1(收)对6(发)的无线通信。NRF24L01 采样SPI通信,很方便连接MCU
NRF24L01 无线模块,采用的芯片是 NRF24L01,该芯片的主要特点如下:
1)2.4G 全球开放的 ISM 频段,免许可证使用。
2)最高工作速率 2Mbps,高校的 GFSK 调制,抗干扰能力强。
3)125个可选的频道,满足多点通信和调频通信的需要。从2.4G到2.4+0.125G
4)内置 CRC 检错和点对多点的通信地址控制。
5)低工作电压(1.9~3.6V)。
6)可设置自动应答,确保数据可靠传输。

在这里插入图片描述
GND:接地
VCC:接3.3V电压
CE:模式控制线,在CSN为低,CE协同COMNFIG寄存器共同决定NRF24L01的状态
CSN:SPI片选线
SCK:SPI时钟线
MOSI:SPI数据线(主机输出,从机输入)
MISO:SPI数据线(主机输入,从机输出)
IRQ:中断信号线。中断时为低电平,TxFIFO发完并且受到ACK,RxFIFO收到数据,达到最大重发次数。

SPI时序简介:在这里插入图片描述

空闲状态SCK为0,CPOL(时钟极性)=0;数据在时钟第一个时间边沿采集,CPHA(时钟相位)=0;
Cn:SPI命令位
Sn:STATUS寄存器位
Dn:数据位(MSB;多字节传输时,低字节在前)

工作模式:

NRF24L01的工作模式,有CE和CONFIG寄存器(0X00)d1PWR_UP(第一位)和PWIM_RX(第0位)位共同控制在这里插入图片描述
收发模式又分为:Enhanced ShockBurstTM 收发模式和ShockBurstTM收发模式,只有Enhanced ShockBurstTM 收发模式支持自动ACK和自动重发。开启自动ACK,则默认选择Enhanced模式

Enhanced ShockBurstTM 收发模式

Enhanced ShockBurstTM 收发模式,受用片内的先入先出堆栈区,数据可以低俗从微控制器送入,但高速(1Mbps/2Mbps)发射,这样可以尽量节能。与射频协议相关的所有高速信号处理都是在片内进行,这种做法发好处是:

  1. 节能
  2. 低的系统费用(低速微处理器也能进行高速射频发射)
  3. 数据在空中停留的时间短,抗干扰能力强

Enhanced ShockBurstTM 收发模式,NRF24L01自动处理字头和CRC校验码。
在接收数据时,自动把字头和CRC校验码移去。
在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将使能1发送过程。

Enhanced ShockBurstTM发送流程:

A. 把地址和要发送的数据按时序送入NRF24L01;
B. 配置CONFIG寄存器,使之进入发送模式;
C. MCU把CE置高(至少10us),激发Enhanced ShockBurstTM发射;
D. Enhanced ShockBurstTM发射:
a)给射频前端供电;
b)射频数据打包(加字头、CRC校验码);
c)高速发射数据包; d)发射完成,NRF24L01进入空闲状态

Enhanced ShockBurstTM接收流程:

A. 配置接收地址和要接收的数据包大小;
B. 配置CONFIG寄存器,使之进入接收模式,把CE置高;
C. 130us后,NRF24L01进入监视状态,等待数据包的到来;
D. 当接收到正确的数据包(正确的地址和CRC校验码),NRF24L01自动移去字头、地址和CRC校验位
E. NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起MCU中断)通知MCU;
F. MCU把数据从FIFO读出(0x61指令);
G. 所有数据读取完毕后,可清除STATUS寄存器;NRF24L01可以进入四中主要的模式之一。

Enhanced ShockBurstTM发送模式初始化

  • 写Tx节点的地址位置TX_ADDR
  • 写Rx节点的地址(主要是为了使能Auto Ack)RX_ADDR_P0
  • 使能AUTO ACK EN_AA
  • 使能PIPE 0 EN_RXADDR
  • 配置自动重发次数SETUP_RETR
  • 选择通信频率PF_CH(频率计算公式:2400+RF_CH(Mhz)) PF_CH:0~125
  • 配置发射参数(低噪放大器增益,发射功率,无线速率)RF_SETUP
  • 配置24L01的基本参数以及切换工作模式CONFIG

Enhanced ShockBurstTM接收模式初始化:

  • 写Rx节点的地址RX_ADDR_P0
  • 使能AUTO ACK EN_AA
  • 使能PIPE 0 EN_RXADDR
  • 选择通信频率RF_CH选择通道0又效数据宽度RX_PW_P0
  • 配置发射参数(低噪放大器增益,发射功率,无线速率)RF_SETUP
  • 配置24L01的基本参数以及切换工作模式CONFIG
SPI指令

在这里插入图片描述

硬件连接WIRELESS接口与NRF24L01模块


http://chatgpt.dhexx.cn/article/npCrgHCj.shtml

相关文章

NRF2401模块

一、模块介绍 (1) 2.4Ghz 全球开放 ISM 频段免许可证使用 (2) 最高工作速率 2Mbps,高效 GFSK 调制,抗干扰能力强,特别适合工业控制场合 (3) 126 频道,满足多点通信和跳频通信需要 (4) 内置硬件 CRC 检错和点对多点通信地址控制…

Nrf24l01无线模块

Nrf24l01无线模块 一,模块介绍 二,接口电路, 模块连接注意点: (1) VCC 脚接电压范围为 1.9V~3.6V 之间,不能在这个区间之外,超 过 3.6V 将会烧毁模块。推荐电压 3.3V 左右。 (2) 除电源 VCC 和接地端&…

51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信

51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信 NRF24L01一、简介二、引脚功能描述 程序设计一、对 24L01 的程序编程的基本思路如下:二、Tx 与 Rx 的配置过程1、Tx 模式初始化过程:2、Rx 模式初始化过程: 三、基本程序函数…

详解NRF24L01无线收发模块

近日有粉丝朋友留言,希望介绍一下nRF24L01这款无线收发芯片,正巧前不久的电赛有些涉及,因此将自己的一些经验写在这里,希望能有所收获。 前面我们介绍过单片机的几种通信协议,并且初步了解如何操作寄存器进而控制芯片的…

nRF24L01芯片(模块)介绍

nRF24L01芯片(模块)简介 nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。 输出功率频道选择和协议的…

2.4G通信

文章目录 2.4G无线通信实验一、模块简介二、Enhanced ShockBurstTM模式介绍三. 编程1.初始化IO口2.Enhanced ShockBurstTM发送流程3.Enhanced ShockBurstTM发送模式初始化4.Enhanced ShockBurstTM接收流程5.Enhanced ShockBurstTM接收模式初始化6.读函数7.写函数8.主函数 总结 …

无线收发模块——NRF24L01

1、什么是nRF24L01 nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。有着极低的电流消耗。 nRF24L01与5V单片机的连接通过SPI接口进行通讯,输出功率频道选择和协议的设置可以通过SPI 接口进行设置,几乎可以连接到各种单片…

分布式集群脑裂问题

Zookeeper集群"脑裂"问题 - 运维总结 在分布式集群的脑裂问题中,zookeeper脑裂是一个经典的例子。 在zookeeper集群中,有一个leader和多个follower(observer不参与选举,可以忽略),leader通过周…

分布式脑裂问题

"脑裂"定义 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤…

Redis常见问题——脑裂问题

文章目录 背景一、脑裂问题产生二、选举完成三、总结四、解决方法 背景 脑裂问题:有三台服务器一台主服务器,两台从服务器,还有一个哨兵(哨兵就相当于一个代码段,不参与实际业务) 一、脑裂问题产生 解释一…

Redis脑裂现象

Redis脑裂现象 什么是Redis的脑裂现象 当Redis主从集群环境出现两个主节点为客户端提供服务,这时客户端请求命令可能会发生数据丢失的情况。 脑裂出现的场景 场景一 主从哨兵集群中如果当发生主从集群切换时,那么一定是超过预设quorum数量的哨兵和主…

redis集群(主从)脑裂及解决方案

什么是redis的集群脑裂? redis的集群脑裂是指因为网络问题,导致redis master节点跟redis slave节点和sentinel集群处于不同的网络分区,此时因为sentinel集群无法感知到master的存在,所以将slave节点提升为master节点。此时存在两个…

redis脑裂

脑裂:在主从集群中,同时有两个主节点他们都能接收写请求。而脑裂最直接影响的就是客户端不知道往哪个主节点写入数据,结果就是不同的客户端往不同的主节点写入数据。而且严重的会导致数据丢失。 为什么会发生脑裂? 1.确认是不是数…

【集群】脑裂是什么?Zookeeper是如何解决的?

文章目录 什么是脑裂Zookeeper集群中的脑裂场景过半机制 什么是脑裂 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么…

PXC脑裂问题分析与解决

前言 在使用PXC架构做mysql集群时,线上出现过一次PXC脑裂的故障,通过问题排查,分析与定位,最终针对这个问题以及解决方法做一次记录 脑裂现象表现 1、产品访问MySQL,出现数据不一致的情况(脑裂后一个集群分裂成两个独立的集群,如PXC前置是通过LVS架构访问,当VIP发生…

keepalived脑裂现象

Keepealived最常见的问题是会出现脑裂现象: Master一直发送心跳消息给backup主机,如果中间的链路突然断掉,backup主机将无法收到master主机发送过来的心跳消息(也就是vrrp报文),backup这时候会立即抢占mas…

zookeeper的脑裂问题

关于集群中的"脑裂"问题,不清楚的可以看这里(https://www.cnblogs.com/kevingrace/p/7205846.html),下面重点说下 Zookeeper 脑裂问题的处理办法。ZooKeeper 是用来协调(同步)分布式进程的服务,提供了一个简单高性能的协调内核&…

什么是脑裂问题

所谓脑裂问题就是在多机热备的高可用系统中,当两个结点心跳突然断开,纠纷列为两个独立的个体,由于互相失去联系,都认为对方出现了故障,因此都会争抢对方的资源,这就是脑裂问题 当从节点们发现和主节点连接不…

集群脑裂问题分析

1.什么是集群脑裂 集群的脑裂通常是发生在集群中部分节点之间不可达而引起的(或者因为节点请求压力较大,导致其他节点与该节点的心跳检测不可用)。当上述情况发生时,不同分裂的小集群会自主的选择出master节点,造成原…

Redis中的常见问题(穿透、雪崩、脑裂)

文章目录 1.Redis的缓存穿透2.Redis缓存雪崩的问题3.Redis的脑裂问题 1.Redis的缓存穿透 2.Redis缓存雪崩的问题 3.Redis的脑裂问题 客户端向主服务器写入了数据 但是主服务器还没有来得及同步的情况下 主服务器死了 那么这个时候就会选举新的主服务器 原来的主服务器在一段时间…