Rev.2: Wie GPIO27 mit BCM2835 als Ausgang nutzen?

  • Hallo zusammen,

    Dies ist mein erster Beitrag hier und gleich eine Frage, auf welche ich nach langem Suchen im Forum keine Antwort finden konnte.

    Es geht um meinen RPi Rev.2, bei welchem ich bereits verschiede GPIOs (z.B. 10, 11, 17, 22, 23, 24) als Ausgang belegt habe, und den GPIO_18 für PWM nutze.
    Nun brauche ich noch 2 weitere GPIOs als Ausgang, allerdings habe ich damit ein Problem denn ich schaffe es nicht auf HIGH zu schalten.
    Ganz konkret geht es um den GPIO_27, welcher bei Rev.2 als P1-13 in der bcm2835 Bibliothek definiert ist.

    Mein Programm ist in C, also z.B.
    bcm2835_gpio_fsel(P17, BCM2835_GPIO_FSEL_OUTP);
    bcm2835_gpio_write(P17, HIGH); //funktioniert wunderbar

    Kann mir da jemand einen Tip geben wie ich GPIO27 mit der bcm2835 library schalten kann? Habe auch schon die alternativen Funktion probiert aber nichts geht…
    Hat das was damit zu tun dass P1-13 in Rev.1 als GPIO_21 definiert ist und in Rev.2 als GPIO27?
    Aber ich habe das gleiche Problem auch mit GPIO_04 und 09.
    (Übrigens: unter der Shell (also mit echo out > direction, echo 1 > value, etc.) funktioniert es.)

    Eine andere Frage noch: Es gibt diverse GPIOs welche direkt nach dem booten des RPi auf HIGH sind, z.B. GPIO_07, 08 und 04.
    Gibt es eine Möglichkeit dass diese während und nach dem booten auf LOW bleiben?
    Sie sollen erst später durch das Programm geschalten werden.

    Danke für alle Tipps

  • Hallo Michael,

    herzlich Willkommen in unserem Forum!

    Viele Fragen auf einmal.

    Zunächst einmal haben sich die Entwickler etwas dabei gedacht, dass bestimmte GPIO während des Bootens schalten - weil sich damit nämlich Systemzustände erkennen lassen.

    Ein derartiges Verhalten abstellen zu wollen kommt dem gleich, mit geschlossenen Augen durchs Leben zu gehen, nur weil Du die Augen nicht öfnen möchtest. ;)

    Dass der GPIO27 nicht funkioniert, hat verschiedene Gründe.

    Kann an der Software liegen. Oder an der Hardware. Wenn Du einen anderen Pin anvisierst, vermagst Du Schaltvorgänge auf dem GPIO27 nicht zu erkennen.

    Ebenso können andere Anwendungen den GPIO27 blockieren.

    Vielleicht hast Du den GPIO27 durch frühere Experimente abgeschossen?

    Für einen solchen Zweck habe ich mir ein GPIO-Kontrollzentrum geschrieben und sehe bei dessen Anwendung auf einen Blick, ob alle GPIOs funktionieren. Da komme ich nicht in Versuchung, über solche Probleme ins Grübeln zu verfallen.

    Die unterschiedliche Benennung des P1-13 auf verschiedenen Board-Revisionen sollte auch kein Grund sein. Entweder hast Du per Befehl die Möglichkeit, die Board-Revision inkl. Benennung der GPIO-Pins festzulegen - oder bessere GPIO-Libraries erkennen von sich aus die Board-Revision (wie meine GPIO-Library)

    Wir kennen weder Deine Schaltung noch Dein Programm. Somit dürften tiefere Aussagen nicht möglich sein.

    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.

  • Hallo Andreas,

    Na du scheinst ja ein echt toller Hecht zu sein. Und an Lebensweisheiten scheint es dir auch nicht zu mangeln.
    Wenn der Pin sich über die Shell steuern lässt, kann ich ihn wohl kaum abgeschossen haben.
    Außerdem hat das nichts mit einer Schaltung zu tun, es hängt nur ein Messgerät dran.
    Aber Hauptsache blöd drauflos labern und deine tolle Bibliothek anpreisen.
    Da schreib ich mir lieber selber eine wenn’s sein muss.

    Selten so einen blöden Forumsbeitrag gelesen…

Jetzt mitmachen!

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