nRF2401的收发模式有ShockBurstTM收发模式和直接收发模式两种,收发模式由器件配置字决定,具体配置将在器件配置部分详细介绍。

ShockBurstTM收发模式

ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。nRF2401的ShockBurstTM技术同时也减小了整个系统的平均工作电流。

在ShockBurstTM收发模式下,nRF2401自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。

ShockBurstTM发射流程

接口引脚为CE,CLK1,DATA

A. 当微控制器有数据要发送时,其把CE置高,使nRF2401工作;

B. 把接收机的地址和要发送的数据按时序送入nRF2401;

C. 微控制器把CE置低,激发nRF2401进行ShockBurstTM发射;

D. nRF2401的ShockBurstTM发射

给射频前端供电;

射频数据打包(加字头、CRC校验码);

高速发射数据包;

发射完成,nRF2401进入空闲状态。

ShockBurstTM接收流程

接口引脚CE、DR1、CLK1和DATA(接收通道1)

A. 配置本机地址和要接收的数据包大小;

B. 进入接收状态,把CE置高;

C. 200us后,nRF2401进入监视状态,等待数据包的到来;

D. 当接收到正确的数据包(正确的地址和CRC校验码),nRF2401自动把字头、地址和CRC校验位移去;

E. nRF2401通过把DR1(这个引脚一般引起微控制器中断)置高通知微控制器;

F. 微控制器把数据从nRF2401移出;

G. 所有数据移完,nRF2401把DR1置低,此时,如果CE为高,则等待下一个数据包,如果CE为低,开始其它工作流程。

直接收发模式

在直接收发模式下,nRF2401如传统的射频收发器一样工作。

直接发送模式

接口引脚为CE、DATA

A. 当微控制器有数据要发送时,把CE置高;

B. nRF2401射频前端被激活;

C. 所有的射频协议必须在微控制器程序中进行处理(包括字头、地址和CRC校验码)。

直接接收模式

接口引脚为CE、CLK1和DATA

A. 一旦nRF2401被配置为直接接收模式,DATA引脚将根据天线接收到的信号开始高低变化(由于噪声的存在);

B. CLK1引脚也开始工作;

C. 一旦接收到有效的字头,CLK1引脚和DATA引脚将协调工作,把射频数据包以其被发射时的数据从DATA引脚送给微控制器;

D. 这头必须是8位;

E. DR引脚没用上,所有的地址和CRC校验必须在微控制器内部进行。

配置模式

在配置模式,15字节的配置字被送到nRF2401,这通过CS、CLK1和DATA三个引脚完成,具体的配置方法请参考本文的器件配置部分。

空闲模式

nRF2401的空闲模式是为了减小平均工作电流而设计,其最大的优点是,实现节能的同时,缩短芯片的起动时间。在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关,如外部晶振为4MHz时工作电流为12uA,外部晶振为16MHz时工作电流为32uA。在空闲模式下,配置字的内容保持在nRF2401片内。

关机模式

在关机模式下,为了得到最小的工作电流,一般此时的工作电流小于1uA。关机模式下,配置字的内容也会被保持在nRF2401片内,这是该模式与断电状态最大的区别。

nrf2401造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
燃气蒸汽生器 DSZQ-520,蒸量:520L 输出功率:320KW,1900×1070×1465,280kg 查看价格 查看价格

自由能

13% 佛山自由能电器有限公司
光纤收发 电信级SC千兆单单纤1 查看价格 查看价格

江苏明朗

13% 江苏明朗照明科技有限公司
光纤收发 电信级SC千兆单单纤1 查看价格 查看价格

佛山银河照明

13% 佛山市银河兰晶科技股份有限公司
光纤收发 电信级SC千兆单单纤1 查看价格 查看价格

大峡谷

13% 大峡谷照明系统(苏州)股份有限公司
光纤收发 电信级SC千兆单单纤1 查看价格 查看价格

光联照明

13% 上海光联照明有限公司
模数式伸缩缝 C40 查看价格 查看价格

OVM

