Je regardais la fiche technique du microcontrôleur ATTiny2313A et elle spécifie une valeur nominale absolue absolue pour le courant continu à travers chaque broche IO à 40mA
, et le courant continu maximum à travers les broches de terre / Vcc à 200mA
.
Je prévois d'utiliser ce micro contrôleur pour piloter certains écrans LED, il pourrait donc y avoir potentiellement une quantité importante de courant provenant / absorbé. Je sais que je dois absolument garder les courants en dessous de la valeur maximale absolue, mais de préférence, je voudrais garder cela en dessous d'un niveau recommandé, qui malheureusement n'est pas répertorié.
Il en va de même pour une variété d'autres circuits IC (registres à décalage logiques, commutateurs analogiques, multiplexeurs, etc.) que j'ai envisagés d'utiliser pour piloter les écrans LED, qui ne répertorient que les intensités maximales de courant absolues.
Donc, ma question est quelle est généralement une bonne marge de sécurité pour différents circuits CI qui ne listent que les valeurs nominales de courant maximum absolu? Puis-je me cogner 40 mA*
et être parfaitement en sécurité? Ou est-ce que je veux un facteur de sécurité confortable de 2x, 3x, etc.?
* remarque: je suppose que je ne dépasse jamais réellement 40 mA
, par exemple une 35 mA
valeur nominale avec une 5 mA
variance.
post-note: Je sais qu'il existe des pilotes LED à courant constant spécialement conçus, mais je pense que c'est toujours une question pertinente pour piloter d'autres composants.
la source
Il y a deux gros problèmes à considérer lors du dimensionnement du courant de sortie dans des situations statiques : la sortie de tension et la sortie thermique.
Sortie de tension
Au fur et à mesure que vous augmentez le courant de sortie, la tension de sortie commencera à "échouer" (être supérieure à celle attendue pour une sortie "basse" et inférieure à celle attendue pour une sortie "haute") en raison de l'impédance de sortie finie du pilote de sortie de la broche GPIO . Cela, à son tour, perturbera le point Q de votre circuit connecté à la sortie.
Ceci est particulièrement intéressant dans le cas d'appareils hautement non linéaires comme les LED. Si vous modifiez un peu la tension que vous appliquez à une LED, la demande actuelle change beaucoup plus par rapport.
Cela conduit au principe général selon lequel vous voulez que la tension de sortie "erreur" ne dépasse pas 10% (pour faciliter votre vie de conception).
Afin d'aller n'importe où près des maximums absolus, vous devrez subir quelque chose comme> 60% d'erreur dans votre tension de sortie. En fait, les spécifications de votre MCU ne vous montrent même pas combien d'erreur il y aurait à ce niveau de sortie.
Vous obtiendrez quelque chose comme 1V sur une sortie "haute" d'un VCC 3V. Ce niveau n'est pas assez élevé pour signaler de manière fiable "élevé" à d'autres appareils (dans les systèmes numériques).
J'ai extrait ce chiffre de votre lien de fiche technique:
Pour calculer la limite de courant (ici, étant donné Vcc = 3): 3 - 0,1 (3) = 2,7
À 2,7 V, la limite de courant nominal est de 8 mA, c'est-à-dire un peu moins que ce que vous attendiez de * 30 * mA environ ... ;-)
Une note intéressante de la physique des périphériques est que le côté n (côté bas) dans presque tous les pilotes de sortie CMOS que j'ai examinés est un peu plus fort que le côté haut de type p. En effet, les électrons (le porteur majoritaire dans les FET de type n) se déplacent environ deux fois plus facilement dans le canal que les trous (le porteur majoritaire dans les FET de type p). Pour compenser, les fabricants de puces doublent (environ) la taille du transistor de type p jusqu'à ce que les performances du pilote soient à peu près symétriques, mais le côté bas conserve généralement un léger (<10% d'avantage) malgré tout.
Ce cas ne fait pas exception ...
Vous pouvez voir sur cette figure que 0 + 0,1 (3) = 0,3 V -> 9 mA, environ 10% de plus que le 8 mA précédemment.
Vous devez donc installer vos pointages LED dans votre puce si possible. Autrement dit, concevez-les de sorte que la sortie faible = LED allumée. Quelque chose comme ça:
Sortie thermique
Courants élevés dans le pilote de broche = chaleur (évidemment). Heat ++ -> catastrophe. Les circuits d'attaque GPIO sont généralement répartis uniformément sur la périphérie de la puce par nécessité géométrique (souvent, ils déterminent la taille minimale de la puce).
Dans le cas de cette puce Atmel (ATMEGA8, voir ci-dessous), elles le sont très certainement. Les circuits GPIO sont regroupés autour des sites de connexion de fils bleu foncé dans l'anneau cyan autour de la logique (sombre) et des zones de mémoire au centre.
Tout cela n'est qu'une estimation des limites et légèrement ondulé à la main, mais l'ingénierie consiste à faire avancer les choses, alors voilà ... ;-)
L'utilisation de broches voisines à des niveaux de courant élevés devrait entraîner au moins un déclassement linéaire.
Si vous supposez que la pièce distribue la chaleur à peu près également (hypothèse juste pour votre petite matrice), vous pouvez obtenir une approximation de premier ordre en travaillant à l'envers à partir de la valeur maximale absolue (40mA) et en supposant que la broche voisine partagera 100% de la charge de chaleur.
Cela signifie que si vous avez une sortie 40mA (ne le faites pas réellement), ses voisins immédiats devraient être à 0mA. Sortie 20mA -> voisins 10mA, etc ...
Si je l'ai expliqué assez bien, alors il devrait maintenant être clair que vous choisissez le minimum entre les deux méthodes.
la source
La page 199 vous donne ce que vous voulez savoir. Chaque broche peut en toute sécurité / source / puits recommandé 5/10/20 mA à 1,8 / 3 / 5v, sans trop de chute de tension (+ - 0,5v au courant recommandé). Courant max 40mA par broche, la chute de tension sera plus importante. Ne dépassez pas 60mA out ou in sur toutes les broches combinées à un moment donné. Les pages 218-220 donnent de jolis petits graphiques qui montrent la chute de tension par rapport à la sortie de courant.
la source