ZHDA297 November   2022 ADC081C021 , ADC081C027 , ADC101C021 , ADC101C027 , ADC121C021 , ADC121C021-Q1 , ADC121C027 , ADC128D818 , ADS1000 , ADS1000-Q1 , ADS1013 , ADS1014 , ADS1015 , ADS1015-Q1 , ADS1100 , ADS1110 , ADS1112 , ADS1113 , ADS1114 , ADS1115 , ADS1115-Q1 , ADS7823 , ADS7827 , ADS7828 , ADS7828-Q1 , ADS7830 , ADS7924 , AFE539A4 , DAC081C081 , DAC081C085 , DAC101C081 , DAC101C081Q , DAC101C085 , DAC121C081 , DAC121C085 , DAC43204 , DAC43401 , DAC43401-Q1 , DAC43608 , DAC43701 , DAC43701-Q1 , DAC53002 , DAC53004 , DAC53202 , DAC53204 , DAC53204W , DAC53401 , DAC53401-Q1 , DAC53608 , DAC53701 , DAC53701-Q1 , DAC5571 , DAC5573 , DAC5574 , DAC5578 , DAC60501 , DAC60502 , DAC63002 , DAC63004 , DAC63202 , DAC63204 , DAC6571 , DAC6573 , DAC6574 , DAC6578 , DAC70501 , DAC70502 , DAC7571 , DAC7573 , DAC7574 , DAC7578 , DAC7678 , DAC80501 , DAC80502 , DAC8571 , DAC8574

 

  1.   1
  2.   摘要
  3.   商标
  4. 1I2C 概述
    1. 1.1 发展历程
    2. 1.2 I2C 速度模式
  5. 2I2C 物理层
    1. 2.1 两线制通信
    2. 2.2 开漏连接
    3. 2.3 无损总线争用
  6. 3I2C 协议
    1. 3.1 I2C START 和 STOP
    2. 3.2 逻辑 1 和 0
    3. 3.3 I2C 通信帧
  7. 4I2C 示例
    1. 4.1 DAC80501 示例
      1. 4.1.1 DAC80501 DAC 数据寄存器
      2. 4.1.2 DAC80501 I2C 示例写入
    2. 4.2 ADS1115 示例
      1. 4.2.1 ADS1115 配置寄存器
      2. 4.2.2 ADS1115 I2C 示例读取
      3. 4.2.3 ADS1115 转换结果
  8. 5保留地址
    1. 5.1 常规调用
    2. 5.2 START 字节
    3. 5.3 C-Bus 地址、不同的总线格式、未来用途
    4. 5.4 HS 模式控制器代码
    5. 5.5 器件 ID
    6. 5.6 10 位目标寻址
      1. 5.6.1 10 位目标寻址写入
      2. 5.6.2 10 位目标寻址读取
  9. 6高级主题
    1. 6.1 时钟同步和仲裁
    2. 6.2 时钟延展
    3. 6.3 电气规格
    4. 6.4 电压电平转换
      1. 6.4.1 示例 1
      2. 6.4.2 示例 2
      3. 6.4.3 示例 3
      4. 6.4.4 示例 4
    5. 6.5 确定上拉电阻器大小
      1. 6.5.1 最小上拉电阻大小
      2. 6.5.2 确定最大上拉电阻器大小
  10. 7与 I2C 类似的协议
  11. 8总结

器件 ID

地址 7C 至 7F 均为器件 ID 保留。控制器首先发送保留的器件 ID 地址,后跟写入位。然后,控制器发送它想要识别的器件地址。然后,控制器发送一个重复的 START 条件,后跟保留的器件 ID 地址,后跟一个读取位。

器件 ID 由目标器件通过三个 I2C 数据帧中的字节发送。此数据从 12 位制造商 ID 开始,接着是 9 位器件标识,最后是 3 位芯片版本。图 5-4 展示了到器件 ID 的数据传输。

DAC80501 I2C 器件 ID 数据位图 5-4 I2C 器件 ID 数据位

控制器先发送一个 START 条件。第一个字节与器件 ID 的保留地址一起发送,后跟一个 0 用于写入。此时,可以有多个目标对器件 ID 做出响应,因此多个器件可以对该地址进行 ACK。

然后,控制器发送目标器件的地址。该目标地址字节的最后一位是“无关”,后跟一个 ACK。此时,只有一个器件对该地址进行 ACK。

然后,控制器发送一个重复 START 条件。之后,控制器发送保留的器件 ID I2C 总线地址,后跟读取位。目标器件对该保留地址进行 ACK。请注意,第三个字节的开头必须是重复的 START。STOP 后跟 START 条件,或 STOP 后跟重复 START 条件,然后访问不同的目标器件,都会使目标器件状态机复位,因此无法执行器件 ID 读取。

然后,目标器件发送三个字节作为器件 ID。图 5-5 展示了有关如何从支持 I2C 器件 ID 的器件读取器件 ID 的详细图。

DAC80501 读取 I2C 器件 ID图 5-5 读取 I2C 器件 ID

控制器会对最后一个字节进行 NACK,并以 STOP 结束器件 ID 读取。通过发送 NACK,可以随时停止读取器件 ID。如果控制器在第三个字节之后继续对这些字节进行 ACK,则目标会回滚到第一个字节并持续发送器件 ID 序列,直到检测到 NACK。