m 13% 柳州东方工程橡胶制品有限公司
模数式伸缩缝 E40 查看价格 查看价格

OVM

m 13% 柳州东方工程橡胶制品有限公司
模数式伸缩缝 Z80 查看价格 查看价格

OVM

m 13% 柳州东方工程橡胶制品有限公司
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年11月信息价
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年4月信息价
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年3月信息价
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年2月信息价
模式龙头 宝龙056 查看价格 查看价格

阳江市2011年1月信息价
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年10月信息价
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年9月信息价
模式龙头 宝龙056 查看价格 查看价格

宝龙卫浴

阳江市2009年7月信息价
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
情景模式 根据不同情景模式设置多系统控制设备的指令集合|1项 3 查看价格 霍尼韦尔(中国)有限公司 广东   2021-06-18
体感互动识别模式 支持单人识别模式|2套 1 查看价格 北京华创盛远科技有限公司 全国   2022-08-10
体感互动识别模式 支持单人识别模式|2套 1 查看价格 广州恒纳文化创意有限公司 全国   2022-10-24
体感互动识别模式 支持单人识别模式|2套 2 查看价格 安徽东一特电子技术有限公司 全国   2022-09-21
会议桌(IF-2401) 详见附件|5张 3 查看价格 广东华尚实业有限公司 广东   2022-03-19
光纤收发 1.名称:光纤收发2.模式:传输距离20km|3套 1 查看价格 广州五洋计算机信息有限公司 广东   2020-09-01
光纤收发设备 光纤收发设备|13套 1 查看价格 广州冠凌信息科技有限公司 广东  广州市 2017-01-11
模式管理模块 提供控制逻辑或运行模式编辑功能,|1套 1 查看价格 施耐德电气(中国)投资有限公司 全国   2018-11-30

nRF2401有工作模式有四种:收发模式、配置模式、空闲模式和关机模式。nRF2401的工作模式由PWR_UP 、CE、CS三个引脚决定。

nRF2401内置地址解码器、先入后出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围元件,因此使用起来非常方便。QFN24引脚封装,外形尺寸只有5×5mm。

nrf2401收发模式常见问题

nrf2401电路原理

nRF2401电路原理图

nrf2401引脚定义

nRF2401引脚定义

nrf2401接线图

nRF2401与5V单片机的连接(只适用于高阻口)

nRF2401是nRF2401A的早期型号,nRF2401AG是无铅工艺型号。它们完全兼容,硬件可直接替换,代码也可相互使用。

◆小体积,QFN24 5x5mm封装

◆宽电压工作范围,1.9V~3.6V

◆工作温度范围,-40℃~ 80℃

◆工作频率范围,2.400GHz~2.524GHz

◆数据传输速率,250Kbps、1Mbps

◆低功耗设计,接收时工作电流18mA,0dBm功率发射时13mA,掉电模式时仅为400uA

◆多通道工作模式,125个数据通道,通道切换时间≤200us,满足多点通讯和调频需要

◆硬件的CRC校验和点对多点的地址控制

◆SPI通讯端口,适合与各种MCU连接,编程简单

◆可通过软件设置工作频率、通讯地址、传输速率和数据包长度

◆MCU可通过接收完成引脚快判断是否完成数据接收

nRF2401 (最新版本为nRF2401A,nRF2401AG为无铅工艺版本)是由Nordic公司出品的单芯片无线收发芯片,工作于2.4GHz~2.5GHz的全球免申请(ISM)频率。芯片包括一个完全集成的频率合成器,功率放大器,晶体振荡器和调制器。发射功率和工作频率等工作参数可以很容易的通过3线SPI端口完成。极低的电流消耗,在-5dBm的输出功率时仅为10.5mA,在接收模式时仅为18mA。掉电模式可以很容易的实现低功耗需求。

nRF2401的所有配置工作都是通过CS、CLK1和DATA三个引脚完成,把其配置为ShockBurstTM收发模式需要15字节的配置字,而如把其配置为直接收发模式只需要2字节的配置字。由上文对nRF2401工作模式的介绍,我们可以知道,nRF2401一般工作于ShockBurstTM收发模式,这样,系统的程序编制会更加简单,并且稳定性也会更高,因此,下文着重介绍把nRF2401配置为ShockBurstTM收发模式的器件配置方法。

