在时钟延长中,如果从器件将时钟线保持为低电平,则主器件应等待结束线路上的任何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)?