NEWS
RPI2.0 - kann GPIOs nicht schalten
-
Langsam bin ich echt am verzweifeln.
Ich habe hier im Forum schon diverse Threads zu meinem Problem gelesen. Das hat mich aber auch nicht weitergebracht.
Ich versuche jetzt seit Tagen den rpi2.0 Adapter vernünftig auf einem Raspberry 1 B Rev 2 zum laufen zu bringen.
Der Grund dafür ist, dass ich (zunächst) acht Relais damit schalten möchte, welche dann wiederum Verbraucher schalten.
iobroker läuft auf einen Cubietruck als master und der Raspi soll als untergeordnetes System laufen.
Die erste Installation habe ich mit RASPIAN Jessie und iobroker von Hand durchgeführt.
Multihost Umgebung eingerichtet, Host und die installierten Adapter (rpi2.0 auf dem Raspi) wurden angezeigt alles OK
iobroker lief auch als root.
Zum Testen ein paar Python scripte geschrieben und die Relais liessen sich einwandfrei schalten.
Die gpios tauchten in Objekte auf alles sah zunächst super aus.
Leider hatte nur der dortige Status nichts mit dem GPIO Status des Raspi zu tun. Und auch das Schalten von GPIOs mit vis habe ich nicht hinbekommen. Zwar wurden die Statusänderungen in Objekte angezeigt, führten jedoch nie zu einer Änderung an den GPIOs.
Einige Script mit Python hingegen liefen einwandfrei und konnten in allen Modi (BCM,BOARD) die Relais schalten.
Nach dem ich lange alles mögliche versucht habe und es nicht hin bekommen habe die Relais via iobroker zu schalten, habe ich heute das ganze mit dem Image von hier nochmal gemacht.
Leider habe ich immer noch keine Erfolg.
Irgendwie macht das Verhalten des Adapters keine Sinn für mich.
weder die BCM Zuordnung noch die WirinPi noch die BOARD Zuordnung scheint zu klappen.
Ich nutze zur Zeit die PINs 3,5,7,11,13,15,19,21,23 das entspricht den GPIOs 02,03,04,17,27,22,10,09.
Ich habe zum testen dann einfach mal alle Port Nummern des Adapters auf Output gesetzt und mir die Fehlermeldungen angeschaut.
rpi2.0 2017-05-11 01:57:39.321 error Cannot setup port 16 as output: Error: EBUSY: resource busy or locked, write
rpi2.0 2017-05-11 01:57:38.297 error Cannot setup port 27 as output: Error: Channel 27 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.294 error Cannot setup port 25 as output: Error: Channel 25 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.291 error Cannot setup port 20 as output: Error: Channel 20 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.289 error Cannot setup port 17 as output: Error: Channel 17 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.286 error Cannot setup port 14 as output: Error: Channel 14 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.283 error Cannot setup port 9 as output: Error: Channel 9 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.280 error Cannot setup port 6 as output: Error: Channel 6 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.277 error Cannot setup port 4 as output: Error: Channel 4 does not map to a GPIO pin
rpi2.0 2017-05-11 01:57:38.260 error Cannot setup port 2 as output: Error: Channel 2 does not map to a GPIO pin
Vergleicht man die obigen Portnummern mit der PIN-Belegung meines Boards und nimmt dafür die physikalischen PIN-Nummern meines Raspi (Raspi 1 B Rev.2 - siehe Grafik)
so ergibt sich Folgendes:
(ich benutze PORT für die Nummern des rpi2.0 Adapters und PIN für die physikalischen Pin-Nr des Raspberry, die netten Nummern in den Kreisen)
PORT 16 - ist noch ungeklärt, scheint aber ein anderes Problem zu sein.
PORT 27 gibt es bei mir nicht da Raspi 1 wenn man die physikalische PIN Nummer 27 nimmt
PORT 25 wäre GROUND und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 25 nimmt
PORT 20 wäre GROUND und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 20 nimmt
PORT 17 wäre 3V und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 17 nimmt
PORT 14 wäre GROUND und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 14 nimmt
PORT 9 wäre GROUND und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 9 nimmt
PORT 6 wäre GROUND und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 6 nimmt
PORT 4 wäre 5V und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 4 nimmt
PORT 2 wäre 5V und damit ist die Fehlermeldung korrekt, wenn man die physikalische PIN Nr 2 nimmt
Glaubt man den Fehlermeldungen scheint es so zu sein das die Portnummern den physikalischen PIN-Nummern entsprechen.
Allerdings wurde hier schon des öfteren Gesagt das es die BCM Nummerierung wäre. Dann wären die Fehlermeldungen zwar falsch aber was solls.
Leider funktioniert die Zuordnung der Portnummern zur BCM Nummerierung bei mir auch nicht. Setze ich bspw. Port 2 auf out, kommt die obige Fehlermeldung.
Laut BCM müsste es aber PIN Nr 3 auf meine Raspberry sein und damit sollte kein Fehler kommen. Ich bin wahrscheinlich zu doof um das zu kapieren.
Übrigens fällt mir auf das beim Initialisieren des rpi2.0 Adapters die folgenden PINs direkt einfach mal auf LOW gesetzt werden. (Das Relaisboard ist LOW - aktiv)
Pin Nr 5, 19, 15 entspräche nach obige Logik den selben Portnummern oder nach BCM Nummerierung Port 3,10,22.
Im Objektbaum sind allerdings nur 3 und 5 mit dem State false gesetzt. Auch das macht keinen Sinn für mich.
Das ist mein letzter Versuch mit dem Adapter. Sonst muss ich einen anderen Weg finden die Relais mit iobroker zu steuern.
Please HELP
und DANKE schon mal im Voraus
Gruß
TGR
P.S oh sorry ich habe das glaube ich in den falschen Thread gepostet. Sollte zu Adapter- Allgemein. War schon etwas spät gestern. Kann ein Admin das bitte verschieben.
1406_gpio-raspberrypi1-modellb-rev2.png -
ich verstehe dein Frust… ich bastle auch mit rum....
finde leider keine Zeit mir den Adapter zur Brust zu nehmen um zu schauen was da wirklich läuft...
was ich rausgefunden habe ist ..
Es scheint die BCM Belegung zu sein. Wobei die GPIO's initialisiert werden müssen.. warum auch immer (zumindest so funktioniert es mit meinem GPIO23 als Input) .. ist aber der einzige der geht habe ich festgestellt...