ADC schwankt um Wert 10

Gast #2114205
Lesenswert?

Hallo,

ich habe ein Problem bei dem ich nun nicht weiterkomme. Ich benutze eine 
ATxmega16D4. Ich lege nun an ADC4 keine Spannung an, sondern auf Masse.

Ich nutze Freerun und 12 Bit. und lese den Wert ständig aus und gib den 
Wert auf dem Display aus. Nun habe ich aber das Problem das die Anzeige 
von 160 bis 170 schwingt.

Das schwingen habe ich überall, auch wenn ich Diff Modus benutze. 
Weitere Eigenart ist, das ich je nach Einstellung von Prescaller Werte 
von 170 bis 1000 bekomme.

Hatte jemand schon das Problem ?

Meiner Ansicht müsste das ganze Ding schwingen ? Wenn ich ein Rauschen 
draufhabe dann dürfte es ein Unterschied machen ob ich Gain habe oder 
nicht. Das tuts aber nicht. Kann mir da jemand helfen. Seidenn die 
Referenzspannung würde schwingen, aber das kann ich mir nicht 
vorstellen.

Wenn genaueres dazu gebraucht wird, liefere ich auch gerne das.

Danke
(Firma: TravelRec.) Persönliche Seite #2114270
Lesenswert?

Mike schrieb:
> Ich nutze Freerun und 12 Bit. und lese den Wert ständig aus und gib den
> Wert auf dem Display aus. Nun habe ich aber das Problem das die Anzeige
> von 160 bis 170 schwingt.

Ein schwingen von 3...5 Werten ist bei der Serie normal. Größere 
Abweichungen deuten auf Einstreuungen hin. Welche Quellimpedanz hast Du 
am ADC-Pin angeschlossen? Schließe mal probehalber direkt am ADC-Pin 
einen Keramikkondensator von 10nF nach Masse und beobachte Deine 
Messung.

Mike schrieb:
> Weitere Eigenart ist, das ich je nach Einstellung von Prescaller Werte
> von 170 bis 1000 bekomme.

Klingt nach zu hoher Quellimpedanz oder Software-Fehler bei der 
Triggerung und Abfrage des ADC. Mehr kann man sagen, wenn Du mit Details 
´rausrückst.
Gast #2115208
Lesenswert?

Knut Ballhause schrieb:
> Ein schwingen von 3...5 Werten ist bei der Serie normal. Größere
> Abweichungen deuten auf Einstreuungen hin. Welche Quellimpedanz hast Du
> am ADC-Pin angeschlossen? Schließe mal probehalber direkt am ADC-Pin
> einen Keramikkondensator von 10nF nach Masse und beobachte Deine
> Messung.

Mike schrieb:
> Ich lege nun an ADC4 keine Spannung an, sondern auf Masse.

Das kann's also nicht sein.

MfG Klaus
Gast #2115259
Lesenswert?

Ich habe ein ähnliches Problem mit dem 128A3. Hier schaukelt auch alles 
vor sich hin. Hatte allerdings fälschlicherweise 3.3V als Referenz 
benutzt.
Das Layout war auch nicht optimal. Habe nun eine 2.5V Referenz und ein 
Redesign gemacht, aber leider noch nicht getestet.

Knut
Gast #2115661
Lesenswert?

Danke für die schnellen Antworten.

Leider hat kein Vorschlag zu besseren Ergebnissen geführt. Eigenartig 
war, dass wenn ich beide Eingänge mit Masse verbunden habe auch 
tatsächlich einen konstanten Wert erhalten habe im Diff - Modus.

Desweiteren wundert es mich,, dass die Schwingung unabhängig von der 
Verstärkung ist. Meiner Meinung nach muss es dann etwas mit der 1V 
Konstantspannungsquelle zu tun haben ? Hat jemand mit dieser schon 
gearbeitet und perfekte Werte erhalten ?

Ich verwende Freerun Modus ? hat es damit was zu tun ?

Danke für die Hilfe.
Angehängte Dateien:
Gast #2115674
Lesenswert?

Hallo Mike,
wie schnell samplest du? Und wie hast du die Geschwindigkeit berechnet?

Schaltest du den ADC-Kanal um? Dir ist klar, dass im freerunning modus 
jeder kanal mindestens zweimal gesamplet wird, selbst wenn du 
umschaltest?
Gast #2115715
Lesenswert?

Hallo avion23,

ich messe zur Zeit nur ein Kanal ohne Verstärkung und interne Referenz 1 
V im Freerunning modus.



Messung:

    Strom_a = 0;
    for (unsigned long a = 0; a<1000; ++a)
      {
        //ADCA_CTRLA = 0x05;
        while(!ADCA.CH0.INTFLAGS);
        ADCA.CH0.INTFLAGS=ADC_CH_CHIF_bm;

        Test = ADCA.CH0RES +2000;
        Strom_s = (unsigned long) Test;
        Strom_b = Strom_s;
        Strom_a = Strom_a + Strom_b;
      }

    Strom = (Strom_a / (1000) );//- 2300;


ich versuchte auch den Mittelwert zu bilden, dort waren die Abweichungen 
dann nur noch 3 LSB.
Median hab ich auch schon probiert.

Beim Mittelwert scheint dann der Wert über die Zeit zu wandern. zB. von 
882 auf 908 und wieder zu 900 unnd so weiter. Das Hilft mir dann auch 
net weiter.
Gast #2115758
Lesenswert?

Hi Mike,

Mike schrieb:
> ich messe zur Zeit nur ein Kanal ohne Verstärkung und interne Referenz 1
> V im Freerunning modus.

Das ist schonmal gut. Kannst du einen neuen Testcode aufsetzen in dem 
nur das nötigste vorhanden ist? D.h. adc init und samplen?

Spielchen wie Tiefpass würde ich erst viel später machen. Je mehr Code, 
destso mehr Fehler.
Gast #2115887
Lesenswert?

Die Quellen haben eine ziemlich hohe Impendanz (bedingt durch die 
Reihenwiderstände). Wenn der Kondensator nun unglücklich im Layout 
platziert ist kann ein Wechselspannungsanteil von 10LSB durchaus 
auftreten.
Das Layout müsste man mal begutachten.

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