Forum: Mikrocontroller und Digitale Elektronik ADC-Messung am unteren Limit (Atmega2560)


von Marten M. (mcgonahy148)


Lesenswert?

Moin zusammen,


versuche eine sehr kleine Spannung am unteren Limit zu messen. Auflösung 
ist ja ca. 5mV bei 10Bit und 5V Vcc.

Meine Spannung am ADC-Eingang ist 20mV. Leider zeigt mir der Controller 
immer nur den Wert 2 an, also 10mV.

Woran kann das liegen?

Ja ich habe mit dem Multimeter am ADC-Eingang auch die 20mV 
nachgewiesen.

Es sind noch ca. 2kR vor dem Eingang und ca. 20nF ohne 
Leitungsbetrachtung.

Ich programmieren den Atmega über die Arduino IDE.
https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

Kann die Messzeit irgendwie verändert werden oder ein Thema sein?!


Gruß,
M.

von c-hater (Gast)


Lesenswert?

Marten M. schrieb:

> Ja ich habe mit dem Multimeter am ADC-Eingang auch die 20mV
> nachgewiesen.

Nenne doch mal Marke und Typ des Multimeters...

von Martin (Gast)


Lesenswert?

2 Digit können Tolleranz sein und Störungen im Messsignal. Dein 
Multimeter kann auch eine Tolleranz haben.

von Einer K. (Gast)


Lesenswert?

Marten M. schrieb:
> Leider zeigt mir der Controller
> immer nur den Wert 2 an, also 10mV.

Bei einem (dem System innewohnenden) Fehler von 2 Digit doch ganz ok..

Verwendest du denn nicht die interne 1.1V Referenz?
Warum nicht?

von Marten M. (mcgonahy148)


Lesenswert?

Arduino Fanboy D. schrieb:
> Bei einem (dem System innewohnenden) Fehler von 2 Digit doch ganz ok..
>
> Verwendest du denn nicht die interne 1.1V Referenz?
> Warum nicht?

Ich messe über einen sehr großen Dynamikbereich. Die 20mV sind jetzt 
kein Muss, ich wollte es nur verstehen und schauen wie weit ich runter 
komme bei der AD-Messung.

Ok, also unter 2 Digits ist eigentlich unmöglich zu messen wenn ich das 
so höre?!

von Einer K. (Gast)


Lesenswert?

Marten M. schrieb:
> Ok, also unter 2 Digits ist eigentlich unmöglich zu messen wenn ich das
> so höre?!
Das Datenblatt gibt Auskunft.

von Marten M. (mcgonahy148)


Lesenswert?

Arduino Fanboy D. schrieb:
> Verwendest du denn nicht die interne 1.1V Referenz?

Mit der 1.1V Referenz komme ich auf einen besseren Wert, liegt auch ca. 
3-4digits daneben...

von Einer K. (Gast)


Lesenswert?

Marten M. schrieb:
> Mit der 1.1V Referenz komme ich auf einen besseren Wert, liegt auch ca.
> 3-4digits daneben...

u.A. weil die Referenz auch bis zu 10% Fehlpeilung hat.
Aber diese kann man kompensieren.

von Peter D. (peda)


Lesenswert?

Der ATmega2560 kann den ADC-Eingang *10 oder *200 verstärken.

von Spess53 (Gast)


Lesenswert?

Hi

>Der ATmega2560 kann den ADC-Eingang *10 oder *200 verstärken.

Ja, mit Einbußen in der Genauigkeit:

If 1× or 10× gain is used, 8 bit resolution can be expected. If 200× 
gain is
used, 7 bit resolution can be expected.

MfG Spess

von c-hater (Gast)


Lesenswert?

Spess53 schrieb:

> If 1× or 10× gain is used, 8 bit resolution can be expected. If 200×
> gain is
> used, 7 bit resolution can be expected.

Wo genau stammt denn dieses Zitat her? Grundsätzlich stimmt natürlich, 
dass der Einsatz der internen Vorverstärker einen (kleinen) Verlust an 
Genauigkeit bringt, aber er bringt keinen Verlust an Auflösung.

Insbesondere ist an dem Zitat auch suspekt, dass es für den Fall 1x auch 
nur 8 Bit verheißt. 1x heißt nämlich: Kein Vorverstärker...

Im Datenblatt steht unter der Mux-Tabelle folgende Anmerkung:

Note: 1. To reach the given accuracy, 10× or 200× Gain should not be 
used for operating voltage below 2.7V.

Das heißt aber im Umkehhrschluss: Oberhalb von 2.7V gibt es auch mit 
Vorverstärker keine Einschränkungen der Genauigkeit und ohne 
Vorverstärker, also mit Gain 1x gibt es über den vollen Bereich der 
Betriebsspannung keine.

von Anja (Gast)


Lesenswert?

c-hater schrieb:
> aber er bringt keinen Verlust an Auflösung.
Hmm,
Auflösung = RMS-Wert des Rauschens.
Der Peak/Peak ist dann Faktor 6.6 über dem RMS-Wert (bei gaußscher 
Verteilung).

Also 7 Bits Auflösung sind dann ca 4 rauschfreie (Peak/Peak) Bits.

Gruß Anja

von Anja (Gast)


Lesenswert?

c-hater schrieb:
> 1x heißt nämlich: Kein Vorverstärker...
aber differentielle Messung.

Gruß Anja

von Stefan F. (Gast)


Lesenswert?

Hier kommt es auch auf die Schaltung an. Bei vielen Arduino Boards ist 
die AVCC ungefiltert, dann kann man effektiv nur 8 nutzbare Bits 
erwarten. Die unteren beiden liefern nur Rauschen.

In den folgenden App Notes ist beschrieben, wie man das Optimum heraus 
holt:
https://www.mikrocontroller.net/attachment/241743/doc2521.pdf
http://ww1.microchip.com/downloads/en/appnotes/doc8003.pdf

von Peter D. (peda)


Lesenswert?

Stefan ⛄ F. schrieb:
> Bei vielen Arduino Boards ist
> die AVCC ungefiltert, dann kann man effektiv nur 8 nutzbare Bits
> erwarten. Die unteren beiden liefern nur Rauschen.

In der Praxis habe ich gemerkt, daß die LC-Kombination in AVCC genau 
0,nix bringt. Auch ohne erreiche ich stabile 10 Bit. Mit einem 10-Gang 
Poti kann ich alle Werte 0..1023 anzeigen lassen.

In einer Anwendung habe ich den Mittelwert über je 64 Messungen 
programmiert. Als ich dann mal die VCC auf dem Oszi angezeigt habe, habe 
ich mit Entsetzen bis zu 0,5V Störungen drauf gesehen. Die Ursache war 
die Multiplexfrequenz des MAX7219 und ein grauenvolles Layout 
(Fremdfirma). Den ADC lies das kalt und er lieferte stabile 10 Bit. 
Hauptsache die AVCC blieb über der Referenz (4,096V).

von Stefan F. (Gast)


Lesenswert?

Peter D. schrieb:
> In der Praxis habe ich gemerkt, daß die LC-Kombination in AVCC genau
> 0,nix bringt. Auch ohne erreiche ich stabile 10 Bit. Mit einem 10-Gang
> Poti kann ich alle Werte 0..1023 anzeigen lassen.

Das erklärt, warum einige Arduino Bards derart vereinfacht sind.

Es hängt sicher davon ab, wie stabil VCC ist. Wenn du z.B. einen ESP 
Chip in deiner Schaltung hast, wird es spannend.

von c-hater (Gast)


Lesenswert?

Anja schrieb:

> Auflösung = RMS-Wert des Rauschens.

Die Frage ist: welches Rauschen?

Der Vorverstärker kann natürlich nix am SNR des Quellsignals verbessern, 
im Gegenteil: er wird zwangsweise eigenes Rauschen hinzufügen, alles 
andere wäre eine Verstoß gegen Naturgesetze.

Aber: er kann das Signal so aufpumpen, dass es die Fähigkeiten des ADC 
viel besser nutzen kann und so viel mehr nutzbare Bits produzieren. Und 
das trotz der Tatsache, dass er das Rauschen der Quelle natürlich mit 
aufbläst und sogar selber Rauschen hinzufügt.

Mal ganz abseits von der reinen Mathematik: Wäre es nicht so, würde 
niemand irgendwo einen Vorverstärker benutzen, bevor er das Signal in 
eine ADC einspeist. Die Praxis zeigt aber, dass dies sehr, sehr oft 
getan wird. Also muß da schon ein praktischer Nutzen bestehen, meinst du 
nicht?

von c-hater (Gast)


Lesenswert?

Anja schrieb:

> aber differentielle Messung.

