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.

[参考译文] BQ76920:ADC 读数高度不准确

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/624744/bq76920-highly-inaccurate-adc-reading

器件型号:BQ76920

感谢该论坛先前的帮助、我设法与 BQ76920建立了 I2C 通信。 我现在尝试使用内部 ADC 测量电池5的电压。 下面是与器件的 I2C 通信的屏幕截图。

  1. 选择 SYS_CTRL1寄存器
  2. 接收 SYS_CTRL1寄存器
  3. 在 ADC_EN 位被置位的情况下、发回经修改的 SYS_CTRL1寄存器
  4. 选择 ADCGAINHI 寄存器
  5. 读取 ADCGAINHI 寄存器
  6. 选择 ADCGAINLO 寄存器
  7. 读取 ADCGAINLO 寄存器
  8. 选择 ADCOFFSET 寄存器
  9. 接收 ADCOFFSET 寄存器
  10. 选择 VC5_HI 寄存器
  11. 读取 VC5_HI 寄存器
  12. 选择 VC5_LO 寄存器
  13. 接收 VC5_LO 寄存器

通过分析这些数据、ADC 增益为377uV/LSB、偏移为50mV。 我读取的 ADC 值为5526。 使用计算得出的电芯电压= ADC*增益+偏移、电压为2.13V。 实际电压约为2.8V、因此这非常不准确。 使用的电路如下所示。

引脚 VC5上的电压读数应为2.8V。 我还将在这里添加一个链接到包含 LA 迹线的 Imgur 相册: https://imgur.com/a/lN7xt 

那么、我的问题是、ADC 为何如此不准确? 我的寄存器配置是否不正确? 或者我的电路是否不够复杂? 感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、
    寄存器读取说明显示了单个字节的读取。 电压的寄存器值应在同一事务中按顺序读取、以获得原子值、数据表中的注释7.3.1.1和7.5.2。 如果电池电压 ADC 值在0x26FF 和0x2700附近变化、则读取跨越值更新时间边界的单独字节可能会显示0x2600或0x27FF、大约为200mV 的范围。 在一个显然正常的系统中、这是某些电压下的常见误差源、但在所述电压下、这很可能不是您的问题。
    您的原理图已简化、但仅显示了与 VC4 GND 相连的电池5。 虽然未明确说明、该器件不是通用 ADC 的集合、但它用于电压测量操作、其中至少3节串联、VC5的电压与 BAT 大致相同。 请参阅数据表中的图8-1和表8-1。 输入必须以足够的共模运行才能正常运行。 如果将 VC5连接到 VC4下方2.8V 的12V BAT 电源、或者在 VC1上相对于 VC0应用单个接地基准电源、则可能会获得更好的结果、 但是、最好使用与数据表中的图8-1相似的输入滤波器来按预期运行该器件。 如果电源受限、电阻器可用于对电源电压进行分压以仿真电池、如 EVM 原理图中所示。 如果 REGSRC 为12V、则该器件可能会运行得开心、但 BAT 应大约遵循 VC5 (电池电压之和)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已经按照您的建议实施了电池仿真、电池电压为16V、每节电池电压为4V。 因此 、我将 VC4短接至接地。 我现在遇到的问题是、除了 VC5之外、每个寄存器都是空的。 下面是 I2C 通信的图片

    在这里、我尝试从 VC1读取。 字节2和4是 CRC 字节。 数据字节为何为空。 请帮助

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

     如需更多信息、我已包含工作寄存器回读的内容。 电池电压为4V、但使用数据表中的计算结果以及从寄存器读取的 ADC 值、电压大约为6.2V、这是不正确的。 那么、为什么它不准确、为什么 VC5是唯一一个包含数据的单元格?

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

     我还将包括新的原理图

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、
    VC4不得接地。 请参阅数据表中的表8-1。 通过将 VC4接地、您将通过 VC4至 VC3之间的内部平衡 FET 短接底部的3个10k 电阻器。 这将有效地为低3节电池施加0V 电压、电池4上的负电压违反了绝对最大值、可能为电池5上的大约15V、这违反了其绝对最大值 电池5 ADC 读取满量程。
    从 GND 移除 VC4并将其连接到 VC3、将 VC0连接到 GND、然后检查结果。 通过滤波器连接会更好。 现在、电池5内部可能存在电阻短路、这将显示为该电池上的意外低电压。 您可能不希望信任该过载器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    进一步考虑、电芯5将看到上面提到的完全16V、而不是15V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢您、我对简短地理解不正确。 我现在可以从其他寄存器中读取、但电压仍然不准确、大约为2.4V、而不是4V。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、
    由于连接错误、部件可能已损坏。 如果没有滤波器组件、从器件读取的值应约为您在10k 电池仿真电阻器上测量的值。 如果电芯5引脚存在电阻性损坏、则会降低顶部电阻器电压并增加较低的电阻器电压。 如果 ADC 输入未损坏、则4个值之和应为施加的电压(如果所有 ADC 都在范围内)。 我很高兴您能够取得进展、现在可能是更换 IC 的时候了。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我将尝试使用另一个 IC、并让您知道发生了什么。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在已经尝试使用单独的 IC。 初始测试很好、VC5和 VC3是准确的。 由于短路、我假设 VC4应为0V。 然而、VC2在6.08V (应为4V)左右不准确、而 VC1提供的0V 不正确。 这是否是硬件问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、
    很高兴听到一些上的电压正确。 电池引脚上的电压以及由器件报告的电压应与电池仿真电阻器大致相同。 6.08V"电池2"听起来像是 ADC 处于最大值、而0V"电池1"听起来像是输入短接在一起(当您测量并期望在"电池4"上)。 检查 VC0和 VC1之间是否有焊桥或其他意外的 VC1到 GND 连接。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在一切都在使用新 IC。 感谢你的帮助。