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.
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.
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 .
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.
anrieff