搜索
bottom↓
回复: 40

请教SPI的时序图

[复制链接]

出0入0汤圆

发表于 2014-6-22 12:36:24 | 显示全部楼层 |阅读模式
本帖最后由 zpwkxg 于 2014-6-22 17:44 编辑


下图是AD2S1210的串口时序图。请问:
1.一下芯片SDO输出的MSB前端那一小段数据是什么意思?
2.在数据手册的第28页指出,SDO在SCLK的上升沿移出器件,SDI在SCLK的下降沿移入器件,SDO的数据在时钟上升沿输出时已经到数据有效末端了,不在一般情况下的中间吗?
3.这个芯片的SPI模式(模式0-模式3)是模式2吗?
4.SPI的模式我理解既对SDO,同时也是对SDI说的;在本SPI芯片的SDO,SDI的描述中,采样SDO是上升沿,采样SDI在下降沿?怎么理解呢 ,老鸟们请帮一下,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-6-22 15:55:30 | 显示全部楼层
本帖最后由 alias 于 2014-6-22 16:00 编辑

MSB前端那一小段数据是不确定的意思。

由於芯片在SCLK上升沿於SDO脚输出有效数据,但脚位电平改变是需要时间的。你便不可以在SCLK上升沿读取数据,而要在SCLK下降沿才读取,不然你会不确定在SCLK上升沿过后多久数据才是真正有效及正确。

同理SDI的数据在SCLK下降沿出现后你便可以更改,且必须在下一个下降沿来到之前完成改动操作(最好是在上升沿出现时已完成改动)。

出0入0汤圆

 楼主| 发表于 2014-6-22 16:30:29 | 显示全部楼层
alias:这SPI 应该设置工作在什么模式?

出0入0汤圆

发表于 2014-6-22 17:12:21 | 显示全部楼层
本帖最后由 alias 于 2014-6-22 17:22 编辑

在上升沿首次出现后用家(或AD2S1210)才放置数据,在下降沿(第2次出现沿电平改变)才读取首位数据,这SPI(Mode0,1,2,3) 应该设置工作在 MODE 1 模式。

即 CPOL=0, CPHA=1。

出0入0汤圆

 楼主| 发表于 2014-6-22 17:26:12 | 显示全部楼层
谢谢回复。这个时序我现在也没看懂,我认为CPOL=1,SPI模式只能是1X,即模式2或模式3。

出0入0汤圆

发表于 2014-6-22 17:32:19 | 显示全部楼层
小心注意SPI模式有些人用SP0~SP3,也有人用模式1-模式4代表,我是前者。最可靠是说明 CPOL 及 CPHA。

出0入0汤圆

 楼主| 发表于 2014-6-22 17:57:20 | 显示全部楼层
本帖最后由 zpwkxg 于 2014-6-22 18:01 编辑


我在1楼的意思也应该写成(模式0-模式3),改回来了。现在SCLK在空闲时为1,我还是觉得模式应为1x,您四楼的话前半句没看懂,请继续指教;

还有个问题:看参考资料上说的上升沿或下降沿的采样(sampling)和设置(setup),这里的setup是否可以理解数据的写(数据改变)? 采样和设置分别是主机、从机在上升沿/下降沿、下降沿/上升沿的的动作对吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-6-22 18:29:25 | 显示全部楼层
>>现在SCLK在空闲时为1

为何SCLK在空闲时为1? SCLK 在 AD2S1210 SPI 时是输入脚,你 MCU 控制 SCLK 的空闲电平可高可低,完全由你决定。但如果是高(1),那第一个沿转变必然是高至低,而高至低你已认同是用来读取有效数据,但这时数据并没有存在(因为上升沿后才有有效数据)。所以SCLK在空闲时不能是高(1)。

setup可以理解为数据的写(数据改变),sampling 就是读取数据。通常采样(sampling)和设置(setup)是在相对的沿发生。

出0入0汤圆

 楼主| 发表于 2014-6-22 18:45:52 | 显示全部楼层
我再看看理解一下吧,谢谢alias

出0入0汤圆

 楼主| 发表于 2014-6-22 19:22:23 | 显示全部楼层
