Kaskadierende ADCs für eine höhere Auflösung

11

Angenommen, ich habe ein Paar 12-Bit-ADCs. Ich kann mir vorstellen, dass sie kaskadiert werden können, um eine <= 24-Bit-Ausgabe zu erhalten.

Ich kann mir vorstellen, einfach einen für den positiven Bereich und den anderen für den negativen Bereich zu verwenden, obwohl es im Crossover-Bereich wahrscheinlich zu Verzerrungen kommen wird. (Nehmen wir an, wir können einige Fehlerbits ignorieren oder vielleicht einen dritten ADC platzieren, um den Wert um 0 Volt zu messen).

Eine andere Option, an die ich gedacht hatte, ist die Verwendung eines einzelnen Hochgeschwindigkeits-ADC und das Umschalten der Referenzspannungen, um eine höhere Auflösung bei niedrigerer Geschwindigkeit zu erzielen. Es sollte auch eine Möglichkeit geben, ein realwertiges Ergebnis zu erzielen, indem ein ADC mit fester Referenz verwendet und dann die Arefs des Sekundärwandlers umgeschaltet werden, um einen genaueren Wert dazwischen zu erhalten.

Kommentare und Vorschläge sind willkommen.

Ich gehe davon aus, dass ein Quad-8-Bit- (oder Dual-12-Bit-) Chip weniger teuer ist als ein einzelner 24-Bit-Chip.

Fehlerentwickler
quelle
2
Ja, es ist theoretisch und in 0,01% der realen Fälle möglich, in denen Teile eine "Effektive Anzahl von Bits" haben, die gleich "Datenanzahl von Bits" ist, wobei der Rest der Spezifikationen mit zusätzlichen 5 Größenordnungen Genauigkeit übereinstimmt. Was für 99,99% der Teile nicht gilt.
4
Wenn Sie eine für positive Spannungen und die andere für negative Spannungen verwenden, erhalten Sie nur 13 Bit. Eine Kaskadierung würde einen DAC und einen Verstärker erfordern. Sie konvertieren direkt auf das Signal, schreiben den Wert in den DAC und subtrahieren den DAC-Ausgang vom Eingangssignal. Dann verstärken Sie das Signal um und speisen es in den zweiten ADC ein. 212
Connor Wolf

Antworten:

11

Viele Dinge in Ihrer Frage. Nehmen wir sie also einzeln.

Angenommen, ich habe ein Paar 12-Bit-ADCs. Ich kann mir vorstellen, dass sie kaskadiert werden können, um eine <= 24-Bit-Ausgabe zu erhalten. Ich kann mir vorstellen, einfach einen für den positiven Bereich und den anderen für den negativen Bereich zu verwenden, obwohl es im Crossover-Bereich wahrscheinlich zu Verzerrungen kommen wird. (Nehmen wir an, wir können einige Fehlerbits ignorieren oder vielleicht einen dritten ADC platzieren, um den Wert um 0 Volt zu messen).

Nicht wirklich - Sie würden eine 13-Bit-Auflösung erhalten. Man kann den Betrieb eines 12-Bit-Wandlers als Entscheidung beschreiben, in welcher der Eingangsspannungen von 4096 Bins (2 ^ 12) liegt. Zwei 12-Bit-ADCs ergeben eine Auflösung von 8192 Bins oder 13 Bit.

Eine andere Option, an die ich gedacht hatte, ist die Verwendung eines einzelnen Hochgeschwindigkeits-ADC und das Umschalten der Referenzspannungen, um eine höhere Auflösung bei niedrigerer Geschwindigkeit zu erzielen.

Genau so funktioniert der sukzessive Approximationskonverter . Grundsätzlich wird ein Ein-Bit-Wandler (auch bekannt als Komparator) mit einem Digital-Analog-Wandler verwendet, der eine variierende Referenzspannung gemäß einem sukzessiven Approximationsalgorithmus erzeugt, um eine digitalisierte Abtastung der Spannung zu erhalten. Beachten Sie, dass SAR-Konverter sehr beliebt sind und die meisten ADCs in uC vom Typ SAR sind.

Es sollte auch eine Möglichkeit geben, ein realwertiges Ergebnis zu erzielen, indem ein ADC mit fester Referenz verwendet und dann die Arefs des Sekundärwandlers umgeschaltet werden, um einen genaueren Wert dazwischen zu erhalten.

Tatsächlich ist es der Funktionsweise von Pipeline-ADCs sehr ähnlich . Anstatt jedoch die Referenz des sekundären ADC zu ändern, wird der nach der ersten Stufe verbleibende Restfehler durch den ADC der nächsten Stufe verstärkt und verarbeitet.

Kommentare und Vorschläge sind willkommen. Ich gehe davon aus, dass ein Quad-8-Bit- (oder Dual-12-Bit-) Chip weniger teuer ist als ein einzelner 24-Bit-Chip.

Tatsächlich gibt es einen Grund dafür, dass ein 24-Bit-Konverter nicht so einfach ist, wie in einigen Konfigurationen vier 8-Bit-Konverter anzuordnen. Das ist viel mehr. Ich denke, dass das Hauptmissverständnis hier darin besteht, zu denken, dass man nur die Anzahl der Bits "hinzufügen" kann. Um zu sehen, warum dies falsch ist, ist es besser, sich ADC als eine Schaltung vorzustellen, die entscheidet, zu welcher "bin" -Eingangsspannung gehört. Die Anzahl der Bins entspricht 2 ^ (Anzahl der Bits). Der 8-Bit-Konverter hat also 256 Bins (2 ^ 8). Der 24-Bit-Konverter verfügt über mehr als 16 Millionen Bins (2 ^ 24). Um also die gleiche Anzahl von Bins wie beim 24-Bit-Konverter zu haben, würde man über 65.000 8-Bit-Konverter benötigen (tatsächlich 2 ^ 16).

Um mit der Bin-Analogie fortzufahren, nehmen wir an, dass Ihr ADC die volle Skala von 1 V hat. Dann ist der 8-Bit-Wandler "bin" 1 V / 256 = ~ 3,9 mV. Im Fall des 24-Bit-Wandlers wäre es 1 V / (2 ^ 24) = ~ 59,6 nV. Intuitiv ist klar, dass es schwieriger ist, zu "entscheiden", ob die Spannung zu einem kleineren Behälter gehört. In der Tat ist dies aufgrund von Rauschen und verschiedenen Nichtidealitäten der Schaltung der Fall. Daher würde nicht nur einer über 65.000 8-Bit-Konverter benötigen, um eine 24-Bit-Auflösung zu erhalten, sondern auch diese 8-Bit-Konverter müssten in der Lage sein, in einen Bin mit 24-Bit-Größe aufzulösen (Ihr regulärer 8-Bit-Konverter wäre nicht gut genug kann auf ~ 3,9 mV Bin nicht 59,6 nV Bin auflösen)

Mazurnifizierung
quelle
Der Bereich, in dem ein 8-Bit-Konverter arbeiten würde, beträgt 256 * 59,6 nV = 15,26 uV. Ich habe nie Referenzspannungen so niedrig und präzise gemacht :)
Hans
14

Wenn Sie Ihren Eingangsbereich aufteilen, erhalten Sie 13 Bit, nicht 24. Angenommen, Sie haben einen Eingangsbereich von -4,096 V bis + 4,096 V. Dann hat ein 12-Bit-ADC eine Auflösung von 2 mV: 2 12 x 2 mV = 8,192 V (der Bereich von -4,096 V bis + 4,096 V). Wenn Sie die positive Hälfte nehmen, erhalten Sie dort eine Auflösung von 1 mV, da sich Ihre Reichweite halbiert: 2 12 x 1 mV = 4,096 V. Das sind 2 12 Pegel über 0 V und weitere 2 12 darunter. Zusammen 2 12 + 2 12 = 2 13 , so dass 1 Bit extra, nicht 12.1212121212 1213

Über das Ändern der Referenzspannung. Ich werde ein anderes Beispiel geben. Angenommen, Sie haben einen 1-Bit-ADC und möchten 12 Bit durch Ändern der Referenz erhalten. Ein Bit gibt Ihnen eine 1, wenn der Eingang größer als und sonst eine Null. Angenommen, Ihre Referenz ist 1 V, dann beträgt der Schwellenwert 0,5 V. Wenn Sie Ihre Referenz auf 0,9 V ändern, haben Sie einen neuen Schwellenwert bei 0,45 V, sodass Sie bereits 3 verschiedene Pegel erkennen können. Hey, das mag funktionieren, ich kann 12-Bit mit einem 1-Bit-ADC und dann wahrscheinlich auch 24-Bit mit einem 12-Bit-ADC machen! Halte es! Nicht so schnell! Sie können dies tun, aber die Komponenten Ihres 1-Bit-ADC müssen 12-Bit-Klasse sein. Das ist für die Genauigkeit der Referenz und des Komparators. Ebenso kann ein 12-Bit-ADC 24-Bit ausführen, wenn die Genauigkeit des ADC genau genug ist und die Genauigkeit der variierenden Referenzspannung 24-Bit beträgt. In der Praxis gewinnt man also nicht viel. V.R.E.F.2

Es gibt kein kostenloses Mittagessen.

bearbeiten
Es scheint ein Missverständnis über Überabtasten und die Tatsache zu sein , dass es sind 1-Bit - Audio-ADCs , die Sie 16-Bit - Auflösung geben kann.
Wenn Ihr Eingang ein fester Gleichstrompegel ist, z. B. 0,2 V in einem 1-V-Eingangsbereich, ist auch Ihr Ausgang immer der gleiche. Bei einem 1-Bit-ADC ist dies in unserem Beispiel Null (der Pegel beträgt weniger als die Hälfte der Referenz). Dies ist nun der Fall, unabhängig davon, ob Sie mit 1 Abtastung pro Sekunde oder 1000 Abtastungen abtasten. Die Mittelwertbildung ändert dies also nicht. Warum funktioniert es mit dem Audio-ADC? Weil die Spannung ständig variiert (Rauschen), was laut Einstein (Relativitätstheorie, wissen Sie ;-)) dasselbe ist, wie die Spannung konstant zu halten und die Referenz zu variieren. Und dannWährend des Oversamplings erhalten Sie mehrere unterschiedliche Messwerte, die Sie mitteln können, um eine recht gute Annäherung an Ihr tatsächliches Niveau zu erhalten.
Das Rauschen muss stark genug sein, um die Schwelle (n) des ADC zu überschreiten, und muss bestimmten Einschränkungen wie der Gaußschen Verteilung (weißes Rauschen) entsprechen. Im 1-Bit-Beispiel hat es nicht funktioniert, weil der Geräuschpegel zu niedrig ist.


Weiterführende Literatur:
Atmel Application Note AVR121: Verbesserung der ADC-Auflösung durch Oversampling

stevenvh
quelle
Ich bin mir nicht sicher, ob ich deine Gedanken dazu verstehe. Sicherlich, wenn Sie + und - teilen, können Sie dann bei 0 V bis + 4,096 V bei 12 Bit und 0 V bis -4,096 V bei 12 Bit abtasten, was insgesamt 24 Bit über den gesamten Bereich ergibt?
Majenko
1
@ MattJenkins, es wäre das gleiche wie ein Vorzeichenbit. Denk darüber nach. Wenn ich 0-10 V mit 12 Bit und 0 - (- 10 V) mit 12 Bit abtaste, brauche ich nur ein Bit, um zu sagen, ob das Signal negativ oder positiv war.
Kortuk
Dies gilt - so , obwohl Sie könnte als 24 Bits probieren Sie die exakt gleiche Auflösung mit nur 13 Bit bekommen konnte.
Majenko
8V.2V.=228V.1V.=23
@MattJenkins, Sie könnten 1 Hot-Codierung verwenden und 1024 statt 10 Bit verwenden. Die physische Realität ist, dass der Ingenieur tun kann, was er will. Sagen Sie dem Kunden einfach, dass Sie nur mit 3dB und nicht mit 10 kW abwesend sind.
Kortuk
3

Ja, theoretisch können Sie tun, was Sie wollen, aber nur, wenn Ihnen eine völlig unrealistische Ausrüstung zur Verfügung steht.

Die verschiedenen anderen Kommentare, die bisher zu einer begrenzten zusätzlichen Genauigkeit abgegeben wurden, sind leider richtig.

Erwägen. Messen Sie eine Spannung mit einem 12-Bit-ADC und sagen Sie 111111000010. Sie wissen, dass der tatsächliche Wert irgendwo in einem 1-Bit-Bereich +/- 0,5 Bit auf beiden Seiten dieses Werts liegt.

WENN Ihr ADC auf 24 Bit genau war, aber nur 12 Bit bereitstellte, wird gemeldet, dass der Vaklue innerhalb von +/- einem halben Bit von 111111000010 000000000000 liegt. Wenn dies der Fall wäre, könnten Sie einen 12-Bit-ADC mit einem +/- nehmen. 1/2 Bit-Bereich, zentrieren Sie ihn auf 111111000010000000000000 und lesen Sie das Ergebnis. Dies würde Ihnen die Differenz zwischen dem tatsächlichen Signal und dem aDC-Wert geben, wie gewünscht. QED.

Der 12-Bit-ADC selbst ist jedoch nur auf etwa ein halbes Bit genau. Die Summe seiner verschiedenen Fehler führt dazu, dass ein bestimmtes Ergebnis deklariert wird, wenn das tatsächliche Ergebnis bis zu etwa einem halben, aber unterschiedlichen Plus oder Minus beträgt.

Während Sie möchten

111111000010 bedeutet 111111000010 000000000000

es kann tatsächlich 111111000010 000101101010 oder was auch immer bedeuten.

Wenn Sie dann einen zweiten ADC nehmen und die unteren 12 Bits messen und davon ausgehen, dass sie relativ zu einer exakten 12-Bit-Grenze sind, sind sie tatsächlich relativ zu dem obigen fehlerhaften Wert. Da es sich bei diesem Wert im Wesentlichen um einen zufälligen Fehler handelt, würden Sie Ihre neue 12-Bit-Zahl zu 12 Bit mit im Wesentlichen zufälligem Rauschen hinzufügen. Präzise + zufällig = neuer Zufall.

BEISPIEL

Verwenden Sie zwei Konvektoren, die einen Bereich messen und in 1 von 10 Schritten ein Ergebnis liefern können. Wenn sie auf 100 Volt FS skaliert werden, ergeben sie 0 10 20 30 40 50 60 70 80 90

Bei einer Skalierung auf 10 Volt ergeben sie 1 2 3 4 5 6 7 8 9

Sie entscheiden sich, diese beiden Wandler zu verwenden, um einen 100-Volt-Bereich mit einer Genauigkeit von 1 Volt zu messen.

Wandler 1 gibt 70V zurück. Sie messen dann die Spannung relativ zu 70V und erhalten -3V. Sie schließen also, dass der reale Wert dh + 70V - 3V = 67V ist.

Das 70-V-Ergebnis kann jedoch tatsächlich eines von 65 66 67 68 69 70 71 72 73 74 sein

Nur wenn der 1. Konverter auf 1 V in 100 GENAU ist, obwohl er 10 V-Schritte in 100 V anzeigt, können Sie das erreichen, was Sie wollen.

Ihr reales Ergebnis ist also 67 V +/- 5 Volt = alles von 62 V bis 72 V. Du bist also nicht besser dran als zuvor. Ihr Zentrum ist umgezogen, befindet sich jedoch möglicherweise zufällig.

Auf diese Weise können Sie eine bescheidene Verbesserung erzielen, da ein Konverter normalerweise wahrscheinlich etwas genauer ist als die zurückgegebenen Bits (Sie hoffen), sodass Ihr 2. Konverter dies in gewisser Weise nutzt.


Ein System, das tatsächlich funktioniert, wurde mit einer wichtigen Lücke erwähnt. Wenn Sie ein Signal N-mal abtasten und + / _ ein halbes bisschen Gaußsches Rauschen hinzufügen, verteilen Sie das Signal "über den gesamten möglichen Bereich" und der Durchschnittswert ist jetzt log (N) genauer als zuvor. Dieses Schema hat Angelhaken und Qualifikationen und Sie können nicht nur eine beliebige zusätzliche Anzahl von Bits erhalten, sondern es bietet auch einige Verbesserungen.


Im ersten Fall oben habe ich einen 12-Bit-ADC mit 24-Bit-Genauigkeit erwähnt. Sie können etwas Ähnliches erreichen, indem Sie einen 12-Bit-ADC verwenden und seinen angenommenen Wert mit einem 24-Bit-Delta-Sigma-Wandler lesen. WENN das Signal stabil genug war, dass es im gleichen Ein-Bit-Bereich blieb, können Sie einen zweiten ADC verwenden, um die zweiten 12 Bits für dieses stabile Signal zu lesen.

Alternative - lesen Sie einfach das 24-Bit-Signal zunächst mit Sigma-Delta, sperren Sie diesen Punkt ein und messen Sie dann nacheinander relativ dazu mit dem 2. ADC. Solange das Signal im Bereich des 2. ADC bleibt, erhalten Sie ein viel schnelleres Ergebnis.

Russell McMahon
quelle
Hmmm. Eine Stimme. Eine Abstimmung nach unten. Angesichts dessen, was hier für OK-Antworten gilt [tm] :-) Es würde mich interessieren, wer diese Antwort für so schrecklich hielt, dass es sich lohnt, abzustimmen, und warum?
Russell McMahon
1

Es gibt so etwas wie Supersampling, mit dem die Auflösung vieler ADC-Typen erhöht werden kann.

Es funktioniert, indem dem Signal Rauschen hinzugefügt wird. Obwohl das Rauschen die Auflösung verringert, ist es notwendig, dass sich die Daten über mehrere Bits aufteilen. (Ich bin kein Signalverarbeiter - so verstehe ich das.) Ihr Rauschen kann nur 1 oder 2 Bit betragen, aber es muss vorhanden sein. Wenn Sie ein 12-Bit-Sample nehmen, haben Sie 12 Bit. Wenn Sie dann 4 Samples nehmen, diese addieren und durch zwei teilen, erhalten Sie ein 13-Bit-Sample. (Jedes zusätzliche Bit erfordert aufgrund von Nyquist 4 Abtastwerte.)

Eine einfache Möglichkeit, dies zu tun, besteht darin, der Referenzspannung Rauschen hinzuzufügen. Ich benutze dies, um einen 12-Bit-ADC in einem dsPIC33F auf 16-Bit für eine höhere Auflösung zu erhöhen. Zuvor habe ich einen asynchronen Timer mit hoher Frequenz eingerichtet und mit DMA eine Folge von PRNG-Nummern in die Ausgabeerfassung eingereiht, wodurch eine relativ saubere Rauschquelle entsteht. Der Rauschausgang spannt die Referenzspannung um etwa 0,1% vor (1k-1Meg-Teiler). Das Rauschen ist bidirektional, sinkt und bezieht sich. Ich verwende den DMA des dsPIC33F, um Samples in die Warteschlange zu stellen, damit dies mit wenig CPU-Eingriff möglich ist. Natürlich sinkt die maximale Abtastrate auf etwa 1/32 der normalen Rate, aber dies ist für meine Anwendung kein Problem.

Da das Rauschen nicht immer gleichmäßig verteilt ist, kalibriere ich die Eingänge an jedem ausgelieferten Gerät, obwohl der Unterschied wahrscheinlich nur 1 oder 2 LSB beträgt.

Thomas O.
quelle
Woher wissen Sie, dass das von Ihnen hinzugefügte Rauschen das richtige Spektrum hat (ist weißes Rauschen)? Wie entscheiden Sie sich für die Amplitude? Wenn Ihr Rauschen nicht gut ist, haben Sie eine höhere Auflösung, aber keine höhere Genauigkeit.
Federico Russo
@ Federico Natürlich - für mich ist es Versuch und Irrtum. Weißes Rauschen kann mit einem PRNG simuliert werden und funktioniert für nur 32 Samples gut genug. Wenn ich ein wirklicher Elektronikingenieur wäre, würde ich wissen, wie man es richtig macht.
Thomas O
Hier ist ein Artikel bei Analog Devices, der dies erklären könnte: analog.com/library/analogdialogue/archives/40-02/adc_noise.html
DarenW
@ThomasO, ich habe diese Technik mit Thermistoren verwendet, um 8 Bit Präzision hinzuzufügen. Nicht mit Lärm, wir haben Heizung benutzt.
Kortuk
@DarenW Das kommt mir bekannt vor - ich glaube, hier habe ich meine Idee.
Thomas O
1

Mit dem Summierverstärker können Sie die beiden DAC-Ausgänge summieren . Sie können R1 = 100k, R2 = R3 = 100 Ohm verwenden. Auf diese Weise ist der Ausgang Vout = - (V1 + V2 / 1000). Sie benötigen eine doppelte Versorgung und wenn Sie möchten, dass diese nicht invertiert ist, müssen Sie einen anderen invertierenden Verstärker mit Verstärkung = 1 einsetzen. Nehmen wir also an, Sie haben einen 12-Bit-DAC mit 2 Ausgängen und einer Referenz von 4,096 V. Dann (wenn Sie einen zweiten invertierenden Verstärker haben) erhöht ein Inkrement von DAC 1 die Leistung um 1 uV und ein Inkrement von DAC 2 erhöht die Leistung um 1 mV. Das sind insgesamt keine 24 Bit. Es geht um 22 Bit. Theoretisch können Sie R1 4096-mal größer als R2 und R3 wählen und 24 Bit erhalten, aber Sie werden keine besseren Ergebnisse erzielen. Sie werden viele Rauschprobleme im Mikrovoltbereich haben, selbst wenn Sie einen guten rauscharmen Operationsverstärker wählen.

Update Ich dachte, es ist eine Frage zu DAC, weil ich nach DACs gesucht habe. So wenden Sie ein ähnliches Prinzip bei ADCs an. Anstatt zu summieren, müssen Sie das ADC1-Ergebnis subtrahieren und dann mit 1000 multiplizieren, bevor Sie mit ADC2 messen.

Doppelte ADC-Auflösung

Korrektur - ADC3 sollte auf VGnd (Vref / 2) sein, nicht auf Vref, um der Ergebnisformel zu entsprechen

Anstelle von AZ431 können Sie jede andere 2,5-V-Referenz oder eine andere einstellbare Referenz mit geeigneten Passiven verwenden, um genau 4,096 V zu erhalten. Je weniger Temperaturdrift die Referenz hat, desto besser sind die Ergebnisse. Auch muss es geräuscharm sein. Beachten Sie, dass es wahrscheinlich nicht genau genug ist. Es ist schön, einen 500-Ohm-Multi-Turn-Trimpot zwischen R7 und R8 mit Wischer an den Referenzeingang anzuschließen und ihn genau auf Vref = 4,096 V einzustellen. Außerdem wird ein Trimpot (2) zwischen R1 und R2 mit Wischer und positivem Eingang U1 benötigt. Optimieren Sie es für 2.048V auf VGnd. U1 ist nur ein rauscharmer Operationsverstärker. (Übrigens ist AZ431 für den Job schrecklich. Ich habe es gesagt, weil ich das Symbol hatte).

Es ist sehr wichtig, dass U2, U3 und U4 Null-Offset-Chopper-Verstärker sind. U2 ist wichtiger, weil es mit 100 multipliziert wird. Jede 1 Mikrovolt erreicht 100 Mikrovolt. Wenn Sie OP07 verwenden und es richtig auf Null stellen und sich die Temperatur um 10 Grad ändert, erhalten Sie einen Offset von 13 uV, was 1,3 mV am Ausgang von U4 entspricht. Das sind 13 mV ADC-Ausgang, was ADC2 fast unbrauchbar macht.

Auch U3 muss 6,048 V erreichen können - das ist VGnd (2,048 V) + 2xVinmax (2x2V = 4V). Das ist die ganze Idee einer Vcc = + 12V Stromversorgung. Vcc kann bis zu 6,5 V betragen, wenn MAX44252 verwendet wird. Da MAX44252 Rail-to-Rail-Opamp ist, kann die negative Versorgung übersprungen und Vss des Opamps mit Masse verbunden werden. Dies gilt für jeden Operationsverstärker, dessen Ausgang bis zu 48 mV betragen kann.

Der MAX44252 hat eine Offset-Spannung von 2 bis 4 uV (typisch) und eine Temperaturdrift von 1 bis 5 nV. Es ist $ 2,64 auf Digikey in Mengen von 1 und es ist Quadopamp, so dass nur ein Chip die Arbeit erledigt.

