1. 文章简述
E01-ML01DP5是一款成都亿佰特公司标志性产品,其工作在2.4G无线模块,是当今市面上最优秀的nRF24l01P+PA+LNA射频模块,芯片方案采用挪威Nordic公司原装进口的nRF24l01P,配备美国进口的20dBm功率放大芯片,同时将接收灵敏度提升3dB,使得模块超过nRF24l01P自身8倍以上的通信距离,硬件设计上带有抗干扰屏蔽罩,使得模块的抗干扰能力大大提升。
本文将介绍E01-ML01DP5软件开发流程及操作方式。E01-ML01DP5是一款硬件模块,可通过外部MCU使用标准串行外设接口SPI通讯协议对射频芯片nRF24l01进行配置及操作。
2. nRF24l01P简介
nRF24L01P是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型"SchockBurst"模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成工作。当工作在发射模式下发射功率为0dBm 时电流消耗为11.3mA ,接收模式时为12.3mA,掉电模式和待机模式下电流消耗1uA。其内部结构主要由RF Transmitter和Baseband两大板块构成,在Baseband块中主要包含了射频控制、外部交互接口及芯片本身集成的Enhanced Short Burst Engine, RF Transmitter板块中则主要包含无线信号调制、解调、滤波放大等电路,其功能结构框图如图所示:
3. nRF24l01功能及控制
2.1 控制引脚
从编程控制的角度看,我们只需要用外部单片机控制框图1-1中右边的6个引脚,其主要功能如下:
CSN:芯片的片选线,CSN 为低电平芯片工作。
SCK:芯片控制的时钟线(SPI时钟)
MISO:芯片控制数据线(Master input slave output)
MOSI:芯片控制数据线(Master output slave input)
IRQ:中断信号。无线通信过程中 MCU主要是通过IRQ与NRF24L01P 进行通信。
CE:芯片的模式控制线。在CSN为低的情况下,CE协同nRF24L01P的CONFIG寄存器共同决定nRF24L01P的状态。
2.2 状态机及其相互转换
对于nRF24L01P固件编程工作主要是参照 nRF24L01P 的状态机。该射频芯片主要有以下几个状态 :
Power Down Mode:掉电模式
Tx Mode:发射模式
Rx Mode:接收模式
Standby-1Mode:待机 1 模式
Standby-2 Mode:待机 2 模式
当芯片处于某状态下,想切换到另外的状态有的状态可以直接切换,有的则需要中间某个状态进行过度,并且需要外部具备一定条件,比如电压等。具体转换方式如图所示:
4. nRF24l01P固件编程流程
4.1 固件编程思路
1)置CSN为低,使能芯片,配置芯片各个参数。配置参数在 Power Down 状态中完成。
2)如果是Tx模式,填充Tx FIFO。
3) 配置完成以后,通过CE与CONFIG中的PWR_UP与PRIM_RX参数确定24L01要切换到的状态。TxMode:PWR_UP=1; PRIM_RX=0; CE=1 (保持超过 10us 就可以);Rx Mode: PWR_UP=1; PRIM_RX=1; CE=1;
4)IRQ 引脚会在以下三种情况变低:Tx FIFO发送完成并且收到ACK(使能ACK情况下)、Rx FIFO有数据到达、最大重发次数到达设定值(最大15次)。
4.2 TX模式初始化步骤
将nRF24l01配置在发送模式下,具体步骤及相关寄存器如表所示:
序号 | 操作功能 | 相关寄存器 |
1 | 写Tx节点的地址 | TX_ADDR |
2 | 写Rx节点的地址(主要是为了使能 Auto Ack) | RX_ADDR_P0 |
3 | 使能 AUTO ACK | EN_AA |
4 | 使能 PIPE 0 | EN_RXADDR |
5 | 配置自动重发次数 | SETUP_RETR |
6 | 选择通信频率 | RF_CH |
7 | 配置发射参数(低噪放大器增益、发射功率、无线速率) | RF_SETUP |
8 | 选择通道0有效数据宽度 | Rx_Pw_P0 |
9 | 配置nRF24L01的基本参数以及切换工作模式 | CONFIG |
4.3 TX模式初始化步骤
将nRF24l01配置在接收模式下,具体步骤及相关寄存器如表所示:
序号 | 操作功能 | 相关寄存器 |
1 | 写 Rx 节点的地址 | RX_ADDR_P0 |
2 | 使能 AUTO ACK | EN_AA |
3 | 使能 PIPE 0 | EN_RXADDR |
4 | 选择通信频率 | RF_CH |
5 | 选择通道 0 有效数据宽度 | SETUP_RETR |
6 | 配置发射参数(低噪放大器增益、发射功率、无线速率) | Rx_Pw_P0 |
7 | 配置 24L01 的基本参数以及切换工作模式 | RF_SETUP |
按照上述流程操作配置nRF24l01以后,就能实现两个节点间通讯。
5. 结语
目前市面上单射频芯片(非SCO)软件操作方式都大同小异,熟悉一款芯片操作方式以后其他的都信手拈来。当然,无论做任何产品、任何形式的开发,最好的方式都是按照官方数据手册上描述的流程一步步进行,这样可以极大的提高开发效率同时也能避免开发过程中遇到更多难以解决的问题。更多关于在软件上如何配置操作E01-ML01DP5(nRF24l01)模块的相关资料请参阅成都亿佰特电子科技有限公司官方链接:www.cdeby