Pourquoi la plupart des ADC, comme ceux de l' Arduino , donnent une résolution de 10 bits plutôt que 8 ou 16 bits?
Il semble juste bizarre qu'ils ne correspondent pas aux tailles de données standard, en particulier sur les données intégrées.
microcontroller
adc
Jesse Quisenberry
la source
la source
Réponses:
Il n'y a pas de problème technique majeur avec l'extension d'un ADC SAR (approximation successive) pour convertir 16 bits, mais le problème est que vous commencez à voir le bruit de fond du frontal analogique. Cela a tendance à paniquer les clients car ils voient les codes ADC sauter et ne réalisent pas toujours qu'ils regardent des dizaines de microvolts de déviation.
En supposant une tension de référence de 5,00 V et un CAN à 10 bits, le LSB représente une tension de 4,88 mV (5 V × 2 -10 ). Pour un CAN 16 bits avec une référence de 5,00 V, la tension LSB serait de 76 µV.
Mais l'alimentation dans un système numérique n'est pas exactement de 5,00 V, elle est généralement spécifiée dans une plage de 4,75 V à 5,25 V.Quand il y a un événement transitoire de commutation à l'intérieur du microcontrôleur, il y a une petite impulsion de courant qui provoque l'alimentation tensions à contracter. Si le LSB est d'environ 5 mV, vous pourriez à peine le voir, mais au niveau de 76 µV, il est difficile de ne pas voir ce bruit.
En fait, une fois que vous avez dépassé le CAN 12 bits, vous devez vraiment avoir une référence de tension analogique au lieu d'utiliser simplement l'alimentation numérique. Cela ajoute donc un peu plus de coût. Pour de meilleurs résultats, cette référence de tension doit en fait être une puce séparée, avec ses propres lignes électriques, et idéalement, elle doit être éloignée des circuits numériques chauds / bruyants.
Si vous voulez qu'un ADC 16 bits donne de bonnes lectures stables, vous avez besoin d'une tension de référence très propre et d'un contrôle thermique, et de préférence le tenir loin de tout signal numérique à commutation rapide ... intégrant ainsi un SAR 16 bits sur la même puce qu'un microcontrôleur, irait à l'encontre du but d'avoir ces bits supplémentaires. Vous mesureriez simplement du bruit aléatoire sur ces bits supplémentaires.
Il existe des applications client qui utilisent des ADC de résolution supérieure. L'entreprise dans laquelle je travaille en fabrique pas mal. L'équipement de test automatisé (ATE), l'échographie médicale et certains autres types de clients spécialisés utilisent des ADC haute résolution, dans certains cas 18 ou même 24 bits.
Les tests de production d'un ADC haute résolution prennent du temps (et sont donc coûteux). Les clients qui ont besoin de ce type de performances paient un supplément pour un ADC autonome externe, pas les types SAR bon marché qui sont intégrés dans de nombreux microcontrôleurs modernes.
Ensuite, il existe des applications à haute vitesse telles que le radar ou l'oscilloscope à échantillonnage numérique, qui doivent échantillonner à 100 MHz ou à des taux plus rapides - à ces vitesses, vous avez la chance d'obtenir 8 bits significatifs.
la source
Compromis entre résolution et coût.
8 bits donne 2 8 = 256 combinaisons, dont 0 est une, laissant 0 à 255 comme valeurs numériques possibles. Ce n'est pas suffisant pour de nombreuses applications. Chaque bit supplémentaire double la résolution et 10 bits donne 1024 pas, ce qui est suffisant pour la plupart des projets. Les systèmes industriels peuvent utiliser 12 bits pour une résolution encore meilleure.
Les ADC haute résolution nécessitent des tolérances plus strictes et sont plus chers à fabriquer.
la source
Un certain nombre de points valables et valables ont déjà été avancés. J'ai utilisé de nombreux ADC 8, 10, 12 et 16 bits au fil des ans, et il est aujourd'hui assez facile d'atteindre 16 bits avec un temps de conversion de 4 ou 5 microsecondes (mieux sont disponibles, je m'en tiendrai à ce qui pourrait être praticable pour la plupart des gens à utiliser), dans une puce autonome. Mais il contient un réseau en échelle de précision, utilisant souvent des résistances à couches minces, et diverses techniques de conception analogique hautement spécialisées. (Il y a aussi, presque toujours, un besoin de transistors bipolaires haute performance quelque part dans le circuit d'un ADC de précision, mais tous les microcontrôleurs modernes sont CMOS, donc il y a de nombreuses étapes de fabrication supplémentaires pour faire quelque chose avec une bonne précision analogique et une logique CMOS combinée. ) Un bon ADC coûte également plus cher que la plupart des microcontrôleurs! Pas si facile à faire,
Par exemple, considérons la TI ADS8509, dont le prédécesseur l'ADS7509, pas tout à fait aussi rapide, que j'ai utilisé à de nombreux endroits dans un projet important et important.
http://www.ti.com/lit/ds/symlink/ads8509.pdf
C'est assez banal par rapport aux normes d'aujourd'hui. Pourtant, ses caractéristiques de conception interne ne sont pas compatibles avec le processus de fabrication bon marché des microcontrôleurs. Et cela coûte plus de 15,72 $, plus que la plupart des microcontrôleurs. Je les ai utilisés sous la forme de matrices semi-conductrices nues, incorporées dans des hybrides de boîtes métalliques hermétiques, avec des circuits de support soigneusement conçus, et j'ai vraiment obtenu à peine plus de 1 bruit LSB pp, donc cela peut être fait, si vous savez ce que vous faites, et avoir les ressources, y compris le budget. Mais vous ne verrez jamais un bruit aussi faible dans ou autour d'un microcontrôleur.
Le problème principal, comme au moins une personne l'a expliqué, est que le bruit sur le rail d'alimentation numérique affectera directement l'ADC. Maintenant, vous pouvez contourner cela, en utilisant une bonne référence de tension externe, où une broche est prévue pour cela, mais vous devez également pouvoir faire de même avec le sol. Et, ces broches doivent être contraintes à quelques centaines de mV de l'alimentation numérique et de la masse, sinon la chose explose. De plus, bien sûr, le couplage du bruit interne au sein du silicium, de la logique, des états changeants de manières complexes à la fréquence d'horloge, et pire, des broches d'E / S, dont certaines peuvent conduire et commuter 10s de mA, si vous les ont chargés à la limite. Du bruit, du bruit et encore du bruit ...
La partie que j'ai citée (et Google pour les moins chères, les plus rapides ou les différentes, échange la flexibilité contre le coût) a une interface SPI, donc elle est facilement utilisée EXTÉRIEUREMENT à un microcontrôleur, avec son propre plan de masse local, filtrage, etc. , avec soin, cela vous donnera vraiment 16 bits.
Auparavant, il était assez difficile d'obtenir plus d'environ 10 bits sans bruit d'un ADC 12 bits, et il se trouve toujours dans un environnement sale, comme près de la logique numérique, ce qui explique en grande partie pourquoi les ADC intégrés dans les puces de processeur sont plus ou moins coincé à cette résolution, et sera probablement pour toujours. Mais TI a une puce externe 32 bits. Je n'ai pas regardé la fiche technique, ni le coût ...
Si vous pouvez sacrifier la précision absolue (c'est-à-dire que le facteur d'échelle peut être inférieur de 5% ou plus, sans parler du décalage CC et de sa dérive avec le temps et la température, mais la linéarité sera excellente), un ADC de qualité audio peut être pour vous. Ils sont au moins 16 bits et conçus pour le marché de masse, donc souvent de bonne valeur, mais ne vous attendez pas à en utiliser un dans un instrument de précision qui doit mesurer des signaux DC à +/- 0,1%.
Vous ne pouvez pas tout avoir à la fois. Tout dépend de ce qui compte le plus. Précision, bruit, dérive à long terme, vitesse, coût, puissance, type d'interface (série ou parallèle), etc. Vous pouvez également vouloir multiplexer plusieurs canaux, donc besoin d'un temps de réponse rapide, qui exclut de nombreux ADC sigma-delta, qui sinon ont de très bonnes propriétés.
Lors du choix d'un ADC. Google est, comme toujours, votre ami. Il existe de nombreux articles et notes d'application de TI, Linear, National et divers autres fabricants de semi-conducteurs. Méfiez-vous toujours de ce que les fiches techniques ne vous disent pas et vérifiez quels paramètres mettent l'accent sur leurs concurrents.
Mais si vous voulez tout sur votre puce de microcontrôleur, ne prévoyez pas d'utiliser plus de 10 bits (probablement 9 utilisables, LSB bruyant) dans vos projets. Et, prévoyez une référence analogique séparée et une mise à la terre si votre puce le permet. De cette façon, vous ne perdrez pas votre temps.
la source
Les ADC 8 bits sont horribles à utiliser en raison des étapes de 0,49% - j'en ai assez vu. L'Arduino, conçu pour l'électronique de loisir, utilise 4 fois plus d'étapes, donc près de 0,1%, ce qui est proche du signal / bruit réalisable (plus le ronflement) attendu des circuits de capteur d'amplificateur opérationnel ou de transistor courants. Mieux que cela serait gaspillé sur des appareils électroniques maison de qualité hobyist, et pire que cela serait trop raide et horrible.
Alors que l'ADC 16 bits est disponible dans le commerce, leur mise en place prend plus de temps, pendant laquelle le bourdonnement ou le bruit s'est déplacé, de sorte que vous n'obtenez pas une meilleure mesure et qu'elle est plus lente.
la source
Lorsqu'un ADC effectue une conversion, il fournit une valeur numérique (quantifiée) pour le signal analogique continu. Étant donné que la valeur numérique ne sera pas exactement la valeur analogique au moment de la conversion, la différence peut être considérée comme un bruit additif. Plus la résolution de l'ADC est élevée, plus la valeur numérique est proche de la valeur analogique. En d'autres termes, nous améliorons le rapport signal sur bruit de quanitisation (SQNR) en augmentant les bits de l'ADC. Par conséquent, l'ADC 10 bits est meilleur que ceux 8 bits (d'environ 12 dB).
L'utilisation d'A / D 16 bits sera meilleure en termes de SQNR. Cependant, ils sont plus chers. Et dans de nombreuses applications, l'ADC 10 bits fournit suffisamment de SQNR requis.
la source
En règle générale, vous voulez que le nombre de bits dans votre coveter soit tel que votre pas de quantification soit un peu plus bas que le plancher de bruit (analogique) du système.
Utiliser plus de bits et donc avoir une étape de quantification plus en dessous du plancher de bruit vous permet d'obtenir très peu d'amélioration des performances de bruit globales, mais utilise plus de silicium, ce qui allonge votre temps de conversion ou nécessite que les internes de votre convertisseur s'exécutent plus rapidement (et donc soient plus bruyants)
Utiliser moins de bits et donc avoir une étape de quantification au-dessus du plancher de bruit est généralement mauvais. Cela signifie que vous gaspillez les performances des circuits analogiques et, dans certains cas, cela peut créer des erreurs systématiques qui ne peuvent pas être supprimées par la moyenne (en effet, parfois les concepteurs ajouteront délibérément du bruit à un système pour éviter les erreurs systématiques dues à la quantification).
La différence entre 8 bits et 16 bits est ÉNORME. Le premier aboutit à une étape de quantification trop importante même dans des systèmes aux performances de bruit assez médiocres. Ce dernier est gaspillé sur n'importe quel système qui n'a pas une conception analogique très soignée. Il n'est donc pas surprenant que les micro-contrôleurs se retrouvent quelque part entre les deux.
Notez que les gens parlent souvent de «bruit de quantification» mais il est important de se rappeler que le concept de «bruit de quantification» est un modèle de réalité simplifié qui tombe en panne dans certaines circonstances.
la source
L'utilisation la plus courante des ADC est sans doute dans le domaine du traitement du son (VoIP, musique CD, etc.). La musique n'a pas d'intérêt ici, car cela nécessite 16 bits. Mais la VoIP est ce qui anime le marché ADC des bits inférieurs. La VoIP utilise généralement le companding, qui produit un code PCM compressé 8 bits à partir d'un signal d'entrée 12 bits. L'entrée de l'étape de compression doit avoir plus de bits - généralement 12, ou parfois 10 peuvent être suffisants (vous pouvez toujours simuler les deux bits les plus bas).
En conséquence, la demande d'ADC 8 bits est très faible, mais les ADC de bits supérieurs sont très demandés et donc disponibles à moindre coût. Arduino utiliserait probablement des composants bon marché et omniprésents.
la source