nRF24L01无线模块电路图
单片机毕业设计

基于2.4G射频的汽车防盗报警系统设计摘要:汽车成为很多人不可缺少的交通工具,现在汽车被盗的现象很多,盗贼的手法也层出不穷。
为对付不断升级的盗车手段,人们研制出各种方式、各种结构的防盗器,但汽车被盗还是非常严重。
基于此现象,本次设计采用以单片微机8051为核心设计的汽车防盗报警系统,该系统主要使用无线收发一体射频模块nRF24L01、温度传感器、单片机、显示报警电路。
本系统通过温度传感器测量发动机表面温度,然后把信号输入到单片机,单片机根据检测电路输出的温度与设定温度值的比对决定是否启动继电器亮灯,从无线收发模块发射无线电信号,在接收板的显示屏上显示出当前温度,从而判读汽车是否被启动,实现系统的报警功能。
设计了低功耗采集电路,该系统使用方便,扩展十分容易。
关键词:STC89C52 温度传感器 nRF24L01Based on the 2.4 G car security alarm systemdesignAbstract: the become a lot of people do not lack of transportation, now the phenomenon of the car was stolen a lot, rogue technique also emerge in endlessly. To deal with the escalating auto theft means, people developed all kinds of ways, all kinds of structure of the devices, but the car was stolen or very serious. Based on this phenomenon, this design USES the single chip microcomputer 8051 to design as the core of guard against theft alarm system, this system mainly use wireless transceiver module, rf one nRF24L01 temperature sensors, SCM, display alarming circuit. The system through the temperature sensor measuring engine surface temperature, then the signal is input to a single-chip microcomputer, SCM according to the test circuit output temperature and the temperature setting than to decide whether starter relay light, from wireless transceiver module launch radio signals, the receiver display shows that thecurrent temperature, and thereby reading if the car was launched, the system of alarm function. Design the low consumption acquisition circuit, this system is easy to use, expand very easy.Key words: STC89C52 temperature sensor nRF24L01目录1.绪论 (4)1.1课题的背景与意义 (5)1.2系统功能及目的 (5)2.方案论证 (6)2.1 系统总体方案论证 (6)3.元器件选择 (7)3.1温度传感器部分 (7)3.2 单片机的选择 (7)3.3 显示器件的选择 (8)4.系统的硬件电路设计 (10)4.1系统总体电路设计 (10)4.2单片机主控制电路设计 (11)4.2.1 STC89C52简介 (11)4.2.2STC89C52引脚说明 (12)4.3 LCD显示电路设计 (14)4.3.1 字符型液晶显示模块 (14)4.3.2 字符型液晶显示模块引脚 (15)4.3.3 字符型液晶显示模块内部结构 (15)4.4温度传感器DS18B20电路设计 (16)4.4.1 DS18B20简介 (16)4.4.2 电路设计 (18)4.5无线收发模块 (18)4.5.1 简介 (18)4.5.2 nRF24L01概述 (19)4.5.3 引脚功能及描述 (19)4.5.4 工作模式 (20)4.5.5 工作原理 (21)4.6 电源设计电路 (21)5.系统软件设计 (23)5.1无线发射模块软件设计 (23)5.2 接收端软件设计 (24)6.总结 (26)6.1调试总结 (26)6.2心得体会 (26)致谢 (28)参考文献 (29)附录 (30)1.绪论1.1课题的背景与意义近些年来,随着社会经济的发展以及工业发展的突飞猛进,人民生活水平也有了显著提高,世界的距离也在不断缩小,随着交通日益发达,越来越多的汽车进入了人们的日常生活,随着科学技术的发展,汽车偷窃技术越来越高,令人们防不胜防,已对全世界造成极大的危害,汽车防盗问题也成了一个不容忽视的问题,无论是对汽车制造商还是社会保险业都具有极其重要的研究价值,如何制定出更为严范的法规,开发出更为有效的汽车防盗装置,减少车主的损失是今后人们现就的重要课题。
nRF24L01无线模块6个接收通道_发送nRF24L01

nRF24L01无线模块6个接收通道_发送nRF24L01#include"nRF24L01.h"//uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}; // 定义一个静态发送地址uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0xb2,0xb2,0xb3,0xb4,0x01};//uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x02,0xb4,0xb3,0xb2,0xb1};uchar RX_BUF[TX_PLOAD_WIDTH];uchar TX_BUF[TX_PLOAD_WIDTH]={0x01,0x02,0x03,0x4,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,};uchar flag,status;uchar DATA = 0x01;uchar bdata sta;sbit RX_DR = sta^6;sbit TX_DS = sta^5;sbit MAX_RT = sta^4;/**************************************************//**************************************************函数: init_io()描述:初始化IO/**************************************************/ void init_io(void){CE = 0; // 待机CSN = 1; // SPI禁止SCK = 0; // SPI时钟置低IRQ = 1; // 中断复位LED = 0x00; // 关闭指示灯}/**************************************************//************************************************** 函数:delay_ms()描述:延迟x毫秒/**************************************************/ void delay_ms(uchar x){uchar i, j;i = 0;for(i=0; i{j = 250;while(--j);j = 250;while(--j);}}/**************************************************//**************************************************函数:SPI_RW()描述:根据SPI协议,写一字节数据到nRF24L01,同时从nRF24L01 读出一字节/**************************************************/uchar SPI_RW(uchar byte){uchar i;for(i=0; i<8; i++) // 循环8次{MOSI = (byte & 0x80); // byte最高位输出到MOSIbyte <<= 1; // 低一位移位到最高位SCK = 1; // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据byte |= MISO; // 读MISO到byte最低位SCK = 0; // SCK置低}return(byte); // 返回读出的一字节}/**************************************************//**************************************************函数:SPI_RW_Reg()描述:写数据value到reg寄存器/**************************************************/ uchar SPI_RW_Reg(uchar reg, uchar value){uchar status;CSN = 0; // CSN置低,开始传输数据status = SPI_RW(reg); // 选择寄存器,同时返回状态字SPI_RW(value); // 然后写数据到该寄存器CSN = 1; // CSN拉高,结束数据传输return(status); // 返回状态寄存器}/**************************************************//************************************************** 函数:SPI_Read()描述:从reg寄存器读一字节/**************************************************/uchar SPI_Read(uchar reg){uchar reg_val;CSN = 0; // CSN置低,开始传输数据SPI_RW(reg); // 选择寄存器reg_val = SPI_RW(0); // 然后从该寄存器读数据CSN = 1; // CSN拉高,结束数据传输return(reg_val); // 返回寄存器数据}/**************************************************//**************************************************函数:SPI_Read_Buf()描述:从reg寄存器读出bytes个字节,通常用来读取接收通道数据或接收/发送地址/**************************************************/ uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes) {uchar status, i;CSN = 0; // CSN置低,开始传输数据status = SPI_RW(reg); // 选择寄存器,同时返回状态字for(i=0; ipBuf[i] = SPI_RW(0); // 逐个字节从nRF24L01读出CSN = 1; // CSN拉高,结束数据传输return(status); // 返回状态寄存器}/**************************************************//**************************************************函数:SPI_Write_Buf()描述:把pBuf缓存中的数据写入到nRF24L01,通常用来写入发射通道数据或接收/发送地址/**************************************************/uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes){uchar status, i;CSN = 0; // CSN置低,开始传输数据status = SPI_RW(reg); // 选择寄存器,同时返回状态字for(i=0; iSPI_RW(pBuf[i]); // 逐个字节写入nRF24L01CSN = 1; // CSN拉高,结束数据传输return(status); // 返回状态寄存器}/**************************************************//**************************************************函数:RX_Mode()描述:这个函数设置nRF24L01为接收模式,等待接收发送设备的数据包/**************************************************/void RX_Mode(void){CE = 0;SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 接收设备接收通道0使用和发送设备相同的发送地址// SPI_Write_Buf(WRITE_REG + RX_ADDR_P1, RX_ADDRESS1, TX_ADR_WIDTH);// SPI_Write_Buf(WRITE_REG + RX_ADDR_P2, RX_ADDRESS2, TX_ADR_WIDTH);// SPI_RW_Reg(WRITE_REG + RX_PW_P1, TX_PLOAD_WIDTH);SPI_RW_Reg(WRITE_REG + EN_AA, 0x3f); // 使能接收通道0自动应答SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x3f); // 使能接收通道0SPI_RW_Reg(WRITE_REG + RF_CH, 40); // 选择射频通道0x40 SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH); // 接收通道0选择和发送通道相同有效数据宽度SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); // CRC使能,16位CRC校验,上电,接收模式CE = 1; // 拉高CE启动接收设备}/**************************************************//**************************************************函数:TX_Mode()描述:这个函数设置nRF24L01为发送模式,(CE=1持续至少10us),130us后启动发射,数据发送结束后,发送模块自动转入接收模式等待应答信号。
基于nRF24L01无线双向通信系统设计

基于nRF24L01无线双向通信系统设计丁媛媛【摘要】文章以nRF24 L01无线收发模块和AT89S51单片机为核心,设计了以nRF24L01芯片为基础进行无线双向传输的系统,主要介绍发射器和接收器软硬件结构及微控制器和无线收发芯片的应用.【期刊名称】《常州工学院学报》【年(卷),期】2012(025)005【总页数】5页(P24-27,36)【关键词】nRF24L01;无线双向通信;PCB【作者】丁媛媛【作者单位】烟台职业学院,山东烟台264670【正文语种】中文【中图分类】TN9191 无线传输模块基本工作原理[1]利用无线传输模块进行无线通信传输,通过单片机控制无线传输模块A进行发送无线信号,然后用单片机控制无线传输模块B接收无线传输模块A所发出的无线信号,从而实现一对一的无线信号传输,如图1所示。
反方向传输也是如此,无线传输模块B发出信号,无线传输模块A接收传输信号。
2 硬件电路设计系统硬件部分主要由单片机ATS89S51控制电路、nRF24L01收发模块、稳压电路、显示电路、电平转换电路组成,以下重点介绍无线收发芯片等重点控制部分的电路原理。
2.1 无线模块与主控模块无线传输模块采用nRF24L01芯片[2],该芯片是单片射频收发芯片,工作于2.4~2.5 GHz-ISM频段,芯片内置晶体振荡器、功率放大器、频率合成器以及调制器等功能模块,输出功率与通信频道能够通过程序进行配备。
芯片能耗非常低,如果按照-5 dBm的功率发射,工作电流只有10.5 mA,接收时工作电流18 mA,具有多种低功率的工作模式,节能设计更加方便。
其DuoCeiv-erTM 技术[3]能够使nRF24L01使用同一天线来同时接收两个不同频道的数据。
nRF24L01适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等,应用范围非常广。
nRF24L01工作原理图如图2所示。
图2 nRF24L01工作原理图主控制电路主要由AT89S51单片机芯片[4]、复位电路及外设晶振电路组成。
2.4G无线数传模块电路

2.4G无线数传模块电路2.4G无线模块概述2.4G无线模块(英文:2.4Ghz RF transceiver ,receiver module)工作在全球免申请ISM频道2400M-2483M范围内,实现开机自动扫频功能,共有50个工作信道,可以同时供50个用户在同一场合同时工作,无需使用者人工协调、配置信道。
同时,可以根据成本考虑,选择50米内、150米、600 米多种类型无线模块。
接收单元和遥控器单元具有1键自动对码功能,数字地址编码,容量大,避免地址重复。
VT-CC2510-M1 无线模块采用TI chipcon高性能无线SOC芯片CC2510开发。
是一种完整的低成本、高度集成2.4GHz收发器,专为低功耗无线应用设计。
基本特点·高性能和低功耗的8051微控制器核·2400-2483.5MHz 低成本低功耗无线收发模块·SMD元件24mm×29mm×2.2 mm,内置PCB天线,体积小·支持2-FSK/GFSK/MSK·可编程控制的输出功率,对所有的支持频段可达+1dBm·可灵活配置多种通讯信道,快速频点切换特点,可满足跳频系统的需要·可编程配置传输数率1.2k - 500 kbps·低功耗3.3V 供电·RSSI输出和载波侦听指示几种2.4G无线数传模块介绍无线数传按传输速率区分,分为低速数传模块和高速数传模块两大类,低速数传模块使用的载频均较低,一般都在315MHz,433MHz和915MHz这几个频段,所以一般最高传输速率均不大于150kB/s。
但这些使用在UHF频段无线设备,载波仍具有一定的穿透和绕射能力,传送距离相对较远,最大可达数百米,这是它的优势,但同时也有其固存的缺点,因为工作频率低,工业干扰大,同时大量的汽车无线遥控(锁)均使用这个频段,干扰相对严重,这在技术上严。
nRF24L01中文

单片2.4G无线射频收发芯片nRF24L01===================================================特性●真正的GFSK单收发芯片●内置链路层●增强型ShockBurst TM●自动应答及自动重发功能●地址及CRC检验功能●数据传输率1或2Mbps● SPI接口数据速率0~8Mbps● 125个可选工作频道●很短的频道切换时间可用于跳频●与nRF 24XX系列完全兼容●可接受5V电平的输入● 20脚QFN 44mm封装●极低的晶振要求60ppm●低成本电感和双面PCB板●工作电压 1.9~3.6V应用●无线鼠标键盘游戏机操纵杆●无线门禁●无线数据通讯●安防系统●遥控装置●遥感勘测●智能运动设备●工业传感器●玩具概述:nRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片无线收发器包括:频率发生器增强型SchockBurst TM模式控制器功率放大器晶体振荡器调制器解调器输出功率频道选择和协议的设置可以通过SPI接口进行设置极低的电流消耗当工作在发射模式下发射功率为-6dBm时电流消耗为9.0mA接收模式时为12.3mA掉电模式和待机模式下电流消耗更低快速参考数据参数数值单位最低供电电压 1.9VdBm最大发射功率 0kbps最大数据传输率 2000mA发射模式下电流消耗0dBm 11.3mA接收模式下电流消耗2000kbps 12.3+85温度范围 -40~数据传输率为1000kbps下的灵敏度 -85dBmnA掉电模式下电流消耗 900表1 nRF24L01快速参考数据分类信息型号描述版本nRF24L01 IC 裸片 DnRF24L01 20脚QFN 4*4mm,RoHS&SS-00259compliant DnRF24L01-EVKIT 评估套件 1.0表2nRF24L01 分类信息结构方框图:图1 nRF24L01 及外部接口引脚及其功能引脚名称引脚功能描述1 CE 数字输入 RX或TX模式选择2 CSN 数字输入 SPI片选信号3 SCK 数字输入 SPI时钟4 MOSI 数字输入从SPI数据输入脚5 MISO 数字输出从SPI数据输出脚6 IRQ 数字输出可屏蔽中断脚7 VDD 电源电源+3V8 VSS 电源接地0V9 XC2 模拟输出晶体震荡器2脚10 XC1 模拟输入晶体震荡器1脚/外部时钟输入脚11 VDD_PA 电源输出给RF的功率放大器提供的+1.8V电源12 ANT1 天线天线接口113 ANT2 天线天线接口214 VSS 电源接地0V15 VDD 电源电源+3V16 IREF 模拟输入参考电流17 VSS 电源接地0V18 VDD 电源电源+3V19 DVDD 电源输出去耦电路电源正极端20 VSS 电源接地0V表3nRF24L01引脚功能图2 引脚封装电气特性=40到+85条件VDD=+3V VSS=0V T符号参数条件最小值典型值最大值单位操作条件VDD 电源 1.9 3.0 3.6 V 温度工作温度40 +27 +85数字输入脚V OH高电平输出电压I OH=-0.5mA VDD-0.3 VDD VV OL高电平输出电压I OL=0.5mA VSS 0.3 V 常用射频条件MHzf OP工作频率2400 2525f XTAL晶振频率 16 MHzf 1M频移@1000kbps 160 kHzf 2M频移@2000kbps 320 kHzKbps R GFSK ShockBrust模式下数据传输率>0 2000MHzF CHANNEL频道间距@1000kbps 1MHzF CHANNEL频道间距@2000kbps 2发射操作dBm P RF最大输出功率 0 +4P RFC射频功率控制范围16 18 20 dB P RFCR射频电源 4 dBkHz P BW载波调制的20dB带宽 1800 2000dBm P RF1第一邻近通道发射功率2MHz -20dBm P RF2第二邻近通道发射功率4MHz -50I VDD输出功率-18dBm下电流 11.3 mAI VDD输出功率-18dBm下电流 7.0 mAI VDD-6dBm输出功率ShockBrust模式下电流 0.05 mAI VDD待机状态下电流 32 uAI VDD掉电状态下电流 900 nA接收操作I VDD2000kbps数据传输率下单通道工作电流 12.3 mAI VDD1000kbps数据传输率下单通道工作电流 11.8 mARX SENS在0.1%BRE(@2000kbps)下的灵敏度 -82 dBm RX SENS在0.1%BRE(@1000kbps)下的灵敏度 -85 dBm表4nRF24L01电气特性图3nRF24L01外形封装尺寸极限范围供电电压VDD…………………………….-0.3V~+3.6VVSS (0V)输入电压V I………………………………-0.3V~5.25V输出电压V O……………………………. VSS~VDD总功耗=85……………………… 60mWPD T温度工作温度……………………-40~+85存储器温度…………………-40~+125注意:若超出上述极限值可能对元器件有损害静电敏感元件术语表术语描述ACK 确认信号应答信号ART 自动重发CE 芯片使能CLK 时钟信号CRC 循环冗余校验CSN 片选非ESB 增强型ShockBrust TMGFSK 高斯键控频移IRQ 中断请求ISM 工业科学医学LNA 低噪声放大LSB 最低有效位LSByte 最低有效字节Mbps 兆位/秒MCU 微控制器MISO 主机输入从机输出MOSI 主机输出从机输入MSB 最高有效位MSByte 最高有效字节PCB 印刷电路板PER 数据包误码率PID 数据包识别位PLD 载波PRX 接收源PTX 发射源PWR_DWN 掉电PWR_UP 上电RX 接收RX_DR 接收数据准备就绪SPI 串行可编程接口TX 发送TX_DS 已发送数据表5术语表功能描述工作模式nRF24L01可以设置为以下几种主要的模式1 0 直至数据发送完表6 nRF24L01主要工作模式关于nRF24L01 I/O脚更详细的描述请参见下面的表7低电平使能中断nRF24L01待机模式待机模式I在保证快速启动的同时减少系统平均消耗电流在待机模式I下晶振正常工作在待机模式II下部分时钟缓冲器处在工作模式当发送端TX FIFO寄存器为空并且CE为高电平时进入待机模式II在待机模式期间寄存器配置字内容保持不变掉电模式在掉电模式下,nRF24L01各功能关闭保持电流消耗最小进入掉电模式后nRF24L01停止工作但寄存器内容保持不变启动时间见表格13掉电模式由寄存器中PWR_UP位来控制数据包处理方式nRF24L01有如下几种数据包处理方式ShockBurst TM与nRF2401nRF24E1nRF2402nRF24E2数据传输率为1Mbps时相同增强型ShockBurst TM模式ShockBurst TM模式ShockBurst模式下nRF24L01可以与成本较低的低速MCU相连高速信号处理是由芯片内部的射频协议处理的nRF24L01提供SPI接口数据率取决于单片机本身接口速度ShockBurst模式通过允许与单片机低速通信而无线部分高速通信减小了通信的平均消耗电流在ShockBurst TM接收模式下当接收到有效的地址和数据时IRQ通知MCU随后MCU可将接收到的数据从RX FIFO寄存器中读出在ShockBurst TM发送模式下nRF24L01自动生成前导码及CRC校验参见表格12数据发送完毕后IRQ通知MCU减少了MCU的查询时间也就意味着减少了MCU 的工作量同时减少了软件的开发时间nRF24L01内部有三个不同的RX FIFO寄存器6个通道共享此寄存器和三个不同的TX FIFO寄存器在掉电模式下待机模式下和数据传输的过程中MCU可以随时访问FIFO寄存器这就允许SPI 接口可以以低速进行数据传送并且可以应用于MCU硬件上没有SPI接口的情况下增强型的ShockBurst TM模式增强型ShockBurst TM模式可以使得双向链接协议执行起来更为容易有效典型的双向链接为发送方要求终端设备在接收到数据后有应答信号以便于发送方检测有无数据丢失一旦数据丢失则通过重新发送功能将丢失的数据恢复增强型的ShockBurst TM模式可以同时控制应答及重发功能而无需增加MCU 工作量图4 nRF24L01在星形网络中的结构图nRF24L01在接收模式下可以接收6路不同通道的数据见图4每一个数据通道使用不同的地址但是共用相同的频道也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01进行通讯而设置为接收模式的nRF24L01可以对这6个发射端进行识别数据通道0是唯一的一个可以配置为40位自身地址的数据通道1~5数据通道都为8位自身地址和32位公用地址所有的数据通道都可以设置为增强型ShockBurst模式nRF24L01在确认收到数据后记录地址并以此地址为目标地址发送应答信号在发送端数据通道0被用做接收应答信号因此数据通道0的接收地址要与发送端地址相等以确保接收到正确的应答信号见图5 选择地址举例图5应答地址确定举例nRF24L01配置为增强型的ShockBurst TM发送模式下时只要MCU有数据要发送nRF24L01就会启动ShockBurst TM模式来发送数据在发送完数据后nRF24L01转到接收模式并等待终端的应答信号如果没有收到应答信号nRF24L01将重发相同的数据包直到收到应答信号或重发次数超过SETUP_RETR_ARC寄存器中设置的值为止如果重发次数超过了设定值则产生MAX_RT中断只要收到确认信号nRF24L01就认为最后一包数据已经发送成功接收方已经收到数据把TX FIFO 中的数据清除掉并产生TX_DS中断IRQ引脚置高在增强型ShockBurst模式下nRF24L01有如下的特征当工作在应答模式时快速的空中传输及启动时间极大的降低了电流消耗低成本nRF24L01集成了所有高速链路层操作比如重发丢失数据包和产生应答信号无需单片机硬件上一定有SPI口与其相连SPI接口可以利用单片机通用I/O口进行模拟 由于空中传输时间很短极大的降低了无线传输中的碰撞现象由于链路层完全集成在芯片上非常便于软硬件的开发增强型ShockBurst TM发送模式1配置寄存器位PRIM_RX为低2当MCU有数据要发送时接收节点地址TX_ADDR和有效数据(TX_PLD)通过SPI接口写入nRF24L01发送数据的长度以字节计数从MCU写入TX FIFO当CSN为低时数据被不断的写入发送端发送完数据后将通道0设置为接收模式来接收应答信号其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同例在图5中数据通道5的发送端(TX5)及接收端(RX)地址设置如下TX5TX_ADDR=0xB3B4B5B605TX5RX_ADDR_P0=0xB3B4B5B605RX RX_ADDR_P5=0xB3B4B5B6053设置CE为高启动发射CE高电平持续时间最小为10 us4nRF24L01 ShockBurst TM模式无线系统上电启动内部16MHz时钟无线发送数据打包见数据包描述高速发送数据由MCU设定为1Mbps或2Mbps5如果启动了自动应答模式自动重发计数器不等于0ENAA_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.增强型ShockBurst TM接收模式1 ShockBurst TM接收模式是通过设置寄存器中PRIM_RX位为高来选择的准备接收数据的通道必须被使能EN_RXADDR寄存器所有工作在增强型ShockBurst TM模式下的数据通道的自动应答功能是由(EN_AA寄存器)来使能的有效数据宽度是由RX_PW_Px寄存器来设置的地址的建立过程见增强型ShockBurst TM发送章节2接收模式由设置CE为高来启动3 130us后nRF24L01开始检测空中信息4接收到有效的数据包后地址匹配CRC检验正确数据存储在RX_FIFO中同时RX_DR位置高并产生中断状态寄存器中RX_P_NO位显示数据是由哪个通道接收到的5如果使能自动确认信号则发送确认信号6 MCU设置CE脚为低进入待机模式I低功耗模式7 MCU将数据以合适的速率通过SPI口将数据读出8芯片准备好进入发送模式接收模式或掉电模式两种数据双方向的通讯方式如果想要数据在双方向上通讯,PRIM_RX寄存器必须紧随芯片工作模式的变化而变化处理器必须保证PTX和PRX端的同步性在RX_FIFO和TX_FIFO寄存器中可能同时存有数据自动应答RX自动应答功能减少了外部MCU的工作量并且在鼠标/键盘等应用中也可以不要求硬件一定有SPI接口因此降低成本减少电流消耗自动重应答功能可以通过SPI口对不同的数据通道分别进行配置在自动应答模式使能的情况下收到有效的数据包后系统将进入发送模式并发送确认信号发送完确认信号后系统进入正常工作模式工作模式由PRIM_RX位和CE引脚决定自动重发功能ART(TX)自动重发功能是针对自动应答系统的发送方SETUP_RETR寄存器设置启动重发数据的时间长度在每次发送结束后系统都会进入接收模式并在设定的时间范围内等待应答信号接收到应答信号后系统转入正常发送模式如果TX FIFO中没有待发送的数据且CE脚电平为低则系统将进入待机模式I如果没有收到确认信号则系统返回到发送模式并重发数据直到收到确认信号或重发次数超过设定值达到最大的重发次数有新的数据发送或PRIM_RX寄存器配置改变时丢包计数器复位数据包识别和CRC校验应用于增强型ShockBurst TM模式下每一包数据都包括两位的PID数据包识别来识别接收的数据是新数据包还是重发的数据包PID 识别可以防止接收端同一数据包多次送入MCU在发送方每从MCU取得一包新数据后PID值加一PID 和CRC校验应用在接收方识别接收的数据是重发的数据包还是新数据包如果在链接中有一些数据丢失了则PID值与上一包数据的PID值相同如果一包数据拥有与上一包数据相同的PID值nRF24L01将对两包数据的CRC值进行比较如果CRC值也相同的话就认为后面一包是前一包的重发数据包而被舍弃1接收方接收方对新接收数据包的PID值与上一包进行比较如果PID值不同则认为接收的数据包是新数据包如果PID值与上一包相同则新接收的数据包有可能与前一包相同接收方必须确认CRC 值是否相等如果CRC值与前一包数据的CRC值相等则认为是同一包数据并将其舍弃2发送方每发送一包新的数据则发送方的PID值加一图6PID值生成和检测CRC校验的长度是通过SPI接口进行配置的一定要注意CRC计算范围包括整个数据包地址PID和有效数据等若CRC校验错误则不会接收数据包这一点是接收数据包的附加要求在上图没有说明载波检测CD当接收端检测到射频范围内的信号时将CD置高否则CD为低内部的CD信号在写入寄存器之前是经过滤波的内部CD高电平状态至少保持128us以上在增强型ShockBurst TM模式中只有当发送模块没有成功发送数据时推荐使用CD检测功能如果发送端PLOS_CNT显示数据包丢失率太高时可将其设置位接收模式检测CD值如果CD为高说明通道出现了拥挤现象需要更改通信频道如果CD为低电平状态距离超出通信范围可保持原有通信频道但需作其它调整数据通道nRF24L01配置为接收模式时可以接收6路不同地址相同频率的数据每个数据通道拥有自己的地址并且可以通过寄存器来进行分别配置数据通道是通过寄存器EN_RXADDR来设置的默认状态下只有数据通道0和数据通道1是开启状态的每一个数据通道的地址是通过寄存器RX_ADDR_Px来配置的通常情况下不允许不同的数据通道设置完全相同的地址数据通道0有40位可配置地址数据通道1~5的地址为32位共用地址+各自的地址最低字节图7所示的是数据通道1~5的地址设置方法举例所有数据通道可以设置为多达40位但是1~5数据通道的最低位必须不同图7 通道0~5的地址设置当从一个数据通道中接收到数据并且此数据通道设置为应答方式的话则nRF24L01在收到数据后产生应答信号此应答信号的目标地址为接收通道地址寄存器配置有些是针对所有数据通道的有些则是针对个别的如下设置举例是针对所有数据通道的CRC使能/禁止CRC计算接收地址宽度频道设置无线数据通信速率LNA 增益射频输出功率寄存器配置nRF24L01所有配置都在配置寄存器中所有寄存器都是通过SPI口进行配置的SPI接口SPI接口是标准的SPI接口其最大的数据传输率为10Mbps大多数寄存器是可读的SPI指令设置SPI接口可能用到的指令在下面有所说明CSN为低后SPI接口等待执行指令每一条指令的执行都必须通过一次CSN由高到低的变化SPI指令格式<命令字由高位到低位每字节>AAAAAAAAAA1-32读操作全部从字节当读有效数据完成后寄存器中有效数据被清除应用于接收模式下1-32开始应用于发射模式下应用于发射模式下寄存器应用于接收模式下在传输应答信号过程中不应执行此指令信号过程中执行此指令的话将使得应答信号不能被完整的传输重新使用上一包有效数据当数据包被不断的重新发射空操作R_REGISTER和W_REGISTER寄存器可能操作单字节或多字节寄存器当访问多字节寄存器时首先要读/写的是最低字节的高位在所有多字节寄存器被写完之前可以结束写SPI 操作在这种情况下没有写完的高字节保持原有内容不变例如RX_ADDR_P0寄存器的最低字节可以通过写一个字节给寄存器RX_ADDR_P0来改变在CSN状态由高变低后可以通过MISO来读取状态寄存器的内容中断nRF24L01的中断引脚IRQ为低电平触发当状态寄存器中TX_DS RX_DR或MAX_RT为高时触发中断当MCU给中断源写1时中断引脚被禁止可屏蔽中断可以被IRQ中断屏蔽通过设置可屏蔽中断位为高则中断响应被禁止默认状态下所有的中断源是被禁止的SPI时序图8910和表910给出了SPI操作及时序在写寄存器之前一定要进入待机模式或掉电模式在图8至图10中用到了下面的符号Cn-SPI指令位Sn-状态寄存器位Dn-数据位备注由低字节到高字节每个字节中高位在前图8SPI读操作图9SPI写操作图10SPI NOP 操作时序图表9SPI参考时间C load=5pF表10SPI参考时间C load=10pF寄存器地址0’默认为R/W 可屏蔽中断R/W 可屏蔽中断R/W CRC自动应答所有数据通道允许–1Mbps ‘1’-18dBm当接收到有效数据后置一接收数据通道号数据通道号寄存器满标志寄存器满当写当丢失个数据包后此寄存器重启个字节设定1个字节先设定2最低字节可设置高字最低字节可设置最低字节可设置最低字节可设置ShockBurst模式下1: 1字节有效数据宽度……32: 32字节有效数据宽度15 RX_PW_P4Reserved 7:6 00 R/W 默认为00RX_PW_P4 5:0 0 R/W 接收数据通道4有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度16 RX_PW_P5Reserved 7:6 00 R/W 默认为00RX_PW_P5 5:0 0 R/W 接收数据通道5有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度17 FIFO_STATUS FIFO 状态寄存器Reserved 7 0 R/W 默认为0TX_REUSE 6 0 R 若TX_REUSE=1则当CE位高电平状态时不断发送上一数据包TX_REUSE通过SPI 指令REUSE_TX_PL设置通过W_TX_PALOAD或FLUSH_TX复位TX_FULL 5 0 R TX FIFO寄存器满标志1:TX FIFO寄存器满0: TX FIFO寄存器未满有可用空间 TX_EMPTY 4 1 R TX FIFO寄存器空标志1:TX FIFO寄存器空0: TX FIFO寄存器非空 Reserved 3:2 00 R/W 墨认为00RX_FULL 1 0 R RX FIFO寄存器满标志1:RX FIFO寄存器满0: RX FIFO寄存器未满有可用空间 RX_EMPTY 0 1 R RX FIFO寄存器空标志1:RX FIFO寄存器空0: RX FIFO寄存器非空N/A TX_PLD 255:0 WN/A RX_PLD 255:0 R表11nRF24L01寄存器地址与nRF24XX兼容的寄存器配置如何建立nRF24L01从nRF2401/ nRF2402/ nRF24E1/ nRF24E2接收数据使用与nRF2401/ nRF2402/ nRF24E1/ nRF24E2相同的CRC配置设置PRIM_RX位为1相应通道禁止自动应答功能与发射模块使用相同的地址宽度与发射模块使用相同的频道在nRF24L01和nRF2401/ nRF2402/ nRF24E1/ nRF24E2两端都选择1Mbit/s的数据传输率设置正确的数据宽度设置PWR_UP和CE为高如何建立nRF24L01发射nRF2401/ nRF2402/ nRF24E1/ nRF24E2接收数据使用与nRF2401/ nRF2402/ nRF24E1/ nRF24E2相同的CRC配置设置PRIM_RX位为0设置自动重发计数器为0禁止自动重发功能与nRF2401/ nRF2402/ nRF24E1/ nRF24E2使用相同的地址宽度与nRF2401/ nRF2402/ nRF24E1/ nRF24E2使用相同的频道在nRF24L01和nRF2401/ nRF2402/ nRF24E1/ nRF24E2两端都选择1Mbit/s的数据传输率设置PWR_UP为高发送与nRF2401/ nRF2402/ nRF24E1/ nRF24E2寄存器配置数据宽度相同的数据长度设置CE为高启动发射打包描述增强型ShockBurst TM模式下的数据包形式前导码地址35字节9位标志位数据132字节 CRC校验0/1/2字节ShockBurst TM模式下与nRF2401/ nRF2402/ nRF24E1/ nRF24E2相兼容的数据包形式校验0/1/2字节前导码地址35字节数据132字节 CRC 前导码 前导码用来检测0和1芯片在接收模式下去除前导码在发送模式下加入前导码地址 地址内容为接收机地址地址宽度可以是34或5字节宽度地址可以对接收通道及发送通道分别进行配置从接收的数据包中自动去除地址标志位 PID数据包识别其中两位是用来每当接收到新的数据包后加一七位保留用作将来与其它产品相兼容当nRF24L01与nRF2401/ nRF24E1通讯时不起作用数据 132字节宽度CRC CRC校验是可选的02字节宽度的CRC校验8位CRC校验的多项式是X8+X2+X+116位CRC校验的多项式是X16+X12+X5+1表12数据包描述重要的时序数据下面是nRF24L01部分工作时序数据nRF24L01时序信息nRF24L01时序最大值最小值参数名掉电模式待机模式 1.5ms T pd2stby 待机模式发送/接收模式130us T stby2aCE高电平保持时间 10us Thce CSN为低电平CE上升沿的延迟时间 4us T pece2csn表13nRF24L01工作时序nRF24L01在掉电模式下转入发射模式或接收模式前必须经过1.5ms的待机模式注意当关掉电源VDD后寄存器配置内容丢失模块上电后需重新进行配置增强型ShockBurst模式时序图11增强型ShockBurst TM模式发送一包数据时序2Mbps图11所示是发送一包数据并收到应答信号的示意图数据送入发送模块部分没有在图中显示接收模块转入接收模式CE=1发射模块配置为发射模式CE=1持续至少10us130us后启动发射再过37us后发送一字节数据发送结束后发送模块自动转入接收模式等待应答信号发送模块在收到应答信号后产生中断通知MCU IRQ (TX_DS)=>TX-data sent(数据发送完)接收模块接收到数据包后产生中断通知MCU IRQ (RX_DR)=>RX-data ready(数据接收完毕)外围RF信息天线输出ANT1和ANT2输出脚给天线提供稳定的RF输出这两个脚必须连接到VDD的直流通路或者通过RF扼流圈或者通过天线双极的中心点在输出功率最大时0dBm推荐使用负载阻抗为15+j88通过简单的网络匹配可以获得较低的阻抗例如50Ω输出功率调节RF_PWR 输出功率电流消耗11.3mAdBm11 010 -6 dBm 9.0 mA01 -12 dBm 7.5 mA00 -18 dBm 7.0 mA=27,负载=15+j88工作条件VDD=3.0V,VSS=0V,T表14nRF24L01输出功率设置晶振规格晶振频率的精确度取决于出厂时精度的设置和在温度变化及老化过程中的稳定性频率C L ESR C0max精度16MHz 8-16pF 1007.0 pF 60ppm表15nRF24L01的晶振规格为了实现晶体振荡器低功耗和快速启动的目的建议使用表中容值较小的电容最好晶振的并联等效电容C O=1.5pF但考虑成本因素通常以Co_max=7.0pF代替Co=1.5pF负载电容C L由以下公式给出C L=C1’*C2’/(C1’+C2’),这里C1’=C1+C PCB1+C I1,C2’=C2+C PCB2+C I2C1和C2为贴片电容, C PCB1和C PCB2为PCB布线的寄生电容C I1和C I2是XC1和XC2引脚看进去的电容典型值为1 pFnRF24L01与控制器共用晶振当控制器驱动晶振给nRF24L01提供晶振输入XC1时nRF24L01必须遵循以下规则晶振参数当控制器提供给nRF24L01时钟输入则负载电容C L只能通过控制器设置晶振精度为60ppm晶振振幅及消耗电流所有输入信号的幅值都不能超过规定电压但任何内部的直流电压都可以超过如果超过规定电压将激发ESD结构影响无线收发效果图12晶体振荡器原理nRF24L01晶振用来调节振幅达到低电流消耗和较好的无线信噪比当使用外部时钟时当使用外部时钟时XC2引脚可以悬空PCB板面设计及去藕指南一个好的PCB布线对射频性能有很大影响一个差的PCB板设计可能导致丢包甚至可能导致不能实现其应有的功能nRF24L01的射频PCB板设计及其周边元件包括匹配网络等可以从www.nvlsi.no下载推荐使用至少两层板包括一个地层nRF24L01的直流供电电源应尽可能靠近芯片的VDD引脚并且经高质量的RF电容去耦见表16最好用一个大电容比如:4.7uF钽电容并联一个小电容nRF24L01的供电电源必须经过很好的滤波并且与数字供电电源分离开来PCB板避免使用长的电源走线所有元器件的地VDD及VDD与去耦电容应尽可能的靠近nRF24L01芯片如果在PCB板的顶层有铺铜地网VSS应直接与铺铜面连接如果在PCB板的底层有铺铜地网则应该在离VSS脚尽可能近的地方放置过孔连接每个VSS最少应有一个过孔所有数字信号线和控制信号线都不能离晶振和电源线太近应用举例nRF24L01单端匹配网络晶振偏置电阻去藕电容图13nRF24L01 单端50射频输出原理图表16nRF24L01天线匹配网络BOM清单PCB布线示例图14所示PCB布线是图13电路原理图的PCB布线举例使用了1.6mm 厚度的FR-4双面板在PCB 板的顶层和底层各有一个铺铜面顶层和底层的铺铜面通过大量的过孔连接在天线的下面没有铺铜顶层丝印顶层布线底层布线图14nRF24L01单端PCB天线射频板布线0603元件封装。
基于nRF24L01的数控机床无线手轮设计

基于nRF24L01的数控机床无线手轮设计作者:卢明刘黎辉来源:《现代电子技术》2013年第07期摘要:传统的有线电子手轮由于受到连接线的约束,在操作时有诸多不便。
为了使手轮的操作更加方便,提高工作效率,使用单片机采集手轮产生的信号,再通过无线射频芯片nRF24L01进行信号的传输,设计出一种数控机床无线手轮。
使得手轮的使用摆脱了有线的束缚。
关键词:无线手轮;无线射频; nRF24L01;数控机床中图分类号: TN911.7⁃34 文献标识码: A 文章编号: 1004⁃373X(2013)07⁃0163⁃03手轮,即手摇脉冲发生器。
在数控系统中,刀具微动、工件对刀、工作台的随动、机床原点的修正等这些功能通常是通过手轮操作来实现的[1]。
手轮主要由光电编码器、坐标轴选择开关和增量倍率选择开关组成,用于手摇方式控制数控机床相应坐标轴的移动。
但传统的有线手轮的连接线的接头处容易断裂,使用时间长了容易出现连接不可靠的问题,同时因为受到连接线的影响,用户无法围绕机床自由移动。
如今无线通信技术越来越成熟,无线产品也越来越多,由此可见,可以基于无线技术研发一种新型无线手轮来改善现有手轮的性能。
本次设计了一种基于工业级内置硬件链路层协议的低成本无线芯片nRF24L01的无线手轮。
手轮使用无线传输后,杜绝了连线断裂的问题,能提高手轮的使用寿命。
摆脱有线连接的束缚,使用者可以移动自由,操作方便,能提高工作效率。
1 设计原理本次设计的无线手轮,由手持发射端和机床接收端两部分构成,工作原理如图1所示。
发射端由单片机控制器采集手轮产生的差分信号和按键产生的控制信号,经过编码后通过无线方式发送出去。
接收端则由单片机控制nRF24L01接收由手持发送端发过来的信号。
经过解码后还原成差分脉冲信号和按键控制信号并输出用于控制机床移动。
原理框图2 硬件设计2.1 控制信号的采集信号的采集由Atmel公司的Atmega16单片机来完成。
无线鼠标系统电路设计方案大全(三款电路设计原理详细)
无线鼠标系统电路设计方案大全(三款电路设计原理
详细)
无线鼠标系统电路设计方案(一)
设计的无线鼠标,以CC2430为控制芯片构成发射电路和接收电路。
发射电路负责采集与发送鼠标按键的移动信息,接收电路负责信息接收、处理并与计算机通信。
1、发射部分的电路设计
发射部分的硬件电路由鼠标移动光学传感器ADNS5030、鼠标按键、无线发射模块CC2430(软件设置为发送模式)构成。
由光学传感器ADNS5030检测鼠标的移动信息,将采集到的信息经过SPI 串行接口传递给CC2430处理并发送出去。
发射部分的电路图见图
2。
ADNS-5030光学传感器,功耗低且尺寸小,能高速检测鼠标运动。
它包含图像采集系统(IAS)、数字信号处理器(DSP)和串行总线端口。
IAS将采集的图像通过数字信号处理,计算鼠标在dx和dy方向的相对位移值,决定移动的方向及距离。
基于nRF24L01的通用无线通信模块设计
电路 设 计 , 可 以 便捷 、 高效 地 使 宿 主 机 将 其 串 口扩展 为无 线 串 口。 该 模 块 可广 泛 应 用 于 无 线数 据 采 集 、 遥控装置、 自主 移 动 平 台等领 域 关键 词 :无 线 通信 ;n RF 2 4 L 0 1 ;串 口 ;微 控 制 器
第2 l卷 第 1 8期
V0 l - 2l
电子设计 工程
El e c t r o n i c De s i g n E n g i n e e r i n g
2 0 l 3年 9月
S e p .2 01 3
No . 1 8
基于 n RF 2 4 L 0 1的通 用无线通信模 块设计
中图分类号: r P 2 7 4 Leabharlann 文 献标 识 码 : A
文 章 编 号 :1 6 7 4 — 6 2 3 6 ( 2 0 1 3 ) l 8 — 0 0 8 4 — 0 3
De s i g n o f g e n e r a l wi r e l e s s c o mmu n i c a t i o n mo du l e b a s e d o n nRF2 4 L0 1
Ab s t r a c t : I n o r d e r t o f a c i l i t a t e d a t a i n t e r a c t i o n b e t we e n e l e c t r o n i c e q u i p me n t s w i t h o t h e r s ,a g e n e r a l w i r e l e s s c o mmu n i c a t i o n mo d u l e w i t h s i mp l e s t r u c t u r e ,r e l i a b l e t r a n s mi s s i o n,f l e x i b l e c o n f i g u r a t i o n,i s d e s i g n e d . Th e mo d u l e h a s t h e c o r e wi t h P I C
NRF24L01无线通信模块
NRF24L01无线通信模块一、NRF24L01简介:NRF24L01 是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片。
无线收发器包括:频率发生器、增强型SchockBurst TM 模式控制器、功率放大器、晶体振荡器、调制器、解调器。
输出功率、频道选择和协议的设置可以通过SPI 接口进行设置。
极低的电流消耗:当工作在发射模式下发射功率为-6dBm 时电流消耗为9mA,接收模式12.3mA。
掉电模式和待机模式下电流消耗更低。
二、NRF24L01参考数据:三、模块接口尺寸和说明四、引脚及功能:五、NRF24L01的SPI命令宏定义:六、NRF24L01相关寄存器地址宏定义:七、NRF24L01的工作模式:1、NRF24L01模式配置2、发送模式函数配置3、接收模式函数配置4、发送、接收模式说明(1)在发射模式下,CE至少要拉高10us。
(2)NRF24L01在接收模式下可以接收6路不同通道的数据,每一个数据通道使用不同的地址,但是共用相同的频道。
(3)数据通道0是唯一一个可以配置为40位自身地址的数据通道,1~5数据通道都为8位自身地址和32位共用地址。
(4)所有的数据通道都可以设置为增强型ShockBurst模式。
八、NRF24L01的打包格式:1、增强型ShockBurst模式下的数据包形式前导码 | 地址(3~5字节) | 9位(标志位) | 数据(1~32字节) | CRC校验(0/1/2字节) 2、ShockBurst模式下与NRF24L01等相兼容的数据包形式前导码 | 地址(3~5字节) | 数据(1~32字节) | CRC校验(0/1/2字节)3、数据包说明前导码:在发送模式下加入,接收模式下去除,用来检测0和1。
地址:1)地址内容为接收机地址。
2)地址宽度可以是3、4或5字节宽度。
3)地址可以对接收通道和发射通道分别进行配置。
4)从接收的数据包中自动去除地址。
nrf24L01中文资料
单片2.4G 无线射频收发芯片nRF24L01===================================================特性● 真正的GFSK● 内置链路层● 增强型ShockBurst TM● 自动应答及自动重发功能 ● 地址及CRC 检验功能● 数据传输率1或2Mbps ● SPI 接口数据速率0~8Mbps ● 125个可选工作频道● 很短的频道切换时间可用于跳频 ● 与nRF 24XX 系列完全兼容 ● 可接受5V 电平的输入 ● 20脚QFN 44mm 封装 ● 极低的晶振要求60ppm ● 低成本电感和双面PCB 板 ● 工作电压 1.9~3.6V 应用● 无线鼠标键盘游戏机操纵杆 ● 无线门禁● 无线数据通讯 ● 安防系统 ● 遥控装置 ● 遥感勘测● 智能运动设备 ● 工业传感器 ● 玩具 概述:nRF24L01是一款工作在2.4~2.5GHz 世界通用ISM 频段的单片无线收发器芯片无线收发器包括:频率发生器增强型SchockBurst TM 模式控制器功率放大器晶体振荡器调制器解调器输出功率频道选择和协议的设置可以通过SPI 接口进行设置极低的电流消耗当工作在发射模式下发射功率为-6dBm 时电流消耗为9.0mA 接收模式时为12.3mA掉电模式和待机模式下电流消耗更低 快速参考数据参数 数值 单位最低供电电压 1.9 V最大发射功率 0 dBm最大数据传输率 2000 kbps发射模式下电流消耗0dBm 11.3 mA接收模式下电流消耗2000kbps 12.3 mA温度范围 -40~ +85数据传输率为1000kbps 下的灵敏度 -85 dBm掉电模式下电流消耗 900 nA 表1 nRF24L01快速参考数据很短的时间???hehe,,有想法,,,是Mbps,,,,要利用好,,,这是在此功耗下,,,大的功耗消耗更大丠丠dBm=10*lg(P/1mW)为0.9uA 1mW W分类信息型号描述版本nRF24L01 IC 裸片 DnRF24L01 20脚QFN 4*4mm,RoHS&SS-00259compliant DnRF24L01-EVKIT 评估套件 1.0表2nRF24L01 分类信息结构方框图:图1 nRF24L01 及外部接口引脚及其功能引脚名称引脚功能描述1 CE 数字输入 RX或TX模式选择2 CSN 数字输入 SPI片选信号3 SCK 数字输入 SPI时钟4 MOSI 数字输入从SPI数据输入脚5 MISO 数字输出从SPI数据输出脚6 IRQ 数字输出可屏蔽中断脚7 VDD 电源电源+3V8 VSS 电源接地0V9 XC2 模拟输出晶体震荡器2脚10 XC1 模拟输入晶体震荡器1脚/外部时钟输入脚11 VDD_PA 电源输出给RF的功率放大器提供的+1.8V电源12 ANT1 天线天线接口113 ANT2 天线天线接口214 VSS 电源接地0V15 VDD 电源电源+3V16 IREF 模拟输入参考电流17 VSS 电源接地0V18 VDD 电源电源+3V19 DVDD 电源输出去耦电路电源正极端20 VSS 电源接地0V表3nRF24L01引脚功能图2 引脚封装电气特性参数+27 +85 高电平输出电压=-0.5mA 高电平输出电压=0.5mA 160 320R GFSK >0 1800 2000 单通道工作电流单通道工作电流0.1%BRE(@2000kbps)图3nRF24L01外形封装尺寸极限范围供电电压VDD…………………………….-0.3V~+3.6VVSS (0V)输入电压V I………………………………-0.3V~5.25V输出电压V O……………………………. VSS~VDD总功耗=85……………………… 60mWPD T温度工作温度……………………-40~+85存储器温度…………………-40~+125注意:若超出上述极限值可能对元器件有损害静电敏感元件术语表术语描述ACK 确认信号应答信号ART 自动重发CE 芯片使能CLK 时钟信号CRC 循环冗余校验CSN 片选非ESB 增强型ShockBrust TMGFSK 高斯键控频移IRQ 中断请求ISM 工业科学医学LNA 低噪声放大LSB 最低有效位LSByte 最低有效字节Mbps 兆位/秒MCU 微控制器MISO 主机输入从机输出MOSI 主机输出从机输入MSB 最高有效位MSByte 最高有效字节PCB 印刷电路板PER 数据包误码率PID 数据包识别位PLD 载波PRX 接收源PTX 发射源PWR_DWN 掉电PWR_UP 上电RX 接收RX_DR 接收数据准备就绪SPI 串行可编程接口TX 发送TX_DS 已发送数据表5术语表功能描述工作模式nRF24L01可以设置为以下几种主要的模式模式PWR_UP PRIM_RX CE FIFO寄存器状态-接收模式 1 1 1数据在TX FIFO寄存器中发送模式 1 0 1发送模式 1 0 10 停留在发送模式直至数据发送完TX FIFO为空待机模式II 1 0 1待机模式I 1 - 0无数据传输-掉电模式0 - -表6 nRF24L01主要工作模式关于nRF24L01 I/O脚更详细的描述请参见下面的表7nRF24L01在不同模式下的引脚功能引脚名称 方向 发送模式接收模式 待机模式 掉电模式CE 输入 高电平>10us 高电平低电平-CSN 输入 SPI 片选使能低电平使能SCK 输入 SPI 时钟 MOSI输入 SPI 串行输入 MISO 三态输出 SPI 串行输出 IRQ输出 中断低电平使能表7nRF24L01引脚功能待机模式待机模式I在保证快速启动的同时减少系统平均消耗电流在待机模式I 下晶振正常工作在待机模式II 下部分时钟缓冲器处在工作模式当发送端TX FIFO 寄存器为空并且CE 为高电平时进入待机模式II 在待机模式期间寄存器配置字内容保持不变掉电模式在掉电模式下,nRF24L01各功能关闭保持电流消耗最小进入掉电模式后nRF24L01停止工作但寄存器内容保持不变启动时间见表格13掉电模式由寄存器中PWR_UP 位来控制数据包处理方式nRF24L01有如下几种数据包处理方式ShockBurst TM 与nRF2401nRF24E1nRF2402nRF24E2数据传输率为1Mbps 时相同 增强型ShockBurst TM 模式ShockBurst TM 模式ShockBurst 模式下nRF24L01可以与成本较低的低速MCU 相连高速信号处理是由芯片内部的射频协议处理的nRF24L01提供SPI 接口数据率取决于单片机本身接口速度ShockBurst 模式通过允许与单片机低速通信而无线部分高速通信减小了通信的平均消耗电流在ShockBurst TM 接收模式下当接收到有效的地址和数据时IRQ 通知MCU 随后MCU 可将接收到的数据从RX FIFO 寄存器中读出 在ShockBurst TM发送模式下nRF24L01自动生成前导码及CRC 校验参见表格12数据发送完毕后IRQ 通知MCU 减少了MCU 的查询时间也就意味着减少了MCU 的工作量同时减少了软件的开发时间nRF24L01内部有三个不同的RX FIFO 寄存器6个通道共享此寄存器和三个不同的TX FIFO 寄存器在掉电模式下待机模式下和数据传输的过程中MCU 可以随时访问FIFO 寄存器这就允许SPI 接口可以以低速进行数据传送并且可以应用于MCU 硬件上没有SPI 接口的情况下增强型的ShockBurst TM 模式增强型ShockBurst TM 模式可以使得双向链接协议执行起来更为容易有效典型的双向链接为发送方要求终端设备在接收到数据后有应答信号以便于发送方检测有无数据丢失一旦数据丢失则通过重新发送功能将丢失的数据恢复增强型的ShockBurst TM 模式可以同时控制应答及重发功能而无需增加MCU 工作量确实,,由硬件完成,,减小了量,,,图4 nRF24L01在星形网络中的结构图nRF24L01在接收模式下可以接收6路不同通道的数据见图4每一个数据通道使用不同的地址但是共用相同的频道也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01进行通讯而设置为接收模式的nRF24L01可以对这6个发射端进行识别数据通道0是唯一的一个可以配置为40位自身地址的数据通道1~5数据通道都为8位自身地址和32位公用地址所有的数据通道都可以设置为增强型ShockBurst 模式nRF24L01在确认收到数据后记录地址并以此地址为目标地址发送应答信号在发送端数据通道0被用做接收应答信号因此数据通道0的接收地址要与发送端地址相等以确保接收到正确的应答信号见图5 选择地址举例图5应答地址确定举例nRF24L01配置为增强型的ShockBurst TM发送模式下时只要MCU 有数据要发送nRF24L01就会启动ShockBurst TM 模式来发送数据在发送完数据后nRF24L01转到接收模式并等待终端的应答信号如果没有收到应答信号nRF24L01将重发相同的数据包直到收到应答信号或重发次数超过SETUP_RETR_ARC 寄存器中设置的值为止如果重发次数超过了设定值则产生MAX_RT 中断只要收到确认信号nRF24L01就认为最后一包数据已经发送成功接收方已经收到数据把TX FIFO 中的数据清除掉并产生TX_DS 中断IRQ 引脚置高在发射器中,,通道0要接收应答回来的信号,,所以应该与发送通道地址,,,相同,,在增强型ShockBurst模式下nRF24L01有如下的特征当工作在应答模式时快速的空中传输及启动时间极大的降低了电流消耗低成本nRF24L01集成了所有高速链路层操作比如重发丢失数据包和产生应答信号无需单片机硬件上一定有SPI口与其相连SPI 接口可以利用单片机通用I/O口进行模拟 由于空中传输时间很短极大的降低了无线传输中的碰撞现象由于链路层完全集成在芯片上非常便于软硬件的开发增强型ShockBurstTM发送模式1配置寄存器位PRIM_RX为低2当MCU有数据要发送时接收节点地址TX_ADDR和有效数据(TX_PLD)通过SPI接口写入nRF24L01发送数据的长度以字节计数从MCU写入TX FIFO当CSN为低时数据被不断的写入发送端发送完数据后将通道0设置为接收模式来接收应答信号其接收地址(RX_ADDR_P0)与接收端地址(TX_ADDR)相同例在图5中数据通道5的发送端(TX5)及接收端(RX)地址设置如下TX5TX_ADDR=0xB3B4B5B605TX5RX_ADDR_P0=0xB3B4B5B605RX RX_ADDR_P5=0xB3B4B5B6053设置CE为高启动发射CE高电平持续时间最小为10 us4nRF24L01 ShockBurst TM模式无线系统上电启动内部16MHz时钟无线发送数据打包见数据包描述高速发送数据由MCU设定为1Mbps或2Mbps5如果启动了自动应答模式自动重发计数器不等于0ENAA_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.增强型ShockBurst TM接收模式1 ShockBurst TM接收模式是通过设置寄存器中PRIM_RX位为高来选择的准备接收数据的通道必须被使能EN_RXADDR寄存器所有工作在增强型ShockBurst TM模式下的数据通道的自动应答功能是由(EN_AA寄存器)来使能的有效数据宽度是由RX_PW_Px寄存器来设置的地址的建立过程见增强型ShockBurst TM发送章节23 130us后4接收到有效的数据包后地址匹配CRC检验正确数据存储在RX_FIFO中同时RX_DR位置高并产生中断状态寄存器中RX_P_NO位显示数据是由哪个通道接收到的5如果使能自动确认信号则发送确认信号6 MCU设置CE脚为低进入待机模式I低功耗模式7 MCU将数据以合适的速率通过SPI口将数据读出8芯片准备好进入发送模式接收模式或掉电模式两种数据双方向的通讯方式如果想要数据在双方向上通讯寄存器必须紧随芯片工作模式的变化而变化处理器必须保证PTX和PRX端的同步性在RX_FIFO和TX_FIFO寄存器中可能同时存有数据CE=1是开始启动的标志,,,这个以前没有注意,,,!!!要接收几点的地址,,,看看要求,,,我的天那,,,认真看吧,,自动应答时,,接收方和发送方的EN_AA都要打开,,,接收方也要设置有效位,,跟发送的应该一致,,,自动应答RX自动应答功能减少了外部MCU 的工作量并且在鼠标/键盘等应用中也可以不要求硬件一定有SPI 接口因此降低成本减少电流消耗自动重应答功能可以通过SPI 口对不同的数据通道分别进行配置在自动应答模式使能的情况下收到有效的数据包后系统将进入发送模式并发送确认信号发送完确认信号后系统进入正常工作模式工作模式由PRIM_RX 位和CE 引脚决定自动重发功能ART (TX)自动重发功能是针对自动应答系统的发送方启动重发数据的时间长度在每次发送结束后系统都会进入接收模式并在设定的时间范围内等待应答信号接收到应答信号后系统转入正常发送模式如果TX FIFO 中没有待发送的数据且CE 脚电平为低则系统将进入待机模式I 如果没有收到确认信号则系统返回到发送模式并重发数据直到收到确认信号或重发次数超过设定值达到最大的重发次数有新的数据发送或PRIM_RX 寄存器配置改变时丢包计数器复位 数据包识别和CRC 校验应用于增强型ShockBurst TM模式下每一包数据都包括两位的PID 数据包识别来识别接收的数据是新数据包还是重发的数据包PID 识别可以防止接收端同一数据包多次送入MCU 在发送方每从MCU 取得一包新数据后PID 值加一PID 和CRC 校验应用在接收方识别接收的数据是重发的数据包还是新数据包如果在链接中有一些数据丢失了则PID 值与上一包数据的PID 值相同如果一包数据拥有与上一包数据相同的PID 值nRF24L01将对两包数据的CRC 值进行比较如果CRC 值也相同的话就认为后面一包是前一包的重发数据包而被舍弃1接收方接收方对新接收数据包的PID 值与上一包进行比较如果PID 值不同则认为接收的数据包是新数据包如果PID 值与上一包相同则新接收的数据包有可能与前一包相同接收方必须确认CRC 值是否相等如果CRC 值与前一包数据的CRC 值相等则认为是同一包数据并将其舍弃 2发送方每发送一包新的数据则发送方的PID 值加一图6PID 值生成和检测CRC 校验的长度是通过SPI 接口进行配置的一定要注意CRC 计算范围包括整个数据包地址PID确实,,减小了编程量,,,额,,,高四位设置,,额,,,两个CNT 就复位了,,,和有效数据等若CRC 校验错误则不会接收数据包这一点是接收数据包的附加要求在上图没有说明载波检测CD当接收端检测到射频范围内的信号时将CD 置高否则CD 为低内部的CD 信号在写入寄存器之前是经过滤波的内部CD 高电平状态至少保持128us 以上在增强型ShockBurst TM 模式中只有当发送模块没有成功发送数据时推荐使用CD 检测功能如果发送端PLOS_CNT 显示数据包丢失率太高时可将其设置位接收模式检测CD 值如果CD 为高说明通道出现了拥挤现象需要更改通信频道如果CD 为低电平状态距离超出通信范围可保持原有通信频道但需作其它调整数据通道nRF24L01配置为接收模式时可以接收6路不同地址相同频率的数据每个数据通道拥有自己的地址并且可以通过寄存器来进行分别配置数据通道是通过寄存器EN_RXADDR 来设置的默认状态下只有数据通道0和数据通道1是开启状态的 每一个数据通道的地址是通过寄存器RX_ADDR_Px 来配置的通常情况下不允许不同的数据通道设置完全相同的地址数据通道0有40位可配置地址数据通道1~5的地址为32位共用地址+各自的地址最低字节图7所示的是数据通道1~5的地址设置方法举例所有数据通道可以设置为多达40位但是1~5数据通道的最低位必须不同图7 通道0~5的地址设置当从一个数据通道中接收到数据并且此数据通道设置为应答方式的话则nRF24L01在收到数据后产生应答信号此应答信号的目标地址为接收通道地址 寄存器配置有些是针对所有数据通道的有些则是针对个别的如下设置举例是针对所有数据通道的 CRC 使能/禁止 CRC 计算 接收地址宽度 频道设置无线数据通信速率 LNA 增益 射频输出功率寄存器配置,,,注意了丗不同地址丆相同频率,,,不允许配置相同的地址的,,,额,,,这的目标地址为其接受到的地址,,,这么多是相同的,,,nRF24L01所有配置都在配置寄存器中所有寄存器都是通过SPI 口进行配置的 SPI 接口SPI 接口是标准的SPI 接口其最大的数据传输率为10Mbps 大多数寄存器是可读的 SPI 指令设置SPI 接口可能用到的指令在下面有所说明CSN 为低后SPI 接口等待执行指令每一条指令的执行都必须通过一次CSN 由高到低的变化 SPI 指令格式<命令字由高位到低位每字节>AAAAA AAAAA 1-32读操作全部从字节当读有效数据完成后寄存器中有效数据被清除应用于接收模式下1-32开始应用于发射模式下应用于发射模式下寄存器应用于接收模式下在传输应答信号过程中不应执行此指令信号过程中执行此指令的话将使得应答信号不能被完整的传输重新使用上一包有效数据当数据包被不断的重新发射空操作寄存器可能操作单字节或多字节寄存器当访问多字节寄存器时首先要读/写的是最低字节的高位在所有多字节寄存器被写完之前可以结束写SPI 操作在这种情况下没有写完的高字节保持原有内容不变例如RX_ADDR_P0寄存器的最低字节可以通过写一个字节给寄存器RX_ADDR_P0来改变在CSN 状态由高变低后可以通过MISO 来读取状态寄存器的内容 中断nRF24L01的中断引脚IRQ 为低电平触发当状态寄存器中TX_DS RX_DR 或MAX_RT 为高时触发中断当MCU 给中断源写1时中断引脚被禁止可屏蔽中断可以被IRQ 中断屏蔽通过设置可屏蔽中断位为高则中断响应被禁止默认状态下所有的中断源是被禁止的SPI 时序图8910和表910给出了SPI 操作及时序在写寄存器之前一定要进入待机模式或掉电模式在图8至图10中用到了下面的符号Cn-SPI 指令位 Sn-状态寄存器位Dn-数据位备注由低字节到高字节每个字节中高位在前图8SPI 读操作不会出现无线命令的配置,,,即:设置MASK 为高,,所以说写之前要把CSN 拉低,,,,图9SPI写操作图10SPI NOP 操作时序图表9SPI参考时间C load=5pF表10SPI参考时间C load=10pF寄存器地址所有未定义位可以被读出其值为0’地址 参数 位 复位值类型 描述 00 寄存器配置寄存器 reserved 7 0 R/W 默认为0 MASK_RX_DR 6R/W 可屏蔽中断RX_RD1IRQ 引脚不显示RX_RD 中断0RX_RD 中断产生时IRQ 引脚电平为低MASK_TX_DS 5 0 R/W 可屏蔽中断TX_DS1IRQ 引脚不显示TX_DS 中断0TX_DS 中断产生时IRQ 引脚电平为低MASK_MAX_RT 4 0 R/W 可屏蔽中断MAX_RT1IRQ 引脚不显示TX_DS 中断0MAX_RT 中断产生时IRQ 引脚电平为低EN_CRC 3 1 R/W CRC 使能如果EN_AA 中任意一位为高则EN_CRC 强迫为高CRCO 2 0 R/W CRC 模式‘0’-8位CRC 校验 ‘1’-16位CRC 校验PWR_UP 1 0 R/W 1:上电 0:掉电 PRIM_RX 0 0 R/W 1:接收模式 0:发射模式01 EN_AA Enhanced ShockBurst TM 使能自动应答功能此功能禁止后可与nRF2401通讯 Reserved 7:6 00 R/W 默认为0 ENAA_P5 5 1 R/W 数据通道5自动应答允许 ENAA_P4 4 1 R/W 数据通道4自动应答允许 ENAA_P3 3 1 R/W 数据通道3自动应答允许 ENAA_P2 2 1 R/W 数据通道2自动应答允许 ENAA_P1 1 1 R/W 数据通道1自动应答允许 ENAA_P0 0 1 R/W 数据通道0自动应答允许 02 EN_RXADDR 接收地址允许 Reserved 7:6 00 R/W 默认为00 ERX_P5 5 0 R/W 接收数据通道5允许 ERX_P4 4 0 R/W 接收数据通道4允许 ERX_P3 3 0 R/W 接收数据通道3允许 ERX_P2 2 0 R/W 接收数据通道2允许 ERX_P1 1 1 R/W 接收数据通道1允许 ERX_P0 0 1 R/W 接收数据通道0允许 03 SETUP_AW 设置地址宽度所有数据通道 Reserved 7:2 00000 R/W 默认为00000 AW 1:0 11 R/W 接收/发射地址宽度‘00’-无效‘01’-3字节宽度 ‘10’-4字节宽度 ‘11’-5字节宽度04 SETUP_RETR 建立自动重发允许–1Mbps ‘1’-18dBm当接收到有效数据后置一接收数据通道号数据通道号寄存器满标志寄存器满当写存器复位当丢失15个数据包后此寄存器重启 ARC_CNT 3:0 0 R 重发计数器发送新数据包时此寄存器复位09 CDReserved 7:1 000000 RCD 0 0 R 载波检测0A RX_ADDR_P0 39:0 0xE7E7E7E7E7 R/W 数据通道0接收地址最大长度:5个字节先写低字节所写字节数量由SETUP_AW设定0B RX_ADDR_P1 39:0 0xC2C2C2C2C2 R/W 数据通道1接收地址最大长度:5个字节先写低字节所写字节数量由SETUP_AW设定0C RX_ADDR_P2 7:0 0xC3 R/W数据通道2接收地址最低字节可设置高字节部分必须与RX_ADDR_P1[39:8]相等0D RX_ADDR_P3 7:0 0xC4 R/W数据通道3接收地址最低字节可设置高字节部分必须与RX_ADDR_P1[39:8]相等0E RX_ADDR_P4 7:0 0xC5 R/W数据通道4接收地址最低字节可设置高字节部分必须与RX_ADDR_P1[39:8]相等0F RX_ADDR_P5 7:0 0xC6 R/W数据通道5接收地址最低字节可设置高字节部分必须与RX_ADDR_P1[39:8]相等10 TX_ADDR 39:0 0xE7E7E7E7E7 R/W 发送地址先写低字节在增强型ShockBurst TM模式下RX_ADDR_P0与此地址相等11 RX_PW_P0Reserved 7:6 00 R/W 默认为00RX_PW_P0 5:0 0 R/W 接收数据通道0有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度12 RX_PW_P1Reserved 7:6 00 R/W 默认为00RX_PW_P1 5:0 0 R/W 接收数据通道1有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度13 RX_PW_P2Reserved 7:6 00 R/W 默认为00RX_PW_P2 5:0 0 R/W 接收数据通道2有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度14 RX_PW_P3Reserved 7:6 00 R/W 默认为00RX_PW_P3 5:0 0 R/W 接收数据通道3有效数据宽度(1到32字节)0 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度15 RX_PW_P4Reserved 7:6 00 R/W 默认为00RX_PW_P4 5:0 0 R/W 接收数据通道4有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度16 RX_PW_P5Reserved 7:6 00 R/W 默认为00RX_PW_P5 5:0 0 R/W 接收数据通道5有效数据宽度(1到32字节)0: 设置不合法1: 1字节有效数据宽度……32: 32字节有效数据宽度17 FIFO_STATUS FIFO 状态寄存器Reserved 7 0 R/W 默认为0TX_REUSE 6 0 R 若TX_REUSE=1则当CE位高电平状态时不断发送上一数据包TX_REUSE通过SPI 指令REUSE_TX_PL设置通过W_TX_PALOAD或FLUSH_TX复位TX_FULL 5 0 R TX FIFO寄存器满标志1:TX FIFO寄存器满0: TX FIFO寄存器未满有可用空间 TX_EMPTY 4 1 R TX FIFO寄存器空标志1:TX FIFO寄存器空0: TX FIFO寄存器非空 Reserved 3:2 00 R/W 墨认为00RX_FULL 1 0 R RX FIFO寄存器满标志1:RX FIFO寄存器满0: RX FIFO寄存器未满有可用空间 RX_EMPTY 0 1 R RX FIFO寄存器空标志1:RX FIFO寄存器空0: RX FIFO寄存器非空N/A TX_PLD 255:0 WN/A RX_PLD 255:0 R表11nRF24L01寄存器地址与nRF24XX兼容的寄存器配置如何建立nRF24L01从nRF2401/ nRF2402/ nRF24E1/ nRF24E2接收数据使用与nRF2401/ nRF2402/ nRF24E1/ nRF24E2相同的CRC配置设置PRIM_RX位为1相应通道禁止自动应答功能与发射模块使用相同的地址宽度与发射模块使用相同的频道在nRF24L01和nRF2401/ nRF2402/ nRF24E1/ nRF24E2两端都选择1Mbit/s的数据传输率设置正确的数据宽度设置PWR_UP和CE为高即频率相同,,,如何建立nRF24L01发射nRF2401/ nRF2402/ nRF24E1/ nRF24E2接收数据使用与nRF2401/ nRF2402/ nRF24E1/ nRF24E2相同的CRC 配置 设置PRIM_RX 位为0设置自动重发计数器为0禁止自动重发功能与nRF2401/ nRF2402/ nRF24E1/ nRF24E2使用相同的地址宽度 与nRF2401/ nRF2402/ nRF24E1/ nRF24E2使用相同的频道在nRF24L01和nRF2401/ nRF2402/ nRF24E1/ nRF24E2两端都选择1Mbit/s 的数据传输率 设置PWR_UP 为高发送与nRF2401/ nRF2402/ nRF24E1/ nRF24E2寄存器配置数据宽度相同的数据长度 设置CE 为高启动发射打包描述增强型ShockBurst TM 模式下的数据包形式前导码 地址35字节 9位标志位 数据132字节 CRC 校验 0/1/2字节ShockBurst TM 模式下与nRF2401/ nRF2402/ nRF24E1/ nRF24E2相兼容的数据包形式前导码 地址35字节 数据132字节 CRC 校验0/1/2字节1在发送模式下加入前导码从接收的数据包中自动去除地址PID 其中两位七位保留用作将来与其它产品相兼容nRF24L01 校验的多项式是校验的多项式是12重要的时序数据下面是nRF24L01部分工作时序数据nRF24L01时序信息nRF24L01时序最大值 最小值 参数名 掉电模式待机模式1.5ms T pd2stby 待机模式发送/接收模式 130usT stby2aCE 高电平保持时间10us Thce CSN 为低电平CE 上升沿的延迟时间4us T pece2csn表13nRF24L01工作时序nRF24L01在掉电模式下转入发射模式或接收模式前必须经过1.5ms 的待机模式注意当关掉电源VDD 后寄存器配置内容丢失模块上电后需重新进行配置最好禁止自动重发功能,,,增强型ShockBurst模式时序图11增强型ShockBurst TM模式发送一包数据时序2Mbps图11所示是发送一包数据并收到应答信号的示意图数据送入发送模块部分没有在图中显示接收模块转入接收模式CE=1发射模块配置为发射模式CE=1持续至少10us 130us 后启动发射再过37us 后发送一字节数据发送结束后发送模块自动转入接收模式等待应答信号发送模块在收到应答信号后产生中断通知MCU IRQ (TX_DS)=>TX-data sent(数据发送完)接收模块接收到数据包后产生中断通知MCU IRQ (RX_DR)=>RX-data ready(数据接收完毕)外围RF 信息 天线输出ANT1和ANT2输出脚给天线提供稳定的RF 输出这两个脚必须连接到VDD 的直流通路或者通过RF 扼流圈或者通过天线双极的中心点在输出功率最大时0dBm 推荐使用负载阻抗为15+j88通过简单的网络匹配可以获得较低的阻抗例如50Ω输出功率调节RF_PWR 输出功率 电流消耗11 0 dBm 11.3mA 10 -6 dBm 9.0 mA 01 -12 dBm 7.5 mA 00 -18 dBm 7.0 mA 工作条件VDD=3.0V ,VSS=0V ,T A =27,负载=15+j88表14nRF24L01输出功率设置接收完应答信号后才产生中断,,,。