Gleichstrommotoren mit MOSFETs und Mikrocontroller ansteuern?


13

Ich entwickle einen Nano-Quadcopter mit einem Atmega328-Mikrocontroller, der mit 3,3 V betrieben wird, und sehr kleinen bürstenbehafteten Gleichstrommotoren. Der von diesen Motoren verwendete Durchschnittsstrom beträgt ca. 800 mA bei 3,7 V.

Anfangs verwendete ich einen L293D-Motortreiber, um sie anzutreiben, aber diese Komponente war ziemlich ineffizient. Der Strom, der gemessen wurde, als die Motoren mit maximaler Leistung liefen, betrug ungefähr 500 mA, und der Schub war daher viel geringer, als er sein sollte.

Um dieses Problem zu lösen, würde ich diesen Motortreiber durch 4 MOSFETs mit Logikpegel ersetzen. Nach langer Suche finde ich diesen (2SK4033).

Weißt du, ob es funktionieren sollte? Muss ich es in Verbindung mit einer Diode verwenden? Wenn die Antwort "Ja" ist, was ist diesem (MBR360RLG)?

Ich habe mich auch für diese Komponenten entschieden, weil ich sie im selben Online-Shop kaufen kann.


2
Andy hat den MOSFET-Teil Ihrer Frage beantwortet, aber niemand hat eine grundlegendere Frage angesprochen: Wie wollen Sie diesen L293D durch 4-N-MOSFETs ersetzen? Das Auflegen eines N-MOSFET auf die High-Side kann zu Effizienzproblemen führen. Eine schematische Zeichnung kann dabei helfen, Ihre Idee klar zu machen.
Laszlo Valko

Was meinst du mit "high-side"? In diesem Moment ist der einzige Schaltplan, den ich habe, der mit dem L293D. Wenn es helfen könnte, kann ich es posten. Meine Idee ist, dass jeder Motor von einem Mosfet (insgesamt 4) angetrieben wird und wenn es benötigt wird, auch eine Diode. Was könnte eine effizientere Lösung sein?
Supergiox

Jeder L293D-Ausgang enthält einen "High-Side" -Transistor (zwischen Vcc und dem Ausgang) und einen "Low-Side" -Transistor (zwischen GND und dem Ausgang). Wenn Sie den "High-Side" -Transistor durch einen N-MOSFET ersetzen, benötigen Sie ein Netzteil, das Vgs (mindestens 2..3..4V) über der Ausgangsspannung bereitstellt. Oder die max. Die Ausgangsspannung beträgt Vcc - Vgs ...
Laszlo Valko

Die Vgs müssen 3,3 V betragen und der Ausgang (Vds) muss 3,7 V betragen (die gleiche Spannung der Batterie, die einzigartig ist). Also, wenn es dieses Problem gibt, wie kann ich es tun? Können Sie eine andere Lösung vorschlagen?
Supergiox

2
Sie haben folgende Möglichkeiten: a) Verwenden Sie P-MOSFETs für die High-Side; b) Verwenden Sie einen separaten Spannungsverdoppler oder eine DC-DC-Wandlerschaltung, um 2 * Vcc für die Ansteuerung der High-Side-MOSFET-Gates bereitzustellen. c) Verwenden Sie eine Bootstrap-Schaltung, um die richtige Vout + Vcc-Spannung für die Ansteuerung der High-Side-MOSFET-Gates bereitzustellen. Jedes von diesen hat seine Nachteile und / oder Einschränkungen.
Laszlo Valko

Antworten:


17

MOSFETs sollten für diese Anwendung sehr gut funktionieren. Hier sind einige Dinge zu beachten:

1:

Wenn Sie einen FET zum Ansteuern einer Last verwenden, können Sie entweder eine High-Side- oder eine Low-Side-Konfiguration auswählen. High-Side platziert den FET zwischen der Stromschiene und der Last, und die andere Seite der Last ist mit Masse verbunden. In einer Low-Side-Konfiguration ist eine Leitung der Last mit der Stromschiene verbunden, und der FET befindet sich zwischen Last und Masse:

HighVsLow

Die einfachste Möglichkeit, Ihren Motor (oder eine andere Last) anzutreiben, besteht darin, einen N-Kanal-MOSFET in der Low-Side-Konfiguration zu verwenden. Ein N-FET beginnt zu leiten, wenn seine Gate-Spannung höher als seine Source ist. Da die Source mit Masse verbunden ist, kann das Gate mit normaler Ein-Aus-Logik angesteuert werden. Es gibt einen Schwellenwert, den die Gate-Spannung überschreiten muss ("Vth"), bevor der FET leitet. Einige FETs haben Vth in der Größenordnung von zehn Volt. Sie möchten einen N-FET mit "Logikpegel" und einer Schwelle, die erheblich unter Ihrer Vcc liegt.

Die Low-Side-FET-Konfiguration weist zwei Nachteile auf:

  • Die Motorwicklung ist direkt mit der Stromschiene verbunden. Wenn der FET ausgeschaltet ist, ist die gesamte Wicklung "heiß". Sie schalten die Masse und nicht den Stromanschluss.

  • Der Motor hat keine echte Erdreferenz. Sein niedrigstes Potential ist durch die Durchlassspannung des FET höher als Masse.

Beides sollte in Ihrem Design keine Rolle spielen. Sie können jedoch problematisch sein, wenn Sie sie nicht erwarten! Vor allem bei Stromkreisen mit höherer Leistung :)

Um diese Probleme zu lösen, können Sie einen P-FET in der High-Side-Konfiguration verwenden. Die Ansteuerschaltung wird jedoch etwas komplexer. Bei einem P-FET-Schalter ist das Gate normalerweise zur Stromschiene hochgezogen. Diese Stromschiene ist höher als die Vcc des uC, sodass Sie die I / O-Pins des uC nicht direkt mit dem Gate verbinden können. Eine übliche Lösung besteht darin, einen kleineren Low-Side-N-FET zu verwenden, um das Gate des High-Side-P-FET herunterzuziehen:

DualFet

R1 und R3 sind vorhanden, um die FETs ausgeschaltet zu halten, bis Q2 angesteuert wird. Sie benötigen R3 auch in einer Low-Side-Konfiguration.

In Ihrem Fall ist ein einfacher Low-Side-N-FET (mit R3) für Sie besser geeignet.


2:

Beachten Sie R2 im letzten Diagramm. Ein MOSFET-Gate fungiert als Kondensator, der aufgeladen werden muss, bevor der Drain-Source-Strom zu fließen beginnt. Beim erstmaligen Einschalten kann ein erheblicher Einschaltstrom auftreten. Daher müssen Sie diesen Strom begrenzen, um eine Beschädigung des uC-Ausgangstreibers zu vermeiden. Die Kappe sieht für einen Moment nur kurz aus, sodass keine große Fehlerquote erforderlich ist. Ihr spezielles Atmel kann beispielsweise 40 mA liefern. 3,3 V / 35 mA => 94,3 Ohm. Ein 100-Ohm-Widerstand funktioniert hervorragend.

Dieser Widerstand verlangsamt jedoch die Ein- und Ausschaltzeiten des FET, wodurch die Schaltfrequenz nach oben begrenzt wird. Außerdem verlängert sich die Zeitdauer, in der sich der FET im linearen Betriebsbereich befindet, wodurch Energie verschwendet wird. Wenn Sie mit einer hohen Frequenz schalten, ist dies möglicherweise ein Problem. Eine Anzeige ist, wenn der FET zu heiß wird!

Eine Lösung für dieses Problem ist die Verwendung eines FET-Treibers. Sie sind effektiv Puffer, die mehr Strom liefern und so das Gate schneller aufladen können, ohne dass ein Begrenzungswiderstand erforderlich ist. Außerdem können die meisten FET-Treiber eine höhere Stromschiene als die typischen Vcc verwenden. Diese höhere Gate-Spannung verringert den Einschaltwiderstand des FET und spart zusätzliche Energie. In Ihrem Fall können Sie den FET-Treiber mit 3,7 V versorgen und ihn mit den 3,3 V des uC steuern.

FetDriver


3:

Schließlich möchten Sie eine Schottky-Diode zum Schutz vor Spannungsspitzen verwenden, die vom Motor verursacht werden. Tun Sie dies, wenn Sie eine induktive Last schalten:

LowSideWithDiode

Eine Motorwicklung ist eine große Induktivität, die Änderungen des Stromflusses widersteht. Stellen Sie sich vor, dass Strom durch die Wicklung fließt und Sie dann den FET ausschalten. Durch die Induktivität fließt weiterhin Strom aus dem Motor, wenn die elektrischen Felder zusammenbrechen. Aber da ist kein Platz für diese Strömung! Also schlägt es durch den FET oder macht etwas anderes genauso zerstörerisch.

Der parallel zur Last angeordnete Schottky bietet einen sicheren Weg für den Stromfluss. Die Spannungsspitze wird bei der Durchlassspannung der Diode maximal, die bei 1A nur 0,6 V für die von Ihnen angegebene Spannung beträgt.

Das vorherige Bild, eine Low-Side-Konfiguration mit der Flyback-Diode, ist einfach, kostengünstig und recht effektiv.


Das einzige andere Problem, das ich bei der Verwendung der MOSFET-Lösung sehe, ist, dass sie von Natur aus unidirektional ist. Ihr ursprünglicher L293D ist ein Mehrfach-Halbbrückentreiber. Dadurch ist es möglich, einen Motor in beide Richtungen anzutreiben. Bildgebender Anschluss eines Motors zwischen 1Y und 2Y. Der L293D kann 1Y = Vdd und 2Y = GND erzeugen und der Motor dreht sich in eine Richtung. Oder es kann 1Y = GND und 2Y = Vdd sein, und der Motor dreht sich in die andere Richtung. Ziemlich praktisch.

Viel Glück und hab Spaß!


Nett! Benötige ich einen Widerstand zwischen dem Mikrokabel und dem Gate? Ist 220 Ohm ein guter Wert? (3,3 V / 0,02 A = 170 Ohm ~ 220 Ohm)
Supergiox

1
Gute Frage. In der idealen Welt verbraucht das Tor überhaupt keinen Strom. Das ist einer der Vorteile von FETs gegenüber BJTs. In der Realität fungiert das Gate jedoch als kleiner Kondensator, der aufgeladen werden muss, bevor der Drain-Source-Strom zu fließen beginnt. Sie möchten, dass der Akku schnell aufgeladen und der FET schnell eingeschaltet wird. Wenn Sie den uC-Pin zum ersten Mal einschalten, wird die Gate-Kapazität als Kurzschluss angezeigt. Der ATmega328 kann 40 mA pro Pin liefern. Die Kappe sieht für einen Moment nur kurz aus, sodass ich mich nicht mit zu vielen Fehlern herumärgern muss. Sagen wir, 3,3 V, 35 mA: ~ 100 Ohm. Ich werde dies später heute zusammenführen!
Bitsmack

1
Oh, und wenn Sie den Motor mit hohen Frequenzen schalten, wird dieser Widerstand zum Problem. Es verlangsamt das Laden und Entladen des Gates, was Ihre Schaltfrequenz verlangsamt. Außerdem verlängert sich die Zeitdauer, in der sich der FET im linearen Betriebsbereich befindet, wodurch Energie verschwendet wird. Wenn Sie feststellen, dass dies ein Problem ist, verwenden Sie einen "FET-Treiber" oder einen anderen Puffer, mit dem ein viel höherer Strom zum / vom Gate geleitet / abgeleitet wird. Dann können Sie den Widerstand minimieren (oder eliminieren).
Bitsmack

Ich denke, dass die Schaltfrequenz die PWM-Frequenz ist, also sollte sie ungefähr 500 Hz betragen.
Supergiox

1
Schön :) Ich bin eifersüchtig; Ich wollte schon seit einiger Zeit einen Quad-Copter bauen! Lassen Sie es uns wissen ...
bitsmack

12

Das würde ich mir für jeden MOSFET ansehen. Dies ist übrigens aus dem Datenblatt des 2SK4033:

Bildbeschreibung hier eingeben

Sie sagen, 800mA ist der durchschnittliche Strom, aber könnte sich dieser unter Last auf über 1A erhöhen? Wie auch immer, bei 1A und einer Gate-Ansteuerspannung von 3,3 V fällt der MOSFET an seinen Anschlüssen um etwa 0,15 V ab, wenn eine 1A-Last mit Strom versorgt wird. Können Sie mit dieser Verlustleistung (150 mW) leben und, was noch wichtiger ist, wenn die Batteriespannung unter 3 V abfällt, können Sie mit der Leistung leben, die verloren geht, wenn die Gate-Spannung unvermeidlich abfällt.

Nur Sie können diese Frage beantworten. Es gibt bessere MOSFETs als diese, aber Sie müssen die tatsächlichen Lastströme für den Motor berechnen, die Sie erwarten.

EDITS

Hier ist ein Chip, auf den ich gestoßen bin, der anstelle von MOSFETs sehr nützlich sein könnte. Es ist der DRV8850 von TI. Es enthält zwei Halbbrücken und kann somit zwei der vier Motoren unabhängig voneinander antreiben, ohne dass die Flyback-Dioden erforderlich sind (der Top-FET arbeitet also als Synchrongleichrichter, was natürlich die Verluste verringert). Der Einschaltwiderstand für jeden FET beträgt 0,045 Ohm und ist auf 5 A ausgelegt (die Verlustleistung beträgt etwa 1,1 Watt). Dies ist jedoch sehr trivial, da das OP etwa 1A benötigt. Der Spannungsbereich liegt zwischen 2V und 5,5V. Auch dies ist sehr gut geeignet:

Bildbeschreibung hier eingeben


Danke vielmals. Ja, die Motoren könnten den Strom auf einen Wert von etwas über 1A erhöhen, aber nur für kurze Zeit. Eine praktische Regel, die ich kenne, ist, einen Strom zu betrachten, der das Doppelte des Durchschnitts ist (1,6 A). Ich denke, dass 150mW Verlustleistung kein großes Problem ist.
Supergiox

Was ist mit niedrigeren Batteriespannungen, wenn die Gate-Ansteuerung schlechter ist und der Verlust größer wird? Ich spiele natürlich Devils Advocate!
Andy aka

Über die Batteriespannung sinkt unter 3V, ich weiß nicht, ob ich verstehe, was du meinst. Wie auch immer, ich benutze einen Spannungsregler (LE33CZ), um den ATmega mit 3,3 V zu versorgen. Bedeutet das nicht, dass die Spannung "immer" 3,3 V beträgt? Noch eine Frage. Was ist mit der Diode?
Supergiox

1
Wenn die Batteriespannung auf 3,4 Volt abfällt, sinkt auch der Reglerausgang. Dies bedeutet, dass die Antriebsspannung zum Gate abfällt und die Fets ineffizienter werden. Behandeln Sie dieses Szenario vor Dioden. Die Dioden sind im Vergleich trivial.
Andy aka

1
Benötigen Sie einen Fet, um jeden oder zwei Motoren zu steuern? Laszlo geht davon aus, dass Sie 2 benötigen, da Sie ursprünglich einen L293 verwendet haben.
Andy aka

6

Da ein bürstenbehafteter Gleichstrommotor verwendet wird, benötigen Sie nicht unbedingt eine H-Brücke als Antrieb. Nur in zwei Fällen ist eine H-Brücke wirklich erforderlich. Sie müssen den Motor extern kommutieren (z. B. bürstenlose PM-Motoren) oder das Schleudern umkehren. Beides scheint hier nicht zuzutreffen. Die Verwendung eines Single-Direction- oder Single-Quadrant-Laufwerks (SQD) würde das, was Sie versuchen, erheblich vereinfachen.

Der FET, den Sie verwenden möchten (2SK4033), passt nicht gut zu der verfügbaren Treiberspannung (Andy hat bereits darauf hingewiesen, warum), und wir werden später ausführlicher auf die Auswahl von FETs eingehen.

Antreiben von bürstenbehafteten Gleichstrommotoren mit einem Single Quadrant Drive (SQD)

