高温停止充电,常温恢复充电软件修改方法
时间:10-02
整理:3721RD
点击:
默认code,在电池处于高温时,是截至充电的,即使返回常温也不会再充电。我们只需要在软件上面添加一种状态,在高温的时候设置为Battery_OVER_TEMP,
返回常温时,把充电状态变回BMT_status.bat_charging_state = CHR_PRE,即可返回充电。
不过有三点需要重点注意:
1.电池必须具有NTC功能(也就是温度检测功能)。
2.我们指的温度,是指电池的温度,不是环境的问题,环境温度可以很快变化,电池温度的变化需要一点时间。
3.如返回常温时,还不能充电,请捉取一份log给我司分析。
解决方法~
此方法支持的平台有:MT6575 MT6515 MT6577 MT6517MT6589
1.文件开头加上
#define BATTERY_OVER_TEMP 3
2.在函数BAT_CheckBatteryStatus(void)中下面两个地方加上两句.
- #if (BAT_TEMP_PROTECT_ENABLE == 1)
- if ((BMT_status.temperature <= MIN_CHARGE_TEMPERATURE) ||
- (BMT_status.temperature == ERR_CHARGE_TEMPERATURE))
- {
- printf( "[BATTERY] Battery Under Temperature or NTC fail !\n\r");
- BMT_status.charger_protect_status = BATTERY_OVER_TEMP;//加上这句话
- BMT_status.bat_charging_state = CHR_ERROR;
- return PMU_STATUS_FAIL;
- }
- #endif
- if (BMT_status.temperature >= MAX_CHARGE_TEMPERATURE)
- {
- printf( "[BATTERY] Battery Over Temperature !\n\r");
- BMT_status.charger_protect_status = BATTERY_OVER_TEMP;//加上这句话
- BMT_status.bat_charging_state = CHR_ERROR;
- return PMU_STATUS_FAIL;
- }
- if ((BMT_status.temperature <= (MAX_CHARGE_TEMPERATURE - 5)) && //小于
- MAX_CHARGE_TEMPERATURE-5以及高于MIN_CHARGE_TEMPERATURE+5的时候恢复充电
- (BMT_status.temperature >= (MIN_CHARGE_TEMPERATURE + 5))&&
- (BMT_status.temperature != ERR_CHARGE_TEMPERATURE)&&
- (BMT_status.charger_protect_status == BATTERY_OVER_TEMP))
- {
- BMT_status.bat_charging_state = CHR_PRE;
- BMT_status.charger_protect_status = 0;
- if (Enable_BATDRV_LOG == 1) {
- printf( "[BATTERY] temperture in range... start charging again!\n\r");
- }
学习了
