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总结

ADS1115 I2C 示例读取

ADS1115 具有 16 位 ADC,因此可以进行 16 位数据转换。控制器器件从转换寄存器读取以获取 ADC 转换数据。转换寄存器地址指针为 00h。转换数据以 16 位结果形式显示为二进制补码。正满量程输入可生成输出代码 7FFFh,负满量程输入可生成输出代码 8000h。

当 ADDR 引脚连接到 GND 时,器件响应地址 48h。图 4-5 显示了从 00h 地址指针处的转换数据寄存器读取的示例。

DAC80501 I2C 传输,用于从 ADS1115 读取图 4-5 I2C 传输,用于从 ADS1115 读取

I2C 写入从 START 条件开始。SDA 被设置为低电平,然后 SCL 被设置为低电平。然后,控制器写入 I2C 地址。同样,器件响应地址 100 1000(或 48h)。

控制器首先需要告诉器件要读取哪个寄存器。在此情况下,通信首先向器件发送 I2C 写入,以便设置从 ADS1115 的数据转换寄存器进行读取。此时,R/W 位被设置为低电平,表示通信从写入器件开始。

地址帧完成后,ADS1115 通过拉低地址帧最后一位的 SDA 来对地址进行 ACK。

指示控制器正在从 ADS1115 读取数据后,控制器会告知器件从哪个寄存器读取。第二个字节是数据转换寄存器的寄存器指针。在这里,将 00h 发送到 ADS1115。作为响应,ADS1115 将 SDA 设置为低电平以进行 ACK。最后,控制器发出 STOP 命令以释放总线。

现在控制器已通知器件访问数据转换寄存器,控制器随后发出从寄存器中读取的指令。控制器再次写入 I2C 地址。控制器已经指示要读取哪个寄存器,现在控制器向器件发送读取信息,以便可以读取 ADS1115 的数据转换寄存器。此时,R/W 位设置为高电平,表示读取。同样,地址帧完成后,ADS1115 会对地址进行 ACK。

接下来的两个数据字节用于读取寄存器。第一个字节是转换数据的最高有效字节,然后第二个字节作为对最低有效字节转换数据的读取。每个字节的控制器随后都有一个来自控制器的 ACK。最后,控制器发送 STOP 以结束 I2C 通信。

与上一个示例一样,图 4-5 是一个方便的图,显示了与器件的 I2C 通信。如果通信存在问题,可以使用 SDA 和 SCL 的示波器图与该示例写入进行比较。