ADC - Genauigkeit (Abstufung)

Gast #3183950
Lesenswert?

Hallo zusammen,

ich arbeite derzeit an einem Projekt (Atmgea 168P), an dem auch die 
Differenz von 2 Messwerten ermittelt werden muss.
Kurze Übersicht:

- Der AD Wandler ließt 10 Werte ein und bildet den Mittelwert_1

- definierte Zeit warten

- Der AD Wandler ließt 10 Werte ein und bildet den Mittelwert_2

- er berechnet daraus die Differenz (Mittelwert2 - Mittelwert1) 
(rechnet physikalisch nicht in den negativen Bereich)

Versuche zeigten, dass es nur teilweise "richtig" funktioniert. Ich habe 
mir die Differenz der beiden Mittelwerte auf einer Anzeige ausgeben 
lassen.
Die Schwankt von 0 - 5 Inkremente :o, trotz 10 Mittelwerte.

Die Spannung wird an einem RC Gleid 50 k und 100 uF abgegriffen 
(Steckbrett, 5 cm Draht zum Port) und der Analogeingang hat zu den PWM 
Ausgängen min. 2 PINs frei.

Gibt es da Abhilfe?
Gast #3183958
Lesenswert?

>Gibt es da Abhilfe?

Klar. Miss nicht sondern nimm Konstante. :-)

Mal im Ernst: Du misst in der realen Welt. Da ist nichts konstant.

Es mag sein, das in Deinem konkreten Fall tatsächlich ein 
gleichbleibender Wert zu erwarten ist. Aber da wir keine Details kennen 
und meine Glaskugel gerade auf Windenergie umgestellt wird, kann ich Dir 
keine Hinweise geben.

Also:
1. Was misst Du?
2. Wie misst Du?
3. Was geschieht in dem Zeitabstand zwischen den beiden 
Mittelwertbildungen?
4. Was weicht ab? Jeweils der erste Mittelwert, der zweite, der erste 
und der zweite Mittelwert?
5. Schaltung?
Gast #3183979
Lesenswert?

blank schrieb:
> Versuche zeigten, dass es nur teilweise "richtig" funktioniert. Ich habe
> mir die Differenz der beiden Mittelwerte auf einer Anzeige ausgeben
> lassen.
> Die Schwankt von 0 - 5 Inkremente :o, trotz 10 Mittelwerte.

kann auch ein software fehler sein, ich habe es selber schon fertig 
gebracht nicht auf der fertig vom ADC zu warten, dann bekommt man auch 
nicht richtiges gemessen.
Gast #3183983
Lesenswert?

Abtastrate = 8 Mhz Clock und Vorteiler auf 64  = 125 kHz damit er die 10 
Bit Auflösung erreicht, steht im Datenblatt S. 246 (50-200 kHz for max 
resolution).

1. was misst Du?
- der Aufbau soll einen Spannungsverlauf von einem Kondensator messen 
(der Kondensator dient nur als eine bestimmte Rampe zum Testen, später 
dann ein Tacho) Es soll praktisch die "Steigung" der Kurve bestimmt 
werden.
//einen Mittelwert an einer x beliebigen Stelle der Ladekurve einlesen.
//den Timer starten
//weitere Mittelwerte einlesen, BIS die beiden Mittelwerte eine 
festgelegte Differenz ergeben, z.B 5.
//Timer stoppen und Steigung berechnen.

2. wie
Generell funktioniert das auch, nur gibt es in unregelmäßigen 
Zeitabständen Aussetzer, die praktisch nur durch eine falsch ermittelte 
Differenz zustande kommen können. Deswegen habe ich mir die Differenz 
auf der Anzeige ausgegeben. Ich habe den Kondensator 100uF über 50 kOhm 
aufgeladen und dann diese (eigentlich konstante) Spannung an den 
Analogpin gelegt. Obwohl dann die Differenz 0 sein sollte, zeigt er 0-5 
Inkremente an.

3.
Später soll es wie im Unterpunkt 1 beschrieben ablaufen. für diesen Test 
jedoch gibt es sozusagen keine Zeit dazwischen. Sobald er den ersten 
Mittelwert gebildet hat, bildet er direkt danach den 2ten.

4.
gute Idee, überprüfe ich gleich.

5.
der Teil basiert bisher nur auf dem RC Glied. also die 50kOhm an 5 Volt, 
dann der 100uF an 0V und zwischendrin wird die Spannung abgegriffen.
Gast #3184003
Lesenswert?

>4.
>gute Idee, überprüfe ich gleich.

Das verstehe ich nun überhaupt nicht.
Du hast doch in Deinem ersten Post schon von einer Abweichung 
geschrieben. Dann müsstest Du doch wissen, was wovon abweicht?
Gast #3184016
Lesenswert?

blank schrieb:
> - Der AD Wandler ließt 10 Werte ein und bildet den Mittelwert_2

Mittelwert über 10 ist für einen µC eine dumme Sache. Nimm besser 16 
Werte, dann wird die Mittelwertbildung zu einer einfache Schieberei.

Wenn statistisch alles mit rechten Dingen zugeht, solltest du bei 10 
Werten deine Schwankungsbreite um einen Faktor 3 verringern, bei 16 um 
einen Faktor 4. Hast du das mal kontrolliert? Die Differenzbildung kann 
in Bezug auf Fehlerforpflanzung eine heikle Sache sein - hängt halt 
davon ab, wie die Zahlen liegen.

Wildes Rumgeeier evtl. schon bei den Eingangsdaten würde auf ein Soft- 
oder Hardware Problem hindeuten. Aber wer weiß schon (Hint), wie du das 
machst und wie deine Signale aussehen.
Gast #3185571
Lesenswert?

als ich 16 Werte verwendet hab ist die Sache nochmal merklich besser 
geworden. Vielen Dank für alle Mitteilungen.
Komisch nur, dass selbst bei 128 Werten, die zu einem Mittelwert 
verrechnet werden immernoch eine Differenz von bis zu 3 bleibt. Obwohl 
die Spannung eigentlich konstant sein müsste, -> Kondensator ist geladen 
und liegt ja über die 50kOhm an 5Volt.
Gast #3185908
Lesenswert?

Also der Hauptgrund für "wackelnde" ADC Werte ist die Elektronik.

Die gesamte Beschaltung so hinzubekommen, das das Rauschen am ADC 
kleiner 2 Bleibt ist schon eine Herausforderung.
Dazu zählt:
* die Spannungsversorgung von µC und restlicher Beschaltung
* Filterung von Spannungsspitzen
* sauber Masseführung
* gute ADC Referenz
.
.
.
.

Solange das nicht passt, ist ein Rauschen von 2-3 Bit vollkommen normal 
und nichts ungewöhnliches.
==> Lass den ADC als 10 Bit laufen und sieh dir von den Ergebnissen nur 
die höheren 8 Bit an. Verlierst etwas an Auflösung, das Signal sollte 
aber stabiler werden und vor allem näher am real erwarteten Wert ( des 
RC Gliedes) liegen.


Für solche Messwertaufnahmen könnte eventuell ein PT1 Filter besser 
geeignet sein als eine Mittelwertberechnung. Vielleicht mal drüber 
nachdenken.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren