微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 82未插充电器提示“”压过高,请断开充电器“”问题

82未插充电器提示“”压过高,请断开充电器“”问题

时间:10-02 整理:3721RD 点击:
在6582上面发一个问题,未插充电器提示“”压过高,请断开充电器“”问题
通过打印LOG信息来看:
[    4.034858].(0)[56:bat_thread_kthr][power/Battery] AvgVbat=(7199),bat_vol=(7199),AvgI=(0),I=(0),VChr=(17021),AvgT=(25),T=(25),pre_SOC=(100),SOC=(100),ZCV=(7207)
[    4.034883].(0)[56:bat_thread_kthr][Power/Battery] [BATTERY] BMT_status.charger_vol(17021) > 6500 mV
[    4.034901].(0)[56:bat_thread_kthr][Power/Battery] [BATTERY] BATTERY_NOTIFY_CASE_0001_VCHARGER (1)
[    4.034920].(0)[56:bat_thread_kthr][Power/Battery] [BATTERY] BATTERY_NOTIFY_CASE_0002_VBATTEMP (1)
AvgVbat=(7199),bat_vol=(7199),VChr=(17021),电压已经有问题,不过我测量Vbus(0v)与batsense(4.0v)这两个脚电压是正常的,
在代码中
battery_xlog_printk(BAT_LOG_CRTI, "[BATTERY] BMT_status.charger_vol(%ld) > %d mV\n", BMT_status.charger_vol, V_CHARGER_MAX);
跟代码发现
kal_int32 battery_meter_get_charger_voltage(void)
{
    int ret=0;
    int val=0;
   
    val = 5; // set avg times
    ret = battery_meter_ctrl(BATTERY_METER_CMD_GET_ADC_V_CHARGER, &val);
//val = (((R_CHARGER_1+R_CHARGER_2)*100*val)/R_CHARGER_2)/100;
    return val;
}
函数只有接口看不到里面的代码,这个问题不知道有人解过没有?


需要验证两个问题:
(1) 主板上有没有充电IC,如果有是不是设置充电电压为4.35V。
(2) 充电电压是测量哪两个脚。
下面有两个示意图:


最好是跟踪一下代码,  看看为什么会出现这个提示!

(1)主板上面是有充电IC,BQ24158,采用默认设置的充电电压为4.2V,有个宏控制的是高电压充电为4.35V,软件中没有开启这个宏
(2)充电电压检测两个PIN脚VDCt和Vbus(CHR_LDO),用万用表量过没有插入充电器的时候的确没有电压,插入充电器后有电压,并且电压都正常的,

跟宗代码直走kal_int32 battery_meter_get_charger_voltage(void)
{
    int ret=0;
    int val=0;
   
    val = 5; // set avg times
    ret = battery_meter_ctrl(BATTERY_METER_CMD_GET_ADC_V_CHARGER, &val);
//val = (((R_CHARGER_1+R_CHARGER_2)*100*val)/R_CHARGER_2)/100;
    return val;
}
函数里面,而battery_meter_ctrl 这个函数在一个.h文件中只有一个定义,但是没有具体实现的地方,这部份是PMU电源管理IC部分代码,再往里面跟看到不里面具体检测的实现


跟下代码, 看看是不是软件设置有问题。

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

网站地图

Top