Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage zur Toleranz von R2R-Netzwerken


von Bastler (Gast)


Lesenswert?

Ich möchte einen einfachen präzisen Analog-Ausgang nachrüsten und habe 
nur 8 digitale Pins an der Testbaugruppe. Das Einfachste wäre ein 
R2R-DAC mit Widerstandsnetzwerk. Die geforderte Genauigkeit ist aber 
1/1000 bei 1V Ausgang. Die 1V wollte ich mit einem Reihenwiderstand 
machen, den ich einmalig einstelle zum Kalibieren.

Nun habe ich mich nach fertigen Netzwerken umgesehen, finde aber nur 
solche von Burns und anderen mit einer angeblichen Toleranz von 2%. Die 
Linearität für die 8Bit-Versionen wird aber mit 0,5LSB angegeben. Heisst 
das, das die Widerstände untereinander genau genug sind?

Das LSD bei 256 Werten läge ja bei 1/500 = 0,2%, also einem Zehntel. Wie 
passt das zusammen?

Zumindest die hohen Bits in diesem Ladder müssten doch auf 0,1% genau 
sein, damit nicht durch Umschalten von z.B. 00111111 auf 01000000 ein 
Sprung entsteht, der mehr als die 0,5 LSB sind. Woher kommt dann der 
Fehler von 2%?


Kann man eigentlich aus einem anderen Netzwerk ein R2R bauen? Was ich 
gefunden habe, ist allesamt sternförmig verdrahtet.

von DAC Man (Gast)


Lesenswert?

Bastler schrieb:
> Ich möchte einen einfachen präzisen Analog-Ausgang nachrüsten und habe
> nur 8 digitale Pins an der Testbaugruppe.

Mit einem externen DAC bist du sicher genauer und du kannst ihn
mit 3 Pins über SPI ansteuern.

Und das kostet auch nicht die Welt.

von Bastler (Gast)


Lesenswert?

Das habe ich natürlich ins Auge gefasst, aber das scheidet aus. Die 
Baugruppe kann auf diesem Port nur digitale streaming daten ausgeben. 
Schnell, aber nicht mit einem Protokoll zu versehen. Das ist das 
Problem.

Die Schaltung soll so aussehen, dass vor und nach dem R2R jeweils ein 
Trimming R sitzt, der den Offset und die Begrenzung der Schaltung 
regelt.

Spannung von 0,111V bis 0,999V.

Trimmung so:
Beitrag "Re: R2R - Dimensionierung - Spannungsbereich"

+ 3,3V - Poti - R2R - Poti - 0,0V.

Den Potis sind C beigeschaltet, die die HF kompensieren und das 
AC-mässig trimmen und stabilisieren.

von Michael B. (laberkopp)


Lesenswert?

Bastler schrieb:
> Heisst das, das die Widerstände untereinander genau genug sind?

Da du NATÜRLICH nicht das Datenblatt dieser Netzwerke angegeben hast, 
und es sich um speziall für 8 bit DAC Anwendungen geeignete zu handeln 
scheint: Ja (möglicherweise).

ABER: Wie kommst du auf das dünne Brett, daß die Ausgangsspannungen 
deiner 8 digitalen Pins auf 1/1000 genau ist, also exakt 0V und nicht 
mehr als 0.0025V und exakt 5V und nicht weniger als 4.9975V bei den 
Strömen die am R2R zu schalten sind ?

Vergiss dein Widerstandsnetzwerk, kaufe dir ordentliche DACs.

von georg (Gast)


Lesenswert?

Bastler schrieb:
> habe
> nur 8 digitale Pins an der Testbaugruppe. Das Einfachste wäre ein
> R2R-DAC mit Widerstandsnetzwerk. Die geforderte Genauigkeit ist aber
> 1/1000 bei 1V Ausgang

Das ist einfach nur Unsinn. Mit 8 bit erhält man eine Auflösung von 256 
Stufen (und das im Idealfall), nicht 1000. Daran würde auch ein 
R2R-Netzwerk mit ppm-Genauigkeit nichts ändern können.

Georg

von Peter D. (peda)


Lesenswert?

Michael B. schrieb:
> Vergiss dein Widerstandsnetzwerk, kaufe dir ordentliche DACs.

Richtig!

Beim R2R-DAC spielt ja nicht nur die Toleranz der Widerstände rein, 
sondern auch der Widerstand der Treiberschalter.
Der R2R-DAC stammt noch aus der Zeit, wo DACs schwer zu beschaffen und 
sauteuer waren, also bis etwa 1990.

Heutzutage denkt man bei R2R eher an R2R-OPVs (Rail to Rail).

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Bastler schrieb:
> Ich möchte einen einfachen präzisen Analog-Ausgang nachrüsten und habe
> nur 8 digitale Pins an der Testbaugruppe.

Einfach UND präzise?

Ähemm....

Also, für deinen R2R-Diskret-DAC mußt du im Wesentlichen lediglich die 
MSB-Stelle dezent kompensierbar machen, da der Einfluß aller kleineren 
Stellen ja jeweils nur die Hälfte ausmacht. Für 8 Bit geht das durchaus 
zu machen. Und den Innenwiderstand des Treibers kannst du 
vernachlässigen, sofern du ausreichend hochohmig arbeitest. Also z.B. 
11k und 22k. Wichtiger ist, daß die Spannung, an der dein µC hängt, 
ausreichend genau und stabil ist. Das wirkt sich nämlich auf das 
Gesamtergebnis aus.

Nebenbei gesagt, ist sowas sowohl vom Gefummel als auch vom Platz her 
eigentlich nur ne Notlösung. Nimm lieber einen integrerten DAC müber 
SPI, den kannst du recht schnell aktualisieren, das geht wesentlich 
schneller als I2C.

W.S.

von Cyblord -. (cyblord)


Lesenswert?

W.S. schrieb:
> Einfach UND präzise?

Und billig!

von Irgendwer (Gast)


Lesenswert?

Bastler schrieb:
> Die 1V wollte ich mit einem Reihenwiderstand
> machen, den ich einmalig einstelle zum Kalibieren.

Das ganze musst du aber für alle deine 256 möglichen zustände 
durchführen weil sich ja jeweils die Belastung verändert. Oder anders 
gesagt eine einfacher Serienwiderstand kann eigentlich nie eine 
konstante Referenzspanungsquelle sein - diese muss völlig Lastunabhängig 
die Spannung konstant halten.

von Schorsch X. (bastelschorsch)


Lesenswert?

Nimm einfach einen 10 bis 12 Bit DAC, vom dem nur 8 Bit benutzt werden, 
dann kommt die Genaugigkeit dann schon hin. Dürfte einfacher sein, als 
entsprechend genaue Widerstände zu finden (und zu bezahlen)

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Um den Spass nochmehr zu verderben, merk' ich mal an, dass ein R2R 
Netzwerk nicht auf allen seinen Eingangsbits die selbe Last darstellt, 
d.h. die einzelnen Digitalausgaenge werden mit unterschiedlichen Lasten 
belastet, wodurch sicherlich ihre Ausgangsspannung (auf der ja eh' schon 
der ganze "Dreck", der ueblicherweise auf Betriebsspannungen fuer 
Digitalschaltungen ist, ist) auch froehlich vor sich hinwackelt.

Gruss
WK

von Vka (Gast)


Lesenswert?

Bastler schrieb:
> Schnell, aber nicht mit einem Protokoll zu versehen. Das ist das
> Problem.

Wieso nicht? SPI kann man damit sicherlich emulieren. Du musst ja nur 
halbwegs das Timing aus dem Datenblatt einhalten.
Alternativ: Erfinde eine parallele Schnittstelle, z.B. jeweils 4 Bit 
Daten und 4 Steuerleitungen für Nibble 1/2/3/4, Stopbit, Parität. Damit 
schiebst du 16 Bit in einen Controller, der puzzelt alles zusammen und 
schiebt korrekte Daten in einen DAC.

von Bauform B. (bauformb)


Lesenswert?

Es gibt auch DACs mit 8-Bit-Parallel-Schnittstelle und interner 
Referenz. Der AD557 z.B. hat auch noch einen OP als Ausgangstreiber an 
Bord, und das alles in einem DIL-16 Gehäuse.

von Bastler (Gast)


Lesenswert?

W.S. schrieb:
> Nimm lieber einen integrerten DAC müber
> SPI, den kannst du recht schnell aktualisieren, das geht wesentlich
> schneller als I2C.

Ich weiß nicht, wo das Problem beim Lesen ist, aber ich habe schon 
zweimal geschrieben, dass diese Pins nicht beliebig programmierbar sind 
und ich kein DAC-Protokoll reinbekomme. Sonst hätte ich das ja getan.

Es MUSS ein R2R werden und auf 1/1000 genau muss er sein, weil es eben 
nur 256 Stufen sind und die sollen stimmen. Die Widerstände dürfen somit 
nicht ungenauer sein, als der DAC. Sollte eigentlich klar sein.

Es ging mir nur um das Verständnis, warum die Netzwerke nur auf 2% genau 
sein sollen und worauf sich das bezieht.

von Wolfgang (Gast)


Lesenswert?

Bastler schrieb:
> Die Widerstände dürfen somit nicht ungenauer sein, als der DAC. Sollte
> eigentlich klar sein.

Der Absolutwert, und darauf bezieht sich die Toleranzangabe der 
Widerstände, ist für ein R2R-Netzwerk ziemlich egal. Es kommt einzig auf 
das Widerstandsverhältnis an (Matching). Bei diskretem Aufbau kann es 
sogar sinnvoll sein, alles gleiche Widerstände vom selben Gurt zu nehmen 
und die ggf. parallel bzw. in Serie zu schalten.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Bastler schrieb:
> Es MUSS ein R2R werden und auf 1/1000 genau muss er sein, weil es eben
> nur 256 Stufen sind und die sollen stimmen. Die Widerstände dürfen somit
> nicht ungenauer sein, als der DAC. Sollte eigentlich klar sein.

Voellig klar.
Und ist dir derweilen auch klar, dass deine nicht als SPI verwendbaren 
Pins natuerlich auch Impedanzmaessig, Spannungsmaessig, und 
Stoerspannungsmaessig auch auf's 1/1000 genau sein muessen?
Und sind sie das?
Steht im Datenblatt des Chips mit den nicht als SPI verwendbaren Pins, 
dass die bei Low max. auf 1/1000 der Betriebsspannung gehen, egal 
wieviel Strom in sie reinfliesst und umgekehrt die Spannung an den Pins 
weder schwankt noch von Lastverhaeltnissen an Nachbarpins um mehr als 
1/1000 beeinflusst werden, wenn sie auf hi gehen?
Oder steht da eher z.B. sowas wie: Logische "0" geht von 0V...0.3V und 
logische 1 geht von 2.5V..3.3V - also so ein klitzekleines bisschen 
weiter weg als 1/1000?

Gruss
WK

von georg (Gast)


Lesenswert?

Bastler schrieb:
> Es MUSS ein R2R werden und auf 1/1000 genau muss er sein, weil es eben
> nur 256 Stufen sind

Solange dir die Tatsache nicht klar ist, dass 256 nicht das gleiche ist 
wie 1000 dreht sich alles nur im Kreis. Nur zukünftig ohne mich, der 
Kampf gegen absolute Beratungsresistenz ist nichts für mich.

Georg

von J. S. (engineer) Benutzerseite


Lesenswert?

Bei der R2R-Lösung gibt es ja auch noch ein glitch-Problem. Deshalb muss 
da ohnehin ein bisschen Digitales rein. Einfach dranhängen wird 
schwierig.

Ich plädiere auch für einen DAC, z.B. MAX 5187. Kann bis zu 40MHz und 
braucht keine wesentliche Beschaltung außer Takt und chip select. Damit 
kriegst Du auch PCM-Audio bei 40kHz bis etwa 13..14 Bits genau hin. Mit 
PDM auf dem untersten Bit bei 25MHz und einem richtig guten Filter 
kommen sogar fast 24 Bit, braucht aber Linearisierung. Habe ich mal 
aufgebaut, weil auf dem board nur ein grober Video-DAC drauf war. Macht 
aber kein Mensch in der Praxis so :-)

Wenn das nur eine langsame asynchrone Ausgabe sein soll und kein Takt 
existiert, dann einen eigenen OSC mit z.B. 10MHz mit Latch für die Daten 
davor und einen Filter auf 100kHz am Ausgang.

von W.S. (Gast)


Lesenswert?

Bastler schrieb:
> Ich weiß nicht, wo das Problem beim Lesen ist, aber ich habe schon
> zweimal geschrieben, dass diese Pins nicht beliebig programmierbar sind
> und ich kein DAC-Protokoll reinbekomme. Sonst hätte ich das ja getan.

Ich weiß nicht, wieso bei dir das Verstehen nicht klappt. Bei einem 
R2R-netzwerk wirst du ja auch mehrere Pins hi oder lo setzen müssen. Bei 
einer SPI-Schnittstelle mußt du das auch bloß. Da brauchst du GARNICHTS 
dran herumzukonfigurieren.

Also etwa so:
for i:= 0 to 7 do
  Clockbit:= low;
  if Zahl and (1<<i)=high
  then Datenbit:= high
  else Datenbit:= low;
  Clockbit:= high;
das war's sinngemäß schon so etwa. Fehlt noch SSEL zu setzen. Aber das 
überlasse ich dir als Fingerübung.


> Es MUSS ein R2R werden und auf 1/1000 genau muss er sein, weil es eben
> nur 256 Stufen sind und die sollen stimmen. Die Widerstände dürfen somit
> nicht ungenauer sein, als der DAC. Sollte eigentlich klar sein.

Also, wenn du derart beratungsresistent bist, dann hat es keinen 
weiteren Zweck. Nimm irgend ein Netzwerk und miß dir die Widerstände für 
die beiden MSB's aus. Dann entscheide, ob du im Layout dort jeweils 
Platz für einen kleinen R in Reihe oder einen großen R parallel vorsehen 
mußt. Für die restlichen Widerstände kannst du auf solchen Zeck 
verzichten, denn der Einfluß von deren Toleranzen halbiert sich ja mit 
jeder Stelle. Die Widerstände für's LSB können aus der Grabbelkiste 
sein, denn deren Toleranzen sind nebensächlich.

Ein Beispiel:
Bit 7 0.25% (MSB)
Bit 6 0.5%
Bit 5 1%
Bit 4 2%
Bit 3 4%
Bit 2 8%
Bit 1 16%
Bit 0 32% (LSB)

