Benutzer-Werkzeuge

Webseiten-Werkzeuge


rtc

Dies ist eine alte Version des Dokuments!


RTC Modul

Warum eine RTC?

Eine Echtzeituhr (realtimeclock) misst die physikalische Uhrzeit. Eine RTC hat einen Quarz der den Takt der Uhr vorgibt. Ein Chip (hier DS1307) berechnet daraus sie aktuelle Uhrzeit.

Normalerweise wird die aktuelle Uhrzeit über das Internet via ntp synchronisiert. Wenn jedoch kein Netzwerk zur Verfügung steht und man eine aktuelle Uhrzeit benötigt greift man zu einer RTC.

Rückseite Vorderseite

Dieses Modul hat eine 3,6V Lithium Ion Batterie verbaut. Dadurch läuft dieses Modul, und somit auch die Uhrzeit, weiter wenn der Raspberry Pi ausgeschaltet ist.

Was wird benötigt?

  • Raspberry Pi Modell A oder B
  • Tiny RTC Modul (I2C RTC DS1307) Ebay(sehr lange Lieferzeiten) Amazon1 oder Amazon2
  • SD-Karte mit aktuellen Raspbian installiert
  • einen Lötkolben sowie Hilfsmittel

Kommen wir nun zu der Anleitung:

Schritt 1: Widerstände des RTC Moduls entlöten und anschließen

Damit das Modul mit dem Raspberry Pi funktioniert müssen zwei PullUp Widerstände (R2 und R3) entfernt werden. Diese entlöten wir mit Hilfe des Lötkolbens. Zusätzlich kann man noch eine Stiftleiste verlöten, damit man das Modul zum Beispiel auf einem Steckbrett/Breadboard nutzten kann.
Wichtig! Die Widerstände müssen entlötet werden, da die 5V den Raspberry Pi schwer beschädigen könnten.

angepasstes Modul (R2 und R3 ausgelötet sowie Stiftleiste hinzugefügt)

Nun können wir das Modul am ausgeschalteten Raspberry Pi anschließen.

RPI GPIO RTC P1
Pin 2 5V VCC
Pin 3 SDA SDA
Pin 5 SCL SCL
Pin 6 GND GND

Verkabelung

Schritt 2: Software konfigurieren

Unter Umständen kann es nötig sein „Expand filesystem“ auszuführen!

Den Raspberry Pi nach Überprüfung der Verkabelung starten. Als erstes aktualisieren wir das System mit folgenden Befehlen:

 sudo apt update && sudo apt upgrade -y

WICHTIG: Als nächstes installieren wir das Paket „i2c-tools“ und holen wir uns sudo Rechte für die nächsten Schritte:

 sudo apt install i2c-tools
 sudo su

Nun aktivieren wir I²C

 nano /etc/modprobe.d/raspi-blacklist.conf

Wenn vorhanden, kommentieren wir „spi-bcm2708“ und „i2c-bcm2708“ aus. So sollte eure Datei nun aussehen:

 # blacklist spi and i2c by default (many users don't need them)
 
 #blacklist spi-bcm2708
 #blacklist i2c-bcm2708

Als nächstes legen wir fest, welche Module beim starten automatisch geladen werden sollen.

 nano /etc/modules

Dort tragen wir folgende Module ein:

 snd-bcm2835
 spi-bcm2708
 i2c-bcm2708
 i2c-dev
 rtc-ds1307
Schritt 3: Testen

Wir laden folgende Module:

 modprobe i2c_bcm2708
 modprobe i2c_dev
 modprobe rtc-ds1307

Jetzt schauen wir ob die RTC am i2c Bus angezeigt wird, dazu geben wir folgenden Befehl ein:

 i2cdetect -y 1

Für die Rev 1 gebt ihr „i2cdetect -y 0“ ein. Ihr solltet folgendes sehen:

 root@raspberrypi:~# i2cdetect -y 0
      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 00:          -- -- -- -- -- -- -- -- -- -- -- -- --
 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
 70: -- -- -- -- -- -- -- --

Die Uhr wurde also unter der Adresse 68 gefunden. Unter der Adresse 50 verbirgt sich ein nichtflüchtiger Speicher, der ebenfalls auf dem Modul verbaut ist. Dieser interessiert uns aber nicht weiter.

Nun testen wir die Verbindung zur Uhr. Wenn das klappt sollte er euch die Sekunden, Minuten und Stunden wie folgt anzeigen

 root@raspberrypi:~# i2cget -y 1 0x68 0
 0x38
 root@raspberrypi:~# i2cget -y 1 0x68 1
 0x16
 root@raspberrypi:~# i2cget -y 1 0x68 2
 0x16
Schritt 4: Uhr in das System einbinden und mit hwclock testen
 echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

„echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device“ für Rev 1

Mit dem Befehl „hwclock -r“ können wir nun die Zeit der RTC auslesen.

 root@raspberrypi:~# hwclock -r
 Tue 03 Sep 2013 16:23:17 UTC  -0.781864 seconds

Falls die Uhrzeit nicht korrekt ist, könnt ihr mit dem Befehl „date“ die Systemzeit anzeigen lassen und bei Bedarf mit „hwclock -w“ die RTC Zeit auf die System zeit setzten. Mit „hwclock -r“ könnt ihr es überprüfen. Am besten studiert ihr die manpage zu hwclock.

Schritt 5: RTC Uhrzeit dauerhaft einbinden
 nano /etc/rc.local

Ihr fügt vor exit 0 folgendes ein:

 echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
 sudo hwclock -s

hwclock -s setzt die RTC Zeit als Systemzeit „echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device für Rev 1“

Nach einem Neustart mit „reboot“ testet ihr die Uhr mit „sudo hwclock -r“

Ab sofort sollte eure Systemzeit immer aktuell sein. Natürlich rate ich euch die korrekte Zeitzone einzustellen. Im Moment ist diese noch auf „UTC“ eingestellt. über „sudo raspi-config“ könnt ihr diese auf die korrekte Zeitzone einstellen.

rtc.1512765359.txt.gz · Zuletzt geändert: 2017/12/08 21:35 von noone

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki