Xmega Tutorial

Auf den folgenden Seiten findet Ihr ein kleines Xmega Tutorial zu den Microcontrollern der Familie Xmega von Atmel/Microchip. Das Tutroial ist in der Programmiersprache “C”. Der Aufbau der Xmega Controller-Familie ist anders als bei der kleinere ATmega Familie. Hat man aber das Grundprinzip verstanden, so ist es ganz einfach sich in dem neuem System zurecht zu finden. Alle Ports und Funktionen sind sehr strukturiert und logisch aufgebaut. Weiterhin sind die Namen der Register für Grundfunktionen wie Timer, ADC, Interrupts für jeden Port gleich aufgebaut und unterscheiden sich nur im Buchstaben für den jeweiligen Port.

Neben dem unterschiedlichen Registeraufbau gibt es bei den Xmegas auch noch einen Unterschied in der Programmierung. Bei der Atmega und Attiny Familie wurde die ISP-Schnittstelle verwendet. Indes wird bei den Xmegas ein sogenanntes “Programm and Debug Interface” kurz PDI eingesetzt. Dieses Interface benötigt nur noch zwei Signalleitungen (PDI_CLK und PDI_Data). Die Schnittstelle ist noch relativ neu und wird daher noch nicht von jedem Programmer unterstützt. Wenn ihr euch einen neuen Programmer kauft, so solltet ihr darauf achten, dass dieser acuh wirklich PDI-fähig ist. Problemlos klappt dies mit dem hauseigenen Programmer von Atmel dem “Atmel AVR ISP mkII” oder dem neuerem “Atmel ICE”.

Zur Programmierung der Xmegas empfehle ich die jeweils aktuelle Version vom AVR-Studio (Link zum Download siehe unten), so dass ihr immer mit der aktuellsten Bibliothek arbeitet. Seit der Version 5 basiert die Oberfläche auf dem Microsoft Visual Studio. Diese bietet so einen sehr hohen Komfort für jeden Programmierer. Als Chip verwende ich in meinem Beispielen einen XMega128A3. Da jedoch die Grundfunktionen und Register aller Xmegas untereinander kompatibel sind, sollten die Programme auch auf allen anderen Controllern der Familie laufen.

Inhalt Xmega Tutorial

Allgemein kann man sagen, die Xmega Reihe hat kaum noch Gemeinsamkeiten mit den bisherigen AVR ATmegas, daher ist es nicht möglich Programme, welche für einen ATmega geschrieben wurden, auf einen Xmega ohne große Änderungen zu übernehmen. Das gilt auch für so einfach Programme wie ein LED Lauflicht. Das ist zwar auf den ersten Blick sehr aufwendig, hat aber nach genauerem Hinsehen viele Vorteile mit sich gebracht. Zum einen hat Atmel radikal das Chaos in der Namensgebung der Register beseitigt, aus diesem Grund sind die neuen Xmegas wirklich sehr übersichtlich und verständlich geworden. Das bedeutet, dass auch die Namensgebung der Register bei jedem Xmega gleich ist und man nicht auf irgendwelche Ausnahmen Rücksicht nehmen muss. Ein weiterer Grund für diesen großen Bruch sind die vielen neuen Funktionen der Xmegas die unbedingt eine neue Struktur erforderten.

Hardware

Die ersten Tests mit den Xmegas habe ich mit dem XmegaStick von Tim Hotfilter gemacht. Die Boards bieten viele verschiedene Features, wie zum Beispiel Ethernet, SD Karte, USB, RS232 und viele IO-Ports für die eigene Ideen. … somit der Ideale Einstieg in die Welt der Mikrocontroller.

Zukunft

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

Was als nächstes?

Was soll ich als nächstes in dem Xmega Tutorial schreiben? Eure Wünsche könnt ihr weiter unten als Kommentar äußern, alle Meinungen werden berücksichtigt.

Links
AVR Xmega

Datenblatt Xmega
AVR Xmega Support
AVR Studio
Atmel AVR XMEGA AU Manual
ATxmega AU3 Family Complete