微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 本人愚钝,一直没有理解SPI协议,在这里向大侠们讨教一下,求指点一二呀。

本人愚钝,一直没有理解SPI协议,在这里向大侠们讨教一下,求指点一二呀。

时间:10-02 整理:3721RD 点击:
本人新手,一直想用verilog写个spi协议,可是一直没有理解清楚。
                spi的基本时序我知道,就是根据CPOL和CPHA来改变。
                但是有几点不太明白,如果主机想读取从机的数据,那么从机是怎么输出数据的,输出多少bit的数据呢?
               比如下面的这个时序图,大部分资料的时序图都是这个样子的:


                        
                            我有几点不太明白呀:
                    1.从机是怎么给主机发送数据的,看时序图,难道是SS一拉低就给主机发送数据?
                    2.从机怎么控制给主机发送多少数据?

                       难道是主机先发命令给从机,命令中包括了要求主机是发数据还是接收数据,以及数据的大小?然后从机按照主机的命令执行?

我也记不清了,不过这个时序貌似很简单

SS拉低后, 在时钟的上升沿或者是下降沿发数据, 每个时钟周期发一位数据,先发低位还是高位协议上有讲,
第二个问题, 根据时钟个个数;
你问的问题在协议上都有讲,仔细看协议。



    我看过moto的那个协议,没有说从机的部分。

SPI读数据需要主机发起一组时钟,然后从机响应后输出数据。英文好像叫 SPI dummy
网上有很多SPI的文章,你可以找一下仔细读一读。

读写都是主机发起的。读取什么内容,读取多少字节都是主机控制的。

研究下。

SPI的读是靠master来发起的,master置低CSn后发出SCK信号,SLave的数据就从MISO上输出了

1.CPHA情况下,确实CS一拉低从机就给主机发了数据
2.一般从机的时钟极性相位模式以及数据长度都是固定的,然后主机去满足从机的要求~

1、 有可能这么操作,主要还是要看工作模式
2、主机控制的数据位数

补充一句CPHA = 0的情况下,CS变低后,从机立即向主机发送数据

http://bbs.eetop.cn/viewthread.p ... ght=SPI%D0%AD%D2%E9
这份资料28页可以解决你的问题

好东西,要好好学习

SPI应该是数据交换吧。想收数据,必要发数据

学习了!

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

网站地图

Top