ZHCSNZ0B November 2022 – November 2023 TCAL6408
PRODUCTION DATA
双向 I2C 总线由串行时钟 (SCL) 线和串行数据 (SDA) 线组成。当连接到器件的输出级时,两条线都必须通过上拉电阻连接到正电源。只有当总线处于不忙状态时,才能启动数据传输。
当 SCL 输入为高电平时,控制器发送启动条件(SDA 输入/输出上由高电平到低电平转换)启动与该器件的 I2C 通信(请参阅图 7-4)。在发送启动条件之后,会发送器件地址字节,首先发送最高有效位 (MSB),包括数据方向位 (R/ W)。
接收到有效地址字节后,该器件以确认 (ACK) 响应,在 ACK 相关时钟脉冲的高电平期间,SDA 输入/输出为低电平。响应器器件的地址输入不得在启动条件和停止条件之间更改。
在 I2C 总线上,在每个时钟脉冲期间仅传输一个数据位。在时钟周期的高脉冲期间,SDA 线上的数据必须保持稳定,因为此时数据线上的变化会被解释为控制命令(开始或停止)(请参阅图 7-5)。
控制器会发送停止条件,即当 SCL 输入为高电平时,SDA 输入/输出由低电平到高电平转换(请参阅图 7-4)。
在开始和停止条件之间,可以将任意数量的数据字节从发送器传输到接收器。每个 8 位字节后跟一个 ACK 位。发送器必须先释放 SDA 线,接收器才能发送 ACK 位。做出确认的器件必须在 ACK 时钟脉冲期间下拉 SDA 线路,这样,在 ACK 相关时钟周期的高脉冲期间,SDA 线路稳定为低电平(请参阅图 7-6)。当响应器接收器被寻址时,它必须在接收到每个字节后生成一个 ACK。类似地,控制器必须在它从响应器发送器接收到每个字节之后生成一个 ACK。必须满足设置和保持时间才能正常运行。
控制器接收器通过在最后一个字节已经从响应器计时输出之后不生成确认 (NACK) 来向响应器发送器发送数据结束信号。这是由控制器接收器通过将 SDA 线保持为高电平来完成的。在这种情况下,发送器必须释放数据线,才能使控制器生成停止条件。
字节 | 位 | |||||||
---|---|---|---|---|---|---|---|---|
7 (MSB) | 6 | 5 | 4 | 3 | 2 | 1 | 0 (LSB) | |
器件 I2C 地址 | 低电平 | H | L | L | L | 低电平 | ADDR | R/ W |
I/O 数据总线 | P7 | P6 | P5 | P4 | P3 | P2 | P1 | P0 |