Mein MOSFET-betriebener Magnetkreis zerstört meine Arduino-Eingänge

14

Ich habe eine Reihe von Leiterplatten hergestellt, um einige Magnetventile mit einer externen Stromversorgung zu versorgen. Ich schalte sie mit BS170 MOSFETs mit einem Arduino als Gate-Signal. Ich habe ihm eine Lösung von Jason S zugrunde gelegt .

Dies ist eine Illustration, wie meine Schaltung aussieht: MOSFET-Ventilschaltung

Beim Testen der Leiterplatten habe ich festgestellt, dass die meisten von ihnen einwandfrei funktionieren, einige jedoch nicht. Kein Problem, wahrscheinlich eine Lötsache.

Diese fehlerhaften haben es jedoch geschafft, zwei digitale Arduino-Pins zu zerstören! Auf der einen Seite erhalte ich eine konstante Spannung von 5 V, und auf der anderen Seite werden 0,2 V ausgegeben, wenn ich ein HIGH-Signal an sie sende, und 0,5 V, wenn ich ein LOW-Signal sende. Seltsames Zeug.

Ich schätze, die fehlerhaften Schaltkreise haben irgendwie dazu geführt, dass (ein Teil) der 16 V durch den Arduino flossen und sie zerstörten.

Wie schütze ich den Arduino in diesem Szenario vor zu hohem Strom?

Ich weiß über Zenerdioden Bescheid , aber ich habe keine Ahnung, wie ich sie platzieren soll, um die Eingänge zu schützen.

Technische Information:

Dyte
quelle
Mit welcher Software haben Sie diese Zeichnung erstellt? Es sieht wirklich gut aus!
mjh2007
3
Fritzing. Kostenlos und sehr praktisch für diese Art von Sachen, auch für PCB-Design :)
Dyte
Eine Gate-Source-Zenerdiode von beispielsweise 12 V (> Vgate_drive) ist in der Tat in allen Schaltkreisen mit induktiver Last eine sehr gute Idee. Montieren Sie den Zen in der Nähe des MOSFET. Anode an Source und Kathode an Gate, sodass Zener normalerweise nicht leitet. || Weitaus weitaus bessere MOSFETs bei 26c / 10 Digikey sind zB IRLML6346 SOT23. Oder NDT3055 48c / 10 TO251 bedrahtet oder RFD14N05 71c / 10 TO220.
Russell McMahon
...When MOSFETs fail they often go short-circuit drain to gate...Zitiert von hier .
Abdullah Kahraman
Durch Anlegen von 16 V können Ihre Arduino-Ports zerstört werden.
Abdullah Kahraman

Antworten:

7

Die Schaltung ist theoretisch in Ordnung.
Verbesserungen in der Praxis sind erforderlich.

Das Hinzufügen einer Gate-Source-Zenerdiode von beispielsweise 12 V (> Vgate_drive) ist in der Tat in allen Schaltkreisen mit induktiver Last eine sehr gute Idee. Dies verhindert, dass das Gate durch "Miller-Kapazität" -Kopplung an den Drain bei unerwarteten oder extremen Schwankungen der Drain-Spannung destruktiv hoch angesteuert wird.

Montieren Sie den Zen in der Nähe des MOSFET.
Verbinden Sie die Anode mit der Source und die Kathode mit dem Gate, so dass der Zener normalerweise nicht leitet.

Der 10k Gate-Treiberwiderstand (wie gezeigt) ist groß und verursacht ein langsames Ein- und Ausschalten und eine höhere Verlustleistung im MOSFET. Dies ist hier wahrscheinlich kein Problem.

Der gewählte MOSFET ist in dieser Anwendung sehr marginal.
Zu den bei Digikey weitaus weitaus besseren MOSFETs gehören:

Für 26c / 10 Digikey IRLML6346 SOT23, 30 V, 3,4 A, 0,06 Ohm, Vgsth = 1,1 V = Gate-Schwellenspannung.

NDT3055 48c / 10 TO251 leitete 60 V, 12 A, 0,1 Ohm, Vgsth = 2 V

RFD14N05 71c / 10 TO220 50 V, 14 A, 0,1 Ohm, 2 V Vgsth.


HINZUGEFÜGT

PASSENDE MOSFETS FÜR 3V GATE DRIVE:

System nur meine längere Antwort trashed :-( Also -. MOSFET Vth haben muss (Schwellenspannung) von nicht mehr als 2 V an die Arbeit richtig mit 3V3 Versorgungscontroller.
Keine der vorgeschlagenen FETS diese Anforderung zu erfüllen.
Sie nach einer Art und Weise auf die Arbeit kann Die derzeitige Last ist jedoch untersteuert und übermäßig verlustbehaftet, und die Lösung
eignet sich nicht für größere Lasten. Es scheint, dass IRF-FETS im betroffenen Größenbereich, die Vth (von Vgsth) <= 2 Volt haben, ALLE vierstellige numerische Codes haben, die mit 7 beginnen, außer IRF3708 .

OK-FETs umfassen IRFxxxx, wobei xxxx = 3708, 6607, 7201, 6321, 7326, 7342, 7353, 7403, 7406, 7416, 7455, 7463, 7468, 7470

Es wird andere geben, aber alle vorgeschlagenen haben anscheinend Vth = 4 V oder 5 V und sind in dieser Anwendung marginal oder schlechter.

Vgsth oder Vth müssen mindestens ein Volt weniger und idealerweise einige Volt weniger als die tatsächliche Gate-Ansteuerspannung sein.

Russell McMahon
quelle
Ja, ich gehe auf Nummer sicher und benutze ein anderes Mosfet. Das und die Zenerdiode sollten wahrscheinlich den Trick machen. In dem Elektronikgeschäft in der Nähe meines Wohnorts haben sie nicht die von Ihnen vorgeschlagenen Mosfets, aber sie haben: IRF520, IRF530, IRL530, IRF540, IIRF730, IRF740, IRF830, IRF840, IRF9140, IRF9530, IRF9540, IRF9610, IRFBC620 IRFDD110, IRFD9120, IRFP50, IRFP054, IRFP140, IRFP150, IRFP450, IRFP520, IRFP9140, IRFZ44, IRFZ46. Ich nehme an, ich könnte zum Beispiel ein IRF520 nehmen? Der kontinuierliche Drain-Strom beträgt 6,5 bis 9,2 A. Min. Vgs beträgt 2 V und max. 4 V. Ist das für das Arduino in Ordnung?
Dyte
Mit dem IRF520 kann ein Arduino problemlos fahren. Min Vgs und "Max Vgs" sind nicht ganz das, was Sie denken, das ist die "Schwellenspannung", bei der der MOSFET zu leiten beginnt. Maximum Vgs ist wesentlich höher (oberhalb der 5 V, die der Arduino ausgibt). Überschreiten Sie diese höhere Bewertung (20V?) Und Sie werden den FET sprengen.
Bryan Boettcher
Es funktioniert mit dem IRF520-MOSFET und einer 5,1-V-Zenerdiode und wird diesmal wahrscheinlich weiter funktionieren :) Vielen Dank, dass Sie mir geholfen haben. Alle Antworten haben mir geholfen, aber Sie haben sich mit Zenerdioden und bestimmten Mosfet-Typen befasst, und ich akzeptiere Ihre als Antwort.
Dyte
@ Russell McMahon: Die Spannung, die mein Arduino ausgibt, beträgt (etwas weniger als) 5V, nicht 3V3. Ändert das nicht die Situation?
Dyte
10

Ihr Ventil ist für 500 mA bei 12 V ausgelegt. Wenn Sie 16V liefern, wird etwas mehr als 500mA verbraucht. Unter der Annahme, dass es sich um einen Widerstand handelt, werden 667 mA verbraucht.

Der absolute Maximalstrom für den von Ihnen verwendeten MOSFET beträgt 500 mA Dauerbetrieb. Alles, was über den absoluten Maximalwerten liegt, kann das Gerät zerstören. Dies ist wahrscheinlich der Grund, warum Zuverlässigkeitsprobleme auftreten.

Es gibt keinen garantierten Fehlermodus für MOSFETs, daher wundert es mich nicht, dass ein solcher Ausfall die Arduino-Ausgänge beschädigen würde.

Wie Jason in der verknüpften Antwort erwähnt hat, ist BS170 eine schlechte Wahl für MOSFETs. Du brauchst einen besseren. Wählen Sie eines in einem TO-220-Gehäuse, das für mehrere Ampere ausgelegt ist. Sie müssen auch sicherstellen, dass der Vgs für ein 5-V-Laufwerk mit Logikpegel ausgelegt ist.

Welche Diode verwenden Sie?

Markrages
quelle
Hallo Markus, die von mir verwendete Diode ist eine 1N4001: fairchildsemi.com/ds/BS/BS170.pdf
Dyte
5

Ihr Ventil ist für ~ 500 mA ausgelegt. Ein BS170 ist auch für 500 mA ausgelegt, aber das ist die Verkaufsargumentation. Ich würde hier einen (viel) höher bewerteten FET verwenden, 500 mA durch einen TO92 macht mich nervös. Und Sie haben einen 1k-Gate-Widerstand, was in den meisten Fällen eine gute Idee ist, aber es kann dazu führen, dass der schlechte FET zu langsam schaltet, um die 0,5 A zu überstehen.

Welche Diode verwenden Sie? Es muss für 0,5 A ausgelegt sein, damit ein 1n4148 nicht ausreicht. Ich bin nicht sicher, aber es könnte tatsächlich mehr als 0,5 werden, da der sich bewegende Teil des Wertes eine noch größere Spitze verursachen könnte als eine normale Spule.

In Ihrem Bild fließt der Wert für den Rückstrom über die Arduino-Erdungsverbindung. Ich würde das zu einem Stern machen: Verbinden Sie den Arduino-Boden direkt mit der Stromversorgung. Oder viel besser: Verwenden Sie ein Optoelement, um den Hochstromkreis vom Arduino zu trennen (und verwenden Sie zwei separate Netzteile).

Wouter van Ooijen
quelle
Die Diode, die ich benutze, ist eine 1N4001. diodes.com/datasheets/ds28002.pdf Ich habe nicht an einen Optokoppler gedacht. Das ist ein gutes Szenario zu untersuchen :)
Dyte
5

Sie sollten einen Gate-Source-Widerstand in Ihrem MOSFET haben, damit das Gate nicht schweben kann, wenn der Arduino-Ausgang hochohmig ist. Da die Solenoid-Stromversorgung und die Arduino-Stromversorgung getrennt sind, kann dieses Szenario auftreten (es sei denn, Sie garantieren konstruktiv, dass der Arduino immer an erster Stelle steht).

Ist der MOSFET tatsächlich so weit vom Magnet entfernt? Wenn ja, sollte es viel näher gerückt werden. Bewegen Sie ihn so, dass der Drain direkt in den Protoboard-Streifen einrastet, wo der rote Draht zum Solenoid und zur Diode führt. Stellen Sie dann eine kurze Source-Verbindung zum GND-Streifen her. Es ist besser, eine längere Gate-Signalschleife (bei niedriger Leistung) als eine lange Schleife zu haben, die Leistung überträgt. Sie können den Arduino auch näher an das Solenoid heranführen und alle diese Schleifen kurz halten.

Adam Lawrence
quelle
Meinen Sie mit einem Gate-Source-Widerstand einen Widerstand zwischen Gate und Source des MOSFET? Sorry, wenn das eine blöde Frage ist :). Welchen Wert schlagen Sie vor? Über die Abstände, nein, alle Bauteile liegen dicht beieinander, ich habe diese Schaltung auf eine selbstgeätzte Leiterplatte gelötet. Nur die Drähte zum Arduino sind länger. Ich muss allerdings sagen, ich hatte keine Ahnung, dass dies einen Unterschied machte. Ich dachte, der Zeitunterschied, den die Strömung ein paar cm weiter zurücklegt, sei vernachlässigbar.
Dyte
@Dyte Ja, ein Widerstand zwischen Gate und Source.
Adam Lawrence
@ Dyte, ich stelle mir vor, ein 10k Gate-Source-Widerstand wäre in Ordnung. Das Ziel ist nur sicherzustellen, dass das Gate des MOSFET nicht schwimmt. Sie möchten etwas Niedriges, das gegen parasitäre Schaltungselemente "gewinnen" kann, aber Hoch genug, damit der Arduino-Ausgang "gewinnen" kann, wenn er den MOSFET einschalten muss.
Ajs410
3

Die dargestellte Schaltung sieht gut aus, vorausgesetzt, die einzige Masseverbindung zwischen der Arduino-Platine und dem negativen Anschluss der +16-Versorgung ist das kurze blaue Kabel. Andererseits ist es möglich, dass durch versehentliche Kurzschlüsse schlimme Dinge passieren können. Es ist schwer zu erraten, was genau passiert sein könnte, ohne zu sehen, wie die eigentlichen problematischen Tafeln angeordnet waren.

Wenn Sie auf die Spezifikationen Ihres MOSFET drücken, kann dies leicht dazu führen, dass +16 aus dem Gate gesendet werden. Wenn die Widerstände jedoch den Abbildungen entsprechen, ist zu erwarten, dass der Arduino recht gut geschützt ist.

Superkatze
quelle
1

Zunächst benötigen Sie ultraschnelle Schaltdioden, nicht diese billigen 2n4001-4-Dioden, wenn Sie Motoren oder Spulen verwenden. Je schneller die Umschaltung ist, desto größer ist der BEMF. Verwenden Sie auch eine 914-Schaltdiode zum Mosfet-Gate vom Arduino und einen 10k-Pulldown-Widerstand vom Gate zur Erde.

Tommey Reed
quelle