300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MTK GM3.0 关于电池电量显示流程

MTK GM3.0 关于电池电量显示流程

时间:2020-09-28 21:27:06

相关推荐

MTK GM3.0 关于电池电量显示流程

一、客户自查

电量相关问题,请先排查如下几点:

1、check hardware schematic

硬件设计对电量计算有极大影响,所以务必确认如下两项:

(1)ISENSE/BATSNS硬件连接是否和对应平台参考设计相同

使用的charger IC support power path则使用ISENSE测量VBAT,反之使用BATSNS;

注意:BATSNS/VSYSSNS不可短接

(2)CP_S/CP_N 差分包地走线

PCB走线注意细则参考文档:《Fuel Gauge Application Notes_Vx.pptx》

2、check ZCV table

(1)是否有按规范打表

(2)是否有按规范合入dtsi

操作指导参考文档:《GM3.0 Customized Setting Flow_Vx.pptx》

3、check car_tune_value

确认是否有按规范校准car_tune_value

car_tune_value校准方法参考文档:《GM3.0 Customized Setting Flow_Vx.pptx》

4、check customization

确认是否做过客制化修改,如有请提供修改内容;

mtk_battery_property.h

mtk_battery_table.h

若支持5个温度,则提供:

xxx_battery_prop_ext.dtsi

xxx_battery_table_ext.dtsi

若支持4个温度则提供:

xxx_battery_prop.dtsi

xxx_battery_table.dtsi

注:如果贵司做过客制化,从头文件解析zcv,请说明;

客制化参数含义参考文档:《 GM3.0_Customization parameter design guide_Vx.pptx 》

二、提CR注意事项

如若上述自查均PASS,电量计算仍存在问题,劳烦开启daemon log,提供问题复现步骤和log:

1、 fuelgauge daemon log开启方法:

(1)setprop(注意需要root权限)

adb shell setprop persist.mediatek.fg.log.enable 1

(2)改code,重编bootimage:

/kernel/drivers/power/mediatek/battery/mtk_battery.c文件中:

//static signed int gFG_daemon_log_level = BM_DAEMON_DEFAULT_LOG_LEVEL;

修改为:

static signed int gFG_daemon_log_level = 8;

static int Enable_BATDRV_LOG = 3;

修改为:

static int Enable_BATDRV_LOG = 8;

(3) adb 命令写节点,但重启会消失(注意需要root权限):

adb shell echo 8 > /sys/devices/platform/battery/FG_daemon_log_level

2、开启mtklogger,复现log;

3、将具体复现操作步骤、复现log附到CR里面;

三、学习文档

针对电量计初学者,务必先到敝司DCC下载相关文档,了解电量计的测试调试方法、参数意义;

必读文档列举如下:

Fuel Gauge Application Notes_Vx.pptx

Gauge Master 3 0 Introduce_Vx.pptx;

GM3.0 Customized Setting Flow_Vx.pptx;

GM3.0_Customization parameter design guide_Vx.pptx;

四、更换Charger IC注意事项

若贵司使用友商提供的charger,则porting时需要注意如下修改点:

1、使用友商Charger IC + 敝司fuelgauge 3.0方案:

① lk中务必porting charger ic driver,确保可以正常停充、disable power_path;

停充和disable power_path 的位置:

若定义MTK_CHARGER_NEW_ARCH(自o1.mp1引入):

/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/common/power/mtk_battery.c文件中check_sw_ocv();

未定义MTK_CHARGER_NEW_ARCH:

/vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6771/mt_battery.c文件中 mt65xx_bat_init();

②kernel中charger IC driver porting

确保driver API符合/kernel-4.4/drivers/misc/mediatek/include/mt-plat/charger_class.h文件中struct charger_ops规范;

需要注意的是,若对应charger IC支持HWOCV测量功能,请添加如下callback:

int (*get_zcv)(struct charger_device *, u32 *uV);

2. 使用友商Charger IC + 外挂gauge,则disable gm3.0对应修改:

(1) kernel部分

① 定义宏:CONFIG_MTK_DISABLE_GAUGE= yes;

② Android O版本还需在battery_probe()中作如下修改,disable recovery mode调用:

/******

if (is_recovery_mode())

battery_recovery_init();

*/

(2)system部分:

