Konfiguration GPIO PINS

  • Hallo Leute,

    um wieder die Entwicklung an meinen Standorten zu verbessern wollte ich nun die USB zu Seriellen Adaptern abschaffen.

    In der Konfiguration habe ich gesehen das man auch die GPIO pins nutzen kann.

    Ich möchte nicht wie in der einen Beschreibung die AMA0 Schnitstelle nutzen sondern die GPIO PINx in LOW oder high Pegel jeweils für PTT und einmal für SQL.

    Leider habe ich keine Anleitung gefunden wie ich das machen könnte. Bei dieser Thematik hab ich 0 Plan.

    kann mir jemand sagen wie ich das zum laufen bekomme. Oder ob das überhaupt geht.

    Ich nutze Raspberry Pi B und Pi2.

    danke Jens , dj1jay

  • Hallo Jens,

    klar geht das. Du musst nur in der svxlink.conf RX und TX auf GPIO umkonfigurieren und dort die gewünschten Pins eintragen. Beim HAMServerPi sind das z.B. GPIO10 als SQL und GPIO17 als PTT:

    Code
    [Rx1]SQL_DET=GPIOGPIO_SQL_PIN=gpio10[Tx1]PTT_TYPE=GPIOPTT_PIN=gpio17


    Dann im Startscript von SvxLink oder ersatzweise in der rc.local folgende Einträge VOR dem Aufruf von SvxLink einfügen:

    Code
    # Enable GPIO10 as SQL
    echo "10" > /sys/class/gpio/export
    echo "in" > /sys/class/gpio/gpio10/direction
    echo "1" > /sys/class/gpio/gpio10/active_low
    
    
    # Enable GPIO17 as PTT
    echo "17" > /sys/class/gpio/export
    echo "out" > /sys/class/gpio/gpio17/direction
    chmod 666 /sys/class/gpio/gpio17/value


    Hinweis: Im obigen Beispiel ist das SQL-Signal Low-Aktiv. Kann man natürlich auch umdrehen.

    Schönen Gruß
    Frank, DL3DCW

  • Hallo Frank,

    nun habe ich doch nochmal ein frage.

    Wie kann ich auf High level stellen. einfach (active_high)?

    und wie könnte ich die PTT als Ausgang drehen geht das auch, Ich taste den TX gegen masse?

    73 Jens

  • Hallo Jens,

    entweder

    Code
    echo "0" > /sys/class/gpio/gpio10/active_low


    oder Zeile komplett weglassen. Einfach mal ausprobieren.

    Sollte bei der PTT eigentlich genauso funktionieren.

    Schönen Gruß
    Frank, DL3DCW

  • Ich komme zwar mit etwas Verspätung, habe aber selber beim BananaPi mit den GPIOs rumexperimentiert und dabei für den Einstieg diesen hilfreichen Link gefunden https://www.raspberrypi.org/documentation/usage/gpio/.
    Die Unterscheidung zwischen den physikalischen und per Software angesprochenen GPIOs ist wichtig. Der andere kleine Helfer Banana ist hier beschrieben :
    https://www.elektronik-kompendium.de/sites/raspberry-pi/1907101.htm.

    Leider ist auch die Syntax bei Raspian und Bananian etwas anders (mal mit "", mal ohne ...).

  • Guten Abend,

    möchte eine soeben gewonnene Erkenntnis gerne mit Euch teilen.

    Bei unserem laufenden Projekt am BananaPi Pro gabs das Problem, dass nach dem Booten der TX auf Sendung stand. Die Steuerung der Hardware war darauf ausgelegt, dass nach dem Booten am GPIO ein High-Signal anstand. Dem war aber nicht so. Denn alleine durch Setzten der "direction" von "in" auf "out" wird der entsprechende GPIO auf "0" also "low" gesetzt. Nicht das was wir brauchten.

    Letztlich habe ich es dann mit dem Eintrag

    Code
    echo "1" >/sys/class/gpio/gpio25/value

    hinbekommen. Allerdings hatte dies zur Folge, dass das Signal dann high blieb und sich trotz Root-Rechte nicht mehr ändern ließ.

    Nach einigen Stunden Recherche dann die richtige Site gefunden. Dort steht dann u. a. Folgendes:

    Quote

    However, the permissions on the /sys/class/gpio/gpio17/value file exists but the group permissions is read-only. If we put in a "sleep" in order to wait for a fraction of a second, the perms change so the group perm has write permissions.

    Durch den Befehl

    Code
    wait 3

    dauert das Booten nun 3 Sekunden länger, aber was solls :)

    Danach ist aber die Welt in Ordnung und man hat auch wieder Zugriff auf den GPIO.

    Danke auch an der Stelle wieder mal an Adi, welcher sich auch den Kopf zerbochen hatte :)