miracle533 发表于 2018-3-10 14:40:55

NRF24L01的SPI时序应该怎么理解呢?



以这张图的SPI 写 时序为例的话,大佬看一下我对这个过程的理解对不对:CSN的引脚拉低,从机在主机SCK的频率下,开始传输数据,主机在MOSI引脚发送8bit的SPI命令位(这玩意是不是对SPI的设置(CPOL,CPHA,主从模式等?)) ;与此同时从机通过MISO传输给主机STATUS寄存器的值,来显示自己此时的状态。接下来主机开始传输数据,为什么MISO返回的是空的呢?




toofree 发表于 2018-3-10 14:40:56

本帖最后由 toofree 于 2018-3-10 19:36 编辑

你的理解有问题。
第一个字节传输的命令,是手册上第46页的那些命令字。有些位是“A”,表示不关心,因为几个高位的状态已能确定是这个命令。



CPOL、APHA的意义,请看一下STM32的用户参考手册,任意一款带SPI接口的MCU,都有相应的说明。
CPOL为0,表示SCK在空闲状态为0;CPHA为0,表示在第一个时钟跳变沿锁在数据。

MISO第一个字节的8位,的确是状态。
你图上的数据线上的黑色区块,并不是说数据是0,而是不关心是什么数据,意义同上位表格中的“A”。
读的时候,由于第一个字节从MOSI发送的读命令;那么从第二字节开始,MOSI的数据随意,并不关心MOSI是什么数据,只为了发送时钟节拍,MISO传输的是要读取的数据。

写的时候,由于第一个字节从MOSI发送的写命令;那么从第二字节开始,MOSI传输的是要写入的数据,MISO是什么数据并不关心。






miracle533 发表于 2018-3-11 08:13:57

toofree 发表于 2018-3-10 14:40
你的理解有问题。
第一个字节传输的命令,是手册上第46页的那些命令字。有些位是“A”,表示不关心,因为几 ...

:handshake
页: [1]
查看完整版本: NRF24L01的SPI时序应该怎么理解呢?