AVR: overclocking ADC


8

Questa è una citazione dal foglio dati ATmega32 :

By default, the successive approximation circuitry requires an input clock frequency between
50kHz and 200kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the
input clock frequency to the ADC can be higher than 200kHz to get a higher sample rate.

Sto programmando di utilizzare 8 bit di ADC. La domanda è: quanto posso superare i 200kHz? Non sono riuscito a trovare informazioni al riguardo nel foglio dati. È possibile utilizzare un prescaler di 64 o 32 e quindi eseguire ADC a 250kHz o 500kHz rispettivamente senza errori di conversione quando l'uC funziona a 16MHz? E quali sono le possibili conseguenze dell'esecuzione di ADC dalle specifiche?

Risposte:


12

La frequenza massima dell'ADC è specificata come 1MHz.

Il vero problema non è esattamente l'ADC stesso, ma il dispositivo di campionamento e mantenimento, che nei primi 2 orologi dell'ADC deve ottenere un campione della tensione di ingresso.

Quando questi 2 orologi sono due corti, il condensatore di memoria dell'S / H non è in grado di seguire il segnale di ingresso con sufficiente precisione.

A proposito, ecco perché c'è anche una frequenza minima. In questo caso, l'enorme tempo di conversione consente al condensatore di memorizzazione di scaricarsi durante la conversione.

Sull'orologio a 1MHz, otterrai 13us tempo di conversione o circa 77ksps. Su orologio 200kHz - 15ksps.


buona risposta amico +1. Mi chiedo se l'S & H interno può essere lasciato libero e utilizzare l'S & H esterno che è molto più veloce?
Andy aka

1
@Andyaka - probabilmente no. L'S / H interno è controllato solo dall'hardware. Forse un po 'di hacking è possibile cambiando il divisore di frequenza durante la conversione - make è lento per i primi 2 orologi e poi più in alto ... Ma bisogna controllare il manuale è possibile e poi fare un esperimento.
johnfound,

Grazie per la risposta. Quindi in pratica è sicuro salire a 1MHz quando si usano 8 bit di ADC?
Ashton H.

@AshtonHearts - Sì, penso di sì. Perché non fare alcuni test? È solo una questione di programma.
johnfound,

2
@AshtonHearts - non è overclock. È un comportamento documentato. Otterrai solo una precisione inferiore.
johnfound,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.