I2C,SCL 线低时 SDA 线高,紧跟在地址 + R/W 字节之后

克莱门特

我想知道我在 I2C 测试期间看到的一种现象。

我观察到,当我在地址 0 上从主机写入从机时,在发送第一个字节(地址 + R/W 位)后,SDA 线在两个 SCL 滴答之间被置于高电平。它不会改变任何行为,但我想知道为什么会发生这种情况。

注意:在图像上,地址为 0,我正在写入 3 个字节 0x00。这就是为什么除了我的现象外,SDA 线上的一切都很低。

i2c:SDA 尖峰

有人有建议吗?

弯头

In I2C communication from the master to the slave, each transferred byte consists 8 data bits sent by the master and 1 acknowledge bit sent by the slave. So after bit 8, the master releases the SDA line so the slave can take control of it.

If there is a some delay between the master releasing SDA and the slave taking control, none of the two parties controls the line and it's pulled high by the mandatory pull-up resistors. That's what is visible on your oscilloscope.

This is perfectly fine as the SCL line is low. SDA is only sampled when SCL is high.

我只能推测为什么它只发生在第一个字节。从机可能需要一些时间来比较接收到的地址并确定它是否是寻址的从机并必须做出响应。对于后面的字节,这不再需要,因为从机预先知道它是活动 I2C 通信的一部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

I2C SCL线,STM32F4上的时钟问题

来自分类Dev

jQuery append()紧跟在元素之后,

来自分类Dev

指向c中变量的低字节地址

来自分类Dev

尝试打开/ dev / sda2时简短阅读

来自分类Dev

写入/ dev / sda和/ mnt / sda / tempfile时的性能差异

来自分类Dev

EXT4-fs (sda2):写入超级块时出现 I/0 错误

来自分类Dev

将sda2更改为sda1

来自分类Dev

是否可以删除sda1或sda2?

来自分类Dev

sda1与sda2有何不同?

来自分类Dev

将 sda2 更改为 sda1

来自分类Dev

损坏的 /dev/sda2

来自分类Dev

使用sda1 sda2 sda5了解分区表

来自分类Dev

jbd2 / sda2-8的高io使用率

来自分类Dev

将字符串转换为 HexString 时低半字节和高半字节的目的是什么

来自分类Dev

实体名称必须紧跟在实体参考AngularJs Validation中的“&”之后

来自分类Dev

仅当标题紧跟在具有特定类的 div 之后才更改样式

来自分类Dev

具有相同地址的i2c从设备

来自分类Dev

如何在python中保存i2c地址

来自分类Dev

valgrind 地址 0x421688c 是为具有整数数据的链表分配的大小为 4 的块之后的 0 个字节

来自分类Dev

延迟dev-sda2.device

来自分类Dev

C程序高4字节的指针地址异常

来自分类Dev

从DVD-RW擦除文件时出现问题

来自分类Dev

MSP430 I2C读取多字节通信问题

来自分类Dev

将分区号从sda1更改为sda2

来自分类Dev

创建具有确切大小的/ dev / sda1和/ dev / sda2

来自分类Dev

线高与填充

来自分类Dev

线高问题

来自分类Dev

CSS 线高动画

来自分类Dev

然后从图像字节数组中提取然后堆叠高字节和低字节