Forum: Mikrocontroller und Digitale Elektronik Zwei ADC zur Erhöhung der Auflösung - NPX LPC Controller


von Tarik J. (tarik_j)


Lesenswert?

Hallo,

ich brauche ein ADC mit einer Auflösung von mindestens 16 bit. Je höher 
desto besser, 24 bit wäre optimal.

Ich habe aber ein µController mit zwei ADC jeweils mit 10 bit. Die Frage 
ist jetzt, ob ich ohne zusätzliche ADCs die Auflösung teilen kann.

Mein Gedanke war, dass ich die 5V aufteile und jeweils 2,5 Volt für ein 
ADC nutze.

Ist so etwas prinzipiell möglich? Kann man das nicht einfach mit einem 
Spannungsteiler realisieren?

Ich kann leider kein Konzept präsentieren oder den Gedanken klarer 
ausdrücken, da ich noch ein Anfänger bin.

Wäre super, wenn ihr Tipps geben könntet, wie ich mein Ziel erreichen 
kann.

Vielen Dank

Ach und im Datasheet steht folgendes, evtl. ist das wichtig? Ich 
verstehe es nicht ganz:

The parts contain two 10-bit ADCs (ADC0 and ADC1). The input channels of 
ADC0 and ADC1 on dedicated pins and multiplexed pins are combined in 
such a way that all channel 0 inputs (named ADC0_0 and ADC1_0) are tied 
together and connected to both, channel 0 on ADC0 and channel 0 on ADC1, 
channel 1 inputs (named ADC0_1 and ADC1_1) are tied together and 
connected to channel 1 on ADC0 and ADC1, and so forth. There are
eight ADC channels total for the two ADCs.

von Stefan F. (Gast)


Lesenswert?

Dieser Lösungsansatz ist völliger Quatsch.

von Stefan D. (mackie05)


Lesenswert?

Wenn Du die zwei 10 Bit ADCs in dieser Art und Weise kombinierst erhälst 
Du keine 20 Bit sondern 11 Bit - im Besten Fall. Abgesehen davon wirst 
Du so eine Lösung kaum temperaturstabil hingekommen. Desweiteren belies 
Dich doch mal zum Einsatz von hochauflösenden ADCs. Da musst Du schon 
eine Menge Hirnschmalz(Schaltungsdesign und Layout) reinstecken um 
allein volle 14-16 Bit nutzen zu können. 24 Bit sind da schon sehr 
tollkühn. Versuche doch erstmal mit Deinen 10-Bit ein stabiles Ergebnis 
zu erhalten und dann evtl. mit Evalboards dich an höhere Auflösungen zu 
wagen.

von Thomas W. (Gast)


Lesenswert?

Tarik J. schrieb:
> ich brauche ein ADC mit einer Auflösung von mindestens 16 bit. Je höher
> desto besser, 24 bit wäre optimal.

Bevor die Frage mit den Bits gestellt wird, sollte die Abtastrate klar 
sein. Bist du sicher, dass deine Signale so sauber sind, dass eine 
solche Auflösung des Wandler sinnvoll ist?

von Tarik J. (tarik_j)


Lesenswert?

Danke für die aufklärende Antwort.

Wäre auch zu schön gewesen, wenn's so einfach ginge. Werde mich dann 
wohl mehr informieren müssen.

In einem anderen Thread wurde ein ähnliches Problem diskutiert. Dort war 
ein Vorschlag folgender (ich hoffe es ist okay, wenn ich zitiere?):

"Also, wenn man zwei ADCs (z.B. je 10 Bit) zur Verfügung hat sowie einen
DAC (im Beispiel 10 Bit, kann auch R2R-Leiter sein), kann man die
Auflösung verdoppeln (auf 20 Bit), von Ungenauigkeiten vielfältiger Art
einmal abgesehen:

Das Ausgangssignal hinter ADC1 wird mit dem DAC wieder nach analog
konvertiert, vom Eingangssignal abgezogen, auf einen fuer ADC2
sinnvollen Spannungsbereich verstärkt, und die Bits von ADC1 und ADC2
aneinandergehängt, nicht addiert."

Ergibt das Sinn für euch? Sollte ich mich dahingehend weiter 
informieren?

von Tarik J. (tarik_j)


Lesenswert?

Thomas W. schrieb:
> Tarik J. schrieb:
>> ich brauche ein ADC mit einer Auflösung von mindestens 16 bit. Je höher
>> desto besser, 24 bit wäre optimal.
>
> Bevor die Frage mit den Bits gestellt wird, sollte die Abtastrate klar
> sein. Bist du sicher, dass deine Signale so sauber sind, dass eine
> solche Auflösung des Wandler sinnvoll ist?

Mache das nicht privat. Meine Aufgabenstellung ist so gegeben. Über die 
Sinnhaftigkeit sollte ich mir also keine Gedanken machen :D

von Falk B. (falk)


Lesenswert?

@ Tarik J. (tarik_j)

>ich brauche ein ADC mit einer Auflösung von mindestens 16 bit. Je höher
>desto besser, 24 bit wäre optimal.

Dann kauf dir einen passenden ADC.

>Ich habe aber ein µController mit zwei ADC jeweils mit 10 bit. Die Frage
>ist jetzt, ob ich ohne zusätzliche ADCs die Auflösung teilen kann.

Vergiss es.

>Mein Gedanke war, dass ich die 5V aufteile und jeweils 2,5 Volt für ein
>ADC nutze.

So schon gar nicht ;-)

>The parts contain two 10-bit ADCs (ADC0 and ADC1).

Es gibt 2 echte ADCS in dem Ding, ADC0 und ADC1.

> The input channels of
>ADC0 and ADC1 on dedicated pins and multiplexed pins are combined in
>such a way that all channel 0 inputs (named ADC0_0 and ADC1_0) are tied
>together and connected to both, channel 0 on ADC0 and channel 0 on ADC1,
>channel 1 inputs (named ADC0_1 and ADC1_1) are tied together and
>connected to channel 1 on ADC0 and ADC1, and so forth. There are
>eight ADC channels total for the two ADCs.

Es gibt 8 Eingangskanäle, die jeweils über einen Multiplexer 
(Mehrfachumschalter) auf ADC0 oder ADC1 geschaltet werden können.

von Possetitjel (Gast)


Lesenswert?

Tarik J. schrieb:

> Das Ausgangssignal hinter ADC1 wird mit dem DAC wieder
> nach analog konvertiert, vom Eingangssignal abgezogen,
> auf einen fuer ADC2 sinnvollen Spannungsbereich verstärkt,
> und die Bits von ADC1 und ADC2 aneinandergehängt, nicht
> addiert."
>
> Ergibt das Sinn für euch?

Ja, im Prinzip geht das so.

> Sollte ich mich dahingehend weiter informieren?

Meine Meinung: Nein.

Also, wenn Du das beschriebene Prinzip witzig findest und
das mal probieren möchtest - warum nicht. Erlaubt ist hier,
was gefällt.
Meine allererste "Soundkarte" war auch ein R-2R-Netzwerk
am Parallelport.

Wenn Du aber ein konkretes Problem lösen möchtest, dann würde
ich einen passenden Wandler kaufen. ADCs sind Bausteine, die
man nicht selber baut.
Allerdings unterstütze ich den weiter oben gegebenen Rat: Fang
erstmal mit den On-Chip-ADCs an, und wenn Deine Schaltung mit
10bit-Wandlern läuft, bohrst Du das Ganze auf 16bit auf.

von Lothar (Gast)


Lesenswert?

Falk B. schrieb:
> Dann kauf dir einen passenden ADC

ADS124x 24-bit ADC (gibt ein Eval-Board und eine Demo für LPC)

Und es gibt uC mit 24-bit ADC (allerdings 8051): C8051F35x

Tarik J. schrieb:
> Mein Gedanke war, dass ich die 5V aufteile und jeweils 2,5 Volt für ein
> ADC nutze.

Das geht auch und wird z.B. hier intern genutzt um mit einem 10-bit ADC 
und 4 verschiedenen gemultiplexten Referenzen 12-bit zu erreichen 
(dadurch teilt sich natürlich die Abtastrate durch 4):

http://www.silabs.com/products/mcu/8-bit/efm8-busy-bee/pages/efm8-busy-bee.aspx

von Tarik J. (tarik_j)


Lesenswert?

Danke sehr für den Input. Jetzt weiß ich zumindest womit ich es zu tun 
habe und wie ich am besten vorgehe.

von Possetitjel (Gast)


Lesenswert?

Tarik J. schrieb:

>> Bevor die Frage mit den Bits gestellt wird, sollte die
>> Abtastrate klar sein. Bist du sicher, dass deine Signale
>> so sauber sind, dass eine solche Auflösung des Wandler
>> sinnvoll ist?
>
> Mache das nicht privat. Meine Aufgabenstellung ist so
> gegeben. Über die Sinnhaftigkeit sollte ich mir also
> keine Gedanken machen :D

Naja, es wäre trotzdem nützlich, wenn Du die Frage nach
der Abtastrate beantworten würdest.

Es ist halt ein Unterschied, ob Du 10 Samples/sec oder
50MS/s erreiche musst.

Bei hinreichend niedriger Geschwindigkeit KÖNNTE man über
den Kaskadenumsetzer nachdenken, den Du beschrieben hast.
Aber 16bit auf diese Art zu erzielen wird eine sehr
sportliche Herausforderung. Insofern... nicht zu empfehlen.

von britzl (Gast)


Lesenswert?

24 Bit wirst Du niemals stabil hinbekommen.
Als Anfänger wirst Du sowieso schon froh sein, wenn Du effektive 12 Bit 
sauber hinbekommst - danach kannst Du anfangen über 16 Bit nachzudenken.

von Stefan D. (mackie05)


Lesenswert?

Das Problem mit Deinem Kaskadenumsetzer (Danke für das Wort Possetitjel) 
ist die zeitliche Komponente, das funktioniert nur solange sich dein 
Eingangssignal zum Zeitpunkt der Signaldifferenzbildung nicht verändert 
hat. Um den Wert von sehr niederfrequenten Signalen zu messen könnte es 
ausreichen. Bedenke halt die Zeit die der ADC für eine Konversion 
benötigt sowie die Zeit für die Ausgabe über den DAC.

von Possetitjel (Gast)


Lesenswert?

Stefan D. schrieb:

> Das Problem mit Deinem Kaskadenumsetzer (Danke für
> das Wort Possetitjel) ist die zeitliche Komponente,

Klar.

> das funktioniert nur solange sich dein Eingangssignal
> zum Zeitpunkt der Signaldifferenzbildung nicht verändert
> hat.

Hmm... nee.

Grob- und Feinumsetzer müssen sich vernünftigerweise um
z.B. zwei Bit überlappen. Dann kann der Feinumsetzer immer
noch korrekt arbeiten, auch wenn der Offset aus der ersten
Stufe eigentlich nicht mehr stimmt, weil das Eingangssignal
inzwischen weggewandert ist.

Man kann auf die Art auch kleine Änderungen schneller
messen als große, weil man die erste Stufe nur dann
aktualisieren muss, wenn die zweite aus dem Bereich
zu laufen droht. Das merkt man ja aber in der Software.

> Um den Wert von sehr niederfrequenten Signalen zu messen
> könnte es ausreichen. Bedenke halt die Zeit die der ADC
> für eine Konversion benötigt sowie die Zeit für die Ausgabe
> über den DAC.

Klar ist das Gefrickel; ich empfehle ja auch nicht, das so
zu machen.

Die Geschichte hat noch ein ganz anderes Problem: Der DAC
braucht zwar nur eine geringe Auflösung, aber er muss die
volle GENAUIGKEIT haben.
Um z.B. 8bit in der ersten und 10bit in der zweiten Stufe
zu einem 16bit-Wandler zu kombinieren, braucht man einen
DAC, der zwar nur 8bit auflösen, aber auf 16bit GENAU sein
muss.
Mit PWM ist das vielleicht machbar, aber das ist übelstes
analoges Gefrickel.

