Allgemeines zum DAC
externer DAC-Schaltkreis mit seriellem
Anschluss
DAC mit
binärgestuftem Widerstandsnetzwerk
DAC
mit R/2R-Netzwerk
DAC
mit PWM
externer DAC-Schaltkreis mit seriellem Anschluss
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. |
DAC
mit
binärgestuftem Widerstandsnetzwerk
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. |
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.
|
|
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. |
|
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. |
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. |