Le calcul du taux maximal physique (limitation de la performance de Nyquist) d'un ADC à bord d'un micro-contrôleur

StackOverflow https://stackoverflow.com/questions/2749217

Question

Je suis en train d'évaluer le taux physique maximal (limite de performance Nyquist) du convertisseur A / Ds intégré à bord de divers microcontrôleurs PIC.

Cependant, pour effectuer le calcul nécessite des paramètres que je ne suis pas trouver explicitement dans les fiches techniques, en particulier Tacq, Fosc, TAD et les paramètres du diviseur.

J'ai procédé en faisant quelques hypothèses, mais serait utile d'avoir une vérification raisonnable - je fais le calcul des taux physiques maximum correctement

A titre d'illustration seulement, j'ai pris le plus simple possible PIC10F220 qui a un ADC. Est de se concentrer spécifiquement sur l'interprétation des Tacq, Fosc, TAD et les paramètres du diviseur, et ne veut pas dire que pourrait être mis en œuvre toutes les fonctionnalités pratiques sur cette puce très basique. (Ceci est à points de Clifford dans les commentaires ci-dessous.)

Calcul :

Nyquist Performance Analysis of PIC10F220
- Runs at clock speed of 8MHz.
- Has an instruction cycle of 0.5us  [4 clock steps per instruction]

- Get Tacq = 6.06 us  [acquisition time for ADC, assuming chip temp. = 50*C]
                      [from datasheet p34]

- Set Fosc := 8MHz     [? should this be internal clock speed ?]
- Set divisor := 4     [? assuming this is 4 from 4 clock steps per CPU instruction ?]
- This gives TAD = 0.5us          [TAD = 1/(Fosc/divisor) ]
- Get conversion time is 13*TAD   [from datasheet p31]
- This gives conversion time 6.5 us
- So ADC duration is 12.56 us   [? Tacq + 13*TAD]

En supposant 10 instructions pour un simple chargement / stockage / seuil fait en temps réel avant le prochain échantillon (ce qui est juste un talon - le point est le reste du calcul):

- This adds another 5 us   [0.5 us per instruction]
- To give total ADC and handling time of 17.56 us    [ 12.56us + 1us + 4us ]
- before the sampling loop repeats  [? Again Tacq ? + 13*TAD + handling ]

- If this is correct, then the max sampling rate is 56.9 ksps   [ 1/ total time ]
- So the Nyquist frequency for this sampling rate is 28 kHz.    [1/2 sampling rate]

Ce qui signifie que la performance (théorique) de ce système de puce --- A / D avec le code de gestion en temps réel hypothétique --- est pour des signaux à bande limitée qui sont à 28 kHz.

Est-ce une affectation / interprétation correcte de la fiche de données pour obtenir Tacq, Fosc, TAD, et les paramètres de diviseurs et de les utiliser pour obtenir la vitesse physique maximale, ou la limite de performance de Nyquist, de cette puce?

Merci,

Était-ce utile?

La solution

Tu ne vas pas être en mesure de faire beaucoup de traitement dans 8 des instructions, mais en supposant que vous faites juste simple quelque chose comme stocker les échantillons entrants vers un tampon, ou la détection d'un seuil, votre analyse semble bon.

Autres conseils

  

Les puces réelles Je considère pour la conception sont les dsPIC33FJ128MC804 (16b avec A / D) ou dsPIC30F3014 (12b avec A / D).

C'est une distinction importante; le dsPIC ADC supporte les transferts DMA ping-pong de plusieurs canaux simultanément, ne peut donc réduire au minimum les frais généraux de logiciel efficace par échantillon. Cela rend le calcul un un peu différent. Vous devez déterminer à partir du taux d'échantillonnage et la taille de la mémoire tampon DMA le temps entre les interruptions de tampon d'échantillons; qui est le temps de traitement que vous avez à traiter avec chaque tampon. Si vous utilisez la bibliothèque DSP de Microchip, il donne des formules précises de temps de cycle pour chaque algorithme, et le traitement des blocs est nettement plus efficace que l'échantillon par traitement des échantillons.

Mon dernier projet était sur un dsPIC33 avec deux canaux échantillonnés à des tampons d'échantillon 48KHz et 32word (donnant 667us pour traiter chaque paire de tampons). Le traitement du logiciel était donc tout à fait indépendante de l'échantillonnage depuis en utilisant DMA ils ont lieu simultanément.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top