www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC schwankt um Wert 10


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Icke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltplan Code Fotos vom Aufbau.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus schrieb:
> Mike schrieb:
>> Ich lege nun an ADC4 keine Spannung an, sondern auf Masse.
>
> Das kann's also nicht sein.

Okay, dann liegt´s am Layout und oder an der Versorgung. Außerdem gibt 
es noch ein Erratum, die Referenzspannung betreffend. Ist diese größer 
als 2.4V oder Vcc-0.6V, treten merkwürdige Effekte auf.

Autor: Knut (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: avion23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Fabian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich kann dir nur empfehlen noch mal die Errata genau zu lesen. Ich meine 
da schon mal etwas in Zusammenhang mit dem Freerun-Modus gelesen zu 
haben.

Gruß

Fabian

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: avion23 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike schrieb:
> 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.

Das riecht nach murksigem Layout. Möglich wäre außerdem eine falsche 
Init der Eingangsmultiplexer.

Autor: Nacktaktiver (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie hoch ist deine Sampling Frequenz, es kann gut sein das die Zeit 
nicht ausreicht den Kondensator ausreichend zu laden wenn man ihn zu oft 
durch Sampling belastet.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.