6 kanal PWM mit Atmega8 für BLDC Motor

OP #1878087
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren