🛠 Surveiller température et bridage : le BCM2835 à l'épreuve

Raspberry Pi Model B+ (2014) — Hoja de placa · avance · Schéma : IMG-model-b-plus-avance-2-modelbp-surveillance-thermique.svg — Raspberry Pi Model B+ avec son SoC BCM2835 souligné, sonde de température et jauges fréquence 700 MHz / seuil de bridage 85 °C, un graphique température-temps en encart et l'éclair de sous-tension.

Objetivos

Establecer una monitorización continua del SoC: temperatura, frecuencia real y, sobre todo, el registro de estrangulamiento del firmware, que también señala las caídas de tensión. El BCM2835 del Model B+ funciona a 700 MHz y el firmware estrangula el rendimiento por encima de 85 °C o en caso de alimentación insuficiente; es necesario saber detectarlo antes de que se produzcan cortes.

Material

Código completo

# Lecture ponctuelle
cat /sys/class/thermal/thermal_zone0/temp   # milli-°C
vcgencmd measure_temp                       # °C format humain
vcgencmd measure_clock arm                  # fréquence courante (Hz)
vcgencmd get_throttled                      # 0x0 = rien à signaler
# Interprétation de get_throttled (masques) :
#  bit0 sous-tension | bit3 bridage sous-température | bit5 bridage fréquence
#  bit6 bridage sous-tension | bits 16-19 = événements passés depuis le boot
# Journal de surveillance toutes les 30 s, 24 h
timeout 86400 sh -c 'while :; do
  echo "$(date -Is) $(cat /sys/class/thermal/thermal_zone0/temp) $(vcgencmd measure_clock arm | cut -d= -f2) $(vcgencmd get_throttled | cut -d= -f2)"
  sleep 30
done' > /var/log/thermal.csv
# Charge de test dans un autre terminal
yes > /dev/null &   # puis tuer : kill %1

Verificación esperada

En reposo, el sensor suele permanecer por debajo de 50 °C y get_throttled devuelve 0x0. Con «yes», la temperatura sube hacia el umbral de 85 °C y measure_clock puede bajar de 700 MHz, encendiéndose el bit de estrangulamiento. Un valor 0x50000 o 0x50005 denota una caída de tensión: el problema es la alimentación, no la refrigeración.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales