Forum: Mikrocontroller und Digitale Elektronik Mega 16 AD Wandler schneller machen


von R--- S. (rene66)


Lesenswert?

Hallo,

meine Frage ist wie bekomme ich den AD Wandler "schneller" Ich habe eine 
Mega 16 auf einzelwandlung eingestellt. Für eine Wandlung benätigt der 
Controller momentan 425 Zyklen lt. Simulator das kommt mir recht viel 
vor.
Vorteler ist 32 der Controller wird mit 16 MHz betrieben ohne AD 
Interrupt.

 Initialisierung mit:
ldi     tempL,(1<<ADEN) | (1<<ADPS2) | (0<<ADPS1) | (1<<ADPS0)
out     ADCSRA, tempL


und Wandlung:

               ldi   tempL,(0<<MUX1)|(0<<MUX0)|(1<<REFS1) |(1<<REFS0) 
|(1<<ADLAR) | (0<<MUX3) ;Kanal 0 (Rot)
               out   ADMUX,templ
               sbi   ADCSRA, ADSC
wait_adc1:     sbic  ADCSRA, ADSC

               rjmp  wait_adc1


mache ich was Falsch ausser das der Wandler dann mit 500 kHz läuft

von Winne Z. (rugbywinne)


Lesenswert?

Wie schnell muss den der ADC werden ?

von Daniel K. (lostsoul)


Lesenswert?

Hallo!

Wenn du deinen Vorteiler auf 2 stellst,wird die Wandlung schneller.....

von R--- S. (rene66)


Lesenswert?

Hallo,

so schnell als möglich bei noch annehmbaren schwankungen des ergebinsses 
also nicht mehr als ca. 3 Bit

@lostsoul

ist dann zu ungenau bzw es gibt zu grosse schwankungen im ergebniss

von Benedikt K. (benedikt)


Lesenswert?

René Schink wrote:

> Ich habe eine
> Mega 16 auf einzelwandlung eingestellt. Für eine Wandlung benätigt der
> Controller momentan 425 Zyklen lt. Simulator das kommt mir recht viel
> vor.

Nö, passt ziemlich genau: 13*32 = 416 Takte

Selbst jetzt bist du schon außerhalb der Specs für 10bit. Du kannst 
theoretisch noch etwas mit dem Vorteiler runtergehen (bis auf etwa 8), 
aber mehr als etwa 6bit sind dann nicht mehr drin.
Darüber steigen die Verzerrungen meinen Erfahrungen nach sehr schnell 
stark an. Mehr als etwa 100-200kHz Samplerate ist eher nicht mehr 
brauchbar.

von R--- S. (rene66)


Lesenswert?

also Probieren und mal sehn was hinten rauskommt.

Externe wandler gibt es da empfehlungen (8 Bit paralel und ca. doppelt 
so schnell wie der Interne des Mega 16)
habt Ihr emfehlungen?

von spess53 (Gast)


Lesenswert?

HI

'By default, the successive approximation circuitry requires an input 
clock frequency between 50 kHz and 200 kHz to get maximum resolution.'

Wenn du es wirklich schneller haben willst, wirst du auf den XMega 
warten müssen.

MfG Spess

von Winne Z. (rugbywinne)


Lesenswert?

Wenn Deine Schaltung und Dein Programm es zulassen, kannst Du den MEGA 
auch noch hochtakten.

20MHz geht, 40MHz auch.

Ob die AD-Wandlung noch "sauber" genug ist sollte man sicherheitshalber 
überprüfen.

von Benedikt K. (benedikt)


Lesenswert?

Winfried Z. wrote:
> Wenn Deine Schaltung und Dein Programm es zulassen, kannst Du den MEGA
> auch noch hochtakten.
>
> 20MHz geht, 40MHz auch.

Davon würde ich abraten, denn das mag bei einem AVR funktionieren, nicht 
aber bei jedem. Und dann wird die Fehlersuche lustig wenn man nicht weiß 
ob der Fehler an dem Takt oder an der Software liegt.

> Ob die AD-Wandlung noch "sauber" genug ist sollte man sicherheitshalber
> überprüfen.

Schonmal den ADC mit Prescaler 2 bei 16MHz laufen lassen ? Ich habs 
ausprobiert: Dann ist ein Sinus entweder DC ein Rechteck, oder sonst was 
undefiniertes. Das Ergebnis ist ziemlich willkührlich, je nach AVR.

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.