Personnellement, je ne suis pas un grand fan des règles de base, mais il y a quelques règles qui sont juste exceptionnellement précises pour lesquelles même je fais une exception.
L'une de ces règles est la suivante:
Les périphériques ADC du microcontrôleur sont toujours terribles.
Toujours. Pas le genre de terrible que vous venez de déclasser. Le genre de terrible qui vous laisse pleurer en position fœtale sous la douche.
Je gosse, mais seulement légèrement. Pour répondre à votre question, oui, l'ADC est en fait aussi mauvais que ça, et oui, vous devez l'accepter. Notez le grand avertissement indiquant "les conditions de fonctionnement s'appliquent." dans la fiche technique.
Vous devez vous rappeler que pour certaines pièces (comme les microcontrôleurs), la fiche technique est également du matériel de marketing, et les microcontrôleurs concurrencent généralement les périphériques, ou la consommation d'énergie (ou les deux). Donc, les chiffres pour des choses comme les ADC seront souvent techniquementcorrect, tant que vous utilisez l'ADC dans les mêmes circonstances ridicules et peu pratiques, ils ont pris la mesure pour la fiche technique. Un favori que je vois souvent est de mesurer l'ENOB avec tous les autres périphériques ainsi que le cœur du processeur réel complètement éteint dans un sommeil profond. Un autre utilise un post-traitement logiciel important et des techniques similaires comme le suréchantillonnage pour obtenir la mesure. Je ne pense pas avoir jamais vu une fiche technique MCU qui ne spécifie pas l'ADC en termes de `` c'est le meilleur que vous obtiendrez jamais, et nous pouvons ou ne pouvons même pas vous dire comment nous l'avons géré '' plutôt que «c'est la spécification avant d'essayer de nettoyer le signal dans le logiciel».
Et, pour être clair, il semble que cette partie ait un très bon ADC, au moins par rapport à tous les autres terribles ADC MCU. 8,5 bits? Quelle opulence! Tellement bourgeois! La plupart du temps, vous obtiendrez peut-être 6 bits d'un ADC 10 bits dans un MCU. Rappelez-vous, quand ils disent une résolution de 12 bits, cela signifie qu'il y a 12 bits que vous pouvez lire quelque part dans un registre. Il n'y a aucune implication qu'ils ne seront pas 12 bits de bruit inutile. La seule promesse est qu'il y aura 12 bits de quelque chose .
Maintenant, à ce stade, vous pourriez être un peu sceptique quant au fait que ces périphériques analogiques seraient toujours aussi terribles, ou à tout le moins, vous demandez pourquoi une société de puces ne publie pas simplement un microcontrôleur avec un frontal analogique décent à mi-chemin.
Eh bien, ils ne peuvent pas. Peu importe la qualité de la référence, ce n'est pas un problème de stabilité. C'est du bruit. Et la physique.
Il est tout simplement physiquement impossible de créer un ADC haute performance (ou vraiment, juste médiocre) sur la même puce en silicium qu'un MCU. Et il suffit d'un gotchya pour bousiller les performances analogiques. Dans ce cas, il n'y a pas un gotchya, mais plusieurs.
Tout d'abord, une seule commutation de transistor CMOS déversera toutes sortes d'harmoniques et de bruit directement dans, eh bien, tout, et se couplera dans (vous l'avez deviné) tout, quand il commutera. Nous avons tendance à penser CMOS comme étant faible puissance (et il est), mais il est utile de garder à l' esprit que la puissance CMOS ne utilisation est effectivement nul - sauf lorsqu'un transistor est en train de changer l' état. Et ils changent d'état très rapidement, de l'ordre de dizaines à centaines de picosecondes. Lorsque vous prenez une douzaine de milliampères consommés par quelque chose qui ne consomme pratiquement pas d'électricité statique, et tout ce courant est entièrement transformé en pics de courant intenses de 100 ps de littéralement des millions de petits bâtards minusculescommutateurs, commutation dans l'ensemble ... eh bien, cela devrait recadrer un peu les choses. Ces quelques milliampères sont beaucoup plus sinistres qu'il n'y paraît, du moins pour les trucs analogiques. Faible puissance, faible bruit. Le CMOS est de faible puissance car il n'a besoin que d'alimentation pour commuter. Mais il bascule plus dur qu'une baisse de basse dubstep.
Ces pointes doivent toutes traverser le substrat, le substrat que l'ADC partage, et suffisamment résistif pour provoquer un rebond de masse localisé dans le substrat qui n'a pas de sens pour les circuits numériques, mais très gênant en effet pour tout circuit analogique.
Et il n'y a vraiment aucun moyen de contourner cela. Ce n'est qu'un problème. L'autre est qu'il est en fait physiquement impossible de créer une disposition analogique haute performance pouvant coexister avec le MCU, qui devra également utiliser ces broches comme GPIO, et d'autres considérations qui perturbent fatalement toute chance d'avoir une bonne section analogique disposition.
Maintenant, il existe quelques MCU spécialisés avec des ADC quelque peu améliorés qui y parviennent en ayant en fait deux matrices de silicium entièrement séparées dans un boîtier, connectées par des fils de liaison, ce qui permet d'isoler le substrat. Vous allez payer pour cette fonctionnalité, et les résultats seront toujours moins bons qu'un ADC dédié en raison de la proximité.
Oh, et je n'ai même pas expliqué comment tout cela suppose que vous avez une disposition externe sans faille et une situation de mise à la terre et de découplage de toutes les manières liées à votre section analogique et numérique. Rien que cela n'est pas anodin, il suffit de demander à Henry Ott .
Donc, en conclusion, je crains que l'ADC sur votre puce soit vraiment terrible. Exactement comme tous les autres ADC MCU. Désolé. Soit c'est assez bon - et pour de nombreuses applications (aidé par une source de logiciel assez intelligente, ry - pun!) - c'est le cas. C'est incroyable ce que l'on peut vraiment faire, même avec les mauvaises performances analogiques disponibles tant que vous êtes intelligent. Mais l'intelligent ne peut que vous mener jusqu'ici. si vous voulez un nombre efficace et froid de bits, il vous suffit de mordre la balle et d'utiliser un ADC dédié avec une disposition et un découplage PCB prudents, ou de chercher à utiliser une partie plus spécialisée (comme les packages multi-die).