🛠 Ajouter une horloge temps réel sur le bus I2C des capes

BeagleBone Black (TI Sitara AM3358) · intermediaire · Schéma : IMG-beaglebone-black-intermediaire-2-horloge-rtc-i2c-bus-cape.svg — module RTC DS3231 avec pile bouton câblé sur P9_19 (SDA) et P9_20 (SCL) + 3,3 V/GND de la BeagleBone Black, bus I2C2 partagé avec les EEPROM de capes (0x54-0x57) en médaillon.

Objectifs

Câbler et configurer une horloge temps réel I2C (classe DS3231/DS1307) sur le bus I2C2 de la BeagleBone Black — le bus historique des capes, celui dont les adresses 0x54 à 0x57 sont occupées par les EEPROM d'identification. Vous apprendrez à sonder le bus, déclarer le module au noyau, et synchroniser l'horloge système pour que la date survive à une coupure totale de courant sans réseau.

Matériel

Code complet

sudo apt install i2c-tools
sudo i2cdetect -l                 # repérer le numéro du bus I2C2
sudo i2cdetect -y -r 2            # le DS3231 répond en 0x68

# Déclaration à la volée pour tester (le module noyau existe déjà) :
sudo modprobe rtc-ds1307
echo ds1307 0x68 | sudo tee /sys/bus/i2c/devices/i2c-2/new_device

# Quelle RTC est laquelle ?
ls /sys/class/rtc/ ; cat /sys/class/rtc/rtc1/name

# Régler puis lire l'horloge RTC
sudo date -s "2026-10-14 09:00:00"
sudo hwclock -f /dev/rtc1 -w      # système -> RTC
sudo hwclock -f /dev/rtc1 -r      # RTC -> système

# Relire après un redémarrage complet (sans réseau)
sudo reboot

Vérification attendue

i2cdetect montre l'adresse 0x68 ; après hwclock -w puis un reboot avec le câble réseau DÉBRANCHÉ, la date est conservée (le noyau relaie la RTC au démarrage). Le fichier name de rtc1 contient « ds1307 » ou « ds3231 ».

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels