Concevoir les éléments essentiels lorsque vous travaillez avec des ADC 12 bits

11

Je suis en train de concevoir une carte qui connecte un ADC 12 bits (MCP3208) à un Raspberry Pi (en plus de quelques autres éléments liés aux E / S à faible vitesse). Il sera principalement attaché à des capteurs analogiques (capteurs de température, capteurs de distance IR et autres choses similaires, bien que n'ayant pas toujours besoin d'une résolution de 12 bits, il y a des cas où ce serait vraiment bien d'avoir ce morceau supplémentaire d'informations).

Je n'ai pas beaucoup d'expérience avec les circuits analogiques et je n'ai pas une bonne compréhension des mathématiques et de la physique sous-jacentes impliquées.

Je lis dans plusieurs guides de conception concernant les ADC et je lis souvent des choses comme les filtres anti-aliasing, les pilotes ADC pour les signaux à haute impédance, les plans de masse analogiques, la présentation de traces dans certains modèles pour réduire le bruit, en gardant l'électronique numérique haute vitesse séparée autant que possible. possible à partir de l'ADC pour réduire le bruit de commutation, les références de tension de précision et bien d'autres choses que je ne comprends pas encore complètement.

Donc, ce que j'ai commencé à me demander, c'est si cela avait du sens pour moi d'utiliser un ADC 12 bits, si je n'ai pas l'expertise pour l'implémenter correctement car je risque de perdre 2 LSB de toute façon en raison de la conception de circuits sous-optimale et devrait plutôt juste aller avec un ADC 10 bits. Ou la conception optimale des circuits n'est-elle pas aussi cruciale dans le domaine 12 bits que je le pense.

