高温导致的设备重启

platfom:RK3399
OS:Android 7.1.2

现象

设备在密闭未开空调的一个实验室做满负荷老化实验,发现十几分钟时候会出现关机重现现象.

分析

步骤一:

首先分析认为有非常大的可能性是CUP过温自我保护重启了.

RK808:

查看RK808的数据手册发现:
高温导致的设备重启_第1张图片
发现RK808的默认温度阈值是85度

CPU/GPU

rk3399.dtsi:

 soc_thermal: soc-thermal {
                        polling-delay-passive = <20>; /* milliseconds */
                        polling-delay = <1000>; /* milliseconds */
                        sustainable-power = <1000>; /* milliwatts */

                        thermal-sensors = <&tsadc 0>;

                        trips {
                                threshold: trip-point-0 {
                                        temperature = <70000>; /* millicelsius */
                                        hysteresis = <2000>; /* millicelsius */
                                        type = "passive";
                                };
                                target: trip-point-1 {
                                        temperature = <85000>; /* millicelsius */
                                        hysteresis = <2000>; /* millicelsius */
                                        type = "passive";
                                };
                                soc_crit: soc-crit {
                                        temperature = <115000>; /* millicelsius */
                                        hysteresis = <2000>; /* millicelsius */
                                        type = "critical";
                                };
                        };

70度温控开始工作,85度会降频,115度会重启.

CPU温度

cat /sys/class/thermal/thermal_zone0/temp

GPU温度:

cat /sys/class/thermal/thermal_zone0/temp

步骤二:

做了如下实验:

1.更换密闭空间测试,看是否会复现

2.使用热风枪加热主板(主要为 CPU),看是否会复现

复现确实会复现;所以判定为过温导致系统重启.

步骤三:

散热措施:

1.通风

2.增加导热硅胶

3.增加散热片

4.增加风扇

5.增加

6.增加通风孔

7.动态调频/将频

进行上述修改措施之后重新测试,发现还是有一定概率发生系统重启.这就非常奇怪了,散热措施做的已经很好了.为什么还会重启呢?

步骤四:

在步骤三的情况下,测试并读取CPU温度.

cat /sys/class/thermal/thermal_zone0/temp

发现在CPU温度为60多度,接近70度的时候系统发生重启.这显然没有达到系统关机的出发条件.那肯定是其他地方的原因导致了重启.

步骤五:

排查所有开机/重启相关的电路,最后终于发现了问题
高温导致的设备重启_第2张图片

复位电路部分:

高温使得D9011反向导通,OTP_RST->D9012->D9011->4G_RST形成回路.使得TP9239电位拉低.从而形成一个复位的电平效果,导致系统重启.

解决方式

由于当时设计的时候想同时复位4G模块,所以增加了4G_RET电路,并加在了复位电路上.现在看是有问题.

去掉二极管D9011,4G复位可以改用软件复位.

你可能感兴趣的:(实战调试记录)