ZHCZ041B December 2023 – July 2025 CC2340R5-Q1
SDA 和 SCL 漏极开路输出缓冲器问题
SDA 和 SCL 输出通过推挽三态输出缓冲器而非 I2C 要求的漏极开路输出缓冲器来实现。虽然推挽三态输出缓冲器可以用作漏极开路输出,但内部时序偏斜问题会导致输出在禁用前驱动逻辑高电平约 1ns 至 2ns 的持续时间。仅当 SCL 或 SDA 输出从驱动的低电平状态转换为高阻抗状态时,才会出现意外的高电平脉冲。
这一短暂的高电平脉冲会在 I2C 信号走线中注入能量,导致 I2C 信号由于多次传输线路反射而持续一段时间的振铃。这种振铃不会导致 SDA 信号出现问题,因为它仅在预计 SDA 会改变逻辑电平时发生,并且振铃在接收器件锁存的数据之前有时间衰减。振铃幅度可能足以在此振铃期间的前几纳秒内多次超过 SCL 输入缓冲器开关阈值,从而导致时钟毛刺。如果振铃幅度在前 50ns 内衰减,则不会造成问题,因为系统会要求 I2C 器件对 SCL 输入进行滤波以消除时钟毛刺。因此,设计 PCB 信号走线以将振铃的持续时间限制在 50ns 以内非常重要。减少振铃的一种可能方法是,在 SCL 和 SDA 端子附近插入串联端接电阻器,以衰减传输线路反射。
目标开始 ACK 周期时,此问题还可能导致 SDA 输出在意外高电平脉冲的持续时间内与目标 SDA 输出发生争用。发生这种情况是因为在发生意外的高电平脉冲之前,目标可能已经将 SDA 驱动为低电平。由于这段短暂的争用期而在 SDA 上产生的毛刺不会导致任何 I2C 协议问题,但峰值电流会对两个 I2C 器件施加不必要的应力,并可能导致电源噪声增加。因此,需要在相应的 SDA 端子附近放置一个串联端接电阻器,以限制短暂争用期间的电流。
当连接到支持时钟延展的 I2C 目标器件时,SCL 上也可能会出现类似的争用问题。发生这种情况是因为在发生意外的高电平脉冲之前,目标已将 SCL 驱动为低电平。由于这段短暂的争用期而在 SCL 上产生的毛刺不会导致任何 I2C 协议问题,因为 I2C 器件需要在其 SCL 输入端应用毛刺滤波器。但是,峰值电流会对两个 I2C 器件施加不必要的应力,并可能导致电源噪声增加。因此,需要在相应的 SCL 端子附近放置一个串联端接电阻器,以限制短暂争用期间的电流。
如果连接了另一个控制器,SCL 和 SDA 输出端的意外高电平脉冲可能会导致在时钟同步和仲裁期间发生争用。上面介绍的串联端接电阻器也可限制此用例中的争用电流,而不会产生任何 I2C 协议问题。
在 SCL 和 SDA 信号端插入串联端接电阻器,并将其放在 SCL 和 SDA 端子附近,与 SCL 和 SDA 上拉电阻器一起布置。
通过控制输出以使用最小驱动强度和降低的压摆率,也可以减少振铃。这些选项只能在支持高驱动输出的引脚上进行配置。标准驱动引脚没有配置选项。