分享

FAQ资料:MT6261平台在calling mode下充电失败

 安徽佩京科技 2018-09-06
MTK FAQ资料:
MT6261平台解决方案

问题描述:
在10min或过了半小时后的某个时间,在通话模式下不能用充电器充电。
在呼叫时显示某个指示器“不能充电”
电池电压水平几乎为3.8V或4V,因此与电池电压无关。

方法:
1) 首先复现问题:在call mode下进行AC充电或USB充电,发现充电停止提示。 抓取充电log,发现是打印over_current_count = 4.  CHARGE too high. bmt向UEM发MSG_ID_DRVUEM_PMIC_IND消息终止充电流程。 

(2) 接着分析:通过Vbat和VISENSE计算ICHARGE时,是ADC获取到的Vbat和VISENSE不准确造成,还是由于硬件原因造成ICHARGE的确大于1A?
因为连续3次检测到ICHARGE超过1A,终止充电的时间太短,从仪器上观测不到这么短时间的电流变化。

将ICHARGE超过1A的检测流程改变,在ICHARGE>1A时不让其返回false直接停止充电。而让其返回true,继续充电。这样在长时间ICHARGE>1A的情况下,观测仪器是否能够捕捉到充电电流大于1A。

经过多轮测试,无论是在AC充电还是USB充电,call mode时综测仪输入的RF功率高或低,通过catcher log都能很容易的看到几乎周期性的连续多次打印ICHARGE>1A,但通过电流仪一次都没观测到充电电流大于1A。
 
 
(3) 推测是ADC measure方面的问题,尝试将 hal/drv_def/drv_features_adc.h 中
//#define __CHARGER_WITH_IMMEDIMATE_ADC__   
行注释掉。 修改后多轮验证,通过充电log没有再发现ICAHRGE>1A的现象。 

(4) 最终结论:若关闭这个option 就不会出现ICHARGE>1A 的话,代表这问题是量auxadc 时因为RF 抽电导致大压降造成。因电流是batsense and Isense 两个电压透过压差及电阻算出电流。而实体auxadc 只有一组,两个channel 分开量的结果就可能遇到量其中一个刚好遇到RF 抽大电流。
目前的solution 是打开sync mode(即注释// #define __CHARGER_WITH_IMMEDIMATE_ADC__),让auxadc 主动避开RF 抽电时间。

注:本文转载自一牛网论坛

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多