ATtiny26 DAC

Ein Mikrocontroller verfügt in der Regel über ein oder mehrere Analog-Digital-Wandler (ADC), um ein analoges Signal in ein digitales Signal umzuwandeln. Für den umgekehrten Weg, also um ein digitales Signal in ein analoges Signal umzuwandeln, benötigt man einen Digital-Analog-Wandler (DAC). Allerdings verfügen die AVR Mikrocontroller der ATmega und ATtiny Reihe über keine Typen mit eingebautem Digital-Analog-Wandler. Deshalb benötigt man entweder einen separaten DA-Wandler oder man verwendet ein sogenanntes R2R-Netzwerk, mit dem sich ein einfacher DA-Wandler realisieren lässt.

Ein R2R-Netzwerk besteht aus Widerständen mit den Werten R und 2R. Die Widerstände sollten alle eine möglichst geringe Toleranz (<1%) aufweisen, da sich jede Abweichungen von den Widerstandswerten besonders bei den höherwertigen Bits bemerkbar macht. Weiterhin empfiehlt es sich, je nach Anwendung den Ausgangsstrom über einen nachgeschalteten Operationsverstärker zu verstärken.


R2R-Netzwerk mit einer Auflösung von 4 Bit



Rechteck mit 1.000 Hz


Dreieck mit 3,8 kHz

Neben den üblichen Signalformen wie Rechteck, Dreieck oder Sägezahn lässt sich mit dem R2R-Netzwerk auch ein nahezu perfekter Sinus erzeugen. Allerdings ist ein Sinussignal im Gegensatz zu den anderen Signalformen zu komplex, um es in Echtzeit auf dem Mikrocontroller zu berechnen. Deshalb berechnet man die Sinuswerte einfach vorher und legt sie als Wertetabelle im Speicher des Mikrocontrollers ab. Da die Sinusfunktion symmetrisch ist, benötigt man nur eine handvoll Werte und einen einfachen Algorithmus, um mit dem Mikrocontroller ein Sinussignal über das R2R-Netzwerk auszugeben. In meiner unoptimierten Version reicht die Taktfrequenz des Mikrocontrollers von 10 MHz jedoch gerade einmal für ein Sinussignal mit einer Frequenz von 416 Hz. Da es mir hauptsächlich um die prinzipielle Funktionsweise eines R2R-Netzwerkes ging, kann sich das Ergebnis dennoch sehen lassen. Man sollte nicht meinen, dass der Sinus auf dem folgenden Oszillogramm von einer "digitalen" Schaltung erzeugt wurde.



Sinus mit 416 Hz



  • Last modified: 2017/05/20 11:08