Kann ich ein Niederspannungs-MOSFET-Gate direkt von einem Mikrocontroller aus ansteuern?

Wir arbeiten an diesem Projekt für die Schule, wo "die Reduzierung der Anzahl der Komponenten wesentlich ist".

Wir müssen einen kleinen bürstenbehafteten Gleichstrommotor betreiben , also dachten wir an die Verwendung einer einfachen Low-Side-Antriebskonfiguration mit einem N-Kanal-MOSFET wie diesem hier: IRLHS6242PBF

Woher weiß ich, ob der GPIO eines Mikrocontrollers genug "Leistung" hat, um diesen MOSFET anzusteuern? Hier ist der Link zu dem Mikrocontroller, den wir verwenden möchten.

Ich habe mir im Datenblatt die Gate-Ladung des MOSFET, die Anstiegszeit unseres PWM-Signals und den maximalen GPIO-Strom von 25 mA angesehen und nach meinen Berechnungen sieht es so aus, als ob der Controller das MOSFET-Gate problemlos so lange ansteuern kann wie es die erforderliche PWM-Anstiegszeit zulässt. Liege ich eigentlich falsch? Wie würden Sie es berechnen?

MOSFET-Spezifikationen

GPIO-Spezifikationen

EDIT: Wir streben eine Schaltfrequenz von 1 kHz an, nicht viel mehr, denke ich.

Nicht, wenn Sie es schnell ein- und ausschalten möchten. Sie sehen sich die Vgs an, die erforderlich sind, um den bewerteten RDson zu erreichen. Ignorieren Sie den Vgs-Schwellenwert für das Umschalten von Anwendungen.
Das verlinkte Datenblatt ist faul. Sie listen keine Quelle/Senke-Stärke pro Pin außerhalb der absoluten Höchstwerte auf, was wiederum darauf hindeutet, dass es schlecht ist, oder sie hätten es erwähnt. Es wird nur die maximale Summe von Quelle/Senke von 200 mA aufgeführt. Bitte beachten Sie auch, dass diese MCU derzeit nicht gekauft werden kann, so ziemlich alle Infineon-Teile sind seit über einem Jahr nicht mehr verfügbar. Sie wollen Ihnen ihre Produkte nicht verkaufen – genau dasselbe passierte 2009 während der letzten Komponentenkrise. Als langjähriger Infineon-Kunde würde ich dringend empfehlen, eine andere Marke zu wählen.
@Lundin Beliefert Infineon bevorzugt seine großen Automobilkunden, zu möglicherweise fatalen Kosten für einige kleinere Typen?
Du kannst es auf jeden Fall einschalten. Und Ihre Analyse ist richtig, dass die Geschwindigkeit aufgrund des begrenzten Stromantriebs des GPIO-Pins begrenzt ist. Aber 1 kHz ist nicht sehr schnell und kann akzeptabel sein. Eine Idee, um den Antrieb zu erhöhen, besteht darin, mehrere GPIO-Pins zu verwenden, die miteinander verbunden sind. Sie müssen sie jedoch gleichzeitig wechseln, wenn Sie dies wünschen. Wenn Sie keinen Gate-Treiber verwenden möchten, können Sie auch versuchen, einen schnellen Logikfamilienpuffer zu verwenden.
@SpehroPefhany scheint wahrscheinlich, dass Sie dieses Muster für viele Lieferanten finden werden und dasselbe in den Schuhen von Infineon tun würden. Betrachten Sie die Folgen für Infineon, wenn ein großer Automobilkunde zu einem anderen Lieferanten wechselt, im Vergleich zu einem Kunden, der jährlich 10..1.000 Teile kauft, und die Kosten für einen Automobilkunden, wenn er ein 40.000-Dollar-Fahrzeug aufgrund fehlender Chips nicht verkaufen kann. Außerdem wäre ich nicht überrascht zu erfahren, dass es Vertragsstrafen für versäumte oder verspätete Lieferungen gibt.
@Lundin sie geben den Nennstrom an, der 8 mA beträgt (ziemlich viel für eine 3,3-V-MCU); Was die Verfügbarkeit von Komponenten betrifft, können TI, NXP, Infineon und viele Microchip-Teile nicht gefunden werden, also ist es ein Albtraum. Wir haben letzten Monat 80 Dollar für einen 5-Dollar-MSP430-Controller bezahlt…
@SpehroPefhany Ich glaube nicht, dass sie irgendjemanden beliefern. Wir kaufen Infineon-Teile jedes Jahr für eine beträchtliche Summe, also können wir für sie nicht so uninteressant sein. Trotzdem bekommen wir immer wieder "Geh weg, wir wollen dein Geld nicht", dieselbe Geschichte wie 2009. Ich würde niemals eine ARM-MCU von ihnen auswählen, weil es so viele Alternativen gibt.
@LorenzoMarcantonio Nein, sie geben einen Ausgangsspannungspegel bei einem typischen Strom von 8 mA an. Das sagt nichts über die Quelle/Senke-Stärke aus. Die durchschnittliche anständige 3,3-V-MCU kann 20 mA pro Pin bis zu 200 mA etwas liefern / aufnehmen, das ist fast Standard, wenn Sie sich beispielsweise NXP- oder ST-Teile ansehen.
"Woher weiß ich, ob der GPIO eines Mikrocontrollers genug "Leistung" hat, um diesen MOSFET anzusteuern?" In letzter Zeit habe ich aufgehört, GPIO zu verwenden, um irgendetwas direkt anzusteuern. Haben Sie darüber nachgedacht, einen dedizierten DC-Treiber zu verwenden, der mit Ihrem Mikrocontroller kommuniziert? Ein Board, das nur die Kommunikation übernimmt, verbraucht viel weniger Strom von den GPIO-Pins, und wenn Sie diesen Weg gehen, verwenden Sie wahrscheinlich stattdessen ein Busprotokoll (I2C oder Modbus über UART).

Antworten (6)

Die Antwort ist ja und nein. Ich meine, es hängt davon ab, was Sie mit der Last tun müssen.

Für ein einfaches und relativ langsames Ein-/Ausschalten können Sie es tun, vorausgesetzt, dass ...

Ihre MCU hat einen ausreichenden Ausgangspegel : Die meisten Mosfets mit Logikpegel sind für eine Vgs von 4,5 V gekennzeichnet; Normalerweise sehen Sie auf der Titelseite, dass der Hersteller mit seinen Rds bei 10 V (Standardpegel) und 4,5 V (Logikpegel) prahlt.

Ihr MOSFET ist ein sogenannter Super-Logikpegel, der in diesem Fall mit 2,5 V gekennzeichnet ist. Es gibt sogar 1,8-V-MOSFETs auf Gate-Ebene (normalerweise für Umgebungen mit geringem Stromverbrauch).

Beachten Sie, dass Sie die absoluten Werte für die GPIO-Ports eingefügt haben: Diese sind für diesen Zweck nicht ganz so interessant wie die typischen Werte. Auf Ihrem Datenblatt enthält Tabelle 17 die Antworten.

Stellen Sie sicher, dass Ihre maximale VOL unter Ihrer Gate-Schwelle liegt (um Fehlstarts zu vermeiden!). Sie haben 0,4 max auf der MCU und 0,5 min auf dem MOSFET, also ist es in Ordnung. Denken Sie auch an einen Gate-Pulldown, um sicherzustellen, dass der MOSFET ausgeschaltet bleibt, wenn der Port im Tristate-Zustand ist (normalerweise während des Zurücksetzens).

Für den EIN-Zustand müssen Sie den VOH überprüfen. Ihr Ziel ist mindestens 2,5 V (die Ausgangskurve auf dem MOSFET-Datenblatt erzählt die ganze Geschichte). Sie benötigen also mindestens 3 V Versorgung an der MCU.

Beachten Sie die Bedingungsspalte in der Tabelle: Die angegebenen Werte sind bei 8 mA angegeben. CMOS-Ausgangszellen sind etwas nichtlinear (dh sie haben keine exakte Ausgangsimpedanz). Die Idee ist, dass Sie nach mehr Strom fragen, der Port wird die angegebene Leistung nicht erreichen.

Für den Strom ist das Problem etwas komplizierter: Wie Sie wahrscheinlich wissen, ist der Gate-Anschluss im Wesentlichen ein Kondensator (der andere Anschluss ist natürlich die Quelle). Das Ein-/Ausschalten des MOSFET ist einfach das Laden/Entladen dieses Kondensators (fast: es ist ein zusammengesetzter Kondensator mit unterschiedlichen Ladephasen).

Als erste Annäherung müssen Sie Ciss (die Eingangskapazität des MOSFET) betrachten. Das sind in diesem Fall etwa 1,1 nF. Ein weiterer nützlicher Parameter ist die Gate-Gesamtladung Qg (sie gibt an, wie viel Sie zum Aufladen des Gates benötigen).

Also, um es noch einmal zusammenzufassen:

  • Sie haben ungefähr 2,5-2,8 V GPIO zur Verfügung;
  • Sie müssen einen 1,1-nF-Gate-Kondensator aufladen;
  • Ihnen stehen ca. 8mA Strom zur Verfügung;
  • Wenn Sie das Gate mit etwa 18 nC aufgeladen haben, hat der MOSFET das Umschalten abgeschlossen (naja, es endet vorher, ist aber vereinfacht).

Um den GPIO-Strom zu begrenzen, verwenden Sie natürlich einen Widerstand. Denken Sie daran, dass ein leerer Kondensator fast ein Kurzschluss ist, sodass Sie den gesamten 2,5-2,8-V-Ausgang auf 8 mA begrenzen müssen. Ohmsches Gesetz hilft.

Dies ist alles, was Sie für einen einfachen, langsamen MOSFET-Schalter benötigen (denken Sie natürlich daran, die induktive Entmagnetisierung des Motors freilaufen zu lassen). In dieser Situation wird der MOSFET (im Wesentlichen) vollständig verstärkt und als Rdson-Widerstand abgebaut.

Nun, für PWM haben Sie zwei Hauptprobleme:

  • Mit nur 8mA ist der Schaltvorgang langsam. Wirklich. Sie können das exponentielle Verhalten der RC-Schaltung verwenden, um die Schaltzeit theoretisch zu bestimmen. In der Praxis verwendet man heutzutage normalerweise einen Simulator (häufig SPICE-basiert), um zu wissen, wie viel Zeit es dauert; Dies begrenzt die Frequenz, die Sie für Ihre PWM verwenden können (denken Sie daran, dass Sie auch das Gate entladen müssen, um den MOSFET auszuschalten, sodass die Mindestperiode doppelt so lang ist!)

  • Während der Kommutierung bewegt sich der Betriebspunkt durch den linearen Bereich, sodass der Rdson-Wert nicht mehr gültig ist. In diesem Bereich ist Vds signifikant und die Verlustleistung kann ein Problem darstellen (diese werden als Schaltverluste bezeichnet). Je länger es dauert, desto mehr Joule werden natürlich in Wärme verschwendet.

Die Verluste hängen vom Strom ab, der für Ihren Motor benötigt wird, können aber geschätzt werden. Sie können nichts für statische (Rdson) Verluste tun. Schaltverluste können reduziert werden, indem das Gate schneller geladen wird , dh mit mehr Strom. Dann brauchen Sie einen Gate-Treiber und es gibt mehr Probleme. Sie können Gate-Treiber sogar auf Logikpegel verwenden (wenn der Treiber mit einer so niedrigen Spannung arbeitet).

Eine gute einführende Appnote ist SLUP169 Fundamentals of MOSFET and IGBT Gate Driver Circuits von TI.

