FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: Ralf9 am 03 Januar 2021, 12:38:55

Titel: MCP23017: wie Eingänge absichern?
Beitrag von: Ralf9 am 03 Januar 2021, 12:38:55
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
Titel: Antw:MCP23017: wie Eingänge absichern?
Beitrag von: Papa Romeo am 03 Januar 2021, 12:58:55
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
Titel: Antw:MCP23017: wie Eingänge absichern?
Beitrag 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 (https://www.mikrocontroller.net/attachment/158390/dig-input.png)

ESD-Entstörer (https://www.mouser.de/ProductDetail/Littelfuse/SMAJ75CA?qs=zHiv0nsVGmqdWXyNJV7fgQ%3D%3D)

https://www.vishay.com/inductors/smd-ferrite-inductors-beads/ (https://www.vishay.com/inductors/smd-ferrite-inductors-beads/)
Titel: Antw:MCP23017: wie Eingänge absichern?
Beitrag von: Papa Romeo am 03 Januar 2021, 14:45:09
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 (https://www.mikrocontroller.net/attachment/158390/dig-input.png)

ESD-Entstörer (https://www.mouser.de/ProductDetail/Littelfuse/SMAJ75CA?qs=zHiv0nsVGmqdWXyNJV7fgQ%3D%3D)

https://www.vishay.com/inductors/smd-ferrite-inductors-beads/ (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
Titel: Antw:MCP23017: wie Eingänge absichern?
Beitrag von: Ralf9 am 03 Januar 2021, 19:03:36
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
Titel: Antw:MCP23017: wie Eingänge absichern?
Beitrag von: Papa Romeo am 03 Januar 2021, 19:13:14
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