微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 高温停止充电,常温恢复充电软件修改方法

高温停止充电,常温恢复充电软件修改方法

时间: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)中下面两个地方加上两句.

  1. #if (BAT_TEMP_PROTECT_ENABLE == 1)
  2. if ((BMT_status.temperature <= MIN_CHARGE_TEMPERATURE) ||
  3. (BMT_status.temperature == ERR_CHARGE_TEMPERATURE))
  4. {
  5. printf( "[BATTERY] Battery Under Temperature or NTC fail !\n\r");
  6. BMT_status.charger_protect_status = BATTERY_OVER_TEMP;//加上这句话
  7. BMT_status.bat_charging_state = CHR_ERROR;
  8. return PMU_STATUS_FAIL;
  9. }
  10. #endif
  11. if (BMT_status.temperature >= MAX_CHARGE_TEMPERATURE)
  12. {
  13. printf( "[BATTERY] Battery Over Temperature !\n\r");
  14. BMT_status.charger_protect_status = BATTERY_OVER_TEMP;//加上这句话
  15. BMT_status.bat_charging_state = CHR_ERROR;
  16. return PMU_STATUS_FAIL;
  17. }

复制代码

3.请在BAT_BatteryStatusFailAction(void)后面加上

  1. if ((BMT_status.temperature <= (MAX_CHARGE_TEMPERATURE - 5)) && //小于
  2. MAX_CHARGE_TEMPERATURE-5以及高于MIN_CHARGE_TEMPERATURE+5的时候恢复充电
  3. (BMT_status.temperature >= (MIN_CHARGE_TEMPERATURE + 5))&&
  4. (BMT_status.temperature != ERR_CHARGE_TEMPERATURE)&&
  5. (BMT_status.charger_protect_status == BATTERY_OVER_TEMP))
  6. {
  7. BMT_status.bat_charging_state = CHR_PRE;
  8. BMT_status.charger_protect_status = 0;
  9. if (Enable_BATDRV_LOG == 1) {
  10. printf( "[BATTERY] temperture in range... start charging again!\n\r");
  11. }

复制代码



学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top