imx6 spi slave 数据接收时移位寄存器的工作机理

如上图, 移位寄存器(shift register)及 接收FIFO (RXDATA)对程序来说是透明的。

唯一可访问的 Receive Data Register (ECSPIx_RXDATA) 只能访问 接收FIFO的 top 字。如下:

 

当把 spi2 配置成为 slave 模式时,外部的主spi 端将数据发送到 spi 的 MOSI 线上,mosi线上的数据是按bit 传输的。

在 bpw 配置为 32时,移位寄存器中 每满 32bit 才可以向 接收FIFO 打一个字。

 

如果,mosi线上只发送了 31个bit的数据,那么 是不会向 接收FIFO中推送的。这时,除非给 spi2 进行复位操作,不然

从ECSPIx_RXDATA 中读到的数据肯定是错误的。后面发送的一个字,会把最高bit 填充到上个没有满的字中,但后面发送

的字由于最高位已经补给了上一个字,这样,后面的字就不会再是正确值了。

你可能感兴趣的:(slave)