Raspberry Pi: GPIO Schnittstelle – Teil 1

| 1. Oktober 2013 | 7 Kommentare

Diese Artikelserie widmet sich der GPIO Schnittstelle. Diese Schnittstelle ist mit verantwortlich für den großen Erfolg des Raspberry Pis. Doch was ist das? GPIO heißt ausgeschrieben General-Purpose Input/Output. Die jeweiligen Großbuchstaben ergeben die Abkürzung GPIO. Das heißt soviel, dass diese Schnittstelle für Ein- und Ausgaben genutzt werden kann, jedoch nicht näher spezifiziert ist. Somit kann man diese Schnittstelle selber nach eigenem Ermessen verwenden.

GPIO

Die GPIO Schnittstelle

Die GPIO Schnittstelle besteht beim Raspberry Pi aus 26 einzelne Pins. Der Prozessor hat insgesamt 54 Ein- und Ausgabeleitungen, von denen 17 als GPIO Schnittstelle verwendet werden können. Das heißt für den Programmierer, er kann entweder diese Leitungen zum Ausgeben oder zum Einlesen nehmen.

Ausgabe

Wird auf einer Leitung ein Signal ausgegeben, so sind dort entweder 3,3 Volt angelegt (Spannung oder logisch 1) oder eben keine Ausgabe, also 0 Volt (logisch 0).

Eingabe

Bei der Eingabe ist das genau anders herum. Liegt dort Spannung an, so ist das eingelesene Zeichen eine logische 1, andernfalls eine logische 0.

unterschiedliche Verbindungen

Leider ist das Arbeiten mit der Schnittstelle nicht ganz so einfach. Es sind nämlich nicht alle 26 Pins einfache Ein-/Ausgabepins. Tatsächlich gibt es eine reihe unterschiedliche Verwendungen:

  • echte GPIO Pins
    diese Pins funktionieren wie beschrieben um Eingaben einlesen oder zur Ausgabe.
  • I2C Interface Pins
    das sind spezielle Pins über die Hardware über nur 2 Pins verwendet werden kann. So gesehen spezialisierte Pins.
  • SPI Interface Pins
    funktionieren genau so wie die I2C Pins, jedoch mit einem anderen Standard.
  • Rx und Tx Pins
    mit diesen Pins kann man serielle Geräte ansteuern. Wobei hier Rx für Receiver, also Empfänger steht und Tx für Transmitter, also Sender.

Zusätzlich muss man noch erwähnen, dass manche Pins PWM (pulse width modulation) verwenden und als Stromquelle verwendet werden können und manche Pins PPM (pulse position modulation) verwenden um damit beispielsweise Servo Motoren anzutreiben.

Verwirrt? Keine Angst, das ganze klingt zwar kompliziert, ist es nicht, solange man die Belegung der Pins kennt. Also bevor man an der Schnittstelle etwas anschließt bitte zuerst eine Information über die Belegung konsultieren. Das ist nun aber das gesamte theoretische Basiswissen über die GPIO Schnittstelle.

Pinbelegung

Die korrekte Pinbelegung herauszufinden war gar nicht mal so einfach, jedoch habe ich dazu eine wirklich tolle Grafik die fast selbsterklärend ist:

gpio-pinout

Kurz zur Beschreibung der einzelnen Pins:

  • Betriebsspannung
    Es gibt zwei 5 Volt Pins und zwei mit 3,3 Volt Spannung, welche die Spannung für angeschlossene Geräte liefern.
  • Erdung
    Gleich 5 Pins sind für das Erden zuständig. Sie sind relativ gleichmäßig über die Schnittstelle verteilt.
  • Ein/Ausgabe
    alle anderen Pinso sind für die Ein- und Ausgabe von logischen Signalen. Dabei wird eine Spannung von 0-3,3 Volt angelegt bzw. erwartet. Eingabepins sind nicht 5 Volt sicher, man benötigt einen Spannungswandler (level shifter), falls von einer externen Quelle mehr als 3,3 Volt kommen. Manche GPIO Pins kann man ganz normal verwenden, andere sind hier mit den jeweiligen Standard markiert.

Diese Grafik sollte man sich am besten ausdrucken oder merken! Im nächsten Teil geht es nun um die praktische Umsetzung. Dabei werden wir über einen der GPIO Pins eine LED Lampe betreiben.

Teil 2 | Teil 3

Tags: ,

Kategorie: Hardware, Raspberry Pi

Kommentare (7)

Trackback URL | Kommentare vom RSS Feed

  1. Chefkoch sagt:

    Super Beschreibung !
    Freue mich schon auf die nächsten Beiträge…. C=;-)

  2. Alexander Moser sagt:

    Guter Artikel.

    Ich habe bisher nur mithilfe der Hersteller-Library auf Hardware zugegriffen.
    Doch nun möchte ich einen Schritt weiter gehen.

    Kann ich mithilfe der GPIO-Pins des Raspberry Pis ein LCM2004D LCD Display (http://www.phidgets.com/documentation/Phidgets/3654_0_Datasheet.pdf) direkt steuern?
    Ich möchte mir die $65.00 für den PhidgetTextLCD Adapter sparen :-)

    Gruss Alexander
    Alexander

  3. Simon Bauer sagt:

    Wo kaufst du das ganze Zeug also z.b. die gpios

  4. debuglevel sagt:

    Hi,
    schöne Grafik zu den Pins!

    Ich habe mal auf diesen Blog-Posting bei mir im Blog (http://blog.debuglevel.de/raspberry-pi-und-dcf77-empfaenger-von-conrad/) referenziert, da ich eine Darstellung der Pins gebraucht habe. Komfortabler für die Leser wäre natürlich, wenn ich die Grafik direkt einbinden dürfte (und dann einen Link zu deinem Blog druntersetze).

    Falls das okay für dich wäre, wäres es super wenn du mir eine kurze Nachricht schreiben könntest – ansonsten belasse ich es so wie es jetzt ist ;)

    Viele Grüße
    Marc

  5. neongruuen sagt:

    Klasse Text, allerdings ist PPS pulse pause Modulation und geerdet wird auch nichts, das ganze sind Masse Pins oder Pins mit 0V Potential..

    :)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *