Difference between revisions of "MITO 8M Mini SOM/MITO 8M Mini Hardware/Electrical Thermal management and heat dissipation"

From DAVE Developer's Wiki
Jump to: navigation, search
Line 25: Line 25:
  
 
DAVE Embedded Systems' team is available for any additional information, please contact [mailto:sales@dave.eu sales@dave.eu].
 
DAVE Embedded Systems' team is available for any additional information, please contact [mailto:sales@dave.eu sales@dave.eu].
 +
 +
=== Temperature sensor on SOC ===
 +
The internal temperature sensor of iMX8M Mini SOC has some limitations regarding the operative range (from 10 to 105°C) and the precision (±5 accuracy).
 +
 +
If the operative temperature is a crucial parameter on the system where MITO 8M Mini is integrated, we suggest adding one or more temperature sensors on the carrier board in order to overcome these limitations.
 +
 +
In the following '''Software thermal protection''' chapter, the implementation of reading and trip points management are referred at the internal SOC temperature sensor.
  
 
=== Heatsink suggestion ===
 
=== Heatsink suggestion ===
Line 43: Line 50:
 
*'''TBD''' for Consumer parts
 
*'''TBD''' for Consumer parts
 
*95°C for Industrial parts
 
*95°C for Industrial parts
 
+
{| style="color:#000000; border:solid 2px #73B2C7; background-color:#ededed;font-size:95%; vertical-align:middle;"
 +
|[[File:TBD.png|30px]]
 +
|'''Section not completed yet'''
 +
|}
 
====Linux kernel====
 
====Linux kernel====
 
At Linux level, a more sophisticated protection mechanism is implemented. Please refer to the following sections for more details.
 
At Linux level, a more sophisticated protection mechanism is implemented. Please refer to the following sections for more details.
Line 52: Line 62:
 
** passive threshold: '''TBD'''
 
** passive threshold: '''TBD'''
 
** critical threshold: '''TBD'''
 
** critical threshold: '''TBD'''
 +
{| style="color:#000000; border:solid 2px #73B2C7; background-color:#ededed;font-size:95%; vertical-align:middle;"
 +
|[[File:TBD.png|30px]]
 +
|'''Section not completed yet'''
 +
|}
 
*for Industrial parts
 
*for Industrial parts
 
** passive threshold: 85°C
 
** passive threshold: 85°C

Revision as of 11:08, 23 February 2021

History
Version Issue Date Notes
1.0.0 Dec 2020 First release


Thermal management[edit | edit source]

The MITO 8M Mini/Nano SOM is designed to support the maximum available temperature range declared by the manufacturer.

The customer shall define and conduct a reasonable number of tests and verification in order to qualify the DUT capabilities to manage the heat dissipation.

Any heatsink, fan etc shall be defined case by case.

DAVE Embedded Systems' team is available for any additional information, please contact sales@dave.eu.

Temperature sensor on SOC[edit | edit source]

The internal temperature sensor of iMX8M Mini SOC has some limitations regarding the operative range (from 10 to 105°C) and the precision (±5 accuracy).

If the operative temperature is a crucial parameter on the system where MITO 8M Mini is integrated, we suggest adding one or more temperature sensors on the carrier board in order to overcome these limitations.

In the following Software thermal protection chapter, the implementation of reading and trip points management are referred at the internal SOC temperature sensor.

Heatsink suggestion[edit | edit source]

The MITO 8M Mini/Nano SOM is designed with four holes that allow to mount a heatsink directly on the CPU IC.

See Mito 8M Mini/Nano Board Layout section for more details.

Software thermal protection[edit | edit source]

In DESK-MX8-L, two software thermal protection mechanisms are implemented. Both are based on the processor's temperature sensor. It is worth remembering that maximum junction temperature (also denoted as Tj in the rest of the document) is:

  • 95°C for Consumer parts
  • 105°C for Industrial parts

U-Boot[edit | edit source]

At U-Boot level, automatic boot procedure is halted until Tj is smaller than (following temperatures might seem excessively low but they take into account the intrinsic poor precision of the temperature sensor to provide a reasonable safe margin):

  • TBD for Consumer parts
  • 95°C for Industrial parts
TBD.png Section not completed yet

Linux kernel[edit | edit source]

At Linux level, a more sophisticated protection mechanism is implemented. Please refer to the following sections for more details.

The default temperature thresholds depend on the silicon grade, as follows:

  • for Consumer parts
    • passive threshold: TBD
    • critical threshold: TBD
TBD.png Section not completed yet
  • for Industrial parts
    • passive threshold: 85°C
    • critical threshold: 95°C

Practically speaking, for DESK-MX8-L this mechanism makes use of two different thresholds, denoted as trip_point0 (also known as passive threshold) and trip_point1 (also known as critical threshold).

When Tj reaches trip_point0, Linux kernel scales down processor frequency.

If Tj reaches trip_point1, a complete shutdown is triggered:

thermal thermal_zone0: critical temperature reached(95 C),shutting down

By default, temperature thresholds are set up as follows:

  • trip_point0: 85°C
  • trip_point1: 95°C.

Trip point thresholds can be accessed via sysfs interface from user space. The following example shows how to read the values of the trip points:

root@mito:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp
85000
root@mito:~# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
950000

This example shows how to set trip points 0 and 1 to 95°C and 100°C respectively:

echo 95000 > /sys/class/thermal/thermal_zone0/trip_point_0_temp
echo 100000 > /sys/class/thermal/thermal_zone0/trip_point_1_temp

Please note that:

  • it is possible to set up trip points greater than the maximum junction temperature indicated by manufacturer datasheet;
  • exceeding maximum junction temperature indicated by manufacturer datasheet may cause permanent damage.

To read current processor temperature please issue this command (reported temperature is 36.676°C in the example):

root@mito:~# cat /sys/class/thermal/thermal_zone0/temp
36676

For more details about this functionality, please refer to Documentation/thermal/sysfs-api.txt in the kernel sources.