NewMsg nRF2401A User Manual [zh]

Page 1
NewMsgTech http://www.rfinchina.com
nRF2401A 无线模块
用户手册
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 2
NewMsgTech http://www.rfinchina.com
产品介绍.......................................................................................................3
基本特点 ................................................................................................................3
引脚接口说明 ........................................................................................................4
模块尺寸 ................................................................................................................5
nRF2401A工作方式.......................................................................................6
收发模式 ................................................................................................................6
ShockBurstTM收发模式 ......................................................................................6
ShockBurstTM发射流程 .....................................................................................7
直接收发模式 ........................................................................................................8
直接发送模式 .................................................................................................8
直接接收模式 .................................................................................................8
空闲模式 ................................................................................................................9
关机模式 ................................................................................................................9
nRF2401A参数配置.....................................................................................10
程序参考设计..............................................................................................12
功能参数配置 ......................................................................................................12
SPI时序读写操作 ................................................................................................14
SPI读操作函数 .............................................................................................15
SPI写操作函数 .............................................................................................15
通过SPI接口配置寄存器参数 .....................................................................16
发送模式设置 ......................................................................................................16
接收模式设置 ......................................................................................................17
nRF2401A数据发送流程....................................................................................17
nRF2401A数据接收流程....................................................................................18
无线应用注意事项.......................................................................................18
我们的承诺 .................................................................................................19
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 3
NewMsgTech http://www.rfinchina.com
产品介绍
作为 Nordic 公司无铅“绿色”元件商品化项目的一部分,该
公司推出了 nRF2401 引脚兼容的产品 nRF2401A 作为替代产品。
nRF2401A 是一种成本降低型产品,无需进行代价高昂的重设计
即可投入使用。nRF2401A 还提高了产品的敏感度和封闭性,拓
宽了接收范围,并改善了器件在嘈杂 2.4GHz 环境下的性能。
nRF2401A 具有 nRF2401 的各项功能,包括可在接收和发射模式
下有效简化软件和协议设计的 ShockBurst 功能。该技术允许系
统使用最低速度的微处理器同高频器件内部的缓冲区交换数据
以达到极小的外部电流消耗。nRF2401 收发器同时具备特有的
DuoCeiver 双信道接收模式,可以用于接收无线键盘和鼠标同时
发送或者是两路单独游戏控制器发送的数据。

基本特点

(1) 2.4Ghz 全球开放 ISM 频段免许可证使用
(2) 最高工作速率 1Mbps,
(3) 高效 GFSK 调制,抗干扰能力强,特别适合工业控制场合
(4) 125 频道,满足多点通信和跳频通信需要
(5) 内置硬件 CRC 检错和点对多点通信地址控制
(6) 低功耗 1.9 - 3.6V 工作,待机模式下状态仅为 1uA
(7) 内置 2.4Ghz 天线或者 SMA 外置天线,通信距离 100 米左右
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 4
NewMsgTech http://www.rfinchina.com
(8) SPI 编程接口,可以和任何 MCU 配套使用,编程简单
(9)模块可软件设置地址,工作频率,数据包长度等
(10)MCU 可以通过状态引脚判断数据收发是否完成
(11) 内置专门稳压电路,使用开关电源等均有很好的通信效果

引脚接口说明

引脚功能
管脚 名称 管脚功能 备注说明
1 PWR_UP 数字输入 PWR_UP=1时正常工作 2 CE 数字输入 CE=0时正常模式
3 CLK2 数字输入 收发模式切换控制端口 4 CS 数字输入 SPI片选使能端,低电平有效 5 SCK1 数字输入 SPI时钟
6 NC 无 悬空 7 VCC 电源输入 1.9-3.6V 8 DR2 数字输出 第2通道状态输出 9 DOUT2 数字输出 第2通道数据输出
10 DR1 数字输出 第1通道状态输出 11 DATA 数字输出 第1通道数据输出
12 GND 电源地 悬空
备注
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 5
NewMsgTech http://www.rfinchina.com
1.VCC 引脚的电压范围为2.3-3.6V 之间,不能在这个区间之外,
如超过 3.6V 将会烧毁模块。推荐电压 3.3V 左右;
2.硬件没有集成SPI功能的单片机也可以控制本模块,用普通单片
IO口模拟 SPI 时序进行读写操作即可;
3. 模块接口采用标准2.54mmDIP插针,13 脚、14 脚为接地脚,需
要和系统电路的逻辑地连接起来;
4.与 51 系列单片机 P0 口连接时候,需要加 10K 的上拉电阻,
与其余口连接不需要。其他系列的5V单片机,如AVR、PIC,请参
考该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联
2-5K电阻分压,否则容易烧毁模块! 如果是 3.3V 的MCU,可以直
接和RF24L01模块的IO口线连接。

