Morgen allerseits! Ich bin dabei einen Regler für Brushless Motoren zu entwickeln (für den Breich des Modellbaus). Als Controller verwende ich den AT90PWM3. Vorerst habe ich mal ein Programm um den Motor zu starten und auf eine gewisse Geschwindikeit zu beschleunigen geschrieben; dabei messe ich die Rotor Position noch nicht, sondern gebe einfach das Signal am uC aus. das Funktioniert auch, alle Ausgänge werden richtig gesetzt etc., wenn ich aber nun die Spannung an einer Phase des Motors mit dem Osziloskop messe, tut sich etwas sehr komisches: 1: die Akku / Netzteilspannung bricht drastisch ein, auf etwa die Hälfte! Das liegt wohl daran das enorm hoe ströme fliessen, die Kabel werden seeeehhhhr heiss und fangen an zu schmoren wenn ich den Motor nich nach 10 sek ausschalte. Die P-Kanal Mosfets (IRF 4905) werden auch heiss, die N-Fets (IRLR 3103) jedoch praktisch nicht. 2: Während einer Phase (im Bild rot schraffiert) wo eigentlich beise Mosfets sperren müssten aufgrund der Spannung am Gate, tritt eine grosse Spannungsspitze auf, ebenso eine grosse spannungsspitze bei den folgenden 2 Phasen, wo doch die P Mosfets durchschalten und die N sperren, wodurch as ganze auf höhe der Betriebspannung liegen sollte. Messe ich das Signal der Versorgungsspannung (LiPo akku, kann ohne weiteres 10 A liefern! oder auch ein Netztgerät) dann sehe ich dort auch diese Spannungspitzen. (Bild unten) Wenn ich das Signal an meinem Gekauften Regler messe, dann bricht die Spannung nicht ein, und alles verhält sich wie im Bilderbuch. (Bild rechts) Dachte zuerst an einen Fehler im Aufbau der Leistungsstufe (siehe Schaltplan), habe das ganze dann nochmals neu mit etwas anderen Bauteilen zusammengelöted, gleiches Resultat. Für die die es interessiert habe ich noch das Programm angehängt, aber dort läuft eigentlich alles einwandfrei. Hat irgendjemand eine Idee wodurch meine Probleme asgelöst werden? Bzw wie ich sie lösen kann? Danke im vorraus für eure Hilfe! Grüsse ChristianF PS: Sorry für die Handzeichnungen, mache wenn ich Zeit habe Fotos direkt vom Oszi.
>Hat irgendjemand eine Idee wodurch meine Probleme asgelöst werden? An der Endstufe ist nichts besonderes zu sehen. Es kann sich eigentlich nur um einen Softwarefehler handeln: Die falschen P- und N-MosFets überlappen sich. Aus Deiner Zeichnung geht ja nicht hervor, welcher P- und welcher N-Mosfet gerade eingeschaltet ist. >Wie sieht's denn mit Freilaufdiode aus?? Die sind direkt am Motor angebracht.
jack wrote: >>Wie sieht's denn mit Freilaufdiode aus?? > > Die sind direkt am Motor angebracht. Na hoffentlich...
Nim Dir ein gate Treiber IC für low und high side und ca 10-50 Ohm gate Widerstände. Jetzt sind die gate wiederstande viel zu hoch und dadurch hast du wahrscheinlich shut through
>Nim Dich ein gate Treiber IC für low und high side und ca 10-50 Ohm gate >Widerstände. Nicht nötig. 100 bis 200 Ohm sind i.O. Eventuell könnte man dem npn-Transistor noch eine Basiswiderstand nach Masse spendieren. So wie im Anhang sind die BL-Regler aufgebaut.
Hallo! So wie ich das sehe bricht die Spannung aufgrund eines zu hohen Stromes zusammen. Vielleicht ist dein Akku zu schwach für diese Ströme. Mal mit ein paar Kondensatoren puffern. Bezüglich der Spannungsspitzen. Offenbar hast du ziemlich hohe Induktivitäten in deiner Brücke. Die Spitzen schauen genau nach Induktionsspannungen aus, da sie immer nur auftreten wenn ein Transistor zu macht. Wenn du wirklich Schutzdioden verbaut hast, dann sind sie entweder zu langsam oder du hast ziemlich lange Leitungen bis zum Motor. Ein Kondensator und ein Widerstand oder eine Z-Diode mit Widerstand bei den Transistoren könnte das wohl wirksam abfangen. Das der P-Kanal heißer wird als der N-Kanal wird wohl an seinem höheren Rdson liegen. Ausserdem sind in meinen Augen die Gatewiderstände zu hoch (wie schon Elvin anmerkte). Dadurch fährst du zu langsam durch den linearen Bereich was eine übermäßige Erwärmung erklären würde. Grüße fasti
Das Problem wird auch an der Gate-Drain Kapazität des P Kanal Fets liegen. Wenn der N Kanal die PWM macht, bekommt der P Kanal natürlich auch die Spannungen mit. Die koppeln via Drain-Gate Kapazität auf das Gate über, und lassen den P Kanal Fet leitend werden. Mit einem kleineren Pullup am P Kanal und einer zusätzlichen Gatekapazität kann man das Problem aber lösen.
Hallo! Vielen vielen Dank erstmal für die zahlreichen Antworten!! Ein Softwarefehler ist es nicht, die Signale an den Gates der Fets habe ich mitem dem Osziloskop überprüft. Das PWM Signal liegt an den P-Kanal Fets. Im moment (und auf der Zeichnung) ist das PWM Signal allerdings noch ständig high, also keine Pause zwischen den Pulsen. Der Akku sollte die erforderlichen Ströme schon liefern können, zumindest tut er das beim gekauften Regler, was heissen muss dass bei meinem Regler die Ströme viel grösser sind(?). An Freilaufdioden habe ich tatsächlich noch nicht gedacht! Sind das die gleichen "Schutzdioden" die Fasti erwähnt? Und die Leitung zum Motor ist in der Tat etwas lang, werde ich kürzen. Werde jetzt Freilaufdioden verbauen (Woran erkenne ich (Datenblatt) dass die Dioden genug schnell sind?) und kleinerer Gatewiderstände einsetzten. Dann werde ich wieder Messen, und schauen ob das Problem gelöst ist! @Fasti >Ein Kondensator und ein Widerstand oder eine Z-Diode mit Widerstand bei >den Transistoren könnte das wohl wirksam abfangen. Ich verstehe nicht ganz wo ich der Widerstand und de Kondesator bzw. Z-Diode am Transistor anbringen soll. @Benedikt K. zusätzliche Gatekapazität: Einfach ein Kondensator zwischen dem Gate des Fets und Masse? Grüsse ChristianF
ChristianF wrote: > @Benedikt K. > zusätzliche Gatekapazität: Einfach ein Kondensator zwischen dem Gate des > Fets und Masse? Ja. Mess aber erst mal nach ob das notwendig ist. Bei mir hat man deutlich Peaks am Gate gesehen, wenn der andere Mosfet geschaltet hat.
In welcher Grössenordnung müssten die Kapazitäten sein, wenn ich sie denn brauche? Danke, ChristianF
>Das PWM Signal liegt an den P-Kanal Fets. Im moment (und auf der >Zeichnung) ist das PWM Signal allerdings noch ständig high, also keine >Pause zwischen den Pulsen. Der PWM wird mit dem P gemacht ? Und der N ? Der ist statische ? Gibt es eine Totzeit zwischen dem N & P ?
Ja, der N ist ohne PWM. Sollte das PWM Signal denn besser auf dem N sein? oder ist das im Prinzip egal? Eine Totzeit zwischen einem N & P verschiedener Phasen gibt es nicht, die Gefahr eines Kurzschlusses besteht ja innerhalb einer Halbbrücke ohnehin nicht, da es eine ganze Phase hat in der N & P Fet beide sperren, und nicht direkt von N auf P gewechselt wird. Bräuchte es denn eine Totzeit zwischen jeder Phase? Demnach auch beim Übergang von einem N Fet zum nächsten N Fet?
Ein 3 phasen Antrieb muss in 4 quadranten arbeiten, und das geht nur wenn der N und der P beim PWM mitmachen. Dh es werden alle 6 Fet am PWM beteiligt.
hm, ich muess zugeben da komm ich nicht mehr mit ;-). Aber ich glaube es gibt diverse selbstbau Regler die nicht bei beiden PWM anwenden? Es gibt doch einie die als Cotroller den Mega8 einsetzen und es wäre doch mit einem Mega8 sehr schwer realisierbar alle 6 Fets an PWM zu haben, denke ich. Wenn alle Fets mit PWM betrieben werden, gibt es da nicht Probleme weil Strom und Spannung aufgrund der Spulen im Motor Phasenverschoben sind? Ich kenne mich da nicht wirklich aus, also mögen mir abstruse Gedanken verziehen sein...
PWM in einem Zweig ist besser. Ich habs bisher in den N-Zweigen gemacht, weil die N-Fets meist schneller schalten können als P-Fets. Die Phasen müssen halt umgeschaltet werden, wenn die PWM aus ist. guido
Kein Wunder, dass der P-Channel warm wird. 5,6kOhm Gatewiderstand sind viel zu viel! Selbst 200 Ohm sind bei hoher Frequenz tödlich für die FETs, da diese nicht sofort durchschalten, sondern dadurch, dass das Gate über einen Widerstand aufgeladen wird, erst nach einiger Zeit langsam durchschalten. 10-50 Ohm halte ich für angebrachter, als 200 Ohm Aber baue erstmal die Schutzdioden ein.
damit ich auch noch was gesagt habe: Verriegelungszeiten berücksichtigen!
Danke für die vielen Tipps! Habe schon einige Teile umgelötet, und werde hoffentlich morgen mit dem Osziloskop messen können. Ich werde dann wieder berichten! Grüsse ChristianF
moin moin, unter Beitrag "5Phasen-Schrittmotoransteuerung" habe ich mal meine 5Phasensteuerung eingestellt. Für 3Phasen nehme ich einen SI9979 + 3 DoppelFETs. Bei Dir muss wegen PWM der P-FET (mach ich auch so) mit einem richtigen Treiber angesteuert werden. Wenn die Motorspannung <20V ist, reicht eventuell schon eine komplementär Endstufe. Machst Du die Strom-PWM nur über den MC? Das dürfte zeitlich mehr als knapp werden. Bei mir macht das der GAL mit und die Steuerungen laufen stundenlang und da wirds nur handwarm. Mit Gruß Pieter
So, es gibt Neuigkeiten: Konnte heute mit dem Osziloskop die angepasste Schaltung (Bild) testen, allerdings hat sich nicht gross etwas geändert. Oben auf dem Bild sieht man das Signal an einer Phase, unten das Signal am Gate des P Kanal Fets. Der P schaltet also zu einem Zeitpunkt an dem er gar nicht dürfte, sehr mysteriös... PWM ist beim maximalwert, also ständig ein. Pulse ich die Spannung gibt es ein ebenfalls komisches Bild, poste das ev noch. Was mich sehr stutzig macht sind die hohen Ströme die zu fliessen scheinen; Der Motor wird sehr heiss, genau wie die P Fets, ich wage es nicht den Motor über mehr als 10 sekunden eingeschaltet zu lassen ! Kann natürlich damit zusammenhängen das die P Fets falsch schalten. Beim gekauften Regler wird der Motor und die Kabel praktisch nicht warm, auch bei voller Leistung, woraus ich schliesse dass die Ströme viel geringer sind. Irgendetwas mache ich wohl falsch... Sind die Werte für die Widerstände etc i.O.? Danke für eure Mithilfe!! Grüsse ChristianF
...und noch das Signal an einer Phase wenn die PWM auf 75% ist. (Achtung, hier sind 2Volt pro Häuschen eingestellt!) Unten wieder die Spannung am Gate des P Fets.
moin moin, die RC-Kombi am npn (B-C) ist doch ein Witz. Die macht den npn zu einem langsamen Schalter mit flachen Flanken. Da Du nur die Spannung schaltest, es wird ein Strom fliessen, der nur durch den Widerstand der Motorspulen begrenzt wird. Das die Teile heiss werden ist also richtig. mfg Pieter
Vorsicht, du grillst Motor und Schaltung. Bei stehendem Rotor darf die PWM nicht 1 sein. Anlauf geht bei ca. 20 % Einschaltdauer. Sonst geht der Stator in die Sättigung, es gibt dann praktisch keine Strombegrenzung mehr. Mit zunehmender Drehzahl sinkt die Statorspannung durch Induktion, wenn die Regelung greift, wird zum Ausgleich die Einschaltdauer erhöht. guido
GottseiDank einmal eine richtige Antwort. Es ist ein SOFTWAREFEHLER. Die Endstufe ist überhaupt nicht das Problem.
Nun ja, schon möglich das ein Softwarfehler mitwirkt. Was die Software tut: Es erzeugt die Signale an den Ausgängen, allerdings ohne auf die tatsächiche geschwindikeit des Motors einzugehen natürlich. Das erklärt allerdings immer noch nicht warum der Mosfet schaltet obwohl er aufgrund der Gatespannung nicht sollte. Danke für den Tipp wegen der PWM, wusste nicht dass es so dramatische Folgen haben kann (Hitze...) Habe nun mal ein PWM Signal mit 1/6 Pulsbreite erzeugt, mal das Bild vom Oszi. Den Kondensator am Gate habe ich wieder rausgenommen. Hat jemand eine Idee wie ich weiter vorgehen soll? Wenn das Signal, welches ich für eine zeitlich richtige Kommutierung messen muss, überhaupt nicht dem entspricht was es soll, kann das doch nie funktionieren? Bin ziemlich ratlos für weitere Schritte. Danke und noch einen Schönen Abend! ChristianF
moin moin, anbei eine Schaltung wie ich einen P-FET ansteuern würde, die BEs sind für 1A Impuls ausgelegt. Vor das Gate vom P-Fet könnte man eventuell noch einen 12Ohm (Begrenzung bei 12V auf 1A) legen. mfg Pieter
Einen letzten Versuch gebe ich mir noch: Pwm muß laufen, Kommutierung wenn die Pwm aus ist (d.h. =0). Ein Meßsignal gibt es erst, wenn der Motor mit genügender Drehzahl läuft. Vorher muß die Steuerung im Blindflug erfolgen. guido
Hallo, Danke für eure Antworten! Der Motor läuft schon mit einer recht ordentlichen Geschwindikeit, etwa 6900 U/min (auch auf dem Bild vom Oszi!) also müsste man doch ein geeignetes Signal sehen können. Ist aber nicht der Fall; d.h. wenn ich jez die "echte, geregelte" Steuerung einschalten würde, würde gar nichts passieren (sprich der Motor hält an) weil das Signal zur Kommutierung nicht wirklich lesbar ist. Hat jemand von euch vielleicht ein Code in C zur Hand für den anfänglichen "Blindflug"? Grüsse in der Hoffnung das ich das ganze doch noch hinkriege... ChristianF
>Hat jemand von euch vielleicht ein Code in C zur Hand für den >anfänglichen "Blindflug"? Naja, AVR444, aber das wirst du kennen? guido
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.