您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 1.NRF24L01模块使用说明
NRF24L01+模块系列说明书一、模块介绍(1)2.4Ghz全球开放ISM频段免许可证使用(2)最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合(3)126频道,满足多点通信和跳频通信需要(4)内置硬件CRC检错和点对多点通信地址控制(5)低功耗1.9-3.6V工作,待机模式下状态为22uA;掉电模式下为900nA(6)内置2.4Ghz天线,体积种类多样(7)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便(8)内置专门稳压电路,使用各种电源包括DC/DC开关电源均有很好的通信效果(9)2.54MM间距接口,DIP封装(10)工作于EnhancedShockBurst具有Automaticpackethandling,Autopackettransactionhandling,具有可选的内置包应答机制,极大的降低丢包率。(11)与51系列单片机P0口连接时候,需要加10K的上拉电阻,与其余口连接不需要。(12)其他系列的单片机,如果是5V的,请参考该系列单片机IO口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!如果是3.3V的,可以直接和RF24l01模块的IO口线连接。比如AVR系列单片机如果是5V的,一般串接2K的电阻二、接口电路说明:1)VCC脚接电压范围为1.9V~3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。推荐电压3.3V左右。(2)除电源VCC和接地端,其余脚都可以直接和普通的5V单片机IO口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。(3)硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO口模拟SPI不需要单片机真正的串口介入,只需要普通的单片机IO口就可以了,当然用串口也可以了。(4)如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可以联系我们定做。三、模块结构和引脚说明NRF24L01模块使用Nordic公司的nRF24L01芯片开发而成。内部方框图典型应用原理图四、工作方式NRF2401有工作模式有五种:1收发模式2配置模式3空闲模式4关机模式工作模式由PWR_UPregister、PRIM_RXregister和CE决定,下表4.1收发模式收发模式有EnhancedShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种,收发模式由器件配置字决定,具体配置将在器件配置部分详细介绍。4.1.1EnhancedShockBurstTM收发模式EnhancedShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。EnhancedShockBurstTM技术同时也减小了整个系统的平均工作电流。在EnhancedShockBurstTM收发模式下,NRF24L01自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将时发送过程完成后。4.1.1.1EnhancedShockBurstTM发射流程A.把接收机的地址和要发送的数据按时序送入NRF24L01;B.配置CONFIG寄存器,使之进入发送模式。C.微控制器把CE置高(至少10us),激发NRF24L01进行EnhancedShockBurstTM发射;D.N24L01的EnhancedShockBurstTM发射(1)给射频前端供电;(2)射频数据打包(加字头、CRC校验码);(3)高速发射数据包;(4)发射完成,NRF24L01进入空闲状态。4.1.1.2EnhancedShockBurstTM接收流程A.配置本机地址和要接收的数据包大小;B.配置CONFIG寄存器,使之进入接收模式,把CE置高。C.130us后,NRF24L01进入监视状态,等待数据包的到来;D.收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去;E.NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器;F.微控制器把数据从NewMsg_RF2401读出;G.所有数据读取完毕后,可以清除STATUS寄存器。NRF2401可以进入4.1.2ShockBurstTM收发模式ShockBurstTM收发模式可以与Nrf2401a,02,E1及E2兼容,具体表述前看本公司的N-RF2401文档。4.2空闲模式NRF24L01的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能的同时,缩短芯片的起动时间。在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关。4.4关机模式在关机模式下,为了得到最小的工作电流,一般此时的工作电流为900nA左右。关机模式下,配置字的内容也会被保持在NRF2401片内,这是该模式与断电状态最大的区别。五、配置NRF24L01模块NRF2401的所有配置工作都是通过SPI完成,共有30字节的配置字。我们推荐NRF24L01工作于EnhancedShockBurstTM收发模式,这种工作模式下,系统的程序编制会更加简单,并且稳定性也会更高,因此,下文着重介绍把NRF24L01配置为EnhancedShockBurstTM收发模式的器件配置方法。ShockBurstTM的配置字使NRF24L01能够处理射频协议,在配置完成后,在NRF24L01工作的过程中,只需改变其最低一个字节中的内容,以实现接收模式和发送模式之间切换。ShockBurstTM的配置字可以分为以下四个部分:数据宽度:声明射频数据包中数据占用的位数。这使得NRF24L01能够区分接收数据包中的数据和CRC校验码;地址宽度:声明射频数据包中地址占用的位数。这使得NRF24L01能够区分地址和数据;地址:接收数据的地址,有通道0到通道5的地址;CRC:使NRF24L01能够生成CRC校验码和解码。当使用NRF24L01片内的CRC技术时,要确保在配置字(CONFIG的EN_CRC)中CRC校验被使能,并且发送和接收使用相同的协议。NRF24L01配置字的CONFIG寄存器的位描述如下表所示。NRF24L01CONFIG配置字描述我们提供比较完善的测试程序,配套我们测试板可以让你迅速适应。下面的程序是用STC单周期系列15L204EA,若用其它型号,请移植/******************************************************************************//*--深圳安信可科技有限公司--*//*//文件名:NRF24L01.C//说明://编写人员://编写日期://程序维护://维护记录:////*///免责声明:该程序仅用于学习与交流//(c)AnxinkeCorporation.Allrightsreserved./******************************************************************************/#includetypedef.h#includeintrins.h#includestring.h#includeNRF_24L01.h#includeUART.H#includedelay.h#defineucharunsignedcharucharconstTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//DefineastaticTXaddressidataucharrx_buf[TX_PLOAD_WIDTH];idatauchartx_buf[TX_PLOAD_WIDTH]={0X02,0X02,0X03,0X05,0X09};ucharflag;/**************************************************///sbitLED1=P3^7;/**************************************************/unsignedcharbdatasta;sbitRX_DR=sta^6;sbitTX_DS=sta^5;sbitMAX_RT=sta^4;/**************************************************//**************************************************Function:init_io();Description:flashledonetime,chipenable(readytoTXorRXMode),Spidisable,Spiclocklineinithigh/**************************************************/#defineKEY0xaavoidinit_nrf24l01_io(void){CE=0;//chipenableCSN=1;//SpidisableSCK=0;//Spiclocklineinithigh}/**************************************************Function:SPI_RW();Description:WritesonebytetonRF24L01,andreturnthebytereadfromnRF24L01duringwrite,accordingtoSPIprotocol/**************************************************/bdataunsignedcharst=0;sbitst_1=st^0;sbitst_2=st^1;sbitst_3=st^2;sbitst_4=st^3;sbitst_5=st^4;sbitst_6=st^5;sbitst_7=st^6;sbitst_8=st^7;bdataunsignedcharst1=0;sbitst_11=st1^0;sbitst_12=st1^1;sbitst_13=st1^2;sbitst_14=st1^3;sbitst_15=st1^4;sbitst_16=st1^5;sbitst_17=st1^6;sbitst_18=st1^7;/*ucharSPI_RW(ucharbyte){ucharbit_ctr;for(bit_ctr=0;bit_ctr8;bit_ctr++)//output8-bit{MOSI=(byte&0x80);//output'byte',MSBtoMOSIbyte=(byte1);//shiftnextbitintoMSB..SCK=1;//SetSCKhigh..MISO=1;byte|=MISO;//capturecurrentMISObitSCK=0;//..thensetSCKlowagain}return(byte);//returnreadbyte}*/ucharSPI_RW(ucharbyte){//ucharbit_ctr;st=byte;MOSI=st_8;SCK=1;st_18=MISO;SCK=0;MOSI=st_7;SCK=1;st_17=MISO;SCK=0;、MOSI=st_6;SCK=1;st_16=MISO;SCK=0;MOSI=st_5;SCK=1;st_15=MISO;SCK=0;MOSI=st_4;SCK=1;st_14=MIS
本文标题:1.NRF24L01模块使用说明
链接地址:https://www.777doc.com/doc-5467920 .html