Dienstleistungsübersicht:
Mikrocontroller
Dokumentation und Interpretation/Analyse vom ARM XMega und ATMega Quellcode für die Phasenansteuerung über DMA
Für ein technisches Konzept haben wir die Evaluierung von zwei Mikrocontrollern, einem
ATMEGA 16 und einem XMEGA A, übernommen. Zum einen wurden zwei Quellcodes zur Generierung
von Sinussignalen dokumentiert und verglichen, zum anderen wurde die DMA-Steuerung untersucht.
In dem Programmbeispiel ist eine Signalgenerierung mit einem ATMEGA 16 aufgelistet. Die
Generierung setzt die oben angegebene Hardware voraus. Wesentliches Element ist dabei
das Widerstandsnetzwerk. Dieses bildet einen preisgünstigen Digital-Analogwandler.
Die Widerstände sind jeweils 20kOhm und teilen die Spannung an den Ausgängen von Port B
(im Quellbeispiel ist es Port A). Es können max. 256 verschiedene Spannungszustände mit 8 Bit
erzeugt werden (2^8=256). In einer kurzen Assemblerroutine, die über einen Timer-
Interrupt aufgerufen wird, wird die hinterlegte Wertetabelle nacheinander auf dem Port
ausgegeben.
In dem Programmbeispiel des XMEGA A wird das Signal aus 12bit erzeugt. Dies ermöglicht
eine wesentlich höhere Auflösung (2^12=4096). Die Ausgabe erfolgt über interne DA-Wandler.
Die Generierung der Tabelle erfolgt über einen Funktionsaufruf, der die Tabelle erzeugt.
Damit ist es einfach, andere Funktionen zu implementieren. Die Ausgabe der Tabellenwerte
erfolgt über DMA und ist damit mit geringster Belastung der CPU verbunden und sehr präzise
(Stichwort: Zeitäquidistante Ausgabe versus variable Interruptlatenz-Zeiten). Die XMEGA A-
Lösung beansprucht weniger Platinenplatz und ist in jeder Hinsicht der ATMEGA 16-Lösung
überlegen.