TMP139 是一款兼容 I2C 和 I3C 接口的器件。图 6-1 至图 6-3 说明了总线支持的各种总线条件。下面列出了这些总线条件的定义:
- 总线空闲:在产生停止条件后,SDA 和 SCL 线路都保持高电平。
- 启动 (S) 条件:当 SCL 为高电平时,SDA 线路从高电平到低电平的状态变化定义了一个启动条件。启动条件之前有一个总线空闲条件。
- 停止 (P) 条件:当 SCL 为高电平时,SDA 线路从低电平到高电平的状态变化定义了一个停止条件。
- 重复启动 (SR) 条件:当 SCL 为高电平且之前有数据传输时,SDA 线路从高电平到低电平的状态转换定义了一个重复启动条件。
- 数据传输:在启动条件和停止条件之间传输的数据字节数量由主机或器件决定。
- 确认:每个接收器件在被寻址时都必须在器件地址和主机到器件写入传输期间生成确认 (ACK) 位。做出确认的器件必须在确认时钟脉冲期间下拉 SDA 线路,这样一来,在确认时钟脉冲的高电平期间,SDA 线路为稳定低电平。在主机接收数据时,通过在目标器件发送的最后一个字节上生成一个否定确认 (NAK),主机可发出数据传输终止信号。该行为适用于 I2C 运行模式。
在 I3C 运行模式期间。每个接收器件只应确认其器件地址。此外,主机应在成功进行 IBI 地址仲裁时确认器件地址。
- T 位:T 位仅适用于 I3C 运行模式或主机在 I2C 运行模式期间发送通用命令代码 (CCC) 时适用。T 位包含主机对目标器件进行写入时的奇偶校验信息。在读取期间,如果 T 位在第 9 个时钟的上升沿被采样为 1,则该位表示器件继续读取。如果主机需要终止读取,则主机可以激活上拉电阻器,同时器件将线路驱动为高电平,如图 6-2 所示。当器件停止驱动线路并将其输出置于三态时,上拉电阻器会在主机要求控制总线以生成用于结束读取的重复启动和停止条件之前暂时将线路保持为高电平。如果主机可以接受来自器件的更多数据,则主机不得驱动线路。器件在第 9 个时钟的下降沿对 SDA 进行采样,如果 T 位被采样为 1,则器件针对下一个字节恢复驱动 SDA。在读取期间,如果 T 位在第 9 个时钟的上升沿被采样为 0,则该位用于指示器件读取的终止,如图 6-3 所示。主机还应将 SDA 驱动为低电平,这样当器件停止驱动线路并使其输出处于三态时,主机可以控制总线以生成停止条件,从而结束读取。