采用Fuel Gauge可能出现的几种电量现象及解释

采用Fuel Gauge可能出现的几种电量现象及解释首先应该熟悉两个变量 bat volt check point 是 UI 上面显示的值 gFG capacity by C 库仑计计算的电量值 也等于 SOC 的值 公式 DOD1 DOD0 Car Qmax DOD1 对应当前的电量值 DOD0 对应初始的电量值 Car 为 t 时间内 流过 Rfg 电阻电流的电量 Qmax 为电池的容量 下面几种情况会更新 DOD0 的值

首先应该熟悉两个变量,bat_volt_check_point是UI上面显示的值。

gFG_capacity_by_C,库仑计计算的电量值.也等于SOC的值.
公式 DOD1 = DOD0 + (-Car/Qmax).
DOD1对应当前的电量值.

DOD0对应初始的电量值.
Car 为t时间内, 流过Rfg电阻电流的电量.
Qmax为电池的容量.


下面几种情况会更新DOD0的值,

1.开机头10S.
2.插拔USB.
3.电池充满的状态
4.电池容量为15%和0%的情况




正常情况下如果,库仑计获取的初始电量DOD0的值比较准确,
那么,gFG_capacity_by_c的值会很准,
实际上,gFG_capacity_by_c跟实际的电量会有点小偏差。不过该值
会在充电过程中与实际电量同步起来。譬如充电过程中是在100%
不充电过程中是在15%和0%




 

[PLATFORM]

MT6575 MT6515 MT6577 MT6517  MT6589
 
 
请结合
alps\mediatek\platform\mt6589(mt6575/mt6577)\kernel\driver\power\
mt6320_battery.c
mt6575_battery.c
mt6577_battery.c
中mt6575_battery_update或是mt6320_battery_update来理解.

采用Fuel gauge方案。
1.充电情况
A.充电到99%,需要等上一段比较长的时间才能到100%.


—–>采用FG的计算电量的变量gFG_capacity_by_C先到达100,而实际上,电池还没有充满,此时会

先将UI显示即Bat_Volt_Check_point定格在99.直到电池满足充满条件时,才会让Bat_Volt_Check_point
值变成100,并在UI上面显示100,此时底层的值为gFG_capacity_by_C以及Bat_Volt_check_point为100.
上层会show满的图片,并停止充电。


电池充满的条件是,进入top_off mode,并且充电电流小于200mA,这个值具体看软件的定义。

B.充电从90%(可能是其他值)到100%需要的时间比较长
—–>Battery充电进入硬件的CV阶段,此时充电电流减小。对于库仑计的方式来计算电量,

DOD1 = DOD0 + Car/Qmax,Car = I*t,每增加一%,如果电流恒定,那么电量增加的时间是相等,在CC阶段,电流比较大,每增加1%的时间,
所需要的时间比较短,在CV阶段,电流减小,每增加1%的时间就会变长。

当battery 充满即满足charging full的条件。此时电量会每10S,Bat_Volt_check_point增加1%,在UI上面显示也会相应每10S增加1%一直到100%.

假设FG电量的方式gFG_capacity_by_c为96,电池满足充满的条件,此时,
Bat_volt_check_point(即UI显示)会每10S增加1,当Bat_volt_check_point为100时,
此时会调用FGADC_SW_RESET_parameter,直接将DOD1变成0,也即是
gFG_capacity_by_c变成100.




C.出现在比较低的电量,此时插入USB,发现会在一个变量上面停留譬如10-20min,
过了这段时间电量的增长速度就变正常了。

—–>假设此时bat_check_point(UI)为20%,而FG的电量 gFG_capacity_by_c为15%,

那么UI上面会一直停留在20%,直到FG的电量从15%增加到20%,UI上面电量的增长
速度才会恢复正常。

此种情况不是会一直发生
插着充电器,UI只会上升不会下降

不插充电器,UI只会下降不会上升
D.recharging
—–>电池充满后,会停止充电,此时系统由电池来供电,当电量低于4.11时,此时

又会重新充电,但是,UI上面会一直显示100%,假设这个时候拔掉USB,这个时候
电量会从100%每1min down 1%去syc FG的电量。

最差的情况,如果FG的电量变成96%,那么4min后,UI显示就变成96.
E.96到100每10S,增加1%,但是拔掉USB后,电量每1min掉1%,直到96%.
—->电池满足充满条件后,还会进入post charging,UI上会先显示100%,每10S增加1%,直到100%

