Ich arbeite an einem Projekt, bei dem viele Elektromagnete geschaltet werden.
Das Schalten wird von einem Mikrocontroller der PIC32MX6xx-Serie gesteuert, der die erforderlichen Zustände von 80 x 12 VDC-Elektromagneten bestimmt (jeweils etwa 15-200 mA zieht) und diese Daten an eine Reihe von miteinander verbundenen 74HC595-Schieberegistern ausgibt. Die Ausgänge dieser Schieberegister schalten jeweils einen MOSFET ein/aus, der wiederum seinen jeweiligen Elektromagneten schaltet.
Das Problem, das ich habe, ist, dass der PIC beim Umschalten der Elektromagneten zeitweise zurückgesetzt wird. Es gibt keine bestimmte Schaltfolge/Last, die dieses Zurücksetzen verursacht – es geschieht völlig willkürlich. Manchmal dauert das Umschalten etwa 30 Sekunden, um es zurückzusetzen, und manchmal fast 15 Minuten.
Was ich weiß, ist, dass es das MCLR-Reset ist, das stattfindet - ich habe dies durch Überwachen des RCON-Registers festgestellt, wo das EXTR-Flag-Bit (MCLR-Reset-Ereignis) bei jedem solchen Reset gesetzt wird. Dies ist die Anfangsschaltung des PIC, mit besonderem Fokus auf den MCLR-Pin und die Entkopplungskondensatoren, wie im Datenblatt des PIC empfohlen.
Aus dem Diagramm ist ersichtlich, dass zwischen GND und dem Schalter ein 1k-Widerstand liegt, sowie ein 10k-Pull-up-Widerstand am MCLR-Pin. Nachdem ich die Empfehlung eines Kondensators am MCLR-Pin zur Vermeidung unbeabsichtigter Resets zur Kenntnis genommen hatte, fügte ich einen 100-nF-Keramikkondensator zwischen dem MCLR-Pin und GND hinzu. Trotzdem treten die Resets immer noch intermittierend auf, obwohl es so aussieht, als ob das Intervall zwischen den Resets länger wäre als ohne den Kondensator.
In der Hoffnung, das Reset-Ereignis zu beseitigen, habe ich den 1k-Widerstand zwischen Schalter und GND sowie den 10k-Widerstand zwischen MCLR-Pin und VDD durch 0-Ohm-Widerstände (Kurzschlüsse) ersetzt. Dies würde sicherstellen, dass der MCLR-Pin immer mit VDD verbunden ist. Der 100-nF-Kondensator war auch noch vorhanden. Somit ist im Wesentlichen die einzige Komponente, die mit dem MCLR-Pin verbunden ist, der 100-nF-Kondensator zwischen dem MCLR-Pin und GND. Dennoch treten die intermittierenden Resets weiterhin auf.
Das System wird von einem Industrietransformator mit 380 VAC, 3-Phasen-Eingang und 12 VDC-Ausgang gespeist. Dieser 12-VDC-Ausgang ist dann der Eingang zu zwei LM1085-Spannungsreglern - einer mit einem 5-V-Ausgang (der alle Logik-ICs mit Strom versorgt) und der andere mit einem 3,3-V-Ausgang (der den PIC mit Strom versorgt). Direkt vor den Spannungsreglereingängen (12-VDC-Eingänge) befindet sich außerdem eine Überspannungsschutzschaltung, die aus einem MOV und einer Snubber-Diode besteht.
Die MOSFET-Schalterschaltung für jeden Elektromagneten ist wie folgt:
Wie ersichtlich ist, ist der Schaltkreis eine High-Side-Schaltkreistopologie (gemeinsam negativ), die sowohl einen NMOS- als auch einen PMOS-Transistor zum Schalten verwendet. Beachten Sie, dass auch eine Snubber-/Flyback-Diode vorhanden ist. Die LED dient lediglich dazu, den Zustand des Elektromagneten anzuzeigen. Dies ist die Schaltung, die für jeden Elektromagneten im System verwendet wird.
Da der MCLR-Pin ein aktiv niedriges Signal ist, ist das einzige Ereignis, das ich vorhersehen kann, das das Reset-Ereignis auslösen würde, wenn VDD vorübergehend abfällt (da der MCLR-Pin direkt mit VDD verbunden ist). Da VDD jedoch von einem Spannungsregler LM1085 bereitgestellt wird, würde ich vermuten, dass eine plötzliche "positive" Spannungsspitze an der 12-VDC-Versorgung keinen solchen Abfall des Ausgangs des Spannungsreglers verursachen würde. Daher ist die einzige Erklärung, die ich mir vorstellen kann, dass die Versorgungsspannung wahrscheinlich momentan auf einen solchen Pegel abfällt, der eine ausreichend niedrige Spannung auf der VDD-Leitung verursacht, die das MCLR-Reset-Ereignis auslöst, obwohl ich nicht genau herausfinden kann, wie das würde passieren. Die einzige andere Möglichkeit könnte meiner Ansicht nach sein, dass sich eine Spannungsspitze auf dem GND-Signal ausbreitet,
Einige Antworten auf mögliche vorweggenommene Fragen:
Angesichts der bereits getroffenen Vorkehrungen gegen Spannungsspitzen/Überspannungen, was fehlt mir noch? Es ist absolut entscheidend, dass der PIC nicht zeitweise zurückgesetzt wird, wie es derzeit der Fall ist.
Beiträge, Ratschläge und Kommentare werden sehr geschätzt.
Vielen Dank im Voraus.
Das riecht stark nach nicht richtig gehandhabten Solenoid-Rückströmen und induktiven Rückschlagpfaden. An den Solenoiden treten große und schnelle Spannungsspitzen auf. Manchmal reicht eines dieser Paare an den Mikrocontroller aus, um seine interne Logik zu verwirren. Der Reset-Mechanismus wird ausgelöst, aber nicht durch den externen MCLR-Pin.
Absolut das erste, was Sie tun müssen, ist, eine BYPASS -KAPPE über den Strom- und Erdungsstiften des Mikros hinzuzufügen! Setzen Sie eine 1-µF-Keramikkappe physisch so nah wie möglich zwischen die Stromversorgungs- und Erdungsstifte. Dies ist genau die Art von Symptom, die eine fehlende Bypass-Kappe verursachen würde.
Abgesehen davon gibt es noch zwei offensichtliche Verdächtige: schlecht ausgelegte Leistungs- und Rückstrompfade und schlecht gehandhabte induktive Rückschläge.
Ihr Schaltplan gibt uns keine Vorstellung von der physikalischen Anordnung der Strom- und Rückströme zu den Solenoiden. Die Stromschleife von der Stromversorgung zum Solenoid und zurück zur Stromversorgung sollte so wenig wie möglich mit der Stromschleife des Mikrocontrollers gemeinsam haben. Wenn sich die beiden beispielsweise einen erheblichen Abschnitt eines Erdungskabels teilen, können die hohen Solenoidströme in diesem Erdungskabel ein Erdungsprellen für das Mikro verursachen.
Idealerweise gibt es getrennte Strom- und Erdungszuführungen zu den Solenoiden und der digitalen Schaltung, wobei diese nur an einer Stelle in der Nähe der Stromversorgung angeschlossen sind. Dann muss natürlich an jedem Verwendungspunkt auf der digitalen Seite eine ordnungsgemäße Umgehung der Stromversorgung erfolgen.
Sie haben eine Diode, die den induktiven Rückschlag abfangen soll, aber Sie haben keine Spezifikationen gezeigt. Nein, ein 1N400x ist hier nicht angebracht. Ich würde aufgrund ihrer sehr schnellen Reaktionszeiten lieber eine Schottky-Diode sehen.
Die Platzierung der Diode ist ebenfalls wichtig. Es ist gut, einen gewissen Schutz an Ihrer Treiberschaltung zu haben, falls etwas passiert, aber um wirklich mit induktivem Rückschlag fertig zu werden, sollte er so nah wie möglich an der Quelle überbrückt werden. Sie möchten den unangenehmen Strom in einer möglichst kleinen und lokalen Schleife enthalten. Small minimiert seine Strahlung und kapazitive Kopplung an andere Stellen. Local hält es davon ab, Masseprellen und dergleichen an anderen Teilen der Schaltung zu verursachen.
Versuchen Sie als Experiment, Schottky-Dioden in umgekehrter Richtung über jedem Solenoid direkt am Solenoid hinzuzufügen . Vielleicht können Sie sie dort nicht in die endgültige Produktion stellen, aber machen Sie das Experiment trotzdem, um zu sehen, ob sich die Dinge ändern.
Ich vermute, durch die Beachtung der richtigen Hygiene werden die Dinge viel besser funktionieren. Nachdem Sie dieses Durcheinander behoben haben, denken Sie über all die Male nach, in denen Ihnen gesagt wurde, Sie sollten Bypass-Kappen verwenden, Rückstrompfade sorgfältig platzieren, die Schleifen klein halten usw., und Sie dachten "Schmypass umgehen, blah, blah" . Jetzt wissen Sie, warum es wichtig ist. Ja, darauf kann man manchmal verzichten, aber früher oder später holt es einen ein. Es tat es einfach.
Lassen Sie uns Ihre Möglichkeiten prüfen.
Der PIC hat zahlreiche Reset-Pfade mit verschiedenen Register-Flags, um die Quelle des Resets anzuzeigen. MCLR ist einer davon. Sie haben bereits versucht, den MCLR direkt an die Versorgungsschiene für den PIC zu binden, sodass Sie Rauschen an diesem Pin als Quelle dieses Ereignisses ausschließen können.
Der PIC ist auch mit einem Power-On-Reset ausgestattet, der auftritt, wenn die Stromversorgung entfernt und wieder angelegt wird. Ich gehe davon aus, dass Sie sagen, dass das EXTR-Flag gesetzt ist, dass NUR dieses Flag gesetzt ist, dh alle anderen Flags sind nicht gesetzt. Als solches haben Sie keine Leistung auf dem Chip verloren.
Ebenso fiel die Leistung nicht ab oder das Brown-out-Flag würde gesetzt werden.
Was bleibt uns also... Der Chip hat etwas intern gemacht, das Sie sich nicht erklären können.
Was könnte das verursachen? Der Chip verfügt über einen internen Spannungsregler, um die interne Schaltung anzusteuern, und erfordert die C1-Kappe. Die Kappe muss sehr nahe am VCAP-Pin sein. Ich gehe davon aus, dass Sie diese Anweisungen befolgt haben.
Unter der Annahme, dass alle oben genannten Punkte korrekt sind und wir wissen, dass das Zurücksetzen erfolgt, wenn Sie die Solenoide umschalten, was könnte passieren?
Sie haben in Ihren Zeichnungen oder Texten nicht angegeben, wie der Rückweg (Masse) für die Magnete angeschlossen ist. Die Position der Freilaufdiode D5 deutet jedoch darauf hin, dass die Massen zwischen der Last und der Logik gemeinsam sind. Das wäre ein Fehler. Die Massen von den Solenoiden müssen über ihren eigenen Pfad zurück zum 12-V-Regler gehen, getrennt vom 5-V-Massesystem, und die Freilaufdiode muss mit dieser Masse verbunden werden. Wenn Sie dies nicht tun, kann dies zu einer erheblichen Spitze oder einem Offset in der Masse des PIC führen, was intern zu unvorhersehbaren Dingen führt.
Da Ihre Leitungslängen so lang sind, würde ich auch vorschlagen, eine kleine Überspannungsschutzschaltung (RC) über die Rücklaufdiode hinzuzufügen.
Wenn ich mir Ihre Treiberschaltung ansehe, sehe ich außerdem keinen Widerstand am Gate von Q25.
MOSFETs haben eine erhebliche Kapazität am Gate sowohl zum Drain als auch zur Source. Das bedeutet, dass am Ausgang des 74HC595 eine erhebliche Stromspitze auftritt, wenn Sie den MOSFET ein- und ausschalten. Wenn Sie es ausschalten, liegt der Drain außerdem nahe bei 12 V, und der 74HC595 muss diesen vom Gate-Source-Kondensator nach unten ziehen. Wie das mit dem PIC zusammenhängt und was das mit den Interna des PIC macht, ist unbestimmt.
Mindestens 4 Pfade, um die MCU zu stören (1) elektrische Felder, die mit dem MR koppeln (2), magnetische Felder, die (3) VDD zusammenbrechen oder VDD-Überspannung (4) GND stören, was mit FET-Rückwegen, die GND mit MCU teilen
Wenden wir uns zuerst (4) zu:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Interessant, dass eine LOKALE BATTERIE an den FET-Treibern mit 1uH-Induktivitäten in der 12-Volt-Leitung mit 0,03 Ohm Rdämpfung den FET-Treiber-Müll isoliert. Dieser 1uH muss mit hohem Strom umgehen: 30 Solenoide * 0,2 Ampere = 6 Ampere.
Beachten Sie die Trennung von GND zwischen FET-Treibern und MCU. Durch die Herstellung der LOKALEN BATTERIE sind die Übergangsströme in GND sehr klein; der 1.000-uF-Kondensator liefert die Stoßströme; Wenn das Schalten eines Solenoids 10 uS dauert, ist bei 0,2 Ampere die VDD-Störung bei FET-Treibern
Wenn die LOKALE BATTERIE die Resets nicht stoppt, kann eine Abschirmplatte Abhilfe schaffen. Um die Efield-Ladungsinjektion zu erfassen, verbinden Sie die Abschirmung mit SHORT WIRE mit MCU GROUND; Verwenden Sie eine Ground Plane unter der MCU?
=========================================
Welche Störspannung aufgrund schnell geschalteter Ströme durch MOSFETS? [ Warnung: Dieses Beispiel soll Sie verärgern, Sie motivieren, sich um die Planung der Leiterplatte (oder mehrerer Leiterplatten) und Schleifen zu kümmern. ]
Angenommen, Sie haben 0,2 Ampere und schalten in 5 Nanosekunden um. In einem langen Draht fließen. Magnetische Kopplung in eine Schleife von 0,1 Meter * 0,1 Meter (4 Zoll im Quadrat). Wie groß ist die induzierte Spannung, wenn der Abstand 10 cm (0,1 Meter) beträgt?
Verwenden Sie die Formel
Fläche = 0,1 * 0,1 = 0,01 Meter. Der Abstand beträgt 0,1 Meter. Mu0 ist 4*I*10^-7. Die Formel wird
Vinduce = 2e-7 * 0,01/0,1 * 40 Millionen Ampere/Sekunde Vinduce = 2e-7 * 0,1 *40e+6 = 8 * e-7 * e+6 = 8 * e-1 = 0,8 Volt.
Zwei FETS schalten gleichzeitig: 1,6 Volt Drei FETS schalten gleichzeitig: 2,4 Volt
Lassen Sie uns also das GND-System überarbeiten:
Trevor_G
Analogsystemerf
welle.jaco