搜索

430

主题

515

帖子

2106

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2106
QQ
发表于 2021-1-28 15:33:13 6392 浏览 0 回复

Android5.1以下 对Fuel Gauge可能出现的几种电量现象及解释.

本帖最后由 tangh 于 2021-1-28 15:35 编辑

  MTK早期是用了SW和HW 库伦两种方式,但是大致流程都差不多,从6737 android7.0的平台开始做了一些大的补偿改动,至于之前的平台,以下说明可以方便理解大概实现流程

[DESCRIPTION]

首先应该熟悉两个变量,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.Recharging
----->电池充满后,会停止充电,此时系统由电池来供电,当电量低于4.11时,此时
又会重新充电,但是,UI上面会一直显示100%,假设这个时候拔掉USB,这个时候
电量会从100%每1min down 1%去syc FG的电量。
最差的情况,如果FG的电量变成96%,那么4min后,UI显示就变成96.


2.不充电情况

A.出现在20或者其他值,很快下降到15%,或者是在15%处停留时间比较久。
---->这是因为15%是同步点,当电池真实电量成为15%,FG计算电量方式会同步到15%.

B.出现在8%或者其他值,然后很快掉到1%.
---->当实际的电量达到0%,也即电池电压的值小于3.4V,此时,UI上面会每10S,下降1直到0%,而FG的电量也会每10S,update一次,直到0.

C.1%停留的时间比较久.
---->当FG的计算方式先达到0%,那么UI上面会保持为1%,直到真实的电池容量变为0,也即是电池电压小于3.4V

以上的情况都是软件的正常处理流程.初始的电量DOD0获取正确, 电量就会准确.
而当有点小偏差,那么就会出现上述的一些情况.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
手机微信同号:13682654092
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表