With the advancement in the technology, we have seen an exponential growth in the performance of the System-on-chips (SoC). Systems are capable of performing complex tasks at high speeds. There is an increasing trend in power consumption in high performance ARM based SoCs. Thus better thermal management solutions are required to improve the performance and reliability of the system. This article provides an overview of the thermal management solutions available for Toradex computer-on-modules.
Colibri modules can uses both active and passive thermal management solutions to optimize system performance. Toradex provide software tool like Colibri Monitor to monitor and tweak the system frequency.
Colibri PXAxx modules runs at a fixed frequency. Toradex provides ways to manually change the system frequency in order to tweak or optimize the system performance using software configurations. In most of the use cases, a cooling solution should not be required. The maximum temperature is limited by the case temperature of the PXA processor which must not exceed 85°C. For more details, please refer to the respective Colibri module datasheet and Marvell’s EMTS.
Colibri Tegra modules uses Dynamic Voltage and Frequency Switching (DVFS) and Thermal Throttling for system performance management. Further on you can also dynamically power on and of CPU cors (WinCE from Image 2.1b2 on). For more details, please refer to this article. System monitors and dynamically adjust its operating frequency based on the operating conditions.
On Linux, tegrastats command can be used to view the CPU utilization. For more details, please refer to the following articles:
If peak performance is required for short duration, heat dissipation is not the matter of concern because of the advanced power management.
When full CPU / Graphics performance is required for a longer period, it is highly recommended to test the system thermal behavior in the given condition.
|Module Version||Max Operating Temperature (SoC)|
|Colibri T20||90 °C|
|Colibri T20 IT||105 °C|
|Colibri T30||90 °C|
For more details, please refer to the thermal specification in the respective Colibri module datasheet.
The limits for the Colibri T20 on WinCE are:
|SoC Temperature||Maximum Frequency|
|upto 60 °C||1000 MHz|
|60 °C to 85 °C||800 MHz|
|greater than 85 °C||Decreases frequency in steps till 500 MHz|
The temperature needs to drop at least 5°C until it uses the higher frequency again.
We have tested few off-the-shelf heatsink solutions available in the market with Colibri T20 module.
For more details, please refer to the following test report:
For WinCE see more options in the Resource Manager Registry Settings.
Colibri T30 utilize DVFS for performance and thermal management. Colibri T30 module also feature hardware shutdown to protect the module. Following are the temperature limits:
CPU temperature > 115 °C or Module temperature > 95°C (On WinCE, its limited to 85°C)
On Linux, system try to limit its maximum operating temperature. One can access this feature via "generic thermal sysfs". The algorithm starts once the SoC temperature reaches 60 °C.
We have tested few off-the-shelf heatsink solutions available in the market with Colibri T30 module.
For WinCE see more thermal throttling options see also the Resource Manager Registry Settings.
For more details, please refer to the following test report:
Apalis standard included a robust, rigid mounting mechanism to support thermal solutions. To implement thermal solution on the carrier board, please refer to the [Article not found #100044].
An optimized heats sink is available for each version of Toradex Apalis module.
The following table shows the compatibility of the available Apalis heatsink:
|Apalis Heatsink Type, Version||Compatible Apalis module||Remarks|
|Type 1, V1.0A||Apalis iMX6Q IT||Part Number: 23051000|
|Type 2, V1.0A||Apalis T30||Part Number: 23061000|
|Type 3, V1.0A||Apalis iMX6Q, Apalis iMX6D and Apalis TK1||Part Number: 23071000|
The heat sink can be used as passive or active cooling solution. Passive means that the natural convection is used to transport the heat from the surface to the air. The efficiency of the natural convection is dependent on the housings and the environment. This solution has no moving parts and does not produce noise. If the passive cooling is not sufficient, a fan can be mounted on top of the heat sink. This increases the efficiency dramatically. The speed of the fan can be controlled by using one of the free PWM signals based on SoC temperature.
The thermal management system on the Apalis T30 module is similar to the Colibri T30 module. Heatsink optimized for the Apalis T30 module is available for the customers. To order Apalis heatsink, please visit Toradex Webshop.
The maximum junction temperature of SoC is depended on the product variant as mention in the table below:
|SoC Version||Maximum Junction Temperature|
|iMX6 IT||105 °C|
On Linux, following table list down the default temperature dependent frequency scaling behaviour:
|Temperature (SoC)||Maximum Frequency|
|upto 85 °C||1000 MHz|
|85 °C to 100 °C||800 MHz|
|greater then 100 °C||Shutdown|
We recommend you to measure the power consumption of the system, before and after making the changes. It helps in getting a better understanding of the power management of the system:
The Tegra modules have three display interfaces, make sure only you only enable the used display interface and disable the unused ones. For example: if only LCD interface is used. Please use the Tegra specific registry settings as mentioned in this article.
BootupStyle = 1 HDMIHotplugBehavior = 2
One can use the Colibri Monitor to change the CPU frequency to test system performance and power consumption.
Make sure none of the pins are unnecessarily toggling. Also make sure all input pins are on a defined voltage level. The GPIO Config tool will be helpful in testing.
Enter Suspend mode during idle time or even switch off the module completely. Toradex WinCE images offer fast boot (in some cases boot time is less than 0.5 Seconds).
Use Colibri Monitor to check the CPU Load. If load is unexpectedly high then check the application software. Some easy modifications may help to lower the CPU load. e.g Use interrupts instead of polling, sleep instead of busy waits, etc.
For this step you should measure the power consumption, in some cases disabling drivers may have a negative impact on power consumption. To learn more about how to disable drivers, please refer to this article.