Nochwas:
Wenn jemand sowas liest: "Ich weiß nicht, wo das Problem beim Lesen ist, 
aber ich habe schon zweimal geschrieben..", dann klappt bei fast allen 
die Fensterlade runter. Es ist nicht jeder so geduldig wie ich mit dir 
hier.

W.S.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael B. schrieb:
> Vergiss dein Widerstandsnetzwerk, kaufe dir ordentliche DACs.
So ist es. Da hilft die ganze Schönrechnerei nichts, wenn man von vorn 
herein die Bahnwiderstände der Ausgangs-FET ignoriert.

Aber an diesem Punkt stand jeder schon mal: eine einfache Idee und man 
verspricht sich selbst tolle Ergebnisse. Ein Jahr älter (bei manchen 
auch mehrere) kann man über seine eigene Blauäugigkeit nur lachen...

Wenn ich 8 freie Portpins habe, dann schließe ich dort einen seriellen 
DAC an und lasse mir für die restlichen 5..6 freien Pins was cooles 
einfallen.

von Wolfgang (Gast)


Lesenswert?

Dergute W. schrieb:
> Oder steht da eher z.B. sowas wie: Logische "0" geht von 0V...0.3V und
> logische 1 geht von 2.5V..3.3V - also so ein klitzekleines bisschen
> weiter weg als 1/1000?

Dann guck mal auf die dazu angegebenen Ströme. Die spielen da auch noch 
ein ganz klein wenig mit rein.

von Wudu (Gast)


Lesenswert?


von Bastler (Gast)


Lesenswert?

W.S. schrieb:
> Ich weiß nicht, wieso bei dir das Verstehen nicht klappt. Bei einem
> R2R-netzwerk wirst du ja auch mehrere Pins hi oder lo setzen müssen.
Das ist bereits gelöst. Die Baugruppe sendet 8 Bit Daten in Serie.

> Wenn jemand sowas liest: "Ich weiß nicht, wo das Problem beim Lesen ist,
> aber ich habe schon zweimal geschrieben..", dann klappt bei fast
> allen die Lade runter
Ich ärgere mich einfach darüber, dass alternative Lösungen empfohlen 
wurden, die ich eingangs bereits durchdacht und ausgeschlossen hatte:

Bastler schrieb:
> Das habe ich natürlich ins Auge gefasst, aber das scheidet aus. Die
> Baugruppe kann auf diesem Port nur digitale streaming daten ausgeben.
> Schnell, aber nicht mit einem Protokoll zu versehen. Das ist das
> Problem.

Ich kann diese Daten nicht umfunktionieren. Damit war die Aufgabe klar. 
Dass ich auch lieber I2C-DACs verdrahte, hilft mir hier nicht weiter.

Das R2R-ist also gesetzt.

Es ging mir auch einzig um das Verstehen der Angabe "2%-Toleranz" und 
trotzdem "0,5LSB Fehler". Das ist aus meiner Sicht noch nicht geklärt.

Dass ein DAC nicht genauer sein kann, als das LSB ist trivial und muss 
nicht erörtert werden. Warum aber hat dieses Ladder-R2R geschlagene 2% 
Fehler? Wo bitte kommen die denn her?

Deine Tabelle zeigt doch, wie einfach die genau gemacht werden könnten:

> Ein Beispiel:
> Bit 7 0.25% (MSB)
> Bit 6 0.5%
> Bit 5 1%

Ein R2R zu verkaufen, das zwar 8 Bit hat, aber 2% Fehler hat, ist 
irgendwie unsinnig. Es läuft also aufs Selber bauen hinaus. Die Frage 
wäre noch, ob ich die entsprechend genau kaufen kann, oder selektieren 
muss. Ich nehme an, kaufen und selektieren.

von J. S. (engineer) Benutzerseite


Lesenswert?

Bastler schrieb:
> Das R2R-ist also gesetzt.
Ja und nein, s.u.:

> Warum aber hat dieses Ladder-R2R geschlagene 2%
> Fehler? Wo bitte kommen die denn her?
Ich nehme an, dass sich hochgenaue R2R als Bauteil nicht verkaufen 
lassen, weil die keiner braucht und zu teuer werden. Soweit die Funktion 
als solche benötigt wird, liegen sie ja vor, nämlich eben als DAC! Die 
arbeiten z.T mit solchen Stufen, wobei sie KSQs verwenden, wegen der 
Ströme.
Dann sind die auch genau und erreichen lineares Verhalten, wie 
gewünscht.

R2R aus Einzelwiderständen baut man nur bei Leistungsanwendungen und 
wenn es grob sein darf. Billig-Video aus dem FPGA ist da ein Beispiel. 
Das macht aber nur für 4-5 Bit Sinn, weil eine höhere Genauigkeit mit 
genauen Rs zu teuer wird.

von J. S. (engineer) Benutzerseite


Lesenswert?

W.S. schrieb:
> Bit 7 0.25% (MSB)
Die Abstufung in der Tabelle wäre dann übrigens auch noch zu grob, weil 
die Summe der Beiträge aller 8 Bits zu 0,5% Fehler kumulieren würde und 
das ist mehr, als die 0,4% die die 256 Stufen bringen. Es macht aus 
meiner Sicht keinen Sinn, einen Wandler zu haben, der einen größeren 
Fehler aufwirft, als die Abstufung ermöglicht, es sei denn, man käme an 
die physischen Grenzen des Rauschens. Bei den 32Bit-R2R die im DIY 
Audio-Bereich benutzt werden, hat man diesen Fall. Die hohe Auflösung 
wird dort zum Kalibrieren benötigt.

Meines Erachtens würden für die o.a. 8 Bit sogar 0,05% genaue 
Widerstände benötigt werden, jedenfalls für das oberste Bit. Für den 
Zweck kauft die aber keiner mehr.

Für absolut genaue Wandlung taugt das einfach nicht. Selbst bei 8 Bit 
dürft man nämlich schon ein Temperaturproblem bekommen, weil das höchste 
Bit richtig Leistung verbrät und die Einschaltdauer dann einen Einfluss 
auf dessen Widerstand hat womit sich die Kalibrierung verschiebt. Die 
Lösung dafür ist eine dynamische Temperaturkompensation als 
3D-Kennlinienfeld, welche die Leistung virtuell in Erwärmung umrechnet, 
die Widerstände neu berechnet und die Kalibrierung mathematisch 
nachzieht. Für einen anderen Anwendungsfall habe ich das schon mal 
gemacht. Bei den Randbedingungen hier ginge das nach meinen Berechnungen 
aber trotzdem nur auf einige Dutzend ppm genau, heißt auf Deutsch: Der 
DAC hat eine absolute zeitliche Genauigkeit von nur maximal 13-14 Bit, 
je nachdem, wie oft man das Signal abschaltet und nachkalibiert, was nur 
bei manchen Anwendungen geht.

Bei permanentem Audio gibt es also einen gewissen Kompressoreffekt. Es 
ist natürlich nicht ganz so tragisch, weil die Amplitudenabschwächung 
gering und zudem im Zehntelsekundenbereich geschieht und damit nicht 
wirklich hörbar ist. Trotzdem ist der erzielbare DAC-Wert absolut 
erheblich schlechter, als das, was mit den kalibrierten 
Delta-Sigma-Wandlern machbar ist, welche die Puristen ja meiden wie der 
Teufel das Weihwasser.

Das habe ich auch besagten DIY-Männern schon erklärt mit dem Ergebnis, 
dass mein Beitrag im dortigen Forum gelöscht wurde, was wiederum seinen 
Grund darin hat, dass einer der Foren-Chefs solche DAC-boards vertickt. 
:-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Bastler schrieb:
> Warum aber hat dieses Ladder-R2R geschlagene 2% Fehler? Wo bitte kommen
> die denn her?
Der absolute Fehler des Gesamtwiderstands ist 2%.
Du kannst also statt einem 10k Array mal eines mit 10,2k oder eines mit 
9,98k erwischen.
Und doch kann die Abweichung der Widerstände innerhalb des Arrays 
zueinander deutlich geringer sein.
Aber ich kann noch immer keinen Link auf ein Datenblatt finden, obwohl 
das schon mal angefragt wurde. Deshalb wirst du die Angaben dort selber 
bewerten müssen.

> Ein R2R zu verkaufen, das zwar 8 Bit hat, aber 2% Fehler hat, ist
> irgendwie unsinnig
Wenn du die Fehlermechanismen deiner präferierten Lösung nicht mal 
ansatzweise kennst, wirst du bei der kommenden Umsetzung noch einiges 
lernen...

von Wolfgang (Gast)


Lesenswert?

Bastler schrieb:
> Ein R2R zu verkaufen, das zwar 8 Bit hat, aber 2% Fehler hat, ist
> irgendwie unsinnig.

Liest du auch?

Wolfgang schrieb:
> Der Absolutwert, ...

von 900ss (900ss)


Lesenswert?

Das ist ja schon mehrmals erwähnt worden:

Bastler, auch wenn es keine Erklärung für die 2% ist, die du suchst.
Du möchtest 1000V mit einer Auflösung von 1V messen.

Du brauchst für den AD-Wandler also 1000 Stufen. Richtig?
Mit einem 8 Bit R2R-Wandler erreichst du aber nur 256 Stufen. 1000V / 
256 = 3.91V.

Genauer wirst du nicht. Du erreichst dein Ziel nicht, auch wenn der 
R2R-Wandler einen Fehler von 0% hätte.

von soso... (Gast)


Lesenswert?

http://www.ti.com/lit/ds/symlink/dac0800.pdf

Das ist im Prinzip das gleiche, nur dass es halt ein IC ist und die 
ganzen dummen Probleme des Widerstandsnetzwerks nicht hat.

Kannst du direkt an deine 8 digitalen Ausgänge hängen, Ansteuerung ist 
ident mit deinen Widerständen.

