MCP23017: wie Eingänge absichern?

Begonnen von Ralf9, 03 Januar 2021, 12:38:55

Vorheriges Thema - Nächstes Thema

Ralf9

Hallo,

ich habe bei einem Selbstbau HM wired IO-Modul die Eingänge des ProMini mit einem MCP23017 auf 16 Sensor Eingänge erweitert. Ich habe da Fenster Reedkontakte angeschlossen.
Nun habe ich das Problem, daß nun zum zweiten mal der MCP23017 kaputt gegangen ist.
Sind die Eingänge vom MCP23017 empfindlicher als die vom Arduino?
Ich möchte nun die Eingänge des MCP23017 gegen Störungen und Überspannungen absichern.
Die HM wired IO-Module von ELV verwenden einen Widerstand und Kondensator an den Eingängen (siehe Anlage), ist das so ausreichend?

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Papa Romeo

#1
Hallo Ralf,

"offene Eingänge" ist nicht so optimal ... ich würde die Eingänge über einen Pullup (1 - 4k7) und einer Diode (1N4148 --> Anode an GPIO, Signal an Kathode) entkoppeln.

So kann am GPIO die Spannung nie höher werden als die Versorgungsspannung des Bausteins.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

juergs


Papa Romeo

#3
Zitat von: juergs am 03 Januar 2021, 14:07:22
Hallo Ralf,

hier noch die hyper-sichere Methode  :) ;)

https://www.mikrocontroller.net/attachment/158390/dig-input.png

ESD-Entstörer

https://www.vishay.com/inductors/smd-ferrite-inductors-beads/

... auch ne feine Sache und würde ich einbauen wenn ich wirklich "Störimpulse" erwarte...

... man muß sich aber eben im klaren sein, dass man sich dann jede Menge Fehlerquellen eingebaut hat, sollte das Ding doch mal "hopps" gehen ... ::) :P ;) ;D

Es gibt da natürlich jede Menge weiterer Möglichkeiten ... nur mal zu nennen Transistor-Stufe oder Optokoppler ... stellt sich halt immer die Frage "Aufwand und Nutzen"


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Ralf9

Zitatich würde die Eingänge über einen Pullup (1 - 4k7) und einer Diode (1N4148 --> Anode an GPIO, Signal an Kathode) entkoppeln.
Der MCP23017 hat einen internen Pullup den ich aktiviert habe.

ich möchte eigentlich keinen so großen Aufwand treiben.
Ich habe die Schutzschaltung um die Diode ergänzt

Oder ist es evtl besser anstatt der Diode eine "TVS-Diode, Unidirectional, 5 V" zu nehmen? z.B. SMBJ 5.0A-TR

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Papa Romeo

#5
Hallo Ralf,

eine 1N4148 reicht vollkommen aus. Du kannst dir auch den C und den 330 Ohm Widerstand sparen. Durch den internen Pullup ist der Eingang des MCP ständig auf HIGH und nur wenn die Diode auf Masse gelegt wird, erhält der Eingang LOW (ca. 0.7 Volt).

Da die Diode für alle eingehenden Spannungen die größer Ub - 0.7V in Sperrrichtung ist, kann die Spannung an der Anode nicht höher wie Ub werden.

Das mit den internen Pullup´s ist auch so ne Sache, da diese "relative" hochohmig sind. Daher können am Eingang z.B. durch statische Ladung kurzfristig sehr viel höhere Spannungen als Ub anstehen --> Eingang tot

Auch der Kondensator kann bei zu hohen Pullup´s zu diesem Effekt beitragen, wobei sich die Ladungen dann hier noch länger halten können.

Mein Tipp ... wenn´s  nicht unbedingt um´s "Energiesparen" geht, für die Pullup´s externe Widerstände mit 1kOhm bis 10 kOhm verwenden.

Bei "Wischerkontakten" optimalerweise einen Transistor vorschalten, der den Eingang ständig auf Masse hält und nur während der Zeit frei gibt, in der z.B. ein REED geschlossen ist.


LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary