Comment puis-je augmenter la résolution ADC de mon processeur?

8

J'ai un MCU Atmel SAM4S avec un ADC interne 12 bits. Je voudrais obtenir une résolution de 16 bits à un taux d'échantillonnage de 500 Hz. L'entrée de l'ADC est assez basse fréquence (environ 20 Hz de contenu en fréquence max) et faible bruit (moins d'un lsb 12 bits RMS).

Comment puis-je obtenir une résolution de 16 bits avec l'ADC de ce processeur?

Patrick
la source

Réponses:

6

Vous pouvez augmenter la résolution effective en suréchantillonnant intentionnellement le signal d'entrée. Voici un bref résumé de l'idée d'une note d'application sur le sujet fourni par Atmel:

La théorie derrière le «suréchantillonnage et la décimation» est assez complexe, mais l'utilisation de la méthode est assez facile. La technique nécessite un plus grand nombre d'échantillons. Ces échantillons supplémentaires peuvent être obtenus en suréchantillonnant le signal. Pour chaque bit de résolution supplémentaire, n, le signal doit être suréchantillonné quatre fois. La fréquence d'échantillonnage du signal d'entrée est donnée par l'équation 3-1. Pour obtenir la meilleure représentation possible d'un signal d'entrée analogique, il est nécessaire de suréchantillonner autant le signal, car une plus grande quantité d'échantillons donnera une meilleure représentation du signal d'entrée, lorsqu'il est moyenné.

La note d'application complète peut être obtenue ici: http://www.atmel.com/images/doc8003.pdf .

Dans votre cas spécifique, vous devrez échantillonner à environ 8 KHz pour obtenir l'équivalent de 16 bits de résolution de votre ADC 12 bits.

Voici comment je suis arrivé à ce nombre:

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
skrrgwasme
la source
Cela nécessite-t-il du bruit pour fonctionner? On nous a donné une valeur maximale pour le bruit, ce qui serait suffisant, mais pas de minimum.
2
@SimonJenkins Oui, c'est le cas. La section 3.2 des notes d'application couvre le bruit et précise que le niveau de bruit doit être d'au moins 1 LSB, mais un peu plus de 0,5LSB est le minimum dur car cela suffira pour basculer le LSB. Si votre système ne répond pas à cette spécification, vous pouvez ajouter du bruit artificiel avec tramage .
skrrgwasme