NRF24L01模块使用(老干妈笔记)

1、模块电路图:
  • CE:     模块控制线,CSN为低时,CE协同CONFIG寄存器共同决定NRF24L01状态
  • CSN:  SPI片选线
  • SCK:   SPI时钟线
  • MOSI:SPI数据线(主机输出从机输入)
  • MISO:SPI数据线(主机输入从机输出)
  • IRQ:   中断信号线。中断时变为低电平,在以下三种情况变低:Tx FIFO发完并且收到ACK(使能ACK情况下)、Rx FIFO收到数据、达到最大重发次数


2、SPI读写时序

空闲状态SCK为0,CPOL=0;数据在时钟第一个跳变沿采集,CPHA=0;

  • Cn:SPI命令位
  • Sn:STATUS寄存器位
  • Dn:数据位(MSB,多字节传输时,低字节在前)

 3、工作模式

NRF24L01工作模式,由CE和CONFIG寄存器(0x00)的PWR_UP(第1位)和PRIM_RX(第0位)共同控制:

NRF24L01工作模式  PWR_UP位状态  PRIM_RX位状态  CE引脚电平  FIFO寄存器状态
接收模式 1 1 1 -
发送模式 1 0 1  数据在TX FIFO寄存器中
发送模式 1 0 1 ----> 0  停留在发送模式,直至发送完   
待机模式II 1 0 1  TX FIFO为空
待机模式I 1 - 0  无数据传输
掉电模式 0 - - -
1)收发模式
        收发模式有Enhanced ShockBurstTM收发模式ShockBurstTM收发模式直接模式三种,收发模式由器件配置字决定。
  • Enhanced ShockBurstTM收发模式
       发送数据时,自动加上字头和CRC校验码, 在发送模式下,置CE为高,至少10us,将使能发送过程;接收数据时,自动把字头和CRC校验码移去。
       在 接收端,确认收到数据后记录地址,并以此地址为目标地址发送应答信号。在 发送端,通道0被用作接收应答信号,故 通道0的接收地址与发送地址端地址相等,以确保接收到正确应答信号。

       Enhanced ShockBurstTM发送流程:

       A. 把地址和要发送的数据按时序送入NRF24L01;
       B. 配置CONFIG寄存器,使之进入发送模式;    
       C. MCU把CE置高(至少10us),激发Enhanced ShockBurstTM发射
       D. Enhanced ShockBurstTM发射:a)给射频前端供电;
                                                                b)射频数据打包(加字头、CRC校验码);
                                                                c)高速发射数据包;
                                                                d)发射完成,NRF24L01进入空闲状态        

       Enhanced ShockBurstTM接收流程:

       A. 配置接收地址和要接收的数据包大小;
       B. 配置CONFIG寄存器,使之进入接收模式,把CE置高;
       C. 130us后,NRF24L01进入监视状态,等待数据包的到来;
       D. 当接收到正确的数据包(正确的地址和CRC校验码),NRF24L01自动移去字头、地址和CRC校验位
       E. NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起MCU中断)通知MCU;
       F. MCU把数据从FIFO读出(0x61指令);
       G. 所有数据读取完毕后,可清除STATUS寄存器;NRF24L01可以进入四中主要的模式之一。

4、SPI指令

常用SPI指令
指令名称  指令格式  操作
R_REGISTER 000A AAAA  读寄存器。AAAAA为要读取的寄存器地址
W_REGISTER 001A AAAA  写寄存器。AAAAA为要写入的寄存器地址
R__RX_PAYLOAD 0110 0001

 读 RX 有效数据,1-32字节。  读操作从字节0开始,当读RX有效数

据完成后,FIFO寄存器中的使有效数据将被清除。接收模式下用。

W_TX_PAYLOAD 1010 0000  写TX有效数据,1-32字节。写操作从0字节开始,发送模式下用。
FLUSH_TX 1110 0001  清除TX FIFO寄存器。发送模式下用
FLUSH_RX 1110 0010  清除RX FIFO寄存器。接收模式下用


猜你喜欢

转载自blog.csdn.net/lgm_1874/article/details/80180125