Hallo zusammen, hat jemand Erfahrung bzgl. dem ADC im ATmega8? Ich muss einen Bereich von 0V bis +4V (also externe Aref=+4V) mit 10Bit Genauigkeit erfassen. Allerdings nicht wirklich schnell, d. h. es reicht, wenn alle 100ms ein neuer Wert übergeben wird. Ist der 10Bit Wandler vom ATmega8 dazu im Stande hinsichtlich des Rauschens, oder ist es sinnvoller ein externes Bauteil zu verwenden? Gruß Tom
Miß 255 mal und addiere die Spannungen auf, teile dann durch 255 und runde um ein 1/2 Bit. Ich mache das so. Das ist aber nicht auf meinem Mist gewachsen! (hatte dafür mal'n Beispiel Code aus dem Internet. Gruß Fred
Vielen Dank erstmal. Könntest Du mir dafür evtl. eien C-Code zur Verfügung stellen? Wäre klasse!!
Hallo, hatte auch mal das 'Problem' - ich hab in der Zeit in der nicht gemessen werden müßte auch fleißig mitgemessen und dann einen Mittelwert gebildet. So ist die Zeit sinnvoll genützt und das Ergebniss wird genauer. UND natürlich die Kondensatoren in der Schaltung nicht vergessen. - Gruß Ing.
Fred wrote: > Miß 255 mal und addiere die Spannungen auf, teile dann durch 255 > und runde um ein 1/2 Bit. Ich mache das so. Das ist aber nicht > auf meinem Mist gewachsen! (hatte dafür mal'n Beispiel Code aus > dem Internet. 255 ist ziemlich unsinnig. Erstens ist 255 keine Zweierpotenz (wenn schon so hoch, dann 256) und deshalb die Division ein Krampf und zweitens passt der höchste zu erwartende Wert (255 * 1023) nicht mehr in einen unsigned int rein. Ein Mittelwert aus 64 Messwerten ist aber allemal ausreichend und man kann alles bequem in 16 Bit rechnen. Dadurch dürften bei ansonsten einwandfreier Beschaltung keine Probleme auftreten.
Wenn du AVCC ordentlich stabilisierst ist das Rauschen < 1LSB. Die Werte zu mitteln ist aber nie eine schlechte Idee. Wenn du >10Bit Auflösung haben willst, brauchst du aber ein halbwegs definiertes Rauschen auf'm Signal.
Schuldigung 256 mal Messen! und durch 256 teilen! Das teilen wird durch Verwerfen des niederwertigsten Byte's erricht! Gruß Fred
Vielen Dank für die Infos. Aber nun mal im Klartext: Ist der ADC für mein Vorhaben tauglich, oder nicht? Beschaltung, Mittelwertbildung usw. ist mir alles klar. Aber reicht generell die Genauigkeit dieses Teils aus um 0-4V mit 10Bit Auflösung zu messen? Danke und Beste Grüße
Fred wrote: > Schuldigung 256 mal Messen! und durch 256 teilen! > Das teilen wird durch Verwerfen des niederwertigsten Byte's erricht! Passt trotzdem nicht in einen unsigned int ... Bei einer 8-Bit-Wandlung wäre es OK.
I_ H. wrote:
> Wenn du AVCC ordentlich stabilisierst ist das Rauschen < 1LSB.
So ist es.
Ich nutze öfters auch mal den ADC mit 11 oder 12bits. Mit etwas Software
ist das problemlos möglich. Oft muss man dann künstlich Störungen
hinzufügen, denn der ADC rauscht erstaunlich wenig, trotz fehlender
Spule AVcc-Vcc.
Hier mal die Software die ich immer verwende:
ISR(SIG_ADC)
{ unsigned short val;
val=ADC_val;
ADC_val=val-val/32+ADC;
}
Das Ergebnis ist zwar ein Wert im Bereich 0-32767, aber den kann man ja
auf die gewünschte Auflösung runterteilen.
Bei einem 100nF Kondensator von ADCx nach Masse, einem Serienwiderstand 4k7 von der Meßspannung zum ADCx, einem L/C-Glied an AVCC und einem 100nF Kondensator von ARef nach Masse wirst Du kaum noch Rauschen feststellen, was per Software bekämpft werden muß.
>Vielen Dank für die Infos. >Aber nun mal im Klartext: >Ist der ADC für mein Vorhaben tauglich, oder nicht? >Beschaltung, Mittelwertbildung usw. ist mir alles klar. Aber reicht >generell die Genauigkeit dieses Teils aus um 0-4V mit 10Bit Auflösung zu >messen? >Danke und Beste Grüße uneingeschänkt JA mit der von Atmel im Datenblatt gezeigten Beschaltung das µC und der Mittelwertbildung solltest Du auf +/- 0,5 LS-Bit kommen (rel. Fehler). Absolut muß mann dann sowas noch Abgleichen. Gruß Fred
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.