www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Multiplizierende D/A-Wandler


Autor: Sebastian Eckert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, liebe Forennutzer.

Falls mal jemand nichts anderes zu tun hat als eine mehr oder weniger 
dumme Anfängerfrage zu beantworten:
Wenn ich das richtig verstanden habe, ist der Ausgangsstrom eines 
multiplizierenden D/A Wandlers mit Stromausgang, beispielsweise AD7524, 
proportional zur anliegenden Referenzspannung geteilt durch das 
übergebene Datenwort. Könnte man demzufolge...

a) zwei D/A-Wandler kaskadieren um aus 2x 8 Bit 16 Bit Auflüsung zu 
erhalten, ohne wesentlich an Genauigkeit zu verlieren (gegenüber einem 
16-bit D/A)?
b) ein solches Bauteil statt einem digitalen Potentiometer zur 
Lautstärkeregelung in Audioanwendungen benutzen, indem man das NF-Signal 
als Referenzspannung einspeist?

Danke im Voraus für sinnvolle Antworten, auch wenn diese momentan eher 
dem allgemeinen Verständnis dienen anstatt einem konkreten Projekt.

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a)Nein, man kann die nicht kaskadieren, da die Werte dann nicht mehr 
knotinuierlich waeren. Dies, da das Ausgangssignal eines 12bit wandlers 
nicht 16bit genau ist.
b)Nein, ein multiplizierender DAC hat nicht unendlich Bandbreite. Vor 
allem bevorzugt man fuer Audi eine log-skala und die bringt ein 12 
bitter oder so nicht.

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hio, Sebastian,

natürlich hast Du Recht, zwei multiplizierende DAC kannst Du in Reihe 
schalten.

Leider multiplizieren sich nicht nur die Teilverhältnisse, sondern auch 
die Fehler.

Schau mal in das Datenblatt des Wandlers, was da über dessen Linearität 
und Genauigkeit der Abstufung gesagt ist, und dann rechne mit dem worst 
case.


Ciao
Wolfgang Horn

Autor: Sebastian Eckert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, gut zu wissen, danke. Aber, Zacc, ich hatte nicht von 12 Bit 
gesprochen, sondern von 8 Bit. Macht das einen Unterschied?

Laut Datenblatt ist beim "KN"-Typ mit 1/4 LSB Linearitätsfehler zu 
rechnen, zzgl. 1 1/4 LSB Gain-Fehler. Das wären dann also 1,5 LSB, bzw. 
2x1,5=2,25 LSB für den Gesamtfehler. Scheint mit bei 16 Bit gar nicht so 
viel zu sein, aber vielleicht unterschätze ich das auch bloß.

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du nimmt den ersten 8 bit, dann einen Adder und addierst einen 256-stel 
des zweiten 8bitters. Dann knn es geschehen, dass die Werte nicht nicht 
kontinuierlich sind, das A+200*B >= A+1

Die DAC sind doch nicht so teuer, dass man sparen muss. Nur schon das 
Layout, den 2. chip auf das Board zu bringen kostet mehr als der 
Mehrpreis.

Autor: Sebastian Eckert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon gut. Analog addieren wollte ich wirklich nicht. Danke.

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man nur den input des einen in den anderen laesst hat man nicht den 
vollen bereich mit der kaskadierten Aufloesung. Eine kleine Addition ist 
nicht Grosses, ein kleiner OpAmp macht das.

Autor: Sebastian Eckert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ich glaube, das mit dem Kaskadieren war ein kleiner Denkfehler von 
mir. Ich bin mir noch nicht ganz sicher, warum, aber ich glaube, 
irgendetwas ist an der Idee falsch gewesen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sebastian Eckert wrote:
> Ja, ich glaube, das mit dem Kaskadieren war ein kleiner Denkfehler von
> mir. Ich bin mir noch nicht ganz sicher, warum, aber ich glaube,
> irgendetwas ist an der Idee falsch gewesen.

Ja.

Wie Zacc sagte, brauchst Du eine gewichtete Addition.

Und eine Addition macht aber was völlig anders als eine Multiplikation.


Peter

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann immer noch multiplizieren. Seien A, der erste Wandler und B der 
Zweite. Der Erste macht OutA:=Ref*highbyte(value), der zweite wird mit 
1/256 der ersten Referenz versehen und macht daher 
outB:=Ref*lowbyte(value)/256, und beide addiert machen 
out:=Ref*(highbyte(value)+lowbyte(value)/256).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.