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/AM5728:BQ25703A:Linux 驱动程序

Guru**** 2560390 points
Other Parts Discussed in Thread: BQ25703A, AM5728, BQ40Z50

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/803960/linux-am5728-bq25703a-linux-driver

器件型号:AM5728
主题中讨论的其他器件:BQ25703ABQ40Z50

工具/软件:Linux

您好!

使用 BQ25703A IC 为 AM5728 Yocto PSDK 连接电池- 04.02

我看过这些论坛、发现 TI 没有针对该 IC 的特定驱动程序。

请参阅以下链接:

chromium.googlesource.com/.../charger

我在操作系统运行时需要 BQ25703A IC 的两个功能:

1.需要知道 BQ25703A 电池电量的百分比

2.需要知道电池是否正在充电。

您能告诉我需要通过软件访问的寄存器、以获得这些功能吗?  

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

    您好、Karthitheyan、

    1.需要知道 BQ25703A 电池电量的百分比

    此信息通常从电池组上的电量监测计 IC 中读取。  例如、您可以查看 BQ40Z50电量监测计 IC:

    http://www.ti.com/product/BQ40Z50-R2

    如果系统中没有电量监测计 IC、则可以使用 BQ25703A 的板载 ADC 读取电池电压、从而获得非常基本的电池电量测量、 尽管您的 uC 需要尝试将其从电压转换为充电百分比、这是一项不精确且困难的任务。  我建议不要走这条路。

    2.需要知道电池是否正在充电。

    BQ25703A 不会自动终止充电。  (安全计时器除外、但在正常运行时、这不应成为充电终止的手段。)  通常、系统电量监测计会确定充电何时应终止、这可以直接从电量监测计传输到充电器、也可以通过系统 uC 进行传输、具体取决于系统架构。  

    您的 UC 可以通过以下位的组合确定充电器当前是否正在充电:

    CHRG_INHIBIT、寄存器0x00、位[0]

    充电电流寄存器、0x03/0x02

    在快速充电位、寄存器0x21、位[2]中

    在预充电位、寄存器0x21、位[1]中

    在 OTG 位、寄存器0x21、位[0]中

    如果将 CHRG_INHIBIT 设置为0或充电电流寄存器0x03/0x02设置为0、则器件不会充电。  

    如果快速充电位或预充电状态位被置位、则器件正在充电。

    如果 OTG 状态位被置位、则表示器件未充电。

    如果未设置任何快速充电/预充电/OTG 位、则器件很可能处于恒压模式、在该模式下、器件会保持寄存器0x05/0x04中设置的恒定电池电压。  在此模式下、充电电流将以全快速充电速率开始、但会逐渐降至零。  在此阶段、电量监测计将确定充电终止条件、然后通过将充电电流设置为0或设置 CHRG_INHIBIT 位、IT 或系统 UC 将终止充电。

    从技术上讲、您在该模式下充电、但随着时间的推移、充电电流将变得非常低、因为您将接近安全计时器过期。

    此致、

    Steve