GPIO: Warum Taste auf Masse anstatt auf +3,3 V verdrahten?

13

In den meisten Beispielen, die ich von der Verkabelung von Tastern mit GPIO-Eingängen gesehen habe, ist der Taster so verkabelt, dass im geschlossenen Zustand ein Stromkreis zwischen Pin und Masse hergestellt wird, der einen niedrigen Eingang am Pin erzeugt. Ein Pull-Up-Widerstand wird verwendet, um den Eingangswert auf hoch zu setzen. Der Code auf dem Pi kann dann als Knopfdruck einen niedrigen Pegel erkennen.

Ich habe die Tasten an +3,3 V angeschlossen, damit das Signal hoch ist, da dies sinnvoller erscheint und den Code logischer hält, aber es muss einen Grund geben, warum die meisten Menschen den Anschluss an Masse bevorzugen. Was sind die Vorteile?

howard10
quelle
Hinweis: Wenn ich "Pull-Up-Widerstand" sage, meine ich entweder einen physischen externen Widerstand oder den internen Pull-Up-Widerstand, der im Code konfiguriert ist.
howard10

Antworten:

17

Einer der Hauptgründe, warum die Verkabelung von Tasten und Logik mit GND bevorzugt wird (und dann über das Internet kopiert wird), ist die Energieoptimierung.

  • Ein Pin LOW mit Widerstand gegen GND zu ziehen kostet 0 Watt.
  • Das Ziehen eines Pins HIGH mit Widerstand auf + Vcc kostet Strom.

Bei komplexen Schaltungen oder Schaltungen, die auf Batterien beruhen, ist diese Leistung sehr kostbar.

Andere Gründe sind eine geringe EMF-Erzeugung. Bei drahtlosen Geräten führt das Ziehen der Logik nach oben zu unnötigem Übersprechen bei extrem empfindlichen HF-Empfängern. Auf solchen Transceivern befindet sich eine GND-Ebene, die zum Filtern von Rauschen verwendet wird, und auf diese Ebene wird die gesamte Logik heruntergezogen. Der Prozessor verwendet dann die GND-Ebene, um Schaltstörungen zu filtern.

Piotr Kula
quelle
3
Wie viel Strom kostet es, mit einem Widerstand nach oben oder unten zu ziehen? Der Strom fließt zu einem Eingang mit sehr hoher Impedanz am Pi, wodurch jeglicher Strom auf Sub-Mikro-Ampere (Mikro-Watt-Leistung) reduziert wird.
stefandz
OK, aber sag mir einfach, ob ich falsch liege. Eine Stecknadel nach unten ziehen, was eine 0v = 0wattsVerwendung ist, aber eine Stecknadel nach oben ziehen >0watts- jede Art von Mikro, Milli, Nano, spielt keine Rolle. Wie bereits erwähnt, hilft im Akkubetrieb jedes Nano-Watt. Aber wie hier schon beantwortet ... auf USB bedeutet das nichts. Irre ich mich
Piotr Kula
1
Nicht unbedingt wahr. Digitaleingänge sind hochohmig gegen Masse. Sie sind aber nicht nur Widerstände. Sie sind Eingangsgatter, normalerweise für FETs, und diese Gatter sind nicht ideal. Sie haben Leckströme, und diese Leckströme können in beide Richtungen ein- oder ausgehen. Daher könnte Ihr Pulldown ein oder zwei Mikrowatt verbrauchen, genauso wie ein Pullup.
stefandz
Wenn Sie ein Embedded-Gerät mit 2AA-Batterien entwickeln mussten und der Kunde dies wünscht, ist die Laufzeit mindestens 12 Monate. Und Sie müssen einen GPIO runter / rauf ziehen. Welches würden Sie verwenden, um die meiste Energie zu sparen. (Wir reden hier über Mikromanagement)
Piotr Kula
4
Für das, was es wert ist, habe ich einige Messungen durchgeführt - und Pulldown gewinnt (für den Stromverbrauch), aber nur knapp. 10k Pullup auf 3,3V = 9fW (Ja, Femtowatt) - 10k Pulldown auf Masse = 5fW. Dies ist sicherlich nicht einmal ein bisschen Batterie-Gebiet zu sparen.
stefandz
9

