Wie schließe ich einen SPST-Schalter mit minimalem Strom (1 µA) an?

Die übliche Art, einen SPST-Schalter mit einer MCU zu verdrahten, ist die Verwendung eines Pull-up-Widerstands. Dies verschwendet jedoch Strom, wenn der Schalter geschlossen ist. Wenn dieser Schalter verwendet wird, um die MCU aus dem Ruhezustand aufzuwecken, dann ist dieser Strom (100-500 µA) signifikant im Vergleich zum Schlafstrom (< 0,1 µA). Ich stelle mir vor, den Widerstandswert auf Megaohm zu erhöhen, wäre aus mehreren Gründen nicht praktikabel. Gibt es also eine bessere Möglichkeit, eine SPST im Allgemeinen zu verbinden? Ich habe ein paar Pins auf der MCU übrig (aber denken Sie daran, dass die MCU die meiste Zeit in den Ruhezustand versetzt werden muss - sie sollte nur aufwachen und ihre Arbeit tun, wenn sich der Schalterzustand ändert).

Die einzige Lösung, die mir einfällt, besteht darin, im Grunde das Pull-up-Schema zu verwenden, es jedoch durch ein P-MOSFET / N-MOSFET-Paar zu puffern, um die Eingangsimpedanz zu erhöhen.

Und ja, mir ist klar, dass die Lösung trivial ist, wenn wir es mit einem SPDT oder einem Druckknopf zu tun haben.

Antworten (2)

Wenn die Latenz (beim Lesen des Schalters) auf einmal alle 100 Millisekunden akzeptabel war, warum nicht das Mikro für kurze Zeit aufwachen lassen (in einem möglichst niedrigen Strommodus), den Schalter kurz anziehen und den Schalter lesen , dann tun, was es tun muss, und dann wieder in den Schlafmodus wechseln.

Der Schalter nimmt nur kurz Strom auf, wenn das Mikro aufwacht.

Vielleicht besteht das Problem bei diesem Szenario darin, dass das Mikro für 1 Millisekunde aufwacht und für diesen Zeitraum 1 mA verbraucht, ABER wenn es dies nur einmal alle 100 Millisekunden tut, beträgt sein durchschnittlicher Verbrauch 10 uA. Zumindest ist das vielleicht besser, als einen geschlossenen Schalter ständig mit Strom zu versorgen?

Abgesehen davon müssen Sie darauf achten, einen Schalter mit genügend Strom zu speisen, um die sich bildenden Oxidschichten zu durchbrechen - dies wird als Benetzungsstrom des Schalters bezeichnet und einige können mehrere Milliampere betragen.

Oh, du hast natürlich recht. Das ist absolut praktikabel. Aus irgendeinem Grund habe ich den Eindruck bekommen, dass die WDTs von PICs immer einen Reset verursachen, aber wenn ich die Spezifikationen gründlicher lese, sehe ich jetzt, dass sie das Gerät im Schlaf einfach aufwecken, was perfekt ist. Ich werde diesen Pfad verwenden, danke!

Hier gibt es einen Haken: Normalerweise möchte der Schalter einen Mindeststrom sehen, um zuverlässig zu sein. Vielleicht sind 100 uA als Mindeststrom für einen Gold-auf-Gold-Schalter angegeben.

Möglicherweise können Sie den Strom umschalten, indem Sie ein paar Port-Pins verwenden, um den Strom zu reduzieren, sodass er (z. B.) 0,2 mA schaltet. Sobald sich der Schalter beruhigt hat, reduzieren Sie den Strom und warten auf eine Stromunterbrechung .

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Wenn Sie also ein "High" erkennen, schalten Sie den Hochstrom-Pullup R1 ein und warten auf ein LOW. Wenn Sie ein LOW sehen, warten Sie vielleicht 20 ms, schalten dann den Hochstrom-Pullup ab und schalten die "hohe" Seite ein.

Dies funktioniert weit außerhalb des garantierten Bereichs der meisten Mikros (zwei Ausgänge müssen viel weniger als 1 uA lecken) und auch des Schalters (er sieht beim Schalten nur den Mindeststrom), also Vorbehalt.

Das ist SPDT - meine Frage bezog sich auf das einfache alte SPST. Einfache SPDTs können gelesen werden, indem man 5v/GND als Alternative auf der einen Seite und einen MCU-Pin auf der anderen Seite platziert. Setzen Sie den Pin auf Interrupt-on-Change und bam, Sie haben eine 0,1-µA-Lösung.
Ich denke, das OP hat ziemlich deutlich gemacht, dass die Verwendung eines SPDT keine Option ist ... haben Sie den letzten Satz in der Frage gesehen?
Okay, die zweite Hälfte des Schalters wurde entfernt. Der Punkt ist, dass Sie mit dieser Methode eine schnelle Reaktion erzielen können, während Sie einen niedrigen Strom beibehalten (und es könnte funktionieren).