🛠 Surveiller la température et l'alimentation du TDA4VM
Objectives
Learn how to read the on-die temperature sensors of the TDA4VM SoC, understand the order of magnitude of power consumption measured in the System Reference Manual (idle U-Boot 210 mA, kernel boot peak 460 mA, kernel idle 350 mA, which is approximately 1.75 W at 5 V), and size the power supply and heatsink before loading the board.
Hardware
- 1 BeagleBone AI-64 with heatsink (the board weighs 192 g with the heatsink mounted — it is there for a reason)
- 1 high-quality 5 V / 3 A power supply (the SRM explicitly requires this)
- Optional: USB power meter, ventilated case for comparison
Complete code
# Identité et capteurs thermiques (les capteurs sont on-die uniquement)
cat /proc/device-tree/model
for z in /sys/class/thermal/thermal_zone*; do
echo "$z type=$(cat $z/type) temp=$(cat $z/temp) (milli-°C)"
done
# Montée en charge contrôlée : 5 minutes de stress sur les 2 Cortex-A72
sudo apt install stress-ng
sudo stress-ng --cpu 2 --timeout 300 &
watch -n 2 'cat /sys/class/thermal/thermal_zone*/temp'
# Journal thermique : throttling ou seuils atteints ?
sudo dmesg | grep -iE "thermal|trip|throttl"
Expected verification
Temperatures rise progressively during the stress test and then stabilize (plateau) with the heatsink in place; values are expressed in thousandths of a degree (45000 = 45 °C). No throttling messages in dmesg during normal usage. When the stress test stops, the temperature drops slowly.
Common errors
- Reading “45000” and panicking: this is the milli-°C unit, not millivolts.
- Running the board without a heatsink or in a closed case: the TDA4VM has no fan and no external sensor, only on-die sensors.
- Powering via a simple PC USB port: the boot peak already exceeds 460 mA before any application load; brownouts manifest as random lockups at boot (see issue #43 on the LPDDR4 bring-up).
- Believing in a published commercial threshold: the SRM does not provide a commercial temperature range; for industrial deployment, refer to the TI TDA4VM datasheet.
- Confusing thermal zones: several thermal_zone entries exist (A72, DSP...), identify the correct one using the type field.
Other tutorials for this board
- Flasher l'image officielle et démarrer la BeagleBone AI-64
- Faire clignoter une LED sur la broche P8_03 avec libgpiod
- Réseau : Ethernet Gigabit unique et module Wi-Fi en M.2 E-key
- Caméra MIPI CSI et encodage H.264 matériel via GStreamer
- Remoteproc : inventorier et démarrer les co-processeurs R5F et C66x
- Inférence de réseau de neurones sur le C7x+MMA avec edgeai-tidl-tools
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash