(MT6261M_11CW1352MP_V2_GSM)
当BMT.bat_state = CHR_ERROR时会出现charge error
1、当检测到六次过电压(大于6.5V)或欠电压(小于0V)时
1. if (bmt_PhyCheck_VCharger(BATPHYS) == KAL_FALSE)
2. {
3. drv_trace0(TRACE_ERROR, BMT_INVALID_CHARGER_TRC);
4. #ifdef __SMN_OVER_CHARGING_POPUP_WINDOW_FEATURE_MODIFY__
5. if(smn_over_charger_status)
6. {
7. bmt_sendMes2UEM(BMT_INVALID_CHARGER_OVERVOL);
8. }
9. else
10. {
11. bmt_sendMes2UEM(BMT_INVALID_CHARGER);
12. }
13. #else
14. bmt_sendMes2UEM(BMT_INVALID_CHARGER);
15. #endif
16. BMT.bat_state = CHR_ERROR;
17. return;
18. }
2、当检测到3次过电流(未插入充电器电流大于1A)时
1. if (bmt_PhyCheck_OverCurrent(BATPHYS) == KAL_FALSE)
2. {
3. drv_trace0(TRACE_ERROR, BMT_ICHARGE_OVER_TRC);
4. bmt_sendMes2UEM(BMT_OVERCHARGECURRENT);
5. BMT.bat_state = CHR_ERROR;
6. return;
7. }
3、CC(指预充阶段后的CC阶段)时5次检测到欠电流(CC时充电电流小于50mA)时
1. if (bmt_PhyCheck_LowCurrent(BATPHYS) == KAL_FALSE)
2. {
3. drv_trace0(TRACE_GROUP_10, BMT_ICHARGE_LOW_TRC);
4. bmt_sendMes2UEM(BMT_LOWCHARGECURRENT);
5. BMT.bat_state = CHR_ERROR;
6. return;
7. }
4、充电电压大于电池充电电压时
1. if (bmt_PhyCheck_VBat(BATPHYS) == KAL_FALSE)
2. {
3. drv_trace0(TRACE_ERROR, BMT_VBAT_OVER_TRC);
4. bmt_sendMes2UEM(BMT_OVERVOLPROTECT);
5. BMT.bat_state = CHR_ERROR;
6. return;
7. }
5、检测到5次温度过高(大于55℃)或过低(小于0℃)时未定义复充宏__TEMP_RECHARGE_SUPPORT__
1. if (bmt_charging_para.bmt_check_temp)
2. {
3. if (bmt_PhyCheck_HighBatTemp(BATPHYS) == KAL_FALSE)
4. {
5. drv_trace0(TRACE_ERROR, BMT_VTEMP_OVER_TRC);
6. #ifdef __TEMP_RECHARGE_SUPPORT__ //zixiang for tem_recharge
7. if(!temp_error)
8. bmt_sendMes2UEM(BMT_OVERBATTEMP);
9. #else
10. bmt_sendMes2UEM(BMT_OVERBATTEMP);
11. #endif
12.
13. #ifdef __TEMP_RECHARGE_SUPPORT__ //zixiang for tem_recharge
14. BMT.bat_state = CHR_MAINTENANCE;
15. #else
16. BMT.bat_state = CHR_ERROR;
17. #endif
18. return;
19. }
20.
21. if (bmt_PhyCheck_LowBatTemp(BATPHYS) == KAL_FALSE)
22. {
23. drv_trace0(TRACE_ERROR, BMT_VTEMP_LOW_TRC);
24. #ifdef __TEMP_RECHARGE_SUPPORT__ //zixiang for tem_recharge
25. if(!temp_error)
26. bmt_sendMes2UEM(BMT_LOWBATTEMP);
27. #else
28. bmt_sendMes2UEM(BMT_LOWBATTEMP);
29. #endif
30.
31. #ifdef __TEMP_RECHARGE_SUPPORT__ //zixiang for tem_recharge
32. BMT.bat_state = CHR_MAINTENANCE;
33. #else
34. BMT.bat_state = CHR_ERROR;
35. #endif
36. return;
37. }