Forum: Mikrocontroller und Digitale Elektronik mcp23s17 input mit langer Kabelverbindung


von Frank K. (plata)


Lesenswert?

Hallo zusammen,

ich habe 2 MCP23S17 Bausteinen an einen kleinen SPI-Bus an meinen 
Raspberry angeschlossen, im Testaufbau auf dem Steckboard funktioniert 
alles prima.

Beim produktiven Einsatz übernimmt ein GPIO Port eines MCP23S17 die 
Funktion den Zustand der Fenster im Haus feststellen, die mit 
Reedkontakten ausgestattet sind. Da die Reedkontakte in Reihe geschaltet 
sind, kommt schon eine ganz schöne Kabellänge zusammen, ich schätze es 
sind mehr als 50m, als Verkabelung der Reedkontakte habe ich damals CAT5 
Kabel verwendet.

Der entsprechende GPIO-Port ist als Input mit dem internen 
Pullup-Widerstand definiert. Sind alle Fenster geschlossen liegt GND auf 
diesem Port an.

Nach dem Start meines Überwachungsprogrammes läuft das System zunächst 
stabil, aber nach einer gewissen Zeit erfolgt ein Register-Reset auf dem 
MCP23S17; was einen erneuten INIT der MCP23S17 erforderlich macht. Das 
passiert auch, wenn der Zustand der Fenster nicht verändert wird.

Ich bin mir ziemlich sicher, dass es wohl an der Leitungslänge liegt 
(Impedanz, Wellenlängenwiderstand, .... da kenne ich mich nicht aus ).

Kann mir jemand sagen, ob und wie ich diese Leitung dämpfen oder sonst 
wie verändern muß, damit die Signale zum GPIO-Input eindeutig und stabil 
sind.

Danke in die Runde.

von A. S. (Gast)


Lesenswert?

Falls Du sagen willst, dass vom GPIO ein 50m langes Kabel den PIN gegen 
GND schaltet (wenn alle Fenster geschlossen sind), dann nimm zumindest 
nicht den internen Pullup, sondern z.B. 100R gegen VCC. Falls Du auf 
Strom achten musst, dann Schalte die per Transistor ab und messe nur 
alle 500ms oder so.

Es ist aber mir nicht klar, welche VCC Du hast und wie Du die Störungen 
auf den Leitungen (VCC und GND) unterdrückst. Zumindest Climb- und 
Suppressor-Dioden sollten es m.E. schon sein. Zudem >= 1kOhm zwischen 
dem GPIO und den 100R.

von Frank K. (plata)


Lesenswert?

Hallo Achim,
Danke für die schnelle Antwort, und für Dein Engagement.

Der Strom kommt vom Raspberry zum MCP23S17 es ist also eine Spannung von 
3,3 V anliegend, da ich beabsichtige den SPI-Bus auf ca. 4 MCP23S17 
aufzustocken, achte ich schon etwas auf den verwendeten Strom, Kannst Du 
mir nochmals kurz erläutern war Du mit dem 1kOhm Widerstand und den 100R 
meinst, bzw. wie das zu platzieren wäre ?

Altenativ hatte ich gedacht einen ULN2803 zwischen meinen MCP23S17 und 
den Schaltung der Fensterkontakte zu platzieren und dann den Stomkreis 
mit den Reed-Kontakten unter einer höheren Spannung und geringeren 
Widerständen  zu implementierenn. Es stellt sich nur die Frage, ob es 
dieses "Flattern" nicht ggf. über den ULN2803 auf den 3,3 V Stromkreis 
des MCP23S17 überträgt.

Danke und einen schönen Abend, André.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.