Atmega328p wird zurückgesetzt und stürzt ab, wenn Magnete eingeschaltet werden

Ich habe Probleme mit meiner Platine, die auf einem atmega328p- Mikrocontroller basiert (sehr ähnlich einer eigenständigen Arduino-Platine).

Dies ist mein aktueller PCB-Schaltplan und das Eagle-Board .

SCHALTPLÄNE AKTUALISIERT!

Geben Sie hier die Bildbeschreibung ein

Ich verwende Anschlüsse an VSX, VDX, MOT1A, MOT2A, MOT2A, MOT2B, um Magnetventile ein- und auszuschalten (die Ventile sind für 12 VDC, 2 A bei max. ausgelegt).

Das Board funktioniert zufällig nur für wenige Sekunden oder Minuten, bis der Mikrocontroller abstürzt oder zurückgesetzt wird, und ich denke, dies geschieht aufgrund von Solenoidgeräuschen.

Die Hauptstromversorgung beträgt 12 VDC, 35 A (für die Ventile und das Relais verwendet) und dann verwende ich einen 5 VDC-Spannungsregler, um den atmega328p einzuschalten.

Wie Sie sehen können, habe ich bereits Flyback-Dioden über jedem Mosfet hinzugefügt, aber möglicherweise reicht dies nicht aus, um Magnetgeräusche zu verhindern. Ich habe auch jedes Paar Drähte verdrillt (maximale Drahtlänge beträgt 90 cm), die die Ventilstifte mit den VSX-, VDX-, MOT1A-, MOT2A-, MOT2A- und MOT2B-Anschlüssen verbinden, und ich habe eine zusätzliche Diode parallel zu jedem Ventilstift hinzugefügt.

Wie kann ich das Problem lösen? Ich dachte daran, 100-nF-Keramikkappen zwischen VCC und GND und AREF und GND und AVCC und GND so nah wie möglich an den Mikrocontroller-Pads und eine weitere 100-nF-Kappe parallel an jedem Ventilstift anzubringen. Meint ihr das reicht um das Problem zu lösen?

Leider glaube ich, dass ich die Solenoid-Stromquelle nicht von der atmega328p-Stromquelle trennen kann, da sie sich derzeit denselben GROUND teilen.

Was kann ich tun, um das Problem zu lösen, indem ich weiterhin dieselbe Leiterplatte verwende?

Ich bin mir nicht ganz sicher, was das Relais ganz rechts auf der Platine tun soll, aber wenn ein Paar Schraubklemmen ein Netzeingang und das andere Paar ein relaisgeschalteter Ausgang ist, ist es nicht richtig verdrahtet. Es wird nur die Hauptleitung kurzgeschlossen: Abbildung . Es gibt auch ein zweites Problem mit diesem Relais; der Abstand zwischen der Relaisspule und dem gemeinsamen Anschluss des Schalters ist unnötig klein. Wenn das Relais zum Schalten des Netzes verwendet wird, kann dies gefährlich sein.
Danke, jms, für deine Unterstützung. Das Relais hat auf dieser Platine keine Funktion und ich verwende es nicht. Es ist auf dieser Anlage noch nicht einmal montiert. Seine Aufgabe war es, die beiden Anschlüsse kurzzuschließen, um wie ein Schalter zu fungieren, aber ich benutze es nicht.

Antworten (2)

Schneiden Sie die von Pin 22 nach oben verlaufende Leiterbahn ab und brücken Sie sie mit einem Fliegendraht direkt zurück zum mittleren Pin des 7805.

Fügen Sie eine 10uF X7R- oder X5R-Kappe direkt zwischen Pin 7 und 8 hinzu.

Verbessern Sie beim nächsten Mal das Layout oder verwenden Sie eine 4-Lagen-Platine.

