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

两线制通信

I2C 系统为总线上的所有器件提供两条共享通信线路。这两条线路用于双向半双工通信。I2C 支持多个控制器和多个目标器件。这两条线路都需要上拉电阻器。图 2-1 展示了 I2C 物理层的典型实现。

DAC80501 典型的 I2C 实现图 2-1 典型的 I2C 实现

I2C 采用通用协议的原因之一是因为它只有两条通信线路。第一条线是 SCL,它是主要由控制器器件控制的串行时钟。SCL 用于同步目标器件的时钟数据输入或输出。第二条线路是 SDA,它是一条串行数据线。SDA 用于将数据传输到目标器件或从目标器件传输数据。例如,控制器器件可以将配置数据和输出代码发送到目标数模转换器 (DAC),或者目标模数转换器 (ADC) 可以将转换数据发送回控制器器件。

I2C 是半双工通信,其中一次只有单个控制器或目标器件在总线上发送数据。相比之下,串行外设接口 (SPI) 是一种全双工协议,在这种协议中,可以同时将数据发送和接收回来。SPI 需要四条通信线路,使用两条数据线路与目标器件之间发送数据。除了串行时钟之外,独特的 SPI 片选线路选择器件进行通信,有两条数据线路用于目标器件的输入和输出。

I2C 控制器器件启动和停止通信,从而消除潜在的总线争用问题。与目标器件的通信通过总线上的唯一地址发送。这允许 I2C 总线上有多个控制器和多个目标器件。

SDA 和 SCL 线路与总线上的所有器件都有开漏连接。这需要将一个上拉电阻器连接至公共电压电源。