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

SPI Slave模式数据接收机制
本文探讨了SPI接口在Slave模式下数据接收的工作原理。特别关注了移位寄存器和接收FIFO如何处理按位传入的数据,并讨论了当接收到的数据不足一个完整的字时可能出现的问题。

如上图, 移位寄存器(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 填充到上个没有满的字中,但后面发送

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

转载于:https://www.cnblogs.com/aqing1987/p/4497298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值