微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 关于SPI的问题汇总,跪求大牛前来解答!

关于SPI的问题汇总,跪求大牛前来解答!

时间:10-02 整理:3721RD 点击:
最近在最SPI控制器,发现eetop上关于SPI的问题和介绍比较缺乏,所以开辟一个新话题,欢迎新手前来提问,大牛帮助解答。我的第一个问题是,在master控制数据输出时,也要同时将从机输入保存在SPIDR中吗?这样不就是在写的同时也在读吗?SPI可以这样实现吗?

4线SPI 本来就Support full-Duplex。
三线 DI/DO 复用同一根线。

spi是全双工的

那如果SPI从器件只会接收数据,不会发送数据怎么办?

SPI Host 干什么 也是SW 决定的。
Host 端 只写不读这个 Slave 就行了。
如果误发读给这个Slave, 就会发现MOSI 全是同一个Value,只要 SPI Bus 不会死掉,不影响 对其它Slave 的Access 就行了。

SPI是全双工的,接收和发送能够同时进行。硬件是支持的,就看怎么用了

如果SPI做从机的话,SCK还是这个控制模块的吗?还是一个输入信号!

主提供时钟发起操作,这个时候就看主从是那个发的数据有效,还是同事有效,这个要 看双方的约定,SPI还有标准的协议,自己定义!

主机发送数据时,即些SPDR时,就启动时钟,那么在主机接收从机发送来的数据时,时钟是怎样启动的呢?

时钟就是主机串口提供的时钟。主机开始工作时提供时钟。



一般是情况下,主机提供时钟,主从机都在时钟的下沿输出数据,主从机都在时钟的上沿采样数据。

控制器在做主机的时候可以发送或者接受,发送的时候只要有数据写入数据寄存器就可以启动传输,但是接收的时候如何启动传输?接受的时候不会有数据写入寄存器了,而且接受寄存器这个时候也是空的。还有就是接收和发送如何转换?

在主控发送数据的过程中,SPI的从器件在时钟的采样下,就会将内部的数据发送按照协议发送出去,主控这边接收从器件发送的数据,然后将起存储的接收FIFO中,CPU可以根据软件来读取接收到的数据。 SPI是全双工的,支持同时数据发送和接收。
当主控做为master时,串口的时钟由master提供,master的发送FIFO中的数据在master的串口时钟下发送数据给从器件,同时从器件在master的串口时钟下发送数据给主控。
总而言之,主控接收发送数据,从器件接收发送数据用的是同一个时钟。
不知道我说清楚了咩有?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top