Passt genau der nicht, passt ein anderer. Sowas ist Katalogware.

Eine Sache noch: Wenn du deine Widerstandsfrage beantwortet haben 
willst, dann setz einen Link aufs Datenblatt. Dann schaut man sich das 
an. Ohne Datenblatt, kein Anschauen desselben...

von Dieter W. (dds5)


Lesenswert?

Worin liegt denn bitteschön funktionsmäßig der Unterschied ob ich meine 
8 Signale auf ein R2R-Netzwerk oder einen (mindestens) 8 Bit DAC mit 
parallelen Eingängen gebe?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Dieter W. schrieb:
> Worin liegt denn bitteschön funktionsmäßig der Unterschied ob ich
> meine
> 8 Signale auf ein R2R-Netzwerk oder einen (mindestens) 8 Bit DAC mit
> parallelen Eingängen gebe?

Das Eine kann mit der hier erhofften Genauigkeit funktionieren, das 
Andere eher nicht.
Gaebe es diesen Unterschied nicht, waere kein Hersteller so dusselig und 
wuerde DACs mit parallelen Eingaengen versuchen zu verkaufen.

Gruss
WK

von bla (Gast)


Lesenswert?

Dieter W. schrieb:
> Worin liegt denn bitteschön funktionsmäßig der Unterschied ob ich meine
> 8 Signale auf ein R2R-Netzwerk oder einen (mindestens) 8 Bit DAC mit
> parallelen Eingängen gebe?

Dass sich jemand anders um Linearisierung, Eingangs- und 
Ausgangsimpedanzen und je nach Chip um Referenzen und Puffer gekümmert 
hat, sowie das Verhalten der Schaltung in einem Datenblatt spezifiziert. 
Dadurch musst du das alles nicht mehr machen und bekommst in unserer 
nicht-idealen Welt ein besseres Ausgangssignal als mit händisch 
verglichenen 1%-ern.

von bla (Gast)


Lesenswert?

Dieter W. schrieb:
> Worin liegt denn bitteschön funktionsmäßig der Unterschied ob ich meine
> 8 Signale auf ein R2R-Netzwerk oder einen (mindestens) 8 Bit DAC mit
> parallelen Eingängen gebe?

Aber du hast an sich Recht, idealerweise kommt an beiden Ausgängen 
genau das selbe raus (bei perfekten Widerständen und Treibern), und 
beide Lösungen haben die gleiche Funktion.

von Mark S. (voltwide)


Lesenswert?

Also ich habe mit R2R-Netzwerken durchaus passable Ergebnisse erzielen 
können.  Mit einem Nennwert von 10kOhm sind auch die Bahnwiderstände von 
HC-Buffern noch kein Problem. Die Linearität ist immerhin gut genug 
gewesen um mit einem auf 16bit kaskadierten DDS-Generator bei 1kHz <0,1% 
THD zu erreichen. Habe hier noch ein paar Hundert Stück im 
SIL10-Gehäuse, bei Bedarf melde Dich per PM.

von Bastler (Gast)


Lesenswert?

900ss D. schrieb:
> Bastler, auch wenn es keine Erklärung für die 2% ist, die du suchst.
> Du möchtest 1000V mit einer Auflösung von 1V messen.
Nein, falsch! Ich möchte 0,1% Präzision, damit die 256 Stufen stimmen 
und nicht verschmiert werden.


Dieter W. schrieb:
> Worin liegt denn bitteschön funktionsmäßig der Unterschied ob ich meine
> 8 Signale auf ein R2R-Netzwerk oder einen (mindestens) 8 Bit DAC mit
> parallelen Eingängen gebe?
Er liegt unter anderem darin, dass der Wandler einen Takt benötigt, was 
ich gerne vermeiden möchte.


Jürgen S. schrieb:
> Wenn das nur eine langsame asynchrone Ausgabe sein soll und kein Takt
> existiert, dann einen eigenen OSC mit z.B. 10MHz mit Latch für die Daten
> davor und einen Filter auf 100kHz am Ausgang.
Das kann nicht klappen, weil die Datenrate nicht mit dem Takt des 
Wandlers zusammenspielen und Verzerrungen erzeugen würde.

Ein Wandler kommt nur in Frage, wenn ich an das R2R-Netzwerk direkt dran 
komme.


Mark S. schrieb:
> Also ich habe mit R2R-Netzwerken durchaus passable Ergebnisse erzielen
> können.
Da schau einmal an!
Danke für dein Angebot, ich habe jetzt welche zum Testen bestellt. Die 
2% Exemplarstreuung kriege ich sicher weggetrimmt.

von Dieter W. (dds5)


Lesenswert?

Bastler schrieb:
> ... dass der Wandler einen Takt benötigt ...

Aber nur, wenn man explizit danach sucht.

Nimm halt einen 10 Bit Typ wie z.B. den AD7533, der hat nur das R2R 
Netzwerk und die Analogschalter drin und sonst nix weiter.

von DACsucher (Gast)


