Raspberry Pi: GPIO-Schnittstelle erklärt
Der Raspberry Pi ist allein schon wegen seines Preises und der darauf laufenden Software interessant. Die Besonderheit des Gerätes liegt jedoch viel mehr in den 26 (Raspberry Pi Model B und älter) bzw. 40 (Raspberry Pi B+ und neuer) GPIO-Pins (General Purpose Input/Output Pins). Die Schnittstelle für elektronische Kontakte kann zur Messung und Steuerung von Geräten verwendet werden. Damit bekommen sowohl Bastler als auch Profis ein Werkzeug für individuelle Lösungen mit dem Raspberry Pi, das ihnen die Entwicklung computergesteuerter Geräte so einfach wie selten zuvor macht.
Bezeichnungen und verschiedene Versionen
Der Raspberry Pi hat sich in seinen verschiedenen Modellen bzgl. der Pin-Belegung im Laufe der Zeit verändert. Im folgenden Artikel werden wir nur auf die Belegungen des Raspberry Pi Model B Rev 2.0 und des Raspberry Pi B+ (ggf. auch neuere Modelle) eingehen. Andere Funktionen und Belegungen aus dem Raspberry Pi Model B Rev 1 (verkauft vor September 2012) werden in diesem Artikel nicht behandelt, da die wenigsten noch ein solches Modell besitzen sollten.
Für die Pins gibt es verschiedene Nummerierungssysteme, die in der Praxis zur Verwechselung der Pins führen kann. Folglich muss man bei Tutorials darauf achten welche Bezeichnungen von dem Autor verwendet werden:
- Physikalische Pins (Pins): Die einzelnen Steckplätze sind horizontal von oben nach unten (Leserichtung) nummeriert. Die 1 erkennt man daran, dass der Lotpunkt auf der Rückseite des Raspberry Pis quadratisch ist (alle anderen rund).
- BCM-Pins (WiringPi): Bezeichnungen, die in der offiziellen Dokumentation der SoCs von Broadcom verwendet werden.
- Pin-Namen: Von den Raspberry Pi Entwicklern verwendete Bezeichnungen für die Pins, die deren bestimmte Funktion beschreiben. Pins die keine spezielle Funktion haben tragen hierbei die Bezeichnung GPIO mit einer darauffolgenden Nummer.
Zu erwähnen ist an dieser Stelle, dass die Bezeichnung GPIO-Pins im Grunde genommen nicht ganz korrekt ist, da dies aussagt, dass es sich nur um General Purpose Input/Output Pins handelt, was nicht bei jedem Pin zutrifft. Low-level Peripherals Pins wäre meiner Ansicht nach eine bessere Bezeichnung, wobei man in der Regel Artikel unter dem Stichwort GPIO findet.
Arten und Nutzen der Pins
Die verbauten Pins haben verschiedene Funktionen. Neben den allgemein verwendbaren Kontakten (GPIO-Pins genannt) gibt es auch solche für die Versorgungsspannung (3,3V bzw. 5V) wie auch Masse Pins (auch Ground genannt; 0V). Mit den, auf dem B+ und neueren Modell vorhandenen, 14 Zusatz-Pins wurden weitere bislang nicht verfügbare Funktionen des System-on-a-Chip (B+: BCM2835; 2 Model B: BCM2836) zugänglich.
Damit sind wir dabei, dass es Pins gibt, die vorkonfigurierte Funktionen erfüllen. Alle Pins sind jedoch frei programmierbar, auch solche, die eigentlich spezielle Eigenschaften haben. Welche Funktionen welcher Pin konkret erfüllt wurde bereits ausführlich im eLinux Wiki und übersichtlich auf WiringPi.com zusammengefasst. Folglich muss man sich vor jedem Projekt, wenn man entsprechend gebundene Funktionen nutzen möchte, fragen auf welchen Pin man welches Gerät anschließt.
WiringPi | Pin-Namen | Pin | Pin | Pin-Namen | WiringPi |
---|---|---|---|---|---|
– | + 3,3 V | 1 | 2 | + 5 V | – |
8 | (SDA1) GPIO 2 | 3 | 4 | + 5 V | – |
9 | (SCL1) GPIO 3 | 5 | 6 | GND | – |
7 | (GPIO_GCLK) GPIO 4 | 7 | 8 | GPIO 14 (TXD0) | 15 |
– | GND | 9 | 10 | GPIO 15 (RXD0) | 16 |
0 | (GPIO_GEN0) GPIO 17 | 11 | 12 | GPIO 18 (GPIO_GEN1) | 1 |
2 | (GPIO_GEN2) GPIO 27 | 13 | 14 | GND | – |
3 | (GPIO_GEN3) GPIO 22 | 15 | 16 | GPIO 23 (GPIO_GEN4) | 4 |
– | + 3,3 V | 17 | 18 | GPIO 24 (GPIO_GEN5) | 5 |
12 | (SPI_MOSI) GPIO 10 | 19 | 20 | GND | – |
13 | (SPI_MISO) GPIO 9 | 21 | 22 | GPIO 25 (GPIO_GEN6) | 6 |
14 | (SPI_SLCK) GPIO 11 | 23 | 24 | GPIO 8 (SPI_CE0_N) | 10 |
– | GND | 25 | 26 | GPIO 7 (SPI_CE1_N) | 11 |
30 | (nur für I2C) ID_SD | 27 | 28 | ID_SC (nur für I2C) | 31 |
21 | GPIO 5 | 29 | 30 | GND | |
22 | GPIO 6 | 31 | 32 | GPIO 12 | 26 |
23 | GPIO 13 | 33 | 34 | GND | |
24 | GPIO 19 | 35 | 36 | GPIO 16 | 27 |
25 | GPIO 26 | 37 | 38 | GPIO 20 | 28 |
GND | 39 | 40 | GPIO 21 | 29 |
Maximale Spannung und Stromstärke
Die beiden 3,3V Pins 1 und 17 dürfen in der Summe eine Stromstärke von nicht mehr als 50 mA abgeben. Die belegbaren GPIO-Pins zur Steuerung von angeschlossenen Geräten haben ebenfalls eine Spannung von 3,3V. Zusammen mit den 3,3V Pins 1 und 17 sollten diese ebenfalls nicht mehr als 50 mA abgeben. Die 5V Pins 2 und 4 werden über eine selbstrückstellende Sicherung (Poly Fuse) geleitet. Fließt bei diesen Pins zu viel Strom, so schaltet sich der Raspberry Pi selbst ab.
Die genannten Werte sind keine vom Hersteller maximal erlaubten Werte, sondern Ergebnisse von Raspberry Pi Anwendern bei deren Experimenten.
Hardware zum komfortablen Basteln
Die GPIO-Pins auf dem Raspberry Pi sind nicht beschriftet, sodass man auf ein Abzählen angewiesen wäre um den richtigen Pin zu treffen. Außerdem hat man auf dem kleinen Raum beim direkten Basteln auf dem Raspberry Pi schnell ein Kabelgewirr, sodass weitere kleine Hardware empfehlenswert ist.
Zum Basteln ist ein Breadboard (auch Steckbrett genannt) sehr praktisch, da es ausreichend Platz für einen übersichtlichen Aufbau bietet. Außerdem können Signale in mehreren Reihen verwendet werden, sodass mit einem Signal bspw. mehrere LEDs angesprochen werden können.
Außerdem werden Kabel zum Verbinden der Komponenten (Sensoren, LEDs usw.), sogenannte Jumperwires, benötigt. Diese gibt es in den Ausführungen Male-Male, Female-Female und Male-Female (Endungen der Stecker). Zu empfehlen ist es Male-Male Kabel zum Weiterleiten von Pins zu besitzen. Außerdem benötigt man Male-Female Jumperwires um die meisten Komponenten mit den Stecklöchern auf dem Breadboard zu verbinden.
Um ein Breadboard mit dem Raspberry Pi zu verbinden benötigen wir ein Flachbandkabel. Sinnvoll ist es ein T-Cobbler dazwischen zu schalten, da dieser mit den Pin-Namen beschriftet ist und ein umständliches Nachschlagen überflüssig werden lässt.
Im Folgenden eine Auflistung der Komponenten, die ich beim Basteln verwendet habe:
3 Kommentare. Hinterlasse eine Antwort
[…] mit GPIO auskennen, können die Belegungen und den Aufbau der GPIO-Schnittstelle in dem Artikel GPIO-Schnittstelle erklärt […]
Kann man die beiden 5V Pins als VIN benutzen oder geht das nur über USB?
Vielen Dank
Tolle Erklärung, ich hätte noch folgende Frage:
Was passiert, wenn man ein GPIO Pin mit weniger als 2 mA beschaltet?
Danke für die Aufmerksamkeit