PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC mit geringerer Auflösung



PicNick
05.10.2005, 10:29
Ich möchte die ADC-Channels mit einer Auflösung von 4-5 Bit auswerten, um entsprechend schneller samplen zu können. (also von ausmaskieren hab ich nix)
Im Datasheet konnt ich nicht so richtig rauslesen, wie ich den ADC dazu bringe, schon nach 4-5 Bit statt nach 10 aufzuhören.
Nehm ich da einfach einen kleineren Prescaler ?
Ich hätte mir gerne die Experminente erspart, wenn das also schon wer gemacht hat, wär mir an seinen Erfahrungen sehr gelegen

H.A.R.R.Y.
05.10.2005, 12:37
Erfahrungen - nein.

Im Datenblatt steht der Hinweis, daß der Prescaler nicht zu gering ausfallen darf um die Genauigkeit zu erreichen. Also könnte das die Stellschraube sein, mit der Du die Geschwindigkeit höher bekommst. Nur kann Dir vermutlich niemand allgemeingültige Aussagen geben, da der Tausch - Tempo gegen Genauigkeit - sehr stark vom Design des Wandlers abhängt. Dümmstenfalls kann es passieren, daß der Takt für die Analogschalter zu hoch ist und dann ALLE Bits falsch anzeigen und nicht nur die LSBs.

Insbesondere hat der Wandlertakt auch Auswirkungen auf die Sample-Zeit. Wenn die zu kurz ist, dann stimmt der abgesampelte analoge Wert nicht mit dem tatsächlichen überein - das ist wie ein RC-Tiefpaß dem man ein Rechteck in der Nähe der Grenzfrequenz füttert. :-k

Denke vielleicht besser mal über einen externen ADC nach, der schnell genug ist. Da gibt es auch welche mit SPI bis 8MHz.

PicNick
05.10.2005, 12:48
Danke auf jeden Fall mal für die Mühe. Genau bei den von dir genannten Unsicherheiten bin ich ja auch hängen geblieben.
Genaugenommen sollt' er ja alles wie normal machen, nur bei der Approximation sollt er früher aufhören.
*murmel*
Ich werd nochmal beim Atmel stöbern, vielleicht gibt's ja doch irgendeine Application Note in der Richtung.

H.A.R.R.Y.
06.10.2005, 10:27
Solltest Du fündig werden, dann bin ich daran auch interessiert.

Normalerweise ist die interne Ablaufsteuerung für den ADC fest verdrahtet und kann mangels Eingriffsmöglichkeit halt nicht früher aufhören.

felack
06.10.2005, 10:52
Hallo Robert,

die maximale Samplefrequenz beträgt für den ATmega8 und ähnliche 1MHz (Datenblatt S.245). Der Fehler beträgt dann 3 LSB, das würde also für deine Zwecke reichen. Dann solltest du noch ADLAR in ADMUX auf 1 setzen, dann brauchst du nur ADCH auslesen (8bit) (Datenblatt S.202-203). Die Wandlerzeit beträgt dann13 Mikrosekunden.

Schau dir auch mal den Thread "AVR als Oszi" an, da geht es auch um schnelle AD-Wandlung.

Noch ein Tip: Wenn du dazuschreibst, welchen Controller du verwendest und was du ungefähr damit bauen willst, können dir sicher mehr Leute helfen.

felack

PicNick
06.10.2005, 12:12
Ich konnte bei den ADCs der verschieden AVRs in den DS kaum bis keine Unterschiede feststellen, daher hab' ich den Typ unterschlagen.
AtMega32
Und es geht (erschwerend) darum, alle 8 Channels möglichst schnell durchzusamplen, wobei eine Genauigkeit von 5 Bit aber dafür reichen würde.
Is so eine Art Keyboard-Matrix-Auswertung.