Forum: Mikrocontroller und Digitale Elektronik A/D Werte rauschen beim Atmega8


von Michi (Gast)


Lesenswert?

Ich habe anhand des Beispieles 
(http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC)

die Schaltung mit einem Atmega8 incl Kondensator AREF zu GND 100nF 
aufgebaut. An PC0 ist ein 10k Potentiometer angeschlossen.(Vcc,PC0,GND)

Anfangs erhielt ich andauernd nur den Wert 1023 nach umstellen von:

    ldi  temp1, 0           ; Kanal 0
    out  ADMUX, temp1

auf:
    ldi  temp1, 0x81 <<<<-----
    out  ADMUX, temp1

bekomme ich Werte die in etwa so aussehen:

00348
00598
00336
00331
00582
00579
00322
00320
00321
00577
00318
00573
00318
00573
00317
00571
00573
00575
00320
00321
00321

muss ADMUX wirklich auf 0 stehen? das bedeutet ja PC0 und externe 
referenz.
Oder liege ich da Falsch?

von A.K. (Gast)


Lesenswert?

00 = externe Referenz. Da ist keine, also falsch.
81 = "reserved" als Referenz und falcher Kanal.
40 wäre wohl erfolgversprechender.

Merke: Fehler in Tutorials sind Absicht, damit man nicht sklavisch 
nachäfft sondern zum Mitdenken angeregt wird.

von Michael U. (Gast)


Lesenswert?

Hallo,

ADMUX muß so gesetzt werden, wie Du es haben willst, also 
Referenzspannungsquelle mit REFS1, REFS0 (da Du ein Poti zwischen Vcc 
und GND hast, nacht nur AVcc wirklich Sinn, also REFS1 = 0, REFS0 =1.
ADLAR ändert die Ausrichtung des Ergebnisses in ADCH und ADCL als 
10Bit-Wert, mit 0 rechtsbündig.
MUXX3...MUXX0 muß auf 0000 wenn Du Pin0 des Ports benutzt.
Macht also 0b0100000 = 0x40 bei mir.
0x81 = 0b10000010 ist bei mir Referenzsspannung auf Reserved, also von 
Atmel nicht definierter Zustand, ADLAR = 0, also rechtsbündig und MUXX 
0001 Eingang Pin1 wird benutzt. Das kann nur nutzlose Ergebnisse 
liefern.
Die 1023 in Deinem ersten Versuch sind auch logisch, externe 
Referenzspannung ist eingestellt, dran ist nichts, also 0, jeder 
Eingangswert > 0 muß 1023 liefern. Zumindest theoretisch, die minimale 
Referenzspanung, für die Atmel die Funktion garantiert, liegt höher.

Gruß aus Berlin
Michael

von Michi (Gast)


Lesenswert?

Tatsache du :)

Danke erstmal fuer die Antwort.

Gugt besser aus aber immernoch kleine ausreisser drinne, uhm...


00767
00767
00767

01022

00767
00767
00767
00767
00767
00767
00767
00767
00767

von Otto (Gast)


Lesenswert?

Hallo Michi,

manchmal hilft auch ein 47nF oder 100nF vom
Analogeingang zu Masse.

Gruss Otto

von Michi (Gast)


Lesenswert?

Lassen sich derartige sachen auch errechnen oder sind das Versuchswerte?

Liegt das Problem in einer unsauberen Versorgungsspannung?

von Hannes L. (hannes)


Lesenswert?

Schau mal nach, was das Datenblatt zum Thema Rauschunterdrückung (noise 
canceler) weiß. Könnte sein, dass das hilft.

Und nochwas: Die Bits in den I/O-Registern haben Namen. Diese Namen 
werden im Datenblatt genannt und dem Assembler per Include-Datei bekannt 
gemacht. Das Verwenden dieser (vereinbarten und verbindlichen) Namen 
erleichtert das Lesen des Codes.

...

von Ulrich P. (uprinz)


Lesenswert?

Michi wrote:
>
> Lassen sich derartige Sachen auch errechnen oder sind das Versuchswerte?
>
> Liegt das Problem in einer unsauberen Versorgungsspannung?

A/D Wandlung ist ein Thema für sich, das sind schon ganze Bücher drüber 
geschrieben worden. Wenn Du einen Messwert mit 10Bit ADC auch wirklich 
auf +/-0LSB genau haben willst, wirst Du um diese Bücher nicht herum 
kommen.
Danach kommen dann noch die Bücher über EMV...

Also ganz profan, ich rate mal, dass Deine Lötstation noch an ist und 
irgendwo im Umkreis von 3m um Deinen Aufbau herum steht, oder sogar in 
der gleichen Steckdose steckt, wie die Versorgung Deiner Testschaltung.

Meine alte Wella von 197x ist da ein zuverlässiger Tester bzgl. EMP/EMV.

Aber die Kollegen haben schon recht, lies bitte unbedingt den kompletten 
ADC Abschnitt im Datenblatt und lies bitte auch die Application Note zum 
ADC von Atmel. Eine abgekoppelte Massefläche rund um den ADC Port wirkt 
wunder. Sternmasse ist auch besser als Tannenbaum.

Errechnen kann man die Dämpfung der Schwingungen auch, denn ein C am ADC 
Eingang bildet mit dem Innenwiderstand des ADC-Eingangs und der 
S/H-Stufe ein simples R-C Filter, ein Deinem Fall spielt auch das Poti 
in die Berechnung mit rein. Es gibt einige Tricks bzgl. der 
Leiterbahnverlegung bzw. es helfen oft kleine Widerstände an digitalen 
Signalen möglichst dicht am Pin ihres Erzeugers. Das ermöglicht es einem 
z.B. auch einen 60MHz Microcontroller direkt neben einem qualitativ 
hochwertigen Tuner auf einer Platine zu betreiben.

Gruß, Ulrich



von Falk (Gast)


Lesenswert?

>Meine alte Wella von 197x ist da ein zuverlässiger Tester bzgl. EMP/EMV.

EMP? Läuft die mit Plutonium? ;-)

MFG
Falk


von Ulrich P. (uprinz)


Lesenswert?

Falk wrote:
>>Meine alte Wella von 197x ist da ein zuverlässiger Tester bzgl. EMP/EMV.
>
> EMP? Läuft die mit Plutonium? ;-)
>
Elektro-Magnetischer-Puls. Da die olle aber zuverlässige Wella einen 
dicken Trafo und einen simplen Magnetschalter hat, erzeugt sie einen 
ordentlichen Schaltfunken und einen entsprechenden EM-Impuls. Das ganze 
dann Magnetisch noch mal über den Trafo und elektrisch rückwirkend über 
die Steckdose in alles, was an der gleichen Steckerleiste hängt.

Wenn man also eine schöne Schaltung aufgebaut hat und wissen will, wie 
gut das ganze gegen äußere Störeinflüsse gewappnet ist, dann klemmt man 
sie zwischen Handy und die Lötstation uns lässt sie eine Zeit lang 
laufen. Stürtzt sie nicht ab, kann man davon ausgehen, dass die Bastelei 
den üblichen im Haushalt vorkommenden Störungen widerstehen wird.

Ist keine wirkliche EMV Messung, zugegeben, aber für nicht kommerzielle 
Dinge vollkommen ausreichend.

Gruß, Ulrich

von Falk (Gast)


Lesenswert?

@ Ulrich P.

> EMP? Läuft die mit Plutonium? ;-)
>
Elektro-Magnetischer-Puls. Da die olle aber zuverlässige Wella einen

Naja, ich kannte EMP eigentlich nur bei Atombombenexplosionen. Ala 
"Broken Arrow" ;-)

MFG
Falk

von Ulrich P. (uprinz)


Lesenswert?

Falk wrote:
> @ Ulrich P.
>
>> EMP? Läuft die mit Plutonium? ;-)
>>
> Elektro-Magnetischer-Puls. Da die olle aber zuverlässige Wella einen
>
> Naja, ich kannte EMP eigentlich nur bei Atombombenexplosionen. Ala
> "Broken Arrow" ;-)
>
Naja, wenn die Schaltung auch das funktionierend übersteht hat man seine 
Abschirmung sicherlich ordentlich ausgeführt...

Gruß, Ulrich

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.