本文转载自:http://blog.csdn.net/u010245383/article/details/51006597

硬件平台:MT8382

网上有很多关于电池曲线配置的文档,定位到具体的文件和数据结构,但是具体的数据配置却是没有,由于工作期间需要配置到对应的电池曲线;特意把修改过程使用到的数据记录下来;

电池曲线需要修改 mediatek\custom\pro\kernel\battery\battery\cust_battery_meter_table.h 文件中的BATTERY_PROFILE_STRUC battery_profile_t2[]结构数组;

电池供应商提供恒流放电过程的数据:

对于电池曲线,主要最关心的是放电过程的数据;从放电数据中可知电池的参数:电池最大电压为4.127V,最低电压2.697V,容量为2230.8mA;

BATTERY_PROFILE_STRUC 结构描述的就是一个电池放电(消耗)过程的数据,电压是一致的,电量的表达方式是以另一种形式:百分比;

  1. // T2 25C
  2. BATTERY_PROFILE_STRUC battery_profile_t2[] =
  3. {
  4. {0   , 4127},
  5. {1   , 4081},
  6. {3   , 4039},
  7. {4   , 4025},
  8. {6   , 4001},
  9. ......
  10. {36  , 3789},
  11. {37  , 3783},
  12. {39  , 3771},
  13. {40  , 3765},
  14. {42  , 3753},
  15. ......
  16. {90  , 3432},
  17. {92  , 3414},
  18. {93  , 3406},
  19. {94  , 3397},
  20. {96  , 3375},
  21. {97  , 3364},
  22. {98  , 3351},
  23. {100  , 3317},
  24. {101  , 3316},
  25. ......
  26. };

成员一表示消耗了百分之多少的电量,成员一表示消耗了该电量此时对应的电压值;

BATTERY_PROFILE_STRUC 数据含义:
假如产品的电压范围设置在4.127V - 3.300V,由此可知此时电池的预定使用容量为2100mA,所以每个百分点就是21mA;
 {0   , 4127},   表示消耗0%电量,即此时电池充饱电状态的电压最大值;
 {1   , 4081},   表示消耗1%电量,即此时电压为消耗了21mA时的电压值;
 ......
 {36  , 3789},  表示消耗36%电量,即此时电压为消耗了756mA时的电压值;  
 ......
{100  , 3317}, 表示消耗100%电量,即此时电压为预定最小值;
剩下的电量为储电保护,防止电池过放导致无法充电;
配置电池充电曲线,其实就是放电过程的逆序处理
修改对应文件: mediatek/custom/pro/lk/include/target/cust_battery.h
  1. /* Battery Voltage and Percentage Mapping Table */
  2. VBAT_TO_PERCENT Batt_VoltToPercent_Table[] = {
  3. /*BattVolt,BattPercent*/
  4. {3317,0},
  5. {3432,10},
  6. {3505,20},
  7. {3570,30},
  8. {3637,40},
  9. {3705,50},
  10. {3765,60},
  11. {3825,70},
  12. {3892,80},
  13. {3964,90},
  14. {4127,100},
  15. };
可以根据放电曲线进行相应的修改
{3432,10},    表示充电电量为10%时容量为210mA,电池对应的电压值;
 ......
{3964,90},    表示充电电量为90%时容量为1890mA,电池对应的电压值;
{4127,100},  表示充电电量为100%时,即电池充饱电状态的电压最大值;  

关于电池其他参数的配置,网上有很多帖子都有详细讲解,可以去参考;