Lesenswert?

Mark und Bastler: Jetzt wurde schon mehrfach nach einem Typ oder einem 
Datenblattlink für solche R2R gefragt, bitte beantworten.
Wenn man nicht weiß, wo nach man suchen soll, gestaltet sich die Suche 
schwierig.

von 900ss (900ss)


Lesenswert?

Bastler schrieb:
> Nein, falsch! Ich möchte 0,1% Präzision, damit die 256 Stufen stimmen
> und nicht verschmiert werden.

Klassischer Fall der Verwechslung von Auflösung und Genauigkeit. War 
wohl doch zu früh für mich heute morgen :)

von J. S. (engineer) Benutzerseite


Lesenswert?

Wudu schrieb:
> Abba die da könnendas doch auch mit 24Bits!????
Genau solche und ähnliche Bauten meine ich in meinem Beitrag weiter 
oben, exakt diese!

Die benutzen Korrekturtabellen, um die eingehenden 32Bit (das derzeit 
maximale Audio-Format) auf ihre internen 32 oder 36 Bit zu mappen. Mehr 
Bits müssen es sein, weil sie einerseits die nichtlinearen Rs 
korrigieren müssen, welche bei geringen Fehlern, Lücken im Binärmuster 
erzeugen würden, die sich mit den geringeren Bits nicht ausgleichen 
lassen. Also muss jedes Bit etwas mehr, als 0,5 seines Vorgängers 
beitragen können, was am Ende mehr Bits für die statische Auflösung 
erzwingt. Weniger Bits, als die eingehenden, können es wiederum aber 
auch sein, weil die Digitalelektronik dithern kann und mit mehr, als den 
768kHz tickeln könnte. Man kann also auch mit einem 24 Bit R2R-DAC das 
32 Bit Audio voll übertragen, wenn die Abtastrate stimmt.

Das tun manche, manch andere tun es nicht, je nach Verständnistiefe des 
Entwicklers und inwieweit er die Kapazität von DSD-Datenströmen 
verstanden hat, die meistens die Quelle dessen sind, was zugespielt - 
auch wenn es in einem anderen Format zugespielt wird.

Und je nachdem, wie sehr der eine oder andere verstanden hat, wie 
PCM-Audio aussieht, nämlich ein ab und zu mal angeschaltetes MSB 
oberhalb der -6dBfs-Grenze, kann er auch nachvollziehen, dass die 
Belastung des R2R im Gegensatz zu einem analogen Filter, welches mit DSD 
beschossen wird, eine digitale Signatur aufgebrummt bekommt, welche auch 
nach super guter Filterung immer zu einem gewissen Anteil im 
Audiodatenstrom enthalten sein wird, weil dessen Spektrum nichts mit dem 
des Signals zu tun hat. Die Fehler beim DSD hingegen sind ganzzahlige 
Vielfache der Grundfrequenz des Audiosignals und damit harmonisch und 
viel weniger auffällig.

Die Geschichte ist insofern interessant, als dass das MSB eben mitunter 
mit sehr geringer Pulsbreite und dafür großer Pause pulst, was laut 
Fourier eben einen entsprechend niederfrequenten Anteil birgt, welcher 
sich direkt im Signal abbilden kann, da er im hörbaren Bereich liegt. 
Ein solcher R2R, welcher mit einer entsprechenden Leistung gefahren wird 
(und das muss man aus Störsicherheitsgründen), braucht auch ein 
entsprechendes Analogfilter dahinter und dieses muss tüchtig arbeiten, 
will es gut glätten. Die Leistungen dieser Komponenten haben etliche 
Streuungen zur Folge und außerhalb des R2R, blasen da einfach 36 
digitale Leitungen, deren Werte sich addieren. Die kommen zwar nicht aus 
dem FPGA, weil die schlauen Buben dort noch ein Latch dazwischen kleben, 
aber die Latches müssen ordentlich Strom bringen und hier eben besonders 
das höchste Bit.

Wenn man nun mal die digitalen Bits gedanklich aufaddiert, erhält man 
nicht etwa ein Audiosignal, wie bei DSD oder einem rein analogen 
Verstärker, sondern ein Störsignal mit der Bandbreite bis runter zur 
Periode der Bit-Pausen. Diese Spektren kann man im Audiopfad messen :-)

Ich habe solche Betrachtungen auch für PCM-DACs angestellt, die aber 
haben den Vorteil, dass das Getute im Chip und damit auf 
Kleinsignalebene geschieht. Das gleiche gilt für die Filter im Chip: Die 
sind optimal ausgesteuert und angesteuert. Solche hyperbolischen Filter 
brauchen eine lineare Vorverzerrung, zusätzlich zur nichtlinearen 
Korrektur, damit sie richtig linear arbeiten, was auch nicht jeder der 
Produzenten dieser Gerätschaften verstanden zu haben scheint. Diese 
Mimik extern außerhalb des Chips nachzubilden, ist auch nur auf den 
ersten Blick trivial - dank FPGA: Auch da gibt es ein paar issues! In 
jedem Fall muss man leistungsmäßig auf den Filter drauf und das mit 
parallelen Leitungen und bitte glitchfrei und das gelingt nicht perfekt. 
Im AA-Filter werden dann sowohl reguläre als auch irreguläre Stufen / 
Glitches behandelt, also Rechtecke umgeformt, deren Frequenzen allesamt 
nicht analog dem des Audiodatenstroms sind. Das gibt kräftiges digitales 
Rauschen und stellt den Sinn der 32 Bit DAC infrage.

