个人感觉难以捉摸
芯片简介
NRF24L01 是 NORDIC 公司最近生产的一款无线通信通信芯片,采用 FSK 调制,内部集成 NORDIC 自己的 Enhanced Short Burst 协议。可以实现点对点或是 1对 6 的无线通信。无线通信速度可以达到 2M(bps) 。NORDIC 公司提供通信模块的 GERBER 文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留 5 个 GPIO,1 个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为 MCU系统构建无线通信功能。
5 实际通信过程示波器图
对于NRF24L01 的编程主要是通过命令(WRITE_REG,READ_REG等等) ,控制线CE、CSN)以及中断信号 IRQ共同完成的。 对于发射节点,如果使能 ACK 与 IRQ 功能,则当通信成功以后(也就是发射节点收到了接收节点送回的ACK信号)IRQ线会置低。 对于接收节点,如果使能ACK与IRQ功能,则当通信成功以后(主要是根据Enhanced ShockBurst协议认为成功收到了有效数据宽度的数据) IRQ线会置低。 根据以上两种情况,用示波器抓了以下几个图形,分别介绍如下:
1)发射节点 CE 与 IRQ 信号
黄色信号是 CE,绿色信号是IRQ,当把节点配置为发射节点以后,将要传送的数据通过 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)函数送到发送 FIFO 缓冲区。CE 为高超过 10us,缓冲区中的数据通过无线向外发出。 如果使能 IQR 的全部功能(TX_DS,RX_DS,MAX_RT)当发送节点收到接收节点发来的 ACK(表示接收节点成功收到信号)或是达到最大发射次数,IRQ 会变为低电平,同时 CONFIG 的相关标志位()会置 1。清除标志位(向 CONFIG 的标志位写
1)以后,IRQ 又变为高电平。
从 FIG5.1 可以看出,CE 置高后将近 10msIRQ 才置低。IRQ 置低是由于达到最大发射次数(MAX_RT=1),出现该情况可能是由于接收节点的配置与发射节点不符(例如发射接收频率不同,或者发射接收字节不等) ,或者根本就没有接收节点(例如接收节点就根本没上电) 。
2)SCK 与 IRQ 信号(发送成功)
Fig5.2 中绿色信号是 SCK,黄色信号是IRQ。第一批绿色信号表示节点的配置过程。 MOSI 信号 (Fig5.2 中未显示出) 在 SCK的下降延送入 24L01节点。 (配置一个寄存器需要两组 SCK信号,填充 N字节的 BUFFER需要 N+1 组SCK信号) 。
配置完信号以后,将 CE(Fig5.2 中未显出)置高,则 24L01 开始发送(或接收)数据,当发送(或接收)完成以后(或是达到最大发射次数) ,IRQ置低。单片机根据当时的状态进行相应的处理。
第二批绿色信号表示单片机在 IRQ 为低时对 24L01 的处理过程。可以是读FIFO(作为接收节点时) ,写 FIFO(作为发射节点时) ,或是 Reset 24L01(达到最大发射次数时) 。
从Fig5.2可以看到, 从第一批SCK的最后一个信号到IRQ置低大概需要1ms(对比于 Fig5.1 的 12ms) ,说明通信成功(说明 IRQ不是 MAX_RT引起的) 。
3)SCK 与 IRQ 信号(发送不成功)
Fig5.3 与 Fig5.2 类似,只不过从第一批最后一个 SCK 信号到 IRQ 置低的时间间隔变为将近10ms,表明通信部不成功,IRQ是由于达到最大发射次数引起的。
Fig5.4 中紫色信号是发射端 CE,绿色信号是接收端 IRQ,黄色信号是发射
端 IRQ。Fig5.4 表示如下逻辑:
发射节点在配置完成以后(配制过程 Fig5.2 未显示) ,CE 置高,发射节点 FIFO中的数据发出;接收节点成功接收到数据,IRQ置低(从紫色信号与绿色信号之间的时间间隔可以判断出通信成功) ;接收节点自动发射 ACK(在发射和接收节点都使能 ACK) ,发射节点收到 ACK后 IRQ 置低,表示发送成功。 不同通信环境可能造成发射节点的IRQ与接收节点的IRQ产生将对的相位变化(表现在示波器上面就是黄色信号靠近绿色信号或者远离绿色信号) 。出现这种情况主要是由于不同的通信环境造成接收端发送的 ACK信号要重发几次才能被发送端收到。
完整的pdf格式文档51黑下载地址(共21页):
NRF24L01功能使用文档.pdf
(650.05 KB, 下载次数: 10)
|