Comprendre le câblage des broches AVCC sur ArduinoLeonardo (filtre passe-bas?)

10

L'Arduino Leonardo a une différence intéressante avec les cartes précédentes: la broche AVCC de l'ATMEGA32U4 est connectée à + 5V via une perle de ferrite MH2029-300Y et à GND via un condensateur 1uF.

Dans ArduinoUno et ArduinoMega2560, cette broche était simplement connectée à VCC. Selon la fiche technique atmel, cette broche doit être connectée à un filtre passe-bas lorsque le convertisseur ADC est utilisé.

entrez la description de l'image ici

Schéma Arduino Leonardo

Est-ce vraiment un filtre passe-bas? Si oui, comment ça marche? Comment appelleriez-vous ce type de circuit? Comment le modélisez-vous?

Sarfata
la source
1
Eh bien, la perle de ferrite fournit une inductivité et le condensateur fournit une capacité, c'est donc une forme de filtre LC.
AndrejaKo
3
Whoa, de terribles schémas.
Connor Wolf
Il s'avère que vous ne pouvez pas utiliser un filtre RC traditionnel - lisez les commentaires ci-dessous pour en savoir plus. En outre, la page 302 de la fiche technique Atmega 32u4 contient des explications à ce sujet (24.7.2 Techniques d'annulation du bruit analogique).
sarfata

Réponses:

11

entrez la description de l'image ici

L'inductance plus le condensateur forment un diviseur de tension dépendant de la fréquence.

VOUTVIN=ZCZC+ZL

ZLZCZLZC

L'inducteur qu'ils ont utilisé n'est cependant pas bon. C'est un suppresseur EMI haute fréquence, ciblé sur des fréquences de dizaines de MHz. (Le type utilisé a une impédance de 30 Ω à 100 MHz.)

entrez la description de l'image ici

La courbe d'impédance montre une pente de 0,5 Ω / MHz, donc à 100 Hz la partie réactive de l'inductance est négligeable.

Ce qui est réellement nécessaire, c'est la suppression du bruit à basse fréquence, comme une ondulation de 100 Hz de l'alimentation. Ensuite, cette inductance est assez inutile, et c'est comme avoir simplement le condensateur.

Pour les inductances à basses fréquences, elles peuvent être de taille peu pratique, alors une résistance à la place de l'inductance aurait été un meilleur choix. La fiche technique indique qu'AVCC ne devrait pas être inférieur à VCC - 0,3 V, mais je n'ai pas pu trouver la quantité actuelle d'AVCC. Ce ne sera pas grand-chose, disons 10 µA maximum. La fréquence de coupure d'un filtre RC est

fC=12πRC

Donc, si nous utilisons une résistance de 15,9 kΩ avec le condensateur 1 µF, nous avons une fréquence de coupure de 10 Hz, et la réponse en fréquence ressemblera à ceci:

entrez la description de l'image ici ou ici

Le 10µA à 15,9 kΩ est une baisse de 159 mV, donc c'est dans les spécifications. Une ondulation de 100 Hz sera atténuée de 20 dB, soit 1:10, ce qui n'est pas beaucoup, mais le VCC aurait déjà dû être découplé correctement, donc le 20 dB est juste supplémentaire. Au-dessus de 1 kHz, le bruit sera réduit d'au moins 40 dB, c'est un facteur 1: 100.

stevenvh
la source
Excellente réponse Steven. Merci beaucoup! (et merci pour l'image ajoutée dans la question;)
sarfata
@sarfata - mon plaisir, merci pour l'accepter. Mais je n'ai pas téléchargé la photo, c'était jippie . J'ai supprimé votre signature :-) (ils ne sont pas autorisés sur le site)
stevenvh
Eh bien grâce à vous, je sais maintenant comment consulter l'historique des modifications;) Merci à tous ceux qui ont nettoyé la question et l'ont améliorée!
sarfata
1
IMPORTANT - LISEZ CECI AVANT D'UTILISER UNE RÉSISTANCE! Je construis une carte avec un Atmega 32U4 et le filtre passe-bas décrit sur cette page commentaires (résistance 15.8k + condensateur 1 uF). Il s'avère que le courant consommé sur AVCC est beaucoup plus élevé que prévu: je mesure 2,58V sur AVCC avec VCC à 3,30V (donc I = (3,30-2,58) /15,8) = 45uA. La chute de tension est de 0,72 V, soit le double de la chute autorisée. Le résultat est que la puce ne peut pas être programmée. Vous pouvez le lire mais l'écriture échoue tout le temps. J'ai retiré la résistance et connecté AVCC directement à VCC et je peux maintenant programmer la puce. [CC @stevenh]
sarfata
1
@sarfata - Vous pouvez toujours utiliser une résistance alors, mais vous devez utiliser une valeur inférieure, comme 4,7 k.
stevenvh
9

