ZHCSX80 October 2024 TPS25763-Q1
PRODUCTION DATA
I2C1 和 I2C2 端口支持标准模式、快速模式和快速+ 模式的 I2C 接口。双向 I2C 总线由串行时钟 (SCL) 线和串行数据 (SDA) 线组成。这两种线都必须通过上拉电阻器连接至电源。只有当总线处于不忙状态时,才能启动数据传输。
当 SCL 输入为高电平时,控制器将发送启动条件(SDA 输入/输出端由高电平到低电平转换)以启动 I2C 通信。在发送启动条件之后,会发送器件地址字节,首先发送最高有效位 (MSB),包括数据方向位 (R/W)。
接收到有效地址字节后,该器件以确认 (ACK) 响应,在 ACK 相关时钟脉冲的高电平期间,SDA 输入/输出为低电平。在 I2C 总线上,在每个时钟脉冲期间仅传输一个数据位。在时钟周期的高脉冲期间,SDA 线上的数据必须保持稳定,因为此时数据线上的变化会被解释为控制命令(启动或停止)。控制器会发送停止条件,即当 SCL 输入为高电平时,SDA 输入/输出由低电平到高电平转换。
在开始和停止条件之间,可以将任意数量的数据字节从发送器传输到接收器。每个八位字节后跟一个 ACK 位。发送器必须先释放 SDA 线,接收器才能发送 ACK 位。做出应答的器件必须在 ACK 时钟脉冲期间下拉 SDA 线路,这样,在 ACK 相关时钟周期的高脉冲期间,SDA 线路稳定为低电平。当目标接收器被寻址时,它必须在接收到每个字节后生成一个 ACK。类似地,控制器必须在从目标发送器接收到每个字节之后生成一个 ACK。必须满足设置和保持时间以确保正常运行。
控制器接收器通过在目标发送器在时钟沿输出最后一个字节后不进行确认 (NACK),来向目标发送器发送数据结束信号。将 SDA 线保持为高电平的控制器接收器会执行此操作。在这种情况下,目标发送器必须释放数据线,才能使控制器生成停止条件。
图 8-36 显示了传输的启动和停止条件。图 8-37 显示了用于传输一个位的 SDA 和 SCL 信号。图 8-38 显示了在最后一个时钟脉冲具有 ACK 或 NACK 的数据传输序列。