Les broches IO doivent-elles chacune avoir leur propre résistance pull-up / down?

13

Une question très fondamentale:

Chaque broche d'E / S d'un microcontrôleur qui sert d'entrée à un interrupteur ou un cavalier doit-elle avoir sa propre résistance pull-up / down?

Schéma d'E / S simple à 3 broches

Dans cet exemple, chaque broche est tirée vers le bas par une résistance, puis tirée vers le haut par un commutateur 1P3T sur VCC.

Cela semble simple, mais comme plus de broches IO sont utilisées, plus de résistances sont-elles absolument nécessaires? Existe-t-il un moyen intelligent de réduire le nombre de résistances?

Question connexe: partage d'une résistance de rappel

JYelton
la source

Réponses:

16

Selon le schéma fourni, si les 3 entrées partageaient une résistance, alors l'une des lignes tirées vers le haut via le commutateur élèverait les 3 lignes à haut, contrant le but de la conception - le MCU ne saurait pas quelle position du commutateur est choisi.

Un moyen courant de réduire le nombre de pièces , et non le nombre de résistances, pour de telles conceptions est d'utiliser un réseau ou un réseau de résistances de bus commun:
Réseau de résistances de bus commun (à partir d' ici )


Ceux-ci sont disponibles en tant que SIP / DIP traversant ainsi que SMD, dans une variété de nombres de résistances, selon vos besoins. La broche de bus est connectée à la masse et les autres broches sont connectées aux entrées MCU respectives comme dans votre schéma. Réseaux de résistances SIP (d' ici )

Réseaux de résistances SMD (d' ici )

Anindo Ghosh
la source
8

La plupart des microcontrôleurs ont des résistances pull-up (pas down) en option intégrées pour chaque broche, il est donc normal de tirer les broches vers le BAS avec le commutateur (et de gérer l'inversion de polarité dans le logiciel).

Donc - aucune résistance nécessaire.

Quant à savoir pourquoi tirer vers le haut, pas vers le bas, c'est une habitude laissée par les circuits logiques TTL des années 1970, où il fallait beaucoup moins de courant pour tirer une entrée vers le haut que vers le bas - une résistance de défilement gaspillerait plus d'énergie. Cela ne s'applique plus à la logique CMOS d'aujourd'hui, mais la tradition des tractions a persisté, de sorte que les premières puces CMOS 5V étaient compatibles avec l'ancienne logique TTL.

Brian Drummond
la source
Je pensais que la raison du pull-up était parce que leur utilisation courante était avec des sorties à collecteur ouvert, et une fois que vous avez l'habitude d'aller dans un sens, vous continuerez comme ça sans bonne raison.
dunkers
De plus, les sorties TTL peuvent descendre de 16 mA mais ne générer que 800 µA, donc un pull-up peut être utilisé pour ajouter du muscle à une sortie. Une entrée TTL se soulèverait si vous ne la connectiez pas, donc une traction pour des raisons d'entrée me semble un peu étrange. (Désolé,
j'ai
"une entrée TTL se soulèverait" ... dans une certaine mesure oui, mais pas de manière fiable - le grand livre orange spécifie un 40 microamp Ih pour garantir Vin> 2,4 V (pour 7400; 20ua pour 74LS) Laisser les entrées TTL ouvertes était définitivement déconseillé partout où je travaillais ...
Brian Drummond
1
Les pulldowns contre les pullups ne sont pas seulement historiques. Avec une résistance de rappel, l'autre côté du commutateur peut être mis à la terre, ce qui est souvent pratique.
Olin Lathrop
1
La famille de microcontrôleurs TI MSP430 possède à la fois des tractions internes et descendantes.
Passerby
0

Vous ne voulez jamais laisser une entrée à la logique ouverte en supposant qu'elle se tirerait vers le haut ou vers le bas. si une entrée est laissée ouverte, c'est une petite antenne et également soumise aux courants à l'intérieur du dispositif logique. Donc, vous tirez vers le haut ou vers le bas pour vous assurer d'avoir une entrée propre et prévisible. J'ai appris cette règle alors que je travaillais chez Fairchild Semiconductor dans les années 1980.

Lma Ranger
la source
1
Cela ne répond pas à la question posée.
Le Photon
Je pense que le contexte de la question d'origine est qu'il y a des boutons et des commutateurs qui sont des entrées pour un MCU. Si une broche d'E / S n'est pas utilisée, elle peut être transformée en sortie puis pilotée bas (ou haut) à partir du firmware. Cela devrait résoudre les problèmes EMI qui se cachent, et cela ne nécessite pas de résistance externe.
Nick Alexeev