Vielen Dank für die sehr ausführliche Antwort, Lorenzo. Ich verstehe aus dem µC-Datenblatt, dass ich mehr GPIOs parallel verwenden könnte, um mehr Strom zu erhalten. Könnte ich dann einfach den doppelten Strom annehmen, den Sie erwähnt haben, 2 * 8 mA, oder würde es zu Komplikationen bei der parallelen Verwendung von zwei Pins kommen?
Die meisten CMOS-GPIO können problemlos parallel geschaltet werden, das Hauptproblem besteht jedoch darin, sie gleichzeitig umzuschalten, insbesondere wenn es sich um ein Peripheriegerät wie einen PWM-Timer handelt, der normalerweise nur an einen Pin gebunden ist. Ein 74LVC1G17-Puffer ist billig wie ein Transistor und kann sinnvollerweise mehr als zwei Ihrer GPIOs ansteuern.

Der einfachste Weg, hier einige Zahlen zu erhalten, wäre, den Transistor zu simulieren. Abgesehen davon gibt es einige Berechnungen auf der Rückseite des Umschlags, mit denen Sie herausfinden können, was los ist. Beachten Sie, dass ich die Werte aus den Datenblattauszügen verwendet habe, nicht aus dem tatsächlich verknüpften Datenblatt (sie sind unterschiedlich).

Nähern Sie die MOSFET-Gate-Ladung (Qg) als idealen Kondensator an. Beachten Sie, dass diese Gate-Gebühr von VDS und IDS abhängt und das Datenblatt einen willkürlichen Wert auswählt. Beachten Sie auch, dass die Gate-Kapazität nicht linear ist, also wirklich eine Annäherung, keine Lösung.

C = Q / v = 3.1 N C / 4.5 v = 689 P F

Nehmen Sie einen Widerstand in Reihe an, um den Strom auf die GPIO-Grenze zu begrenzen:

R G = v D D ICH Ö / ICH M A X = 3.3 v / 25 M A = 132 Ω
Erhöhen Sie den Widerstand auf die nächste verfügbare Widerstandsgröße, zB 150Ω.

Nähern Sie die Anstiegs-/Abfallzeit als RC-Zeitkonstante an. Das Schaltverhalten wird durch diese Annahme nicht gut modelliert, dies dient nur dazu, eine grobe Abschätzung der Größenordnung zu erhalten. Die Verwendung von 2,2 Zeitkonstanten ergibt ungefähr einen Übergang von 10 % bis 90 % und ist etwas pessimistisch. Dies setzt auch voraus, dass die GPIO-Treiberstärke über alle Ausgangsspannungen hinweg gleich gut ist.

T S w 2.2 R C 3 150 Ω 689 P F = 227 N S

Das ist also nicht superschnell, aber es ist nicht schrecklich. Die tatsächliche Ausgangsschaltzeit wird wahrscheinlich geringer sein. Ich würde wahrscheinlich weiter nach niedrigeren PWM-Frequenzen suchen.

Oh schön, ich war zu faul, um die eigentliche Berechnung durchzuführen. Wenn es sich um einen kleinen Motor handelt, wird er wahrscheinlich selbst bei PWM keine Probleme haben, die IR-StrongFET-Familie ist meiner Erfahrung nach außergewöhnlich widerstandsfähig gegen Misshandlung, wenn sie mit niedrigen Frequenzen betrieben wird
"Zu faul für die Berechnung"... sagt die Person, die 2 Seiten Text schreibt =D @LorenzoMarcantonio

GPIO-Ausgänge werden gut durch Stromquellen angenähert, die einen Strom treiben, der etwas kleiner ist als der Kurzschlussstrom, den der GPIO-Pin in beide Schienen treiben kann. Normalerweise haben die GPIO-Treiber die gleiche Stromquelle und -senke. Das Gate wird durch einen mit der Source verbundenen Kondensator gut angenähert. Es ist einfach, die Anstiegsgeschwindigkeit und damit die Gate-Spannung (eine Rampe) und den Moment zu bestimmen, in dem der Mosfet zu leiten beginnt und wann er vollständig eingeschaltet wird.

