mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Fehlverhalten ATMEGA16


Autor: Gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe folgendes Problem mit dem ADC des ATMEGA16.

wenn ich an irgendeinen Eingang des 8 Kanal ADC einen Spannungsteiler 
anschließe, funktioniert alles perfekt und auch die über UART 
ausgegebenen Werte stimmen mit der eingestellten Spannung am Teiler 
überein. Jedoch wenn ich jetzt einen Widerstand von 10k an den 
betreffenden ADC Eingang gegen VCC anschließe, bekomme ich anstatt 1023 
irgendwelche Werte von 400 bis 688 ausgegeben, die aber dann 
weitestgehend konstant bleiben.

Die Einstellungen des ADC wie folgt:

--> 5V Referenzspannung an dem AREF Pin mit Kondensator
--> Der ADC Prescaler ist auf einen Wert von 64 eingestellt
--> ADMUX [4:0] =0x00 entspricht einem single ended channel ADC0
--> der ADC wird weiters von dem interenen Timer1 durch dessen overflow
    getriggert.

Das gesamte Programm findet sich im Dateianhang.

LG.

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

Bewertung
0 lesenswert
nicht lesenswert
Hier ist der Dateianhang, hab ihn leider vorhin vergessen

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ADMUX [4:0] =0x00 entspricht einem single ended channel ADC0
Der Satz ist an und für sich korrekt, ABER in deinem Code steht
//Zeile 87 ff.
  ADMUX   = 0x00;
  ADMUX  |= (0<<REFS0) | (1<<MUX0);
                         ^^^^^^^^^
Was doch sagt, dass du ADC1 misst, oder?
hth. Jörg
ps.: wenn du jede Sekunde messen willst, dann schreib das doch auch hin:
#define T1_PRELOAD (0x10000 - (F_CPU/256))
//...
TCNT1 = T1_PRELOAD;
TCCR1B = (1<<CS12);

Autor: Gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey,

ja stimmt haben zuerst mit dem ADC0 gearbeitet und danach einen anderen 
Eingang probiert um zu sehen ob vl der ADC0-Eingang defekt ist.

Weißt du vl was mit dem ADC sein könnte?

lg

Autor: Thomas O. (kosmos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal im Datenblatt, die Quelle darf nicht zu hochohmig sein weil 
die Sample & Hold Stufe im ADC diese sonst zu stark belastet, ansonsten 
klemme mal einen kleinen Kerko zw. ADC-Eingang und Masse. Das könnte 
dein Problem lösen. Was misst du überhaupt evtl. wäre ein LC einem RC 
Netzwerk überlegen falls das Signal zu Sprunghaft ist.

Autor: Gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas

im späteren Verlauf führen wir eine einfache Tempmessung durch.

Jetzt wollten wir einfach mal den ADC testen, einmal einen 10k gegen 
Masse => Wert 0, dann gegen VCC Wert war nicht 1023 sondern irgendwas 
zwischen 500 und 600.
Hab das Problem schon gefunden, es lag mal wieder am Board bzw an mir :) 
(EasyAVR5), hab vergessen die Leds wegzuschalten, Schande über mich...


Was mich jetzt noch interessieren würde wären deine Tipps bezüglich dem 
Kondensator und den Netzwerken, die Schaltung sieht dann bei uns so aus, 
das wir den NTC zwischen Eingang und Masse anschliessen und zwischen VCC 
und Eingang.

lg

Autor: Gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg

danke für die Tipps bez der schöneren Schreibweise.

lg

Autor: Gregor (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ups da hab ich was vergessen

 Was mich jetzt noch interessieren würde wären deine Tipps bezüglich dem
 Kondensator und den Netzwerken, die Schaltung sieht dann bei uns so 
aus,
>das wir den NTC zwischen Eingang und Masse anschliessen und zwischen VCC
>und Eingang.

sollte so natürlich sein
:

die Schaltung sieht dann bei uns so aus,
das wir den NTC zwischen Eingang und Masse anschliessen und zwischen VCC
und Eingang einen Widerstand der der Hälfte des NTC_Wertes bei 
Raumtemperatur entspricht, wären dann also ca 5k Ohm

lg

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das mit der nicht zu hochohmigen Quelle für den ADC hat folgende 
Ursache:
wenn die Quelle zu hochohmig ist, ist der Kondensator der S&H im AVR 
nicht schnell genug auf den anliegenden Wert geladen/entladen, das gibt 
also Meßfehler. Wenn die Änderungen nur langsam erfolgen, ist das 
normalerweise kein Problem.
Allerdings reagiert der Eingang immer empfindlicher auf eingekoppelte 
Störspannungen, wenn die Quelle nicht relativ niederohmig ist.
Da kann ein Kondensator zwischen ADC-In und GND dann helfen als Tiefpaß 
gegen Störungen.
Mit 10k sollte es noch nicht passieren, ich durfte aber durch 
ungünstigen Aufbau beim experimetieren auch schon einen 1µ rüberhängen, 
um erstmal sinnvolle Werte zu bekommen.

Mich verwirrt allerdings, daß Du einen recht konstanten Wert bekommst, 
daß ist eher ungewöhnlich.

Gruß aus Berlin
Michael

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.