Come posso aumentare la risoluzione ADC del mio processore?


8

Ho un MCU Atmel SAM4S con un ADC interno a 12 bit. Vorrei ottenere una risoluzione di 16 bit con una frequenza di campionamento di 500 Hz. L'ingresso all'ADC è piuttosto a bassa frequenza (contenuto di frequenza massima di circa 20 Hz) e basso rumore (meno di un RMS a 12 bit lsb).

Come posso ottenere una risoluzione a 16 bit con l'ADC di questo processore?

Risposte:


6

È possibile aumentare la risoluzione effettiva sovracampionando intenzionalmente il segnale di ingresso. Ecco un breve riassunto dell'idea da una nota applicativa sull'argomento fornito da Atmel:

La teoria dietro "Sovracampionamento e decimazione" è piuttosto complessa, ma usare il metodo è abbastanza semplice. La tecnica richiede una maggiore quantità di campioni. Questi campioni extra possono essere ottenuti sovracampionando il segnale. Per ogni ulteriore bit di risoluzione, n, il segnale deve essere sovracampionato quattro volte. Con quale frequenza campionare il segnale in ingresso, è data dall'equazione 3-1. Per ottenere la migliore rappresentazione possibile di un segnale di ingresso analogico, è necessario sovrastampare così tanto il segnale, poiché una maggiore quantità di campioni fornirà una migliore rappresentazione del segnale di ingresso, quando mediata.

La nota completa sull'applicazione è disponibile qui: http://www.atmel.com/images/doc8003.pdf .

Nel tuo caso specifico, dovrai campionare a circa 8 KHz per ottenere l'equivalente di 16 bit di risoluzione dal tuo ADC a 12 bit.

Ecco come sono arrivato a questo numero:

f_oversample_rate = f_current_sample_rate * (4 * (desired_bits - current_bits))
f_oversample_rate = 500Hz * (4 * (16 - 12))
f_oversample_rate = 500Hz * (4 * 4)
f_oversample_rate = 500Hz * 16
f_oversample_rate = 8KHz

Questo richiede un po 'di rumore per funzionare? Ci è stato dato un valore massimo per il rumore, che sarebbe sufficiente, ma non minimo.

2
@SimonJenkins Sì. La sezione 3.2 delle note applicative copre il rumore e specifica che il livello di rumore dovrebbe essere almeno 1 LSB, ma poco più di 0,5LSB è il minimo indispensabile perché sarà sufficiente per attivare / disattivare l'LSB. Se il tuo sistema non soddisfa tali specifiche, puoi aggiungere rumore artificiale con il dithering .
skrrgwasme,
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.