von Gerald M. (gerald_m17)


Lesenswert?

Man kann auch einfach mit Oversampling die Auflösung erhöhen. Jeder 
Faktor 2 beim Oversampling gibt ein halbes Bit.
Hierfür brauch man lediglich ein weißes rauschen, welches auf das 
analoge Signal gegeben wird.
Siehe Silabs "IMPROVING ADC RESOLUTION BY OVERSAMPLING AND AVERAGING"

von Arc N. (arc)


Lesenswert?

Gerald M. schrieb:
> Man kann auch einfach mit Oversampling die Auflösung erhöhen. Jeder
> Faktor 2 beim Oversampling gibt ein halbes Bit.
> Hierfür brauch man lediglich ein weißes rauschen, welches auf das
> analoge Signal gegeben wird.
> Siehe Silabs "IMPROVING ADC RESOLUTION BY OVERSAMPLING AND AVERAGING"

Gehen tut das schon, nur hätte der TO gerne 6 Bit mehr...
Und damit wäre hier 4^6-faches = 4096-faches Oversampling nötig...

Zum Thema Dithering und Auflösung:
http://www.st.com/web/en/resource/technical/document/application_note/CD00177113.pdf
(weißes Rauschen und Dreieck)

Aber solange es keine Informationen zur nötigen Abtastrate/Genauigkeit 
bzw. dem zu messenden Signal/Sensor gibt, ist das alles mehr oder 
weniger sinnloses Ideensammeln

von ADC (Gast)


Lesenswert?

Arc N. schrieb:
>
> Aber solange es keine Informationen zur nötigen Abtastrate/Genauigkeit
> bzw. dem zu messenden Signal/Sensor gibt, ist das alles mehr oder
> weniger sinnloses Ideensammeln

Ja. Ich rate mal: mit 50 MSamples/s die Temperatur des Aquariumwassers 
messen und "regeln"


Denn sie wissen nicht, was sie tun ...

von Gerd E. (robberknight)


Lesenswert?

ADC schrieb:
> Ja. Ich rate mal: mit 50 MSamples/s die Temperatur des Aquariumwassers
> messen und "regeln"

Aber niemals mit weniger als 24 Bit! Die armen Fische!

von Stefan F. (Gast)


Lesenswert?

Diese Kaskadierung wird vermutlich beim ersten Versuch am Rauschen der 
analogen Schaltkreise scheitern.

von Karl H. (kbuchegg)


Lesenswert?

Tarik J. schrieb:

> Mache das nicht privat. Meine Aufgabenstellung ist so gegeben. Über die
> Sinnhaftigkeit sollte ich mir also keine Gedanken machen :D

Doch das sollte man.
Speziell wenn rein rechnerisch dann µV oder gar nV auftauchen.
In irgendeinem anderen Thread hab ich mal interessehalber rumgerechnet 
und rausgekriegt, dass du bei einem 24 Bit Wandler bereits eine 10cm 
längere Messstrippe deutlich im Messergebnis sehen wirst.

Klar kann man mit 24 Bit messen. Nur sind von diesen 24 Bit bei uns 
Nichtprofis der Leiterbahnführung und Abschirmung mindestens 10 Bit 
reine Zufallswerte.

von Peter D. (peda)


Lesenswert?

Tarik J. schrieb:
> Ich habe aber ein µController mit zwei ADC jeweils mit 10 bit.

Dann nimmste eben nen MC mit 24Bit ADC, z.B. Silabs: C8051F350

von Lothar (Gast)


Lesenswert?

Peter D. schrieb:
> Dann nimmste eben nen MC mit 24Bit ADC, z.B. Silabs: C8051F350

Erster ...

Lothar schrieb:
> ADS124x 24-bit ADC (gibt ein Eval-Board und eine Demo für LPC)
>
> Und es gibt uC mit 24-bit ADC (allerdings 8051): C8051F35x

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.