Überspannungsschutz, um das Einfrieren des Mikrocontrollers zu verhindern - Auswahl von MOVs und TVS-Dioden

Ich habe eine Schaltung, die eine Offline-Schalt-SMPS-Schaltung (basierend auf viper22a) enthält, die 220 V in 5 V umwandelt, die mit einem Linearregler-IC auf 3,3 V heruntergeregelt werden. Dies schaltet ein ESP-WLAN-Modul und einen Atmega328p-Chip ein. Der Mikrocontroller wird zur Steuerung von Wechselstromgeräten wie Tublights, Glühbirnen, Lüftern usw. (mit optisch isolierten Triacs) verwendet. Der Stromkreis verläuft hinter der Schalttafel, ganz in der Nähe des Wechselstromkabels.

Alles funktioniert gut, außer ein- oder zweimal in der Woche, wenn mein Atmega einfriert und GPIO-Pins in einem zufälligen Zustand einrasten - hoch, niedrig oder gemischt (einige Pins hoch, wenige Pins niedrig). Da sich der Stromkreis innerhalb der Schalttafel befindet, besteht die einzige Möglichkeit, ihn wieder in den normalen Betrieb zu versetzen, darin, die Stromversorgung dieser Schalttafel zu unterbrechen.

Nachdem ich etwas gelesen hatte, kam ich zu dem Schluss, dass es möglicherweise an Transienten in der Wechselstromleitung (erzeugt durch Schalten von induktiven / kapazitiven Lasten wie Wechselstrom, Kühlschrank usw.) liegt, die irgendwie den Mikrocontroller erreichen. Hab ich recht?

Dabei bin ich auf zwei mögliche Fixes gestoßen:

(1) Watchdog-Timer auf der Codeseite implementieren (ja, ich habe es nicht früher getan)

(2) Verwendung einiger transienter Unterdrückungshardware wie MOVs oder TVS-Dioden

(1) ist erledigt. Für (2) brauche ich etwas Hilfe.

Ich plane, eine TVS-Diode für die 3,3-V-Leitung einzusetzen, die zum Atmega328 geht. Ich habe einige ausgewählt, die eine Durchbruchspannung im Bereich von 4,1 - 6,8 V haben.

Außerdem plane ich, eine weitere Schutzschicht direkt am AC-Eintrittspunkt (am Stromversorgungskreis) anzubringen.

Was ist aus TVS-Diode und MOV die bessere Wahl? Oder sollte ich beide parallel hinzufügen?

Ich tendiere eher zu TVS-Dioden, weil sie zuverlässiger sind und eine lange Lebensdauer haben.

Was eignet sich besser für diesen Zweck? Kann ich noch etwas tun, um die Leistung meiner Schaltung zu verbessern?

Danke

BEARBEITEN: Hinzufügen des Schaltplans der Stromversorgung

SMPS-Netzteil

Ich würde einen MOV an den AC-Line-Eingang und TVS an jeden MCU-Eingang anschließen. Auch ein Reihenwiderstand und eine kleine Kappe vor TVS sind eine gute Option, sie begrenzen die Änderungsrate eines Signals, sodass TVS immer am selben Kniepunkt reagiert.
Danke @Marko für die Antwort. Das Platzieren von TVS-Dioden zusammen mit RC scheint aufgrund des geringeren Platzbedarfs auf der Platine etwas schwierig zu sein. Da die Gesamtzahl der GPIOs über 20 liegt, werden etwa 80-100 Komponenten benötigt (2 TV-Dioden + R + C pro Leitung). Außerdem sind meine IO-Leitungen bereits optisch isoliert. Wäre das nicht ein Overkill?
Ich denke, Sie müssen das Netzteil neu entwerfen, denn wenn Sie optoisolierte Eingänge haben, sollten Sie solche Probleme nicht haben. Wie also versorgen Sie die MCU mit Strom und wie die Ein- / Ausgänge, zeigen die Schaltpläne des Netzteilabschnitts.

Antworten (1)

Wie vermutet, verwenden Sie eine einzelne Quelle, um die MCU und den optoisolierten Eingang mit Strom zu versorgen. Was bringt es nun, Optos zu verwenden, wenn es überall die gleiche Vcc ist? 2. Was macht eine Zenerdiode am Optoeingang? Warum reicht ein einfacher Widerstand nicht aus? Sie haben mehr Möglichkeiten:
1. Erstellen Sie eine zweite Sekundärwicklung und eine neue Stromquelle für die Versorgung der Eingänge (die beste).
2. Installieren Sie eine Gleichtaktdrossel, Kondensatoren (PI-Filter) und TVS, um die Eingänge mit Strom zu
versorgen und installieren Sie RC + TVS, da die Optos nutzlos sind, wenn Sie dieselbe Quelle verwenden.

Was ist los? Ihr 5-V-Kabel, das um Ihr Haus herumführt, ist eine solche Antenne, die das Rauschen aufnimmt und an die MCU-Stromversorgung überträgt. Zusätzlich fehlt Ihrem Netzteil die Gleichtaktdrossel am Eingang. Siehe Beispiel: http://www.st.com/web/en/resource/technical/document/data_brief/CD00177969.pdf

Danke für die Antwort Marco, aber ich denke, hier herrscht ein wenig Verwirrung. Alle diese Schaltungen befinden sich auf derselben Platine wie der Mikrocontroller-Teil. SMPS-Teil nimmt etwa 8 cm x 1,5 cm ein. Diese Schaltung wurde von dem abgeleitet, was Sie gepostet haben. Den PI-Filter habe ich aus Platzgründen entfernt und es fehlt eine Wicklung, da ich nur einen Ausgang benötige - 5V. Mein DC 5V ist vollständig isoliert. Das Opto, das Sie sehen, wird verwendet, um Viper Feedback zu geben, und Zener wird verwendet, um die Feedback-Schwelle so einzustellen, dass ich 5 V bekomme. (3,9 V + 0,7 V = 4,6 V ~ 5 V). Sie können eine ähnliche Schaltung in der App-Notiz sehen, die Sie gepostet haben.
@Whiskeyjack Ich verstehe, das Opto ist eine Rückmeldung für die Spannungsregelung, nicht der Eingang zur MCU. Aber woher hast du überhaupt das Beispiel für diesen Feedbak? Sollte es nicht eine Spannungsreferenz und ein paar Widerstände und Kappen geben, nicht nur eine Zenerdiode? Dennoch bleibt die Frage bestehen, wie Sie die optoisolierten Eingänge mit Strom versorgen.
Hey Marko, entschuldige die späte Meldung. Ich habe einige Experimente durchgeführt und das ist das Ergebnis: Ich habe eine fast ähnliche Stromversorgungsschaltung auf einer anderen Platine verwendet, um mein Mikrocontroller-Board mit Strom zu versorgen, und es läuft bis jetzt gut. Dies deutet nun auf zwei mögliche Fälle hin: (a) Die smps-Schaltung auf derselben Leiterplatte führt aufgrund des geringeren Abstands zu viel Rauschen ein. (b) Ich habe einen kleineren Transformator in SMPs an Bord verwendet, der möglicherweise eine höhere Streuinduktivität aufweist und die Stromleitungen zu zufälligen Zeiten irgendwie durcheinander bringt. was sagen Sie?