模块尺寸(单位:mm)

模块尺寸(PCB 板载天线)
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 6
NewMsgTech http://www.rfinchina.com

nRF2401A 工作方式

nRF2401A 有工作模式有四种:

收发模式

配置模式
空闲模式
关机模式
nRF2401A 的四种工作模式由 PWR_UP 、CE、TX_EN 和 CS 三个
引脚决定,详见下表。
收发模式
收发模式有 ShockBurstTM 收发模式和直接收发模式两种,收
发模式由器件配置字决定,具体配置将在器件配置部分详细介
绍。

ShockBurstTM 收发模式

ShockBurstTM 收发模式下,使用片内的先入先出堆栈区,数
据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 7
NewMsgTech http://www.rfinchina.com
能,因此,使用低速的微控制器也能得到很高的射频数据发射速
率。与射频协议相关的所有高速信号处理都在片内进行,这种做
法有三大好处:尽量节能;低的系统费用(低速微处理器也能进
行高速射频发射);数据在空中停留时间短,抗干扰性高。
ShockBurstTM 技术同时也减小了整个系统的平均工作电流。
在 ShockBurstTM 收发模式下, nRF2401A 自动处理字头和 CRC
校验码。在接收数据时,自动把字头和 CRC 校验码移去。在发送
数据时,自动加上字头和 CRC 校验码,当发送过程完成后,DR
引脚通知微处理器数据发射完毕。
ShockBurstTM发射流程
需要用到的接口引脚为CE,CLK1,DATA
A. 当微控制器有数据要发送时,其把CE置高,使nRF2401A工作;
B. 把接收机的地址和要发送的数据按时序送入nRF2401A;
C. 微控制器把CE置低,激发nRF2401A进行ShockBurstTM发射;
D. nRF2401A的ShockBurstTM发射
(1) 给射频前端供电;
(2)射频数据打包(加字头、CRC校验码);
(3) 高速发射数据包;
(4)发射完成,NRF2401A进入空闲状态。
ShockBurstTM接收流程
需用到的接口引脚CE、DR1、CLK1 和DATA(接收通道 1)
A. 配置本机地址和要接收的数据包大小;
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 8
NewMsgTech http://www.rfinchina.com
B. 进入接收状态,把CE置高;
C. 200us后,nRF2401A进入监视状态,等待数据包的到来;
D. 当接收到正确的数据包(正确的地址和CRC校验码),nRF2401A
自动把字头、地址和CRC校验位移去;
E. nRF2401A 通过把 DR1(这个引脚一般引起微控制器中断)置高
通知微控制器;
F. 微控制器把数据从 nRF2401A 读出;
G. 所有数据读取完毕后,nRF2401A 把 DR1 置低,此时,如果 CE
为高,则等待下一个数据包,如果 CE 为低,开始其它工作流程。
直接收发模式
在直接收发模式下,nRF2401A 如传统的射频收发器一样工作。
直接发送模式
需要用到的接口引脚为 CE、DATA
A. 当微控制器有数据要发送时,把 CE 置高;
B. nRF2401A 射频前端被激活;
C. 所有的射频协议必须在微控制器程序中进行处理 (包括
字头、地址和 CRC 校验码) 。
直接接收模式
需要用到的接口引脚为CE、CLK1 和DATA
A. 一旦nRF2401A被配置为直接接收模式,DATA引脚将根
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 9
NewMsgTech http://www.rfinchina.com
据天线接收到的信号开始高低变化(由于噪声的存在);
B. CLK1 引脚也开始工作;
C. 一旦接收到有效的字头,CLK1 引脚和DATA引脚将协调
工作,把射频数据包以其被发射时的数据从DATA引脚送给微
控制器;
D. 字头必须是 8 位;
E. DR引脚没用上,所有的地址和CRC校验必须在微控制器
内部进行。

