多语言展示
当前在线:603今日阅读:162今日分享:23

MTK6735 添加电池曲线

本篇内容将详细的介绍,如何在 MTK6735平台下添加新的电池曲线;以及 Battery Manager的一些相关知识。
工具/原料
1

使用的系统 ubuntu12.04

2

使用的代码编辑工具 slickedit

方法/步骤
1

Android 电池管理的函数调用流程介绍,BatteryService.java(system)------>>com_android_server_BatteryService.cpp(JNI)------->>Linux Battery Driver(linux kernel)------>>Low lay

2

其中system中的 BatteryService.java文件,电池服务管理相关得到详细调用关系如下所示流程图

3

电池的升级功能接口,是通过对应的宏声明文件路径作为唯一的ID

4

作为一名底层驱动工程师,最关心的是如何根据给出的电池曲线图表,去修改对应的底层驱动文件,来实现真正驱动控制管理电池。底层电池驱动架构图如下所示

5

linux驱动中对应路径 alps/kernel-3.10/drivers/power/mediatek 下的文件如下; alps/kernel-3.10/drivers/misc/mediatek/power/mt6735 下的文件如下

6

pulse changer state machine 状态图如下图所示

7

MTK充放电调试需要注意的几点:1、配置电池温度检测相关参数alps/kernel-3.10/drivers/misc/mediatek/mach/mt6735/lentk6735m_65c_l1/power/cust_battery_meter_table.h热敏电阻有两种风格 10K 和 47K

8

2、电池配置结构了,这些参数是根据电池供应商提供的曲线参数表来配置的,通常是配置常温 25c下的相关参数,具体的参数存放在一下结构数组中,同样位于cust_battery_meter_table.h文件中alps/kernel-3.10/drivers/misc/mediatek/mach/mt6735/lentk6735m_65c_l1/power/cust_battery_meter_table.h// T2 25CBATTERY_PROFILE_STRUC battery_profile_t2[] ={}结构数组中

9

电池充放电参数的更新,对应的电池充放电需要更新的参数由电池供应商提供,需要修改的文件是alps/kernel-3.10/drivers/misc/mediatek/mach/mt6735/lentk6735m_65c_l1/power/cust_battery_meter.h

注意事项
1

做完以上工作,修改了相应的电池曲线之后,重新编译 lk 和 kernel 和 bootimage

2

使用的编译命令如下:

3

编译 lk 的命令: make -j24 lk 2>&1 | tee lk.log

4

编译 kerne 的命令: make -j24 kernel 2>&1 | tee kernel.log

5

编译 bootimage 的命令: make -j24 bootimage 2>&1 | tee bootimage.log

推荐信息