接硬测报告:偶发重启后不能充电。
经过测试、分析,判断引起
偶发重启后不能充电(无充电电流) 故障
为 AP(主板)温度过高,系统自动关闭充电。
测试过程如下:
测试一、
去除系统中温度检测功能(注释CONFIG_THERMAL宏),进行测试,测试30分钟,重启26次,未出现不能充电现象
测试二、
代码恢复原始代码(打开温度检测功能),进行测试,测试30分钟,重启25次,最后一次出现不能充电现象
(无充电电流)。
分析log,发现:
[Power/BTS_Thermal] T_AP=49000
T_btsmdpa=47000,确定为AP温度过高照成系统关闭充电。
测试三、
代码恢复原始代码(打开温度检测功能),安装 CPU_Z 软件检测系统温度,进行测试,测试30分钟,重启11次,出现不能充电现象
(无充电电流)。
刚开始充电时系统温度为:
停止充电时系统温度为:(停止充电时mtktsAP为49,拍照时降为48.6)
结论:
偶发重启后不充电(无充电电流),是由于
AP(主板)温度过高,系统温度保护起作用,关闭充电
。
查看FAQ发现,有以下相关FAQ:
FAQ14151 更改温度
FAQ14794 关闭温度
FAQ08973 打开
thermal module相
关log
查看发现,只有
[FAQ14151]MT6735/35M/53使用switch charger充
电时电流被限制为650mA 与我们现象基本一致,其FAQ内容如下:
[DESCRIPTION]
使用switch charger充电的时候,
会出现充电电流被限制在650mA的状况,
而且log中可以看到"BCCT"限制充电电流为650mA;
原因是因为thermal.conf中AP default设定trip point 34C的时候,
调用BCCT cooler 00,
这个cooler就是限定充电电流为default 650mA,
我司default设定的温度34C,
是根据使用pulse charger 800mA充电时候板子发热状况设定的,
而使用switch charger,充电电流通常比较大,
所以很容易达到34C的温度
[SOLUTION]
修改方法:
您需要在自己的板子上,根据以下的测试来确定贵司自己的温度点
1.进入工模,others->thermal
选择"thermal protection only"
然后点击"APPLY NEW THERMAL POLICY"
2.在您的phone当前没有其他的stress在运行,屏幕处于基本亮度的时候,
将充电电流设置成最大,
然后测试您的板温,记录下这个值,假设您测试的温度为48C
3.修改thermal.conf
conf存放的路径是在alps\device\mediatek\$(project)中
MT6735修改thermal.conf
MT6735M修改thermal_eng.conf 以及thermal.conf
MT6753修改thermal_6753_eng.conf,thermal_6753.conf,以及thermal.wfd.6753.conf
4.修改的方法,
将您要修改的conf文件放到thermal config tool中的decrypt文件夹下,
在您要修改的conf文件爱名称的最后加上.mtc,
双击decrypt文件夹中的decypt_all_config,
decrypt目录下就会看到conf对应的txt文件,
您可以修改下面一行:
/proc/driver/thermal/tzbts
3 95000 0 mtktspa-sysrst 48000 0 mtk-cl-bcct01 34000 0 mtk-cl-bcct00
假设您测试的板温为48C,修改为:
3 95000 0 mtktspa-sysrst 60000 0 mtk-cl-bcct01 48000 0 mtk-cl-bcct00
mtk-cl-bcct00的温度修改为48C,前面mtk-cl-bcct01的温度要高一些,这里假设设定为60C
然后在windows上面拉出dos命令行,
将thermal config tool中的encrypt命令拖进去,空格,
再将您修改后的conf txt文件拖进去,空格,
然后再输入您想要生成的conf名称,
执行后,就会在dos命令行的目录下生成您要的conf文件,
然后将其放回您取出的地方,
build code即可。
由于没有加密、解密工具,无法进行操作,后来 热心网友提供 加密、解密工具,按其工具操作,解密工具位于工具目录中 decrypt 文件夹下,加密工具位于工具文件夹根目录下。
使用工具,进行如下修改:
/proc/driver/thermal/tzbts
4 95000 0 mtktspa-sysrst 51000 0 mtk-cl-bcct02 49000 0 mtk-cl-bcct01 34000 0…………
修改为
4 95000 0 mtktspa-sysrst 60000 0 mtk-cl-bcct02 56000 0 mtk-cl-bcct01 34000 0…………
能够正常充电,但MTK给予回复:
这样修改后的意思就是在60C执行bcct02, 超过56C的时候执行bcct01
thermal这边的限流应当要根据贵司板子的实际情况,假设bcct01是停止充电的话,贵司可以考量一下,是认为超过56C的时候停止充电
但是此时若板子在50C了,已经算蛮高温了,若继续充电,恐怕对板子不利,
客户的体验度也不是很好
最根本的解决方法就是降低板子的温度,即便是充电,也不应当升温这么高
最主要是硬件以及结构设计问题,需要硬件及结构介入,才能从根本解决问题,此方案只能够从软件层面Cover问题。