Integrierte D/A-Wandler Preiswerter DIY-D/A-Wandler mit hybrider Topologie

Ein Gastbeitrag von Prof. Martin Junker 6 min Lesedauer

Der Beitrag stellt eine Idee vor, wie durch die Kombination eines R2R-Netzwerks mit einer PWM ein D/A-Wandler mit 12 Bit aufgebaut werden kann. Durch einfache Korrekturen des Digitalwertes vor der Ausgabe lässt sich dabei die Genauigkeit auf ein der Auflösung angemessenes Maß anheben.

Bild 1: Tiefpassfilter 2. Ordnung zur Glättung einer mittels Timer erzeugten PWM, links passiv, rechts aktiv.(Bild:  Hochschule Mannheim)
Bild 1: Tiefpassfilter 2. Ordnung zur Glättung einer mittels Timer erzeugten PWM, links passiv, rechts aktiv.
(Bild: Hochschule Mannheim)

Integrierte A/D-Wandler findet man bei Mikrocontrollern in allen Preisklassen, während integrierte D/A-Wandler nur in wenigen Derivaten, die am oberen Ende der Preisskala angesiedelt sind, existieren. Allerdings trägt praktisch jeder Mikrocontroller das Potential in sich, mithilfe eines Timers, eine PWM zu erzeugen.

PWM mit Tiefpassfilter

Ein nachgeschalteter Tiefpassfilter entfernt die PWM-Frequenz und ihre Harmonischen und am Aus¬gang steht eine analoge Ausgangsspannung zur Verfügung. In manchen Fällen enthalt das Zielsystem der PWM ein Tiefpassfilter intrinsisch, so dass kein separater Tiefpassfilter benötigt wird. Dies ist z.B. bei der Helligkeitssteuerung von Hintergrundbeleuchtungen der Fall, wo die Trägheit des mensch¬lichen Auges eine Tiefpassfilterung bewirkt.

Bildergalerie
Bildergalerie mit 6 Bildern

Bei der Erzeugung einer PWM begrenzen drei Faktoren die erreichbare Genauigkeit:

  • Die Unsicherheit der Versorgungsspannung des Mikrocontrollers.
  • Die Unsicherheit von High- und Low-Pegeln des Mikrocontroller-Anschlusses, der die PWM ausgibt.
  • Die Welligkeit der Ausgangsspannung durch die rechteckförmige PWM, die durch Tiefpassfilterung nur in Grenzen reduziert werden kann.

Auflösungen von mehr als 8 Bit werden deshalb in der Regel nicht mithilfe einer PWM erzeugt.

R2R-Netzwerk als D/A-Wandler

Eine ebenfalls sehr preiswerte Alternative zur Erzeugung einer PWM ist ein R2R-Netzwerk. In Bild 2 ist der Anschluss eines R2R-Netzwerkes mit einer Auflösung von 8 Bit an den Port eines Mikrocontrollers dargestellt. An einem Ende des Netzwerkes befindet sich der Ausgang und der höchstwertige Eingangs-Px.7. Es folgen sieben weitere Eingänge, bevor am unteren Ende noch ein weiterer Widerstand mit dem Wert 2R herausgeführt ist, der üblicherweise auf Masse gelegt wird.

Aufgrund des hohen Widerstands wird einem R2R-Netzwerk meist ein Operationsverstärker nachge¬schaltet, dessen primäre Aufgabe darin besteht, die erzeugte Spannung mit einem niedrigen Innenwiderstand zur Verfügung zu stellen.

Die Ausgangsspannung hängt gemäß Gleichung 1 von der Versorgungsspannung und dem Wert x, der an dem Port des Mikrocontrollers ausgegeben wird, ab.

(Gleichung 1) (Bild: .)
(Gleichung 1)

Der Wertebereich für x reicht von 0 bis 255.

Die ersten zwei der drei weiter oben genannten Faktoren, die die erreichbare Genauigkeit begrenzen, treffen auch für eine R2R-Netzwerk zu. Hinzu kommt, dass jeder Widerstand des R2R-Netzwerks mit einer gewissen Toleranz behaftet ist und nicht exakt seinem Nominalwert entspricht.

