BildDie GPIO Pins des RasPi sind Anschlüsse, die man frei anprogrammieren kann. Einige der Pins sind zunächst mit speziellen Funktionen vorbelegt. Darunter ist zum Beispiel UART-Pins für den Anschluss eines seriellen Kabels, um den RasPi mit einem Terminal per Kommandozeile anzusprechen. Andere sind für die Nutzung bestimmter Protokolle vorgesehen, die von Microcontrollern verstanden werden (I2C, SPI). Die Belegung mit dem jeweiligen Protokoll kann per Software jedoch geändert werden. Dafür sind jeweils alternative Belegungen vorgesehen. So kann aus einem SPI Pin ein weiterer GPIO Pin werden. Das Bild oben zeigt eine Übersicht über die verfügbaren Anschlussmöglichkeiten. Links oben befindet sich die Steckleiste („Pin Header“) P1.

P1

Dr. Monk's GPIO PDF
P1 stellt die wichtigsten GPIO-Ports zur Verfügung. Die Pins mit geraden Ziffern (2,4,6,8,…) sind oben, die Pins mit ungeraden Ziffern (1,3,5,…) finden sich in der unteren Reihe. Jeder Pin hat eine spezielle Bedeutung, die meisten Pins haben zudem mehrere Funktionen. In der Grundbelegung – auch Alternate 0 genannt (Alt 0) – stehen 9 Ports für die Stromversorgung, 2 PINs für das I2C-Protokoll, 2 Pins für das Modemprotokoll UART, 5 Pins für das SPI-Protokoll und schließlich 8 Pins für allgemein verwendbare GPIOs zur Verfügung. Insgesamt sind das 26 Pins. Wo sich die einzelnen Pins genau befinden, muss ich immer wieder nachschlagen. Da hilft das kleine PDF von Dr. Monks Webseite. Die Grafik ist maßstabsgetreu in das PDF eingepasst, so dass es ausgeschnitten auf die Pins gesteckt werden kann.

GPIOsIch habe mir eine Übersicht erstellt, die ich immer im Blick habe, da ich die Pin-Belegung vor allem zum Programmieren brauche. Auf meiner Übersicht sind dann auch noch die Pin-Nummern, damit ich das besser abzählen kann. Die genaue Belegung wird auf der Embedded Linux-Seite genau beschrieben. Dort werden auch die Unterschiede der verschiedenen RasPi-Versionen erklärt. Ich habe nur die aktuellste Version des RasPi „Revision 2“ oder „B“ dargestellt. Bei der Version A sind einige Pins anders. Bei Version B sind weitere Ports hinzugekommen, die der Port P5 aus dem Board führt. Auf die neuen Anschlüsse gehe ich gleich noch weiter ein.

Die Ports für I2C, SPI und UART sind wichtig, um mit Sensoren oder anderen Microcontrollern zu reden. Die GPIO-Ports kann man für eigene Anwendungen mit Spannung belegen, oder angelegte Spannungen auslesen. Das kann man so schnell machen, dass man auf diese Weise auch einen digitalen Code an einen angeschlossen Microcontroller kommunizieren kann. So übermittle ich einen solchen digitalem Morse-Code zum Beispiel an ein LCD-Display, um Text auf das Display zu schicken.

Das Beispiel LCD ist gut, da man Text auch mit Hilfe des I2C-Protokolls übermitteln kann. Dafür braucht man aber einen zusätzlichen Micrcontroller, der I2C versteht und automatisch in den entsprechenden Morse-Code für das LCD-Display übersetzt. Da ich diese Lernkurve gerade genommen habe, zeige ich später, wie das genau geht.

UART

UART ist eine sehr nützliche Schnittstelle zum RasPi. Mit einem ensprechendem USB-Kabel kann der RasPi mit einem Modem-Terminal angesprochen werden. Es gibt etliche Kabel ab 5 Euro. Ich habe einen USB Adapter für 4 Euro bei Amazon gefunden. Der hat einen modernen CP2102-Chip, der auch mit Windows 7 und Windows 8.1 funktioniert. Mein erstes Model mit Kabel und einem alten PL2303 hat nicht funktioniert.

Mit einem solchem Adapter auf den Ports 8 (TXD – Senden) und 10 (RXD – Empfangen) sowie 6 (GND) kann man mit einer Konsole des RasPi reden. Den 5V sollte man weglassen, wenn der RasPi mit einem USB-Stecker mit Strom versorgt wird. Ansonsten kann der RasPi über den 5V-Anschluss an Port 2 (5V) aus dem seriellen Adapter komplett mit Strom versorgt werden. Anschließend braucht man noch ein Terminal. Unter Windows funktioniert Putty, unter Linux habe ich eigentlich nur Gtkterm zum Fliegen gebracht. Hilfreich ist die Modemkonsole vor allem, da mit UART auch ohne Netzwerk oder angeschlossener Tastatur und Monitor auf dem RasPi gewerkelt werden kann.

P5

Der P5 ist in der Revision B neu. Mit ein bischen Lötarbeit kann man Steckbrücken anlöten. Daurch gewinnt man 4 zusätzliche GPIOs.

P5Hier der Pin Nummer 1 oben links. Wenn man drauf schaut liegen in der oberen Reihe also die Pins 1, 3, 5, 7 und in der unteren Reihe die Pins 2, 4, 6, 8. Die Pins haben folgende Funktion:

(1) – 5V       (3) – GPIO 28    (5) – GPIO 30    (7) – GND
(2) – 3.3V    (4) – GPIO 29    (6) – GPIO 31    (8) – GND

Die Steckbrücken zum Anlöten gibt es ein-reihig und zwei-reihig für ein paar Cent.

Reset

Um den RasPi an- und auszuschalten, muss man ihn vom Netz nehmen. Das ist ziemlich nervig, wenn er einfach nur hart neu gestartet werden soll. Es gibt auf dem Board einen Anschluss für einen Reset-Knopf. Der liegt dicht am unteren Rand und es ist etwas fummelig, einen kleinen Schraubendreher zum Überbrücken dahin zu popeln. Eine passende Steckbrücke macht den Anschluss eines Tasters möglich.

Reset Steckbrücke

Testpunkte

Die Testpunkte T1 und T2 sind ziemlich langweilig. Damit kann man prüfen, wieviel Spannung auf dem Pi liegt. Das sollte konstant 5V sein. Da aber ein paar USB-Netzteile nicht mal das hinbekommen, stellen die Testpunkte eine Möglichkeit zur Fehlersuche zur Verfügung.