CODESYS - das IEC 61131-3 Programmiersystem
https://forum-de.codesys.com/

MCP23017 als Ausgang konfigurieren
https://forum-de.codesys.com/viewtopic.php?f=18&t=5924
Seite 1 von 1

Autor:  JJoe [ So Feb 17, 2019 4:15 pm ]
Betreff des Beitrags:  MCP23017 als Ausgang konfigurieren

In einem Lehrertrainingsprojekt der deutschen Entwicklungszusammenarbeit wird der Raspberry PI 2 B mit Codesys V3.5 Sp14 eingesetzt. Neben einem Horter&Kalb digitalem Eingangsmodul wird auch ein MCP23017 verwendet. Der Baustein soll die benötigten digitalen Ausgänge zur Verfügung stellen. Das kleine Testprogramm (Bild 1) funktioniert nur, wenn ich vorher ein i2cdump dausgeführt habe und auch nur solange ich in Codesys das Programm nicht gestoppt habe. Nach dem erneuten Start muss ich wieder ein i2cdump durchführen, bevor er Ausgang reagiert.
Die Testprogramme, die ich im Forum gefunden habe funktionieren bei mir auch nicht.

P.S. Ein Testprogramm in Phyton funktioniert problemlos, so dass ich davon ausgehe, dass kein Hardwarefehler vorliegt. Der Raspberry ist auch komplett aktualisiert.

Ich hoffe, dass jemand im Forum eine Lösung meines Problems hat und bedanke mich schon einmal im Voraus.

Dateianhänge:
2.jpg
2.jpg [ 54.2 KiB | 583 mal betrachtet ]
1.jpg
1.jpg [ 39.91 KiB | 583 mal betrachtet ]

Autor:  **michi* [ So Feb 17, 2019 5:30 pm ]
Betreff des Beitrags:  Re: MCP23017 als Ausgang konfigurieren

Hallo JJoe,

so wie ich das verstehe, schreibst du in jedem Zyklus die Konfiguration an MCP raus. Ich vermute IO_B ist bei der Register 01.
Die Konfiguration reicht, wenn diese einmalig gesetzt wird. Des weiteren empfiehlt es sich (wer mag) den geschriebenen Befehl erneut einzulesen, um sicher zu stellen, dass hier der korrekte Initialisierungswert übertragen wurde. By the Way... du mappst den Eingang direkt auf den Ausgang. Versuche erstmals dies mit einer Boolschen Variable. Um einzugrenzen ob dein Eingang nicht übertragen wird oder der Ausgang ein Problem hat.


Gruß

Autor:  JJoe [ Mo Feb 18, 2019 11:23 am ]
Betreff des Beitrags:  Re: MCP23017 als Ausgang konfigurieren

Hallo Michi,
vielen Dank für deine schnelle Antwort.
Das Codesys Programm funktioniert so wie es programmiert ist. Aber nur dann, nachdem ich in einem Raspberry Terminal den Befehl i2cdump -y 1 0x24 durchgeführt habe. Und nur solange, bis ich das Codesys Programm stoppe.
Viele Grüße
JJoe

Autor:  **michi* [ So Feb 24, 2019 12:37 pm ]
Betreff des Beitrags:  Re: MCP23017 als Ausgang konfigurieren

Hallo,

hört sich unterm Strich so an, als würde Codesys deinen I2C nicht korrekt initialisieren, bzw. funktioniert nur der erste Teilnehmer nicht, oder beide, oder nur der zweite als Ausgang?!
Mit dem I2cdump machst du unterm Strich nichts anderes, als ein Register lesen vom MCP23007. Es wäre wesentlich einfacher, wenn der Quellcode von deinem MCP23007 hier abgebildet wäre. Ich vermute, dass hier deine Ansteuerung in der Lib nicht korrekt ist. Was ich mir vorstellen könnte, das mit dem i2cdump die Adresse "irgendwie" gesetzt wird und du darüber Zugriff hast. Bei Stop, bzw. Reset ist diese natürlich dann 0. Das Codeschnippsl :-) von dir ist an der Stelle nicht aussagekräftig...

Seite 1 von 1 Alle Zeiten sind UTC
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/