Sie sind auf Seite 1von 8

Fachbereich Elektrotechnik und Informatik

Labor fr Angewandte Informatik und Datenbanken

Praktikum
Automatisierung/Echtzeitregelung
(BAU/BER)
Prof.Dr.-Ing. Coersmeier

Erzeugen von PWM-Signalen


mit dem
Atmel AVR-Mikrocontroller

Name, Vorname Matrikelnummer

Versuchstag Testat
PWM-Signale mit Atmel AVR Seite 2

1. Aufgabenstellung
In diesem Versuch soll mit einem Atmel ATMEGA16 Mikrocontroller ein PWM-Signal
(z.B. zur Motor- oder Servosteuerung) erzeugt werden.
Bei der Pulsweitenmodulation (PWM) wird ein Rechtecksignal mit variabler
Impulsbreite (Tastverhltnis) und variabler Frequenz erzeugt.
Die zur Berechnung der PWM-Parameter fr Ihren Versuch erforderlichen Werte fr
Frequenz und Tastverhltnis erhalten Sie vor Versuchsbeginn.

2. Versuchsvorbereitung
Lesen Sie die Abschnitte zu Timer0 und Timer1 aus dem Datenblatt des
ATMEGA16.
Versuchen Sie anhand des Datenblatts und dieser Anleitung die zur
Programmierung der Timer0/Timer1 erforderlichen Register zu verstehen. Sie
mssen diese Register im Praktikum berechnen!
Bearbeiten Sie die Vorbereitungsaufgaben VOR VERSUCHSBEGINN!!!

3. Aufbau der Versuchsanordnung


Die Versuchsanordnung besteht aus einem EasyAVR6-Evaluation-Board und einem
Messgert zur Anzeige von Frequenz und Tastverhltnis.
PWM-Signale mit Atmel AVR Seite 3

4. PWM mit Timer/Counter0


Der Timer/Counter0 des ATMEGA16 ist ein 8-Bit Timer/Counter mit PWM-
Funktionalitt.

8-bit Timer/Counter Block Diagram

Der Timer0 kennt vier Betriebsarten, die ber die Bits WGM00 und WGM01 des
Registers TCCR0 (Timer Counter Control Register 0) konfiguriert werden. Zwei
dieser Betriebsarten dienen zur Erzeugung von PWM-Signalen. Dabei wird das
erzeugte PWM-Signal an Pin OC0 ausgegeben.
PWM-Signale mit Atmel AVR Seite 4

In der Betriebsart Fast PWM zhlt der T/C0 dabei kontinuierlich von 0 bis zum
berlauf. Die Betriebsart Phase Correct PWM bewirkt ein Auf/Abwrtszhlen von
T/C0 zwischen 0 und dem Maximalwert
.
In beiden Betriebsarten wird die Frequenz des erzeugten PWM-Signals durch die
Taktfrequenz des ATMEGA16 (hier: 8MHz) und durch die Konfiguration der drei
Clock-Select Bits (CS00/CS01/CS02) in TCCR0 bestimmt. Bei 5 der 8 mglichen
Konfigurationen wird ein von externem Takt unabhngiges PWM-Signal erzeugt.

Vorbereitungsaufgabe:
Geben Sie die erreichten Frequenzen des PWM-Signals fr die angegebenen
Konfigurationen von CS und WG an:
WGM01 WGM00 CS02 CS01 CS00 Frequenz
0 1 0 0 1
0 1 0 1 0
0 1 0 1 1
0 1 1 0 0
0 1 1 0 1
1 1 0 0 1
1 1 0 1 0
1 1 0 1 1
1 1 1 0 0
1 1 1 0 1

Das Tastverhltnis des erzeugten PWM-Signals ist abhngig von der Einstellung der
Bits COM00 und COM01 (Compare Output Mode). Fr jede der beiden PWM-
Betriebsarten enthlt das Datenblatt des ATMEGA eine Beschreibung des
Verhaltens von OC0 in Abhngigkeit von COM0/1 (Tabelle 40/41)
Zur exakten Einstellung des Tastverhltnisses an OC0 dient das Output Compare
Register OCR0:
PWM-Signale mit Atmel AVR Seite 5

