🛠 La première RTC des Compute Modules : câbler et vérifier la VBAT du CM5
Objectifs
Le CM5 est le premier Compute Module avec une RTC embarquée : la broche VBAT (2,5–3,5 V, typiquement une CR2032) maintient l'heure hors tension, avec une consommation de 1,7 µA alimentée / 6 µA non alimentée — la datasheet annonce « une CR2032 typique dure plus de 3 ans hors tension ». Le CM4, lui, n'avait aucune RTC sur le module. Ce tuto : installer la pile, régler l'heure, la graver dans la RTC et vérifier qu'elle survit à une coupure totale — le réflexe indispensable pour tout poste hors-ligne ou en coffret.
Matériel
- 1 × CM5 sur CM5IO Board (le porte-pile RTC est prévu sur l'IO Board)
- 1 × pile bouton CR2032 neuve (respecter le sens +/− du porte-pile)
- Écran ou session SSH
- 5 minutes de coupure secteur pour le test de conservation
Code complet
# 1) Insérer la CR2032, démarrer, vérifier la présence de la RTC
ls -l /dev/rtc*
cat /sys/class/rtc/rtc0/name
dmesg | grep -i rtc | head -3
# 2) Régler l'heure système puis l'écrire dans la RTC
timedatectl # état courant (NTP activé ou non)
sudo timedatectl set-ntp false
sudo date -s '2026-10-14 08:30:00'
sudo hwclock -w -f /dev/rtc0 # système -> RTC
sudo hwclock -r -f /dev/rtc0 # relecture : doit correspondre
# 3) Test de conservation : couper l'alimentation 5 minutes (pas le porte-pile),
# rallumer SANS réseau, et vérifier :
timedatectl | head -3
# 4) Remettre la synchro réseau une fois en ligne
sudo timedatectl set-ntp true
Vérification attendue
/dev/rtc0 existe et hwclock -r relit l'heure gravée ; après la coupure de 5 minutes sans réseau, timedatectl affiche une heure cohérente (dérive de l'ordre de la seconde) ; le noyau logge la RTC au boot (dmesg | grep -i rtc). Sur une conception batterie, noter la charge quiescente de quelques µA que VBAT impose en permanence (note de la broche 76).
Erreurs fréquentes
- Régler
datesans fairehwclock -w: l'heure système meurt avec le courant ; seule l'écriture dans la RTC la conserve. - Oublier de couper NTP pendant le test : la synchro réseau « corrige » l'heure et masque une RTC morte ou mal câblée.
- Pile à l'envers ou contact oxydé : l'heure repart à la date de build du noyau à chaque cold boot.
- Comparer avec le CM4 : le CM4 n'a pas de RTC du tout (c'est la carte porteuse qui en ajoute une, p. ex. PCF8523 sur I2C) ; les scripts
hwclockhérités du CM4 peuvent viser un autre périphérique.
Autres tutoriels pour cette carte
- Alimenter un CM5 comme il faut : USB-C PD 5 V / 5 A et bouton d'alimentation
- Accès distant sans VPN : enregistrer un CM5 dans Raspberry Pi Connect
- GPIO du CM5 côté RP1 : force de conduite, budget 50 mA et broches pièges
- Refroidir le CM5 : ventilateur PWM sur le connecteur JST-SH et tachymétrie
- Deux ports USB 3.0 simultanés : le CM5 fait du stockage rapide, pas sur une carte CM4
- Démarrer le CM5 sur un SSD NVMe dans le socket M.2 de la CM5IO
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash