Forum: Mikrocontroller und Digitale Elektronik Messgenauigkeit ADC


von Georg (Gast)


Lesenswert?

Guten Tag,

folgender Ausgangssituation:

Zur Verfügung steht ein Strommesssensor der ein Strom bis zu 20 A messen 
kann. Er liefert eine Ausgangsspannung von 0 V - 2 V. Ein 12-Bit ADC 
liefert die Ergebnisse dieser Messung an dem µC.

Auflösung des ADC:
Udiff / 4096 = 2 V / 4096 = 488 µV

Mein Frage ist: wie genau kann der Strom gemessen werden?

I_mess = (20 A * 488 µV) / 2 V = 4,88 mA

Ist das richtig?

Sorry, falls die Antwort zu selbstverständlich ist... Bin neu auf dem 
Gebiet.

von M. K. (sylaina)


Lesenswert?

Das erste, was du dir merken musst, ist:

Das ist elementar wichtig und wird doch immer wieder verwechselt. Mit 
den Angaben, die du bisher gemacht hast lässt sich ausschließlich die 
Auflösung bestimmen, nicht die Genauigkeit. Und ja, 4.88 mA wäre die 
maximale Auflösung oder halt 20 A / 12 Bit ;)

von dunno.. (Gast)


Lesenswert?

du verwechselst hier auflösung und messgenauigkeit, bzw messabweichung..

von Georg (Gast)


Lesenswert?

M. K. schrieb:
> Das erste, was du dir merken musst, ist:
> Auflösung!=Genauigkeit

Danke für die Info :)

Eine andere Frage:
- was erreicht man, wenn der Messbereich vergrößert wird (z. B. von 2 V 
auf 3 V). Die Auflösung bleibt ja gleich.

I_mess = (20 A * 732 µV) / 3 V = 4,88 mA

Erzielt man damit mehr Genauigkeit?

von M. K. (sylaina)


Lesenswert?

Georg schrieb:
> Erzielt man damit mehr Genauigkeit?

Nein, damit erzielt man nur eine höhere Auflösung. Auflösung und 
Genauigkeit sind unabhängig voneinander.

von Wolfgang (Gast)


Lesenswert?

Georg schrieb:
> Erzielt man damit mehr Genauigkeit?

Nein, die Auflösung beträgt immer noch 12 Bit, jedenfalls wenn du die 
Referenzspannung des ADC immer so wählst, dass dein Signal den 
kompletten Messbereich deines ADCs ausnutzt.

von Wolfgang (Gast)


Lesenswert?

Und an der Genauigkeit des Wandlers ändert sich natürlich nichts, es sei 
denn, du nimmst einen anderen Typ ;-)

von Stefan F. (Gast)


Lesenswert?

Wenn du den Messbereich (referenzspannung) des ADC von 2V auf 3V 
änderst, den Shunt aber unverändert lässt, dann verringerst du die 
Auflösung (größere Schrittweite) und der maximal messbare Strom erhöht 
sich auf 30A.

Das alles hat aber immer noch nichts mit der Genauigkeit zu tun,.

von THOR (Gast)


Lesenswert?

M. K. schrieb:
> Georg schrieb:
>> Erzielt man damit mehr Genauigkeit?
>
> Nein, damit erzielt man nur eine höhere Auflösung. Auflösung und
> Genauigkeit sind unabhängig voneinander.

Nicht ganz, denn die Mindest-Messabweichung ist 0.5 LSB.

von Wolle G. (wolleg)


Lesenswert?

kurz etwas zur Messgenauigkeit:
siehe https://de.wikipedia.org/wiki/Messabweichung

von Manfred (Gast)


Lesenswert?

Georg schrieb:
>> Auflösung!=Genauigkeit
> Danke für die Info :)

Generell wird ein A/D ein bit hin und her wackeln. Externe Einflüsse wie 
Brumm, Rauschen, Masseverschiebungen kommen hinzu. Und natürlich die 
Genauigkeit des Wandlerbausteines.

Verbessern kann man das in der Praxis mit Oversampling: Man hole mehrere 
Meßwerte in zeitlichem Abstand und errechne den Mittelwert - hier 
irgendwo im Forum wurde mal eine Applikationsschrift von Atmel zu diesem 
Thema verlinkt.

von Wolfgang (Gast)


Lesenswert?

Manfred schrieb:
> Verbessern kann man das in der Praxis mit Oversampling: Man hole mehrere
> Meßwerte in zeitlichem Abstand und errechne den Mittelwert -

Gegen eine krumme Wandlerkennlinie hilft das überhaupt nichts.

Und der Mittelwert hilft gegen Quantisierungsrauschen nur, wenn dem 
Messsignal ein ausreichend hohes Rauschen überlagert ist. Sonst hängt 
der Wandler auf einer Stufe und die schönste Mittelei nützt überhaupt 
nichts, weil immer der selbe Wandlerwert rein kommt.

von M. K. (sylaina)


Lesenswert?

THOR schrieb:
> Nicht ganz, denn die Mindest-Messabweichung ist 0.5 LSB.

Nein, nein und nochmals nein. Die Auflösung hat mit der Genauigkeit 
nichts zu tun. Das eine fragt, wie gut kann ich etwas messen, das andere 
fragt, wie gut kann ich etwas anzeigen. Das sind zwei völlig 
verschiedene Dinge (wenngleich es auch Sinn macht sie aufeinander 
abzustimmen).
Natürlich hat es wenig Nutzen etwas genauer zu messen als man es 
anzeigen (nutzen) kann. Beispiel: Man kann 1 V auf 1% genau messen und 
die Auflösung auf 3 Bit setzen. Das sieht natürlich jeder sofort, dass 
das nicht sehr sinnvoll ist: Warum auf 10 mV genau messen wenn die 
Auflösung eh schlechter als 100 mV ist? Ein Erhöhen der Auflösung auf 4 
Bit erhöht aber die Genauigkeit von 1% schlicht überhaupt nicht. Selbst 
wenn man die Auflösung auf 40 Bit erhöhen würde wäre die Genauigkeit 
immer noch nur 1%.
Nur weil man die Auflösung erhöht, erhöht sich dadurch die Genauigkeit 
mitnichten. Deshalb macht es auch keinen Sinn die Auflösung wesentlich 
besser zu machen als die Genauigkeit. Die Auflösung zu erhöhen 
suggeriert schlimmstenfalls, dass die Genauigkeit besser wird was aber 
natürlich nicht der Fall ist.

von my2ct (Gast)


Lesenswert?

M. K. schrieb:
> Deshalb macht es auch keinen Sinn die Auflösung wesentlich
> besser zu machen als die Genauigkeit.

Jeder Taschenrechner macht das. Da werden 3-stellige, fehlerbehaftete 
Messwerte eingetippt und als Ergebnis kommt eine 10-stellige Zahl raus 
;-)

von Jacko (Gast)


Lesenswert?

Gegeben:
- Ein Stromsensor mit 2 V / 20 A
  A: Wie genau ist der Sensor?

- Ein 12-Bit ADC
  B: Wie genau ist der ADC (Offset und Linearität)?

- Eine Referenzspannung von 2 V (oder 3 V)
  C: Wie genau ist die Referenzspannung?

Gesucht:
  Die Genauigkeit, (Übereinstimmung von Messwert und vorliegendem 
Strom),
  Rauschfreiheit,
  oder nur die Auflösung (Erfassung von Stromänderungen)?

Die Antwort:
  Kann dir keiner geben, wenn A, B und C nicht bekannt sind.

Vielleicht erzählst du einfach, welches Messproblem du mit welchen 
vorhandenen Bauelementen mit welcher zeitlichen Auflösung (!) lösen 
möchtest.

von Felix U. (ubfx)


Lesenswert?

M. K. schrieb:
> Das eine fragt, wie gut kann ich etwas messen, das andere
> fragt, wie gut kann ich etwas anzeigen.
Mit "etwas anzeigen" hat beides gar nichts zu tun.

von Hp M. (nachtmix)


Lesenswert?

Georg schrieb:
> Auflösung des ADC:
> Udiff / 4096 = 2 V / 4096 = 488 µV

