Forum: Mikrocontroller und Digitale Elektronik Brushless Controller high-side & low-side PWM


von Martin J. (bluematrix) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,
ich beschäftige mich zur Zeit mit der Ansteuerung von Brushless Motoren.
Die meisten Regler auf Atmega Basis erzeugen ja nur ein High-side PWM 
und schalten die Low-side hart auf Masse.

Welchen Vorteil und Nachteile hat es, wenn man bei, also high-side und 
low-side per PWM aktiv schaltet?

Hat von euch schon einer die AWEX Einheit eines Xmega Controllers 
verwendet um damit einen Brushless-Motor anzusteuern?

Im Anhang gibt es noch die Bilder von meinem kleinem Testaufbau.
- Verwendung der Xmega AWEX Einheit
- 128MHz Grundtakt zur Erzeugung des PWMs
- PWM Auflösung bis 12Bit bei 16KHz, bzw. 32KHz PWM Frequenz
- Messung des Shunt mit einem differentiellem 12Bit ADC
- interner DMA
- Ansteuerung per CAN Bus, UART, I2C, PPM möglich
- 3 Signal LEDs
- 3 Mosfettreiber IR2102
- 6 IRF Directfets MX


Grüße Martin

: Bearbeitet durch User
von Martin J. (bluematrix) Benutzerseite


Lesenswert?

... hat noch keiner damit gearbeitet?

von Alex W. (a20q90)


Lesenswert?

Sind die Fets direkt auf der LP gebondet?

von blablub (Gast)


Lesenswert?

Mit dem XMEGA hab ich noch nicht gearbeitet...

Aber:
Die LS-PWM bringt dir den Vorteil dass die Verluste die in der HS-Off 
phase an der Body-Diode des LS Schalters entstehen verringert werden. 
Das ganze kostet dich dafür halt einen PWM-Port am atmega und eventuell 
etwas Software-Aufwand. (Shoot-Through protection etc.)

Zudem verhinderst du dadurch auch einen hohen Overshoot durch das 
Reverse Recovery der Body-Diode.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

@ Alex W.
Die Mosfets habe keine Bonddrähte. Der Die liegt direkt zwischen Platine 
und dem Metallgehäuse. Dadurch hat man beste Wärmeabfuhr und ein super 
Schaltverhalten. Such einfach mal nach Directfet von IRF
--> http://www.irf.com/product-info/directfet/

@  blablub
Die Xmegas haben eine AWEX Einheit, mit der kann man direkt mit einem 
Timer alle 6 Mosfets anstreuern. Die Einheit erzeugt das High und Low 
side signal und erzeugt auch die benötigte Todzeit. als Quelle für dem 
PWM hat mein 128Mhz. Damit lässt sich schon einiges machen.

Ich hab das ganze jetzt getestet und es funktioniert auch.
Leider erzeugt der zusätzliche Low-side PWM im Vergleich zum nur 
high-side pwm erhebliche Störungen auf der Platine, sodass es das BEMF 
Signal sehr verrauscht ist.
Durch das Rauschen kommt es zur Auslösung des Komparators und dadurch zu 
Fehlkommutierungen

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