Soll ich also die GND-Spuren (Pins 22 und 8) vom Atmega abschneiden und direkt mit dem 7805-Zentralstift (GND) verbinden?
Ja, Jumper von Pin 8 direkt zurück zu GND auf dem 7805
Können Sie mir bitte den Zweck dieser Operation erklären? Der mittlere Pin von 7805 ist nicht der gleiche GND für die gesamte Schaltung? Ich möchte meine Kenntnisse in Elektrotechnik verbessern, also würde ich gerne wissen, was passiert, wenn ich das tue. Danke schön!
Strom von den MOSFETs fließt durch die Mikro-GND-Spur. Der Schnitt und Jumper verhindert, dass der Boden herumhüpft. Das ist vielleicht nicht genug, aber es kann helfen. Der nächste Schritt besteht darin, Serien-Gate-Widerstände von einigen hundert Ohm hinzuzufügen.
Danke schön! Ich habe bereits die Serien-Gate-Widerstände von 220R zwischen dem Atmega-Ausgang und dem MOSFEST-Gate. Sind sie nicht richtig?
@MarcusBarnet Die Widerstände, die Sie hinzugefügt haben, sind parallele Widerstände, die sich zwischen dem Gate und dem Drain befinden. Verstehen Sie mich nicht falsch, sie sind eine großartige Ergänzung (sie sorgen dafür, dass die MOSFETs ausgeschaltet bleiben, wenn der AVR zurückgesetzt wird), aber sie helfen nicht gegen Spannungsspitzen, die durch übermäßig schnelles Schalten verursacht werden. Ihre Stromwerte (220 Ohm) sind viel zu niedrig, normalerweise möchten Sie, dass diese Parallelwiderstände einen Wert von einigen tausend Ohm (z. B. 10 k) haben, insbesondere wenn Sie die erwähnten Gate-Serienwiderstände hinzufügen (Serie wie zwischen den IO Stifte und Tore).
Ich sehe sie nicht auf dem Schaltplan ... außer Q1
Entschuldigung Leute, ich habe einen Fehler gemacht und einen alten Schaltplan hochgeladen. Ich habe mein erstes Thema bearbeitet und durch die ECHTEN Schaltpläne ersetzt. Wie Sie sehen können, verwende ich Widerstände der Serie 220R. Glaubst du, sie sind in Ordnung?
Ja, sieht okay aus. Sie könnten sogar höher gehen, aber es ist wahrscheinlich nicht notwendig.
Ich habe einen 1000-uF-Hauptkondensatorfilter über +12 V und Masse am Hauptanschluss hinzugefügt. Ich habe auch eine 100uF zwischen Pin 7 und Pin 8 hinzugefügt. Es gab bereits eine 100uF-Kappe zwischen aref und gnd, aber sie war nicht in der Nähe des atmega, also habe ich eine weitere Kappe direkt auf den aref- und gnd-Pads hinzugefügt. Ist es OK oder muss ich die alte Kappe entfernen? Ich habe die Pin 22-Spur abgeschnitten und direkt mit dem 7805 gnd verbunden. Kann ich noch etwas tun, um das Board zu verbessern?
Eine Keramikkappe ist erforderlich - 100 uF klingen etwas hoch, um eine Keramik zu sein, obwohl dies nicht unmöglich ist. Diese Details sind wichtig. Eine Elektrolytkappe funktioniert an dieser Position aufgrund von Induktivität und ESR nicht so gut.
Ich habe in meinem vorherigen Thema einen Tippfehler gemacht, ich habe 100-nF-Keramikkondensatoren verwendet. Leider funktionierte das Board einige Stunden lang gut und dann fing es wieder an zu versagen! :( Nun, jedes Mal, wenn ich es einschalte, stürzt der Atmega nach ein paar Sekunden ab. Ich kann nicht verstehen, warum mir so kleine Solenoide so viele Probleme bereiten. Kann ich noch etwas tun, um die Situation zu lösen? Oder ich muss aufgeben ? :(
Muss ich den maximalen Strom für den Magneten begrenzen? Es sagt, dass es einen maximalen Strom von 1,9 A benötigt, aber ich begrenze den Strom in keiner Weise. Oder fordert der Magnet in jedem Fall nur 1,9 A an? Kann das Solenoid Überstrom (mehr als 2A) ableiten und verbrannt werden? Möglicherweise liegt das Problem darin, dass ich den Strom begrenzen muss! Was denkst du darüber?

Es ist sehr unwahrscheinlich, dass etwas hilft, dieses Board-Layout zu reparieren. Dieses PCB-Design hat eine sehr schlechte Masse, so dass irgendwo die Masse abprallt und ein Fehler den Prozessor tötet. Warum verwenden so viele Leute hier keinen gemahlenen Guss? Dann muss der Masse-Rückweg für Relais von der Masse für Steuerelektronik mit geringer Leistung getrennt werden. Es sollte zuerst entworfen werden. Dann fehlt ein Hauptkondensator an der 12-V-Eingangsbuchse, die die Hauptstromschiene für alle Relais ist.

Hallo Ali, danke für deine Antwort. Dies ist mein erstes Mal im PCB-Design und so habe ich mehrere Fehler gemacht. Gibt es eine Möglichkeit, mein Problem zu lösen? Wo kann ich zum Beispiel den Hauptkondensator platzieren? Über +12 V und Masse?
100nF als Hauptkondensator sollten reichen?
Nein. Ich würde 100uF oder 2.200uF oder so setzen. Vielleicht können Sie dicke blaue Drähte fallen lassen, um die Masserückführung von der Leistungselektronik zu verstärken.
Und warum haben Sie Kühlkörper auf FETs? Die Transistoren sollten im EIN- oder AUS-Modus arbeiten und fast nichts verbrauchen.
Und ich vermisse den 35A-Parameter. Offensichtlich können die Spuren (wie gezeichnet) diese Art von Strom nicht unterstützen. Sie können versuchen, ein Viertel Pfund Lötzinn darauf zu geben, um sie ebenfalls aufzupeppen.
Ich verwende die Kühlkörper auf den FETs nicht, ich habe sie nur dem Platinendesign in Eagle hinzugefügt, aber ich verwende sie nicht wirklich. Denken Sie, ich muss auch Bypass-Kondensatoren an VCC und GND in der Nähe des Mikrocontrollers hinzufügen?
Ich verwende nur eine 12-V-, 35-A-Batterie, aber ich brauche wirklich nicht all das Ampere, da sie das Board mit Sicherheit braten werden. Der maximale Strom, den die Platine benötigt, beträgt 2A für jedes Ventil.
Ein 100nF-Bypass am Mikrocontroller ist ein Muss. 2A mal 10 Ventile ist immer noch viel
Glauben Sie, dass die D1-Diode am +12-V-Eingang korrekt ist? Oder muss ich es entfernen? Es ist eine 1N4004-Diode, die nur 1A ziehen kann. Die Kappe PC1 ist 100uF, sollte ich sie durch die 2200uF ersetzen?
Die Kappe PC1 funktioniert nur für 5V Digital Rail, 100uF ist definitiv ok. Die Diode ist in Ordnung, sie bietet zumindest eine gewisse Entkopplung von der Hauptstromschiene. Ohne einen extra großen Kondensator an der 12-V-Strombuchse verursacht die Induktivität der Versorgungskabel bei jedem Ventilschalter einen Abfall auf die Schiene.
Danke, also muss ich eine große Kappe zwischen +12 V und GND vor der Diode und PC1 hinzufügen, wenn ich es richtig verstanden habe.
Ali, der Schaltplan, der meiner ersten Nachricht hinzugefügt wurde, war nicht der aktualisierte. Ich habe mein erstes Thema bearbeitet, um die echten Schaltpläne hinzuzufügen.
Muss ich den maximalen Strom für den Magneten begrenzen? Es sagt, dass es einen maximalen Strom von 1,9 A benötigt, aber ich begrenze den Strom in keiner Weise. Kann das Solenoid Überstrom (mehr als 2A) ableiten und verbrannt werden? Möglicherweise liegt das Problem darin, dass ich den Strom begrenzen muss! Was denkst du darüber?
Magnetspulen sollten gemäß den Spezifikationen des Magnetherstellers betrieben werden. Wenn es 12 V sind, dann sollten es 12 V sein, unabhängig vom aufgenommenen Strom. Andernfalls funktionieren sie möglicherweise nicht gemäß ihren mechanischen Spezifikationen.
Das Problem ist, dass der Hersteller sagt, dass der Magnet 12 VDC, 3,7 Ohm und 1,9 A hat. Der gemessene Strom zwischen dem Mosfet und dem Solenoid beträgt 2,9 A, was ziemlich höher ist als erwartet. Möglicherweise ist dies das Problem, das das Board zum Blockieren bringt.
Wenn ich ein Voltmeter in Reihe zwischen dem Mosfet und dem Solenoid verwende, um den Strom zu messen und die Platine mit Strom zu versorgen, funktioniert die Platine perfekt !! Ich würde das Voltmeter entfernen, dann funktioniert die Platine wieder nicht. Das ist sehr seltsam!! Warum funktioniert es nur dann richtig, wenn das Voltmeter an den Stromkreis angeschlossen ist?
Ist Ihr DMM ein DMM mit automatischer Bereichswahl?
Oder DMM-Leitungen wirken als Induktivität, was di/dt verlangsamt und weniger Schaltspitzen und Erdungsprellen verursacht