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.

[参考译文] INA219:分流电压和总线电压读数不正确

Guru**** 2680595 points

Other Parts Discussed in Thread: INA219

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/1591581/ina219-shunt-voltage-and-bus-voltage-reading-not-correct

器件型号: INA219

您好:

我们使用 INA219 通过 4.99 欧姆的检测电阻和近似电流~18mA 进行分流电压测量。 总线电压为 12V。 当我们测量传感器电阻器上的压降时、我们能够看到 90mV、但当我们读取分流电阻器寄存器时、得到的值为十进制 61。

即使在没有电流的情况下(意味着检测电阻上的压降为 0V)、从寄存器读取的分流电压仍为十进制 61。 理想情况下、对于 90mV 差分电压、PGA 增益设置为/8)+/–320mV 范围、我们应将分流电压读取为 2300+ AD 计数。

即使总线电压读数与 12V 不匹配、也是读取值为 61 十进制。 以下是我们在固件中的设置:

1.从器件地址设置为 1000000 (A1 和 A0 为 GND)

2.总线电压范围设定为 16V

3.数据表表表 6 设置用于分流电压连续 (1 0 1)

4. ADC 设置 12 位

请告诉我们,什么可能是继电器,我们不能正确读取分流电压?

参考原理图:

 

image.png

 

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

    一个校正、即我们读取的总线电压约为 12 月 65000

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

    尊敬的 Siddharth:

    配置和校准寄存器值设置为什么?

    此致、
    Mallika Senthil

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

    尊敬的 Mallika:

    您能否具体说明您要查找的配置设置? 我已经提到了上面的所有模式配置。 Regardign 校准寄存器、由于我们只关注分流电压、而不关注功率或电流、因此我们认为没有设置校准寄存器。  

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

    Siddharth、

    感谢您的耐心。  由于美国假期、我们目前不在办公室。 Mallika 将在我们返回星期一时回复、12/1。

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

    尊敬的 Siddharth:

    对我的答复延迟表示歉意。 要确认您是否与器件正确通信、您能否在上电复位时读取配置寄存器值。

    谢谢您、
    Mallika Senthil

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

    尊敬的 Mallika:

    上电复位时的配置寄存器值为 10011110 00011101 、对应于 9E1D

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

    尊敬的 Siddharth:

    读取的值与预期的 399F 不对应、因此表明您未与 INA219 器件通信。 请检查您正在寻址、另外如果可以、请与解码器共享 I2C 数据线的示波器屏幕截图。

    此致、
    Mallika Senthil

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

    尊敬的 Mallika:
    我需要澄清一下这款 ADC 芯片。 似乎器件可能仅在默认情况下运行 399F 因为我们编写的任何其他配置都不会按预期运行。

    以下是我们的观察结果:

    • 我们没有明确设置 BADC。

    • 我们将模式设置为 101 (分流电压连续模式)。

    • 我们配置了 BRNG = 16V

    • 当配置寄存器设置为时 399F 、芯片工作正常。

    • 如果我们甚至修改一个字段、例如仅更改中的 BRNG 位 32V 最终目的 16V、  器件仍读回 9F39

    • 我附加了一个视频供您参考、其中 我们写入的任何值均未更改读回、除非我们写入时 399F 、回读为 9F39

    https://uploadnow.io/f/qNRFX9T

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

    Siddharth、

    感谢您的耐心。 Mallika 今天不在办公室、但将在她返回星期一时作出答复、时间是 12 月 8 日。

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

    尊敬的 Siddharth:

    您能否确认是否要针对上述设置将 0x199D 写入 CONFIG 寄存器。

    此外、TI 安全部门限制我打开您的视频。 如果您正在发送正确的命令、请通过将视频上载到以下驱动器来刷新视频。

    tidrive.ext.ti.com/.../096abb69-21ef-4745-8a89-929a1245e57d

    密码: iT75k\ry


    此致、
    Mallika Senthil

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

    尊敬的 Mallika:

    之前,我们在写作 0x199D. 配置寄存器。 按照您的建议、我们将其更新为 0x399F 、使用此设置时、ADC 似乎可以正常运行。 因此、我想确认器件是否仅在这一特定配置下运行。

    我还想强调另一个看法:
    对于我们写入的任何其他配置值、寄存器读回都与我们编程的值相匹配。 但是、我们在写入时 0x399F 、我们回读的值是 0x9F39 而不是 0x399F

    我在驱动器中附加了一个视频供您参考。

    请您确认是否 0x399F 是否确实是建议的配置? 此外、您能否澄清寄存器返回的原因 0x9F39 最大值 0x399F

    谢谢你。

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

    尊敬的 Siddharth:

    感谢您观看视频和观察、这缩小了问题的范围。 我想、当您读取/写入寄存器时、您可能会混合 LSB 和 MSB 的顺序。 如果采用 0x399F 并将 0x9F39 写入寄存器、这将在位 15 中具有“1",“,会、会生成器件复位、因此器件看起来无法正常工作。  
    请修复您的代码、先写入和读取 MSB、然后是 LSB。 这样可以解决该问题。

    此致、
    Mallika Senthil

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

    尊敬的 Mallika:

    感谢您的澄清。 我只想说两个要点:

    1. 您能否请确认器件是否应仅在 0x399F 配置下工作? 我们只看到使用此设置时运行稳定。

    2. 此外、您能否解释一下当我们读回该值时为什么显示为反转 (0x399F 变为 0x9F39)? 如果是 LSB/MSB 混合、这是否应该以相同的方式影响所有配置?

    就这两点作出简短的解释、确实会有助我们继续进行。

    谢谢。

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

    尊敬的 Siddharth:

    您能否确认该器件是否应仅与 0x399F 配置配合使用? 只有使用此设置、我们才能看到稳定的操作。

    否、该器件将在数据表中详细说明的所有配置下工作。

    此外、您能解释为什么当我们读回该值时该值出现反转 (0x399F 变为 0x9F39) 吗? 如果是 LSB/MSB 混合、这不应该以相同的方式影响所有配置?

    下面是一个示例、说明了我认为将 MSB 和 LSB 混频的代码所发生的一些情况:对于允许任何值的寄存器(例如校准寄存器)、当您写入 0x1234 等值时、该值将存储为 0x3412。 然后、当您读回它并再次交换 MSB 和 LSB 时、它仍将读取为 0x1234。 这将诱使您认为您进行了正确的沟通。 但是、当您尝试将 0x399F 写入配置寄存器时、它会尝试写入 0x9F39。 当您写入此值时、您要将 1 编程到复位位位位、然后将擦除您的配置并将其更改回器件上的 0x399F。 然后、当读取和交换这些值时、将读取 0x9F39。

    此致、
    Mallika Senthil