ShockBurstTM的配置字使nRF2401能够处理射频协议,在配置完成后,在nRF2401工作的过程中,只需改变其最低一个字节中的内容,以实现接收模式和发送模式之间切换。ShockBurstTM的配置字可以分为以下四个部分:

数据宽度:声明射频数据包中数据占用的位数。这使得nRF2401能够区分接收数据包中的数据和CRC校验码;

地址宽度:声明射频数据包中地址占用的位数。这使得nRF2401能够区分地址和数据;

地址:接收数据的地址,有通道1的地址和通道2的地址;

CRC:使nRF2401能够生成CRC校验码和解码。

当使用nRF2401片内的CRC技术时,要确保在配置字中CRC校验被使能,并且发送和接收使用相同的协议。

在配置模式下,注意保证PWR_UP引脚为高电平,CE引脚为低电平。配置字从最高位开始,依次送入nRF2401。在CS引脚的下降沿,新送入的配置字开始工作。

PCB设计

PCB设计对nRF2401的整体性能影响很大,所以PCB设计在nRF2401收发系统的开发过程中主要的工作之一,在PCB设计时,必须考虑到各种电磁干扰,注意调整电阻、电容和电感的位置,特别要注意电容的位置。

nRF2401的PCB一般都是双层板,底层一般不放置元件,为地层,顶层的空余地方一般都敷上铜,这些敷铜通过过孔与底层的地相连。直流电源及电源滤波电容尽量靠近VDD引脚。nRF2401的供电电源应通过电容隔开,这样有利于给nRF2401提供稳定的电源。在PCB中,尽量多打一些通孔,使顶层和底层的地能够充分接触。

nRF2401通过ShockBurstTM收发模式进行无线数据发送,收发可靠,其外形尺寸小,需要的外围元器件也少,因此,使用方便,在工业控制、消费电子等各个领域都具有广阔的应用前景。

#include

//

//只需要把自己单片机的I/O 口接上对应

sbit MISO = P1^3;

sbit MOSI = P1^4;

sbit CK = P1^5;

sbit CE = P1^6;

sbit CSN = P3^7;

sbit IRQ = P1^2;

sbit LED2 = P3^5;

sbit LED1 = P3^4;

sbit KEY1 = P3^0;

sbit KEY2 = P3^1;

//SPI(nRF24L01)commands

#define EAD_REG 0x00 //Definereadcommandtoregister

#define ITE_REG 0x20 //Definewritecommandtoregister

#define D_RX_PLOAD 0x61 //DefineRXpayloadregisteraddress

#define LOAD 0xA0 //DefineTXpayloadregisteraddress

#define FLUSH_TX 0xE1 //DefineflushTXregistercommand

#define FLUSH_RX 0xE2 //DefineflushRXregistercommand

#define EUSE_TX_PL 0xE3 //DefinereuseTXpayloadregistercommand

#define Nop0xFF //DefineNoOperation,mightbeusedtoreadstatusregister

//***************************************************//

//SPI(nRF24L01)registers(addresses)

#define CONFIG 0x00 //'Config' registeraddress

#define EN_AA 0x01 //'Enable AutoAcknowledgment'registeraddress

#define EN_RXADDR 0x02 //'Enabled RXaddresses'registeraddress

#define ETUP_AW 0x03 //'Setup addresswidth'registeraddress

#define ETUP_RETR 0x04 //'Setup Auto.Retrans'registeraddress

#define F_CH 0x05 //'RF channel'registeraddress

#define F_SETUP 0x06 //'RF setup'registeraddress

#define ATUS 0x07 //'Status' registeraddress

#define BSERVE_TX 0x08 //'Observe TX'registeraddress

#define CD 0x09 //'Carrier Detect'registeraddress

#define ADDR_P0 0x0A //'RX addresspipe0'registeraddress

#define ADDR_P1 0x0B //'RX addresspipe1'registeraddress

#define ADDR_P2 0x0C //'RX addresspipe2'registeraddress

#define ADDR_P3 0x0D //'RX addresspipe3'registeraddress

#define ADDR_P4 0x0E //'RX addresspipe4'registeraddress

#define ADDR_P5 0x0F //'RX addresspipe5'registeraddress

#define ADDR 0x10 //'TX address'registeraddress

#define 0x11 //'RX payloadwidth,pipe0'registeraddress

#define 1 0x12 //'RX payloadwidth,pipe1'registeraddress

#define 2 0x13 //'RX payloadwidth,pipe2'registeraddress

#define 3 0x14 //'RX payloadwidth,pipe3'registeraddress

#define 4 0x15 //'RX payloadwidth,pipe4'registeraddress

#define 5 0x16 //'RX payloadwidth,pipe5'registeraddress

#define FIFO_STATUS 0x17 //'FIFO StatusRegister'registeraddress

//------------------------------------------------------------// 写一个字节到24L01,同时读出一个字节

uchar SPI_RW(ucharbyte)

{

uchar ;

for (bit_ctr=0;bit_ctr<8;bit_ctr ) //output8-bit

{

MOSI = (byte&0x80);//output'byte', MSBtoMOSI

byte = (byte<<1);//shiftnextbitintoMSB..

SCK = 1;//SetSCKhigh..

byte |= MISO;//capturecurrentMISObit

SCK = 0;//..then setSCKlowagain

}

return(byte);//returnreadbyte

}

// 向寄存器reg写一个字节,同时返回状态字节

uchar SPI_RW_Reg(BYTEreg,BYTEvalue)

{

uchar status;

CSN = 0;//CSNlow, initSPItransaction

status = SPI_RW(reg);//selectregister

SPI_RW(value);//..and writevaluetoit..

CSN = 1;//CSNhighagain

return(status);//returnnRF24L01statusbyte

}

// 读出bytes字节的数据

uchar SPI_Read_Buf(BYTEreg,BYTE*pBuf,BYTEbytes)

{

uchar status,byte_ctr;

CSN = 0;//SetCSNlow,initSPItranaction

status = SPI_RW(reg);//Selectregistertowritetoandreadstatusbyte

for (byte_ctr=0;byte_ctr pBuf[byte_ctr] = SPI_RW(0);//

CSN = 1;

return(status);//returnnRF24L01statusbyte

}

// 写入bytes字节的数据

uchar SPI_Write_Buf(BYTEreg,BYTE*pBuf,BYTEbytes)

{

uchar status,byte_ctr;

CSN = 0;

status = SPI_RW(reg);

for (byte_ctr=0;byte_ctr SPI_RW(*pBuf );

CSN = 1;//SetCSNhighagain

return(status);//

}

// 接收函数,返回1表示有数据收到,否则没有数据接受到

unsigned char nRF24L01_RxPacket(unsignedchar*rx_buf)

{

unsigned char revale=0;

//setinRXmode

SPI_RW_Reg(WRITE_REG CONFIG,0x0f);//SetPWR_UPbit,enableCRC(2bytes)&

Prim:RX.RX_DRenabled..

CE = 1;//SetCEpinhightoenableRXdevice

dalay130us();

sta = SPI_Read(STATUS);//readregisterSTATUS'svalue

if (RX_DR)//ifreceivedataready(RX_DR)interrupt

{

CE = 0;//standbymode

SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//readreceivepayloadfrom

RX_FIFObuffer

revale = 1;

}

SPI_RW_Reg(WRITE_REG STATUS,sta);//clearRX_DRorTX_DSorMAX_RTinterrupt flag

return revale;

}

// 发送函数

voidn RF24L01_TxPacket(unsignedchar*tx_buf)

{

CE = 0;

//SPI_Write_Buf(WRITE_REG TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);//Writes

TX_AddresstonRF24L01

//SPI_Write_Buf(WRITE_REG RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//

RX_Addr0sameasTX_AdrforAuto.Ack

SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);//WritesdatatoTXpayload

SPI_RW_Reg(WRITE_REG CONFIG,0x0e);//SetPWR_UPbit,enableCRC(2bytes)&

Prim:TX.MAX_RT&TX_DSenabled..

CE = 1;

dalay10us();

CE = 0;

}

// 配置函数

void nRF24L01_Config(void)

{

//initialio

CE = 0;//chipenable

CSN = 1;//Spidisable

SCK = 0;//Spiclockline inithigh

CE = 0;

SPI_RW_Reg(WRITE_REG CONFIG,0x0f);//SetPWR_UPbit,enableCRC(2bytes)&

Prim:RX.RX_DRenabled..

SPI_RW_Reg(WRITE_REG EN_AA,0x01);

SPI_RW_Reg(WRITE_REG EN_RXADDR,0x01);//EnablePipe0

SPI_RW_Reg(WRITE_REG SETUP_AW,0x02);//Setupaddresswidth=5bytes

SPI_RW_Reg(WRITE_REG SETUP_RETR,0x1a);//500us 86us,10retrans...

SPI_RW_Reg(WRITE_REG RF_CH,0);

SPI_RW_Reg(WRITE_REG RF_SETUP,0x07);//TX_PWR:0dBm,Datarate:1Mbps,

LNA:HCURR

SPI_RW_Reg(WRITE_REG RX_PW_P0,RX_PLOAD_WIDTH);

SPI_Write_Buf(WRITE_REG TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);

SPI_Write_Buf(WRITE_REG RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);CE=1;//

}

//////////////////第三维编辑/////////////////////////////////////////////////////

nrf2401收发模式文献

基于nRF2401的PLC无线通信控制器 基于nRF2401的PLC无线通信控制器

格式:pdf

大小:139KB

页数: 3页

评分: 4.7

介绍一种利用nRF2401无线通信模块实现PLC间数据无线传输的方法,可使生产现场的PLC灵活布置,并节省布线成本。该系统设计是针对西门子S7-200PLC,单片机从PLC获取现场数据,再将数据传输到nRF2401以实现无线通信,由此实现PLC之间的无线数据传输。经试验表明:该无线通信控制器可在9 m范围实现PLC间数据的无线传输。

立即下载
基于nRF2401和GPRS的无线温度传输系统设计 基于nRF2401和GPRS的无线温度传输系统设计

格式:pdf

大小:139KB

页数: 未知

评分: 4.7

针对环境温度监测传感器传输距离较短的问题,设计一种基于nRF2401短距离无线传输模块和GPRS远距离传输相结合的无线温度监测传输系统,实现环境温度的实时采集,以及温度信息在监测节点、汇聚节点和监控中心之间的无线传输。

立即下载

nrf24l01 nRF2401A(nRF2401AG)

nRF2401A为nRF2401的改进型号(nRF2401AG为无铅工艺型号)。nRF2401A工作在2.4GHz的国际通用ISM免申请频段GFSK调制的无线数传芯片。最高发射功率0dBm,接收灵敏度-90dBm,支持124个接收频率与126个发射频率。使用ShockBurst™传输模式,具备两个独立的数据接收通道。支持250kbps和1Mbps的空中数据速率。使用SPI接口与MCU完成数据通讯与通讯控制等功能。

nrf24l01 nRF24L01

nRF24L01是工作在2.4GHz的国际通用ISM免申请频段GFSK调制的无线数传芯片。最高发射功率0dBm,接收灵敏度为-85dBm,支持125个通讯频率。使用增强型的 Enhanced ShockBurst™传输模式,支持6个数据通道(共用FIFO)。支持1Mbps和2Mbps的空中数据传输速率。使用SPI接口与MCU完成数据通讯与通讯控制等功能。

nrf24l01 与前两者的兼容

RF2401A、nRF24L01和nRF24L01 之间是可以完成相互通讯的。前提是,它们必须在配置的过程中使用相同的通讯频率、空中传输速率、地址长度、地址信息、数据长度和CRC校验方式。

nrf2401相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