Bei zwei DACs, von denen einer an D0-D7 und der andere an D8-D15 gesendet wird, sollte eine Stromversorgung von 5 V zu einem 16-Bit-DAC führen, wenn 5 V zum Ausgang des zweiten DAC addiert werden und dann die beiden DAC-Ausgänge summiert werden bestehend aus zwei 8-Bit-DACs.
Das einzige Problem ist, dass, wenn der zweite DAC einen 0x00-Eingang hat, die 5-V-Addition gelöscht werden muss, was ich nicht sicher bin, wie es zu tun ist. Die Summierung kann durch Summierverstärker erfolgen. Die Schaltung muss nur bis zu einigen 10 kHz arbeiten.
Stimmt etwas grundlegend mit dieser Idee nicht?
operational-amplifier
dac
summing
quantum231
quelle
quelle
Antworten:
Es ist möglich, aber es wird nicht gut funktionieren.
Erstens besteht das Problem, die beiden Ausgänge zu kombinieren, wobei einer genau 1/256 des anderen skaliert ist. (Ob Sie eine um 1/256 dämpfen, die andere um 256 verstärken oder eine andere Anordnung, zum Beispiel * 16 und / 16, spielt keine Rolle).
Das große Problem ist jedoch, dass ein 8-Bit-DAC wahrscheinlich eine Genauigkeit von etwas besser als 8 Bit aufweist: Er kann eine "DNL" -Spezifikation von 1/4 LSB und eine "INL" -Spezifikation von 1 / 2LSB aufweisen. Dies sind die "Differential" - und "Integral" -Nichtlinearitätsspezifikationen und sind ein Maß dafür, wie groß jeder Schritt zwischen benachbarten Codes tatsächlich ist. (DNL bietet eine Garantie zwischen zwei benachbarten Codes, INL zwischen zwei beliebigen Codes über den gesamten Bereich des DAC).
Im Idealfall entspricht jeder Schritt genau 1/256 des Skalenendwerts. Eine 1 / 4LSB-DNL-Spezifikation gibt jedoch an, dass benachbarte Schritte um 25% vom Ideal abweichen können - dies ist normalerweise in einem DAC akzeptabel.
Das Problem ist, dass ein 0,25-LSB-Fehler in Ihrem MSB-DAC einen 64-LSB-Fehler (1/4 des gesamten Bereichs) in Ihrem LSB-DAC verursacht!
Mit anderen Worten, Ihr 16-Bit-DAC weist die Linearität und Verzerrung eines 10-Bit-DAC auf, was für die meisten Anwendungen eines 16-Bit-DAC nicht akzeptabel ist.
Wenn Sie nun einen 8-Bit-DAC finden, der eine 16-Bit-Genauigkeit garantiert (INL und DNL besser als 1/256 LSB), dann machen Sie weiter: Sie sind jedoch nicht wirtschaftlich, und der einzige Weg, um einen zu erhalten, ist der Start mit einem 16-Bit-DAC!
Eine andere Antwort lautet "Software-Kompensation" ... um die genauen Fehler in Ihrem MSB-DAC zu ermitteln und zu kompensieren, indem Sie den inversen Fehler zum LSB-DAC hinzufügen. ..
Kurz gesagt, es kann bis zu einem gewissen Grad zum Funktionieren gebracht werden, aber wenn der 8-Bit-DAC mit der Temperatur oder dem Alter abweicht (er wurde wahrscheinlich nicht als ultra-stabil ausgelegt), ist die Kompensation nicht mehr genau genug, um den Wert zu erreichen Komplexität und Aufwand.
quelle
Beachten Sie, wie sich das multipliziert, es ist keine Addition (wie es passieren würde, wenn Sie die Ausgänge von zwei 8-Bit-DACs summieren).
Wenn ich zwei 8-Bit-DACs nehmen und ihre Ausgaben summieren würde, welche Werte sind möglich?
Antwort: 0, 1, 2, ..., 256, 257, 258, ... 511, 512 und das war's!
Ein 16-Bit-DAC kann 0,1,2 ..., 65535, 65536, das ist viel mehr!
Theoretisch ist es möglich, aber dann müssen Sie den Ausgang eines der 8-Bit-DACs mit genau 256 multiplizieren und die LSB-Bits mit dem 1x-DAC und die MSB-Bits mit dem 256x-DAC verbinden. Aber wundern Sie sich nicht, wenn Genauigkeit und Linearität darunter leiden!
quelle
Die Technik ist praktikabel, wenn die Spannung im Vollbereich des "inneren" DAC größer als die Schrittgröße des äußeren DAC ist und man die Möglichkeit hat, die durch verschiedene Ausgangscodes erzeugten Ausgangsspannungen genau (wenn auch nicht unbedingt schnell) zu messen und anzuwenden geeignete Linearitätseinstellungen in der Software. Wenn die Spannung im vollen Bereich des inneren DAC unter der ungünstigsten Schrittgröße zwischen zwei Spannungen am äußeren DAC liegt (wobei zu berücksichtigen ist, dass die Schritte selten absolut gleichmäßig sind), kann es zu Spannungen kommen, die mit keinem erzielt werden können Kombination von inneren und äußeren DAC-Werten. Wenn man jedoch sicherstellt, dass die Bereiche überlappen, kann die Verwendung der Software-Linearitätskorrektur gute Ergebnisse ermöglichen.
Übrigens emuliert das alte Cypress-PSOC-Chip-Design (ich kenne keine neueren) einen 9-Bit-DAC mit zwei 6-Bit-DACs, die relativ zueinander skaliert sind. Es wird keine Software-Linearitätskorrektur verwendet, sondern nur versucht, einem 6-Bit-DAC eine Genauigkeit von drei Bit hinzuzufügen. Der Versuch, einem DAC mehr als 3-4 Bit Präzision zu verleihen, ohne die Software-Kompensation zu verwenden, funktioniert wahrscheinlich nicht sehr gut.
quelle
Als ich vor 21 Jahren ein schlechter College-Student war (und mir nur 8-Bit-DACs leisten konnte), habe ich diese Technik verwendet, um zwei 8-Bit-DACs zu einem höheren Bit-DAC zu kombinieren, da ich wusste, dass ich keine 16-Bit-Genauigkeit erhalten würde der integralen Nichtlinearität (INL) und der differentiellen Nichtlinearität (DNL). DNL auf dem DAC mit dem höchsten Stellenwert ist in diesem Fall der Killer. Wenn Sie INL haben, ist die Ausgabe verzerrt, aber immer noch glatt. DNL gibt die Größe von einem DAC-Schritt zum nächsten vor. Wenn diese ausreichend variiert, werden beim Überschreiten von 8-Bit-Grenzen Diskontinuitäten oder Umkehrungen angezeigt: 0x07ff <-> 0x0800, da sich der MSB-DAC von 0x07 <-> ändert 0x08, es ändert sich möglicherweise nicht durch die idealen 256 Zählwerte des LSB-DAC, sondern durch 384 Zählwerte oder 128 Zählwerte (± 1/2 seines eigenen niedrigstwertigen Bits). Ein guter DAC hat nur 1/2 LSB DNL, ein mittelmäßiger DAC hat eine schlechtere DNL. Je höher die Auflösung, desto schwieriger wird es. Daher sollte es ziemlich einfach sein, 1/2 LSB DNL in einem 8-Bit-DAC zu finden, nicht jedoch in einem 16-Bit-DAC.
Ich erinnere mich nicht, wie hoch die effektive Auflösung in meinem Fall war, vielleicht 12 oder 13 Bit, und ich musste die Verstärkung der 2. Stufe manuell mit einem Potentiometer einstellen.
quelle
Ich habe dies in der Praxis an einem HPLC-UV-Detektor gesehen, um den Dynamikbereich zu erhöhen. Einer der DACs ist um den benötigten Betrag versetzt. Sagen wir, der 1. DAC handhabt 0 bis 10 V und der 2. handhabt 10 bis 20 Volt.
quelle
Es ist möglich und es wurde bereits getan. Diese hervorragende Implementierung finden Sie unter EDN.com http://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC
quelle
Ich habe eine andere Sichtweise ... Verwenden Sie einfach einen 8-Bit-DAC. Sie haben erwähnt, dass es nur bis zu einigen 10 Hz arbeiten muss, sodass Sie nur einen DAC (der wahrscheinlich bis zu 100 kHz arbeiten kann) verwenden und ihn als Modulator verwenden können. Die Grundidee besteht darin, 256 Zyklen des MSB-Werts zuzüglich des Ein-Bit-Überlauf- / Übertrags-Flags von einem 8-Bit-Akkumulator auszugeben, zu dem das LSB in jedem Zyklus hinzugefügt wird. Sie erhalten nur 254 als maximales MSB aufgrund des zusätzlichen 'Modulationsbits' vom LSB, aber dies verringert die Reichweite nicht wesentlich.
Beispiel: Wenn Sie den Zyklus bei 30 kHz ausführen, wiederholen sich die 256 Zyklen bei 117 Hz, sodass Sie dem Ausgang ein 50-Hz-Tiefpassfilter hinzufügen können, um ein recht gleichmäßiges und genaues Signal zu erhalten, das die von Ihnen gewünschte Rate erreicht.
Die Genauigkeit dieser Methode hängt sehr stark von der Größe der Bitschritte ab, jedoch nicht mehr als bei jeder anderen Methode. Ich habe es in der Vergangenheit zur Referenzspannungserzeugung verwendet und es funktioniert überraschend gut.
quelle