Eine ganz grundsätzliche Frage:
Muss jeder IO-Pin eines Mikrocontrollers, der als Eingang von einem Schalter oder Jumper dient, einen eigenen Pull-Up/Down-Widerstand haben?
In diesem Beispiel wird jeder Pin von einem Widerstand heruntergezogen und dann von einem 1P3T-Schalter auf VCC hochgezogen.
Es scheint einfach, aber sind mehr Widerstände unbedingt erforderlich, wenn mehr IO-Pins verwendet werden? Gibt es eine clevere Möglichkeit, den Widerstandscountdown zu halten?
Verwandte Frage: Teilen eines Pullup-Widerstands
Wenn sich alle 3 Eingänge einen Widerstand teilen würden, würde gemäß dem bereitgestellten Schema jede der Leitungen, die über den Schalter hochgezogen werden, alle 3 Leitungen auf hoch heben, was dem Zweck des Designs zuwiderläuft - die MCU würde nicht wissen, welche Schalterposition ist ausgewählt.
Eine übliche Möglichkeit, die Anzahl der Teile und nicht die Anzahl der Widerstände für solche Designs zu reduzieren, besteht darin, ein gemeinsames Buswiderstandsnetzwerk oder -array zu verwenden:
(von hier aus )
Diese sind je nach Bedarf als Durchsteck-SIP/DIP sowie als SMD in einer Vielzahl von Widerstandszahlen erhältlich. Der Bus-Pin ist mit Masse verbunden, und die anderen Pins sind wie in Ihrem Schaltplan mit den jeweiligen MCU-Eingängen verbunden. (von hier )
(von hier )
Die meisten MCUs haben optionale Pull-Up-Widerstände (nicht Down-Widerstände) für jeden Pin eingebaut, 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 notwendig.
Warum Pullup, nicht Down, ist eine Gewohnheit, die von der TTL-Logikschaltung der 1970er Jahre übrig geblieben ist, wo viel weniger Strom benötigt wurde, um einen Eingang nach oben als nach unten zu ziehen - ein Pulldown-Widerstand würde mehr Energie verschwenden. Dies gilt nicht mehr für die heutige CMOS-Logik, aber die Tradition der Pull-Ups hat sich fortgesetzt, sodass frühe 5-V-CMOS-Chips mit älterer TTL-Logik kompatibel waren.
Sie möchten niemals einen Eingang für die Logik offen lassen, in der Annahme, dass er sich selbst nach oben oder unten ziehen würde. Wenn ein Eingang offen gelassen wird, ist er eine kleine Antenne und auch den Strömen innerhalb des Logikbausteins ausgesetzt. Sie ziehen also nach oben oder unten, um sicherzustellen, dass Sie eine saubere und vorhersehbare Eingabe haben. Ich habe diese Regel gelernt, als ich in den 1980er Jahren bei Fairchild Semiconductor gearbeitet habe.
Dunker
Dunker
user_1818839
Olin Lathrop
Passant