MTK库论计

    xiaoxiao2021-12-14  17

    首先应该熟悉两个变量,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 MT6577MT6517    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_offmode,并且充电电流小于200mA,这个值具体看软件的定义。 B.充电从90%(可能是其他值)到100%需要的时间比较长 ----->Battery充电进入硬件的CV阶段,此时充电电流减小。对于库仑计的方式来计算电量, DOD1 = DOD0 + Car/Qmax,Car =I*t,每增加一%,如果电流恒定,那么电量增加的时间是相等,在CC阶段,电流比较大,每增加1%的时间, 所需要的时间比较短,在CV阶段,电流减小,每增加1%的时间就会变长。 当battery 充满即满足chargingfull的条件。此时电量会每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%. ---->电池满足充满条件后,还会进入postcharging,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%.此时软件也会updateDOD0的值 即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发生. 而当有点小偏差,那么就会出现上述的一些情况. 原文: http://blog.csdn.net/fdaopeng/article/details/8803996
    转载请注明原文地址: https://ju.6miu.com/read-964846.html

    最新回复(0)