MTK GM2.0

来源:互联网 发布:编程时间和水平成正比 编辑:程序博客网 时间:2024/06/06 10:42

一、介绍

    MTK GM2.0,用MTK官方的语言描述是smooth and monotonic GM2.0,中文释意大概是平滑并且单调,所以GM2.0的提出主要是多了这2种功能。

(1)、smooth

    由于之前老的项目HW_SOC项目中的Qmax和 消耗的电量并不是根据不同温度计算的,这导致了一个问题,当手机从25摄氏度环境下进入-10摄氏度环境下时会出现电量各种跳变问题,因此电量曲线不平滑。所以MTK在GM2.0上主要解决此问题。加入了UI_SOC2更好的跟踪电量。


(2)、monotonic

    老的项目中电池在充电的时候是允许电量降低的,并且在放电的时候温度变化也会导致电量变大,为了避免此类问题,因此需要保证电量在不同的环境下处于用户体验模式OK的方式,即放电时只能减少,充电时只能增大。这一点展讯早就这样设计了,不知道MTK为何设计的为何是这么晚。


二、算法

      充放电算法基本上和之前的一样,就是没有了电量的算法,这里全部放到了一个的damenon下:/system/bin/fuelgauged,对应的代码在vendor/mediateak/propetriy/external/fuelgauged下面,不过MTK这里已经将其封装在库lib库里了,也许是为了防止客户随意的修改而造成的问题。不过我们仍然能从MTK 的kernel log发现一些关键信息:

<13>[ 1279.264060]  (0)[509:fuelgauged]MTK_FG: 6.[FGADC_CAR] CAR_B 700, CAR_A 708, CAR_D -8, CAR_S -494, CAR_C -494<13>[ 1279.264358]  (0)[509:fuelgauged]MTK_FG: 1. [FGADC_CAL] % 7 V=3678, track =0<13>[ 1279.264964]  (0)[509:fuelgauged]MTK_FG: [FGADC] 1,1607,0,3678,7,4,1,2779,2779,51,0,0,1000,0,1000,99,96,118,103,3574,100<13>[ 1279.265056]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_IQ1](Qmax_T_0mAH 2779,Qmax_T_400mAH 2723,Qmax_T_I 2751, T 32, Tavg 31, I 1607, Iavg 2055, Loading factor 99)<13>[ 1279.265096]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_IQ2](Vsys 3050,Rbat 240,SW cut off OCV 3574, T 32, Tavg 31, I 1607, Iavg 2055, Loading factor2 100)<13>[ 1279.265709]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_UI_FG]FG version:150329 (FG% 4,UI% 3,tracking Time 0,Qmax_T_0mAH 2779, I 1607, Iavg 2055, T 32, Tavg 31, RTC=3)<13>[ 1279.265818]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_CP_T] (V0 4320,D0 0,V30 4024,D30 30,V60 3818,D60 60, V1 4308,R1 161,V31 4018,R31 204,V61 3815,R61 184, Qmax_T_0mAH 2779,Qmax_T_400mAH 2723,T 32,Tavg 31)<13>[ 1279.265869]  (0)[509:fuelgauged]MTK_FG: [FGADC_D0](HW OCV 3680,6 SW OCV 3671,4 RTC 1, VBAT 3672,5, T_avg 27, I 2, is_charging 0, is_charger 1, gap1 30,10,10,3,10,30 D0 99 ui_soc:3 7 embedded 0 plugout 0 )<13>[ 1279.265918]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_AQ](FG1% 0, OCV1 0, CAR1 0, FG2% 0, OCV2 0, CAR2 0, Qmax_T_new_0mA 0, Qmax_T_0mAH 2779, T 32, Tavg 31, aging factor1 100, age temp_1 0, age temp_2 0, flag 0)<13>[ 1279.265956]  (0)[509:fuelgauged]MTK_FG: 2.[FGADC_AQ](CAR_S -494, DOD0 99, aging_Q 2779, aging factor_2 100, age_temp1 0, age temp2 0 flag 0)<13>[ 1279.265990]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_CAL] FG_R% 100, FG_V 0, UI% 3, ZCV% 0, CAL gap 20,FG_A% 0, CAR_ACT 0<13>[ 1279.266025]  (0)[509:fuelgauged]MTK_FG: 1.[FGADC_Rbat](Rbat_ZCV 247, Rbat_SOC 161, R_b 0, R_w 0 I 0, Iavg 0, ZCV 0, Vbat 0)
虽然MTK没有开放过来,但是从log中大致能判断电量的使用虽然情况,以及一些需要的调试信息。


三、GM2.0遇到的问题

    (1)插入电脑USB后无法识别

     从log发现识别成了unknow charger,理应是stander charger。由于usb的VUBS比D+的线长,因此在缓慢插拔时,就可能先检测到VUBS,然后就执行bc1.2协议,结果D+还没连接,或者连接过迟,从而误读城unkonw charger。这里可以在读取到unkonwn charger时再执行一次bc1.2检测,如果仍然是,再执行一次,最好延迟200ms。

0 0
原创粉丝点击