Müssen IO-Pins jeweils einen eigenen Pull-Up / Down-Widerstand haben?

13

Eine sehr grundlegende Frage:

Muss jeder E / A-Pin eines Mikrocontrollers, der als Eingang eines Schalters oder Jumpers dient, einen eigenen Pull-Up / Down-Widerstand haben?

Einfacher 3-poliger E / A-Schaltplan

In diesem Beispiel wird jeder Pin durch einen Widerstand nach unten und dann durch einen 1P3T-Schalter nach oben auf VCC gezogen.

Es scheint einfach zu sein, aber wenn mehr IO-Pins verwendet werden, sind mehr Widerstände unbedingt erforderlich? Gibt es eine clevere Möglichkeit, den Widerstand herunterzuzählen?

Verwandte Frage: Teilen eines Pull-Up-Widerstands

JYelton
quelle

Antworten:

16

Wären alle 3 Eingänge mit einem Widerstand verbunden, würden alle 3 Leitungen durch Hochziehen über den Schalter auf Hoch geschaltet, was dem Zweck des Designs zuwiderläuft - die MCU würde nicht wissen, welche Schalterposition vorliegt ausgewählt.

Eine übliche Möglichkeit, die Anzahl der Teile und nicht die Anzahl der Widerstände zu verringern , besteht in der Verwendung eines gemeinsamen Buswiderstandsnetzwerks oder -arrays:
Common Bus Resistor Array (von hier )


Diese sind als SIP / DIP-Durchgangsbohrung sowie als SMD-Durchgangsbohrung in einer Vielzahl von Widerstandszahlen erhältlich, je nach Ihren Anforderungen. Der Bus-Pin ist mit Masse verbunden, und die anderen Pins sind wie in Ihrem Schaltplan mit den jeweiligen MCU-Eingängen verbunden. SIP-Widerstandsarrays (von hier )

SMD-Widerstandsarrays (von hier )

Anindo Ghosh
quelle
8

Die meisten MCUs verfügen über optionale Pull-up-Widerstände (keine Pull-down-Widerstände), die für jeden Pin eingebaut sind. Daher ist es normal, die Pins mit dem Schalter nach UNTEN zu ziehen (und die Polaritätsumkehrung in der Software zu behandeln).

Also - keine Widerstände nötig.

Was den Grund für das Hochziehen und nicht das Herunterziehen betrifft, so ist dies eine Gewohnheit der TTL-Logik der 1970er Jahre, bei der zum Hochziehen eines Eingangs viel weniger Strom benötigt wurde als zum Herunterziehen - ein Pulldown-Widerstand würde mehr Leistung verschwenden. Dies gilt nicht mehr für die heutige CMOS-Logik, aber die Tradition der Pull-ups hat sich fortgesetzt, so dass frühe 5-V-CMOS-Chips mit älterer TTL-Logik kompatibel waren.

Brian Drummond
quelle
Ich dachte, der Grund für Pull-up ist, dass sie häufig für Open-Collector-Ausgänge verwendet werden, und wenn Sie einmal die Gewohnheit haben, einen Weg zu gehen, werden Sie diesen Weg ohne triftigen Grund fortsetzen.
Dunkers
Darüber hinaus können TTL-Ausgänge 16 mA abgeben, aber nur 800 uA liefern, sodass ein Pull-up verwendet werden kann, um einem Ausgang Muskelkraft zu verleihen. Ein TTL-Eingang würde sich von selbst öffnen, wenn Sie ihn nicht anschließen. Ein Öffnen aus Eingangsgründen erscheint mir daher etwas seltsam. (Entschuldigung, ich habe zu lange mit der Bearbeitung des vorherigen Kommentars gewartet ...)
dunkers
"Ein TTL-Eingang würde sich hochziehen" ... bis zu einem gewissen Grad ja, aber nicht zuverlässig - das große orangefarbene Buch spezifiziert einen Wert von 40 Mikroampere, um zu gewährleisten, dass Vin> 2,4 V (für 7400; 20ua für 74LS) bleibt. TTL-Eingänge offen zu lassen, war definitiv Nirgendwo zu empfehlen, wo ich gearbeitet habe ...
Brian Drummond
1
Pulldowns versus Pullups sind nicht nur historisch. Mit einem Pullup-Widerstand kann die andere Seite des Schalters geerdet werden, was häufig praktisch ist.
Olin Lathrop
1
Die TI MSP430-Familie von Mikrocontrollern verfügt sowohl über interne Pull-Ups als auch Pull-Downs.
Passant
0

Sie möchten niemals einen Eingang für die Logik offen lassen, wenn Sie davon ausgehen, dass er sich selbst nach oben oder unten zieht. Wenn ein Eingang offen bleibt, handelt es sich um eine kleine Antenne, die auch den Strömen im Logikbaustein ausgesetzt ist. Sie ziehen also nach oben oder unten, um sicherzustellen, dass Sie eine saubere und vorhersehbare Eingabe haben. Diese Regel habe ich in den 1980er Jahren bei Fairchild Semiconductor gelernt.

Lma Ranger
quelle
1
Dies beantwortet die gestellte Frage nicht.
Das Photon
Ich denke, der Kontext der ursprünglichen Frage ist, dass es Tasten und Schalter gibt, die Eingänge für eine MCU sind. Wenn ein E / A-Pin nicht verwendet wird, kann ein Ausgang von der Firmware auf Low (oder High) geschaltet werden. Damit sollten die lauernden EMI-Probleme behoben sein, und es ist kein externer Widerstand erforderlich.
Nick Alexeev