This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADS1115:ADS1115 连接到 VDD 和 GND 时读数不正确

Guru**** 2928980 points

Other Parts Discussed in Thread: ADS1115

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1650665/ads1115-incorrect-readings-on-ads1115-connected-to-vdd-and-gnd

器件型号: ADS1115

大家好、我正在使用四个 ADS1115 ADC、它们使用 Arduino 和 I2C 通信连接到 ESP32 DevKit V1。 我已按如下方式配置每个 ADS1115 的 ADDR 引脚、以便根据数据表获取 I2C 地址:

  • ADDR 到 GND→地址 0x48
  • ADDR 到 VDD→地址 0x49
  • ADDR 到 SDA→地址 0x4A
  • ADDR 到 SCL→地址 0x4B

所有四个芯片的连接方式相同、具有相同的寄存器配置和相同的代码。 唯一的区别是在脚本中为每个地址指定的 I2C 地址 (ADDR)。

连接到 SCL (0x4B) 和 SDA (0x4A) 的 ADS1115 可正常工作并读取精确的值。 但是、连接到 VDD (0x49) 和 GND (0x48) 的 ADS1115 显示的读数不正确:当读数应为 0V 时、读数约为–0.7V、而当读数为 5V 时、读数约为 2V。

我已确认与所有四个地址成功进行了 I2C 通信 (ping)、并验证了寄存器是否根据配置正确读取。 该代码适用于所有器件。

我怀疑问题与软件无关。 什么可能会导致连接到 VDD 和 GND 的两个 ADS1115 的测量出现这种差异?   

 

image.png

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Giannina

    欢迎来到我们的 e2e 论坛、非常感谢您对我们 ADS1115 的关注。

    从我现在掌握的信息来看、很难说什么会导致差异。 除非您以某种方式损坏了设备、否则我仍会怀疑软件问题。 回答几个问题:

    • 您能否共享寄存器设置?
    • 如何将代码转换为电压?
    • 您如何确定何时有新的转化?
    • 如果您有一些交流示波器快照、这可能也会有所帮助。

    有一个很棒的周末,
    Joachim Wuerker

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的答复。

    关于您的问题、所有四个 ADS1115 器件均配置了完全相同的寄存器设置和固件。 它们之间的唯一区别是由 ADDR 引脚定义的 I2C 地址、根据数据表:

    • addr = GND→0x48

    • addr = VDD→0x49

    • ADDR = SDA→0x4A

    • Addr = SCL→0x4B

    对于所有四个器件、写入 CONFIG 寄存器 (0x01) 的配置始终相同:

    CONFIG = 0xC183

    根据数据表细分的位:

    • 位→(OS)= 1 μ s 会启动单次转换。

    • 位 14:12 (MUX = 100)→AIN0(以 GND 为基准)。

    • 位 11:9 (PGA = 000)→输入范围±6.144V

    • 位 8 (MODE = 1)→单次模式。

    • 位 7:5 (DR = 100)→128SPS。

    • 位 4:0→比较器已禁用。

    写入该配置后、我等待 10ms、然后读取转换寄存器 (0x00)。

    使用对应于±6.144V 满标量程的 LSB 值将 ADC 代码转换为电压:

    电压=原始* 0.0001875

    其中 0.1875mV/LSB 是数据表中为 PGA =±6.144V 指定的值

    我只是在读取转换结果前等待 10ms。

    感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Giannina、

    非常感谢所有这些细节。 这看起来很好。

    您是否将二进制补码数字正确转换为十进制数?
    您是否在多个电路板上看到相同的问题? 或者、您是否尝试用已知良好的设备更换了一个有误的设备、以便我们可以排除任何设备损坏?

    此致、
    Joachim Wuerker