Fachbereich Elektrotechnik und Informatik Labor für 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 (Tastverhältnis) und variabler Frequenz erzeugt. Die zur Berechnung der PWM-Parameter für Ihren Versuch erforderlichen Werte für Frequenz und Tastverhältnis 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 müssen 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 Messgerät zur Anzeige von Frequenz und Tastverhältnis. PWM-Signale mit Atmel AVR 4. PWM mit Timer/Counter0 Der Timer/Counter0 des ATMEGA16 ist ein 8-Bit Timer/Counter mit PWMFunktionalität. 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. Seite 3 PWM-Signale mit Atmel AVR Seite 4 In der Betriebsart Fast PWM zählt der T/C0 dabei kontinuierlich von 0 bis zum Überlauf. Die Betriebsart Phase Correct PWM bewirkt ein Auf/Abwärtszählen 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 möglichen Konfigurationen wird ein von externem Takt unabhängiges PWM-Signal erzeugt. Vorbereitungsaufgabe: Geben Sie die erreichten Frequenzen des PWM-Signals für die angegebenen Konfigurationen von CS und WG an: WGM01 WGM00 CS02 CS01 CS00 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 Frequenz Das Tastverhältnis des erzeugten PWM-Signals ist abhängig von der Einstellung der Bits COM00 und COM01 (Compare Output Mode). Für jede der beiden PWMBetriebsarten enthält das Datenblatt des ATMEGA eine Beschreibung des Verhaltens von OC0 in Abhängigkeit von COM0/1 (Tabelle 40/41) Zur exakten Einstellung des Tastverhältnisses 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. Überprüfen Sie das erreichte Resultat mit dem Messgerät. 8. Aufgabenparameter Teil 1 Frequenz: Tastverhältnis: o Phase Correct PWM o Fast PWM 9. PWM mit Timer/Counter1 Der Timer/Counter1 des ATMEGA16 ist ein 16-Bit Timer/Counter mit PWMFunktionalität. PWM-Signale mit Atmel AVR Seite 6 Durch zwei Compare-Register (OCR1A/OCR1B) mit den entsprechenden Ausgängen (OC1A/OC1B) können 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 zusätzlicher Funktionalitäten und Betriebsarten. Im Gegensatz zu T/C0 erfolgt die Einstellung der Betriebsart mit 4 Bits. Für die folgende Aufgabenstellung beschränken wir uns auf die Verwendung der Betriebsarten Phase Correct PWM und Fast PWM bei Verwendung von Register ICR1 als TOP-Value. Das Tastverhältnis der erzeugten PWM-Signale ist abhängig von der Einstellung der Bits COM1A0/COM1A1 und COM1B0/COM1B1 (Compare Output Mode). Für die verschiedenen PWM-Betriebsarten enthält das Datenblatt des ATMEGA eine Beschreibung des Verhaltens von OC1A/OC1B in Abhängigkeit von COM1A0/1A1/1B0/1B1 (Tabelle S. 111) Außerdem 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 Veränderung des Vorteilers, sondern auch durch Veränderung 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 Tastverhältnis der bis hierher konfigurierten Signale wird, in Abhängigkeit 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 für ein PWM-Signal mit folgenden Parametern: Betriebsart: Phase Correct PWM PWM-Frequenz: 1 KHz Tastverhältnis OC1A: 50% Tastverhältnis 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 Tastverhältnis OC1A: Tastverhältnis OC1B: Diese Werte werden bei Versuchsbeginn festgelegt!
© Copyright 2024 ExpyDoc