Titelbild Mikrocontroller

13.8.4. Phasenkorrekter PWM Modus

Der Phase Correct PWM Modus (WGM21 bis WGM20 = 1) bietet eine phasenkorrekte Ausgangswelle mit hoher Auflösung. Der Phase correct PWM Modus basiert auf einer zweifachen Impulsflanke. Der Zähler zählt vom BOTTOM Wert bis zum MAX Wert und wieder zurück vom MAX zum BOTTOM Wert. Im nicht invertierenden Compare Output Mode wird der Output Compare (OC2) gelöscht, wenn beim Hochzählen eine Vergleichsübereinstimmung zwischen dem TCNT2 und OCR2 auftritt und wird gesetzt wenn beim Runterzählen eine Vergleichsübereinstimmung auftritt. Im invertierenden Output Compare Modus ist es genau umgekehrt. Durch die zweifache Impulsflanke ist die Frequenz im phase correct PWM Modus niedriger als in den PWM Modi, die mit einer einfachen Impulsflanke arbeiten. Wegen der symmetrischen Eigenschaften der PWM Modi mit zweifacher Impulsflanke eigenen sich diese besonders für die Steuerung von Motoren.

Die PWM Auflösung im Phase Correct PWM Modus liegt fest bei 8 Bit. Im Phase Correct PWM Modus wird der Zähler so lange inkrementiert, bis der Zähler den festen Wert MAX erreicht. Wenn der Zähler den MAX Wert erreicht hat, ändert er daraufhin seine Zählrichtung. Der Wert von TCNT2 wird für einen Takt lang gleich dem MAX Wert sein. Das Zeitdiagramm des Phase Correct PWM Modus ist im nachfolgenden Bild zu sehen. Der Wert des TCNT2 ist als Histogramm abgebildet, um die zweifache Impulsflanke darzustellen. Auch der invertierende und der nicht invertierende Ausgang sind dargestellt. Die kleinen horizontalen Linien an der TCNT2 Flanke kennzeichnen die Vergleichsübereinstimmung zwischen OCR2 und TCNT2.
Zeitdiagramm Phasenkorrekter PWM

Zeitdiagramm Phasenkorrekter PWM


Das Timer/Counter Overflow Flag (TOV2) wird jedes Mal gesetzt, wenn der Zähler seinen BOTTOM Wert erreicht. Das Interrupt Flag kann genutzt werden, um einen Interrupt bei jedem Erreichen des BOTTOM Wertes durch den Zähler auszulösen.

Im Phase correct PWM Modus erlauben die Vergleichseinheiten das Erzeugen von PWM Signalen an den OC2 Pins. Durch Setzen der COM21 und COM20 Bits auf 2 wird ein nicht invertiertes PWM-Signal erzeugt. Ein invertiertes PWM-Signal kann erzeugt werden, indem COM21 und COM20 auf 3 gesetzt werden. Um das PWM Signal am Port Pin sichtbar zu machen muss dieser als Ausgang konfiguriert werden (DDR_OC2 = 1). Das PWM Signal wird erzeugt indem das OC2 Register gelöscht (gesetzt) wird, wenn beim Hochzählen eine Vergleichsübereinstimmung zwischen OCR2 und TCNT2 besteht und das OC2 Register wird gesetzt (gelöscht) wird, wenn beim Runterzählen eine Vergleichsübereinstimmung zwischen OCR2 und TCNT2 besteht.

Die Frequenz des Ausgangssignals kann mit folgender Formel berechnet werden:
Frequenz Phasenkorrekter PWM

Frequenz Phasenkorrekter PWM


Die Variable N steht für den Faktor des Vorteilers (1, 8, 32, 64, 128, 256 oder 1024).

Extreme Werte des OCR2 Register stellen spezielle Fälle bei der Erzeugung des PWM Signals im Phase correct PWM Modus dar. Wenn ein OCR2 Register auf den gleichen Wert wie BOTTOM eingestellt wird, bleibt der Ausgang permanant auf Low-Pegel Das Setzen des OCR2 Registers auf den MAX Wert wird zu einem konstanten High-Pegel am Ausgang führen (beim invertierenden Modus ist es dann genau anders herum).

Am Beginn der Periode 2 in obigen Abbild hat OC2 einen Wechsel von High nach Low, obwohl kein Compare Match auftritt. Der Grund für diesen Wechsel ist die erforderliche Symmetrie um den BOTTOM Punkt. Es kann zwei Fälle geben, in denen ein Wechsel ohne Compare Match auftritt:
  • OCR2 wechselt seinen Wert von MAX auf einen kleineren Wert. Wenn der OCR2 Wert gleich MAX ist, hat der OC2 Pin immer der Wert, den er bei einer Vergleichsübereinstimmung beim Herunterzählen hat. Um sicherzustellen, dass das Signal um den BOTTOM Punkt symmetrisch ist, muss der OCR2 Wert bei MAX zu dem Ergebnis einer Vergleichsübereinstimmung beim Hochzählen passen.
  • Der Zähler startet von einem Wert, der größer ist als der im OCR2, es fehlt also die Vergleichsübereinstimmung und daher wird OC2 so gesetzt, als ob die Vergleichsübereinstimmung beim Hochzählen stattgefunden hätte.
Impressum