http://www.atmel.com/Images/Atmel-8305-AVR928-Scalar-Sensorless-Methods-to-Drive-BLDC-Motors_Application-Note.pdf
es wäre schön wenn mein Signal so sauber wie das auf Seite 6 der Appnote 
wäre. :-(

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Martin J. schrieb:
> Hat von euch schon einer die AWEX Einheit eines Xmega Controllers
> verwendet um damit einen Brushless-Motor anzusteuern?

Ja. Allerdings erzeuge ich damit Sinusmodulation und steuere alle 6 H/L 
Sides mit PWM an. Über die Simpelmethode kann ich dir also nicht viel 
sagen.

von Funko B. (funkobongrip)


Angehängte Dateien:

Lesenswert?

Ich hab sowas ähnliches gebaut, nur wohl ne Nummer kleiner.
Mit ATtiny861 (der kann auch beide High+Low mit PWM, diff. ADC usw.) und 
alles so groß, dass ne 30x15mm Platine am ende entstehen kann.

Der einzige Vorteil dabei ist wie schon gesagt, dass in der Off-Zeit der 
Strom über den Mosfet fließt und nicht über dessen Bodydiode. Im Anhang 
das Bild dazu aus meiner Dipl. Arbeit.
Es gibt aber auch Mosfets in SO8 mit integrierten Schottky Dioden, dann 
wird es für low-cost Anwendungen schon schwierig den Steueraufwand zu 
rechtfertigen.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

Kann mir jemand folgenden Effekt erklären?

Ich betreibe den Motor mit einem konstantem PWM Verhältnis, dabei läuft 
er fast rund und zieht ohne last so gut wie keinen Strom. Weiterhin habe 
ich habe bei meinem Board die typische Mittelpunktschaltung für den 
Comparator verwendet.
Gehe ich jetzt mit einem differentiellem Tastkopf an den Mittelpunkt und 
an eine Phase für den Komparatoreingang, um das Signal zu überprüfen, so 
wird der Motor wesentlich schneller und läuft ruhiger.
Es reicht auch schon wenn ich die isolierte Tastspitzenverlängerung 
daran halte.

Das gemessene Signal sieht dann super aus.
Leider bekomme ich das Ergebnis mit der Tastspitze nicht durch 
irgendeinen Kondensator oder ähnliches reproduziert, meistens 
verschlechtert es nur den Zustand.

Bitte klärt mich auf.

von Funko B. (funkobongrip)


Lesenswert?

Martin J. schrieb:
> Kann mir jemand folgenden Effekt erklären?
>
> Ich betreibe den Motor mit einem konstantem PWM Verhältnis, dabei läuft
> er fast rund und zieht ohne last so gut wie keinen Strom. Weiterhin habe
> ich habe bei meinem Board die typische Mittelpunktschaltung für den
> Comparator verwendet.

Prüfst du nur auf eine Comp. Änderung oder auch welche Richtung?

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

die Richtung wird auch überprüft

von Funko B. (funkobongrip)


Angehängte Dateien:

Lesenswert?

So einen Effekt hatte ich nur mal als ich nicht geprüft habe in welche 
Richtung die Flanke ging. Aufm Oszi sieht man ja auch ganz gut ob die 
Back-EMF Formen in die richtige Richtung gehen. (Plateau mit anliegenden 
steigenden/fallen Flanken, wie im Anhang)

Ansonsten hatte ich mit dem "normalen" 4.7k/100n Aufbau nie Probleme.
Da wirst du wohl ums Code/Schaltplanzeigen nicht rumkommen...

von Steffen H. (stef_fen)


Lesenswert?

@Martin J.: Wie bekommst du es hin das dein Motor sauber anläuft?

Gruß Steffen

von Funko B. (funkobongrip)


Lesenswert?

Steffen Ha schrieb:
> @Martin J.: Wie bekommst du es hin das dein Motor sauber anläuft?
>
> Gruß Steffen

Man sollte in einem Forum keine Fragen an spezifische Leute stellen, 
wenn sie auch von anderen beantwortet werden kann.

Ich benutze dafür ein fixen Duty Cycle und eine Tabelle mit 
Kommutierungsdelays.
Das ganze ist natürlich vom Motor, Spannung usw. abhängig, meine 
Variante funktioniert aber für Motoren mit Propellern zuverlässig.

von Martin J. (bluematrix) Benutzerseite


Lesenswert?

entweder so oder man gibt einen harten Strompuls auf eine der Phasen.

von Funko B. (funkobongrip)


Lesenswert?

Martin J. schrieb:
> entweder so oder man gibt einen harten Strompuls auf eine der Phasen.

Das erschließt sich mir nicht... dann dreht er ja ggfs. in die falsche 
Richtung?

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
Noch kein Account? Hier anmelden.