Quelles sont les choses qui devraient toujours être mises en œuvre pour réduire le bruit (par exemple le bouchon de dérivation évident)? Quelles sont les principales causes de bruit dans une application à signaux mixtes comme la mienne (avoir un processeur GHz parlant à l'ADC)? Quelles sont les choses qui ne sont réellement nécessaires que dans les applications de plus grande précision (14-16 bits +)?

Je voudrais vraiment savoir quelles sont les choses sensibles et essentielles que je dois rechercher.

PTS
la source
2
Commencez par ce que vous essayez de mesurer et le type de résolution dont vous avez besoin, puis décidez du type de CAN et de traitement analogique dont vous avez besoin. En passant, lisez votre fiche technique ADC. Vous perdez des bits même si vous l'utilisez parfaitement. Recherche de "ENOB"
Scott Seidman
Le problème est que les choses que je devrai mesurer changeront constamment. Parfois, j'ai besoin de voir tous les sauts de tension possibles, parfois même 8 bits suffiraient. J'aimerais avoir une solution qui puisse répondre à autant d'applications que possible.
PTS
À quelle vitesse avez-vous besoin pour voir les changements? (c.-à-d. quel taux d'échantillonnage recherchez-vous?)
ThreePhaseEel
2
"Parfois, j'ai besoin de voir tous les sauts de tension possibles, parfois même 8 bits suffiraient." Ensuite, vos exigences sont de pouvoir "voir chaque coupure de tension possible". Si vous avez besoin d'une résolution de 12 bits, même occasionnellement, vous devez concevoir avec 12 bits. Si vous passez à 10 bits, vous n'en aurez pas 12 lorsque vous en aurez besoin.
WhatRoughBeast
Un taux d'échantillonnage de 1Khz + serait préférable. Bien que je pense que dans la plupart des applications, 120 Hz serait suffisant. Bien que ce taux d'échantillonnage devrait être possible pour 8 canaux à la fois (pas à la même horloge, mais ils doivent tous être échantillonnés consécutivement). @WhatRoughBeast Oui, c'est pour cette raison que j'ai décidé de choisir 12 bits. Bien que j'ai besoin de conseils pour la mise en œuvre ici.
PTS

Réponses:

19

Pour une application de signaux mixtes de précision moyenne à faible taux d'échantillonnage telle que la vôtre, les principaux problèmes auxquels vous êtes confrontés sont d'avoir une référence suffisamment précise et de garder le bruit de commutation numérique hors de votre ADC. Il y a plusieurs étapes à cela, en commençant par la phase de conception et en continuant par la disposition de la carte.

Pendant la conception du circuit

Tout d'abord, lors de la phase de conception, une référence appropriée, un découplage correct et un pilote de signal à faible impédance doivent être fournis à l'ADC pour que les conversions correctes se produisent. En outre, le signal doit être filtré (filtré passe-bas dans une application d'instrumentation comme la vôtre) pour empêcher l'ADC de convertir efficacement les fréquences supérieures en bande de base (les applications RF peuvent utiliser un filtre frontal ADC + passe-bande lent pour Nyquist-convertir un signal, économisant sur un mélangeur dédié et LO).

Stabiliser votre référence

Les références vont du trivial et pathétique (un Zener discret de gelée, bon à oh, 4 bits) au fou (Zeners enfouis IC à four, utilisé dans des applications d'instrumentation hautes performances) - et les spécifications ne sont souvent pas claires, mélangeant des unités dans façons qui confondent les novices. Le tableau du LTC AN82 est un antidote utile pour cela - compte tenu de votre application, où votre ADC est une unité 12 bits capable de 11+ ENOB avec une référence stable et une alimentation 5V, je préciserais que la référence doit être précise à 0,02% ou mieux dans la plage de température d'intérêt, et le bruit RMS n'est pas un problème car il s'agit d'un ordre de grandeur inférieur à vos spécifications de précision.

Malheureusement, une précision initiale de 0,02% sans ajustement est là où les choses commencent à devenir plutôt ... difficiles. L'utilisation d'une référence 4.096V étant donné que les performances ENOB souhaitées signifient que je veux exécuter l'ADC sur une alimentation 5V silencieuse avec un traducteur de niveau logique vers le 3.3VI / O du Pi, et que 4.096V vous donne une belle et pratique Relation 1 mV / nombre, nous sommes limités à l' ADR4540 , le X60003 , le MAX6126AASA ou peut-être le LTC6655Bbien que la dernière partie le coupe de près car il a une précision initiale de 0,025%. Bien que le tempco et l'hystérésis ne soient pas des préoccupations car il s'agit d'une application de banc, je présume, et la régulation de la ligne et de la charge ne sont pas des problèmes majeurs car ils sont alimentés par la même alimentation 5V régulée que l'ADC et ne pilotent que la broche Vref de l'ADC, dérive à long terme est également une préoccupation ici en raison de l'absence de garniture - pour cela, l'ADR4540 et le MAX6126AASA sont les gagnants clairs à 25 ppm / root-khr et 20 ppm / root-khr, respectivement - environ au rapport 10-1 nécessaire considérer la dérive à long terme comme non significative. (Les deux autres parties ont une dérive à long terme d'environ 50 à 60 ppm / racine-khr typique.)

Tout découpler

La fiche technique du MCP3208 recommande un condensateur d'au moins 1µF pour le découplage, connecté de Vdd au système de masse - AGND et DGND doivent également être liés au même système de masse. Un découpleur en vrac en céramique ou en polymère d'au moins 10µF / 10V doit également être utilisé sur le rail 5V de la carte.

En plus de cela, la référence doit être découplée selon la fiche technique - c'est souvent 100nF sur la sortie avec 100nF sur l'entrée en plus de toute capacité de découplage en vrac présente, mais le LTC6655 nécessite un condensateur de sortie beaucoup plus grand (en utilisant le même P / N car le découpleur en vrac fonctionne), et le X60003 est difficile dans la direction opposée en raison de sa conception à faible puissance.

Commande d'entrée / mise en mémoire tampon / filtrage

Heureusement, ce n'est pas difficile - une précision de 0,02% se traduit par 800µV de décalage d'entrée maximal, et je peux obtenir quelques ordres de grandeur mieux que celui avec des GBW dans la gamme MHz tout en fonctionnant sur la seule alimentation 5V disponible avec le zéro d'aujourd'hui -amplificateurs dérivants et internes. L' AD8630 propose une option de mise à zéro automatique à faible bruit, tandis que les amplificateurs à faible décalage à ajustement interne rapide incluent l' OPA4350 et l' OPA4192 . Quoi qu'il en soit, le filtre anti-aliasing passe-bas bipolaire Sallen et Key de la fiche technique MCP3208 peut être utilisé, avec une fréquence de coin réglée à environ 5 kHz - d'autres conceptions de filtres peuvent également fonctionner.

Alimentation et interface numérique

La spécification ENOB (nombre effectif de bits) du MCP3208 dépend de l'alimentation - elle fonctionne mieux avec une alimentation 5 V qu'avec une alimentation 2,7-3,3 V; il doit également fonctionner à partir de 5V pour utiliser une référence 4.096V. Cela soulève le problème que le Pi utilise une logique 3,3 V et n'est pas tolérant 5 V, nécessitant un IC de traduction de niveau logique tel que le TXB0104 - le côté A va au Pi tandis que le côté B va à l'ADC.

De plus, l'alimentation 5V doit être raisonnablement propre - un régulateur linéaire doit être utilisé pour la générer à bord à partir d'une tension d'alimentation plus élevée. Si aucune tension d'alimentation plus élevée n'est disponible dans l'application, un rail 5 V existant peut être utilisé à condition qu'un réseau de découplage LC soit utilisé pour maintenir de grandes quantités de bruit numérique hors du CAN et du rail d'alimentation de l'ampli op.

Temps de mise en page

Il existe deux clés pour une disposition efficace de signaux mixtes: partitionnement et disposition d' alimentation / retour . Je vais les aborder tour à tour.

Tout d'abord, je diviserais soigneusement la disposition de la carte en deux côtés - un côté numérique et un côté analogique. Toutes les traces numériques (l'interface SPI, dans le cas du MCP3208 que vous utilisez) vont du côté numérique de la carte - ce côté de la carte contient également la puce du traducteur de niveau logique et le connecteur d'E / S du Pi. Le côté analogique de la carte contient toutes les traces et circuits analogiques - la référence de tension va ici, tout comme les filtres d'entrée, la protection d'entrée et les connecteurs d'entrée analogique. L'ADC (et l'inductance de filtre si vous utilisez 5V du Pi) est le seul composant qui comble cet écart - en fait,

Notez également que toutes les pièces que j'ai liées sont disponibles dans des packages SMT à pas grossier - une disposition unilatérale avec l'arrière comme plan GND continu est fortement recommandée si une carte double face doit être utilisée ici. Si le coût n'est pas une objection, une carte à quatre couches fournira un plan Vdd analogique continu en plus du plan de masse, ainsi que de la place pour une "flaque de puissance" pour le côté logique 3,3 V du traducteur de niveau logique IC. Cependant, il n'est pas nécessaire de diviser le plan de masse dans cette application - un routage approprié des traces de signal gardera les courants de retour là où ils appartiennent .

ThreePhaseEel
la source