habe grade für einen Raspberry 2 ein Codesys-Programm erstellt, in dem 2xMCP23S17 als Eingänge und 2x MCP23S17 als Ausgänge dienen sollen(Adresse 0-3). Schließe ich jedoch mehr als einen MCP23S17 an, bekomme ich keine Eingangssignale oder Ausgangssignale aus der Steuerung. Schließe ich nur einen an, so werden die jeweiligen Pins (z.B. B2) bei beiden Eingängen als 1 angezeigt. Ein test mit dem Logik-Analyser hat gezeit, dass der Chip auch auf beide Adressen antwortet. Um Auszuschließen, dass der Chip einen defekt hat, habe ich es mit allen 4 Chips ausprobiert, jeder Chip antwortet auf jede Adresse, unabhängig von der Einstellung der Adresspins. Hat jemand schonmal ein ähnliches Problem gehabt oder hat einen anhaltspunkt, woran es liegen könnte?
Grüße
Andreas
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Für den MCP23S17 muss das HAEN Bit im Register IOCON gesetzt werden:
Sonst werden die Adressierungspins nicht ausgewertet.
Das sollte Treiber noch während seiner Initialisierung setzen. Das ist der Wert dieses Registers „IOCON“:
der wird Momentan auf 0x20 gesetzt, sollte aber 0x28 sein:
"c:\Users\<deinwindowsusername>\CODESYS Control for Raspberry PI\3.5.9.40\Libraries\SPI_MCP23S17.library" </deinwindowsusername>
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo zusammen,
habe grade für einen Raspberry 2 ein Codesys-Programm erstellt, in dem 2xMCP23S17 als Eingänge und 2x MCP23S17 als Ausgänge dienen sollen(Adresse 0-3). Schließe ich jedoch mehr als einen MCP23S17 an, bekomme ich keine Eingangssignale oder Ausgangssignale aus der Steuerung. Schließe ich nur einen an, so werden die jeweiligen Pins (z.B. B2) bei beiden Eingängen als 1 angezeigt. Ein test mit dem Logik-Analyser hat gezeit, dass der Chip auch auf beide Adressen antwortet. Um Auszuschließen, dass der Chip einen defekt hat, habe ich es mit allen 4 Chips ausprobiert, jeder Chip antwortet auf jede Adresse, unabhängig von der Einstellung der Adresspins. Hat jemand schonmal ein ähnliches Problem gehabt oder hat einen anhaltspunkt, woran es liegen könnte?
Grüße
Andreas
Hi,
Für den MCP23S17 muss das HAEN Bit im Register IOCON gesetzt werden:
Sonst werden die Adressierungspins nicht ausgewertet.
Das sollte Treiber noch während seiner Initialisierung setzen. Das ist der Wert dieses Registers „IOCON“:
der wird Momentan auf 0x20 gesetzt, sollte aber 0x28 sein:
"c:\Users\<deinwindowsusername>\CODESYS Control for Raspberry PI\3.5.9.40\Libraries\SPI_MCP23S17.library" </deinwindowsusername>
Grüße
Edwin
Vielen Dank für die schnelle Antwort, es funktioniert jetzt super.