Wertschwankungen nach AD-Wandlung

Gast #2918905
Lesenswert?

Grüß euch,
ich benutze die Pro Unit Mega 128 von C-Control.
und will Spannungswerte per AD-Wandlung abspeichern und mit einem 
Zeitstempel versehen.
Die Spannungswerte kommen von einem Distanzsensor.

Als Referenzspannung für die AD-Wandlung wurden 2,56V gewählt (intern), 
bei 10Bit Auflösung.

Um zu testen, ob die gelieferten Spannungswerte nach der AD-Wandlung 
identisch mit den Spannnungswerten vor der Messung sind, wurde an den 
Sensor ein Voltmeter angeschlossen und der Abstand zum Messobjekt 
konstant gehalten.

Die Werte, die das Voltmeter liefert, sind konstant und schwanken nicht.
Die Werte nach der AD-Wandlung schwanken stark. Es wurde alle 200ms ein 
Messwert aufgenommen.

Digitalwert Zeit/s Spannung/V nach ADW Spannung/V Voltmeter angezeigt
235         0,4             0,5875                          0,619
242         0,6             0,605                           0,619
238         0,8             0,595                           0,619
235         1               0,5875                          0,619
236         1,2             0,59                            0,619
232         1,4             0,58                            0,619
232         1,6             0,58                            0,619
237         1,8             0,5925                          0,619
305         2               0,7625                          0,619
235         2,2             0,5875                          0,619
241         2,4             0,6025                          0,619
239         2,6             0,5975                          0,619
236         2,8             0,59                            0,619
247         3               0,6175                          0,619
234         3,2             0,585                           0,619
242         3,4             0,605                           0,619

Warum kommt es zu diesen Schwankungen nach der AD-Wandlung, obwohl der 
Spannungswert des Sensors NICHT schwankt?

Hier der Auslesecode:
1
word abstand(void)
2
{
3

4
word x;
5
x=0;
6
byte v_ref;
7
v_ref=0xC0;  //referenzspannung
8
byte channel;
9
channel=3;
10
ADC_SetInt(v_ref,channel);  //referenzspannung ist 2,56V->0xC0  Kanal 3 (PF.3)
11
ADC_StartInt();
12

13
x=ADC_ReadInt();       //AD-wert einlesen
14

15
return x;
16
}

Die Funktion abstand() wird alle 200ms aufgerufen.
Die Zeitmessung wird durch eine Interruptfunktion realisiert.

Vielen Danke für eure Antworten!!
Gast #2918945
Lesenswert?

Ich greife die Spannung direkt am AD-Eingang ab. Hab auch schon direkt
am Sensor die Spannung gemessen. Zwischen der Messung direkt am Sensor 
und
der Messung direkt am Eingang gibt es keine Unterschiede.
Persönliche Seite #2918954
Lesenswert?

Felix schrieb:
> Ich greife die Spannung direkt am AD-Eingang ab. Hab auch schon direkt
> am Sensor die Spannung gemessen.

Damit hast du die Fragen

Magnus M. schrieb:
> Wie lang ist die Leitung zwischen µC und Sensor?
> Ist die Leitung geschirmt?

nicht beantwortet.

Felix schrieb:
> Zwischen der Messung direkt am Sensor und der Messung direkt am
> Eingang gibt es keine Unterschiede.

Das Interessiert auch nicht.


Du kannst auch gerne mal das Abtastintervall deines Programmes von 200ms 
auf 1ms verkürzen und dann 20 aufeinanderfolgende Wandlungsergebnisse 
hier posten.
Persönliche Seite #2918969
Lesenswert?

Felix schrieb:
> Ich soll die Messintervalle auf 1ms oder die Abtastintervalle verkürzen?

Ist gehüpft wie gesprungen. Lass den µC in 1ms Intervallen messen und 
zeige uns die Wandlungsergebnisse von mindestens 20 aufeinanderfolgenden 
Wandlungen. Es interessieren nur die Wandlungsergebnisse des µCs. Das 
Multimeter interessiert nicht.

Ich tippe jedenfalls auf Netzbrumm.
Gast #2918984
Lesenswert?

Der µC kann maximal in 10ms-Intervallen messen, da die Interruptfunktion 
zur Zeitmessung alle 10ms vom internen Timer ausgelöst wird.

Kann höchstens in 100ms fortlaufend messen lassen und die Ergebnisse 
ausgeben lassen. Kommt dann eben auf die Geschwindigkeit der AD-Wandlung 
an, wie viele Werte diese in 100ms bereitstellen kann.
Gast #2919024
Lesenswert?

So, Test mit Batterien wurde durchgeführt.
Werte schwanken immer noch mit genau so großer Abweichung.
Muss dazu sagen, dass ich am gleichen Port wie für die Abstandsmessung 
eine Antenne zum Empfangen der Funkuhrzeit angeschlossen habe.
Persönliche Seite #2919032
Lesenswert?

Felix schrieb:
> So, Test mit Batterien wurde durchgeführt.
> Werte schwanken immer noch mit genau so großer Abweichung.

Miss mal mit deinem Multimeter den Wechselspannungsanteil am ADC-Pin.

> Muss dazu sagen, dass ich am gleichen Port wie für die Abstandsmessung
> eine Antenne zum Empfangen der Funkuhrzeit angeschlossen habe.

Dann leg mal deinen Funkuhrempfänger still.
Gast #2919061
Lesenswert?

dann kann man noch überprüfen ob der ADC Teil am µC lt. Datenblatt 
beschaltet ist. Also ob Analog und Digital GND getrennt und über ein 
Filter verbunden sind und ob an ARef ein C nach GND eingebaut ist.
Persönliche Seite #2919141
Lesenswert?

Im Übrigen sind die Ergebnisse (bis auf den 305er Ausreisser) doch gar 
nicht sooo schlecht...
1
        2    2    2    2    2    2    2    2    2    2    2    2    2    2    3    3    3
2
        3    3    4    4    5    5    6    6    7    7    8    8    9    9    0    0    1
3
        012345678901234567890123456789012345678901234567890123456789012345678901234567890
4

5
235          X                                                                           
6
242                 X                                                                    
7
238             X                                                                        
8
235          X                                                                           
9
236           X                                                                          
10
232       X                                                                              
11
232       X                                                                              
12
237            X                                                                         
13
305                                                                                X     
14
235          X                                                                           
15
241                X                                                                     
16
239              X                                                                       
17
236           X                                                                          
18
247                      X                                                               
19
234         X                                                                            
20
242                 X
Gast #2920035
Lesenswert?

Ich sehe das Problem nicht.
Vergisst man den 300er Wert, dann sind die Ergebnisse doch gut.
So ein Rauschen habe ich bei vielen AD-Wandlern erlebt. Auch bei sehr 
teuren.
Als Faustformel ignoriese ich 20% der LSBs.
Sprich: bei einem 8 Bit Wandler werden 2 Bit ignoriert. Bei 16 Bit 
werden 4 LSB-Bits ignoriert.
Damit bin ich bislang ganz gut gefahren.
Gast #2931260
Lesenswert?

Felix schrieb:
> also ist es eine frage der messdatenauswertung, damit man zu einem
> brauchbaren ergebnis kommt

Nein, deine Schwankungen sind nicht normal.
Wenn das Gesamtsystem richtig arbeitet sind es nicht mehr als 1-2 counts 
Schwankung.

Felix schrieb:
> Die Spannungswerte kommen von einem Distanzsensor.
Welche Quellimpedanz hat der Sensor?
Ist die Ausgangsspannung absolut oder ratiometrisch zur Versorgung?
Sind an irgendwelchen I/O-Pins Spannungen größer als die Versorgung 
(oder negativ) angelegt?

Gruß Anja
Gast #2933050
Lesenswert?

Hi
Die Referenzspannung wurde nur einmalig eingestellt.
Am Mikrocontroller sind noch eine Funkuhr und eine SD-Karte 
angeschlossen, welche auf den Controller abgestimmt sind (alles 
C-Control).

Warum brauch ich noch einen Widerstand zwischen Sensor und Anschlußpin?

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