大家好。
在抗扰性测试期间、我们遇到了与总线耦合的意外泄漏(~100MHz)的 I2C 问题。
主要问题看起来像是一条消息中一个或多个时钟的损坏(取决于泄漏)。
下一个示波器显示从属方读取消息和保持线。 发生这种情况的原因 是缺少一个时钟并且从器件正在等待另一个时钟来设置 ACK。
因此、可通过添加额外时钟来解决这一问题、从而将 SDA 释放到正常状态。 
通常取决于哪个时钟被破坏、有时从器件可以检测到他的地址。 
时钟损坏发生在 MCU 端(不是从器件)、已通过 MCU 独立验证。
已用 MCU 引脚:PA6/PA7、HW I2C。
上升时间:~220nS、频率~400kHz。
因此、我们通过切换配置为开漏的 GPIO 来实现了 SW I2C、即使与之前的 GPIO 相比泄漏很大、它也能正常工作。 

快速查看 MCU 规格以及 SDA 和 SCL 之间的一些差异 : 
![]()
使用调试器、验证了 GPIO 寄存器、SCL 线路不处于开漏状态。
因此、 在 SPMA073 -应用报告中、对我们不应该这么做的原因进行了更详细的说明。 
----------------------------------------------------
您是否知道时钟为什么会像这样被破坏?
您能否澄清所述情况(I2C 控制器的 SCL OD 行为/ 开漏 GPIO 等 SCL)之间的电气差异(如果存在)?
谢谢!