ZHDZ020I January 2017 – August 2026 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
IC2:SDA 和 SCL 漏极开路输出缓冲器问题
0、A、B、D
SDA 和 SCL 输出通过推挽三态输出缓冲器而非 I2C 要求的漏极开路输出缓冲器来实现。虽然推挽三态输出缓冲器可以用作漏极开路输出,但内部时序偏斜问题会导致输出在禁用前驱动逻辑高电平约 0ns 至 5ns 的持续时间。仅当 SCL 或 SDA 输出从驱动的低电平状态转换为高阻抗状态,且相应的 I2C 输出有充足的内部时序偏斜时,才会出现意外的高电平脉冲。
这一短暂的高电平脉冲会在 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 上拉电阻器也应放置在 SCL 和 SDA 终端附近。串联终端电阻器和上拉电阻器的放置方式应按 图 3-4 所示进行连接。
图 3-4 串联终端电阻器和上拉电阻器的放置方式