此时还不会直接update DOD0为100,也即gFG_capacity_by_c不会是100,可能只有96.
如果刚好在这个时候拔掉USB,此时,bat_volt_check_point会每1min掉1%,去syc FG的电量,
假设FG的电量为96,那么4min后,UI会显示96,此时电量的显示就会比较平稳。


进入post charging后需要在经过30min后,才会是真正的充满,并把充满条件

置为真。此时会停止充电,并把update DOD0的值为100,此时对应的
gFG_capacity_by_c为100,就不会出现100下降很快的问题。


2.不充电情况
A.出现在20或者其他值,很快下降到15%,或者是在15%处停留时间比较久。

—->
当真实电池电量达到15%(电压的方式得到),此时UI上的显示以及FG的电量会去
同步15%这个点。



当实际的电量为20%,而此时UI上面显示只有15,那么UI会一直show 15,直到真实

的电量达到15%.而此时FG的电量会update DOD0,停留在15这个值.
假设此时为UI显示为20,那么每20S会下降1%,直到15%.此时软件也会update DOD0的值

即FG的值,具体也是20S,update一次,直到15%
B.出现在8%或者其他值,然后很快掉到1%.

—->

当实际的电量达到0%,也即电池电压的值小于3.4V,此时,UI上面会每10S,下降1直到
0%,而FG的电量也会每10S,update一次,直到0.

C.1%停留的时间比较久.

—->

当FG的计算方式先达到0%,那么UI上面会保持为1%,直到真实的电池容量变为0,也即是
电池电压小于3.4V

 
以上的情况都是软件的正常处理流程.现象都算正常. 当通过FG的计算方式的电量,
初始的电量DOD0获取正确,上述情况就会比较正常.不会always发生.
而当有点小偏差,那么就会出现上述的一些情况.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223774.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:25
下一篇 2026年3月17日 下午1:26


相关推荐

  • kali 更新源 更新软件包 更新系统 中科大源 官方源「建议收藏」

    kali 更新源 更新软件包 更新系统 中科大源 官方源「建议收藏」vim/etc/apt/sources.list1.添加源#kali官方源debhttp://http.kali.org/kalikali-rollingmainnon-freecontribdeb-srchttp://http.kali.org/kalikali-rollingmainnon-freecontrib#中科大的源debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribde.

    2022年5月8日
    64
  • Quartus II 13.0安装和激活成功教程教程

    Quartus II 13.0安装和激活成功教程教程QuartusII软件是学习FPGA非常重要的软件,下面来介绍一下13.0版本的安装及激活成功教程教程:1、安装包介绍大家下载的完整版的QuartusII13.0软件应包含以下三个部分:请大家选择第三个“Quartus-13.0.0.156-windows.tar”压缩文件,即为我们的QuartusII13.0的主安装包,这是一个压缩文件,安装前需要解压。该包包含了开发FP…

    2022年10月16日
    5
  • css隐藏tr

    css隐藏trstyle display none

    2026年3月17日
    2
  • 手把手教你Open Claw接入飞书教程,打造你的24小时智能助理

    手把手教你Open Claw接入飞书教程,打造你的24小时智能助理

    2026年3月13日
    1
  • less与sass的区别

    less与sass的区别less 与 sass 的区别 sassSass 语法属于缩排语法 比 css 比多出好些功能 如变量 嵌套 运算 混入 Mixin 继承 颜色处理 函数等 更容易阅读 Sass 的缩排语法 对于写惯 css 前端的 web 开发者来说很不直观 也不能将 css 代码加入到 Sass 里面 因此 Sass 语法进行了改良 SCSS 是 CSS 语法的扩展 这意味着每一个有效的 CSS 也是一个有效的 SCSS 语句 与原来的语法兼容 只是用 取代了原来的缩进 lessLess 也是一种动态样式语言 对 CSS 赋予了动态语言的特性 如变

    2026年3月18日
    2
  • Socket无限SocketTimeoutException真凶–WLAN助手

    Socket无限SocketTimeoutException真凶–WLAN助手看到标题你可能不知道我说的是什么鬼东西,但是如果你有类似的经历的话,那么恭喜你,也恭喜我自己,终于解决这个问题了。用过小米、华为等手机的都知道,当我们连接上一个不能上网的WIFI时,系统都会友好的给出“此WLAN无法访问互联网,请更换网络/切换为移动数据网络”等类似的提示,今天我就说下本人在这里面遇到的坑。背景:有个Android项目需要连接硬件设备的WIFI,然后通过socket进行通信…

    2022年10月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号