ZHCACH2 march   2023 PCA9306

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2处理 NACK 时的常规检查
    1. 2.1 NACK
    2. 2.2 查看原理图
    3. 2.3 仔细检查控制器和目标之间的 SDA 和 SCL
    4. 2.4 RESET 正确偏置
    5. 2.5 器件焊接正确
  5. 3示波器截图
    1. 3.1 为什么要使用示波器进行调试?
    2. 3.2 设置示波器
    3. 3.3 收到 NACK 时验证 I2C 地址
    4. 3.4 验证启动和停止条件
    5. 3.5 检查字节格式
    6. 3.6 上升时间是否符合 I2C 标准?
    7. 3.7 发送的命令字节是否有效?
  6. 4I2C 开关
    1. 4.1 TI I2C 开关的停止条件
  7. 5I2C 缓冲器
    1. 5.1 缓冲器的 VoL 与 ViLc
    2. 5.2 缓冲器的 VoL 超过 I2C 目标器件的 ViL
    3. 5.3 缓冲器的静态失调电压不能连接到其他静态失调电压
  8. 6检查清单
  9. 7结论

收到 NACK 时验证 I2C 地址

如果从设计尝试通信的器件收到 NACK,则表示出现错误,这类错误可能因为发送错误的地址而导致。

通过 I2C 与器件通信需要在启动条件启动后发出特定通信目标器件的地址。如果从设计尝试通信的器件收到 NACK,这些 NACK 可能是发送到器件的地址有误造成的。要验证是否发送了正确的地址,请使用示波器窗口来查看启动条件启动后发送到器件的各个位。在 SCL 线上使用时钟脉冲来标记单个帧的各个位(请记住,每个 ACK 或 NACK 位之间应该有 8 个时钟脉冲)。当向尝试通信的器件发送错误的目标地址时,会生成 NACK,因此验证控制器是否发送了正确的地址非常重要。

使用示波器确定发送的目标地址后,接下来请查看 I2C 器件的数据表以了解目标地址值。要使 I2C 通信成功,发送的目标地址必须与目标器件数据表中的地址相匹配。如果目标器件针对发送的每个 I2C 帧发回 NACK,这些 NACK 可能是因为发送的目标地址与目标器件的实际地址不匹配(始终在目标器件的数据表中规定)。

一些 I2C 器件也可能具有硬件可寻址的目标地址,允许用户更改目标地址。如果是这种情况,请检查这些硬件可寻址目标位,并确保这些位正确偏置为逻辑高电平或逻辑低电平值。如果这些硬件可寻址目标位保持悬空,则系统中的电气噪声可以轻松地更改目标地址。如果目标地址更改为不同于控制器发送的地址值,则目标会发回 NACK。