Ich glaube, dass ich es schon einmal erwähnte:
Der 12-Bit Wandler, kann zwar  4096 Messwerte ausgeben, aber das sind 
ausser der 0 nur 4095 Intervalle bzw. der höchste Messwert ist 4095.
Deshalb ist die Auflösung 2V/4095 = 488,4µV.

Georg schrieb:
> was erreicht man, wenn der Messbereich vergrößert wird (z. B. von 2 V
> auf 3 V).

Evtl. geringfügig weniger elektrisches Rauschen.

Du solltest aber daran denken, dass von einem Widerstand, an dem bei 20A 
3V abfallen, 60W Verlustwärme abzuführen sind.

Unter dieser Wärmentwicklung kann die Genauigkeit des Widerstandes und 
auch die Stabilität der ganzen Apparatur leiden.

von Thomas E. (picalic)


Lesenswert?

Hp M. schrieb:
> ausser der 0 nur 4095 Intervalle bzw. der höchste Messwert ist 4095.
> Deshalb ist die Auflösung 2V/4095 = 488,4µV.

Entscheidend für die Auflösung ist aber nicht die höchste Zahl, sondern 
die Anzahl der Werte, in die der Messbereich eingeteilt wird. Die Null 
ist auch ein gültiger Wert, deshalb sind es 4096 Werte und 2V/4096 wäre 
richtig!
Anders betrachtet: Wenn man 2V mit einem 2-Bit Wandler messen würde, 
bekäme man nach Deiner Rechnung 0,666 Volt Auflösung heraus - wie soll 
denn da die Zuordnung der Spannungen zu den Ausgangswerten des 
AD-Wandlers aussehen?

von W.A. (Gast)


Lesenswert?

Hp M. schrieb:
> ... aber das sind ausser der 0 nur 4095 Intervalle

Eben, du sagst es richtig: Es sind insgesamt 4096 Werte. Jeder mögliche 
Ausgangswert repräsentiert ein Intervall mit ungefähr einer Breite von 
1/4096. Guck dir mal eine Wandlerkennlinie an.

von Stefan F. (Gast)


Lesenswert?

Moment mal.
Wenn ich 4096 Werte habe liegen die tatsächlichen Spannungen annähernd 
immer zwischen den Werten. Also in den Intervallen. Ich habe 4095 
Intervalle.

von M. K. (sylaina)


Lesenswert?

Felix U. schrieb:
> M. K. schrieb:
>> Das eine fragt, wie gut kann ich etwas messen, das andere
>> fragt, wie gut kann ich etwas anzeigen.
> Mit "etwas anzeigen" hat beides gar nichts zu tun.

Doch, die Auflösung hat nur den Zweck der Anzeige. Du implizierst grade 
nur, dass diese Anzeige nur für den Menschen ist. Muss sie aber nicht 
sein, diese Anzeige, von der ich sprach, kann auch für einen Computer 
sein damit er die Daten weiter verarbeiten kann.

Stefan U. schrieb:
> Moment mal.
> Wenn ich 4096 Werte habe liegen die tatsächlichen Spannungen annähernd
> immer zwischen den Werten. Also in den Intervallen. Ich habe 4095
> Intervalle.

Ja, W.A. hats schon richtig gesagt, sagte immerhin ungefähr 1/4096. 
Genau wären es 1/4095. Allgemein ist es
mit n als Auflösung in Bit.

: Bearbeitet durch User
von batman (Gast)


Lesenswert?

Stefan U. schrieb:
> Moment mal.
> Wenn ich 4096 Werte habe liegen die tatsächlichen Spannungen annähernd
> immer zwischen den Werten. Also in den Intervallen. Ich habe 4095
> Intervalle.

Stell dir mal einen 1-Bit-Wandler (=Schmitt-Trigger) für 5V vor. Er hat 
2 Ausgangswerte und 2 Intervalle.

von M. K. (sylaina)


Lesenswert?

batman schrieb:
> Stell dir mal einen 1-Bit-Wandler (=Schmitt-Trigger) für 5V vor. Er hat
> 2 Ausgangswerte und 2 Intervalle.

Ahhh, nein. Er hat zwei Ausgangswerte aber nur ein Intervall. Die 
Ausgangswerte sind 0 und 1, das Intervall ist {0,1}. Dazwischen gibts 
doch nix darstellbares.

Beitrag #5149536 wurde von einem Moderator gelöscht.
von batman (Gast)


Lesenswert?

Dann nochmal ganz konkret für 5V:
Intervall 1, Ausgangswert 0 : von 0 bis einschließlich 2,5V
Intervall 2, Ausgangswert 1 : über 2,5V bis 5V.

Es gibt 1 Intervallgrenze aber jedes Intervall hat 2 Grenzen.

von M. K. (sylaina)


Lesenswert?

batman schrieb:
> Dann nochmal ganz konkret für 5V:
> Intervall 1, Ausgangswert 0 : von 0 bis einschließlich 2,5V
> Intervall 2, Ausgangswert 1 : über 2,5V bis 5V.
>
> Es gibt 1 Intervallgrenze aber jedes Intervall hat 2 Grenzen.

Beispiel: Serielle Schnittstelle RS232: -15...-3 V : 1, 3V...15V: 0, 
-3V...3V nicht erlaubter Bereich. Zwei Ausgangswerte, 3 Intervalle. Du 
siehst deinen "Fehler"? Aus dem gleichen Grund werden auch immer wieder 
Auflösung und Genauigkeit miteinander verwechselt.

von batman (Gast)


Lesenswert?

Jetzt willst du mich aber auf den Arm nehmen?
Beim ADC gibt es keine "unerlaubten" Intervalle im Meßbereich.

Jeder (Ausgangs-)Wert liegt auf genau einem Intervall, also gibt es 
genau soviele Intervalle wie Werte.

von Einer K. (Gast)


Lesenswert?

batman schrieb:
> Jetzt willst du mich aber auf den Arm nehmen?
Nein, er ist einfach nur nicht einsichtig.

Hat sich das einmal falsch gemerkt, und kommt jetzt NIE wieder runter 
davon.

Und wenn der Fehler nicht so klein wäre, den er sich damit einbaut, wäre 
ihm das schon dutzende von Malen auf die Füße gefallen.

von Thomas E. (picalic)


Lesenswert?

Stefan U. schrieb:
> Wenn ich 4096 Werte habe liegen die tatsächlichen Spannungen annähernd
> immer zwischen den Werten. Also in den Intervallen. Ich habe 4095
> Intervalle.

Nein, es ist umgekehrt: die Wandler-Ausgangswerte repräsentieren die 
Intervalle selbst, nicht deren Grenzwerte! Ein 2-Bit Wandler hat 4 
Ausgangswerte = 4 Intervalle und demzufolge 5 Intervallgrenzen, z.B. bei 
1.0 als Messbereich als Grenzen 0 - 0,25 - 0,5 - 0,75 - 1. Auch ein 12 
Bit Wandler hat 4096 Intervalle und 4097 Intervallgrenzen. Die Grenzen 
des untersten und des obersten Intervalls bei den üblichen SAR-Wandlern 
liegen allerdings theoretisch bei +/- unendlich. Bei einem 
differenziellen Wandler wären diese Grenzwerte am Rand bzw. außerhalb 
des Messbereichs aber tatsächlich reale Werte und würden einen Über- 
oder Unterlauf auslösen.

von dunno.. (Gast)


Lesenswert?

Thomas E. schrieb:
> Messbereich als Grenzen 0 - 0,25 - 0,5 - 0,75 - 1

für mich sind das jetzt aber 5 werte?
wie codierst du das mit 2 bit?

von batman (Gast)


Lesenswert?

Jeder (gültige) Eingangswert liegt auf einem der 4 Intervalle und wird 
mit 0,1,2 oder 3 als Ausgangswert dargestellt.

Der obere Grenzwert liegt streng genommen nicht mehr im gültigen 
Meßbereich, sondern außerhalb, so wie Werte unter Null. Vielleicht kommt 
daher die Verwirrung.

von M. K. (sylaina)


Lesenswert?

batman schrieb:
> Jetzt willst du mich aber auf den Arm nehmen?
> Beim ADC gibt es keine "unerlaubten" Intervalle im Meßbereich.

RS232 ist auch "nur" ein AD-Wandler.

Arduino F. schrieb:
> Nein, er ist einfach nur nicht einsichtig.

Richtig, ich bin nicht einsichtig weils einfach falsch ist. Ihr setzt 
hier doch grade die Intervalle des Messergebnis mit den Intervallen der 
Auflösung gleich. Das ist schlicht und ergreifend falsch und führt nur 
dazu, dass man meinen könnte man könne durch verbessern der Auflösung 
die Genauigkeit erhöhen.

BTT: Auflösung und Genauigkeit sind unabhängig voneinander. Das 
Verbessern des Einen verbessert nicht automatisch das Andere.

Arduino F. schrieb:
> Und wenn der Fehler nicht so klein wäre, den er sich damit einbaut, wäre
> ihm das schon dutzende von Malen auf die Füße gefallen.

Nö, wir quatschen nur von unterschiedlichen Dingen, daher kommt das 
Missverständnis zwischen uns.

von Harald W. (wilhelms)


Lesenswert?

Thomas E. schrieb:

> Anders betrachtet: Wenn man 2V mit einem 2-Bit Wandler messen würde,
> bekäme man nach Deiner Rechnung 0,666 Volt Auflösung heraus - wie soll
> denn da die Zuordnung der Spannungen zu den Ausgangswerten des
> AD-Wandlers aussehen?

0
0,67
1,33
2

Würde man ein Intervall von 2/4 = 0,5 anehmen, wäre die Folge:

0
0,5
1
1,5

und man würde die "2" nie erreichen.

von batman (Gast)


Lesenswert?

Ist auch richtig so, weil die 2V eben fieserweise außerhalb des 
Meßbereichs des 0-2V ADC liegen. :)

Der endet bei 1.9999999999999999999999999999999999999999....V

von M. K. (sylaina)


Lesenswert?

batman schrieb:
> Ist auch richtig so, weil die 2V eben fieserweise außerhalb des
> Meßbereichs des 0-2V ADC liegen. :)
>
> Der endet bei 1.9999999999999999999999999999999999999999....V

Bei dem was Harald schrieb endet er bei 1.5 V, bei dem oben genannten 12 
Bit Wandler endet er bei 1,99951171875 V

Aber:

Arduino F. schrieb:
> Und wenn der Fehler nicht so klein wäre, den er sich damit einbaut, wäre
> ihm das schon dutzende von Malen auf die Füße gefallen.

demnach muss das ja falsch sein...

von batman (Gast)


Lesenswert?

Na was schrieb denn Harald genau? Eine Folge von 4 Zahlen, die man wohl 
als Grenzen von 3 Intervallen interpretieren soll. Die genaue Zuordnung 
Ein/Ausgabewerte fehlt - da wäre der Fehler wohl schon aufgefallen. 
Damit ergeben sich 3 Eingangsintervalle für einen ADC mit 4 
Ausgangswerten. Suboptimal.

Es ist immer dasselbe: Je vager die Ausdrucksweise, desto spektakulärer 
das Resultat. Ich laufe mal eben über das Wasser (weggelassen: aufm 
Schiff). :)

von dk4ug (Gast)


Lesenswert?

zum Thema Oversampling und Atmels Applikationsschrift:

- in ausschließlich dt. Foren wird diese "Wunderwaffe" Oversampling 
immer wieder irreführend besprochen, aber offensichtlich ohne diese auch 
im Original zulesen und - auch wichtig, zu verstehen!

- richtig ist, resolution != accuracy, was ständig verwechselt wird
- Oversampling KANN nur die resolution verbessern
- ABER NUR für PERIODISCHE Signale, was auch immer ausgeblendet wird, 
sonst wäre interpolieren Zauberkunst oder Woodoo

Es gilt auch weiterhin: Wer misst misst Mißt!
Sprich das Meßverfahren bestimmt im Wesentlichen die Genauigkeit und 
nicht die Anzeige.
Die vielen schönen Körperwaagen mit digitaler Anzeige und zwei 
Kommastellen haben immer noch die gleiche miese Toleranz von oft +-300g.

dk4ug

von Stefan F. (Gast)


Lesenswert?

Der Messbereich eines ADC liegt in der Regel zwischen 0 Volt und der 
Referenzspannung MINUS ein Intervall.

Wenn du 2V Referenzspannung bei 12Bit Auflösung hast, kannst du 
höchstens 1,99951171875V messen. Alle Spannungen darüber werden den Wert 
4095 liefern, was diesen 1,99951171875V entspricht.

Also hast du nicht 4096 mögliche Messergebnisse, sondern 4095, 
entsprechend 4095 Intervallen.

von M. K. (sylaina)


Lesenswert?

Stefan U. schrieb:
> Also hast du nicht 4096 mögliche Messergebnisse, sondern 4095,
> entsprechend 4095 Intervallen.

Sehe ich auch so, soll aber falsch sein, s.o.

batman schrieb:
> Na was schrieb denn Harald genau? Eine Folge von 4 Zahlen, die man wohl
> als Grenzen von 3 Intervallen interpretieren soll.

Ach, jetzt sinds auf einmal doch nur 3 Intervalle und keine 4 mehr? Oder 
nur vertippt?

: Bearbeitet durch User
von Norbert (Gast)


Lesenswert?

dk4ug schrieb:
> zum Thema Oversampling und Atmels Applikationsschrift:
>
> - in ausschließlich dt. Foren wird diese "Wunderwaffe" Oversampling
> immer wieder irreführend besprochen, aber offensichtlich ohne diese auch
> im Original zulesen und - auch wichtig, zu verstehen!
>
> - richtig ist, resolution != accuracy, was ständig verwechselt wird
> - Oversampling KANN nur die resolution verbessern

So weit, so gut.

> - ABER NUR für PERIODISCHE Signale, was auch immer ausgeblendet wird,
> sonst wäre interpolieren Zauberkunst oder Woodoo

Das ist jedoch falsch!

Ich habe die versch. AppNotes schon vor vielen Jahren intensiv studiert, 
die von dir getroffene Aussage ist nicht darin.

Richtig ist: Der Messwert kann so stabil / 'level' wie nur möglich sein.
Die Referenzspannung muss dann zB. entweder (vorzugsweise perfektes) 
Rauschen oder einen leichten Sägezahn überlagert haben.

Ist übrigens in der passenden AppNote sogar per einfacher* Schaltung 
beschrieben.

* Die kann man jedoch deutlich verbessern.

von Gerhard (Gast)


Lesenswert?

Stefan U. schrieb:
> Also hast du nicht 4096 mögliche Messergebnisse, sondern 4095,
> entsprechend 4095 Intervallen.

nein, inklusive 0 sind das dann 4096 Messwerte.

MHO
Gerhard

von Einer K. (Gast)


Lesenswert?

Ihr seid ja lustig.....
Ihr 1024 und  4096 Verweigerer, ihr ...

Da muss euch ein Arduino Jünger zeigen, wie es geht?
Ihr ...

Hier mal bitte lesen, üben und verstehen:
(Auch gerne mit Papier und Bleistift)

Karl H. schrieb:
> Ich mach dir ein Beispiel für einen 2 Bit ADC, der sich so verhält wie
> der ADC im AVR.
>
> 2 Bit - d.h. der ADC kann 4 verschiedene Werte liefern.
> Weiters nehme ich als Referenzspannung 4 Volt an. Die Zuordnung sieht
> dann so aus
>
>     Volt  |  ADC-Wert
>    -------+-----------
>     0 - 1 |     0
>     1 - 2 |     1
>     2 - 3 |     2
>     3 - 4 |     3
>
> Der ADC liefert 4 verschiedene Werte. Wenn du die in eine Spannung
> umrechnen willst, wie rechnest du das dann?
>
>       Referenzspannung * ADC_Wert / 4
>
> oder
>
>       Referenzspannung * ADC_Wert / 3
>
> Man beachte: Wenn der ADC einen Wert von 3 liefert, dann heißt das
> NICHT, das die Spannung tatsächlich 4 Volt war. Es bedeutet nur, dass
> die Spannung sich im Bereich 3-4 Volt (eben im letzten Messintervall)
> war. Auch bei einer Eingangsspannung von 3.1 Volt würde in diesem
> Beispiel der ADC schon eine 3 auswerfen.

von dk4ug (Gast)


Lesenswert?

... dann bitte Abschnitt 2.1 Sampling frequncy und 3.1 Oversampling and 
decimation der Atmel Schrift lesen!

Ich sagte doch schon, ... in dt. Foren wird Woodoo praktiziert, in den 
englischen Foren zu dem gleichen Thema wird alles korrekt besprochen.

Ok, vielleicht bin ich im Vorteil, weil ich diese Themen 5 Jahre 
studiert habe ...

Zur weiteren Erhellung empfehle ich:

- Microchip AN1152 Achieving Higher ADC Resolution Using Oversampling
... ist vielleicht klarer in der Darstellung?!
- Lars Bengtsson, EMBEDDED MEASUREMENT SYSTEMS, chapter 3
https://gupea.ub.gu.se/bitstream/2077/32648/1/gupea_2077_32648_1.pdf
... richtig gut und auch zum Thema Zeitmessung interessant!

Nochmals, Oversampling macht nur für AC Signale Sinn, wer dass nicht 
versteht hat vielleicht ACDC Musik zu laut gehört und schon schaden 
genommen.

Ich hoffe weiterhin, für uns alle das Beste.

dk4ug

von Wolle G. (wolleg)


Lesenswert?

dk4ug schrieb:
> Zur weiteren Erhellung empfehle ich:
>
> - Microchip AN1152 Achieving Higher ADC Resolution Using Oversampling
> ... ist vielleicht klarer in der Darstellung?!

Und Du meinst, dass man einen englischen Text schneller kapiert?
Wir sind hier in einem deutschen Forum.
Aber vielleicht könntest Du den englischen Text mit allen seinen 
Feinheiten gleich fachgerecht übersetzen. Das wäre eine echte Hilfe.

von Norbert (Gast)


Lesenswert?

dk4ug schrieb:
> ... dann bitte Abschnitt 2.1 Sampling frequncy und 3.1 Oversampling and
> decimation der Atmel Schrift lesen!
>
> Ich sagte doch schon, ... in dt. Foren wird Woodoo praktiziert, in den
> englischen Foren zu dem gleichen Thema wird alles korrekt besprochen.
>
> Ok, vielleicht bin ich im Vorteil, weil ich diese Themen 5 Jahre
> studiert habe ...
>
> Zur weiteren Erhellung empfehle ich:
>
> - Microchip AN1152 Achieving Higher ADC Resolution Using Oversampling
> ... ist vielleicht klarer in der Darstellung?!
> - Lars Bengtsson, EMBEDDED MEASUREMENT SYSTEMS, chapter 3
> https://gupea.ub.gu.se/bitstream/2077/32648/1/gupea_2077_32648_1.pdf
> ... richtig gut und auch zum Thema Zeitmessung interessant!
>
> Nochmals, Oversampling macht nur für AC Signale Sinn, wer dass nicht
> versteht hat vielleicht ACDC Musik zu laut gehört und schon schaden
> genommen.
>
> dk4ug

Nur weil man etwas oft wiederholt wird es nicht weniger falsch.

Lies die Atmel AppNotes AVR121 durch und VOR ALLEM:
Bau doch mal die erforderliche Minimalhardware, schreib' ein wenig 
Software und teste es selbst!

Ich habe das getan und bin reproduzierbar in der Lage aus einem 10bit 
ADC 12/13/14bit Auflösung heraus zu holen. Bei einer festgenagelten 
Eingangsspannung. Und dann ändere ich die Eingangsspannung um weniger 
als ein mV und sehe die zum PC übertragenen Werte welche sich 
dementsprechend ändern.

PS. Ich kann nicht ausschließen das ich einiges an Software geschrieben 
habe während ich AC/DC gehört habe, ändert aber am Ergebnis nichts ;-)

von S. Landolt (Gast)


Lesenswert?

Das verstehe ich nicht: 1 mV bei 14 bit? Bei welcher Referenzspannung?

von Norbert (Gast)


Lesenswert?

Nehmen wir 4.096V Referenz, wie groß ist ein 'Schritt'?

10 bit  4,00 mV
11 bit  2,00 mV
12 bit  1,00 mV
13 bit  0,50 mV
14 bit  0,25 mV

von S. Landolt (Gast)


Lesenswert?

Das heißt, um die 14-bit Auflösung zu bestätigen, wurde nicht um 1 mV, 
sondern um 0.25 mV geändert?

von Harald W. (wilhelms)


Lesenswert?

batman schrieb:

> Ich laufe mal eben über das Wasser

..und ich fahre manchmal (eher selten) über eine rote Ampel.

von Norbert (Gast)


Lesenswert?

Ich habe mehrere Versuchsreihen gemacht.
Die erste war über einen Zeitraum von vielen Minuten die Spannung über 
einem Kondensator (welcher mit 100µA geladen wird) zu messen.
Dies entspricht der sich verändernden Eingangsspannung.

Dabei habe ich mit 256 fachem Oversampling gearbeitet.
Bei 16MHz / 128 = 125kHz braucht der ADC 13 ADC-Takte = 104µs pro 
Messung.
das ergibt 9615 Einzelmessungen pro Sekunde und 37 1/2 
Oversample-Messungen pro Sekunde. Die wurden live zum PC für die 
Auswertung übertragen und aufgezeichnet. Damit konnte dann wunderbar die 
Qualität der Linearität mathem. überprüft werden.

Eine weiterer Test war eine Kombination aus zwei großen Festwiderständen 
(47kΩ) und einem kleinen Poti (100Ω) um einen sehr geringen 
Spannungsbereich einstellbar zu machen.
Dies entspricht festen Eingangsspannungen.
Auch diese sehr geringen Unterschiede verschiedener Festwerte konnten 
gut gemessen werden.

von S. Landolt (Gast)


Lesenswert?

Der Kondensator im ersten Test hatte dann um die 11 mF?
(Entschuldigung, ich bin ziemlicher Laie auf diesem Gebiet, sonst würde 
ich ja nicht fragen)

von Norbert (Gast)


Lesenswert?

Müsste sogar noch mehr gewesen sein. Viele dicke ElKos parallel. 
Messreihe dauerte so ca. 10 Minuten.

Nach jedem Messvorgang musste man die Dinger für einige Minuten mit 
einem 1Ω Widerstand 'kurzschließen', sonst bauen sie ohne Strom von 
selbst wieder einige Spannung auf.
War 'ne interessante Erfahrung.

Hab gerade noch mal in den Sourcecode geschaut, in der ISR wurden immer 
64 Werte aufsummiert und dann in ein uint16_t Werte[4] Ringpuffer 
geschoben. Die vier wurden dann immer summiert. Ergab eine Datenrate von 
ca. 150 sehr großen Werten pro Sekunde.

Bei 10 Minuten/90000 Werten hat sogar GNUplot ein wenig Zeit für die 
Kurven gebraucht. ;-)

von Wolfgang (Gast)


Lesenswert?

Norbert schrieb:
> Ich habe das getan und bin reproduzierbar in der Lage aus einem 10bit
> ADC 12/13/14bit Auflösung heraus zu holen. Bei einer festgenagelten
> Eingangsspannung. Und dann ändere ich die Eingangsspannung um weniger
> als ein mV und sehe die zum PC übertragenen Werte welche sich
> dementsprechend ändern.

Das kann nur funktionieren, wenn deine Eingangsspannung effektiv nicht 
richtig - bezogen auf die Auflösung deines 10 Bit-ADC - festgenagelt 
ist, sondern ausreichend Rauschen überlagert ist. Sonst würde auch bei 
beliebig vielen Samples der gemittelte Wert immer schön auf den 10-Bit 
Stufen des ADC hängen. Das Rauschen kann dabei natürlich auch von S&H, 
ADC oder Referenz kommen ...

von Achim S. (Gast)


Lesenswert?

Wolfgang schrieb:
> Das kann nur funktionieren, wenn deine Eingangsspannung effektiv nicht
> richtig - bezogen auf die Auflösung deines 10 Bit-ADC - festgenagelt
> ist,

Das Rauschen kann auf dem Eingangssignal sein - oder auf der 
Referenzspannung. Beides funktioniert

Norbert schrieb:
> Die Referenzspannung muss dann zB. entweder (vorzugsweise perfektes)
> Rauschen oder einen leichten Sägezahn überlagert haben.

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.