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 :-(
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.
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 :-/
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
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
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.
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.
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
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
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.
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
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?
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...
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.