硬汉嵌入式论坛

 找回密码
 立即注册
搜索
查看: 62|回复: 2
收起左侧

[功能实战] I2C主从通信出现尖峰窄脉冲的问题原因分析

[复制链接]

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124591
QQ
发表于 昨天 14:51 | 显示全部楼层 |阅读模式
【问题现象】

测试I2C主从通信,出现了一个下面这种的

123.png

【原因分析】

1、I2C 波形上那个窄脉冲,不是干扰,是 ACK “换手”

345.png

调 I2C 的时候,很多人会碰到这样一个现象:示波器上 SDA 在某些字节后面会突然冒出一个极窄的脉冲,窄到只有零点几微秒,看起来像探头没接好、或者总线串了干扰。但它每次都出现在固定位置,而且非常规律。

不是干扰。这是 I2C 的 ACK 位在"换手"。I2C 的数据线 SDA 是开漏的,谁都可以拉低,谁都可以放开。一次传输里,SDA 的驱动权要交接:

传输数据位的时候,主机在驱动 SDA;到了第 9 个时钟(ACK 位),要轮到从机来回一个应答。

交接点就在第 8 个 SCL 的下降沿。这一下,主机停止驱动,把 SDA 放开(变成高阻);从机检测到这个沿,再经过自己内部的逻辑延迟,才把 SDA 拉低。

问题是:主机已经放手了,从机还没上手。这段时间里 SDA 是悬空的,只能靠上拉电阻 Rp 把它拉高。

2、为什么只有某些字节才有

因为空窗里 SDA 会被拉高,所以能不能看到脉冲,取决于第 8 位(D0)当时是什么电平:

所以只有 D0=0 的字节才会看到它。这也解释了为什么"只有 0x22、0x44 这类数据才有"——它们的 LSB 都是 0。

34.png

35.png

36.png
回复

使用道具 举报

1

主题

73

回帖

76

积分

初级会员

Link

积分
76
发表于 昨天 19:00 | 显示全部楼层
这个帖子是ai写的吗
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124591
QQ
 楼主| 发表于 昨天 20:50 | 显示全部楼层
YFS 发表于 2026-11-14 19:00
这个帖子是ai写的吗

这个不是,论坛帖子我没有给AI权限。

这种【问题现象】,【原因分析】,然后1,2,3这种风格是我自己帖子风格。这个问题我锁定原因后,做好帖子内容框架,然后让AI帮我润色拓展即可。然后我review修改一版。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-11-15 08:09 , Processed in 1.034805 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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