ZHCSZ90 November 2025 LM51251A-Q1
PRODUCTION DATA
CFG 引脚用于设置器件地址(8 个地址)。
I2C 总线是控制器与一系列接收器器件之间的通信链路。该链路是使用一条双线总线建立的,这条总线包含串行时钟信号 (SCL) 和串行数据信号 (SDA)。在串行数据线路用于控制器与接收器终端之间双向数据通信的所有情况下,串行时钟均来源于控制器。每个器件都有一个开漏输出可用于在串行数据线路 (SDA) 上传输数据。为了在数据传输期间将漏极输出拉至高电平,必须在串行数据线路上放置一个外部上拉电阻器。该器件上配有一个接收器 I2C 接口,这个接口支持以标准模式、快速模式和快速+ 模式运行,数据速率分别高达 100kbit/s、400kbit/s 和 1000kbit/s,并可实现与 I2C 标准 3.0 兼容的自动递增寻址。如下图所示,数据传输由一个来自控制器的起始位启动。在 SCL 信号的高电平期间,当 SDA 线路从高电平转换为低电平时,会识别到启动条件。接收到起始位后,该器件将在 SDA 输入端接收串行数据,并检查是否存在有效地址和控制信息。如果为器件设置了接收器地址位,则器件会发出确认脉冲并准备接收寄存器地址和数据。在接收到停止条件或接收到发送给器件的数据字时,数据传输即完成。停止条件是指在 SCL 信号的高电平期间,SDA 输入从低电平转换到高电平。SDA 线路的所有其他转换必须在 SCL 信号的低电平期间完成。在接收到有效地址、子地址和数据字后,会发出确认。I2C 接口通过寄存器地址实现自动定序,以便在一次给定的 I2C 传输中可以发送多个数据字。
图 6-30 I2C 启动/停止/确认协议
图 6-31 I2C 数据传输时序
图 6-32 最长上升/下降时间的 I2C 数据传输时序不支持时钟延展。如果器件在繁忙期间被寻址且无法处理接收到的数据,则其不会确认相关事务。如果控制器在器件未完全启动时,启动 I2C 事务,将无法确认该器件。
该器件支持四种不同的读取/写入操作:
图 6-33 显示了对定义寄存器地址进行单次读取的格式。首先,控制器发出一个启动条件,后跟一个 7 位 I2C 地址。接下来,控制器写入 0 以表示其会执行写操作。接收到接收器的确认后,控制器会经由总线发送 8 位寄存器地址。在第二次确认之后,器件会将内部 I2C 寄存器编号设置为定义的值。然后,控制器发出重复启动条件,并发出 7 位 I2C 地址后跟 1 以表示其执行读取操作。在接收到第三次确认时,控制器将总线释放给器件。然后,器件在总线上返回寄存器的 8 位数据值。控制器进行否定确认 (nACK) 并发出停止条件。该操作结束寄存器读取。
顺序读取操作是单个读取协议的扩展,如图 6-34 所示。控制器确认收到一个数据字节,器件会自动递增寄存器地址并返回下一个寄存器的数据。停止数据传输的方法是控制器不确认最后一个数据字节并发送停止条件。
图 6-35 显示了对定义的寄存器地址进行单次写入的格式。首先,控制器发出一个启动条件,后跟一个 7 位 I2C 地址。接下来,控制器写入 0 以表示其要执行写操作。接收到接收器的确认后,控制器会经由总线发送 8 位寄存器地址。在第二次确认之后,器件将 I2C 寄存器地址设置为定义的值,控制器对其写入 8 位数据值。收到第三次确认后,器件会将 I2C 寄存器地址自动递增 1,而控制器会发出停止条件。该操作结束寄存器写入。
顺序写入操作是单个写入协议的扩展,如 图 6-36 所示。如果控制器在器件发出 ACK 后没有发送停止条件,则器件会自动将寄存器地址递增 1,并且控制器可以写入下一个寄存器。