Skip to content

Raspberry Pi mit Real-Time-Clock DS3231 aufrüsten

Im Handel gibt es ein fertiges Uhrenmodul, RTC DS3231. Die Pin-Belegung passt exakt auf die GPIO-Schnittstelle des Raspberry Pi. Der passende Treiber ist bereits vorhanden. Die zur Installation nötigen Schritte sind in ein paar Minuten erledigt.

DS3231.png

raspberry-rtc.png

I2C-Treiber aktivieren

Mit raspi-config können wir das Laden der I2C-Treiber einschalten: Dazu wählen Sie Advanced Options | <A7 I2C und aktivieren dann alle Punkte. Nach dem Neustart des Rechners sollten die entsprechenden Treiber geladen sein.

pi@raspberry:~$ sudo raspi-config

rtc-screen1.png

rtc-screen2.png

rtc-screen3.png

Module laden

Damit die Module i2c-bcm2708 und i2c_dev geladen werden, tragen wir diese in die Datei /etc/modules ein.

pi@raspberry:~$ sudo vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
i2c-bcm2708
i2c_dev

I2C-Tools installieren

Nun installieren wir I2C-Tools und starten das System danach neu.

pi@raspberry:~$ sudo apt-get update && sudo apt-get install i2c-tools

Nach dem Neustart überprüfen wir mit folgendem Befehl, ob das Uhrenmodul geladen und am I2C-Bus angemeldet ist.

pi@raspberry:~$ sudo i2cdetect -y 1

i2cdetect1-o.png

Diese Ausgabe nutzen wir nun, um das System entsprechend zu konfigurieren. Mit folgendem Befehl definiert, dass am I2C-Bus unter der Adresse 0x68h ein Gerät, in diesem Fall das DS3231-Modul, angeschlossen ist.

pi@raspberry:~$ sudo echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

Damit nach einem Neustart das Gerät wieder erstellt und geladen ist, tragen wir folgendes in der Datei /etc/rc.local vor exit 0 ein.

pi@raspberry:~$ sudo vi /etc/rc.local
....
# create DS3231 device
echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

# syncronize ntp time and set hwclock
ntpd -4 -gq && hwclock -w

exit 0

Der zweite Befehl der mit ntpd anfängt, aktualisiert die Netzwerk Zeit und aktualisiert danach die Hardware Zeit.

Falls die Systemzeit nicht stimmen sollte, stellen Sie diese mit sudo date -s "Oct 2 2022 17:28:00" zuerst einmal ein, bevor Sie wiederum die Hardware-Uhr mit dieser abgleichen.

Als nächstes starten wir den Raspberry neu, damit das rtc Modul geladen wird. Mit folgendem Befehl können wir anzeigen lassen, ob das Modul ordnungsgemäß geladen wurde. Dies erkennen wir an dem UU, satt der vorherigen 68.

pi@raspberry:~$ sudo i2cdetect -y 1

i2cdetect2.png

Aufräumen

Haben Sie alles eingerichtet, schalten Sie die softwarebasierte Uhr und die Verbindung zum NTP-Dienst ab Diese Änderungen wirken allerdings erst nach dem nächsten Reboot.

pi@raspberry:~$ sudo update-rc.d ntp disable
pi@raspberry:~$ sudo update-rc.d fake-hwclock disable

Dokumentation