本帖最后由 zpwkxg 于 2014-6-22 19:26 编辑
alias 发表于 2014-6-22 18:29
>>现在SCLK在空闲时为1

为何SCLK在空闲时为1? SCLK 在 AD2S1210 SPI 时是输入脚,你 MCU 控制 SCLK 的空 ...


alias:SDO数据线的数据采样和放置是从机SPI控制器的动作吗?或是:SDO数据采样读是主机SPI动作,SDO放置数据是从机SPI控制器的动作?谢谢




出0入0汤圆

发表于 2014-6-22 19:43:36 | 显示全部楼层
SDO数据线的数据放置是AD2S1210的动作,而SDO数据线的数据采样是MCU的动作。

SDI数据线的数据放置是MCU的动作,而SDI数据线的数据采样是AD2S1210的动作。

出0入0汤圆

发表于 2014-6-22 21:24:43 | 显示全部楼层
关于SPI工作模式的问题,只要记住下面的口诀就行了(原创,呵呵):
  
  
  
解释如下:
  03升,12降 —— 0、3模式为上升沿采样,1、2模式为下降沿采样。
  低取小,高取大 —— SCK初始电平为低则模式取小值,SCK初始电平为高则模式取大值。要点:SCK初始电平高低由SS(即从机选择)信号有效边沿确定。
  
对于楼主的图,应用以上口诀:
  楼主芯片数据手册中数据输入为下降沿采样,因此SPI为模式1或模式2。再看/FSYNC(即从机选择信号),有效下降沿对应的SCLK为低电平,所以模式取小值,即该SPI配置为模式1。
  提醒:不必考虑在/FSYNC有效下降沿之前时钟处于什么状态。
  
  
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-6-22 21:37:06 | 显示全部楼层
感谢alias帮忙

出0入0汤圆

 楼主| 发表于 2014-6-22 21:42:02 | 显示全部楼层
AD2S1210 SPI时序是否可总结为:时钟下降沿采样(读),上升沿放置数据(写)?

出0入0汤圆

发表于 2014-6-22 21:45:33 | 显示全部楼层
zpwkxg 发表于 2014-6-22 21:42
AD2S1210 SPI时序是否可总结为:时钟下降沿采样(读),上升沿放置数据(写)? ...

是的。
采样指的是对数据输入。

出0入0汤圆

发表于 2014-6-22 21:47:05 | 显示全部楼层
zpwkxg 发表于 2014-6-22 21:42
AD2S1210 SPI时序是否可总结为:时钟下降沿采样(读),上升沿放置数据(写)? ...

有时也把读叫做“接收”,写叫做“发送”。

出0入0汤圆

 楼主| 发表于 2014-6-22 22:07:50 | 显示全部楼层
这里真是高手林立,看了那么多资料稀里糊涂,不如楼上两位老师指导一二,感谢ing!

出0入0汤圆

 楼主| 发表于 2014-6-22 22:09:25 | 显示全部楼层
支持原创,支持laoshuhunya,^_^

出0入0汤圆

 楼主| 发表于 2014-6-22 22:22:33 | 显示全部楼层
本帖最后由 zpwkxg 于 2014-6-22 22:24 编辑

下图是AD2S1200的时序图,以及其描述:

按照laoshu的口诀,SPI在下降沿采样,上升沿放置数据,SPI应该工作在模式3对吗?还有个问题请教,在文字描述中的clocked out和shifted out怎么理解?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-6-22 22:27:06 | 显示全部楼层
zpwkxg 发表于 2014-6-22 22:07
这里真是高手林立,看了那么多资料稀里糊涂,不如楼上两位老师指导一二,感谢ing!  ...

兄弟客气了,互相交流学习才能更好的提升自己^_^

出0入0汤圆

发表于 2014-6-22 22:33:28 | 显示全部楼层
zpwkxg 发表于 2014-6-22 22:22
下图是AD2S1200的时序图,以及其描述:

按照laoshu的口诀,SPI在下降沿采样,上升沿放置数据,SPI应该工作 ...

只要是下降沿采样,就工作在模式1或2。这个图工作在模式2。

出0入0汤圆

发表于 2014-6-22 22:46:50 | 显示全部楼层
zpwkxg 发表于 2014-6-22 22:22
下图是AD2S1200的时序图,以及其描述:

按照laoshu的口诀,SPI在下降沿采样,上升沿放置数据,SPI应该工作 ...

根据SPI接口硬件设计规范,当器件工作于从机模式下的MODE0MODE2时,第一位要发送的数据由SS(即从机选择信号,也叫片选信号)有效沿驱动,不由SCLK时钟沿驱动。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-6-22 22:57:03 | 显示全部楼层
clocked out(action by MCU): sampled by the MCU at the falling edge of the SCLK, the SCLK is controlled by MCU

shifted out(action by chip): logic level outputed to SDO pin(by AD2S1200 internal control circuit) so it becomes available and can be read by MCU on the next falling edge of SCLK.

出0入0汤圆

 楼主| 发表于 2014-6-23 07:54:49 | 显示全部楼层
alias 发表于 2014-6-22 22:57
clocked out(action by MCU): sampled by the MCU at the falling edge of the SCLK, the SCLK is controll ...

明白了这两个动作, 谢谢alias

出0入0汤圆

 楼主| 发表于 2014-6-23 08:19:47 | 显示全部楼层
本帖最后由 zpwkxg 于 2014-6-23 08:26 编辑
laoshuhunya 发表于 2014-6-22 22:46
根据SPI接口硬件设计规范,当器件工作于从机模式下的MODE0和MODE2时,第一位要发送的数据由SS(即从机选 ...



laoshu:
1."根据SPI接口硬件设计规范,当器件工作于从机模式下的MODE0和MODE2时,第一位要发送的数据由SS的有效沿驱动,不由sclk驱动...."是否对应了AD2S1200时序描述中的“the MSB will be already available at the SO pin on the very first falling edge of the SCLK.....",这里的already说明在sclk下降沿之前,由于SS有效沿的驱动,已经有第一位数据出现在MISO线上?

2.我想找你说的“SPI接口硬件设计规范......."中的这个证据,我找到了Motorola的文档(27页SPI从模式CPHA=0),你看是否是文中的话:
他这里面说“对于有些器件.....”,是否说在MODE0和MODE2中,第一位要发送的数据不一定由SS驱动,也有可能是由SCLK驱动的?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-6-23 08:48:46 | 显示全部楼层
zpwkxg 发表于 2014-6-23 08:19
laoshu:
1."根据SPI接口硬件设计规范,当器件工作于从机模式下的MODE0和MODE2时,第一位要发送的数据由S ...

1、是这个意思。
2、对于SPI接口的内部硬件实现,大体上有这么几个要点:
  (1)对SPI主机模式,第一位要发送的数据在用户把数据写入SPIDR(SPI数据寄存器)时即会被驱动。
  (2)对SPI从机模式:在MODE0/2,第一位要发送的数据由SS有效沿驱动;在MODE1/3,要发送数据的所有位均由SCK有效沿驱动。
  
呵呵,老纳早年从事MCU构架设计,如果没记错的话,印象中SPI接口内部实现是这么回事的。

出0入0汤圆

 楼主| 发表于 2014-6-23 08:52:54 | 显示全部楼层
laoshuhunya,alias两位前辈,你们给了我做好AD2S1210驱动的信心!

出0入0汤圆

发表于 2014-6-23 09:30:09 | 显示全部楼层
zpwkxg 发表于 2014-6-23 08:52
laoshuhunya,alias两位前辈,你们给了我做好AD2S1210驱动的信心!

这些协议是给应用工程师看的,一般不会涉及太多的内部实现细节,只要给出完整的外部特性就可以了。
比如I2C接口协议,文档中只描述在SCK高电平期间SDA必须保持稳定,这是为何?主要有两个原因:(1)SCK为高时SDA的变化被定义成START或STOP信号;(2)对I2C接口而言,SDA的数据输入总是在SCK的上升沿进行采样。
我想,大部人都知道第一点,但第二点很少有人注意到。

出0入0汤圆

发表于 2014-6-23 10:04:58 | 显示全部楼层
两位的讲解真是精辟!

出0入0汤圆

 楼主| 发表于 2014-6-26 07:15:26 | 显示全部楼层
本帖最后由 zpwkxg 于 2014-6-26 22:58 编辑

按照以上两位老师的指导,我在开发板上操作SPI总线的25VF040已经成功了;等待AD2S1210板子回来后,做这个芯片的通信试验。这两天一直在看这个帖子,学习、领悟。

我这里还有一个疑问请教:按照AD2S1210的时序:下讲沿采样,上升沿放置传输数据,那么在1楼中的的附件图片说,SDI :“......,The data is shifted into the part on the falling edge of SCLK.......。”时序上是上升沿放置数据,而文字描述中是下降沿,这两个说法相互矛盾吗?谢谢
  

出0入0汤圆

发表于 2014-6-26 14:21:25 | 显示全部楼层
>> 按照AD2S1210的时序:下讲沿采样,上升沿放置传输数据

AD2S1210 在 SCLK(由MCU产生的时钟) 的下讲沿采样SDI脚电平,所以相对MCU只能在SCLK上升沿发生时改变SDI的电平。

AD2S1210 亦同步在 SCLK(由MCU产生的时钟) 的上升沿把内部寄存器的电平放置在SDO脚上,好待MCU能在SCLK下降沿发生时读取 SDO 的电平。

出0入0汤圆

发表于 2014-6-26 15:00:04 | 显示全部楼层
SPI 我们应把它看成数据交换,所以不能存在单一接收或发送。发出数据的同时会得到另一方交换的数据。

如果你只要发出数据而并不需要交换得来的数据,你只要读取后不作任何处理便可。

如果你不想发出数据而只需要从机的数据,你也得用些任意的数据,发给从机以作「交换」。

出0入0汤圆

发表于 2014-6-26 15:03:44 | 显示全部楼层
zpwkxg 发表于 2014-6-26 07:15
按照以上两位老师的指导,我在开发板上操作SPI总线的25VF040已经成功了;等待AD2S1210板子回来后,做这个芯 ...

没有矛盾,上升沿设置(输出、移位),下降沿采样(输入、锁存)。主从两方都一样。

出0入0汤圆

 楼主| 发表于 2014-6-26 23:06:05 | 显示全部楼层
这里的“......,The data is shifted into the part on the falling edge of SCLK.......。”的the part指的是谁?MCU? 谢谢两位还在一直帮忙!

出0入0汤圆

发表于 2014-6-27 04:16:00 | 显示全部楼层
这段描述出现在 SDI 的条款下当然是指芯片,即 AD2S1210 。

出0入0汤圆

 楼主| 发表于 2014-6-27 08:00:59 | 显示全部楼层
SPI是双向环形移动读写。
确认一下:这里的“......,The data is shifted into the part on the falling edge of SCLK.......。”指的就是Slave端的AD2S1210的数据采样(读)对吧?谢谢两位老师

出0入0汤圆

发表于 2014-6-27 08:28:56 | 显示全部楼层
zpwkxg 发表于 2014-6-27 08:00
SPI是双向环形移动读写。
确认一下:这里的“......,The data is shifted into the part on the falling e ...

是的。
主从双方在同一个SCK边沿同时移出(设置、输出、写)、移入(采样、锁存、读)数据,不是一边在发送另一边在接收。

出0入0汤圆

发表于 2014-6-27 08:34:59 | 显示全部楼层
本帖最后由 laoshuhunya 于 2014-6-27 08:37 编辑
zpwkxg 发表于 2014-6-27 08:00
SPI是双向环形移动读写。
确认一下:这里的“......,The data is shifted into the part on the falling e ...


另外,不必纠结于外在的表象。正如有些人把串行时钟称作SCLK,而另一些人叫做SCK一样。

修改原因:错别字。

出0入0汤圆

 楼主| 发表于 2014-6-28 10:42:42 | 显示全部楼层
理解了,谢谢两位师长。

出0入0汤圆

发表于 2015-1-19 07:41:23 | 显示全部楼层
正在操作SPI, 学习了.谢谢前辈.

出0入0汤圆

发表于 2015-3-24 14:25:23 | 显示全部楼层
谢谢在弄24l01
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 12:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表