0

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

  • 考虑一个具有 100 kHz 时钟速率(10 us 周期)的 I2C 主机。
  • 当主机在发送时,SCL 上每 5us 有一个上升沿。
  • 在 ACK 周期内,假设从机在 ACK 周期的前 7.5us 内将 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 高)?
4

1 回答 1

0

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

于 2018-06-22T18:07:17.967 回答