🛠 Surveillance thermique et fréquence des quatre Cortex-A53
Objectifs
Surveiller température et fréquence du Raspberry Pi 3 A+ sous charge. Attention au vocabulaire : la carte n'a PAS d'architecture big.LITTLE — le BCM2837B0 aligne 4 cœurs Cortex-A53 strictement identiques @ 1,4 GHz ; on surveille donc un cluster unique, sa sonde thermique et le bridage (throttling).
Matériel
- Raspberry Pi 3 A+ sous Raspberry Pi OS, dissipateur ou boîtier ventilé conseillés (65 × 56 mm, pas de dissipateur d'origine)
sudo apt install stress-ng vcgencmd(vcgencmd fourni par Raspberry Pi OS)- Plage de fonctionnement constructeur : 0–50 °C ambiant
- >
Code complet
#!/usr/bin/env bash
# surveille_temp.sh — température + fréquence + drapeaux de bridage
while true; do
t=$(</sys/class/thermal/thermal_zone0/temp) # milli-°C
f=$(</sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq) # kHz
printf '%s %d.%d C %6.0f MHz %s\n' "$(date +%T) " \
$((t/1000)) $((t%1000)) $((f/1000)) "$(vcgencmd get_throttled)"
sleep 2
done
# Terminal 1 : journal ; terminal 2 : contrainte des 4 cœurs
./surveille_temp.sh
stress-ng --cpu 4 --timeout 300 # puis observer la montée vers ~60-70 °C
# Historique des événements de bridage depuis le boot :
dmesg | grep -i -e thermal -e throttle
Vérification attendue
Au repos : 35–45 °C, 1400 MHz, throttled=0x0. En fin de contrainte : température en palier et fréquence qui retombe sous 1,4 GHz, avec drapeaux de bridage non nuls (bit under-voltage ou down-softmax). Un ventilo ou un dissipateur abaisse nettement le palier.
Erreurs fréquentes
- Parler de « cœurs performance/économie » : le 3 A+ est un cluster 4× Cortex-A53 homogène, aucun big.LITTLE.
- Alimentation 5 V/0,5 A de téléphone : sous charge, sous-tension (bit 0x1 de
get_throttled) et bridage — il faut 5 V/2,5 A. - Confondre °C et milli-°C :
/sys/.../temprenvoie 45123 pour 45,1 °C. - Boîtier fermé sans ventilation : la fiche impose un fonctionnement bien aéré ; le SoC encaisse, le plastique non.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython