使用LS1012A 核心板,运行Ubuntu 18.04 操作系统,在做高温55℃和70℃试验时一直无法通过,CPU挂掉。

由于结构限制,前期并未增加散热片等散热措施。

系统运行时,通过

cat /sys/class/thermal/thermal_zone0/temp

命令读取内部温度传感器温度,发现高温55℃环境下CPU温度一直维持在98~103℃之间,温度较高。

只能考虑通过降功耗和增加散热装置两种方法降温。

首先降功耗:

eMMC降功耗

测试电路板上CPU和eMMC温度较高,并且eMMC芯片表面温度比CPU表面温度还要高10℃。

查找eMMC芯片手册

bios 中限制tdp功耗 bios 降低功耗_散热片

DDR接口比HS200功耗要低一点,原厂的接口使用的是HS200,可以通过修改设备树实现

修改  /home/forlinx/work/OK10xx-linux-fs/flexbuild/packages/linux/linux/arch/arm64/boot/dts/freescale/fsl-ls1012a-rdb.dts 文件

修改如下内容,改为DDR接口

&esdhc1 {
     mmc-ddr-1_8v;    /*mmc-hs200-1_8v*/
     status = "okay";
 };

修改温度限值

修改   /home/forlinx/work/OK10xx-linux-fs/flexbuild/packages/linux/linux/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi 文件 中如下内容:

cpu_alert: cpu-alert {
                         temperature = <65000>;
                         hysteresis = <5000>;
                         type = "passive";
                     };cpu_crit: cpu-crit {
                         temperature = <110000>; /*95000*/
                         hysteresis = <3000>;
                         type = "critical";

此部分是CPU温度限制,65000表示65℃时触发cpu_alert警告,

110000 表示检测到温度传感器110℃时触发 cpu-crit 功能,经过试验,触发 cpu-crit 时,会强制CPU停机,但并不能断电降温,表现就是死机。

继续看下面

cooling-maps {
                     map0 {
                         trip = <&cpu_alert>;
                         cooling-device =
                             <&cpu0 THERMAL_NO_LIMIT
                             THERMAL_NO_LIMIT>;
                     };

表示的是 cpu_alert 时触发散热功能,可以用于启动主动散热措施,由于本机并未提供主动散热功能接口,所以此处写的是THERMAL_NO_LIMIT

此功能无用,仅能用来监测温度。

为了保证功能正常,将CPU停机温度从95℃改为了110℃。

CPU降频

系统中已经提供了降频接口,分别是功耗控制策略和主频控制,通过内置的 cpufreq 软件实现;

功耗控制策略有5种,默认使用的是 ondemand ,在此不再详细描述。

主频可选的只有两种 1G和500M,查询数据手册中的clock部分发现,硬件确实只支持两种频率:

bios 中限制tdp功耗 bios 降低功耗_硬件_02

只能将CPU频率限制到最低的500M,使用的方法是在启动脚本中加入调频命令:

cpufreq-set -u 500000 

将CPU最高频率限制在500M,不管使用哪种调频策略,最高都只能是500M。 cpufreq-set 的用法不在此讲述。

测试

经过以上三处改动后测试,功耗只是降低了0.1W左右,CPU温度仅仅降低2~5℃,效果并不明显。仍然不能满足要求。

散热措施

飞凌核心板设计时并未考虑散热,给后期增加散热片造成了很多麻烦。

以下都是在室温20℃,自然散热条件下测试

9.5*25*4mm铝散热片

CPU满载运行时温度可以降低4℃,空载运行时温度无太大变化。

9.5*9.5*1mm厚铜片

CPU满载运行时温度可以降低1℃,空载运行时温度无太大变化。

42*42mm,17um石墨烯薄片覆盖

CPU满载运行时温度可以降低4℃,空载运行时温度可降低4℃。

20*20mm 17um 石墨烯片

CPU满载运行时温度可以降低2℃,空载运行时温度可降低2℃。

待继续测试