在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1856|回复: 2

[原创] 源同步接口设计2|slave篇

[复制链接]
发表于 2020-4-12 00:20:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x


​1
slave的同步设计

SPI NAND FLASH就是典型的同源接口中的slave。时钟从接口进来,就好比时钟从晶振进来一样。设计时,只需要像个收了钱的乙方,协议叫你躺,你就躺;叫你跪,你就跪。打拍,锁存,一系列的同步操作猛如虎。图2.1代码就是使用移位寄存器对数据进行锁存,其中i_cpm_spi_sclk为master发送过来的时钟,i_padctrl_spi_d0为master发送过来的数据。

640?wx_fmt=jpeg.jpg
图2.1

然而,使用Master发送过来的时钟做同步设计,也是有局限的。如图2.2,所有的时钟都用在传输命令和数据上。如果你想用CS#去做复位相关寄存器,只能做异步复位,但没有多余的时钟给你去做同步释放。。。

640?wx_fmt=png.jpg
图2.2

为了解决复位的问题,协议上可能会将图2.3中的tSHCH和tCHSL设的大点,以保证复位的recovery和removal time能够达到满足。

640?wx_fmt=png.jpg
图2.3



2
slave的异步设计



为了提高兼容性,有些人也会放弃同步设计的思路,去采用异步设计——使用一个更高频的时钟对数据和接口的时钟进行采样。这时,接口时钟就好比多bit跨时钟域处理中的load信号了。先用采样时钟对接口时钟同步,然后再去对接口数据进行采样。多bit跨时钟域处理的方式如图2.4所示。
640?wx_fmt=png.jpg
图2.4

最后上两段代码,如图2.5图2.6所示,先用更高的时钟i_cpm_spi_sclk对master发送过来的时钟i_padctrl_spi_clk_in进行同步,然后再用同步后的上升下降沿去采样数据。看不懂也没关系,有个概念就好。。。。
640?wx_fmt=png.jpg
图2.5

640?wx_fmt=png.jpg
图2.6


3
STA需要关注的问题

若采用的是同步设计,则按照图2.3中的input timing的规定来设置input delay,output delay也是如此;如采用异步设计,STA中尽量将bus做齐,同时将load与数据bus做齐,这样能够更好的提高兼容性。

以上就是今天要分享的内容,谢谢!


    640.jpg

640.jpg 640?wx_fmt=png.jpg
关注我,关注我
640.jpg

640.jpg



发表于 2020-4-12 08:49:22 | 显示全部楼层
谢谢 楼主!
 楼主| 发表于 2020-4-12 19:04:02 | 显示全部楼层


谢谢关注
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-5 08:05 , Processed in 0.021593 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表