De très bonnes réponses. Mon avis est que l'objectif du filtre LC n'est pas de filtrer l'ondulation de l'alimentation. Il est préférable de le faire avec des bouchons rigides (faible ESR) sur les lignes électriques / avions et en choisissant la bonne pièce de régulateur pour commencer. De plus, si vous alimentez votre Arduino à partir d'un port USB, le type de bruit d'ondulation à basse fréquence serait négligeable.Une verrue murale cheapo est un commutateur dans les dizaines à centaines de kHz et sera électriquement bruyante, mais le régulateur de tension et la capacité sur le les rails d'alimentation numériques devraient y aider.

Ce que fait le filtre LC L / P, c'est de supprimer les arêtes vives des signaux numériques qui se retrouvent sur les lignes électriques numériques et s'ils étaient directement connectés aux broches AVCC, ils trouveraient leur chemin dans les circuits de conversion A / N.

La raison pour laquelle la carte ne démarre pas avec la plus grande résistance (dans le circuit RC) est que la PLL dans la partie ATMega est un circuit analogique et utilise les mêmes broches AVCC que les convertisseurs A / D et qu'elle n'a pas reçu assez de puissance . Peut-être qu'il n'utilise pas vraiment les deux broches de la même manière dans la pièce, mais il n'y a pas de différenciation dans la fiche technique (les deux s'appellent AVCC). Du point de vue de la mise en page, il est pénible que les broches 24 et 44 soient celles qui vont à AVCC car elles sont situées sur les côtés opposés de la puce et qui va se donner la peine de leur consacrer tout un plan d'alimentation? Vous finissez par acheminer un signal à travers la partie, probablement avec des vias des deux côtés, etc. Douloureux. La fiche technique mentionne à peine cette horrible réalité, presque comme si la broche supplémentaire était une seconde pensée d'ATMEL.

Quoi qu'il en soit, ces signaux bruyants sortent du microprocesseur lui-même lorsqu'il commute en interne et ne nuisent pas à la logique numérique, mais essayer d'obtenir une précision analogique de 10 bits demande un peu plus d'efforts du côté de l'alimentation. Ces fronts de bruit numériques sont peut-être dans les dizaines de nS (100 Mhz-ish), donc les filtres avec cette caractéristique fonctionneront plutôt bien. Si vous travaillez à travers les nombres, en utilisant AVCC = 5V et 10 bits d'A / D, chaque LSB est d'environ 5 mV. Il semble que vous auriez besoin d'avoir moins de la moitié de cela en règle générale pour avoir un bruit «faible».

La fiche technique du MH2029-300Y montre 20 Ohms à 100 Mhz. Si le gars qui avait essayé le filtre RC avait réglé la fréquence des genoux à 1 Mhz, cela aurait probablement mieux fonctionné car il aurait pu choisir une résistance beaucoup plus petite. Quelque chose comme une résistance de 22 Ohm (pour correspondre à l'impédance de l'inductance à 100 Mhz) et un plafond de 0,01 uF auraient eu une chute de tension CC suffisamment petite en raison de la charge d'entrée (45uA x 22 Ohm = 1 mV environ à partir de ses chiffres). Il serait en baisse de 40 dB dans la fréquence d'intérêt.

Je ne parierais pas une mise en page, mais si les pièces avaient une certaine empreinte, je pourrais lui donner un coup (choisir une empreinte de 0805 pour les deux?) Mais avec l'inducteur étant une partie de 0,10 $ de Mouser, pourquoi ne pas simplement rester avec ?

DougG
la source
1

Oui, c'est un filtre passe-bas. La perle de ferrite est un composant inductif avec perte qui agit un peu comme une résistance dépendante de la fréquence, avec L dominant aux basses fréquences et R dominant aux hautes fréquences. Le condensateur shunte les fréquences supérieures à la masse. Combinés, ils forment un filtre LC avec un faible Q, qui ne subit pas le pic de résonance pointu (tant que la coupure est dans la région résistive de la bille) qui peut causer des problèmes dans un filtre LC "standard".
Cependant, comme le note Steven, cette partie n'est pas particulièrement adaptée à cette application, car il s'agit d'une partie haute fréquence et l'ADC est relativement basse. Il serait utile dans quelque chose qui nécessite un filtrage à des fréquences beaucoup plus élevées, comme une conception FPGA, un ADC haute fréquence, etc.

Oli Glaser
la source