GPIO Nutzung ändern in Hyperion

  • Hallo,

    Ist es irgendwie möglich einzustellen, dass der Pi automatisch einen anderen GPIO Pin nutzt, wenn ein Programm einen bestimmten Pin anspricht?
    Also als Beispiel wenn das Programm eigentlich GPIO10 anspricht, aber der Pi stattdessen immer GPIO20 nutzen soll.

    Gruß

    Dominik

  • Ist es irgendwie möglich einzustellen

    klar

    wenn das Programm eigentlich GPIO10 anspricht, aber der Pi stattdessen immer GPIO20 nutzen soll.

    dann sag das dem Programm (im Quelltext)

    wenn du statt auf die Toilette immer in die Küche gehst muss man dir halt sagen, nutze die Toilette

    Küchentür umbenennen hilft ja nicht!

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • klar

    dann sag das dem Programm (im Quelltext)

    wenn du statt auf die Toilette immer in die Küche gehst muss man dir halt sagen, nutze die Toilette

    Küchentür umbenennen hilft ja nicht!

    Dass das im Programm selbst am einfachsten wäre ist mir schon klar. Aber angenommen der Quelltext ist nicht zu ändern. Kann man dann eine Art Weiterleitung einrichten? Das Programm sagt nutz Pin A, der Pi weiß wenn Pin A angesprochen werden soll, nimmt er stattdessen Pin B.

  • Eigentlich brauchst Du dir nur einen eigenen Treiber o. eine Art Devicemapper zu schreiben, dann musst du nur noch dafür sorgen, das dein Programm statt mit dem org. Kerneltreiber mit deinem eigenen Treiber / Mapper den I/O Zugriff auf die Hardware erledigt und dann bist Du wieder da, wo es losging, dass Du in deinem Programm nichts ändern kannst. Das nächste Problem wäre, dass es ja auch Pin's ( z.B. I2C ) gibt, die eine spez. Beschaltung ( externe Pullupwiderstände ) haben.

    Warum sollte der Programm Quellcode denn nicht änderbar sein?
    Schreib doch einfach um was es dir genau geht, vielleicht kann dir ja jmd. einen Rat geben.

    • Offizieller Beitrag

    Welchen der Beiden Threads möchtest Du behalten und welcher kann weg? Der hier oder den: GPIO Pins in Hyperion ändern löschen? (Edit: Hat sich erledigt)

    Btw: https://elinux.org/RPi_SPI

    //Edit Fliegenhals Es geht um SPI (siehe anderen Thread)! ;)

  • Ok, dann SPI und Hyperion. Vielleicht einfach mal mit einem frischem ( nicht Hyperion ) Image testen, ob sich die besagten Pin's per Hand auf H, L, bzw. die Pullup / Pulldown Widerstände schalten lassen. Wenn das auch nicht gehen sollte bleibt ja immer noch eine Änderung per DeviceTree.

  • Haben den anderen Thread mal gelöscht.

    Es geht um folgendes:

    Ich hatte Hyperion auf einem Pi3 eine Zeit lang funktionsfähig laufen, aber jetzt scheinen GPIO10 (MOSI) and GPIO11 (SCKL) einen Schaden zu haben. Ich kann an beiden keine üblichen 3.3V mehr messen. Ist es möglich Hyperion so einzustellen, dass es anstelle der beschädigten Pins die Pins GPIO20 (MOSI) und GPIO21 (SCKL) nutzt?

  • Ok, dann SPI und Hyperion. Vielleicht einfach mal mit einem frischem ( nicht Hyperion ) Image testen, ob sich die besagten Pin's per Hand auf H, L, bzw. die Pullup / Pulldown Widerstände schalten lassen. Wenn das auch nicht gehen sollte bleibt ja immer noch eine Änderung per DeviceTree.

    Hab die Pins einzeln an und aus geschaltet um zu schauen ob sie funktionieren. Messe aber statt den 3.3V nur 0.2 bzw. 1.3V an den genannten Pins. Das meintest du mit von Hand schalten oder?

    Wenn ich wüsste wo ich die Pins im Hyperion Quelltext ändern kann, wäre es am einfachsten.

  • Hab die Pins einzeln an und aus geschaltet um zu schauen ob sie funktionieren. Messe aber statt den 3.3V nur 0.2 bzw. 1.3V an den genannten Pins. Das meintest du mit von Hand schalten oder?

    Wenn ich wüsste wo ich die Pins im Hyperion Quelltext ändern kann, wäre es am einfachsten.

    Das habe ich mit von Hand gemeint, nur halt sicherheitshalber mit einem frischem "nicht Hyperion" System. Vielleicht hat ja dein Image ein Problem oder dein Messgerät braucht nur eine frische Batterie ;) Aber einen Grund warum SPI von heute auf morgen nicht mehr funktioniert, wird es bestimmt geben.

    Habe leider keine Ahnung von Hyperion, vielleicht lassen sich die SPI Pins per DeviceTree umbiegen.

  • Das habe ich mit von Hand gemeint, nur halt sicherheitshalber mit einem frischem "nicht Hyperion" System. Vielleicht hat ja dein Image ein Problem oder dein Messgerät braucht nur eine frische Batterie ;) Aber einen Grund warum SPI von heute auf morgen nicht mehr funktioniert, wird es bestimmt geben.

    Habe leider keine Ahnung von Hyperion, vielleicht lassen sich die SPI Pins per DeviceTree umbiegen.

    Danke für deine Hilfe . Das hab ich mehrfach geprüft, die 2 Pins haben definitiv einen Schaden.

    Nehme an ich hab beim Auf- und Abbau irgendwann Mal was falsch gesteckt. Also es ist nicht plötzlich von heut auf morgen ohne was zu machen kaputt gegangen.

    Von DeviceTree hab ich leider keine Ahnung. Muss ich mich Mal schlau machen.

  • Hatte jetzt erst Zeit etwas rumzuprobieren. Habe nun wie im link oben beschrieben über

    Code
    dtoverlay=spi1-3cs

    SPI1 aktiviert. Nachdem ich dann noch in der hyperion.config.json Datei "output" : "/dev/spidev0.0" in "output" : "/dev/spidev1.0" geändert habe, nutzt Hyperion wie gewünscht die Pins GPIO20 (MOSI) und GPIO21 (SCKL) und alles funktioniert.

Jetzt mitmachen!

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