I2C从主时钟拉伸恢复

时间:2018-05-15 14:33:39

标签: clock i2c stretching

在时钟延长中,如果从器件将时钟线保持为低电平,则主器件应等待结束线路上的任何ACK。由于从器件可以随时释放时钟信号,如果从器件释放时钟,我们如何解释SDA线值,例如,通过主时钟周期的3/4路?让我用一个例子来说明

  • 考虑具有100 kHz时钟速率(10 us周期)的I2C主设备。
  • 当主设备正在发送时,SCL每5 us就有一个上升沿。
  • 在ACK周期内,假设从器件在ACK周期的前7.5 us保持SCL线为低电平
  • 在7.5 us处假设从机在发送SDA为低电平时释放SCL。
  • 在这种情况下,SCL线将高达2.5 us,然后再次降低,然后继续其10 us期间。
  • 此外,假设从器件允许SDA在SCL的下一个上升沿之前变为高电平(即它将SDA保持为低电平且低于7.5 us)
  • SCL的哪个上升沿表示有效的SDA值?
    • 它是第一个上升沿(SCL仅在2.5 us时保持高位)?
    • 或者它是第二个上升沿,它是整个SCL时钟周期的一部分(5 us低,然后是5 us high)?

1 个答案:

答案 0 :(得分:0)

我认为您的前提一开始是错误的。 对于100KHz时钟,SCL的上升沿每10uS出现一次。 因此,没有第二个令人关注的上升缘。