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.
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.
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.
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.
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
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
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.
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.
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)
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
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.
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.
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.
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.
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
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
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.
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.
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.
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.
Abba die da könnendas doch auch mit 24Bits!???? https://www.aquahifi.com/formula.html http://6moons.com/audioreviews2/aqua2/2.html http://6moons.com/audioreviews2/aqua2/open1.jpg
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.
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.
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. :-)
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...
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, ...
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.
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...
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?
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
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.
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.
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.
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.
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.
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.
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 :)
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).
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.