www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik versch. Werte vom ADC trotz gleicher Schaltung (mega 8)


Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte da folgendes Problem:

Auf meinem Evaluationboard habe ich mit dem Mega8 einen Sensorwert über 
den ADC1 eingelesen. EWs handelt sich dabei um einen Temperatursensor, 
der im Spannungsteiler an R1 hängt. R2 hat einen etwas kleineren Wert, 
damit ich sicher sein kann, dass ich nie über meine Referenzspannung 
(interne 2,56V) komme (der Spannungsteiler hängt an 5V).

Der ADC hat dabei gut akzeptable Werte einegelesen, die man dann leicht 
verarbeiten konnte.

Ich habe dann die Schaltung mal ordentlich auf eine Platine aufgebaut. 
Einziger Unterschied ist, dass ich den kleinen Mega8 (SMD) genommen habe 
und dass der ADC nicht meht ADC1, sondern ADC0 ist. Ziemlich irrelevant, 
denke ich.

Nur habe ich jetzt das Problem, bei dem selben Programmcode liest mir 
der ADC kaum noch Differenzwerte vom Sensor ein.
Um Zahlenwerte zu nennen:
Vorher hatte der 10bit AD-Spannungs-Wert bei 20...35°C eine Differenz 
von 70 und jetzt gerade von 5.

Bin da sehr ratlos, kann auch keine weiteren Informationen geben, da die 
Schaltungen sonst identisch sind.

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

Bewertung
0 lesenswert
nicht lesenswert
Habe hier mal den Schaltplan.

Der Tempsensor befindet sich an JP2 zwischen 3 und 4.
(Und VCC habe ich nachträglich noch angeschlossen.)

Autor: vorbeigeschlendert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo hängt AVcc?

Autor: Andreas Haimberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVCC hängt in der Luft. Da gehört noch eine 10 uH-Drossel zwischen AVCC 
und VCC, siehe Datenblatt Seite 200.

Autor: vorbeigeschlendert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich wollte ihn eigentlich noch ein bisschen zappeln lassen... ;-)

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Plan hat das unterschlagen. Habe eben auf der Schaltung 
nachgemessen und AVCC ist an 5V verbunden.

Autor: Pascal Möller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für eine Drossel muss den da ran? Bei reichelt gibt es ja ne Menge 
und ich hab noch nicht so wirklich die Ahnung davon.

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt das Problem doch im Programmcode gefunden.
Ich hatte das Port daneben auf Ausgang definiert und dort 5V ausgeben 
lassen. Diese haben scheinbar den ADC-Eingang kapazitiv beeinflusst. Bei 
meinen Entwicklerboard betreibe ich den MEGA8 im DIP Format. Da sind die 
Beinchen weiter auseinander, desswegen war hier der Einfluss scheinbar 
nicht so groß.

Eine Drossel zwischen VCC und AVCC habe ich nicht verschalten.
Habe auch im Moment den 100müF Kondensator von AREV nach GND noch nicht 
drin und alles funktioniert bestens.

Autor: Werbungverschmäher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eine Drossel zwischen VCC und AVCC habe ich nicht verschalten.

besser wär's aber

> Habe auch im Moment den 100müF Kondensator von AREV nach GND noch nicht
> drin und alles funktioniert bestens.

Da gehören 10nF bis 100nF Keramik rein, keine 100 Mikrofarad Elko

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe mich verschrieben...ein 0.1 Mikrofarad SMD Kondensator ist 
bestellt.

Autor: Werbungverschmäher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Habe mich verschrieben...ein 0.1 Mikrofarad SMD Kondensator ist
> bestellt.

Die nehme ich auch immer

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist meine Erklärung für das Problem eigentlich plausibel ? Was anderes 
als die kapazitive Auswirkung des nebenliegenden Pins ist mir nicht 
eingefallen.

Autor: Werbungverschmäher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich nicht, denn statische Gleichspannung koppelt nicht kapazitiv. 
Da müsste schon eine ohmsche Verbindung bestehen.

MFG

Autor: Joachim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja...wenn ich z.b. einen bestimmten AD Wandler kontaktiert habe und 
dort Spannung messe, in der Software aber den AD Wandler am Pin daneben 
angebe und dieser in der Luft hängt, dann kann ich da durchaus auch 
Spannugswerte an diesem messen.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Übersprechen findet im MUX statt, da dieser sehr kleine Abstände der 
Eingänge hat. Wenn man alle acht Kanäle der Reihe nach abfragt und an 
ADC0 meinetwegen 2V legt, dann werden sich die folgenden Kanäle auf fast 
dieses Niveau hochschaukeln.

Autor: Werbungverschmäher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon richtig, wenn ADC-Eingänge offen sind, kann das passieren.

Hier soll aber ein benachbarter Ausgang (mit statischem Pegel!) einen 
korrekt beschalteten (also nicht offenen!) Eingang beeinflusst haben, 
und das halte ich für sehr sehr unwahrscheinlich.

MfG

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da er geschrieben hat dass jetzt ADC0 und nicht mehr ADC1 abgefragt 
wird, schätze ich mal dass er immernoch ADC1 im Code abfragt und nur das 
Übersprechen vom ADC0 misst. Ist mir auch schon passiert, kann man graue 
Haare kriegen!

Autor: Werbungverschmäher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joooaaaahhhhh....... - Passiert im Gedränge auf'm Frauenklo.....

;-)

MfG

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich denke eher, dass es mit dem internen pullup zu tun hat, der war 
vorher für PortA.1 eingeschaltet, und jetzt nicht ausgeschaltet.
Nur ne Vermutung, aber da ja Software i.a. hoch geheim ist, bleibt uns 
ja nichts als Rätselraten.

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

Bewertung
0 lesenswert
nicht lesenswert
Ok...werde dann meine geheime Patentsoftware doch mal preisgeben...

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

Bewertung
0 lesenswert
nicht lesenswert
und nochmal den überarbeiteten Schaltplan...

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PORTC=0xff;

ADMUX|=(0<<MUX0);
ADMUX|=(1<<REFS1)|(1<<REFS0);

NEU
PORTC=0x00

ADMUX=0;
ADMUX|=(1<<REFS1)|(1<<REFS0);

Es sind die aktivierten Pullups am ADC, würde ich sagen.

Schaltplan? falsches File ;-))

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sag ich doch :-)

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

Bewertung
0 lesenswert
nicht lesenswert
Hier der Schaltplan...

Das mit den Pullups klingt logisch. Werd die Ursache die Tage mal 
genauer erforschen.

Danke für die Hilfe !

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ADMUX|=(0<<MUX0);
         ^
Das wird wohl nicht funktionieren! ADMUX|=(1<<MUX0); wenn du das bit 
MUX0 setzen willst, ADMIX = 0; wenn du den MUX auf 0 (ADC0) setzen 
willst.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups, meinte natürlich ADMUX, nicht ADMIX!
Löschen eines bits: ADMUX &= ~(1<<MUX0);

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.