HTML5技术

如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究一篇说完 - beautifulzzzz

字号+ 作者:H5之家 来源:博客园 2015-10-09 15:17 我要评论( )

六、温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)初尝试把温湿度给收集了(下)! 七、点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计一款好玩的智能硬件(七)LCD1602点阵字符型液晶显示模块驱动

 

六、温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)!

七、点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)

八、LCD1602点阵字符型液晶显示模块驱动封装(中):如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)

九、LCD1602点阵字符型液晶显示模块驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)

 

十、nRF24L01无线2.4G一篇说完

 

  承接上文,本节将从零开始带你认识无线2.4G模块,了解其控制和通信指令,从而封装一个nRF24L01底层的驱动函数,并最终写一个3-3通信的小实验验证我们的封装。在Quick Know部分你将快速浏览到nRF24L01的基本信息;在Thorough Understand部分你将深入nRF24L01细节了解其通信属性;在最后一部分你将看到我关于nRF24L01的底层驱动封装,并基于这个封装做了个简陋的3对3无线互传实验。


 

 
QUICK KNOW


1、芯片简介:

  NRF24L01 是 NORDIC 公司最近生产的一款无线通信通信芯片,采用 FSK 调制,内部集成 NORDIC 自己的 Enhanced Short Burst 协议。可以实现点对点或是 1 对 6 的无线通信。无线通信速度可以达到 2M(bps)。NORDIC 公司提供通信模块的 GERBER 文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留 5 个GPIO,1 个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为 MCU 系统构建无线通信功能。


2、数据接口主要是SPI接口:

CSN:芯片的片选线,CSN 为低电平芯片工作。
SCK:芯片控制的时钟线(SPI 时钟)
MISO:芯片控制数据线(Master input slave output)
MOSI:芯片控制数据线(Master output slave input)
IRQ:中断信号。无线通信过程中 MCU 主要是通过 IRQ 与 NRF24L01 进行通信。
CE: 芯片的模式控制线。在 CSN 为低的情况下,CE 协同 NRF24L01 的 CONFIG 寄存器共同决定 NRF24L01 的状态(参照 NRF24L01 的状态机)。
 

 

3、NRF24L01状态及状态机:

Power Down Mode:掉电模式
Tx Mode:发射模式
Rx Mode:接收模式
Standby-1 Mode:待机 1 模式
Standby-2 Mode:待机 2 模式

 

4、对24L01的固件编程的基本思路如下:

1) 置CSN为低,使能芯片,配置芯片各个参数。配置参数在Power Down状态中完成。

2) 如果是Tx模式,填充TxFIFO。

3) 配置完成以后,通过 CE 与 CONFIG 中的 PWR_UP 与 PRIM_RX 参数确定 24L01要切换到的状态。

Tx Mode: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 收到数据

达到最大重发次数

将 IRQ 接到外部中断输入引脚,通过中断程序进行处理。

 

5、Tx与Rx的配置过程 :

  Tx模式初始化过程

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)配置 24L01 的基本参数以及切换工作模式 CONFIG

 

 

 

 

 

 

 

 

 

Rx 模式初始化过程

1)写 Rx 节点的地址 RX_ADDR_P0

2)使能 AUTO ACK EN_AA

3)使能 PIPE 0 EN_RXADDR

4)选择通信频率 RF_CH

5) 选择通道 0 有效数据宽度 Rx_Pw_P0

6)配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP

7)配置 24L01 的基本参数以及切换工作模式 CONFIG

 

 

 

 

 

 

 

 

6、原理图:

 

 

 

THOROUGH UNDERSTAND

1、Introduction:

  The nRF24L01+ is a single chip 2.4GHz transceiver with an embedded baseband protocol engine(Enhanced ShockBurst™), suitable for ultra low power wireless applications. The nRF24L01+ is designed for operation in the world wide ISM frequency band at 2.400 - 2.4835GHz.

  To design a radio system with the nRF24L01+, you simply need an MCU (microcontroller) and a few external passive components.

  You can operate and configure the nRF24L01+ through a Serial Peripheral Interface (SPI). The register map, which is accessible through the SPI, contains all configuration registers in the nRF24L01+ and is accessible in all operation modes of the chip.

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 使用Docker分分钟启动常用应用 - 编程玩家

    使用Docker分分钟启动常用应用 - 编程玩家

    2017-04-10 14:00

  • 我,编程和大学 - 外婆的彭湖湾

    我,编程和大学 - 外婆的彭湖湾

    2017-04-09 17:04

  • 初学编程一周的感想 - 陈老仁

    初学编程一周的感想 - 陈老仁

    2017-03-20 10:01

  • 编程思想之——人是活的,程序是死的 - 追随微笑

    编程思想之——人是活的,程序是死的 - 追随微笑

    2017-03-03 09:00

网友点评