Verwenden Sie einen hochohmigen Pulldown-Widerstand

Ich versuche, eine Schaltung herzustellen, bei der das Schließen eines Schalters einen GPIO von niedrig auf hoch ändert, und ich möchte den Strom so weit wie möglich minimieren, um die Batterielebensdauer zu verlängern. Der Chip, den ich verwenden werde, ist Nordic Semiconductors nRF51422 ( https://www.nordicsemi.com/eng/Products/ANT/nRF51422 ).

Mein Verständnis von Pull-up- und Pull-down-Widerständen ist, dass sie den Strom begrenzen, den Chip schützen und den Stromverbrauch verringern, während der GPIO weiterhin entweder hochgezogen oder heruntergezogen bleibt. Ein zu großer Pull-Up/Down-Widerstand erhöht die Zeitkonstante der Schaltung, wodurch die Übergänge von hoch nach niedrig langsamer werden, und „schiebt“ den GPIO aus dem Bereich, in dem er als hoch oder niedrig erkannt wird.

Die genaue Anordnung, die ich mir vorgestellt hatte, war diese. Ich verwende einen sehr großen Pulldown-Widerstand (in der Größenordnung von Megaohm). Der Spannungsabfall an diesem Widerstand ist so groß, dass er sich im Wesentlichen wie ein Pull-up-Widerstand verhält, mit dem zusätzlichen Vorteil eines außergewöhnlich geringen Stromverbrauchs. Ich habe dann einen Schalter, der im geschlossenen Zustand den GPIO über den Widerstand der empfohlenen Größe (13 kOhm) mit Masse verbindet. Der Schaltplan würde dann einem GPIO ähneln, das über zwei parallele Widerstände mit Masse verbunden ist, einen sehr großen und einen viel kleineren, der sich wie ein einzelner kleinerer Widerstand verhält. Wenn der Schalter also geschlossen ist, ändert sich der digitale Wert des GPIO von hoch nach niedrig , und im geöffneten Zustand gibt es nur ein kleines Rinnsal Strom, was die Batterielebensdauer immens spart.

Funktioniert das? Macht insbesondere meine Idee mit dem großen Widerstand überhaupt Sinn?

BEARBEITEN:

Ich werde meine Frage umformulieren und einen Schaltplan hinzufügen.

Mein Verständnis ist also, dass GPIOs eine hohe Eingangsimpedanz haben, daher einen sehr kleinen Leckstrom, wenn sie mit Masse verbunden sind. Wenn ich einen Widerstand mit einer Impedanz von beispielsweise dem 10-fachen der Eingangsimpedanz des GPIO zwischen dem Pin des GPIO und Masse anschließen würde, würde der GPIO-Pin bei 0,9 * VDD liegen? Ich gehe davon aus, dass die Eingangsimpedanz des GPIO unabhängig davon ist, was daran angeschlossen ist.

Ich habe einen Schaltplan erstellt, der veranschaulicht, was ich denke, indem ich den GPIO als Black-Box-Widerstand vereinfache. Schema

Würde das funktionieren? Ist mein Schaltplan einfach falsch?

Warum nicht einen SPDT-Schalter verwenden?
Ich stelle mir ein Paar Handschuhe vor, bei denen jede Fingerspitze eine Art leitfähige Oberfläche hat. Es gibt 4 Linien nach außen (die Finger) und eine Linie nach innen (der Daumen). Ich kann den Schalter schließen, indem ich den Daumen mit den Fingern berühre. Jeder Finger ist mit einem GPIO auf dem µC verbunden, sodass ich erkennen kann, welche Finger mit dem Daumen berührt werden. Vielleicht mache ich das komplizierter als es sein muss, aber ich möchte, dass es so wenig Strom wie möglich verbraucht.

Antworten (2)

Wenn also der Schalter geschlossen ist, ändert sich der digitale Wert des GPIO von hoch nach niedrig, und wenn er geöffnet ist, fließt nur ein kleiner Strom, was die Batterielebensdauer erheblich verlängert.

Sie haben die falsche Vorstellung. Ein Hochziehen sollte abgesehen vom Leckstrom des GPIO nicht zu viel Strom führen

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Im ersten Bild zieht ein Hochziehen den GPIO IN hoch. Der einzige Strom ist der Leckstrom, der zum Messen des Spannungseingangspegels erforderlich ist. Das sind wenige nA, ein Bruchteil eines Milliampere. Dies kann meistens als Input Logic High/Low (ILH, ILL) in einem Datenblatt überprüft werden, aber ich kann es in Ihrem Produkt nicht finden. Gehen Sie von durchschnittlich 10 nA oder weniger aus.

Nur im zweiten Bild ist ein nennenswerter Strom zu erkennen. Wenn die Taste gedrückt wird, gibt es einen geraden Weg von V+ zu Gnd durch R2. Unter der Annahme von 3,3 V sind das 3.3V / 47000Ω = 0.00007A70000 nA. Was im Vergleich groß aussieht, aber das sind immer noch nur 0,07 mA oder 70 µA.

Die signifikante Stromaufnahme erfolgt nur , wenn die Taste gedrückt wird. Entwerfen Sie Ihre Schaltung also einfach so, dass der Standardzustand der Schaltfläche dort ist, wo die Schaltfläche geöffnet ist.

Das macht Sinn und ist wahrscheinlich das, was ich am Ende tun werde. In meiner Anwendung wird der Schalter ziemlich oft geschlossen, und ich habe versucht, einen Weg zu finden, den Strom bei geschlossenem Schalter auf einzelne µA zu senken (mit dem empfohlenen 13-kΩ-Widerstand wären es etwa 250 µA). Ehrlich gesagt ist dies jedoch kaum etwas im Vergleich zu dem, was zum Betreiben des Chips erforderlich ist. Ich habe nur versucht, hier einen Weg zu finden, um wirklich am Energieverbrauch zu sparen.

Die genaue Anordnung, die ich mir vorgestellt hatte, war diese. Ich verwende einen sehr großen Pulldown-Widerstand (in der Größenordnung von Megaohm). Der Spannungsabfall an diesem Widerstand ist so groß, dass er sich im Wesentlichen wie ein Pull-up-Widerstand verhält

Das macht nicht viel Sinn. Wenn Sie den Widerstand vom Pin an Masse anschließen, ist dies ein Pulldown. Die Spannung am Pin ist die gleiche wie gnd. Nach dem Ohmschen Gesetz fällt am Widerstand nur sehr wenig Spannung ab, da so wenig Strom fließt.

Eine typische Konfiguration ist unten dargestellt.

Ehrlich gesagt verstehe ich deine Idee nicht ganz. Es hört sich so an, als würden Sie versuchen, einen großen Widerstand zu haben, der sowohl ein Pull-Up als auch ein Pull-Down ist, und dann eine kleinere Parallele mit einem Schalter verbinden? Ich bräuchte einen Schaltplan, um weiter zu kommentieren, aber Sie brauchen wirklich nur die Standard-Pull-Up- oder Pull-Down-Konfiguration. Vertauschen Sie für einen Pull-Up die Position des Widerstands und der Taste.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

(1) Mein Verständnis ist (daher ) , dass GPIOs Strom führen. Wenn Sie also einen Pulldown-Widerstand einsetzen, liegt der GPIO auf einer Spannung über Masse, die gleich dem Spannungsabfall über dem Widerstand ist. Die obige Quelle schien zu implizieren, dass dieser Strom unabhängig vom Widerstandswert konstant war. Meine Idee war, einen ungewöhnlich großen Widerstand zu verwenden, und der Spannungsabfall über dem Widerstand wird so groß sein, dass der GPIO bei oder nahe VDD liegt, obwohl es ein Pulldown-Widerstand ist.
(2) In der obigen Quelle wird ein Beispielwert für diesen Strom mit 1 µA angegeben, sodass ein 3-MΩ-Widerstand zwischen Masse und dem GPIO den GPIO auf 3 V setzen würde. Wenn der Schalter geschlossen ist, würden Sie am Ende eine 13 erhalten kΩ-Widerstand und einen 3 MΩ-Widerstand parallel, der einen äquivalenten Widerstand von etwa 13 kΩ hat, was genau dem Nennwiderstand für den Pulldown-Widerstand entspricht. schematisch
Nein, so funktioniert es nicht. Das Setzen eines Widerstands zwischen gpio und gnd ist wie das Anbringen eines Drahtes zwischen gnd und gpio. Wenn die vom gpio gezogene Strommenge nahezu konstant ist, bedeutet dies nicht, dass der durch den Widerstand fließende Strom konstant ist. Ein großer Pull-Up- oder Down-Widerstand bedeutet nur, dass der neue Strom, der von der Quelle fließt, niedriger ist, wenn wir den Knopf schließen. Es bedeutet auch, dass wir anfälliger für Lärm sind. Sie können nicht einfach beliebig große Widerstände einsetzen und erwarten, dass sich die Funktionsweise des Ohmschen Gesetzes ändert.
Ich verstehe irgendwie. Diese Beispiele beziehen sich auf eine Situation, in der wir das gpio hochgezogen haben, und ich nahm an, dass es dasselbe wäre, wenn wir ein gpio herunterziehen würden. Ich bin immer noch verwirrt über Ihre Aussage, dass die Spannung am Widerstand nicht konstant sein muss, obwohl der vom GPIO gezogene Strom konstant ist. Wenn der Widerstand und der GPIO-Port in Reihe geschaltet sind, wie kann dann der Strom durch den Widerstand nicht konstant sein?
Nun, sie sind eigentlich nicht in Serie. Sie können einige Schaltpläne nachschlagen, um zu sehen, wie GPIOs zusammengesetzt sind, vielleicht macht es ein wenig mehr Sinn. Ich glaube nicht, dass ich das gesagt habe. Meine Frage an Sie ist, wie erwarten Sie, den Widerstand zu ändern und den durch den Widerstand fließenden Strom konstant zu halten? Das passiert einfach nicht mit einer konstanten Quelle. Es hört sich so an, als hätten Sie einige grundlegende Missverständnisse mit einigen Themen in der Grundlagenanalyse. Sehen Sie sich vielleicht einige gute Quellen zu diesem Thema an.
(1) Das stimmt, sie sind nicht in Serie. Diese Quelle, die ich gepostet habe, hat mir den Eindruck vermittelt, dass sich GPIOs wie eine Konstantstromquelle verhalten, bei der eine Änderung des Widerstands die Spannung ändern würde. Natürlich wird das Ganze von einer Konstantspannungsquelle gespeist, also hätte ich darüber nachdenken sollen. Trotzdem bin ich mir nicht ganz sicher, warum dies nicht funktionieren würde. Ich bin davon ausgegangen, dass der kleine Leckstrom vom GPIO (in der hochgezogenen Konfiguration) das Ergebnis einer großen Eingangsimpedanz seitens des GPIO ist. Aus diesem Grund hat diese Quelle den Anschein erweckt, als wäre der Strom konstant.
(2) Ein zwischen GPIO und VDD platzierter kΩ-Widerstand verursacht keine signifikante Stromänderung. Was wäre jedoch, wenn Sie einen Widerstand in der Größenordnung des 10-fachen der Eingangsimpedanz des GPIO hinzufügen würden? Der Strom würde sich mit Sicherheit ändern, aber würde der GPIO-Port nicht 0,1 VDD betragen, obwohl es sich um einen Pull-up-Widerstand handelt?