MTK 电池曲线配置【转】的更多相关文章

  1. MTK Android Driver :Battery电池曲线

    MTK Android Driver :battery电池曲线 1.配置文件位置: CUSTOM_KERNEL_BATTERY= battery mediatek\custom\\kernel\bat ...

  2. MTK android flash配置

    关于6573集成MCP nandflash的方法,driver_allinone 和Memory Customer Document pdf的说明里面漏了很多细节.在此补上. 1.首先确认flash型 ...

  3. MTK 锁屏配置

    常常我们开 发程序的时候我们不需要系统唤醒系统锁屏功能,用户有时候在看电视或视频的时候不希望系统的锁屏 功能启动,既不想锁频,然而系统却在我们看电视或者视频的时候出来个锁屏的界面进行锁频拉,我们还要想 ...

  4. 1、硬件IO口配置;

    对于MTK TP驱动移植一般分为六部分: 1.硬件IO口配置: 2.TP驱动移植. 3.I2C通信: 4.中断触发: 5.数据上报: 6.虚拟按键. 硬件电路: 1.GPIO配置 打开 mediate ...

  5. 【转】android电池(四):电池 电量计(MAX17040)驱动分析篇

    关键词:android 电池  电量计  MAX17040 任务初始化宏 power_supply 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台: ...

  6. android电池(四):电池 电量计(MAX17040)驱动分析篇【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/8969369 电池电量计,库仑计,用max17040这颗电量IC去计量电池电量,这种方法 ...

  7. MTK平台下Battery驱动分析

    主要涉及代码: Kernel: kernel-3.10\drivers\power\mediatek\ kernel-3.10\drivers\misc\mediatek\mach\mt6580\&l ...

  8. Android4.4电池管理

    一.概述 Android4.4的电池管理功能用于管理电池的充.放电功能. 整个电池管理的部分包含Linux电池驱动.Android电池服务.电池属性和參数.电池曲线优化四个部分. Linux电池驱动用 ...

  9. 高通电池管理基于qpnp-vm-bms电压模式

    CV:Constant Voltage恒压 SMMB charger:Switch-ModeBattery Charger and Boost peripheral开关模式电池充电器和升压外围设备 O ...

随机推荐

  1. Leetcode 274.H指数

    H指数 给定一位研究者论文被引用次数的数组(被引用次数是非负整数).编写一个方法,计算出研究者的 h 指数. h 指数的定义: "一位有 h 指数的学者,代表他(她)的 N 篇论文中至多有 ...

  2. MySQL语句之or和and多条件查询

    在where中可以包含任意数目的and和or操作符,需要注意的是在没有任何其他符号的时候,例如括号,AND的优先级高于OR,因此,当两者一起使用时,先运算AND两边的条件表达式,再运算OR两边的条件表 ...

  3. 数据归一化Feature Scaling

    数据归一化Feature Scaling 当我们有如上样本时,若采用常规算欧拉距离的方法sqrt((5-1)2+(200-100)2), 样本间的距离被‘发现时间’所主导.尽管5是1的5倍,200只是 ...

  4. python学习笔记--python数据类型

    一.整形和浮点型 整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄.工资.成绩等等这样的数据就可以用int类型,有正整数.负整数和0,浮点型的也就 ...

  5. codeforces #301 div2

    A:简单题 每次判断向上转快,还是向下转快即可 #include <cstdio> #include <cstring> #include <iostream> # ...

  6. 【数学】codeforces C. Maximal GCD

    http://codeforces.com/contest/803/problem/C [题意] 给定两个数n,k(1 ≤ n, k ≤ 10^10) 要你输出k个数,满足以下条件: ①这k个数之和等 ...

  7. [Poj2411]Mondriaan's Dream(状压dp)(插头dp)

    Mondriaan's Dream Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 18096   Accepted: 103 ...

  8. maven生命周期和依赖的范围

    转载:http://blog.csdn.net/J080624/article/details/54692444 什么是依赖? 当 A.jar 包用到了 B.jar 包时,A就对B产生了依赖: 在项目 ...

  9. linux定时重启节约内存

    linux服务器上运行的一些程序,比较消耗内存,需要定时重启,进行内存定期释放 0 2 * * *  sudo /sbin/reboot && echo $(date) '重启成功' ...

  10. Google C++ style guide——C++类

    1.构造函数的职责 构造函数中仅仅进行那些没有实际意义的初始化.由于成员变量的"有意义"的值大多不在构造函数中确定. 能够的话,使用Init()方法集中初始化为有意义的数据. 长处 ...