hallo, es soll ein R2R-Netzwerk an einen 8-Bit-Port von einem Atmega328P-PU angeschlossen werden. Wie klein darf R höchstens sein? Wäre ein Wert um 500 Ohm akzeptabel? Dann wäre an jedem der 8 Port-Pins ein Widerstand von 1k angeschlossen (2*R). Vcc ist 5V und alle 8 Port-Pins sollen an demm Netzwerk angeschlossen sein. Die anderen Pins sind Eingangs-Pins, an zweien ist ein 20MHz-Quarz angeschlossen und die restlichen sind unbenutzt. https://de.wikipedia.org/wiki/R2R-Netzwerk
tim schrieb: > ein R2R-Netzwerk an einen 8-Bit-Port > Wäre ein Wert um 500 Ohm akzeptabel? Auf keinen Fall. Die Ausgänge des IC haben ja schon etwa 50Ω. Du kannst dir ja mal ausrechnen, wie stark das dein Signal verzerrt. Ich würde eher Widerstände mit mehr als 10kΩ verwenden.
:
Bearbeitet durch User
tim schrieb: > es soll ein R2R-Netzwerk an einen 8-Bit-Port von einem Atmega328P-PU > angeschlossen werden. Wie klein darf R höchstens sein? Wäre ein Wert um > 500 Ohm akzeptabel? Nein, viel zu klein. So etwas ab 10k aufwärts wird's brauchbar.
Natürlich sind die 50 Ohm von oben Quatsch. Der typische Wert bei 5 V ist kleiner 30 Ohm (siehe Datenblatt). Zur Frage: Alles mal durchrechnen oder "Versuch macht kluch". Was willst Du genau machen?
R2R reicht mit 1% Widerständen gerademal knapp für 7 Bit (0,1% für 10 Bit). Einfacher und genauer ist daher PWM mit Tiefpaß. Eine elegante Möglichkeit sind auch geschaltete Kondensatoren. Dazu braucht man nur 2 auf Gleichheit ausgesuchte Kondensatoren und einen 74HC4066. Bis 16 Bit sind damit durchaus erreichbar.
Martin schrieb: > Natürlich sind die 50 Ohm von oben Quatsch. Der typische Wert bei 5 V > ist kleiner 30 Ohm (siehe Datenblatt). Das ist doch sowas von irrelevant, ob das nun 30 oder 50 Ohm sind. In beiden Fällen ist mit R2R mit einem R von 500Ohm nix Vernünftiges und Sinnvolles möglich.
> 2 auf Gleichheit ausgesuchte Kondensatoren
Auf Gleichheit ausgesuchte Widerstaende kann jedes Baummartmultimeter.
Mann braucht halt ein paar mehr.
Aus 100 Widerstaenden von der Rolle, werden so 100 "relative"
Praezisionswiderstaende.
Ansonsten gibt es noch den Shannon-Dekoder. Der hat sicher
einige Nachteile, kann aber von einem Controller mit AD
selbst nachkalibriert werden.
Aus den "good old days" habe ich noch etliche fertige 10kOhm R-2-R netzwerke von ROHM. Besteht daran Interesse?
Mark S. schrieb: > Aus den "good old days" habe ich noch etliche fertige 10kOhm R-2-R > netzwerke von ROHM. Besteht daran Interesse? Eher nicht. Wie peda bereits treffend angemerkt hat, ist PWM der einfachere und bessere Weg.
Hallo, bitte nur mit Impedanzwandler nach dem Filter. Sonst verfälscht die Last das Analogsignal.
:
Bearbeitet durch User
c-hater schrieb: > Mark S. schrieb: >> Aus den "good old days" habe ich noch etliche fertige 10kOhm R-2-R >> netzwerke von ROHM. Besteht daran Interesse? > > Eher nicht. Wie peda bereits treffend angemerkt hat, ist PWM der > einfachere und bessere Weg. Einfacher: ja, besser: nein. Ein aus 30kHz PWM erzeugtes Audiosignal ist um Klassen schlechter als ein 30kHz-8bit-DAC Ausgang.
Mark S. schrieb: > Ein aus 30kHz PWM erzeugtes Audiosignal ist > um Klassen schlechter als ein 30kHz-8bit-DAC Ausgang. Äpfel und Birnen?
Max M. schrieb: > Mark S. schrieb: >> Ein aus 30kHz PWM erzeugtes Audiosignal ist >> um Klassen schlechter als ein 30kHz-8bit-DAC Ausgang. > > Äpfel und Birnen? Sicher. Aber diese beiden wurden nun mal miteinander verglichen. Ich habe mir selbst so einen supersimplen PWM-Generator mit einem Attiny25 als Testgeber bis 16kHz aufgebaut und weiß von daher wie mies dessen Ausgangssignal ist im Vergleich zum 8-bit-DAC - der natürlich mit diesem 8-Beiner nicht realisierbar wäre.
:
Bearbeitet durch User
Peter D. schrieb: > Eine elegante Möglichkeit sind auch geschaltete Kondensatoren. Dazu > braucht man nur 2 auf Gleichheit ausgesuchte Kondensatoren und einen > 74HC4066. Bis 16 Bit sind damit durchaus erreichbar. Interessant. Wie sieht die Schaltung aus?
Als Schalter für die Beine des 500-Ohm-R2R die Ausgänge eines Kontrollers zu verwenden? Schließlich wird von den Ausgängen nur gefordert, Digitalnullen zu erzeugen, die hunderte millivolt haben dürfen. Meist sind die die Ausgänge mit Mosfets besser als das Datenblatt. Und bei 8 bit darf ein Bastler so etwas schon ausprobieren. Wenn er zwei ports nimmt und immer zwei Ausgänge parallel schaltet? Vielleicht klappt das gerade so. Besser wären da die Werte von 10kOhm und 20k Ohm aus der E24-Reihe Sonst sollte man mit den Ausgängen "stärkere" Fets schalten, wie etwa SMD-Mosfets in SOT und dgl. Die haben dann ausreichend niedriges Rds für das R2R-array und bleiben auch bei 500-Ohm Nennwiderstand mit Uds im millivolt-Bereich. ob da aber ein ausreichend schneller DA-Wandler entsteht? Wer weiß? Die Eingangskapazitäten der Einzelfets sind halt relativ groß. Nicht umsonst haben/hatten die DA-ICs mit 8 bit Eingänge für digitale Pegel, die interne Schalter am R2R ansteuern.
Peter D. schrieb: > Eine elegante Möglichkeit sind auch geschaltete Kondensatoren. Dazu > braucht man nur 2 auf Gleichheit ausgesuchte Kondensatoren und einen > 74HC4066. Bis 16 Bit sind damit durchaus erreichbar. Das interessiert mich auch. Wie geht das ?
Vielen Dank für die vielen Antworten, sehr aufschlussreich! Derzeit werden Audiosamples mit ca. 20kHz über PWM ausgegeben und es wird mit einem TP-Filter 10kHz gefiltert, der besteht aus drei relativ großen Induktivitäten. Der Sound ist so weit ok. Jetzt wollte ich mal die Gegenprobe mit dem R2R-Netzwerk machen. Ok, also 10k und 20k und dann ein Impedanzwandler. Und dann wie filtern? Mit einem OP-Amp-TP?
> Und dann wie filtern?
Wenns bei den 20 khz bleibt, lohnt das nicht.
Der OPV soll nur den Impedanzwandler machen, damit der
DA nicht belastet wird.
tim schrieb: > Ok, also 10k und 20k Unclever. Ich würde IRGENDEINEN passenden Wert nehmen, beispielsweise 22k; für "R" werden zwei Widerstände parallelgeschaltet, für "2R" wird nur einer eingelötet. Vorteil: Du brauchst nur GLEICHE Widerstände; der Absolutwert ist ziemlich wurscht. Möglichst geringer Tk ist hilfreich, enge Toleranz (0.1%) schadet nicht. > und dann ein Impedanzwandler. Richtig. > Und dann wie filtern? Mit einem OP-Amp-TP? Ja. Ist am einfachsten. Sallen/Key bietet sich an; das kann man in 3. Ordnung mit einem OPV ausführen. Davor noch der Impedanzwandler, also ist ein Doppel-OPV notwendig.
Moin, Mal mein Senf dazu: Vor zig Jahren habe ich mal ein bisschen mit R2R Netzwerken als "Billig-DAC" experimentiert. Das waren lauter gleichgrosse SMD Widerstaende, wo dann fuer den kleineren R immer 2 parallel geschaltet waren. IO-Ports kamen aus einem Spartan3 FPGA was ein DDS Signal generierte. Quintessenz war damals irrc: Mehr als 5 bit hat kaum mehr was gebracht. Drueber ist alles in Dreckeffekten verpufft... Gruss WK
tim schrieb: > Es soll ein R2R-Netzwerk an einen 8-Bit-Port von einem Atmega328P-PU > angeschlossen werden. Als fertiger Chip wohl eher nicht, weil du die Widerstände anpassen musst. Das gleiche Problem haben wir bei den manuellen Video-DACs auf den FPGA-Eval-PCBs. So oder so, kann man das aber kompensieren: Dergute W. schrieb: > Quintessenz war damals irrc: Mehr als 5 bit > hat kaum mehr was gebracht. Wenn man die Ausgänge des FPGAs latched / gut timed, gibt es nur "Nadeln" mit der 2hN-fachen Frequenz, bei 5 Bits also 32. Das sollte sich einfach filtern lassen. Es kommt dann nur auf die Präzision der Widerstände an. Mit 1%-Widerständen bekommt man sicher eine Güte von 2% hin, was die Nutzung von 6-7 Stufen rechtfertigt. Wenn man eine Kompensation einbaut, also z.B. ein additiv hinzugeschalteter 2. R2R-DAC, der von den Bits so versetzt ist, dass man die Abweichungen korrigieren kann, geht da auch genauer. Im Bild werden 2 Bits genutzt (DAC "B") - und hier ist ein Beispiel eines 32-stufigen DACs aus 5%-Widerständen, das auch unter 1% genau getuned werden kann: http://96khz.org/htm/r2rdac10bit.htm
:
Bearbeitet durch User
Dergute W. schrieb: > Mehr als 5 bit > hat kaum mehr was gebracht. Hier präsentieren zwei Wissenschaftler von der IOWA State, wie man so einen DAC richtig genau bekommt: https://www.researchgate.net/publication/261332632 Das sollte sich einfach realisieren lassen, sage ich mal.
habe derzeit mit fertigen R2R-Netzwerken von ROHM meinen DDS-basierten Tongenerator aufgebaut, wobei ich sogar auf 16bit kaskadiert hatte. Der Klirrfaktor bei 1kHz Sinus lag unter 0,1%, so dass ich 10-12bit Genauigkeit für plausibel halte. Wen das weiter interessiert, ich habe noch einen guten Vorrat dieser R2R-Netzwerke (Nennwert 10kOhm).
Willi schrieb: > Das interessiert mich auch. > Wie geht das ? Anbei mal die Prinzipschaltung. Zu Beginn sind N2, N3 geschlossen, d.h. C1, C2 werden entladen. Dann öffnen N2, N3. Ein 1-Bit schließt nun N1, ein 0-Bit N2, d.h. C1 wird auf oder entladen. Dann öffnen N1, N2. Dann schließt N3 und die Ladung teilt sich zwischen C1, C2 auf, d.h. C1, C2 müssen gleich groß sein. Dann öffnet N3. Dann geht das Spiel für alle Bits weiter. Zum Schluß schließt N4 und lädt den Haltekondensator C3 auf den Endwert auf. Dann öffnet N4 und alles geht wieder los. Die Taktzeiten sind so zu wählen, daß die Kondensatoren genügend umgeladen werden. Die Kondensatoren müssen natürlich NP0 sein, z.B. 10nF.
Peter D. schrieb: > Anbei mal die Prinzipschaltung. Das ist aber eine völlig andere Topologie als ein R2R und auch viel langsamer.
Kai D. schrieb: > Hier präsentieren zwei Wissenschaftler von der IOWA State, wie man so > einen DAC richtig genau bekommt: Nee, sie demonstrieren, wie man ihn genauer bekommen KANN und zwar unter zwei Randbedingungen: a) wenn die Widerstandswerte das hergeben - siehe das statistical achievement diagram, das angibt, mit welchen Verbesserungen man rechnen kann b) wenn streng lineare DACs mit der konventionellen Binärteilung verwendet werden, denn diese werfen ja das unvorhersehbare Streuproblem ja überhaupt erst auf. Beides machen wir ja nicht, sondern orientieren uns an dem worst case der maximalen Abweichung, weil wir wollen den DAC nicht nur statistisch besser machen, sondern ihn für ALLE Anwender ausregeln, auch wenn die ungünstige R-Werte verbaut haben. In der Konsequenz heißt das, dass der Pechpilz, der ungünstige R-Werte hat, auch mit dieser Optimierung auf keinen grünen Zweig kommt, während bei der Kalibierung mit Kompensation alle Nutzer fast dieselbe Qualität erhalten. Was die beiden Herren auch unterschlagen: Reale DACs laborieren an Drifteffekten durch die Widerstandserwärmung unter Belastung und die Geräteerwärmung an sich. Das erfordert ein permanentes Auskalibrieren des DACs im Betrieb. Tut man das aber und hat genug Regelreserve, kriegt man alle DACs genau - im Rahmen der Regelmöglichkeiten. Möglicherweise ist den Herren das nicht aufgefallen, weil sie alles nur theoretisch mit MATLAB untersucht haben. Das kann man natürlich machen, um alle erdenklichen Kombinationen der Realität und der sich ergebenden Verbesserungen einzufangen, aber es gibt in der realen Welt eben noch mehr Effekte. Der Trick, der im paper beschrieben ist, taugt also nur für die, die nicht kalibrieren - und mit standardisierten R2R-Netzwerken arbeiten wollen oder müssen. Da aber dennoch eine Kalibrationsmessung erfolgen muss, kann ich das auch gleich richtig zu Ende denken und bauen und ein paar weitere LSBs reinwerfen. Soweit ich das beurteilen kann, wird das von den Herstellern der R2R-DACs auch nicht verwendet. Alle Systeme die ich kenne, kalibieren in der einen oder anderen Weise das Gesamtsystem. In einem technischen Fall werden solche Flash-DACs z.B. so verwendet, dass alles doppelt vorhanden ist und einer von zweien analog auf den Ausgang geschaltet wird, während der andere nachkalibiert wird.
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.