wiki:venice/thermal

Version 4 (modified by Tim Harvey, 4 months ago) (diff)

page clean-up and expand on reading board/cpu temperature

See also

Venice Thermal

Venice Thermal Ratings

Gateworks pre-installs a heatsink on the CPU for all Venice boards. This heatsink provides basic cooling for the board during development but customers need to design their own thermal solution based on their particular enclosure, environment and operating conditions.

The 1600MHz IMX8MM Industrial Temp SoC used for Venice is rated at:

  • Max: 105C Tj (Junction Temp)
  • Min: -40C Tj (Junction Temp)

The thermal resistances for the packages assuming natural convection is:

  • RθJC (junction to case) = 4°C/W
  • RθJB (junction to board) = 7.8°C/W
  • RθJA (junction to ambient) varies per baseboard but is expected to be about 20°C/W

Venice Temperature Readings

Venice has the ability to measure the board temperature and CPU temperature.

Both values are important, but the CPU will be the hottest component and thus should be watched closely.

CPU Temperature

The IMX8MM has an interface for measuring the internal CPU junction temperature.

A Linux thermal sysfs driver exists which supports reading the CPU temperature and configuring various limits.

internal CPU junction temperature can be read via Linux:

~# cat /sys/class/thermal/thermal_zone0/type
cpu-thermal
~# cat /sys/class/thermal/thermal_zone0/temp 
59000
~# cat /sys/class/thermal/thermal_zone0/trip_point_0_type 
passive
~# cat /sys/class/thermal/thermal_zone0/trip_point_0_temp 
95000
~# cat /sys/class/thermal/thermal_zone0/trip_point_1_type 
critical
~# cat /sys/class/thermal/thermal_zone0/trip_point_1_temp 
105000
  • Linux thermal sysfs devices refer to temperature in milidegree Celcius thus 105000 is 105C
  • The above shows the cpu-thermal sensor currently measuring 59C with a 'passive' trip at 95C (at which point CPU frequency throttling will occur) and a 'critical' trip at 105C (at which point the CPU will reset)

Board Temperature

Board temperature is monitored via the Gateworks System Controller (GSC) via a thermister located on the board.

A Linux hwmon driver exists which supports reading and configuring the MAX6642 in Linux:

~# DEV=$(for i in $(ls /sys/class/hwmon); do [ "gsc_hwmon" = $(cat /sys/class/hwmon/$i/name) ] && echo $i; done) # find GSC device
~# cat /sys/class/hwmon/$DEV/temp1_input
48100
  • Linux hwmon devices refer to temperature in milidegree Celcius thus 48100 is 48.1C

The board temperature can also be shown in U-Boot:

u-boot=> gsc hwmon
temp    : 34.0C
vdd_bat : 0.000V
vdd_vin : 15.292V
vdd_adc1: 0.000V
vdd_adc2: 0.000V
vdd_dram: 1.101V
vdd_1p2 : 1.190V
vdd_1p0 : 0.976V
vdd_2p5 : 2.464V
vdd_3p3 : 3.226V
vdd_0p95: 0.939V
vdd_1p8 : 1.796V
vdd_gsc : 3.168V

Venice Thermal Protection

Thermal protection is offered by the GSC (Gateworks System Controller). Please read more on the GSC Wiki Page

Venice Heatsinks

The Venice System On Module (SoM) has a 20x20x10mm (LxWxH) aluminum heatsink for passive thermal dissipation.

Some boards also have a 4-pin Fan controller connector suitable for driving a 5V fan via PWM with Tachometer feedback if active cooling is needed for the system. The fan is automatically controlled through the fan set points as defined here