mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega 8: AD Wandler - 10 Bit wirklich nutzen


Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

ich habe mal eine Frage:

Ich habe eine Zeit/Temperatursteuerung gebastelt, die durch einen 
ATMEGA8 gesteuert wird.

Mir fehlt nur noch eine Kleinigkeit, nämlich die Auswertung der 
AD-Wandlung.

Ich habe den 10-Bit Wandler genutzt um die Spannung über dem Temp-Sensor 
zu messen, was auch funktioniert.

Die meisten lesen nun nur die oberen 8 Bit aus und stellen den Wandler 
auf leftshift oder sie nehmen nur die unteren 8 bit bei rightshift.

zur zeit tendiere ich auch dazu, nur die unteren 8 bit zu nehmen - aber 
was ist die eleganteste Möglichkeit die vollen 10 Bit zu nutzen? Ich bin 
mir nicht sicher, wie der Atmega8 10 Bit verarbeiten kann - es gibt doch 
nur 8 Bit register und die 16 Bit bestehen aus 2 a 8 Bit, oder?
Also muss ich immer getrennt rechnen?

Schön wäre ja, wenn ich die 10 Bit zusammen führen könnte, bequem damit 
rechnen den Wert irgendwie in 8 Bit caste, damit ich ihn auf dem LCD 
ausgeben kann...

Tipps?

Danke schonmal...

Malte

Autor: STK50-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein AVR kann auch mit 16Bit (10 sind eine Untermengr von 16Bit) umgehen, 
wenn man es will...

Autor: STK50-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was vergessen: Guck mal nach dem ADLAR-Flag des AD-Wandlers.

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seite 198: http://www.atmel.com/dyn/resources/prod_documents/...
"If the result is left adjusted and no more than 8-bit precision is 
required, it is sufficient to read ADCH. Otherwise, ADCL must be read 
first, then ADCH, to ensure that the content of the Data Registers 
belongs to the same conversion."

Also einfach erst ADCL und dann ADCH einlesen - dann hast du die 10 Bits 
beieinander.

Gruß

Kai

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also einfach erst ADCL und dann ADCH einlesen - dann hast du die 10 Bits
>beieinander.

Oder ADCW...

Autor: clio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist Quatsch, bei einer absoluten Genauigkeit von 3 LSB mehr als 8 Bit 
zu benutzen.

Autor: werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woher kommt das immer? "Quatsch".

Ich finde das geht echt gut bis auf ein LSB. Auch 10 Bit.

Ich denke, man kann da viele oft aufgezählte "analoge" Fehler machen.

http://www.razyboard.com/system/morethread-wrd-ug1...

Ich bin zufrieden ;0).

Unter dem "Monsterlink" bei "Notizen"

mfg werner

Autor: Dietmar E (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es ist Quatsch, bei einer absoluten Genauigkeit von 3 LSB mehr als 8 Bit
zu benutzen

Es ist nicht klar, in welcher Richtung der Wert abweicht (nach oben oder 
unten) und um welchen Betrag. Wenn man einfach die niedrigsten Bits 
wegwirft, kann man den Fehler noch vergrössern. Die bessere Lösung wäre 
IMHO, die vollen 10 Bit zu nehmen und das Zappeln mit einem digitalen 
Filter wegzurechnen.

Autor: sechsmalzwei (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe Anwendungen, da lasse ich den 10Bit ADC des AVR mit 13bit 
Aufloesung laufen. Das geht auch shr gut. 256 Summationen ergibt eine 
Wurzel(256). 16 fache Verbesserung, das waeren dann 4 Bit. Ich werf 
davon einz weg. Bleiben noch 13 Bit.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sechsmalzwei:
Wäre mit sowas vorsichtig, wenn das letzte Bit nicht näher am realen 
Wert liegt sondern nur Rauschen enthält (durch die ADC-Architektur 
bedingt) sind die lethten 3 Bit bei 13Bit auch nur aufsummiertes 
Rauschen. wenn man nur die Temperatur sehr genau meseen möchte so würde 
ich lieber einen externen 16Bit ADC nehmen (für die Temp tut´s so ein 
lamer ADxxxx alle mal), als auf Verbesserungen des Wertes mit Hilfe des 
Durchschnitts mehrerer Werte zu hoffen

Autor: clio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LOL wie bei meinem Digitaltermometer...Auflösung von 0.1° und eine 
Genauigkeit von +- 1°.

Autor: Andreas W. (xlomx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das rauschen nimmt beim aufsummieren nur mit wurzel(n) zu dein signal 
aber mit n. Also bekommt man schon eine höhere Auflösung.

zum 10 Bit ADW wenn man ihn sauber aufbaut hat er 10 Bit. Das kann man 
leicht mit einer batterie und einen Spannungsteiler prüfen. Ich kann 
damit die Bits einzeln einstellen. ganz sauber und nur in einen kleinen 
bereich zwischen 2 digits zappelt er zwischen diesen beiden. Wenn der 
ADW also linear arbeitet dann stimmen die einzellnen Bits. Ist nur die 
Frage nach dem Aufbau und der Quelle.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sechsmalzwei wrote:
> Ich habe Anwendungen, da lasse ich den 10Bit ADC des AVR mit 13bit
> Aufloesung laufen. Das geht auch shr gut. 256 Summationen ergibt eine
> Wurzel(256). 16 fache Verbesserung, das waeren dann 4 Bit. Ich werf
> davon einz weg. Bleiben noch 13 Bit.

Das ist quatsch!

10 Bit bleiben 10 Bit, da helfen keine Pillen.

Die AVR-ADCs stehen wie ne 1, wenn die Eingangsspannung und die Referenz 
sauber sind.

Um mehr als 10 Bit zu erreichen, muß man auf die Eingangsspannung noch 
ein Dreieck oder Sägezahn addieren.

Mit Rauschen oder 50Hz-Brummen erreicht man auch Zwischenstufen, aber 
die sind dann natürlich nichtlinear.


Peter

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.