Kombination von R2R-Netzwerk und PWM

Die Idee hinter diesem Artikel besteht darin, ein R2R-Netzwerk mit einer PWM zu kombinieren und so mit sehr geringem Aufwand und niedrigen Kosten einen D/A-Wandler zu erhalten, der eine wesentlich größere Auflösung hat. Untersucht wird hier die Steigerung der Auflösung auf 12 Bit.

Für die praktischen Messungen wird der in Bild 3 gezeigte Aufbau verwendet. Das R2R-Netzwerk 4610x-r2r-103lf, welches in Stückzahlen ab 1000 etwa 0,1 Euro kostet, wird an Port 6 eines MSP430F5529-Mikrocontrollers angeschlossen. Dieser wird mit einer Spannung von 3,3 V versorgt.

Der Anschluss des R2R-Netzwerks, der normalerweise ein 2R-Widerstand mit Masse verbindet, wird von der Masse getrennt und mit Port 2.0 des Mikrocontrollers verbunden. Dieser Anschluss ist dem Capture/Compare-Register TA1CCR1 zugeordnet, so dass hier eine PWM mit dem Gewicht von 1 LSB ausgegeben werden kann, die der Spannung aus dem R2R-Netzwerk überlagert ist. Für den Kondensator C1 wird ein Wert von 100 nF gewählt. Der Impedanzwandler ist mit dem Operationsverstärker NCS21801 aufgebaut. Alle Komponenten für den D/A-Wandler kosten somit zusammen deutlich weniger als 1 Euro.

Messergebnisse für die Kombination

Betrachtet man zunächst nur das R2R-Netzwerk mit einer Auflösung von 8 Bit, so sollten aufgrund der Versorgungsspannung von 3,3 V hiermit 256 verschiedene Spannungen zwischen 0 und 3287,1 mV mit einer Schrittweite von 12,89 mV erzeugt werden können.

(Gleichung 2) (Bild: .)
(Gleichung 2)

mit 0 ≤ x ≤ 255.

Bild 4 zeigt den „Total unadjusted error“, also die Abweichung zwischen der gemessenen und der theoretisch nach Gleichung 2 bestimmten Ausgangsspannung für jeden möglichen Wert von x beim Betrieb des R2R-Netzwerks ohne PWM [Port 2.0 = 0] (siehe Bild 2). Auf der x-Achse sind die digitalen Werte für x aufgetragen. Die linke y-Achse zeigt, wie groß der Fehler der erzeugten Spannungen in mV ist. Auf der rechten y-Achse ist der Fehler auf die Auflösung in LSB bezogen (1 LSB = 12,89 mV).

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Die Auflösung wird nun von 8 auf 12 Bit erhöht, die digitalen Werte reichen also von 0 bis 4095 (212-1). Die höherwertigen 8 Bit werden über das R2R-Netzwerk ausgegeben. Die unteren 4 Bit, mit denen sich Werte zwischen 0 und 15 darstellen lassen, werden dem Capture/Compare-Register TA1CCR1 zugewiesen. TA1CCR0 wird mit dem Wert 15 belegt, so dass eine PWM entsteht, die 16 Taktzyklen umfasst. Durch die Kombination von R2R-Netzwerk und PWM lassen sich 4096 verschiedene Spannungen zwischen 0 und 3299,2 mV mit einer Schrittweite von etwa 0,8 mV erzeugen.

Bild 5 zeigt den sogenannten „Total unadjusted error“, der beim Betrieb des R2R-Netzwerks mit überlagerter PWM, also gemäß Bild 3, entsteht. Die Zuordnung der Achsen entspricht Bild 4.

