Externer Digital-Analog-Converter (DAC)


zurück zu Input/Output , PIC-Grundlagen , PIC-Prozessoren , Elektronik , Homepage

Allgemeines zum DAC
externer DAC-Schaltkreis mit seriellem Anschluss
DAC mit binärgestuftem Widerstandsnetzwerk
DAC mit R/2R-Netzwerk
DAC mit PWM


Allgemeines zum DAC

Ein DAC ist eine Schaltung, die eine binäre Zahl in eine ihr proportionale Spannung wandelt. Leider hat der PIC keine integrierte DAC-Hardware. (Einige wenige PICs haben einen "Notbehelf".) Aber ein DAC lässt sich mit externer Hardware nachrüsten. Es gibt eine ganze Reihe verschiedener technischer Lösungen, ich beschränke mich auf eine Auswahl, die mir geeignet erscheint.

Wenn es um die präzise Erzeugung genauer Spannungen geht, dann ist ein externer DAC-Schaltkreis die beste Lösung. Die von ihm erzeugte Spannung kann mit einer Referenzspannungsquelle stabilisiert werden und ist somit von der Betriebsspannungsqualität unabhängig. Die Übertragung der binären Zahl zum DAC erfolgt seriell oder parallel. Die serielle Übertragung ist vergleichsweise langsam und begrenzt die Anzahl der Wandlungen pro Sekunde.

Parallele DACs mit Widerstandsnetzwerken sind schnell, billig und haben eine begrenzte Genauigkeit. Ihre Ausgangsspannung ist betriebsspannungsabhängig, weshalb Auflösungen über 8-Bit reine Augenwischerei wären. Solche DACs lassen sich aber schnell zusammenbasteln, und eignen sich auch für die Erzeugung von bis zu einigen 10kHz in einfachen Signalgeneratoren.

Wenn es nicht auf Geschwindigkeit ankommt, und sich die Ansprüche an Genauigkeit in Grenzen halten, dann eignet sich ein minimalistischer DAC mit PWM.

nach oben


externer DAC-Schaltkreis mit seriellem Anschluss

DAC
Es gibt Schaltkreise die einen oder mehrere DACs enthalten, und sich über eine serielle Schnittstelle (z.B. I2C) ansteuern lassen. Die kennt man z.B. aus seinem Computer. Dort wandeln DACs digital erzeugte oder gespeicherte Sounddatenströme in analoge Signale für die Lautsprecher um. Ein typischer Vertreter ist der ALC888 von Realtec, der gleich 10 DACs enthält. Sein digitales Interface ist aber der "HD-Audio-Link", der sich zwar auf jedem modernen Mainboard befindet, aber dem PIC unbekannt ist.

Für den PIC braucht man also DAC-Schaltkreise mit SPI- oder I2C-Interface, die sich direkt an den PIC anschließen lassen. Ein großer Vorteil vieler solcher Schaltkreise ist, dass ihre Ausgangsspannung mit Hilfe einer Referenzspannungsquelle eingestellt wird, und somit von der oft unsauberen und instabilen Betriebsspannung unabhängig ist. Wer einen qualitativ hochwertigen DAC benötigt, liegt mit so einer Lösung also richtig.

Ein Beispiel ist der LTC1661, der für 4 Euro gleich zwei 10-Bit-DACs mit SPI-Anschluss in einem DIL-8-Gehäuse bietet. Eine Referenzspannungsquelle kann an ihn extern angeschlossen werden.


nach oben


DAC mit binärgestuftem Widerstandsnetzwerk

DAC Wenn man einen billigen schnellen DAC braucht aber keine hohe Auslösung benötigt, dann kann man ein binärgestuftes Widerstandsnetzwerk verwenden.

Das Herzstück ist ein Operationsverstärker (OPV), der als Strom-Spannungs-Wandler dient. Der OPV sieht es als seine Lebensaufgabe an, den Spannungspegel am negativen Eingang identisch zum Spannungspegel am positiven Eingang zu halten. Das tut er mit einer geeigneten Ausgangsspannung, die mit Hilfe des 1-kOhm-Rückkoppelwiderstandes den negativen Eingang auf Vss-Pegel (also Nullpegel) hält.

Die Pins des PIC stören ihn nun, indem sie 5V über Widerstände an den negativen OPV-Eingang legen. Dadurch fließt ein Strom zu diesem OPV-Pin. Der OPV saugt diesen Strom durch den 1kOhm-Widerstand ab, und muss dafür am Ausgang eine negative Spannung erzeugen. Diese Spannung ist proportional zum durch den PIC eingespeisten Strom.
Wird RB3 aktiviert, so fließen 2,5mA zum OPV, die der OPV mit -2
,5V kompensieren kann. Die niederwertigen Bits haben höhere Widerstände zur Erzeugung kleinerer Ströme. Der OPV kompensiert sie mit entsprechend kleinere Spannungen. Durch Bitkombinationen lassen sich nun diverse negative Spannungen erzeugen. Der Spannungswert ist proportional dem Zahlenwert der 4-Bit-Binärzahl an RB3..RB0.

Für jedes zusätzliche Bit benötigt man einen speziell bemessenen Widerstandswert. Außerdem sind die Werte der Widerstände sehr unterschiedlich, was zu stark verschiedenen Strömen aus den PIC-Pins führt. Da stößt man schnell an technische Grenzen. Mehr als 4 Bit sollte man so nicht wandeln.


nach oben


DAC mit R/2R-Netzwerk

DAC Mit einem Leiternetzwerk umgeht man das Problem der binär abgestuften Widerstandsnetzwerke. Auf den ersten Blick ist der Bauteileaufwand zwar größer, aber auf den zweiten Blick erkennt man, dass nur zwei Widerstandswerte für den Aufbau nötig sind.

Es gibt Widerstände mit dem Wert 10k ("R") und Widerstände mit dem doppelten Wert von 20k ("2R"). Deshalb nennt man so ein Netzwerk auch R/2R-Netzwerk.

Ein R/2R-Netzwerk lässt sich um beliebig viele Bits erweitern, indem man weitere R/2R-Widerstandspärchen an die Kette anschließt.

R/2R-Netzwerke gibt es eigentlich auch als Fertigbaugruppen zu kaufen, aber bei den üblichen Verdächtigen  bin ich in letzter Zeit nicht fündig geworden. Wenn man aber eine Tüte Widerstände zu hause liegen hat, baut man sowas schnell selbst. Ich verwende Metallschichtwiderstände mit 1% Toleranz. Im Interesse hoher Genauigkeit verwende ich als "2R"-Widerstand einfach zwei "R"-Widerstände in Reihe. Der genaue Wert von R ist dabei unwichtig. 10 kOhm ist nur eine grobe Orientierung.

DAC Die obigen Schaltungen erzeugen negative Ausgangsspannungen. Nicht nur, dass man die mit einem zweiten OPV erst wieder in positive Spannungen wandeln müsste, sie erfordern auch eine zusätzliche negative Betriebsspannung für den OPV.

Das lässt sich dadurch vermeiden, dass man einen OPV als nichtinvertierenden Spannungsverstärker einsetzt. Der OPV dient nur noch als Impedanzwandler.

Die Spannungen der OPV-Stromversorgung müssen so gewählt werden, dass der OPV auch alle Eingangssignale in Ausgangssignale umsetzen kann. Verwendet man einen rail-to-rail-OPV, dann kann man u.U. auf eine zusätzliche negative Betriebsspannung verzichten, da solche OPVs bis hinab zur negativen Betriebsspannung (in diesem Fall also Vss) arbeiten können. Wenn man aber mit extrem kleinen Spannungen (einige Millivolt) arbeiten möchte, kommt aber auch ein rail-to-rail-OPV in Schwierigkeiten.

Man muss bei "rail-to-rail" darauf achten ob nur die Eingänge (oft) oder auch die Ausgänge (selten) rail-to-rail-Eigenschaften haben.

Der häufig eingesetzte OPV LM353 hat rail-to-rail-Eingänge. Seine maximale Ausgangsspannung liegt aber 1,5V unter der positiven Betriebsspannung. Entweder man betreibt ihn mit 7V, oder man muss das höchstwertige Bit der zu wandelnden binären Zahl immer auf 0 lassen, was natürlich eine verschlechterte Auflösung des DAC zur Folge hat.
DAC Wenn man die DAC-Spannung mit einem Spannungsteiler vor dem OPV verkleinert, kann man einen LM353 mit nur 5V Betriebsspannung einsetzen, ohne an seine Ausgangsspannungsgrenzen zu stoßen. Wie man in der Beispielschaltung sieht, agiert der Spannungsteiler wie ein zusätzliches R/2R-Glied, dessen Bit immer auf 0 liegt.

nach oben


DAC mit PWM

DAC mit PWM
Das PWM-Modul eines PIC erzeugt ein Rechtecksignal mit einstellbarem Tastverhältnis. Leitet man dieses Signal durch ein Tiefpassfilter aus einem Widerstand und einem Kondensator, dann erhält man eine Gleichspannung, deren Wert proportional dem Tastverhältnis ist.

Die Gleichspannung wird dabei immer noch einer kleinen Dreieckspannung verunreinigt sein. Wählt man Widerstand und Kondensator groß genug, dann ist die Amplitude der Dreieckspannung sehr klein. Sie sollte auf jeden Fall kleiner als der Wert des kleinstwertigen Bits sein.
Andererseits sorgen ein großer Widerstand und ein großer Kondensator aber auch dafür, dass die Ausgangsspannung nicht schnell auf eine Änderungen des PWM reagieren kann. So ein DAC ist also langsam, insbesondere wenn er mit vielen Bit Auflösung arbeiten soll.


nach oben

zurück zu Input/Output , PIC-Grundlagen , PIC-Prozessoren , Elektronik , Homepage
Autor: sprut
erstellt: 29.03.2010
letzte Änderung: 24.04.2011