disable所有fuelgauge service启动code;

①init.mt67xx.rc

on charger

#start fuelgauged

service fuelgauged /vendor/bin/fuelgauged

# class main

user root

group root

disabled

#注意,Android O无此项

service fuelgauged_nvram /vendor/bin/fuelgauged_nvram

# class main

user root

group root

oneshot

disabled

②meta_init.rc、recovery/etc/init.rc等做同步修改

(3)change fgadc reset source

不使用GM3.0的话,需要将寄存器 PMIC_RG_FGADC_RST_SEL_ADDR设为0,code修改位置:

①自alps-mp-o1.mp1 branch MT6771平台后引入MTK_CHARGER_NEW_ARCH,则在lk中作如下修改:

**/lk/platform/common/power/mt_battery.c文件中,修改使is_disable_bat()函数返回true

②之前平台或未定义MTK_CHARGER_NEW_ARCH,则直接在Preloader中修改:

/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt67xx/src/drivers/battery.c :

void fuel_gauge_init(void)

{

.......

//only for GM 3.0 : set FGADC reset source selection = 1 ,GM3.0 reset

ret = pmic_config_interface((U32)(PMIC_RG_FGADC_RST_SRC_SEL_ADDR), (U32)(0),

(U32)(PMIC_RG_FGADC_RST_SRC_SEL_MASK),

(U32)(PMIC_RG_FGADC_RST_SRC_SEL_SHIFT));

.....

}

五、常见问题

1、电量显示-1

表示fuelgauge deamon无法正常运行,导致的原因多为fuelgauge deamon和kernel不匹配;

劳烦先自行排查libfgauge_gm30.so和kernel是否属同一基线版本;

也可提供 mtk_battery_internal.h / mtk_battery.h 以及客戶libfgauge_gm30.so,由敝司帮忙排查;

2、电量固定为25%、50%、75%

需确认:

是否为factory mode 或 meta mode?

是否disable gauge?

是否使用假电池?

是否EVB?

是否客制化电量上报?

3、1%持续时间长

(1)重载放电

[ Method]减小pseudo1参数值Q_MAX_SYS_VOLTAGE; [Risk]更重载情况下会有drop现象;

(2)轻载放电

[Method1]减小gauge0% 参数值PMIC_MIN_VOL/POWERON_SYSTEM_IBOOT; [Risk]轻载放至低电量切换到重载会drop;

[Method2]调高0%关机电压SHUTDOWN_GAUGE0_VOLTAGE; [Risk]电量无法耗尽,轻载关机电池电压高;

[Method3]降低UI 1%持续时间SHUTDOWN_1_TIME; [Risk]电量无法耗尽,轻载关机电池电压高;

[Method4]降低 DIFFERENCE_FGC_FGV_TH; [Risk]曲线不线性;

(3)重载转轻载

属正常现象,电池本身特性所致;

4、100%持续时间长

(1)放电场景

[Method1]增大pseudo100; [Risk]无,呈现充电本身特性;

[Method2]disable PSEUDO100_EN_DIS; [Risk]无,使充电藏帕放电不藏帕

[Method3]减小KEEP_100值; [Risk]无;

(2)充电场景

[Method]增大pseudo100; [Risk]无,呈现充电本身特性;

5、放电Drop

表现:VBAT达到3.4V关机时,uisoc还比较高;

(1)重载场景

[Method]增大pseudo1;

(2)轻载场景

[Method]增大gauge 0% ;

(3)轻载至低电量切换至重载场景

[Method]正常现象,电池本身特性导致;

6、放电关机电压未抵到3.4V

表现:UI已经到0%关机,但电池电压仍高于3.4V;

(1)中重载场景

[Method1]降低gauge 0%; [Risk]轻载至低电量切换到重载会有drop;低电量没插充电器开不了机;

[Method2]降低SHUTDOWN_GAUGE0_VOLTAGE; [Risk]可能导致电池过放;

(2)轻载场景

[Method1]增加UI 1% timeout; [Risk]UI 1%显示时间较长;

[Method2]降低SHUTDOWN_GAUGE0_VOLTAGE; [Risk]可能导致电池过放;

(3)轻载至低电量切换至重载场景

[Method]正常现象,电池本身特性导致;

更多MTK技术资料,可咨询新移科技。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。