Der Raspberry Pi sicherlich der Bekannteste unter den Mini-Linux-Einplatinenrechnern. Unpraktischerweise besitzt der Raspberry Pi keine Echtzeit-Uhr. Deswegen entstand die folgende Zusatz-Platine, die ihn um eine Echtzeit-Uhr, Bedienelemente und einen externen I²C-Anschluß ergänzt.
Die größte Stärke des Raspberry Pis ist sicherlich seine Bekanntheit, an die unter den Mini-Linux-Einplatinenrechnern kein BeagleBone, Cubieboard, PandaBoard, Galileo & Co. auch nur annäherungsweise herankommen. Damit gibt es für alle denkbaren Anwendungen schon fertige Beispiele, so daß man auch ohne fundierte Linux-Kenntnisse schnell an sein Ziel kommt. Bei mir dient der Raspberry Pi als lokaler Subversion-Server für den Datenaustausch mit meiner CNC-Fräse. Dazu gehört es, daß er nur lokal erreichbar ist und niemals Internet-Zugang besitzt. Unpraktischerweise besitzt der Raspberry Pi keine Echtzeit-Uhr. Für einen Versionierungs-Server ist das sehr ungünstig. Deswegen entstand die folgende Zusatz-Platine, die den Raspberry um folgendes ergänzt:
Wird die Erweiterung für einen externen I²C-Bus nicht benötigt, paßt der Raspberry Pi weiterhin in sein kleines Standardgehäuse.
Der Uhrenbauseitn DS1307 ist eine komplette Echtzeit-Uhr und läßt sich aus einer Knopfzelle betreiben. Er wird über den I²C-Bus angesprochen und benötigt minimale Außenbeschaltung. Für die Anbindung dieses Uhrenbausteins an den Raspberry Pi gibt es ein sehr kleinschrittiges Tutorial[1]
In der vorliegenden Schaltung wird der Uhrenbaustein mit einer CR2032-Knopfzelle versorgt. Die Knopfzelle kann wahlweise ober- oder unterhalb der Aufsteckplatine angebracht werden. Damit der Raspberry Pi weiterhin in sein altes Gehäuse paßt, ist letzteres zu bevorzugen. Ist die Knopfzelle wiederaufladbar, kann die Bestückung angepaßt werden, damit sie im Betrieb geladen wird.
Was dem Raspberry Pi normalerweise wirklich fehlt, sind Ein- und Ausschalter. Insbesondere bei einem Dateiserver ist es wünschenswert, ihn einfach und sicher herunterfahren zu können, um Fehler im Dateisystem zu vermeiden. Gleichzeitig will man bei einem mit shutdown heruntergefahrenen Gerät nicht unbedingt den Stecker ziehen müssen, um es wieder zu starten. Also wurden drei Taster nachgerüstet: Zwei frei per Software belegbare Taster und ein (versenkter) Reset-Taster, der den Hardware-Reset des Raspberry Pis auslöst.
Wie sich ein Shutdown-Schalter in den Raspberry einbinden läßt, hat praktischerweise auch schon ein findiger Bastler ausführlich beschrieben[2].
Es ist sehr praktisch, wenn eine LED anzeigt, wann das Gerät fertig gestartet ist bzw. wenn der shutdown eingeleitet ist. Die Einbindung von Status-LEDs an die GPIOs ist absolut geradeheraus und muß lediglich in die init.d eingetragen werden.
Noch hat ein externer I²C-Bus am Raspberry Pi für mich keinen Anwendungsfall, aber auf der Leiterplatte war noch viel Platz, und Bus-Treiberbausteine sind sehr preisgünstig. Also wurde einer vorgesehen. Je nach Bestückung kann der externe I²C-Bus mit 3,3V- oder 5V-Pegeln arbeiten. Als Steckerbelegung entspricht der Pinbelegung bei Roboternetz[3], die ich zu meinem Hausstandard gemacht habe.
Eagle-Projekt und Schaltplan |