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.

[参考译文] Linux/BQ2.5892万:无法读取电池电压

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/578562/linux-bq25892-not-able-to-read-battery-voltage

部件号:BQ2.5892万

工具/软件:Linux

我正在使用bq2.5892万为锂离子电池充电。 我正在尝试从寄存器0x0E读取电池电压。 它总是给我0x00。  

bq2.5892万中的所有其他寄存器的值为0x00。 是否有任何建议?

注意:

我能够成功地将值写入寄存器。 我尝试了继续模式ADC转换。

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

    您好,Jibhin:

    在只连接电池的情况下,ADC需要V(BAT)大于VMINSYS电压。  如果您将VMINSYS写低至最低值3.0V,那么只要V(BAT)> 3.0V,就应该能够读取ADC寄存器。

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

    您好,Jeff:

    我尝试将VMINSYS降低到3.0V,但我仍然在0x0E寄存器(VBAT)中得到0x00。  

    我注意到的一件事是,当我打开IC时,所有寄存器(0x00 - 0x14)的值变为0x00。 当我将0x5d写入0x02时,它开始提供0x0F寄存器中vsys的ADC转换。 通过,我尝试在所有寄存器(0x00 - 0x14)中设置默认值,但VBAT测量结果仍然相同。

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

    VBUS和VBAT上的电压是多少? BATFET (Q4)是启用还是禁用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    VBUS为5V,VBAT为4.2V。

    已启用BATFET (Q4)。

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

    从ADC读取蓄电池电压时,我没有发现任何问题。 如果您正在读取其他ADC寄存器时没有错误,则蓄电池电压也应正确读取。 该错误是否仅在您进行1次测量或连续测量时出现?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jeff,

    在 1次测量和连续测量中都发生错误。

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

    我们将使用MSP430来读/写I2C并确认工作正常。 您能否提供I2C通信频率和读取/轮询VBAT ADC寄存器的频率?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jeff,

    I2C通信频率为100kHz。 我每2秒轮询一次。  

    是否有bq2.5892万的参考程序? 如果是,请与我分享。

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

    我们在https://github.com/tibms上提供了一些Linux软件。

    我们使用MSP430读取I2C寄存器(以100kHz和400kHz运行,读取之间有延迟且无延迟)的初始测试得出的结论如下:

    • CONV_START位用作转换完成状态位。 完成后将立即清除,并开始新的转换。 如果主机处理器在设置位时正好读取ADC寄存器,则它可能会捕获也可能不会捕获它。
    • MPS430仅在CONV_START=1的情况下尝试读取VBAT寄存器,而只是每1秒连续读取一次,而不验证CONV_START。 在这两种情况下,它始终读取正确的VBAT电压,切勿为零。

    MPS430始终读取正确的VBAT电压。 现在我们将运行一个较长的测试,看看我们是否读取了VBAT的所有零,带电源连接,不带电源连接,以及VBAT > VMINSYS。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jeff,

    感谢您共享代码。 我将通过介绍它来介绍我的驱动程序,并将结果告知您。