Hallo, vorweg: Ich habe noch nie eine PWM-Schaltung aufgebaut und noch nie eine MOSFET-Schaltung. Ziel: Ich möchte einen kleinen Modellbaumotor (gemessener Strom bei 4,5V: 1,1A) zwischen Maximalleistung/geschwindigkeit und etwa halbe Leistung/Geschwindigkeit ca. im 10Sekunden Takt wobbeln lassen. Vorhanden sind div. 18pol. PIC-Controller (16F84, 16F628, 16F88). Software sollte kein Problem sein. Manche PICs haben ja fertige PWM-Module, aber ich kann das für so einen einfachen Fall sicher auch selbst per Software implementieren. 1. Nur mit etwa welcher Frequenz sollte man so Kleinmotoren via PWM regeln? 2. (eigentlich Frage). Ich habe mir vor einiger Zeit bei pollin zwei BUZ21 MOSFETS bestellt. Leider finde ich keine Seite, die halbwegs einführend solche Leistungsmosfets erklären. Datenblatt habe ich natürlich. Ist meine Idee so Halbwegs umsetzbar: Da der BUZ21 ein N-Kanal MOSFET ist, schließe ich Source an Masse. zwischen Drain und Vcc schalte ich meinen Modellbaumotor (parallel dazu noch eine 1N4007 als Freilaufdiode in Sperrrichtung?). Ans Gate schließe ich über eine Widerstand (oder auch keinen: Ein FET schaltet ja quasi leistungslos? Da brauche ich dann keinen?) direkt den (TTL/CMOS-) Ausgang des PICs an. Muss ich noch was beachten? Schaltet der BUZ21 bei 3,6V (3 Akkus) bis 4,5V (3 Batterien) überhaupt voll durch? Der Widerstand des BUZ21 soll <0,85Ohm liegen. D.h. es fallen maximal P=R*I^2=0,85*1,1^2=1,02W ab. Da braucht's sicher noch keine Kühlung? Sind meine Ideen soweit in Ordnung? Habe ich was vergessen oder liege vielleicht vom Verständnis total daneben? Kennt jemand einen guten Link zu einer Seite mit einführenden Charakter zu MOSFETs, speziell die BUZ=Typen? Danke im voraus, Dominik
Hallo Dominik, eine Einführung zur FETs kenne ich zwar nicht, aber das Wichtigste zu Deinen Fragen (Leistung, Durchschalten bei 4V) gibt die Kurve links oben auf Seite 6 des Datenblatts an. Sie zeigt Strom und Spannung bei verschiedenen Gate-Spannungen. Bei einer Gate-Spannung von 4.5V gilt Kurve b, also der Strom steigt nie über 5 Ampere, der FET ist nicht ganz durchgeschaltet. Für 1.1 Ampere Motorstrom (ID) fällt aber nur etwa 0.2 Volt (Vds) ab, die Leistung ist dann sehr gering (0.22 Watt), das geht noch ohne Kühler. Bei 3.6 Volt liegt man aber unter der Kurve a und der FET wird wahrscheinlich gar nicht durchgeschaltet. Gruß, Martin
Dominik,
>>Ein FET schaltet ja quasi leistungslos? Da brauche ich dann keinen?)
Das vergiss besser mal gleich, das ist einer der dümmsten Dinge die in
der Geschichte der Elektronik je geschrieben wurden. Und genau wie der
Quatsch mit dem Eisen im Spinat ist das auch nicht mehr tot zu kriegen.
Leider.
Das gilt bestenfalls für Kleinleistungs-FET, AUF KEINEN FALL gilt das
für Power-Mosfets, wie Du sie verwenden willst/musst.
Um die nämlich ganz aufzusteuern und vor allem schnell, musst Du
regelrecht gewaltige Gateströme fliessen lassen bzw. zulassen. Das liegt
eben daran, dass du eine relativ grosse Gatekapazität schnell umladen
musst. Ganz besonders bei PWM stellt sich das Problem. Du benötigst für
einen (zwar sehr kurzen) Zeitraum einen sehr hohen Gatestrom.
Steuerst du das Gate nicht niederohmig genug an, schaltet der Fet zu
langsam und nicht ganz auf, erwärmt sich stark und verbraucht so
unnötige Energie.
Jochen Müller
Hallo, erst mal danke für die raschen Antworten! zu Martin: Um den Motor also wirklich noch sinnvoll bei 3,6V mit nahezu volle Leistung zu betreiben, sollte ich also besser einen anderen MosFET-Typ wählen? Werde mir mal genauer die genannte Kennlinie anschauen, auch bei anderen Typen. Danke! zu Jochen: D.h. ich muss auf Grund der hohen Gateströme noch ein (bipolar) Transistor zwischenschalten (die PIC-Ausgänge sind sehr hochohmig, glaub 10mA können die max. schalten). Kann ich dann überhaupt noch schnell genug schalten? Ich habe nämlich immer noch keine Plan, welche Frequenz man beim PWM-Betrieb eines kleinen Modelbaumotor mindestens benutzen sollte? Reicht 1kHz schon? Danke, Dominik
Dominik, ich würde sagen da reicht auch weniger als 1Khz, so ab 500Hz kann das klappen. Ich würde den FET erstmal direkt am Portausgang anschliessen, aber nur über einen kleinen Gatewioderstand. Nicht mehr als 100-470 Ohm für den Anfang. Jochen Müller
Genau - einfach mal über 270 Ohm direkt am PIC anschließen. Das ganze mal laufen lassen und schauen, ob sich der FET zu stark erwärmt. Falls er das tut, solltes du einen FET-Treiber -> http://www.mikrocontroller.net/articles/Mosfet-%C3%9Cbersicht oder eine sogenannte Push-Pull Stufe einsetzen. Die besteht aus einem npn und einem pnp Transistor (+Widerstände)
So, nachdem ich drei PIC16F628A geschrottet habe, habe ich erst mal genug für heute :( Zuerst hat es prima geklappt. Ich habe eine kleines Programm geschrieben, welche zwischen 50%an 50%aus bis 100%an und 0%aus an PortA,0 hin und her wobbelt in wenigen Sekunden. Achja, PWM-Frequenz habe ich 250Hz genommen. Das ganze auf dem Oszi angeschaut, noch kleine Rechen/Denkfehler beseitig und dann von PortA,0 über 100Ohm ans Gate vom BUZ21. Parallel dazu das Oszi an PortA,0 hängen lassen (allerdings gegen Masse). Source an Masse, Vcc über sperrende Freilaufdiode an Drain. Parallel zur Freilaufdiode habe ich dann den Motor angeklemmt. Hat prima funktioniert! Er lief langsam -> schnell -> langsam -> schnell -> usw. Das ganze mehrere Minuten lang und der BUZ21 ist höchstens mal handwarm geworden. Habe dann noch einen anderen Motor mit Propeller genommen, welcher auch geklappt hat. Allerdings war es mir nicht langsam genug. Also Motor ab, Spannung ab und PIC neuprogrammiert, dass er bis 25% runtergeht (minimales Tastverhältnis von 128an (=128/255) auf 64an (=64/255) geändert). Nachdem ich den PIC wieder in meine Testplatine gesteckt habe, und die 4,5V Spannung eingeschaltet habe (Motor noch nicht dran), zeigte das Oszi nichts mehr an an PortA :(. Schlecht. Auf einer anderen Testplatine auch nichts mehr und PIC wurde im Brenner nicht mehr erkannt. Am Schaltungsaufbau habe ich nichts verändert, PIC tot. Na ja, alles noch mal überprüft, 100Ohm Widerstand durch 470Ohm ersetzt und einen anderen PIC genommen. Nun zeigt das Oszi eine Gleichspannung von 1-2V an PortA,0 an, mehr nicht. Auch in einer anderen Testplatine selbes Ergebnis. PIC lässt sich lesen und schreiben. Habe ihn noch mehrfach geschrieben und verifiziert (alles in Ordnung). aber am Oszi kein PWM mehr zu sehen. :( Also einen nagelneuen PIC genommen (nie benutzt) ans Oszi in anderer Testplatine: Schönes PWM, welches bis auf 1/4 runtergeht. Sicherheitshalber wieder auf 128 (50%) hochgesetzt (programmiert) und noch mal in der Testplatine anzeigen lassen. Nun Software wieder identisch wie beim ersten PIC, als es funktioniert hat. Neuen PIC in die Testschaltung mit dem BUZ21 eingesetzt, Motor noch nicht angeschloss, eingeschaltet, nichts. Oszi zeigt nur Groundlinie am PortA,0 Ausgang. Sofort wieder abgeschaltet und wieder in die andere Testplatine => nichts mehr zu messen. PIC lässt sich im Brenner auch nicht mehr lesen. :( Ich habe keine Ahnung, wie die alle kaputt gehen konnten. Zu Anfang hat es ja über lange Zeit funktioniert! Und der Eingang ist ja nur über 470Ohm mit dem Gate des BUZ21 Verbunden. Selbst wenn der voll durchlässt, dürften bei 4,5V Vcc nie mehr als die erlaubten 10mA fließen können! Ich habe die Komponenten meiner PIC-Testplatine dann alle überprüft (Verpolungsschutzdiode, Elko und 10K Widerstand = Spruts 16F84/62x-Mini-Platine + Verpolungsschutzdiode), die sind auch alle in Ordnung. Mir ist es echt ein Rätsel, wie die PICs kaputt gehen konnte. Bisher ist mir noch NIE ein PIC kaputt gegangen und das obwohl ich schon viel Blödsinn geschafft habe (z.B. falschrum reingesteckt) und die schon fast am abrauchen waren (zumindest hab ich mir mal den Finger verbrannt und der PIC lief danach, nach richtigen Einsetzen noch). Die Dinger sind eigentlich sehr robust.
Wenn Du einen Motor mit zb nur 20% Tastverhältnis ansteuerst, so setzt Du die 5V Spannung runter auf 1V. Du hast einen StepDown Wandler. Umgekehrt: Wenn Du den Motor voll laufen läßt, und bremmst ihn dann mit 20% PWM ab, hast Du einen Hochsetzsteller, der dir die vom Motor generatorisch erzeugte Spannung um Faktor 5 hochsetzt, also auf fast 25V (ideal). Das kann den PIC schon schrotten.
Er hat doch nen MOSFET zwischen PIC und Motor. Oder meinst du, dass die ganze Versorgungsspannung angehoben wird? @Threadsteller: Die Freilaufdiode für den Motor hast du schon drin, oder? Ansonsten sind die PICs wirklich sehr robust - habe auch noch keinen klein bekommen. Hast du auf deinem Experimentierboard nen Fehlerdrauf. Könnte ja sein, dass während dem Betrieb ein Drähtchen gebogen wurde und nun was überbrückt.
Klaro habe ich die Freilaufdiode drin auf einem Steck-Experimentierbrett. Habe an dieser mit zwei Krokodilklemmen den Motor abgegriffen (so bin ich eigentlich auf der sicheren Seite). Ich habe es nun noch ein viertes mal probiert und nun klappt es wieder. Allerdings kriege ich jetzt seltsamerweise den Motor nicht mehr voll durchgeschaltet und der BUZ wird heiß. Auch mit dem 100Ohm Widerstand keinen Unterschied. Mit dem Oszi messe ich aber auch nur 4V am PIC-Ausgang! Die Verpolungsschutzdiode nimmt dem PIC noch die 0,5V weg, ist mir jetzt im Nachhinein eingefallen. Diesmal hab ich den BUZ21 noch vor der Diode angeschlossen, so dass am Gate wohl 0,5V weniger anliegen. Ich vermute, dass der BUZ21 deshalb nicht voll durchschaltet. Vielen Dank, Dominik
Moin, soweit ich das hier entnommen habe, wird bei dir der FET über einen 100-Ohm Widerstand von einem Pin des Pic angesteuert.(?) Das macht nach der Konensatoraufladeformel(mit t/tau=2) 30us pro Flanke, wo der FET neben den Leitverlusten noch Schaltverluste erzeugt. Eine Treiberschaltung die schneller durchschaltet, ist hier sinnvoll. Was die Frequenz der PWM angeht so ist die nicht beliebig und 250Hz viel zu wenig. Sie muss mindestens so hoch sein, dass die Statorinduktivität des Motors es schafft den Strom durch Motor und Freilaufdiodde für die längste mögliche "Aus"-Phase weiterfließen zu lassen. Wenn der Strom zwichenzeitlich auf Null geht, gelten die einfachen Regeln für PWM leider nicht mehr. Da du ein Oszi hast, kannst du das messen. Mein Vorschlag für weiteres Vorgehen: Einen FET-Treiber einbauen. Dein Testprogramm mit 50/50-Tastverhältnis laden und mit 20KHz anfangen. Dabei gleichzeitig den absoluten Strom mit dem Oszi durch den Motor messen. Die Frequenz solange erhöhen, bis der kleinste Wert des Stromes höher ist als ca. 70% des durchschnittlichen Stromes (=> Bild). Sind so Daumenwerte. Je höher die Frequenz desto geringer die Stromwelligkeit, aber auch desto höher die Schaltverluste des FET. Da muss man einen Kompromiss finden. Jetzt ein Testprogramm mit dem kleinsten gewünschten Tastverhältnis laden und schauen, ob der Strom auch da die ganze Zeit größer als Null bleibt. Falls nicht: Wieder die Frequenz erhöhen. Bastler
Das Betreiben von Gleichstrom-Motoren mit Permanentmagneten durch PWM macht auf Dauer die Magneten "weich" d.h. deren Magnetfeld wird immer schwächer und sie werden unbrauchbar. Wenn es denn unbedingt PWM sein muß: Setze einen bipolaren Transistor als Leistungsglied ein, Du ersparst Dir den FET-Ärger und die Uce davon reißt es hier auch nicht raus. Hochachtungsvoll Herbert von Caravan
Danke für die Warnung! Der Gleichstrommotor darf auf keine Fall dadurch schaden nehmen (er ist in ein 600EUR teurem Gerät integriert). Wie kann ich ihn sonst digital regeln ohne den Dauermagneten zu zerstören? Mit einem 10Ohm Widerstand klappt das Manuell ganz gut, aber wie macht man sowas digital ohne dem Motor zu schaden? Welcher bipolare Transistor würde sich denn hier eignen für die 1-2A? Ich dachte, sowas würde man generell nur mit MosFETs machen... zu Bastler: Den Strom am Motors/der Schaltung beobachte ich eh die ganze Zeit am Labornetzgerät. Wie soll ich mit dem Oszi den Strom messen? Dazu bräuchte ich noch einen (ohmschen/linearen) Widerstand? Wieso steigt der 'absolute' Strom mit der Frequenz (und wieso 70% des Normalwertes), aber nicht die Drehzahl/Motorleistung? ratlos. Da das Tastverhältnis doch gleich bleibt, müsste es der durchschnittliche Strom nicht auch (sofern die Freilaufdiode schnell genug den Induktionsstrom abbaut)?
"Das Betreiben von Gleichstrom-Motoren mit Permanentmagneten durch PWM macht auf Dauer die Magneten "weich"... " Jo, das ist richtig, wenn der Stromrippel zu groß wird passiert das mehr oder weniger schnell. Das spricht wieder für eine hohe Schaltfrequenz. Was m.E. noch schlimmer ist, ist wenn die Motoren durch unzureichende Kühlung zu warm werden.
"Dazu bräuchte ich noch einen (ohmschen/linearen) Widerstand?" Entweder den oder eine Strommesszange. "sofern die Freilaufdiode schnell genug den Induktionsstrom abbaut..." Genau das ist der Punkt: Um den Motor sauber zu regeln soll der Strom nicht auf Null abgebaut werden! Er soll vielmehr um einen Mittelwert herumrippeln, wie auf dem Bild. Vorweg: Mit PWM steuert man die durchschnittliche Spannung über dem Motor, nicht den Strom! "Wieso steigt der 'absolute' Strom mit der Frequenz?" Wenn sich deine Schaltung nicht im "kontinuierlichen Leitbetrieb" befindet (d.h. die PWM-Frequenz zu niedrig ist) wird der Strom durch deinen Motor während der Freilaufphase auf Null zurückgehen, bis der FET wieder einschaltet. Damit der Motor sauber steuerbar ist, sollte das nicht passieren und die PWM-Frequenz so hoch sein, dass der Strom in der Freilaufphase nicht zurück auf Null kommt. Alternativ zur Erhöhung der Frequenz kann man eine Spule in Reihe zum Motor schalten und so die Statorinduktivität künstlich vergrößern. Bastler
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.