Ein "normaler" Audio-DAC hat mehrere dieser Probleme nicht - auch in der 
Umbeschaltung und den PCM-Eingängen nicht. Da ist technisch meistens nur 
das S/PDIF ein Problem, das den meisten Geräten per Coax zugeführt wird 
und dann im Gerät umhergeistert, aber das hat signaltechnisch BMC (wie 
Manchester) und damit kaum NF-Anteile. Die heutigen DACs machen ihre 
Sache gut, besonders die Audio-DACs. Will man das toppen, muss man sehr 
gut bauen. Analog wie digital. Es geht, aber es ist teuer und aufwändig. 
Da müssen HF-Trenner rein, HF-Abschirmungen, Symmetrierungen für die 
Treiber und einen ganzen Haufen Zeug, der in den Chips nicht gebraucht 
wird oder drin ist, bis man überhaupt mal dahin kommt, wo der 25,- 
Euro-Delta-Sigma-DAC schon ist. Dann geht es weiter mit präziser, 
linearer und rauscharmer Analogtechnik, wie man sie bei Magnetresonanz- 
oder Elektronenstrahlmikroskoptechnik einsetzt. Und wenn man es dann 
gepackt hat, hebt es das Signal in Regionen, in denen nur noch 
Fledermäuse kleine Unterschiede ausmachen können.

Auch das habe ich sinngemäß im dortigen Forum eingestellt und auch 
dieser Beitrag ist auf wundersame Weise verschwunden. :-)

Egal, es lebe die 32-Bit-Audio-Real-Time-R2R-FPGA-Technik (und ihre 
Käufer).

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Bastler schrieb:
> Das kann nicht klappen, weil die Datenrate nicht mit dem Takt des
> Wandlers zusammenspielen und Verzerrungen erzeugen würde.
Doch, das kann sehr wohl funktionieren, weil der entstehende Jitter 
gemäß der Überabtastung in ein dx/dt umgerechnet werden kann, welches 
sich über 1/dx/dy auf die Amplitude auswirkt. Das sind kleine Rechtecke 
in der Größenordnung des halben LSB. Das ist natürlich erst einmal ein 
scheinbar gewaltiger Fehler, allerdings schon bei Faktor 100 
Überabtastung in einem Spektralbereich den man locker weggefiltert 
kriegt, weil man ohnehin einen AA-Filter braucht, der eine sehr viel 
tiefere GF hat. Entscheidend ist, welche Abtastrate man zur 
Überabtastung hinbekommt. Beim 1-Bit Audio geht es ja auch.

Dieses digitale Rauschen wird auch deshalb nicht so ins Gewicht fallen, 
weil man ohne weitere Behandlung die hier 
Beitrag "Re: Genauigkeit von R2R-Netzwerken" 
erwähnten glitches auf den digitalen Leitungen hat, die direkt und 
ungefiltert in den DAC gehen. Siehe das 3 Bit Beispiel im bild. Das ist 
auch bei Dithering nicht besser. Bei 8 Bit ist das noch viel extremer.

Genau das ist auch ein Grund, warum man sich beim Audio schon in einer 
Frühphase von parallelen DACs dieser Art verabschiedet hat und bei der 
Übertragung auf serielles 1-Bit gesetzt hat. Weniger initiales 
Störspektrum.

von Robert M. (r0bm)


Lesenswert?

Bastler schrieb:
> Dieter W. schrieb:
>> Worin liegt denn bitteschön funktionsmäßig der Unterschied ob ich meine
>> 8 Signale auf ein R2R-Netzwerk oder einen (mindestens) 8 Bit DAC mit
>> parallelen Eingängen gebe?
> Er liegt unter anderem darin, dass der Wandler einen Takt benötigt, was
> ich gerne vermeiden möchte.

Ein Takt wird nicht benötigt. Ein multiplizierender DAC mit Parallelport 
(z.B. MAX4580) arbeitet völlig transparent - 8-Bit gehen rein und 
Spannung kommt raus. Was noch benötigt wird, wäre z.B. eine 1V Referenz 
und ein OPV-Ausgangbuffer um damit 0...1V in 256 Stufen zu generieren. 
Die Linearität über den Temperaturbereich liegt bei +/-0,5LSB. Der DAC 
wird im Spannungsmodus betrieben, d.h. die Referenz kommt an den Ausgang 
und die Ausgangsspannung wird am Referenzanschluß entnommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.