6.PM 充电
1 配置文件位置:
CUSTOM_KERNEL_BATTERY= battery
mediatek\custom\\kernel\battery\battery\cust_battery.h
mediatek\custom\\kernel\battery\battery\custom_fuel_gauge.h
2充电常用参数修改:
..\mediatek\custom\\kernel\battery\battery\cust_battery.h
3充电电流修改:
#defineUSB_CHARGER_CURRENT Cust_CC_550MA // :Cust_CC_450MA
#define AC_CHARGER_CURRENT Cust_CC_800MA // : Cust_CC_650MA
4.充电电阻设定(根据硬件的bom):
#defineR_CURRENT_SENSE 2 //0.2 Ohm// 0.2欧姆
5 充电温度检测设定
#defineBAT_TEMP_PROTECT_ENABLE 1 //
// #defineBAT_NTC_TSM_1
NTC修改为10K电阻或者47K电阻(NTC 为电池温度保护NegativeTemperature Coefficient)
#define BAT_NTC_101 //#define BAT_NTC_47 0
其他:
#defineV_CHARGER_MIN 4400 //modify //4400 // 4.4 V
#defineV_CHARGER_ENABLE 1 //1:ON , 0:OFF //
其他宏定义说明:
#defineR_CURRENT_SENSE 2 //0.2 Ohm //检测当前充电的电阻
#define R_BAT_SENSE4 //times of voltage //测量电池电压检测电阻
#define R_I_SENSE 4 //times of voltage //测量接电感电流传感器电压的电阻
#defineR_CHARGER_SENSE ((R_CHARGER_1+R_CHARGER_2)/R_CHARGER_2)
// times ofvoltage 测量充电器检测电压的电阻
#defineV_CHARGER_MAX 6500 //6.5 V 充电器的电压最大值
#defineV_CHARGER_MIN 4400 //4.4 充电器的电压最小值
#defineV_CHARGER_ENABLE 0 //1:ON , 0:OFF //充电电压保护使能
/* Teperaturerelated setting */
#defineRBAT_PULL_UP_R 39000 //检测电池温度的上拉电阻
#defineRBAT_PULL_UP_VOLT 1800 //检测电池温度的下拉电阻
#defineTBAT_OVER_CRITICAL_LOW 68237 //用于计算电阻的值
//#defineTBAT_OVER_CRITICAL_LOW 483954
#defineBAT_TEMP_PROTECT_ENABLE 0 电池温度保护
#define BAT_NTC_100 负温度系数
6.7充电界面显示修改:
\mediatek\custom\\lk\include\target\cust_display.h//坐标
\mediatek\platform\mt6577\lk\mt_logo.c//显示
6 电池容量、电池曲线修改:
电池容量修改:
mediatek\custom\\kernel\battery\battery\custom_fuel_gauge.h
#define Q_MAX_POS_50 ((2168* 1316) / 1307)
#define Q_MAX_POS_25 2168
#define Q_MAX_POS_0 ((2168 * 1220) / 1307)
#define Q_MAX_NEG_10 ((2168 * 1162) / 1307)
#define Q_MAX_POS_50_H_CURRENT ((2168 * 1295) / 1307)
#define Q_MAX_POS_25_H_CURRENT ((2168 * 1270) / 1307)
#define Q_MAX_POS_0_H_CURRENT ((2168 * 1102) / 1307)
#define Q_MAX_NEG_10_H_CURRENT ((2168 * 599) / 1307)
电池曲线集成方式:(电压-百分比对应表需要电池厂商提供)
mediatek\custom\\kernel\battery\battery\cust_fuel_gauge.h
BATTERY_PROFILE_STRUCbattery_profile_t1[] =// T1 0C
BATTERY_PROFILE_STRUCbattery_profile_t2[] =// T2 25C
alps\mediatek\kernel\drivers\power\battery_meter.c
关键 int force_get_tbat(void)
alps\mediatek\custom\mt6582\kernel\battery\battery\cust_battery_meter.h
//#define FIXED_TBAT_25
根据是否使用fuelgage温度设置成恒定或自动检测:
/* Disable Battery check for HQA */
//#ifdef MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION
#define FIXED_TBAT_25
//#endif
Thermal protection option 1: battery with NTC
(1) if battery NTC is 10kohm; R334=16.9K (+/-1%), R336=27K (+/-1%)
(2) if battery NTC is 47kohm; R334=61.9K (+/-1%), R336=100K (+/-1%)
Thermal protection option 2: battery without NTC
(1)Close to MT6323 AUXADC_VREF18 PIN,
and the path need shielding with GND
(2) Deletc R334, R336
(3) Use R331, NTC301 for thermal protection
(NTC301 close to battery connector)
[FAQ05789][BMT]Bat_on pin脚悬空会有什么问题
?
[DESCRIPTION]
我司的design是
1.Bat_on pin是用来检测电池+检测电池温度
2.该pin脚的电压范围0-1.062V
3.如果不使用NTC功能,请将Bat_on pin脚接地,并且软体固定返回温度25.
[PLATFORM]
mt6575 MT6515 MT6577 MT6517 MT6589
如果悬空:
1.软体会判断找不到电池。
2. 插着usb或是充电器 不能开机,会卡住检测电池的循环里。
3.不插usb或是充电器 可以正常开机,
但是底层获得的电池的温度是最低的温度,-20度。如果这个时候还采用FG的电量计算方式
会以-10度来构造zcv表格。
4.开机之后,在75/77平台上面,插入USB,可以充电,不会关机。
在89平台,一旦插入usb,就会重启。(软体检测到该pin脚悬空,判断为无没有电池,调用关
机函数)