请教一个技术问题
master端发出sclk和sdata,slave端没有时钟,依靠sclk工作
图上开始sclk=0,sdata有一个时钟宽度的脉冲,表示传输开始
请问slave端如何检测这个开始信号,谢谢
让sdata作为时钟信号驱动触发器
btw,slave端为啥不搞个本地时钟?
拿sclk的负沿所sdata就好了,为什么一定要用sdata那个preamble的pulse?
这个是协议规定的起始信号,没有这个信号,后面的数据都是无效的
设计一个状态机呀~,
用SDATA 与 SCLK 的条件触发判断进入
接受数据状态
最后拿SCLK Negedge 采样数据
之前没有时钟
如何才能确认sdata和sclk符合协议的要求?
状态机的触发以
CLK 为零 ,SDATA Posedge为 触发条件,看看
这种东西需要先写,然后慢慢修改,完善
其实,你可以这么看时钟,
在没有时钟的情况下, SDATA的上升沿是可以用来做时钟沿的不是么
反正你的状态机现在处于一种IDLE的状态
用sdata作时钟来采sclk的方法我也想过,就是怕弄出亚稳态来
亚稳态是怎么产生的
Reg是一对反相器加时钟构成的
里面需要满足一定的充电时间,否则数据不定态
仔细考虑考虑这个问题
sdata和sclk都是master端产生,只能保证sdata相对于sclk的时序,没法保证sclk相对于sdata的时序啊
万一sdata的沿和sclk的下降沿太近,岂不是会有亚稳态的问题?
如果master端能保证不出现这种情况倒是可以考虑
我感觉遇到这样的问题,你先不要考虑太多
先把功能实现,然后再RTL的基础上修正所谓的亚稳态
还有,既然搞这么个协议标准,速度肯定比较慢,50M一下,或者更低
这么低的速率,亚稳态再想法子出来
我觉得你的担心是多余的,看信号名和时序图就能猜出来这是类似I2C(或者就是I2C)的协议,而I2C协议中tSTA时间最少有0.6us
这个是MIPI RFFE的spec吧,slave端内部应该需要一个高速clock来检测SSC才行吧
是MIPI的,必须有个高速clock吗?似乎不太省电
我不明白的是,如果slave没clock,协议上说的一个T的高电平preamble是怎么定义的?
我也不明白,但是对这种协议来说,slave有自己的clock也不太合理
这种接口一般都是低速的,slave端应该有个高速本地时钟,用这个时钟采