EDA365电子工程师网

标题: I2C的Data是在时钟上升沿采样还是下降沿采样? [打印本页]

作者: chenlinfeng88    时间: 2016-8-24 17:03
标题: I2C的Data是在时钟上升沿采样还是下降沿采样?
I2C在SCL高电平期间,SDA电平不能发生变化,在SCL低电平期间,SDA电平可以发生变化。
9 \; t4 v& u7 H+ x$ N9 d! C- r那么问题来了,I2C的Data是在SCL的上升沿采样锁存传输还是在SCL的高电平期间传输?
( X* k$ u! t4 Z' I& a% C从I2C的建立时间和保持时间来看,应该是上升沿采样锁存。
2 h/ O6 O7 q/ D7 n, A4 e, i各位大侠请给点答案啊. [# @9 m, e, ]5 c1 D, v; q

1.jpg (75.08 KB, 下载次数: 2)

I2C时序图

I2C时序图

作者: kobeismygod    时间: 2016-8-24 18:13
你这不是自问自答吗。
作者: chenlinfeng88    时间: 2016-8-24 18:28
kobeismygod 发表于 2016-8-24 18:13! M! B3 V2 s0 ~7 c" a) I
你这不是自问自答吗。

5 v) a# i3 U3 U( Y我不确定啊,所以征求各位大侠答案
. I; V* K' T$ I" l# V
作者: 故城往事    时间: 2016-8-24 22:39
I2C通常应该在时钟的高电平而不是上升沿或者下降沿读取数据,IC抽样判决的时候只要求在时钟上升沿阶段SDA要能够稳定的保持一段时间。
作者: chenlinfeng88    时间: 2016-8-25 12:05
故城往事 发表于 2016-8-24 22:39+ }" I8 x- u) o% i
I2C通常应该在时钟的高电平而不是上升沿或者下降沿读取数据,IC抽样判决的时候只要求在时钟上升沿阶段SDA要 ...
& U1 N: c' E6 c7 K$ _( ]5 B: P
那请问数据的建立时间和保持时间是怎么回事?为什么I2C的SDA建立时间是在SCL的上升沿计算?7 _' h7 U; M5 r' r9 _

作者: chenlinfeng88    时间: 2016-8-25 12:06
故城往事 发表于 2016-8-24 22:39
9 ^6 c5 w% S2 q- w* F  A$ ^8 }I2C通常应该在时钟的高电平而不是上升沿或者下降沿读取数据,IC抽样判决的时候只要求在时钟上升沿阶段SDA要 ...

7 p' Y5 Z7 R) |8 CI2C要求SDA在SCL为高电平不能跳变,是因为SCL为高电平时,会触发I2C的起始条件和停止条件。- Y: b7 V( f0 K- h) J* J  ^2 S5 W  w

作者: zhuzhenqiu    时间: 2016-8-29 09:07
数据在建立时间后 保持时间前采样
作者: yjj198709    时间: 2016-9-9 16:41
chenlinfeng88 发表于 2016-8-25 12:05# c7 F5 X& M0 P3 [% w
那请问数据的建立时间和保持时间是怎么回事?为什么I2C的SDA建立时间是在SCL的上升沿计算?

* J  N. q- S5 ?3 R建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。保持时间是指触发器的时钟信号上升沿到来以后,数据也必须保持一段时间,数据保持不变以便能够稳定读取。# ^% B; T/ j( G* I
采样是在SCL高电平时采样,所以在数据转换之后到上升沿(10%)这段时间就为建立时间。% z. n9 y; \8 d- C, C0 v
但是I2C的保持时间好像和以往的定义不同,是在SCL下降沿之后到数据变换之前的时间,这点不是很好理解。
5 t8 J8 l3 {; q" j, m: ~2 U/ M+ [  E$ `* S0 F

: u1 m$ j1 B7 Y8 }( @2 z+ n: f
# p7 t# s5 Z7 g2 M# }1 ^; s9 T$ f
" T7 V' k( u  u8 U; ]; L) I  v. _6 [+ R6 z- J( d: ?

作者: xhy_hard    时间: 2016-9-9 23:18
SCL高电平之后采样,而不是边沿采样
作者: chenlinfeng88    时间: 2016-9-10 22:37
xhy_hard 发表于 2016-9-9 23:18
0 Y" W" a5 O. Q1 |6 xSCL高电平之后采样,而不是边沿采样

9 f7 q4 U! G0 Q0 }有文献可以考证吗?
+ @# r" H. i& n8 O4 z  z; P
作者: cffdfg45    时间: 2016-10-25 13:34
SCL的上升沿采样锁存
作者: xyh    时间: 2018-3-9 21:11
本帖最后由 xyh 于 2018-3-9 21:12 编辑
* H1 r$ V- t9 U9 C
: f7 q0 B8 X& K7 D8 D7 R无意中翻到这个帖子,没有人回答清楚,其实I2C的采样也是边沿采样,只不过是上下沿都采一次,这样做的目的是为了检测起始和终止信号,I2C规定:SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。  
8 e- [( F* R2 N3 G因此,必须保证在每个时钟周期内对数据线SDA采样两次。对照楼主贴上去那张图,大家应该都能够理解。

5.jpg (21.96 KB, 下载次数: 0)

5.jpg





欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2