Bei einem Spannungsteiler mit R1 und R2 bestehend aus Parallelschaltung
von N Widerständen mit Schließern an Masse - wie sind die
Widerstandswerte zu wählen, so dass die Ausgangsspannungen gleichmäßig
abgestuft, oder anders gesagt, möglichst weit voneinander entfernt sind?
Mit 2 Tastern und Widerständen ergeben sich 4 Kombinationen, bei einer
Eingangsspannung von "1" und R1=1 sollen die Ausgangsspannungen
beispielsweise 1, 0,75, 0,5, 0,25 sein.
- 1.00 = 1*inf
A 0.75 = 1*(1/(1/R2a))/(1+1/(1/R2a)),
B 0.50 = 1*(1/(1/R2b))/(1+1/(1/R2b)),
A+B 0.25 = 1*(1/(1/R2a+1/R2b))/(1+1/(1/R2a+1/R2b))
Wie findet man dafür eine möglichst gute Lösung?
Für einen R2R-DAC müssen die Bits leider push-pull sein, mit Schließer
geht es nicht.
Anonymer Bastler schrieb:> Bei einem Spannungsteiler mit R1 und R2 bestehend aus Parallelschaltung> von N Widerständen mit Schließern an Masse - wie sind die> Widerstandswerte zu wählen, so dass die Ausgangsspannungen gleichmäßig> abgestuft, oder anders gesagt, möglichst weit voneinander entfernt sind?
Das kommt auf deine Schaltung an, d.h. wo deine Widerstände parallel
geschaltet werden sollen und wo die Schließer liegen sollen (Shunt oder
on/off)?
Stelle die Gleichung auf und rechne dir die Werte aus
Anonymer Bastler schrieb:> Für einen R2R-DAC müssen die Bits leider push-pull sein, mit Schließer> geht es nicht.
Ich würde den Schaltern einen niederohmigen Pullup verpassen und dann
den Spannungsteiler "verhältnismäßig hochohmig" auslegen. Der Wandler
wird ja nicht viel mehr als 4 Bit haben, da kommt man dann mit 1k Pullup
und 100k in der R2R Kette schon hin... ;-)
Das geht nicht, eine Parallelschaltung addiert die Leitwerte. Ein
Spannungsteiler wird daher immer nichtlinear teilen.
Anonymer Bastler schrieb:> Für einen R2R-DAC müssen die Bits leider push-pull sein, mit Schließer> geht es nicht.
Einfach Pullups an die Schließer und einen Treiber dahinter, z.B.
74HC541.
Lothar M. schrieb:> Anonymer Bastler schrieb:>> Für einen R2R-DAC müssen die Bits leider push-pull sein, mit Schließer>> geht es nicht.> Ich würde den Schaltern einen niederohmigen Pullup verpassen und dann> den Spannungsteiler "verhältnismäßig hochohmig" auslegen. Der Wandler> wird ja nicht viel mehr als 4 Bit haben, da kommt man dann mit 1k Pullup> und 100k in der R2R Kette schon hin... ;-)
Ich würde die (1/2/4/8 gewichtete) Widerstände gegen eine Referenz
schalten, und in einen I/U-Wandler speissen lassen.
Alois R. schrieb:> Ich würde die (1/2/4/8 gewichtete) Widerstände gegen> eine Referenz schalten,
Man kann die Widerstände auch gegen Masse schalten, wenn
man den anderen Eingang des I/U-Wandlers mit der Referenz
verbindet. Erfordert ggf. noch einen zweiten OPV, um den
Offset zu eliminieren.
> und in einen I/U-Wandler speissen lassen.
Genau.
Peter D. schrieb:> Das geht nicht, eine Parallelschaltung addiert die Leitwerte. Ein> Spannungsteiler wird daher immer nichtlinear teilen.
Oh, ja.
Lothar M. schrieb:> Ich würde den Schaltern einen niederohmigen Pullup verpassen und dann> den Spannungsteiler "verhältnismäßig hochohmig" auslegen.
Das könnte funktionieren. Braucht allerdings 3*N Widerstände.
Alois R. schrieb:> Ich würde die (1/2/4/8 gewichtete) Widerstände gegen eine Referenz> schalten, und in einen I/U-Wandler speissen lassen.
Das ist dann ja schon ein "richtiger" DAC.
Danke für die Hilfe!
Anonymer Bastler schrieb:> Wie findet man dafür eine möglichst gute Lösung?
Falls dich die digitale Transformation schon erreicht hat, überlässt du
die Lösungsfindung am besten dem Computer. Es handelt sich hier um ein
Optimierungsproblem, wofür es fertig implementierte Algorithmen in
großer Auswahl bspw. in SciPy, Octave und Matlab gibt.
Du wirst aber feststellen, dass selbst mit der optimalen Dimensionierung
der Widerstände die Ausgangsspannungen für die verschiedenen
Tastenkombinationen sehr ungleichmäßig verteilt sind. Deswegen sind
andere Schaltungskonzepte, wie sie hier vorgeschlagen wurden, die
bessere Wahl, auch sie ein paar zusätzliche Bauteile benötigen.
Anonymer Bastler schrieb:> Alois R. schrieb:>> Ich würde die (1/2/4/8 gewichtete) Widerstände gegen eine Referenz>> schalten, und in einen I/U-Wandler speissen lassen.>> Das ist dann ja schon ein "richtiger" DAC.
Du summierst bei einen DAC gewichtetet Ströme. Streng funktioniert das
nur, wenn sich die Spannung am Summationspunkt nicht ändert, der
Innenwiderstand Ri also 0 Ohm beträgt.
Je weiter du von Ri = 0 Ohm abweichst, umso schlechter wird das. Bei
einem 2-bit Wandler (wie in deinem Fall) hat man da etwas an Spielraum.
(R0, R1 über Schalter an Vref, Ri an 0V, Summenpunkt = Ausgang)
Nimmt man Vref = 10V, R0 = 2k (der Widerstand für 2^0) und R1 = 1k (der
Widerstand für 2^1), berechnet man z.B. mit Calc (-> Anlage) die
Ausgangsspannungen zu:
@ Ri = 1k: 0V, 3.33V, 5.00V, 6.00V
@ Ri = 100R: 0V, 476mV, 909mV, 1304mV
@ Ri = 10R: 0V, 49.8mV, 99.0mV, 147.8mV
@ Ri = 1R: 0V, 5.00mV, 9.99mV, 14.98mV
Du kannst mit R0 und R1 spielen - bei Ri im selben Widerstandsbereich
wird das nicht wirklich gut.
Anonymer Bastler schrieb:> Wie findet man dafür eine möglichst gute Lösung?
Was heißt für dich "gut"?
[ ] Geringer Bauteilaufwand
[ ] hohe Linearität (wie groß?)
[ ] hohe Unabhängigkeit von Bauteiltoleranzen
[ ] als integrierte Lösung verfügbar