Wie es funktioniert? Lassen Sie uns zum Beispiel 10-Bit-DAC haben. Die Auflösung beträgt 4,096 / 1024 = 4 mV. Das Eingangssignal muss relativ zu VGnd sein, was die Hälfte von Vref ist. ADC1 misst die Eingangsspannung wie gewohnt. Gibt dann den Wert über DAC1 aus. Der Unterschied zwischen Vin und DAC1 ist der Fehler, den Sie zum Verstärken, Messen und Hinzufügen zum ADC1-Ergebnis benötigen. U2 verstärkt die Differenz Vin - DAC1 relativ zu DAC1 mit einer Verstärkung von 100. U4 verstärkt diese Differenz um 10 und subtrahiert auch DAC1 relativ zu VGnd. Das macht ADC2 = (Vin - DAC1) * 1000 relativ zu VGnd. Mit anderen Worten, wenn Sie 1,234567 V auf Vin haben, relativ zu VGnd. ADC1 misst den Wert 821weil die Auflösung 4 mV beträgt und (2,048 + 1,234567) / 0,004 = 820,64175. Der DAC-Wert wird also auf 309 eingestellt, was 309 * 0,004 V = 1,236 V entspricht. Jetzt erhält ADC2 1.234567-1.236 = -0.001433 * 1000 = -1.433V relativ zu VGnd (idealerweise). Das ist 2.048-1.433 = 0.615V Gleichtakt. 0,615 V / 0,004 = 153,75. Also ADC2-Wert = 154. Es ist einfacher, den Wert in Mikrovolt zu berechnen, um die Verwendung von Float zu vermeiden. Um ADC2 in mV umzuwandeln, müssen wir den Wert mit 4 multiplizieren: VADC1 = 821 * 4 = 3284 mV. Um in uV umzuwandeln, müssen wir mit 1000 multiplizieren. Oder das ist der ADC1-Wert multipliziert mit 4000. 821 * 4000 = 3284000. Die ADC1-Spannung in Bezug auf VGnd beträgt also 3284000-2048000 = 1236000uV. Der ADC2 ist bereits mit 1000 multipliziert, daher müssen wir nur mit 4 multiplizieren: VADC2 = 154 * 4 = 616. Um die Spannung relativ zu VGnd zu erhalten, müssen wir VGnd subtrahieren: 616-2048 = -1432uV. Wir nehmen hier VGnd = 2048uV, weil wir eine x1000-Verstärkung haben. Jetzt fügen wir VADC1 und VADC2 hinzu: 1236000 + (-1432) = 1234568uV oder 1,234568V

Das sind natürlich nur Träume, denn wenn Sie mit Mikrovolt arbeiten, gibt es alle möglichen schrecklichen Probleme - Opamp-Rauschen, Widerstandsrauschen, Spannungsversatz, Temperaturdrift, Verstärkungsfehler ... Aber wenn Sie anständige Teile verwenden, mindestens 1% Widerstände und Sie setzen den Offset programmgesteuert auf Null und korrigieren die Verstärkung, um ein einigermaßen gutes Ergebnis zu erzielen. Natürlich können Sie keine stabile Eingabe bis zur letzten Ziffer erwarten. Vielleicht können Sie die Auflösung auf 10uV begrenzen (teilen Sie das Ergebnis durch 10). Das Multiplizieren mit 4 kann auch durch Summieren von 4 aufeinanderfolgenden Ergebnissen erfolgen, um eine Mittelwertbildung zu erzielen.

Denken Sie daran, dass nichts davon getestet wird. Ich habe nur die Verstärkerstufe simuliert, ohne Rauschen und Opamp-Offset zu berücksichtigen. Wenn jemand beschließt, es zu erstellen, schreiben Sie die Ergebnisse in die Kommentare.

