首页 > 代码库 > 单片机基于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的无线通信(基本测试通过)