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。
- MTK GM2.0
- mtk
- MTK
- mtk
- MTK
- MTK
- MTK
- mtk
- MTK
- mtk
- MTK
- MTK
- MTK
- MTK
- mtk
- MTK
- MTK android4.0 源码开发环境搭建
- Android6.0 MTK 需求文档(一)
- 根据手机sim卡获取运营商信息
- ASP.NET MVC入门(二)---MVC数据传递
- leetcode:Binary Search Tree:Contains Duplicate III(220)
- matlab读取arff格式文件前的环境配置工作
- SPOJ 375 树链剖分
- MTK GM2.0
- MySQL两行数据合并一行sql
- 测试Python是否安装成功
- Maven - 构建生命周期
- 新人首发
- ajax-jq-php(mysql)四级省市级联
- java字节码文件 helloworld
- Git workflow 选型分析
- 树 先序中序后序遍历