Vth

enter image description here

VωRwindRgRpdVbVdrv ist Spannung von den FET - Treiber.

ImIdpkIdrms) and Diode currents (average Icr-ave) related as:

  • Idpk = Im
  • Id-rms2 = DC Im2
  • Icr-ave = (1-DC) Im

Basic criteria for choosing a FET (sort of the ABCs of choosing a FET):

  • VDS > 1.5VB-max

VDS shouldn't be any less, but there is no need to have it much higher either. In fact, higher voltage parts have bigger die and package size takes a step up above ~ 55V.

  • Vth-max < VDrv-min3

    Selecting Vth-max this way will give the full benefit of the Rds of the part.

  • ΔTJA < 50C

    Heat rise is really important. It accounts for all losses ... conduction loss, gate loss, and switching loss.

Sample part selection based on 3 criteria:

In this case with VB-max = 3.7V and VDrv-min = 3.3V, look for an N channel part with VDS > 5.6V and Vth-max < 1.1V and a guess at RDS of ~40mOhms just get in the ballpark. I put this into the digikey screen, but any similar vendor would work. Several parts came up. Since the part you mention is Toshiba, selected one of those to look at further.

  • SSM3K123TU: VDS = 20V, Vth-max = 1V

Next step is to figure out the Heat rise. What kind of power can this part take and still have less than a 50C rise? This is a small part, 2mm X 2.1mm. Looking at the thermal resistance graph in the datasheet (sheet 5, curve c), we see that for the most minimally mounted part Rth converges to 500C/W. So, for 50C rise power in the FET must be limited to 0.1W total for the part to be acceptable. Power in the FET is the sum of conduction loss, and switching loss:

PT = Pcond + Psw

where

Pcond = Rds DC Im2

Psw ~ 12ImVbFPWM(τf+τr)

When the FET switches, it all happens in the Miller Plateau. To turn a FET on, as Vgs increases, at some point Vds will start to fall. That's the start of the Miller Plateau. Vgs will be stuck at that voltage (the Miller Plateau voltage Vmp) until the FET is turned on and Vds reaches 0V. The time it takes for that to happen is the fall time of the switching waveform.

enter image description here

That's the Miller Plateau for the SSM3K123. See it circled there in red? Looks like it's about 4nC wide. So, the time it takes for the FET to switch is the same time it takes for the gate drive circuit to process (by displacement current) that 4nC of Miller Plateau charge (Qmp). Current in the driver will be determined by (Vmp - Vdrv)/Rg. Also approximate that Vmp is 1/2 Vdrv, so that:

Qmp = τVdrv2Rg or τ = 2RgQmpVdrv = 2(100Ohms)(4nC)3.3V = 242nSec

Time for some operating assumptions. Ambient temperature is 50C (so max FET die temp is 100C), PWM frequency is 20kHz (because lower frequencies are audible, and really 5kHz to 10kHz is just obnoxious), duty cycle (DC) is 90%, and motor current (Im) is 1.2A. From the Rds versus temp curve on page 3 of the datasheet we see that at 100C, Rds is 33mOhms. Now we are ready to calculate power loss in the FET.

PT = 0.9(33mOhm)(1.2A)2 + (3.3V)(1.2A)(242nSec)(20kHz) = 36mW + 19mW = 55mW

So, for these conditions FET heat rise comes in at about 1/2 the limit of 100mW. In fact, Im could be 1.65A and the FET would still be in the heat rise budget.

Loose Ends

  • Put the drive circuit and switches close to the motor.

  • While it may be possible for the micro to drive the FET directly, a driver for the protection of the micro is a good idea (something like a NC7WZ16 could work here).

  • Gate circuit resistance becomes an exercise in impedance matching. The lowest gate circuit resistance should be is the characteristic impedance of gate circuit parasitic L and FET Ciss. Here is an earlier question that goes in to more detail and may be helpful.

  • Choose a diode with the same voltage rating as the FET, and current rating higher than the maximum Im. A Schottky will have lower loss, but if FET duty cycle is > ~70% it won't really matter if a switching diode is used instead.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.