So what? Ist doch nun wirklich scheißegal. Der einzige Unterschied ist, 
ob das Ergebnis signed ist oder eben nicht. Die Auflösung bleibt gleich 
und auch die Genauigkeit.

von Rainer V. (a_zip)


Lesenswert?

c-hater schrieb:
> Die Frage ist: welches Rauschen?

Du hast nicht verstanden, dass das ausschließlich eine Frage für dich 
selbst ist!
Gruß Rainer

von c-hater (Gast)


Lesenswert?

Rainer V. schrieb:

> Du hast nicht verstanden, dass das ausschließlich eine Frage für dich
> selbst ist!

Wie meinen?

von Prokrastinator (Gast)


Lesenswert?

Marten M. schrieb:
> Auflösung
> ist ja ca. 5mV bei 10Bit und 5V Vcc.

Auflösung ist nicht Genauigkeit.

> Ok, also unter 2 Digits ist eigentlich unmöglich zu messen wenn ich das
> so höre?!
Nö.
Aber ohne Kalibrierung und einen sehr sauberen Aufbau geht eben nicht 
viel.
Nach oben wird das beliebig kompliziert.
Deswegen immer ein breites Grinsen wenn hier jemand von 24Bit Auflösung 
faselt.

von Rainer V. (a_zip)


Lesenswert?

c-hater schrieb:
> Wie meinen?

...nicht verstanden...siehe oben...

von Prokrastinator (Gast)


Lesenswert?

c-hater schrieb:
> Anja schrieb:
>
>> aber differentielle Messung.
>
> So what? Ist doch nun wirklich scheißegal. Der einzige Unterschied ist,
> ob das Ergebnis signed ist oder eben nicht. Die Auflösung bleibt gleich
> und auch die Genauigkeit.

Haha, für den Softwerker mag das stimmen.
In der realen Welt sieht das anders aus.

von c-hater (Gast)


Lesenswert?

Prokrastinator schrieb:

> Haha, für den Softwerker mag das stimmen.
> In der realen Welt sieht das anders aus.

Softwerker müssen in erster Näherung davon ausgehen, dass die Hardwerker 
einfach mal ihren Job machen.

Schlimm genug, dass man sehr oft die Fehler der Hardwerker in der 
Software ausbügeln muss, weil's insgesamt billiger wird, das Problem auf 
diese Art zu lösen...

von Rainer V. (a_zip)


Lesenswert?

c-hater schrieb:
> Schlimm genug, dass man sehr oft die Fehler der Hardwerker in der
> Software ausbügeln muss, weil's insgesamt billiger wird, das Problem auf
> diese Art zu lösen...

Du bist also eher Softwerker?! Darauf wäre ich jetzt nicht gekommen, 
aber das ewige Gezanke zwischen den "Software-Nullen" und den 
"Hardware-Nullen" ... man habe ich das gehasst und genossen...
Gruß Rainer

von c-hater (Gast)


Lesenswert?

Rainer V. schrieb:

> Du bist also eher Softwerker?!

Ja, das ist wohl so. Macht mir einfach schon immer mehr Spaß und der 
nachlassende Einsatz an der Hardwarefront ist teilweise auch 
altersbedingt. Die Sehfähigkeiten lassen einfach nach. Das ist schlicht 
nicht gut für die Fehlersuche in den Ansammlungen von "Staub", die 
heutige Hardware ausmacht.

Aber die Schaltpläne und Layouts lassen sich ja problemlos bis in die 
Größenordnung dessen aufblasen, was ich sehen kann. Und da kann ich 
immer noch gut mitreden. Wenn ich muss...

> aber das ewige Gezanke zwischen den "Software-Nullen" und den
> "Hardware-Nullen"

Niemand hat über irgendwelche Nullen geredet. Fehler passieren überall. 
Nur wer garnichts tut, macht keine.

Der Punkt ist aber: Ich habe noch nie erlebt, dass die Hardwerker 
irgendeinen Softwarefehler ausbügeln mussten. Den umgekehrten Fall 
allerdings schon recht oft...

von Mähdrescher (Gast)


Lesenswert?

c-hater schrieb:

> Aber die Schaltpläne und Layouts lassen sich ja problemlos bis in die
> Größenordnung dessen aufblasen, was ich sehen kann. Und da kann ich
> immer noch gut mitreden. Wenn ich muss...

Nein, das mußt Du nicht. Bitte, bitte nicht! Es genügt auch so schon 
vollauf, was Du hier jeden Tag zum Besten gibst.

:((

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.