GPIO PINS als normale I/O verwenden

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Guten Tag,

    Ich arbeite zurzeit als Anfänger an einem Projekt mit dem Rasberry Pi Modul B.

    Nun habe ich folgendes Problem:

    Ich möchte 7 Eingänge (6 Sensoren und ein RFID-System) abfragen und 6 Ausgänge ( Türöffner ) ansteuern.

    Ich weiß das der Rasberry Pi 17 frei programmierbare I/O´s besitzt. Allerdings besitzen einige davon Sonderfunktionen (I2C,PWM,UART, usw.).

    Am ende komme ich also auf 8 normal programmierbare freie Pins. Ich benötige allerdings 13 Stück. Ist nun ein USB-Hub bzw. ein PI-Interface notwendig oder kann ich die Pins mit Sonderfunktionen auch normal verwenden? Trotz langer Suche konnte ich kein klares ja oder nein dazu finden.

    Vielen Dank,

    der doggy:danke_ATDE:

  • Vielen Dank :D.

    Nun, als Anfänger sind viele aussagen im Internet leider recht lasch. Muss ich etwas besonderes bei der Verwendung z.b. der SPI Pins als normale GPIO Pins beachten? Ich habe gehört, dass man bestimme Module zunächst blacklisten muss.

  • Ich weiß das der Rasberry Pi 17 frei programmierbare I/O´s besitzt. Allerdings besitzen einige davon Sonderfunktionen (I2C,PWM,UART, usw.).

    Alle GPIO Pins (abgesehen von den Strom und GND pins) können regulär als Ein- oder Ausgang genutzt werden auch die GPIO Pins mit Sonderfunktion - diese kann man aber eben auch entsprechend ihrer Sonderfunktion verwenden.

    Bedeutet:
    Du kannst zum Beispiel GPIO 2 & 3 auch als normalen Ein-/Ausgang verwenden - oder deren Sonderfunktion I2C.
    Du kannst aber nicht GPIO 17 & 18 für I2C verwenden, oder einen anderen welcher nicht diese Sonderfunktion hat.
    Etwas dazu steht auch >> hier <<


    Es gibt aber auch Ausnahme:

    • Beim alten Model-B können die Pins von P6 nicht anderweitig verwendet werden. Diese dienen ausschließlich dazu den SoC zu resetten.
    • Beim neuen Model-B+ können GPIO 27 & 28 ausschließlich mit ihrer Sonderfunktion verwendet werden.
    • Bei beiden Modellen (B & B+) müssen die UART Pins erst freigeschaltet werden damit diese regulär verwendet werden können.
  • Hallöle,


    ...
    Es gibt aber auch Ausnahme:

    • Beim alten Model-B können ...


    und: ich habe noch nirgendwo eine belegte Aussage darüber gefunden, dass sich (beim B-Modell) die Pullups der beiden IIC Pins abgeschalten lassen.
    Im Gegenteil: -> click <-
    Da wurden von Erweiterungsboards sogar Widerstände abgelötet ...

    Es gibt zwar jede Menge Behauptungen, die sagen, dass es möglich ist ... aber nicht eine davon ist belastbar belegt.
    Vielleicht nur mal im Hinterkopf behalten und bei eventuellen Prolemen mit den beiden Pins wieder vorkramen. Ich jedenfalls benutze die ausschliesslich für IIC um evtl. Fehlverhalten von Haus aus zu vermeiden.

    cheers,
    -ds-

  • Genau das war auch in allen anderen Beiträgen mein Problem.

    Also im Prinzip sind alle Eingänge völlig normal nutzbar (also die 17 frei programmierbaren).

    Nun sind es also doch nicht alle? Die UART Pins müssen gesondert freigeschaltet werden und die I2C-Bus Pins sollte man lieber nicht nutzen, wenn ich das nun richtig verstehe?

    Mit freundlichen Grüßen

    euer doggy

  • Hallo Doggy,

    um es abschließend klarzustellen:

    Solange Du keine I2C-Funktionalität / SPI-Funktionalität / ... aktiviert hast (z.B. über raspi-config) oder über irgendwelche Module nachgeladen hast (modprobe) oder über irgendwelche Bibliotheken aktiviert hast, sind alle 17 GPIOs identisch.

    Es gibt zwar einen GPIO-Pin (wenn ich mich recht entsinne, ist dies GPIO4), der beim Hochfahren noch eine andere Funktion wahrnimmt. Dies äußert sich darin, dass eine dort über einen ausreichend großen Widerstand angeschlossene LED flackert, ohne dass dies von einer anwendergesteuerten Software verursacht worden wäre. Nach dem Hochfahren wird dieser GPIO-Pin aber genauso behandelt wie die anderen GPIOs auch.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Die UART Pins müssen "freigeschaltet" werden, weil sie z.B. von Raspbian als serielle Konsole verwendet werden. Das ist ganz normal, dass ein Linux System eine serielle Konsole verwendet und da der RPi seine rs232 halt nur als GPIOs hat, ist das nun mal so.
    Das mit SDA/SCL ist was anderes. Prinzipiell habe ich nichts gefunden, dass sie nicht als "normale" GPIOs verwendet werden können. Es ist aber auch nirgendwo verläßlich dokumentiert, dass die pullups auf 3V3 deaktiviert werden können. Zumindest habe ich bisher nichts dergleichen finden können. Das bedeutet, dass Du die beiden Pins als einfache IOs nutzen kannst. Allerdings würde ich empfehlen die Unsicherheit wegen der Pullups im Hinterkopf zu behalten, sollte irgendwas nicht so funktionieren wie vorgesehen.
    Es gibt übrigens noch eine Ausnahme: von der Benutzung des Hardware-PWM IOs wird in den meisten Foren ebenfalls abgeraten. Dieser Pin wird vom "Soundsystem" des RPi benötigt. Es heißt aber auch, dass er frei verwendbar ist, wenn man die Soundausgabe nicht verwendet.

    Fazit ist also: alle Pins sind frei nutzbar.
    Um auf Nummer Sicher zu gehen: gibts bei den Pins #3, #6 oder #12 Probleme, an SCL/SDA bzw. PCM_CLK denken.
    Und um ganz sicher zu gehen: die Pins #3, #6 und #12 einfach nicht verwenden.

    cheers,
    -ds-

  • Sorry wenn ich das Thema nochmal aufleben lasse, wollte aber kein neuen Thread erstellen.

    Das heißt ich kann ohne weitere Einschrankungen alle 26 Pins von meinem RasPi als I/O nutzen, muss aber nur manche Blacklisten?

  • Hallo h4ppx,

    herzlich Willkommen in unserem Forum!

    weiterhin sind alle GPIO-Pins gleichberechtigt. Wenn Du diese als Input digitaler Eingänge oder als Output digitaler Ausgänge benötigst, dann kannst Du alle Pins, die in den einschlägigen GPIO-Layouts mit GPIO gekennzeichnet sind, verwenden.

    Manche sind zwar für bestimmte Zwecke angedacht - aber die Belegung kannst Du ändern. Nach dem Hochfahren (wenn Du keine weiteren Änderungen vorgenommen hast) verhalten sich alle gleich.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!