空闲模式

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

关机模式

在关机模式下,为了得到最小的工作电流,一般此时的工作
电流小于 1uA。关机模式下,配置字的内容也会被保持在 nRF2401
A 片内,这是该模式与断电状态最大的区别。
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 10
NewMsgTech http://www.rfinchina.com

nRF2401A 参数配置

nRF2401A 的所有配置工作都是通过 CS、CLK1 和 DATA 三个引
脚完成,把其配置为 ShockBurstTM 收发模式需要 15 字节的配置
字,而如把其配置为直接收发模式只需要 2 字节的配置字。
我们推荐 nRF2401A 工作于 ShockBurstTM 收发模式,这种工
作模式下,系统的程序编制会更加简单,并且稳定性也会更高,
因此,下文着重介绍把 NRF2401A 配置为 ShockBurstTM 收发模式
的器件配置方法。
数据宽度:声明射频数据包中数据占用的位数。这使得 NRF2401
A 能够区分接收数据包中的数据和 CRC 校验码;
地址宽度:声明射频数据包中地址占用的位数。这使得 NRF2401
A 能够区分地址和数据;
通信地址:接收数据的地址,有通道 1 的地址和通道 2 的地址;
CRC 校验:使 NRF2401A 能够生成 CRC 校验码和解码。
工作频率:可以设置在 2.4-2.524GHZ 之间,间隔 1MHZ
发射功率:发射功率的大小决定了通信距离和整体功耗
通信速率:1Mbps、2Mbps 通信速率可选择设置
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 11
NewMsgTech http://www.rfinchina.com
ShockBurstTM 的配置字使 nRF2401A 能够处理射频协议,在
配置完成后,在 nRF2401A 工作的过程中,只需改变其最低一个
字节中的内容,以实现接收模式和发送模式之间切换。ShockBu
rstTM 的配置字可以分为以下几个部分,NRF2401A 配置字的各个
位的描述如下表所示。
当使用 NRF2401A 片内的 CRC 技术时,要确保在配置字中 CRC 校验
被使能,并且发送和接收使用相同的协议。
在配置模式下,注意保
证 PWR_UP 引脚为高电平,CE 引脚为低电平。配置字从最高位开
始,依次送入 NRF2401A。在 CS 引脚的下降沿,新送入的配置字
开始工作。
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 12
NewMsgTech http://www.rfinchina.com

程序参考设计

用CC1101模块无需掌握任何专业无线或高频方面的理论,读
者只需要具备一定的C语言程序基础即可。本文档没有涉及到的
问题,读者可以参考CC1101官方手册或向我们寻求技术支持。同
时,为便于用户开发,我们提供配套评估套件,为产品开发保驾
护航,使无线应用开发大大加速,并避免不必要的误区。

功能参数配置

************************************************************* /*=====<RF-Configuration-Register 配置信息>=====*/ //芯片测试用,无需修改
#define TEST_2 0x8E #define TEST_1 0x08 #define TEST_0 0x1C
/* 注意: DATAx_W + ADDRx_W + CRC 的值必须小于 256 ! 单个数据包的大小 必须小于 32 字节(256 位) */
#define DATA2_W 0x10
//0x10=2 字节 //频道 2 发送/接收数据长度(单位:Bit)
#define DATA1_W 0xE0
//0x20=28 字节 //频道 1 发送/接收数据长度(单位:Bit) /* 注意:2401 忽略 ADDR 中超过 ADDR_W 设定宽度的那些位,同时地址不能全部设 置为 0 */ //频道 2 接收地址 <- 频道 2 未启用
#define ADDR2_4 0x00 #define ADDR2_3 0x1c #define ADDR2_2 0xcc #define ADDR2_1 0xcc #define ADDR2_0 0xcc
//频道 1 接收地址 (当前模块地址) <- 只使用到频道 1
#define ADDR1_4 0x00 #define ADDR1_3 0xcc #define ADDR1_2 0xcc #define ADDR1_1 0xcc #define ADDR1_0 0xcc #define ADDR_W 0x10 //0x10=2 字节 //发送/接收地址宽度
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 13
NewMsgTech http://www.rfinchina.com
(单位:Bit)
#define CRC_L 0x1 //CRC 模式 0:8 位 1:16 位 #define CRC_EN 0x1 //CRC 校验 0:禁用 1:启用 #define RX2_EN 0x0 //双频道功能 0:禁用 1:启用 #define CM 0x1 //0:Direct mode 1:ShockBurst mode #define RFDR_SB 0x0
//传输速率 0:250kbps 1:1Mbps (250kbps 比 1Mbps 传输距离更远)
#define XO_F 0x3 //16M //nRF2401 晶振频率(具体设置见下图)
#define RF_PWR 0x3 //信号发射功率(具体设置见下图)
#define RF_CH 0x2 //Channel RF 频率设置
//Channel = 2400MHz + RF_CH * 1.0MHz
#define RXEN 0x0 //0:Tx 1:Rx
//程序会通过 SetTxMode/SetRxMode 重新设置此项参数 //将设置信息组合成每个字节的数据信息,此区域无需修改
#define RFConfig_Bit0 TEST_2 #define RFConfig_Bit1 TEST_1 #define RFConfig_Bit2 TEST_0 #define RFConfig_Bit3 DATA2_W #define RFConfig_Bit4 DATA1_W #define RFConfig_Bit5 ADDR2_4 #define RFConfig_Bit6 ADDR2_3 #define RFConfig_Bit7 ADDR2_2 #define RFConfig_Bit8 ADDR2_1 #define RFConfig_Bit9 ADDR2_0 #define RFConfig_Bit10 ADDR1_4 #define RFConfig_Bit11 ADDR1_3 #define RFConfig_Bit12 ADDR1_2
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 14
NewMsgTech http://www.rfinchina.com
#define RFConfig_Bit13 ADDR1_1 #define RFConfig_Bit14 ADDR1_0 #define RFConfig_Bit15 (ADDR_W<<2 | CRC_L<<1 | CRC_EN) #define RFConfig_Bit16 (RX2_EN<<7 | CM<<6 | RFDR_SB<<5 | XO_F <<2 | RF_PWR) #define RFConfig_Bit17 (RF_CH<<1 | RXEN)
//通过宏定义将 18 字节的寄存器参数按照各个功能分解,以便于参数的调整
unsigned char code nRF2401_Conf[18] = { RFConfig_Bit0, RFConfig_Bit1, RFConfig_Bit2, RFConfig_Bit3, RFConfig_Bit4, RFConfig_Bit5, RFConfig_Bit6, RFConfig_Bit7, RFConfig_Bit8, RFConfig_Bit9, RFConfig_Bit10, RFConfig_Bit11, RFConfig_Bit12, RFConfig_Bit13, RFConfig_Bit14, RFConfig_Bit15, RFConfig_Bit16, RFConfig_Bit17 };

SPI 时序读写操作

联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 15
NewMsgTech http://www.rfinchina.com

SPI 读操作函数

unsigned char ByteRead(void) { unsigned char i; for (i=0;i<8;i++) { DATA_BUF=DATA_BUF<<1; CLK1=1; DATA=1; //设置为输入状态 if (DATA) //读取最高位,保存至最末尾,通过左移位完成整个字节 { DATA_BUF|=BYTE_BIT0; } else { DATA_BUF&=~BYTE_BIT0; } CLK1=0; } return DATA_BUF; }

SPI 写操作函数

void ByteWrite(unsigned char send) { unsigned char i; DATA_BUF=send; for (i=0;i<8;i++) { if (DATA7) //总是发送最高位 { DATA=1; } else { DATA=0; } CLK1=1; DATA_BUF=DATA_BUF<<1; CLK1=0;
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 16
NewMsgTech http://www.rfinchina.com
} }

通过 SPI 接口配置寄存器参数

void Config2401(void) { unsigned int i; unsigned char variablel;
CS=0;
CE=0; PWR_UP=1; //上电
for(i=0;i<10;i++) Delay100();//从上电到进入配置模式需要 3ms 的延时
CS=1; //使 RF2401 进入配置方式 for(i=0;i<18;i++) { variablel=nRF2401_Conf[i]; ByteWrite(variablel); } Delay100(); CS=0; //CS 置低使配置有效 Delay100(); }

发送模式设置

void SetTxMode(void) { PWR_UP=1; //设置为配置模式 CE=0; CS=1; Delay100(); DATA =0; //配置寄存器 0 字节 RXEN 设置为 0:发送模式 CLK1=1; CLK1=0; //设置为 Activemodes(Tx) CS=0; CE=1; Delay100(); }
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 17
NewMsgTech http://www.rfinchina.com

接收模式设置

void SetRxMode(void) {
PWR_UP = 1; //设置为配置模式 CE=0; CS=1;
Delay100(); DATA =1; //配置寄存器 0 字节 RXEN 设置为 1:接收模式 CLK1=1; CLK1=0; CS=0; //设置为 Activemodes(Rx) CE=1; Delay100(); }

nRF2401A 数据发送流程

void nRF2401_TxPacket(unsigned char TxBuf[]) { int i; unsigned char variable2;
CE=1; Delay100(); for(i=0;i< (ADDR_W/8);i++) //写入接收地址(按字节对齐) { variable2=TxAddress[i]; ByteWrite(variable2); } for(i=0;i<(DATA1_W/8);i++) //写入需要发送的数据(按字节对齐) { variable2=TxBuf[i]; ByteWrite(variable2); } CE=0; //CE 置低使发送有效 Delay100(); //时钟信号高电平保持
Delay100();
}
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 18
NewMsgTech http://www.rfinchina.com

nRF2401A 数据接收流程

unsigned char nRF2401_RxPacket(unsigned char *RxBuf) { unsigned int i; DR1=1;
if(DR1) { for (i=0; i<DATA1_W/8; i++) { *RxBuf = ByteRead(); RxBuf++; } return 1; } return 0; }

无线应用注意事项

(1) 无线模块的 VCC 电压范围为 1.8V-3.6V 之间,不能在这个
区间之外,超过 3.6V 将会烧毁模块。推荐电压 3.3V 左右。
(2) 除电源 VCC 和接地端,其余脚都可以直接和普通的 51 单片
机 IO 口直接相连,无需电平转换。当然对 3V 左右的单片机更加
适用了。
(3) 硬件上面没有 SPI 的单片机也可以控制本模块,用普通单片
机 IO 口模拟 SPI 不需要单片机真正的串口介入,只需要普通的
单片机 IO 口就可以了,当然用串口也可以了。模块按照接口提
示和母板的逻辑地连接起来
(4) 标准 DIP 插针,如需要其他封装接口,或其他形式的接口,
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Page 19
NewMsgTech http://www.rfinchina.com
可联系我们定做。
(5) 任何单片机都可实现对无线模块的数据收发控制,并可根据
我们提供的程序,然后结合自己擅长的单片机型号进行移植;
(6) 频道的间隔的说明:实际要想 2 个模块同时发射不相互干
扰,两者频道间隔应该至少相差 1MHZ,这在组网时必须注意,否
则同频比干扰。
(7) 实际用户可能会应用其他自己熟悉的单片机做为主控芯片,
所以,建议大家在移植时注意以下 4 点:
A:确保 IO 是输入输出方式,且必须设置成数字 IO;
B:注意与使用的 IO 相关的寄存器设置,尤其是带外部中断、
带 AD 功能的 IO,相关寄存器一定要设置好;
C:调试时先写配置字,然后控制数据收发
D:注意工作模式切换时间

我们的承诺

最后,欢迎您使用我们的产品,在应用中有技术问题请及时
向我们联系,我们会予以技术知道,同时运输中出现产品问题我
们会全面责任并予以更换。
愿与您一起走向成功
联系电话:13704018223 陈 工 E-mail: [email protected] 在线咨询:QQ:35625400 474882985 MSN:[email protected]
Loading...