Forum: Analoge Elektronik und Schaltungstechnik Double-Precision DAC - Problem bei der Berechnung der DAC-Werte bei Spannungsvorgabe


von DACula (Gast)


Lesenswert?

Hallo,

es geht zunächst um z.B. den MCP48FVB22 
http://ww1.microchip.com/downloads/en/DeviceDoc/20005466A.pdf oder jeden 
beliebigen anderen 2x DAC. Im Datenblatt ist auf Seite 65 beschrieben, 
wie man die Ausgangsspannung zweier DAC-Kanäle kombiniert und deren 
Ausgabe errechnet.

Ich stelle mich aber gerade wirklich sehr ungeschickt an, wenn ich 
versuche das Gegenteil zu berechnen um das dann in meinen µC zu 
implementieren. - Ich würde also gerne eine Ausgangsspannung vorgeben, 
und dazu passen die DAC Werte zu erhalten :-/

Irgendwie stehe ich aber auf dem Schlauch :-(

von Schorsch X. (bastelschorsch)


Lesenswert?

Bei der Ungenauigkeit der DA Wandler läßt sich da zwar ein theoretischer 
Wert berechnen, der wird nr leider niemals stimmen können. Bei Änderung 
der "Grob"DA kann mehr als 1 LSB Fehler vorkommen, was bedeutet, dass 
sich nix über die tatsächtlich Ausgangsspannung sagen läßt. Die 
Auflösung läßt sich zwar tatsächlich erhöhen, aber ob es jemand 
gebrauchen kann, steht auf einem ganz anderen Blatt.

von DACula (Gast)


Lesenswert?

Pprinzipiell ist mir das bekannt! Darum habe ich auch noch zum Abgleich 
einen hochauflösenden ADC (24Bit), der den Ausgang gegenprüfen soll. 
Damit, so ist der Plan, will ich dann "Gegensteuern" wenn zwischen 
Vorgabe und Ist-Zustand nicht tolerierbare Abweichungen auftreten 
sollten.
Die Geschwindigkeit ist, falls das zum tragen kommen sollte, auch 
relativ uninteressant. 1-100Hz Ausgabefrequenz sollten locker für meine 
Applikation ausreichen und ggf. langsamer wäre auch kein Problem.

Doch aktuell scheitere ich an der Vorgabe des DACs :-/

von Georg (Gast)


Lesenswert?

DACula schrieb:
> Ich würde also gerne eine Ausgangsspannung vorgeben,
> und dazu passen die DAC Werte zu erhalten

Wo ist das Problem? Du musst doch nur den nächst niedrigeren Wert des 
Hi-DAC bestimmen. Dann kannst du die Differenz von dessen Ausgabe und 
dem gewünschten Wert nehmen um den Wert des Lo-DAC zu bestimmen, aber 
das kannst du auch bleiben lassen, es stimmt ja sowieso nicht, den 
Lo-Wert kannst du dir auch beliebig ausdenken.

Georg

von Georg (Gast)


Lesenswert?

Schorsch X. schrieb:
> Die
> Auflösung läßt sich zwar tatsächlich erhöhen

Auch nicht wirklich - wenn die Ausgabe des ersten DAC nicht monoton ist 
(was sehr wahrscheinlich so ist, bei +-1 LSB Fehler) gibt es Werte, die 
garnicht erreichbar sind. Was nützt dann die Auflösung?

Georg

von DACula (Gast)


Lesenswert?

Ich plane es an mehrfacher Stelle zu benutzen, also ein universales 
DAC-Board.

Einmal brauche ich rund 12Bit, aber sehr genau. Da würde ich mir gerne 
per zweiten Kanal den 1 LSB Fehler relativ genau "wegbügeln" wollen. Das 
wäre auch die Lösung, bei der ein extra 24Bit ADC theoretisch einen 
Abgleich vornehmen sollte.

Und einmal brauche ich rund 18Bit(++) Auflösung. Da würde ich gerne 
diese methode als "Low Cost" benutzen und günstige 12Bit DACs benutzen.

von Pandur S. (jetztnicht)


Lesenswert?

Das geht nicht. Wenn der Grobe nicht die "Reinheit" von 18bit bringt, 
braucht man nichts mehr zu addieren. Denn dann hast du mehrere 
Kombinationen mit demselben Resultat, und daneben Loecher.
Es gibt 18bit DAC zu kaufen glaub ich. Nicht bei Analog Devices fuer 
kleines Geld.
Alternativ mit einem 24Bit ADC sebst bauen. Wobei 20 bit von diesen 24 
Bit grad noch machbar sein werden.

von Georg (Gast)


Lesenswert?

Joggel E. schrieb:
> Wenn der Grobe nicht die "Reinheit" von 18bit bringt,
> braucht man nichts mehr zu addieren

Eben. Und wenn er sie bringt, macht der Hersteller gleich einen 18 bit 
DAC daraus, die nötige Präzision hat er ja schon im Griff.

Diese Pseudomethode wird zwar immer wieder mal vorgeschlagen, aber setzt 
sich nie durch, weil es eben nur Murks ist. Es funktioniert halt nur für 
Leute die absolut nicht rechnen können. Oder für beabsichtigten Betrug 
mit nicht wirklich vorhandener Auflösung.

Georg

von LTC1043 (Gast)


Lesenswert?

DACula schrieb:
> Irgendwie stehe ich aber auf dem Schlauch :-(

Schon gelesen... ?

https://www.analog.com/media/en/technical-documentation/application-notes/an86f.pdf

Thanks to Jim Williams

von DACula (Gast)


Lesenswert?

LTC1043 schrieb im Beitrag #6004493:
> Schon gelesen... ?
>
> 
https://www.analog.com/media/en/technical-documentation/application-notes/an86f.pdf
>
> Thanks to Jim Williams

Das ist doch ähnlich zu meinem Vorhaben, oder? 2x16 Bit = 32Bit -> durch 
Überlappung zu 20Bit verschmolzen...

Dann schaffe ich mit meinen 2x12Bit vielleicht keine 18Bit, aber 16Bit 
sollten ja trotzdem vielleicht drin sein. Damit könnte ich auch noch 
leben - vor allem zu dem günstigen Preis.

von Pandur S. (jetztnicht)


Lesenswert?

Nun ja. die 16 Bit schafft man auch mit nur einem 12 bit. Indem man 
zwischen Bits zeitlich hin und herspringt. Ja, der benoetigte Tiefpass 
mach's etwas langsamer.

Genauso kann mans auch mit einem ADC machen. Lange genug mitteln erhoeht 
die Aufloesung auch, vorausgesetzt es ist etwas Rauschen da.

: Bearbeitet durch User
von Antoni Stolenkov (Gast)


Lesenswert?

DACula schrieb:
> Ich würde also gerne eine Ausgangsspannung vorgeben, und dazu passen die
> DAC Werte zu erhalten

Ja reicht das denn nicht wenn Du das Wort Ausgangsspannung durch das 
Wort Vorgabespannung ersetzt und die Ausgangsspannung zweier DAC-Kanäle 
kombinierst und deren Ausgabe errechnet?

von noname (Gast)


Lesenswert?

Gesetzt der Fall man benötigt einen 20 BIT DAC und versucht das mit 2x 
12 Bit DAC und einen Fehler je DAC von unter 1 LSB zu realisieren, dann 
sind die untersten 8 Bit = (20 - 12 Bit) zunächst nicht valide. Es gibt 
aber eine Überlappung von 4 Bit, also 16 Kombinationen wo theoretisch 
der selbe Wert raus kommen müsste, praktisch das aber nicht tut. Nun 
könnte man sich eine Schaltung vorstellen welche lediglich feststellt 
welche Kombination den größeren Wert und welche den kleinern Wert 
liefert.
z.B. Comparator zwischen Tiefpass gefilterten Signal und direkten 
Signal.
Somit lassen sich die 16 Kombinationen nach Größe sortieren und der 
hoffentlich optimale Mittelwert von 256 Mittelwerten (oberen 8 Bit) 
abspeichern.
Wie monoton oder z.B. Temperatur stabil die Sache ist, müsste man 
probieren.

Mit den pca9685 hätte ich gleich 16x 12 Bit PWM DACs mit denen ich dann 
Spannungsquellen recht präzise schalten müsste. Da 10 Bit = 1024 ca. 1E3 
sind, sind 20 Bit ca. 1/Millionen erforderliche Genauigkeit...

von (Gast)


Lesenswert?

Ein PCA9685 ist kein DAC.

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.