Forum: Mikrocontroller und Digitale Elektronik 6 kanal PWM mit Atmega8 für BLDC Motor


von Uprock M. (uprock)


Lesenswert?

Hallo

Mit Atmega8 steuere ein BLDC Motor mit 16 kHz PWM. Dafür benutze ich
16-Bit Timer1, Modus 14(Fast PWM).Durch AD-Wandler stelle ich mit Poti 
die Vergleichswerte(OCR1A) für 2 Interrupts(Timer-Overflow und  Compare 
Match).
Je nach afutretendem Interrupt lade ich in register A PWM-Zustand.
Im Register B bfeinden sich Kommutierungsbits für PORTausgang.

Vor der PORTasugabe verbinde ich PWM durch Schlüssellogic für 6 Kanäle:

      AND RB, RA
      OUT PORTB, RB //hier öffnet/schliesst(PWM) sich gleichzeitig ein
                    //P- und ein N-Transistor von jeder Seite der
                    //Leistungsbrücke

Das Problem liegt daran, dass beim Potiaufdrehen von 0%-70% steigt die 
Geschwindigkeit, und dann wieder sinkt von 70%-100%, in diesem Fall habe 
ich maximale Speed 70% der möglichen Geschwindigkeit.

Was mache ich falsch, und wie sollte ich es machen ohne externen 
Bauelementen(LOGIC) zu benutzen?

von C. S. (chrisdask8)


Lesenswert?

Hi,

schau doch mal hier:
http://www.mikrokopter.de/ucwiki/BrushlessCtrl

Das ist ein brushless Regler mit dem mega8 der 6 PWMs zur Ansteuerung 
eines BLDC verwendet, ohne externe Logik.
Schaltpläne und Softwäre findest du dort.
Da kannst du dir villeicht was davon abschaun ;-)

Gruß

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.