Forum: Mikrocontroller und Digitale Elektronik ATmega8: ADC-Werte ruckeln herum...


von Mario Mauerer (Gast)


Lesenswert?

Hallo zusammen,

hab einen ATmega8, der mir in meiner Stromsenke Parameter wie Spannung
und Strom misst. (über den ADC)
Der Mega läuft intern mit 8MHz, ich wandle mit 10 Bit und AREF führe
ich extern zu (2.1V).
Das alles funktioniert einigermassen, nur: die ADC-Werte ruckeln ganz
schön ordentlich in der Gegend herum. Ich bilde per Software schon
Durchschnitte, damit die Werte stabiler werden, hilft aber net so
gross.
Die ADC-Eingänge weisen saubere Gleichspannung auf, mit dem Oszi nichts
zu messen.
Ist das ein Problem des ADC (Konfiguration) oder etwas anderes?

Herzlichen Gruss
Mario

von johnny.m (Gast)


Lesenswert?

Wie stark 'ruckeln' die Werte denn?

von Mario Mauerer (Gast)


Lesenswert?

Hmm, die Werte zeige ich nicht direkt an, aber der Strom schwankt so um
die 100-200mA.

UND:
Wenn kein Strom fliesst (0V am ADC-Eingang), dann zeigt er mir einen
Strom von 0.4A an...
Sonst (über 1.5A) stimmt der Strom net schlecht.

Hab schon andere Kanäle probiert ==> nix, genau das Gleiche.
Die Spannung hingegen schwankt nur sehr schwach und stimmt ziemlich
exakt.

Herzlichen Gruss
Mario

von Hannes L. (hannes)


Lesenswert?

Falls deine Quellen hochohmig sind, solltest du Kondensatoren (10nF) an
die Eingänge schalten, damit der kurze Stromstoß während Sample&Hold
abgefangen werden kann.

Dann solltest du für AGND eine eigene Masseleitung haben, da sonst die
Stromspitzen auf der Digitalmasse Spannungsabfälle verursachen können.
Ähnliches gilt für AVcc, da möglichst mit Drossel.

Abblock-Kondensatoren (100nF Keramik) an Vcc und AVcc sollten auch
nicht fehlen.

Ich nehme mal an, dass die Taktfrequenz des ADC auch zwischen 50kHz und
200kHz liegt?

...

von Mario Mauerer (Gast)


Lesenswert?

Die Taktfrequenz des ADC sollte stimmen.

Aber:
ich hab grad nochmals das Oszi drangehängt. Am Eingang vom
Temperaturfühler hats ein kleines Rauschen dahinter (lange Leitungen)
Aber: Das ist mein stabilster Wert!
Die Spannungs- und Strommesseingänge zeigen rein gar nix an auf dem
Oszi, absolut auf 0.
Und trotzdem hab ich anscheinend 0.4A Strom. Die Software stimmt auch
absolut.

Herzlichen Gruss
Mario

von A.K. (Gast)


Lesenswert?

Nu verrate endlich mal ein paar Date. Beispielsweise über den
Messwiderstand und was für Spannungswert da gemessen werden.

von Mario Mauerer (Gast)


Lesenswert?

Der Stromshunt ist ein 0.01 Ohmer.
AREF=2.1V.
Der Eingang liegt am einen Ende des Shunt, die Masse am anderen.
Abblockkondensatoren sind drin (für die Versorgung)
Der ADC hat keine eigene Masseleitung.
Am Eingang für den Strom hängt noch ein Eingang eines OpAmps.
Das könnte auch eine Fehlerquelle sein, aber da ich am ADC-Eingang nix
messen kann und trotzdem einen Wert kriege ist trotzdem strub...

von A.K. (Gast)


Lesenswert?

0,4A x 0,01 Ohm => 4mV Messfehler.

Auflösung des ADC ist ca. 2mV. Ungenaugkeit je nach Takt, Beschaltung
und und Messweise mind. 1,75..3 LSBs, also ca. 4-6mV.

von Simon Küppers (Gast)


Lesenswert?

Ist 2,1V AREF nicht zu wenig? Mussten das nicht min. 2,5 V sein?

von Mario Mauerer (Gast)


Lesenswert?

Nö, 2V ist Minimum AREF.
Ah, ok, dann ist der hohe Offset-Wert ok.
Herzlichen Gruss und Danke

Mario

von Bernhard S. (bernhard)


Lesenswert?

Ich denke, wenn ich jetzt alles richtig gelesen habe, dass man

einen Hardware-Fehler ausschließen kann,

so ergaben es die Oszi-Untersuchungen.

Vielleicht stellst Du uns Deine Programm-Code zur Verfügung, damit

wir nicht "orakeln" müssen?


Kleiner Tipp:

Da Du sicherlich mehrere ADC-Eingänge per ADC auswertest, kannst Du
problemlos einen Kanal (nur einen, nicht alle !!!)intern auf VBG oder
auf intern GND schalten lassen.

Wie sieht dann das Ergebnis aus?

von Marcus (Gast)


Lesenswert?

Bist Du sicher, daß Dein GND Potential OK ist ?

Der ADC hat zwar einen eigenen Masseanschluß, relevantes GND Potential
ist aber dennoch immer Gesamt-GND der Schaltung.
Alternative: Differentialmessung mit 2 ADC Eingängen.

Gruß, Marcus

von TravelRec. (Gast)


Lesenswert?

Eine saubere Masse am ADC ist enorm wichtig. Analogmasse sollte nur an
einem Punkt (Versorgung) mit der Digitalmasse verbunden werden
(Sternschaltung), außerdem muß die Analogmasse "stromfrei" sein,
sonst zieht´s das Bezugspotential sonstwohin. Der ADC braucht zudem ein
L/C-Filter in der Vcc. Bei manchen Anwendungen kann auch eine
Differenzmessung über 2 Analogeingänge gute Stabilität bringen (der
Fehler subtrahiert sich weg).

von Axel R. (Gast)


Lesenswert?

Magst Du hier mal schmökern?
Vlt ist da was bei, hatten wir gerade erst:
http://www.mikrocontroller.net/forum/read-1-325540.html

Gruß
AxelR.

von Mario Mauerer (Gast)


Lesenswert?

Ok, vielen Dank!

Aber noch ne Frage: Macht es etwas, (Hardware) wenn die Spannung am
ADC-Eingang höher ist als AREF, aber kleiner als 5V. Oder wird der
einfach den Wert 1024 rausgeben?

Herzlichen Gruss
Mario

von johnny.m (Gast)


Lesenswert?

Steht im Datasheet: ...single channels that exceed VREF will result in
codes close to 0x3FF...

von johnny.m (Gast)


Lesenswert?

Sorry, sollte natürlich heißen 'single ended channels' (S. 198 im
Datenblatt)

von Mario Mauerer (Gast)


Lesenswert?

Aaaaaaah! Ich krieg die Krise mit Datenblättern von Controllern....

Da steht alles an einem anderen Ort...

Naja, ich werds auch noch lernen..

Herzlichen Gruss
Mario

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.