[[PageOutline]] = See also * [/wiki/ventana/thermal_management Ventana Thermal Page] * [/wiki/newport/powerthermal Newport Thermal/Power Page] * [/wiki/DVFS Dynamic Voltage and Frequency Scaling of the Processor] * [/wiki/venice/power Venice Power Consumption] * [https://shop.gateworks.com/index.php?route=product/category&path=70_72 Gateworks Shop - Heatsinks ] = Venice Thermal == Venice Heatsinks The Venice SOMs have different heatsinks solution depending on the processor. * i.MX8M Mini (standard) - System On Module (SoM) has a 20x20x10mm (LxWxH) aluminum heatsink for passive thermal dissipation. * [[Image(lid.png,200px)]] * i.MX8M Plus (GW74xx, others) - *** This CPU has an exposed die, shown below *** (no lid, see silver exposed area) which means it can be fragile if designing a custom thermal solution. * [[Image(exposeddie.png,200px)]] 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 [wiki:gsc#FanController here] == 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: {{{#!bash ~# 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 [wiki:gsc Gateworks System Controller (GSC)] via a thermister located on the board. A Linux {{{hwmon}}} driver exists to provide access to this temperature: {{{#!bash ~# 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: {{{#!bash 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 [wiki:gsc#thermal-protection GSC Wiki Page]