Es gibt komplexe historische Gründe, warum Elektrotechniker Eingänge normalerweise mit Widerständen hochgezogen und Schalter verwendet haben, um sie zu erden.

Diese Gründe sind jedoch für den Hobbygebrauch des Raspberry Pi nicht besonders relevant. Verwenden Sie, was für Sie sinnvoll ist.

Wenn Sie ein kommerzielles Produkt herstellen oder Ihr Design etwas verbessern möchten, wählen Sie Klimmzüge mit Erdungsschalter aus den folgenden praktischen Gründen:

  • Ein langer Erdungsdraht birgt weniger EMI / EMC-Strahlungsrisiko als ein an die Stromversorgung angeschlossener
  • Etwas zu erden und einen Erdungspunkt zu finden, ist einfacher als eine Stromleitung
  • Wenn der Schalter oder die Verkabelung, die normalerweise in einiger Entfernung vom Stromkreis angeordnet sind, beschädigt wird und entweder das Kabel oder die internen Schalterteile zum Gehäuse oder zum Benutzer kurzgeschlossen werden, wird kein Schaden angerichtet - alles ist auf Masse
Adam Davis
quelle
2

Streng genommen wird kein Pull-Up-Widerstand benötigt, der BMC GPIO verfügt über interne Pull-Up-Widerstände, die aktiviert werden, wenn sie als Eingang programmiert werden, obwohl dies keinen Schaden anrichtet.

Es ist keine gute Praxis, einen GPIO-Pin direkt an 3V3 oder GND anzuschließen. Das GPIO ist bidirektional und wenn es als Eingang programmiert wird, würde dies keine Probleme verursachen. Wenn es dagegen als Ausgang programmiert ist, wird zu viel Strom gezogen.

Bei einer guten (sicheren) Ausführung wird ein Vorwiderstand (1 kΩ) in Reihe mit dem Druckknopf zur Strombegrenzung verwendet. Aus den Gründen von Adam Davis ist es vorzuziehen, den Druckknopf an Masse anzuschließen und den Schutzwiderstand in der Nähe des GPIO-Pins anzuordnen.

Milliways
quelle
Das einzige Problem besteht darin, dass diese Pins während der Startphasen 1-3 schwebend sind (GPU-zu-CPU-Übergabe). In Phase 4 werden die PINs während des Linux-Kernel-Starts auf den korrekten Status gesetzt. Dies kann schwerwiegende Probleme mit Gattern verursachen, die auf Logik warten. Es ist also ratsam, sie trotzdem nach unten zu ziehen, damit die schwebende Phase während des Startvorgangs Ihre Schaltkreise nicht in den Wahnsinn treibt!
Piotr Kula
1

Ich glaube nicht, dass es einen Grund gibt, beim RPi den anderen vorzuziehen. Die meisten Leute kopieren oder portieren wahrscheinlich nur Schaltkreise, die sie woanders gesehen haben.

Wenn Sie den Stromkreis (mit Drähten oder Leiterplatten) anschließen, können Sie einfach auswählen, was für Sie am bequemsten ist, und es in die richtige Bedeutung in Ihrer Software übersetzen.

John La Rooy
quelle
0

In den alten Tagen von TTL war es weitaus aktueller, einen Stift nach unten zu ziehen, als ihn nach oben zu ziehen. Ein Pullup-Widerstand könnte also einen höheren Widerstandswert haben (und damit weniger Energie verschwenden) als ein Pulldown-Widerstand. Bei modernen CMOS spielt das keine Rolle, aber alte Gewohnheiten sterben schwer.

Peter Green
quelle
-1

Wenn Sie den Stift mit einem internen Pullup-Widerstand mit Masse verbinden, werden weniger Teile benötigt. Alles was Sie brauchen ist ein Knopf; Benötigen Sie keinen externen Widerstand, um den Strom zu begrenzen.

Tavis
quelle