kramann.info
© Guido Kramann

Login: Passwort:










4.1 Generierung - Wie werden PWM-Signale erzeugt?

Wie werden PWM-Signale erzeugt?

  • Wie leicht einzusehen ist, lassen sich Rechtecksignale sehr einfach mit Hilfe digitaler Bausteine erzeugen.
  • Zu ihrer Generierung werden die Timer des ATmega32 verwendet.
  • Da er drei Timer hat (Timer0, Timer1, Timer2) und einer sogar zwei PWM-Signale erzeugen kann, können maximal gleichzeitig auch vier PWM-Signale auf vier verschiedenen Pins generiert werden:
  • Timer0: OC0, Pin 4 (vergl. Piunbelegung im Datenblatt)
  • Timer1: OC1, Pin 21 (vergl. Piunbelegung im Datenblatt)
  • Timer2: OC2A, Pin 19; OC1B, Pin 18 (vergl. Piunbelegung im Datenblatt)
  • Timer sind in erster Linie Zähler, die völlig unabhängig vom Mikrocontrollerprogramm mit einer bestimmten Taktrate hoch- oder herunterzählen.
  • Diese Fähigkeit kann zu unterschiedlichen Zwecken eingesetzt werden.
  • Im einfachsten Fall kann man den Zähler für Zeitmessungen verwenden, indem man den Zählerstand vor und nach dem zu untersuchenden Vorgang abruft.
  • Wieder erfolgt die Konfigurierung dieser Peripherie über spezielle Register.
  • Grundsätzlich arbeitet die Peripherie unabhängig vom Mikrocontrollerprogramm und wird von diesem nur aktiviert, bzw. benutzt:
BILDBESCHREIBUNG

Bild 4.1-1: Die Peripherie läuft unabhängig vom Programm und wird von diesem lediglich konfiguriert und benutzt.

  • Der Zähler eines Timers wird vom Prinzip her mit Toggle-Flipflops realisiert:
  • In folgendem Beispiel eines T-Flipflops ändert sich der Zustand des des Ausgangs mit jeder fallenden Flanke des T-Eingangs / Takt-Eingangs.
BILDBESCHREIBUNG

Bild 4.1-3: T-Flipflop

  • Damit bildet das T-Flipflop einen Frequenzteiler durch zwei:
  • Eine am T-Eingang anliegende Rechteckschwingung erzeugt am Ausgang eine mit halber Frequenz.
  • Dies wird dazu benutzt einen binären Zähler aufzubauen (s. nächstes Bild).
BILDBESCHREIBUNG

Bild 4.1-3: Zähler mit Hilfe von T-Flipflops aufgebaut.

  • Das gewöhnliche PWM-Signal wird bei den Timern des ATmega32 mit Hilfe einer Einstellung realisiert, bei der der Zähler ständig herauf und herunter zählt.
  • Eine logische Vergleichsschaltung gibt dann an den PWM-Ausgang eine 1, wenn der Zählerstand x größer als der Schwellwert g ist.
  • Mit dem Prameter g läßt sich somit die Pulsbreite einstellen.
  • Dieser Parameter g kann bei Timer0 beispielsweise über das Register OCR0 und für Timer2 mit OCR2 eingestellt.
BILDBESCHREIBUNG

Bild 4.1-4: Generierung eines PWM-Signals über die Hardware der Timer-Peripherie.

  • Wie leicht einzusehen ist, verschiebt sich bei Veränderung des Parameters g die Phase des Signals:
BILDBESCHREIBUNG

Bild 4.1-5: Veränderte Phase (Signalflanke verschoben) bei Änderung von g.