Im Allgemeinen haben einzelne MCU-Ausgänge nicht genug Stromkapazität, um Mosfets mit niedrigem Widerstand schnell genug ein- und auszuschalten, um die Schaltverluste zu minimieren. Wenn Sie es sich leisten können, viel mehr GPIO-Pins zur Verfügung zu haben, als nominell benötigt werden, ist es eine gute Strategie, mehrere Pins parallel zu schalten, um den effektiven Strom zu erhöhen. Dies erfordert das Hinzufügen von Power-Pins zur MCU. Dies wird erreicht, indem "Dummy"-GPIO-Ausgänge mit GND und VCC verbunden werden und sie jeweils in den logischen Zustand 0/1 treiben. Diese Ausgänge bieten zusätzliche parallele Versorgungspfade für die benachbarten Treiber, die das Mosfet-Gate ansteuern. Die Stifte des parallelen Leistungspfads würden mit Ausgangsstiften abgewechselt, die das Gate ansteuern, um die I/O-Leistungsringströme niedrig zu halten.

Dieser Trick kann verwendet werden, um viel höhere kombinierte GPIO-Ströme bereitzustellen, als dies sonst möglich wäre, ohne den Chip zu überlasten, selbst wenn der absolut maximale Gesamt-Pin-Strom überschritten wird.

Dies ist nur machbar, wenn besonderes Augenmerk darauf gelegt wird, einen solchen Betrieb zu charakterisieren und sicherzustellen, dass der E/A-Leistungsring durch solche Ströme nicht beschädigt wird. Solche Spielereien sind sinnvoll bei Low-Cost-Produkten in großen Stückzahlen, bei denen die Verlagerung von möglichst viel Verantwortung auf die MCU trotz höherer F&E-Kosten Kosten spart. Verwenden Sie für Produkte mit geringem Volumen im Zweifelsfall einfach einen Gate-Treiber. Es wird viel billiger sein.

Ich würde mich nicht auf den Trick der „Mehrfachversorgung“ verlassen, es sei denn, er wird vom Hersteller empfohlen. es sei denn, Sie sind sich der Struktur der GPIO-Zelle sicher. Einige Low-Power-MCUs verwenden zum Beispiel Edge-Beschleuniger …

Schauen Sie sich Abbildung 1 im Datenblatt für den MOSFET an. Diese Zahl gibt Ihnen den typischen Wert von an v D S für einen gegebenen Wert von v G S Und ICH D . Verwenden Sie nur die Kurve, die dem entspricht v Ö H für Ihren Prozessor.

Stellen Sie sicher, dass der MOSFET genügend Strom für Ihre Last liefern kann, während er einen ausreichend niedrigen Wert beibehält v D S .

Wenn Sie abschätzen möchten, wie schnell der Mikrocontroller das MOSFET-Gate schalten kann, verwenden Sie die typische Gesamt-Gate-Kapazität für den MOSFET und das Minimum ICH Ö L Und ICH Ö H für Ihren Mikrocontroller. Angesichts des durchschnittlichen Stroms und der Kapazität können Sie eine Schätzung berechnen D v D T . Wenn Sie wissen, wie stark sich die Spannung am MOSFET-Gate ändern soll ( D v , normalerweise gleich der Mikrocontroller-Versorgungsspannung), dann können Sie eine Schätzung berechnen D T .

Die von Ihnen eingegebenen Parameter, v G P ICH Ö _ A B S Und ICH G P ICH Ö _ A B S sind absolute Höchstwerte für Gerät und Verpackung; diese Parameter sind hier nicht relevant.

Bei statischer Belastung ist das richtig. OP erwähnt PWM ausdrücklich, daher ist in diesem Fall eine tiefere Analyse erforderlich.

Nach einer sehr groben Schätzung aus dem Datenblatt beträgt die Einschaltzeit im schlimmsten Fall (schnellste) etwa 20 ns und die erforderliche Gate-Ladung beträgt 0,22 nC. Das Ig liegt also bei etwa 10 mA, was weniger ist als Ihr Quellstrom des uControllers.

Er kann es schalten, es ist nur langsamer. Für einen statischen Schalter wäre es in Ordnung, für einen PWM-Antrieb … es kommt darauf an
Ja, das habe ich erwähnt, da der Quellstrom von uC größer ist als ig, er kann ihn leicht umschalten

Hier ist ein einfaches Beispiel mit einem 100-W-12-V-Motor unter Verwendung des Falstad-Standardmodells.

  • Ich habe einen Nch-FET mit Vt = 1,5 V, Vgs = 12 V PWM-Variable f & dc und eine Standard-Leistungsdiode (10 A est?) verwendet

Beachten Sie, dass die Diagramme zeigen, dass die von der Spannungsquelle erzeugte Leistung bei etwa 95 W im Dauerzustand und auch für DIODE und FET (~ 20 mOhm) negativ ist.

Ps = 95 W, Pfet = 1,5 W, Pdiode = 7,3 WGeben Sie hier die Bildbeschreibung ein

Kann ich ein Niederspannungs-MOSFET-Gate direkt von einem Mikrocontroller aus ansteuern?

Ja ... aber beim Entwerfen eines Motortreibers gibt es noch viel mehr Designfragen.

Woher weiß ich, ob der GPIO eines Mikrocontrollers genug "Leistung" hat, um diesen MOSFET anzusteuern?

Der GPIO versorgt den Motor nicht mit Strom, aber die Ausgänge haben einen niedrigen Widerstand R Ö H = ( v D D v Ö H / ICH Ö H ist normalerweise < 50 Ohm bei 25 °C, abhängig von Vdd. (Nenn-GPIO-Strom ist für Logikpegel @ Vol und Voh, die hier weniger relevant sind, verwenden Sie also den berechneten RdsOn )

Wichtige Fakten zu GPIO-SPEZIFIKATIONEN

  • Verwenden Sie nicht den Absolute Max-Strom, um Ihre Treiber zu entwerfen, Sie sollten diesen Grenzen nicht nahe kommen. - Berechnen Sie stattdessen den Strom und stellen Sie sicher, dass er UNTER DEN ABS-GRENZEN arbeitet

  • Berechnen Sie Router so

    v Ö H = v D D 0,5 v 8   M A = 3.3 0,5 8 = 350   Ω ( A B S . M A X @ 85 ° C )

FETs verwenden die Spannung der Gate-Kapazitätsladung (siehe Ciss ), und die Gate-Schwelle Vgs(th) (auch bekannt als Vt) ist für einen hohen Widerstand. Um einen niedrigen RdsOn zu erreichen, ist etwa Vgs>=2 * Vgs(th) erforderlich, und RdsOn wird in der Nähe davon bewertet.

Die Gate-Anstiegszeit kann aus Ro * Ciss geschätzt werden. Die Anstiegsgeschwindigkeit des Ausgangs hängt von der Lastreaktanz RdsOn und Coss ab. ref Ich schlage vor, dass Sie sich einen Halbbrücken-FET oder einen Vollbrücken-Leistungsmotortreiber-IC (für bidirektional) besorgen, bis Sie sich mit allen Designparametern vertraut gemacht haben.Geben Sie hier die Bildbeschreibung ein

https://www.pcbway.com/blog/technology/Powerful_H_Bridge_DC_Motor_Driver.html Geben Sie hier die Bildbeschreibung ein

Das Layout ist entscheidend für eine gute Leistung mit Masseebene für niedrige Induktivität und gute Entkopplung.

Normalerweise ist ein Push-Pull-Treiber, auch bekannt als Half-Bridge, besser, da der einzelne PWM-Schalter mit einer Diodenklemme den Push-Pull des armen Mannes wirkt ( Nch-Pull + Dioden-Push-Schalter auf Vdd von der Gegen-EMK). Diese sind jedoch anfällig für Durchschussfehler, es sei denn, Sie entwerfen mit schnellem Aus und langsamem EIN, um eine definierte "Totzeit oder Unterbrechung vor dem Schalten von Schienen zu erzeugen. Dies ist ein normales Design.

Geben Sie mir Feedback zur Simulation.