Project

General

Profile

SoM Temperature Sensors

AM57x

The SOM has the following temperature sensors built into the SoC. They can be accessed via sysfs by reading one of the following files:
NOTE - Divide the output value by 1000 to convert to Celcius.

# CPU Temperature
/sys/class/thermal/thermal_zone0/temp
# GPU Temperature
/sys/class/thermal/thermal_zone1/temp
# Core Temperature
/sys/class/thermal/thermal_zone2/temp
# DSP/EVE Temperature
/sys/class/thermal/thermal_zone3/temp
# IVA Temperature
/sys/class/thermal/thermal_zone4/temp

FPGA

The FPGA temperature can be obtained through Xilinx's XADC IP core. With this core enabled in the FPGA, the temperature can be accessed via
the GPMC interface. See Critical Links example FPGA that includes the XADC IP core found here: https://support.criticallink.com/git/mitysom-am57x-ref.git
Documentation for the XADC can be found here: https://www.xilinx.com/support/documentation/user_guides/ug480_7Series_XADC.pdf

If using Critical Link's example FPGA found here: https://support.criticallink.com/git/mitysom-am57x-ref.git
You can access the FPGA temperature as follows:

root@mitysom-am57x:~# memtool -16 0x01000180 1
Reading 0x1 count starting at address 0x01000180

0x01000180:  9AA7

Now convert the returned value to Celcius by ((ADC_CODE * 503.975) / 4096) - 273.15
1. 0x9AA7 >> 4 --> 0x9AA (The XADC core uses the upper 12 bits for data)
2. 0x9AA --> 2474 decimal
3. ((2474 * 503.975) / 4096) - 273.15 = 31.25 C

The FPGA also supports outputting the temperature via a remote temperature sensor (e.g. LTC2997) which would need to be placed on the baseboard that would output a linear VPTAT analog voltage representing the temperature which could be read by an ADC.

Go to top
Add picture from clipboard (Maximum size: 1 GB)