Vergleicht man Bild 4 und 5 miteinander, so erkennt man in beiden Abbildungen einen nahezu identischen Verlauf. Ein Blick auf die linke y-Achse zeigt, dass der absolute Fehler bei der erzeugten Spannung in beiden Fällen praktisch gleich ist. Der Blick auf die rechte y-Achse zeigt dagegen, dass die auf die Auflösung bezogene Ungenauigkeit um Faktor 16 zunimmt.

Geht es nur darum, eine Spannung zu erzeugen, die sich besonders feingranular verstellen lässt, ohne dass ein vorgegebener absoluter Wert genau getroffen werden muss, kann der hier skizzierte D/A-Wandler ohne weiteres eingesetzt werden.

Steigerung der Genauigkeit

Ist die in den Bildern 4 und 5 gezeigte mögliche Abweichung der Ausgangsspannung von etwa 13 mV inakzeptabel, ann die Genauigkeit der Ausgangsspannung durch Korrektur des digitalen Wertes x vor der Ausgabe erhöht werden.

Dazu ist der Verlauf in Bild 5 zu analysieren. Der Verlauf besteht aus acht gleich großen Abschnitten, die alle näherungsweise linear mit ähnlicher Steigung verlaufen. Diese annähernd konstante Steigung kann als Verstärkungsfehler interpretiert werden. Dass die Spannung der Mikrocontroller-Ausgänge nicht exakt dem Nominalwert der Versorgungsspannung entspricht, ist die Hauptursache für dieses Verhalten.

In jedem Abschnitt, der jeweils 512 x-Werte umfasst, steigt der Fehler um etwa 5 LSB, was knapp 1% entspricht. Wird der x-Wert vor der Ausgabe mit dem Korrekturfaktor k = 0,992 multipliziert, ver¬schwindet dieser Verstärkungsfehler, wie Bild 6 zeigt.

Die acht Abschnitte haben nun einen näherungsweise waagrechten Verlauf, allerdings liegen alle bis auf den ersten Abschnitt zu tief, was durch eine Addition korrigiert werden kann. Wird beispielsweise, falls das höchstwertige Bit des 12-Bit-Ausgabewertes gesetzt ist, der Wert also mindestens 2048 beträgt, zum Ausgabewert 11 addiert, verschieben sich die vier rechten Bereich um 11 LSB nach oben.

Der fünfte Bereich von links in Bild 6 rückt durch diese Addition sehr nah an den Wert 0. Wird für die beiden nächst niederwertigen Stellen ebenfalls eine Korrektur eingefügt (siehe Codeausschnitt, nur online), lässt sich der in Bild 7 gezeigte Verlauf erreichen. Da sich die toleranzbedingten Abweichungen, welche der Grund für die Korrektur sind, individuell von Aufbau zu Aufbau unterscheiden, müssen diese für jeden D/A-Wandler neu bestimmt werden.

Die Unsicherheit der ausgegebenen Spannung beträgt nach dieser Korrektur nur noch etwa 1 mV.

Fazit: Einfacher und preiswerter ADC

Durch Kombination von einem R2R-Netzwerk mit einer PWM kann auf sehr einfache und preiswerte Weise ein D/A-Wandler mit bis zu 12 Bit aufgebaut werden. Die einfachen, hier gezeigten Korrekturmaßnahmen reduzieren den Fehler der Ausgangsspannung auf etwas mehr als 1 mV, was gut zur Auflösung von 0,8 mV passt.

Die Auflösung kann noch weiter gesteigert werden, indem die Auflösung der PWM erhöht wird. So ergibt eine PWM mit 8 Bit eine Gesamtauflösung von 16 Bit. Allerdings kann die Präzision dann nicht mehr durch eine so einfache Korrektur des auszugebenden Wertes an die erhöhte Auflösung angepasst werden. Die Situation ändert sich aber, wenn ein hochauflösender A/D-Wandler mit mindestens 16 Bit zur Verfügung steht und benutzt werden kann, um die erzeugte Spannung zu messen und nachzuführen. (kr)

* Prof. Dr.-Ing. Martin Junker ist an der Fakultät für Elektrotechnik der TH-Mannheim tätig.

(ID:50788719)