7. Aufgabenstellung Teil 1
Schreiben Sie ein kurzes Programm zur Erzeugung eines PWM-Signals mit den
angegebenen Werten.
bertragen und Starten Sie ihr Programm. berprfen Sie das erreichte Resultat mit
dem Messgert.

8. Aufgabenparameter Teil 1

Frequenz:

Tastverhltnis:

o Phase Correct PWM

o Fast PWM

9. PWM mit Timer/Counter1


Der Timer/Counter1 des ATMEGA16 ist ein 16-Bit Timer/Counter mit PWM-
Funktionalitt.
PWM-Signale mit Atmel AVR Seite 6

Durch zwei Compare-Register (OCR1A/OCR1B) mit den entsprechenden


Ausgngen (OC1A/OC1B) knnen zwei PWM-Signale erzeugt werden.
Abgesehen von den 8-bit Registern TCCR1A/B (Timer Counter Control Register)
sind zur Konfiguration des Timer/Counter1 eine Reihe von 16-bit Registern
erforderlich. Der Zugriff auf diese Register erfolgt in zwei 8-bit Schritten (low/high
Register). Eine genauere Beschreibung der Zugriffsmechanismen finden Sie im
Datenblatt auf S. 92 (Accessing 16-bit Registers).
Der Timer/Counter1 bietet, verglichen mit dem 8-bit Timer/Counter0, eine Reihe
zustzlicher Funktionalitten und Betriebsarten.
Im Gegensatz zu T/C0 erfolgt die Einstellung der Betriebsart mit 4 Bits.

Fr die folgende Aufgabenstellung beschrnken wir uns auf die Verwendung der
Betriebsarten Phase Correct PWM und Fast PWM bei Verwendung von Register
ICR1 als TOP-Value.

Das Tastverhltnis der erzeugten PWM-Signale ist abhngig von der Einstellung der
Bits COM1A0/COM1A1 und COM1B0/COM1B1 (Compare Output Mode). Fr die
verschiedenen PWM-Betriebsarten enthlt das Datenblatt des ATMEGA eine
Beschreibung des Verhaltens von OC1A/OC1B in Abhngigkeit von
COM1A0/1A1/1B0/1B1 (Tabelle S. 111)
Auerdem ist es erforderlich die genutzten Portpins als Ausgang zu konfigurieren!
PWM-Signale mit Atmel AVR Seite 7

Wie schon von Timer0 bekannt kann die Taktquelle von Timer1 ber einen Vorteiler
vom Systemtakt angesteuert werden. Die Konfiguration dieses Vorteilers erfolgt ber
die Bits CS10/CS11/CS12.

Die Parameter des so erzeugten PWM-Signals sind extrem flexibel. Im Gegensatz zu


dem mit Timer0 erzeugten Signal ist die Frequenz nicht nur durch eine Vernderung
des Vorteilers, sondern auch durch Vernderung des TOP-Wertes in ICR1
konfigurierbar.
Die so erzeugte PWM-Frequenz ergibt sich im Fast-PWM-Modus zu (Datenblatt S. 104):

Dabei ist N der eingestellte Prescaler-Wert (1,8,64,256 oder 1024)

In der Betriebsart Phase Correct PWM ist die Frequenz (Datenblatt S. 106)

Das Tastverhltnis der bis hierher konfigurierten Signale wird, in Abhngigkeit von
der Einstellung des Compare Output Mode, durch die Register OCR1A und OCR1B
festgelegt.
PWM-Signale mit Atmel AVR Seite 8

10. Vorbereitungsaufgabe Teil 2


Ermitteln Sie die korrekten Registereinstellungen fr ein PWM-Signal mit folgenden
Parametern:

Betriebsart: Phase Correct PWM


PWM-Frequenz: 1 KHz
Tastverhltnis OC1A: 50%
Tastverhltnis OC1B: Verwenden Sie hier die letzten beiden Stellen Ihrer MatrNr (%)
WGM10/WGM11/WGM12/WGM13

CS10/CS11/CS12

COM1A0/COM1A1

COM1B0/COM1B1

ICR1H/ICR1L

OCR1AH/OCR1AL

OCR1BH/OCR1BL

11. Aufgabenparameter Teil 2

Frequenz:

o Phase Correct PWM

o Fast PWM

Tastverhltnis OC1A:

Tastverhltnis OC1B:

Diese Werte werden bei Versuchsbeginn festgelegt!