芯片解密c8051f330单片机的nrf24l01
芯片解密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引起的) 。

芯片解密