ZHDA360A June 2015 – October 2026 INA209 , INA219 , INA220 , INA220-Q1 , INA223 , INA226 , INA226-Q1 , INA230 , INA231 , INA3221 , INA3221-Q1 , LM8323 , LM8325-1 , LM8327 , LM8328 , LM8330 , LM8333 , LM8335 , OPT3001 , OPT3001-Q1 , OPT3002 , OPT3004 , OPT3006 , OPT3007 , P82B715 , P82B96 , PCA6107 , PCA9306 , PCA9306-Q1 , PCA9515A , PCA9515B , PCA9518 , PCA9534 , PCA9534A , PCA9535 , PCA9536 , PCA9538 , PCA9539 , PCA9543A , PCA9544A , PCA9545A , PCA9546A , PCA9548A , PCA9554 , PCA9554A , PCA9555 , PCA9557 , PCF8574 , PCF8574A , PCF8575 , PCF8575C , TCA4311A , TCA5405 , TCA6408A , TCA6416A , TCA6418E , TCA6424A , TCA6507 , TCA8418 , TCA8418E , TCA8424 , TCA9406 , TCA9509 , TCA9517 , TCA9517A , TCA9534 , TCA9534A , TCA9535 , TCA9538 , TCA9539 , TCA9539-Q1 , TCA9543A , TCA9544A , TCA9545A , TCA9546A , TCA9548A , TCA9554 , TCA9554A , TCA9555 , TCA9617A , TCA9617B , TCA9800 , TCA9801 , TCA9802 , TCA9803
从目标器件读取与向其写入非常相似,但有一些额外的步骤。为了从目标器件读取数据,控制器必须首先向目标器件指示它希望从哪个寄存器读取。为此,控制器以与写操作类似的方式启动传输:发送地址并将 R/W 位置为 0(表示写操作),随后发送它希望读取的寄存器地址。目标器件应答该寄存器地址后,控制器再次发送一个 START 条件,随后发送目标器件地址并将 R/W 位置为 1(表示一次读取)。这一次,目标器件应答读取请求,控制器释放 SDA 总线,但继续向目标器件提供时钟。在这一事务过程中,控制器成为控制器/接收器,目标器件成为目标/发送器。
控制器继续发送时钟脉冲,但释放 SDA 线,以便目标器件可以发送数据。在每个数据字节结束时,控制器向目标器件发送一个 ACK,告知目标器件它已准备就绪,可接收更多数据。一旦控制器收到了预期的字节数,它就会发送一个 NACK,通知目标器件停止通信并释放总线。控制器随后会发出一个 STOP 条件。
图 3-2 显示了从目标寄存器读取单个字节的示例。