[FAQ05097][BMT] 高溫截至充電,低溫恢復充電,軟件修改方法
內容
[DESCRIPTION]
默認code,在電池處于高溫時,是截至充電的,即使返回常溫也不會再充電。我們只需要在軟件上面添加一種狀態,在高溫的時候設置為BATTERY_OVER_TEMP,
返回常溫時,把充電狀態變回BMT_status.bat_charging_state = CHR_PRE,即可返回充電。
不過有三點需要重點注意:
1.電池必須具有NTC功能(也就是溫度檢測功能)。
2.我們指的溫度,是指電池的溫度,不是環境的問題,環境溫度可以很快變化,電池溫度的變化需要一點時間。
3.如返回常溫時,還不能充電,請捉取一份log給我司分析。
[PLATFORM]
MT6575 MT6515 MT6577 MT6517 MT6589
1.文件開頭加上#define BATTERY_OVER_TEMP
32.在函數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;
}
3.請在BAT_BatteryStatusFailAction(void)后面加上
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");
}
}