🛠 Surveillance thermique et fréquence des quatre Cortex-A53
Objetivos
Supervisar la temperatura y la frecuencia del Raspberry Pi 3 A+ bajo carga. Atención al vocabulario: la placa NO tiene una arquitectura big.LITTLE — el BCM2837B0 alinea 4 núcleos Cortex-A53 estrictamente idénticos @ 1,4 GHz; por lo tanto, se supervisa un único clúster, su sonda térmica y el estrangulamiento (throttling).
Material
- Raspberry Pi 3 A+ con Raspberry Pi OS, se recomienda disipador o carcasa ventilada (65 × 56 mm, sin disipador de origen)
sudo apt install stress-ng vcgencmd(vcgencmd es proporcionado por Raspberry Pi OS)- Rango de funcionamiento del fabricante: 0–50 °C ambiente
- >
Código completo
#!/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
Verificación esperada
En reposo: 35–45 °C, 1400 MHz, throttled=0x0. Al final de la carga: temperatura estabilizada y frecuencia que cae por debajo de 1,4 GHz, con banderas de estrangulamiento no nulas (bit de subvoltaje o down-softmax). Un ventilador o un disipador reducen notablemente la temperatura estabilizada.
Errores frecuentes
- Hablar de «núcleos de rendimiento/eficiencia»: el 3 A+ es un clúster homogéneo de 4× Cortex-A53, sin big.LITTLE.
- Fuente de alimentación de teléfono de 5 V/0,5 A: bajo carga, se produce subvoltaje (bit 0x1 de
get_throttled) y estrangulamiento — se requiere 5 V/2,5 A. - Confundir °C y milésimas de °C:
/sys/.../tempdevuelve 45123 para 45,1 °C. - Carcasa cerrada sin ventilación: la ficha exige un funcionamiento bien ventilado; el SoC lo soporta, el plástico no.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython