话不多说,直接上图

      在表笔测试18引脚时可以看见i2c的应答信号ACK没有接收到,且TWI BUS ERROR,也就是说此时表笔在测iic时出现了总线错误!!!

1. 为什么用示波器表笔一接就报错?

主要原因是I2C时序和信号完整性受到了影响

I2C总线特点
  • I2C是开漏(open-drain)结构,靠上拉电阻维持高电平。

  • SCL/SDA每根线上对阻抗和寄生电容非常敏感

示波器表笔的影响
  • 示波器探头有较大的寄生电容(一般15pF~30pF,甚至更高)

  • 当把表笔直接接到I2C的CLK线上时,会等效在CLK对地并了一个几十pF的电容,让上升沿/下降沿变慢。

  • 有时候还会引入干扰或接地不良,造成信号抖动。

通俗的说就是:

  • I2C信号靠上拉电阻“慢慢拉高”,但加了电容后,上升沿变得更“肉”,电压爬升得慢,信号变“圆”了。

  • 示波器探头相当于“又加了个电容”,让这个问题更明显。

  • I2C主控检测到电平变化速度太慢、信号不达标(没拉上去),会直接报“通信失败”、“无ACK”。

  • 所以表笔一测就报错,把表笔拿走又好了。

 

表现为:
  • I2C主控一旦发现时序异常/上升沿变慢/信号低于门限/干扰,就判定ACK失败或总线错误。

归根结底是信号完整性(寄生电容)导致主控误判时序

2.如何正确用示波器测量I2C信号?

 建议如下:

A. 尽量用“高阻抗、低电容”的探头/探头模式
  • 用1x档(低带宽)的探头而不是10x档(高带宽)。

  • 有条件可用无源探头+短接地弹簧(越短越好)。

B. 只在必要时短时间接触
  • 不要长时间夹在I2C线上,观察几下信号、拍照就撤掉表笔

  • 拍波形时,先停止I2C主控再测信号静态高低,然后抓I2C事务时快速点一下。

C. 接地要近且牢固
  •  示波器探头的地线一定要夹在I2C信号线旁边的GND上不要跨板接地

        (不要跨版接地,可能导致信号异常或者采集失败,这个踩坑了记录一下。)

  • 用“弹簧地”(spring ground)而不是长地线(避免地线环路引入干扰/电流)。

D. 如果频繁操作,考虑在I2C线上加“缓冲钳位/放大器”或“高阻抗buffer”
  • 实际项目调试如需长时间监控I2C,建议专用的I2C分析仪或者隔离buffer。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