AVR: overclocking ADC


8

Ceci est une citation de la fiche technique 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.

Je prévois d'utiliser 8 bits d'ADC. La question est: à quelle fréquence supérieure à 200 kHz puis-je aller? Je n'ai trouvé aucune information à ce sujet dans la fiche technique. Est-il possible d'utiliser un prédéfinisseur de 64 ou 32 et donc d'exécuter l'ADC à 250 kHz ou 500 kHz respectivement sans erreurs de conversion lorsque l'UC fonctionne à 16 MHz? Et quelles sont les conséquences possibles de l'exécution d'ADC hors spécifications?

Réponses:


12

La fréquence maximale de l'ADC est spécifiée à 1 MHz.

Le problème réel n'est pas exactement l'ADC lui-même, mais le dispositif d'échantillonnage et de maintien, qui dans les 2 premières horloges de l'ADC doit obtenir un échantillon de la tension d'entrée.

Lorsque ces 2 horloges sont deux courtes, le condensateur de stockage du S / H n'est pas en mesure de suivre le signal d'entrée avec une précision suffisante.

BTW, c'est pourquoi il y a aussi une fréquence minimale. Dans ce cas, le temps de conversion énorme permet au condensateur de stockage de se décharger pendant la conversion.

Sur une horloge de 1 MHz, vous obtiendrez un temps de conversion de 13us ou environ 77 kps. Sur une horloge à 200 kHz - 15 kps.


bonne réponse mec +1. Je me demande si le S&H interne peut rester libre et utiliser le S&H externe beaucoup plus rapidement?
Andy aka

1
@Andyaka - probablement pas. Le S / H interne est contrôlé uniquement par le matériel. Peut-être qu'un piratage est possible en changeant le diviseur de fréquence pendant la conversion - le make est lent pour les 2 premières horloges puis plus haut ... Mais il faut vérifier le manuel est-il possible du tout puis faire une expérience.
johnfound

Merci pour la réponse. Donc, fondamentalement, il est sûr d'aller jusqu'à 1 MHz lorsque vous utilisez 8 bits d'ADC?
Ashton H.

@AshtonHearts - Oui, je pense que oui. Pourquoi ne pas faire quelques tests? Ce n'est qu'une question de programme.
johnfound

2
@AshtonHearts - ce n'est pas l'overclocking. Il s'agit d'un comportement documenté. Vous obtiendrez seulement une précision inférieure.
johnfound
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.