xmega_tutorial.jpg

Bewertung:  / 1
SchwachSuper 
  • xmega_timer_diagram

Die Timer/ Counter-Module der XMEGA Reihe sind alle 16-Bit Timer/ Counter mit sehr umfangreichen Input Capture und PWM (Pulse Width Modulation) Modulen, mit deren Hilfe man zum Beispiel ein hochauflösendes und sehr schnelles PWM Signal erzeugen kann. Zum Beispiel kann mit Hilfe einer High resolution Einheit die Auflösung, bzw. die Geschwindigkeit des Moduls um Faktor 4 gesteigert werden. Dies ermöglicht, dass trotz des internen Taktes von 32MHz ein 128MHz Taktsignal am Eingang der Timer/ Counter-Module zur Erzeugung von verschiedenen Signalen zur Verfügung stehen.

Features

  • 16 bit Auflösung
  • verschiedenste Betriebs Modi
  • High Resolution Modus mit bis zu 128MHz
  • AWEX Modul
  • Dead-time insertion

AWEX Modul

  • xmega_timer_awex
Einige Ports an den Xmegas besitzen Erweiterungsmodule, die für Anwendungen im Bereich der Motor- und Leistungssteuerung, wie zum Beispiel zur Ansteuerung von Brushlessmotoren, Umrichtern und Schaltwandlern sehr nützlich sind. Dieses sogenannte Advanced Waveform Extension Modul (AWeX) ist eine Sammlung von Timer / Counter-Erweiterungen, die in der Regel in der Kfz- und Leistungsregelung verwendet werden. Wenn man die AWeX Erweiterung verwendet, werden die PWM-Ausgänge des Timer/ Counter-Moduls zusätzlich durch das AWeX-Modul geleitet , um hier nochmal zusätzlich durch verschiedene Logikbausteine und Todzeittimer bearbeitet zu werden, bevor die Signale an den verschiedenen Pins ausgegeben werden.

  • xmega_timer_deadtime
In vielen Anwendungen, wie beispielsweise der Motorsteuerung verwendet man PWM-Signale um Halbbrücken in verschiedensten Konfigurationen anzusteuern. Bei der Verwendung von herkömmlichen Controllern benötigt man für die Ansteuerung von Leistngsschaltern spezielle Treiber ICs die aus dem PWM Signal jeweils ein Signal für den High-und den Low-Side-Schalter erzeugen. Weiterhin erzeugt dieser IC beim Umschalten der Halbbrücke eine Totzeit in den Ansteuerungssignalen um Kurzschlüsse zu verhindern.

Mit Hilfe des AWEX Moduls der Xmegas wird dieser externe IC nicht mehr benötigt, da dieses Modul, pro PWM-Ausgang ein PWMH- und ein invertiertes PWML-Signal erzeugt und man ganz einfach mit Hilfe von Registern die benötigte Todzeit für diese Signale einstellen kann. Natürlich kann man auch weiterhin, neben diesen vielen Einstellungs- möglichkeiten das Tastverhältnis des PWM Signals verändern.

High Resolution Extension

  • xmega_timer_hires
Das weiter oben erwähnte High Resolution Extension (HiRes) Erweiterungsmodul erhöht die Auflösung des PWM Ausgangs um Faktor 4. Intern wird diese viermal höhere Ausgangstaktfrequenz durch eine Kombination des PWM erzeugenden Standard-Timers mit einem hochauflösenden Modul erreicht (Konzept siehe Bild). Die Impulsbreite ist in zwei Teile, tCOARSE und tFINE unterteilt. Die Summe aus diesen, tP ist die gesamte Pulsbreite. Die Timer-Einheit erzeugt die Grobimpuls, während die HiRes-Erweiterung die Grobimpuls auf 0-3 feine Taktzyklen unterteilt.

      • Advanced Waveform eXtensions (AWeX)
        • Dead-time insertion
        • Pattern generation
        • Fault protection
      • High Resolution Extension (HiRes)
        • Increases resolution by 2 bits (4x)

Beispiel

Im Anhang unter Downloads findet Ihr noch ein ausführliches und funktionsfähiges Beispiel zur Konfiguration des ATXmega PWM Moduls. Im Beispiel werden beide Timer des PWM Moduls an Port C für verschiedene PWM Arten verwendet. Timer 1 generiert an den Pins 4 und 5 des Port C einen einfachen PWM wie man ihn auch von den ATmega Controllern kennt. Damit man die ganze Leistung des Moduls sieht wird für die Erzeugung des Timertaktes das "Hi-Res-Bit " (High resolution Extension Bit) gesetzt. Mit Hilfe von diesem Bit wird die Tatfrequenz des Moduls von 32MHz auf 128MHz erhöht, wodurch man einen PWM mit viel höherer Auflösung generieren kann.

Xmega PWM Example
__xxsup0

 

 

Berechnung PWM-Frequenz

Die PWM Frequenz berechnet sich aus der Frequenz des verwendeten Taktsignals (CPU Takt), dem Vorteiler (Prescaler) und der PWM Auflösung. Das Verhältnis ist dabei, je langsamer das Taktsignal und je höher die PWM Auflösung, desto geringer ist die erzeugte PWM Frequenz. Das Gnaze kann durch folgende Formel berechnet werden. Verwendet man bei dem Timer den "High resolution" Modus, so muss man das Taktsignal (CPU Takt) vor der Berecnung nochmal mit 2 multipizieren.

PWM-Frequenz = Systemtakt / (Vorteiler*(Auflösung + 1)

Auflösung (Resolution): 16Bit —> 65536
Systemtakt: 32Mhz
Vorteiler (Prescaler): 4
Rechnung : 32MHz/(4*(65536+1) = 122Hz

Viel Spass beim Testen.

Hinweis:
Das Tutorial wird nach und nach von mir ergänzt. Wenn ihr Fehler in dem Tutorial findet, würde ich mich freuen wenn ihr mir diese mitteilt, damit ich diese korrigieren kann. Wenn jemand eigene Tips, Informationen oder Code-Schnipsel hat kann er mir diese gern zusenden, damit ich sie anschließend in das Tutorial einbinden kann.

Links

 
Atmel Appnote
Atmel Appnote
Xmega PWM

Downloads

Kommentar hinzufügen
  • Keine Kommentare gefunden

Neuste Beiträge

30/08/2016
Es gibt nun endlich ein Update für die Tinyg CNC Controller Hardware und der dazu gehörenden PC Software...
03/09/2015
In den letzten Monaten habe ich lange das CAD Programm und meinen kleinen Ultimaker 3D Drucker gequält....
15/05/2015
Zuerst wurde eine kleine Katze am Computer konstruiert. Der erste Druck mit 0,3mm Schichtstärke war...
06/05/2015
Da beim Ultimaker keine Beleuchtung des Arbeitstisches vorgesehen ist, muss ich mir hier selber eine...