首页 > 代码库 > 单片机基于2.4G无线收发模块NRF24L01的无线通信(基本测试通过)
单片机基于2.4G无线收发模块NRF24L01的无线通信(基本测试通过)
在无线通信中,NORDIC公司生产的NRF24L01无线收发模块是许多玩家的选择,它是2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片,具有功能较强而控制较方便并且价格便宜的优点。一块NRF24L01可以同时接收6个通道的发送数据,同时可以采用变频手段改变通信频道来避免无线通信干扰,下面简单介绍一下这种芯片的使用。
本次采用了两块单片机进行无线通信,一块型号为:STC90C51 16RD+ ,接收器:NRF24L01
另一块为:STC12C5A60S2 ,发送器:NRF24L01
一、硬件方面
1>引脚介绍
引脚1:GND,接地端;引脚2:VCC,1.9V~3.6V
引脚3:CE, NRF24L01模式控制端
引脚4:CSN,片选信号
引脚5:SCK,SPI时钟输入端
引脚6:MOSI,SPI数据输入端
引脚7:MISO,SPI数据输出端
引脚8:IRQ,中断输出端,低电平使能,即中断输出低电平
对于电源不要超过3.6V,否则可能损坏芯片
对于端口引脚,可以耐压5V,即可以接TTL端口
2>工作模式
3>增强型shockburst模式
NRF24L01默认是增强型shockburst模式,即能自动应带,此模式下可减轻单片机负担,可使程序简化,本次将采用默认方式发送接收数据。
在此方式下,通讯协议如下:
对发送方(配置PRIM_RX为低):发送方启动发送后,即CE拉高至少10us,发送方发送数据,发送完数据后使用通道0接收终端应答ASK信号,如果没有收到ASK,发送方将重发相同的数据包,直到收到应答信号或重发次数超过设定最大值为止。若超过最大次数,将会产生MAX—RT中断,IRQ输出低电平。若收到了ASK信号,发送发认为发送成功,将产生TX_DS中断。
对接收方(配置PRIM_RX为高):接收方启动接收后,即CE拉高至少10us,若接收到的数据通过CRC校验正确,则将数据存储在RX_FIFO中。
4>数据通道地址配置方法
图示中,以地址宽度为5字节示例
对于NRF24L01(发送方、接收方)通道0地址32位数据均可配置
对于接收方,而通道1-通道5中前4字节地址必须相同,第五字节不能相同
对于发送方,通道0地址 和 发送地址 必须一致,而且与接收方所要通信通道地址相同!
5>SPI指令设置
每一条完整指令的写入都必须通过一次CSN由高到低的变化
6>SPI指令格式
访问多字节寄存器时,应该先读/写低字节的高位。当多字节寄存器在写完之前若结束SPI写操作,则高位字节内容可保持不变。
对于中断,若向中断源TX_DS、RX_DR、MAX_RT写入1,则中断响应被屏蔽。
7>SPI时序
写NEF24L01中寄存器时必须处于待机或掉电模式!
8>寄存器表格
共有18个寄存器,而对于点对点通信的NRF24L01只用到不到10个寄存器即可,其它可保持默认配置,详情见程序配置,寄存器说明见NORDIC公司的datasheet。
二、软件部分
下篇继续》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
****************************************************************************************************************
详情请咨询: http://shop108408772.taobao.com/
**************************************************************************************************************
单片机基于2.4G无线收发模块NRF24L01的无线通信(基本测试通过)