NickSoft
quelle
Frage fragt nach AD C. Sie sprechen über DA C.
schwach verlorenes Vertrauen in SE
Es tut mir Leid. Ich habe nach DAC gesucht und diese Frage gefunden. Ich schrieb ohne sorgfältig zu lesen. Ich werde kompensieren und vorschlagen, wie das gleiche Prinzip auf ADC angewendet werden kann.
NickSoft
Ich habe meine Ablehnung entfernt, da Ihr Beitrag jetzt mit der Frage zusammenhängt. Aber ich denke nicht, dass diese Lösung in der Praxis funktionieren kann. Ich fürchte, es wird zu viele Ungenauigkeiten geben.
Dim verlorenes Vertrauen in SE
Natürlich wird es funktionieren. Die Genauigkeit hängt jedoch von den verwendeten Teilen ab. Es gibt Chopper-Verstärker mit einem Offset von 0,1 uV und einer Drift von 1 bis 5 nV / ° C. Sie haben auch Nanovolt 0,1-10 Hz pp Rauschen. In Kombination mit einer guten Referenz könnte eine stabile Leistung von bis zu 10 uV erzielt werden. Dies kann jedoch mit billigeren Teilen funktionieren, wenn Sie eine zusätzliche Ziffer erhalten möchten. Zum Beispiel hat ein 10-Bit-ADC mit 4,096 V Referenz eine Auflösung von 4 mV. Ich denke, mit dieser Schaltung kann sie leicht auf 0,1 uV Auflösung verbessert werden (vielleicht mit besserer Referenz). Das sind +/- 20000 Zählungen. Natürlich ist eine Software-Kalibrierung für Offset und Gain erforderlich.
NickSoft
Das ist alles Theorie. Die Tatsache, dass Ihr ADC2-Messwert von Ihrer DAC-Einstellung (und dem Opamp-Offset, aber dies ist nicht einmal der wichtigste Teil) abhängt, die von Ihrem ADC1-Messwert abhängt (und all diese Toleranzen haben), führt dazu, dass Sie mit Sicherheit gewonnen haben Sie können nicht einmal den monotonen Betrieb Ihres Systems garantieren (selbst wenn Sie sich innerhalb der Grenzen Ihrer berechneten Genauigkeit befinden).
Dim verlorenes Vertrauen in SE
0

Abhängig von der Art Ihres Signals können Sie den ADC mit höherer Geschwindigkeit und niedrigerer Auflösung verwenden, aber Sie müssen Ihre Referenzspannung nicht verschieben (ich würde das Datenblatt sorgfältig prüfen, um festzustellen, ob Sie damit überhaupt durchkommen könnten ). Sie müssen danach nur noch eine Nachbearbeitung durchführen. es heißt OversamplinglÖG2(viel)

Bearbeiten: Korrekturen an meiner Mathematik finden Sie in den Kommentaren.

Jay Kominek
quelle
Das habe ich mir auch gedacht, aber bedenken Sie Folgendes: 1-V-Eingangsbereich, 0,2-V-Eingang, 1-Bit-ADC. Egal wie hoch Ihr Oversampling ist, Sie lesen immer 0, Durchschnitt = 0, nicht 0,2.
Stevenvh
Ein solches Überabtasten erfordert ein gewisses "Rauschen" des Signals. Wie Stevenvh betonte. Manchmal hat das Signal selbst genug "Rauschen", um dies ohne etwas Neues zu erreichen. In anderen Fällen müssen Sie hochfrequentes Rauschen in das Signal einspeisen. Das Rauschen wird jedoch in der nachfolgenden Nachbearbeitung herausgefiltert.
Richtig, "abhängig von der Art Ihres Signals". Die Frage sagt nicht aus, ob er die Temperatur von einem Thermistor liest, der an die Seite eines Bleisteins geklebt ist, oder ob er den Mischerausgang für SDR abtastet. Also bekam er eine andere Option. Wenn jemand einen Zeiger auf die genauen mathematischen Eigenschaften liefern kann, die das Signal benötigt, damit eine Überabtastung gültig ist, wäre ich übrigens wirklich interessiert. (Und das scheint eine nützliche Ergänzung zu sein, anstelle von Korrekturen, die nur etwas weniger handgewellt sind als meine ursprüngliche Aussage.)
Jay Kominek
lÖG2(einlÖt)- -2
Mein Hauptinteresse gilt Audiosignalen, daher denke ich, dass, sobald 24-Bit-Konverter ziemlich teuer sind und nicht so viele von ihnen existieren, möglicherweise kaskadierende, weiter verbreitete Konverter funktionieren. Vielen Dank an alle für die ausführliche Erklärung. Das klingt zunächst möglich, nicht wahr? :)
Fehlerentwickler