mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik MOSFET mit 100 kHz PWM ansteuern


Autor: Daniel H. (Firma: keine) (commander)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich möchte einen MOSFET (IRF 9310) mittels einer PWM von bis zu 100 kHz 
ansteuern. Hintergrund ist der, dass ich die Spannung für einen Lüfter 
(elektrisch komutiert) steuern möchte. Da dieser Lüfter nicht direkt per 
PWM gesteuert werden kann muss dies über die Spannung erfolgen welches 
ich per LC-Tiefpass bewerkstelligen möchte.

Mein bisheriges Vorgehen war wie folgt:
1. Bei einer 100 kHz PWM habe ich eine Periode von 10µs. Um die 
Schaltverluste gering zu halten möchte ich daher gerne in maximal 200ns 
an- und abschalten.

2. Um die Gatekapazität des MOSFET bei solchen Frequenzen umzuladen 
benötigt man höhere Ströme. Die Ladung am Gate ist maximal 11nC, somit 
benötigt man einen Strom von mindestens I = C/t = 11nC/200ns = 55mA. Da 
mein µC das nicht am Pin leisten kann hatte ich überlegt einen NPN 
(BC337-25) in Emitterschaltung als Treiber zu benutzen. Ausserdem möchte 
ich gerne etwas Reserve haben und auf 60mA gehen.

3. td_(on) und td_(off) sind 10ns, bleiben also 190ns für das Umladen 
der Eingangskapazität. R = t/5*C = 190ns/5*180pF = 211.1. Somit darf der 
Gate-/Kollektorwiderstand maximal 211.1 Ohm sein (also 200 Ohm).

4. Der BC337-25 hat laut Datenblatt bei ~60mA I_C eine Stromverstärkung 
von 250. Damit benötige ich für meine 60mA einen Basistrom von 240µA. 
(5V-0.7V)/240µA = 17.9kOhm, also nehme ich 18kOhm.

5. Gemäß Datenblatt ist U_CE bei I_B = 250µA und IC = 60mA etwa 0.1V. 
Somit müsste mein Kollektorwiderstand etwa 11.9V/60mA = 198 ~200 Ohm 
sein.

Das Ganze habe ich nun (erstmal ohne MOSFET da es den nicht in LtSpice 
gibt) per LtSpice simulieren lassen und dabei ist mir aufgefallen, dass 
das Schaltverhalten des Transistors "unter aller Sau" ist. Bei einem 
Tastverhältnis von 1:10 sinkt die Ausgangsspannung innerhalb des Pulses 
nicht auf 0V sondern beträgt nach der vollständigen Dauer (1µs) immer 
noch 1.3V (siehe Bild). Generell kann man sagen, dass es viel zu lange 
dauert bis der Transistor an- oder abschaltet. Ich vermute nun, dass 
mein Basiswiderstand einfach viel zu groß ist und in Zusammenhang mit 
der Eingangskapazität des Transistors nicht für eine derartige 
Schaltfrequenz geeignet ist. Reduziere ich nämlich die Frequenz der PWM 
oder aber den Basiswiderstand so sehe ich, dass die Ausgangsspannung 
sauberer wird. Allerdings finde ich im Datenblatt keine Angabe zur 
Eingangskapazität, daher weiß ich auch nicht, welchen Basiswiderstand 
ich maximal verwenden dürfte.

Meine Fragen sind nun:

1. Liege ich mit meinen Berechnungen zunächst mal halbwegs richtig? Ich 
beschäftige mich noch nicht lange mit dem Thema und weiß nicht, ob ich 
nicht vielleicht falsche Werte für h_FE oder U_CE abgelesen habe oder 
falsche Schlußfolgerungen gezogen habe. Generell habe ich etwas 
Schwierigkeiten in das Thema "Treiber" reinzukommen.

2. Wie kann ich die Schaltung abwandeln, so dass ich mit 100 kHz 
schalten kann? Bzw. was für Möglichkeiten habe ich allgemein um es zu 
erreichen? Mein erster Gedanke war die Emitterschaltung da diese ja eine 
hohe Stromverstärkung ermöglicht, aber augenscheinlich macht ja der hohe 
Eingangswiderstand Probleme.

Gruß,
Daniel

Autor: Mine Fields (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Emitterschaltung ist nicht wirklich dafür geeignet.

In diesem Fall kann man über ein Treiber-IC nachdenken.

Autor: avion23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe hier für exakt den selben Zweck eine Totem-pole schaltung 
verwendet. BC337, BC327 als emitterfolger. Vorwiderstand entfällt, du 
kannst direkt an den µC ran. Der Strom wird verstärkt, Spannung bleibt 
die selbe bis auf 0,7V.
Mein logic level mosfet schaltet auch bei 4,3V noch ausreichend durch.

Die Flanken habe ich mir angesehen. Schon fast etwas zu steil.

Autor: GGaasstt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bipolartransistoren haben auch eine Art Eingangskapazität, durch deinen 
R2 wird das also extrem lahm. Versuch's mal mit Kleinsignal-MosFETs, die 
direkt an dem Pin hängen (BSS123, BSS84, SI1555). Oder nimm gleich einen 
richtigen MosFET-Treiber.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, ein Kondensator parallel zu R2 wirkt da wunder, 10n reichen meist 
aus.

Die Frage ist welchen Aufwand du Treiben willst. Wenn du nicht in einer 
sensibel Audioanwendung bist würde ich auf 30kHz runter gehen, wenn du 
noch einen Filter dahinter machst sollte die Frequenz nicht hörbar sein.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel H. schrieb:
> ich möchte einen MOSFET (IRF 9310) mittels einer PWM von bis zu 100 kHz
> ansteuern.

Warum willst du mit der Frequenz so hoch gehen?
Der Transistor (ob bipolar oder fet ist ja erst mal egal) braucht zwar 
im Schaltbetrieb weniger Verlustleistung, aber bei so hohen Frequenzen 
gibt dafür die Treiberstufe die Wärme ab.
:-) Irgendwie nicht so ganz sinnvoll.

Autor: Daniel H. (Firma: keine) (commander)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für eure Antworten. Ich habe nun testweise in LtSpice mal einen 
10nF Kondensator parallel zu R2 geschaltet, das Ganze sieht nun fast 
perfekt aus aus ;)  Allerdings habe ich nun kurze Spikes von +2 bzw. -3V 
über etwa 6ns am Ausgang. Ich weiß nicht, inwiefern das schlimm/störend 
ist bzw. woher die kommen daher frage ich da lieber nochmal nach.

Wieso verbessert sich das Schaltverhalten denn durch den Kondensator, 
bzw. was passiert dort? Und sind die 10nF Erfahrungswert oder kann man 
die in irgendeiner Weise berechnen? Es geht mir nicht nur darum die 
Schaltung zu verbessern sondern ich möchte gerne auch immer verstehen, 
welche Auswirkungen gewisse Änderungen haben (Sehen, Lernen, Merken).

Sollte das Problem tatsächlich durch den Kondensator schon behoben sein 
(geht nur noch darum ob diese Spikes bedenklich sind) dann würde ich von 
Treiber-ICs oder anderen Schaltungen absehen, für den Anfang würde ich 
es schon gerne so einfach wie möglich halten damit ich es noch verstehen 
kann ;)

Nichtsdestotrotz auch euch, Stefan, avion23 und GGaasstt dankeschön, ich 
werde mir auf jeden Fall merken, was ihr geschrieben habt :)

Gruß,
Daniel

Edit:
Warum ich mit der Frequenz so hoch gehen möchte:

Ich muss für den Lüfter die Ausgangsspannung regeln da er elektrisch 
kommutiert ist. Würde ich ihm direkt das PWM-Signal geben würde er nicht 
korrekt arbeiten da ständig die Spannung einbrechen würde. Daher 
verwende ich hinter dem MOSFET einen Tiefsetzsteller aus L und C. Damit 
ich L schön klein halten kann möchte ich mit der Frequenz recht hoch 
gehen, daher die 100 kHz. Dadurch brauche ich nur noch eine 
Speicherdrossel mit knapp 80µH was sich von Hand recht angenehm wickeln 
lässt ;) Falls sich das (mit einfachen Mitteln) nicht realisieren lässt 
würde ich dann entsprechend versuchen auf tiefere Frequenzen 
auszuweichen.

http://schmidt-walter.eit.h-da.de/smps/abw_smps.html

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich möchte einen MOSFET (IRF 9310) mittels einer PWM
> von bis zu 100 kHz ansteuern

200 Ohm entladen den 700pF P-Kanal von 12V auf unter 2V (damit er aus 
geht) in 250ns, in Gegenrichtnung (bei einschaltendem BC337) geht es 
schneller.

Bei 5us Impulsbreite der 100kHz sind das unter 10%, also möglich.

200 Ohm an 12V lassen 60mA fliessen, dazu reicht der BC337.

Theoretisch funktioniert das also, wenn auch die Schaltung "suboptimal" 
ist. 2 Emitterfolger (je einer als Stromversärkung der positiven und 
negativen Flanke) wie in üblichen MOSFET-Treibers wäre besser.

Autor: Ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel H. schrieb:
> Und sind die 10nF Erfahrungswert oder kann man
> die in irgendeiner Weise berechnen?

Hallo, ist ein Erfahrungswert meist reichen auch 1n. Das kommt auf die 
Eingangs Kapazität des Transistors an.
Wenn du dir mal den Strom vom Eingangssignal anschaust wirst du sehen 
das es da jetzt Stompeeks gibt die wahrscheinlich über dem Grenzwert des 
Ausgangs liegen dürften. Das macht den Ausgängen aber nichts aus, die 
müssen ja auch mal eine Längere Leitung umladen.

Die Peeks am Ausgang kommen dadurch zustande das du die Basis jetzt sehr 
schnell anhebst (absenkst) und der FET etwas braucht bis es anfängt zu 
leiten.

Autor: Alex H. (hoal) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch in diesen Thread reinschauen:
Beitrag "Philosophiestunde Konstantstromquelle"

Dort geht es zwar um eine Konstantstromquelle, aber die Tricks sind die 
selben.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schon (von Floh) erwähnt, muss die PWM Frequenz nict so hoch sein.
Abschätzung:
Der Lüfter braucht 3 Sekunden zum Hochlauf. Also sind 10 ms PWM Frequenz 
sicher ausreichend.
100 Hz statt 100 kHz PWM !

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das Problem bei der Frequenz ist aber nach wie vor die benötigte 
Induktivität. Bei 100 Hz würde ich eine Speicherdrossel mit 80mH 
benötigen, diese Größe krieg ich nicht mehr mit normalen Ringkernen 
gewickelt :-/

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun nochmal intensiv gesucht und bin dabei auf diese Schaltung 
hier gestoßen:

http://www.mikrocontroller.net/attachment/19987/PMOS.PNG

Beitrag "Re: Mosfet-Treiber so in Ordnung ?"

Angeblich soll sie recht gut sein, allerdings sind wohl bei hohen 
Frequenzen, großen MOSFETs oder hoher Eingangsspannung die Transistoren 
T2 und T4 gefährdet.

Nunja, Punkt 1 bei der Schaltung, ich verstehe sie nicht vollständig. 
Ich komme noch so weit, dass über R_E 4.3V abfallen und somit ein Strom 
von 13mA fließt.

Dann habe ich die Schaltung auch wieder in LtSpice simulieren lassen. 
Dabei ist mir aufgefallen, dass an T4 bis 170mA bei gleichzeitig etwa 8V 
anliegen. Macht also 1.36W, vertragen tun sie jedoch nur 0.25W.

Ich finde es etwas schade, dass sich (für Laien) nicht mehr (gut 
Beschriebenes) zu dem Thema finden lässt, das Meiste, was man findet 
beschäftigt sich mit PWM im unteren kHz-Bereich und wenn man Glück hat 
erhält man dort dann auch nur den Hinweis, dass das mit hohen Frequenzen 
natürlich nicht geht und dass da "irgendwas anders gemacht werden 
muss"... :-/

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist aber nicht nötig, einen "lückfreien" Betrieb zu haben. Falls der 
Ventilator bei einem PWM Zyklus um 1/1000 schneller wird, bemerkt das 
niemand.
Spar Dir die Drossel.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Macht also 1.36W, vertragen tun sie jedoch nur 0.25W

1.36W über kurze Zeirt, die meiste Zeit aber 0W,
ob da nicht im Mittel doch weniger als 0.25W rauskommen ?

Es ist aber duchaus vernünftig, mal die Obergrenze
abzuschätzen.

Autor: Mine Fields (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel H. schrieb:
> Ich finde es etwas schade, dass sich (für Laien) nicht mehr (gut
> Beschriebenes) zu dem Thema finden lässt, das Meiste, was man findet
> beschäftigt sich mit PWM im unteren kHz-Bereich und wenn man Glück hat
> erhält man dort dann auch nur den Hinweis, dass das mit hohen Frequenzen
> natürlich nicht geht und dass da "irgendwas anders gemacht werden
> muss"... :-/

In der Regel ist ein Treiber-IC dann das Einfachste.

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Max:
Ich kann aber dadurch Probleme kriegen, da viele komutierte Lüfter es 
nicht mögen wenn man ihnen ständig die Versorgungsspannung an- und 
ausknipst. Die fangen dann an zu fiepen, laufen gar nicht erst an usw.. 
Wäre es ein simpler Elektromotor dann würde ich es auch genauso machen, 
einfach direkt hinter den MOSFET und mit dem PWM-Signal drauf.

Dazu kommt, dass ich das Problem jetzt einfach gerne lösen(und die 
Lösungsansätze verstehen) möchte, damit ich dabei auch was lerne :) Ohne 
Drossel kann ich es ja trotzdem immer noch probieren, aber inzwischen 
geht es mir mehr darum zu verstehen, wie man sowas umsetzt, wenn man es 
denn wirklich braucht ;)

@MaWin:
Ich habe im Datenblatt nur die 0.25W unter "Absolute Maximum Ratings" 
gefunden, daher bin ich davon ausgegangen dass mehr als 0.25W, egal wie 
lange, bereits zur Zerstörung führen. Eine weitere Angabe zu maximalen 
Pulsströmen und deren Dauer gibt es dort leider nicht. Ansonsten hast du 
natürlich Recht, die Pulse treten nur kurz für 6ns beim An- und 
Abschalten auf womit es im Mittel näherungsweise 0W werden.

Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie groß ist die Induktivität des Motors?

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann ich leider nicht sagen da ich kein Multimeter habe das 
Induktivitäten messen kann. Es sind 0815-Brushless-PC-Lüfter, dazu finde 
ich auch kein Datenblatt oder so.

Autor: mhh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://homepage.internet.lu/animations/portland/el...

Schau Dir die unterste Schaltung bezüglich der Leistungsstufe an. Und 20 
kHz reichen dicke.

(Eine simple Analogregelung, wenn es um Abhängigkeit von der Temperatur 
geht, würde Dir warscheinlich weniger Kopfzerbrechen bereiten.)

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für den Link. Das bedeutet dann aber doch, dass ich am Ausgang 
maximal 5V für den MOSFET habe, oder? Demnach müsste ich da dann einen 
Logic-Level MOSFET einsetzen, und bei Reichelt (wo ich den ganze Klump 
bestellen würde) haben sie, so wie ich das sehe, keine Logic-Level-PMOS 
:(

Was das Ganze an sich angeht:
Die einfachste Lösung wäre natürlich einen Poti zu nehmen und in die 
Versorgungsleitung der Lüfter zu setzen, fertig. Ich möchte das Ganze 
jedoch zum Anlass nehmen mich mit Mikrocontrollern usw. auseinander zu 
setzen. Daher möchte ich gerne einen Attiny 25 nehmen, zwei Drucktaster 
anschließen und darüber eben die Lüftergeschwindigkeit vorgeben. Die 
nächste Stufe wäre dann das Tachosignal auszuwerten und das Ganze regeln 
zu lassen. Am Ende soll das Ganze dann eine Kühlung für mein Aquarium 
werden inklusive Temperatursensor usw. welche automatisch die Lüfter 
zuschaltet sobald die Raum- und/oder Wassertemperatur über einen 
gewissen Punkt steigt.

Es hat somit für mich zweierlei Nutzen, zum einen möchte ich lernen, wie 
man Transistor-/FET-Schaltungen dimensioniert und berechnet. Zum anderen 
möchte ich lernen, wie ich einen µC programmieren muss um das zu 
bewerkstelligen, was ich beschrieben habe.

Autor: mhh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ob nun Logiclevel Mosfet, oder normalen mit höherer Ansteuerspannung 
oder Bipolartransistor ist Dir überlassen. Die Schaltung ist als 
Anregung zu sehen für "normale" Lüfter, die PWM nicht vertragen.

Viel Erfolg dabei. Denn so wie Du es vor hast, lernt es sich am Besten.

Autor: Alexander v. Grafenstein (avogra)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel H. schrieb:
> demnach müsste ich da dann einen
> Logic-Level MOSFET einsetzen, und bei Reichelt (wo ich den ganze Klump
> bestellen würde) haben sie, so wie ich das sehe, keine Logic-Level-PMOS
> :(

logiclevel-taugliche p-mosfets gibts wohl bei reichelt, nur leider 
schaffen die es nicht, das auch in den titel oder die beschreibung zu 
packen. z.B. IRF7104 irf7416 hab ich auf die schnelle in der 
mosfet-übersicht gesehen.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke, die MOSFET-Übersicht kenne ich, aber ich weiß nicht nach welchen 
Kriterien man festlegt, ob ein MOSFET nun Logic Level ist oder nicht. 
Ich hatte nur in einem Thread gelesen dass die IRFL Logic Level sind, 
und davon gibt es bei Reichelt eben keinen als PMOS :-/

Autor: Daniel H. (Firma: keine) (commander)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun versucht die Logic-Level-Sache nachzuvollziehen.

Liege ich mit dem Folgendem richtig?

"Ein Logic Level MOSFET ist ein MOSFET bei welchem im I_D/U_GS-Diagramm 
bei etwa 3-4V bereits ein deutlicher (d.h. knapp unter dem Maximum) 
Drain-Strom möglich ist."

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja.

Autor: Daniel H. (Firma: keine) (commander)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich danke euch allen vielmals für eure geduldige Hilfe :)

Ich glaube dass ich nun eine funktionierende Lösung gefunden habe (siehe 
Anhang, rot = Eingang, grün = Ausgang).

Ich habe mich zunächst an dieser 
(http://www.mikrocontroller.net/attachment/19987/PMOS.PNG) Treiberstufe 
orientiert. Allerdings konnte ich bei der Simulation feststellen, dass 
zeitweise bis zu 150mA aus/in den µC-Pin flossen. Das können die 
Port-Pins des AVR aber nicht leisten.
Mit der jetzigen Schaltung habe ich das Problem nicht mehr, allein bei 
Q2 gibt es beim Entladen des MOSFET einen kurzzeitigen Peak von 720mA, 
der Zeitraum oberhalb der von 400mA (1/2 I_max) ist dabei jedoch nur 
38ns lang weswegen ich denke, dass der Transistor das verkraften sollte.

Als Transistoren hatte ich zuerst nur 337-40 und 327-40 vorgesehen, 
allerdings konnte ich feststellen dass bei Verwendung von BC547C für Q1 
das Ausgangssignal bei fallender Flanke wesentlich schneller wieder auf 
0V ging (300ns vs. 1.6µs). Den 5.6 Ohm Widerstand für R3 habe ich 
eingesetzt um den Spitzenstrom für Q2 zu begrenzen. Der IRF7204 wird 
noch gegen einen anderen, passenden getauscht, war der Erstbeste mit 
kleiner Gateladung den ich in LtSpice erwischen konnte.

Ich hoffe ich habe dabei jetzt keine Dummheiten gemacht.

Gruß,
Daniel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.