Wie schaltet man den Mikrocontroller per Knopfdruck ein?


13

Ich habe einen Mikrocontroller mit Batteriestrom. Momentan schalte ich die Stromversorgung über einen einfachen Ein- / Ausschalter um. Ich möchte die Stromversorgung mit einem Druckknopf umschalten, mit minimaler Änderung des Schaltplans (und wahrscheinlich des Mikrocontroller-Programms) und ohne Verbrauch, wenn das Gerät ausgeschaltet ist. Wie kann ich es tun?

HINZUGEFÜGT . Ich kenne folgenden Trick:

Bildbeschreibung hier eingeben

Hier setzt der Mikrocontroller beim Start PB3 auf High und hält so die Leistung für das Gerät. Dies ist jedoch keine Lösung für mein Problem, da ich das Gerät auch durch Drücken von S1 ausschalten muss .

HINZUGEFÜGT . Kann ich VT2 vom Stromkreis ausschließen (dh die Basis des Mikrocontroller-Laufwerks von VT1 direkt)?


Wäre das Einrasten von Druckknöpfen eine akzeptable Lösung?
AndrejaKo

@AndrejaKo: Nr.

Viel Glück dann! Ein Weg, den ich sehe, wäre, einen Kondensator aufzuladen, während der Druckknopf gedrückt wird, und dann zu versuchen, etwas damit zu aktivieren, wie einen MOSFET, aber das würde von der Zeit abhängen, zu der der Knopf gedrückt wird.
AndrejaKo

@tcrosley Es ist kein Duplikat. Die Frage, die Sie hier stellen, erfordert nicht, dass die Stromversorgung umgeschaltet wird, wenn die Taste gedrückt wird. Es ist lediglich erforderlich, dass sie eingeschaltet wird, damit sich der Mikrocontroller selbst herunterfahren kann.
Bruno Ferreira

@BrunoFerreira ok, stimme zu - Ich habe meinen vorherigen Kommentar gelöscht. Ich habe in dieser Antwort die Zeile zum Mikro hinzugefügt , aber ich habe den Zener nicht wie Sie in Ihre Antwort aufgenommen, was eine gute Ergänzung ist.
Tcrosley

Antworten:


6

Aufgrund der von Ihnen bereitgestellten Schaltung können Sie direkt nach dem Schalter (S1) (an den Schalter angeschlossene Kathode) eine Diode in Reihe schalten und über einen Eingang feststellen, ob der Schalter erneut gedrückt wurde PB3.
Änderung erforderlich

Die Zenerdiode schützt den PIC-Eingang vor der von der Stromversorgung kommenden Spannung.


Welche Rolle spielt die Diode?
m.Alin

@ m.Alin Die Diode hier ermöglicht dem Mikrocontroller zu erkennen, wann der Schalter losgelassen wird. Wenn wir die Diode nicht hätten, wenn VT1 zu leiten beginnt, hätten wir immer einen hohen Pegel am Mikrocontrollereingang.
Bruno Ferreira

8

Wie weit müssen Sie wirklich sein? Viele moderne Mikrocontroller haben einen Ruhestrom, der deutlich unter dem Selbstentladestrom selbst kleiner Batterien liegt. Sie können den Taster einfach den I / O-Pin des Mikros ansteuern lassen, der sich dann bei jedem Tastendruck zwischen Ruhezustand und aktivem Modus umschaltet. Etwas Entprellen wird nötig sein, aber das alles ist auch in der Firmware möglich.

Diese Art von Ein / Aus-Methode ist heutzutage ziemlich verbreitet. Wenn es nur einen µA braucht, muss ein Mikrocontroller nicht wirklich ausgeschaltet sein, sondern muss nur einschlafen, was er unter seiner eigenen Kontrolle tun kann. Die Tastenleitung muss mit etwas verbunden werden, das das Aufwachen des Mikros aus dem Schlaf bewirken kann, aber fast jedes Mikro hat mindestens eine davon, normalerweise mehrere.


1
Einverstanden, viele meiner Designs haben heutzutage nicht einmal einen Ein / Aus-Knopf, sie werden nur durch einen Knopfdruck aktiviert.
Oli Glaser

Me Gerät enthalten auch LCD und andere Peripheriegeräte. Also muss ich es auch runterfahren.

4
@user: Das heißt nicht, dass Sie das Mikro ausschalten müssen, sondern nur die andere Logik. Wenn das Mikro das Ein- / Ausschalten übernimmt, kann das Mikro die Stromversorgung der anderen Geräte so steuern, dass sie ausgeschaltet sind, wenn das Mikro im Ruhezustand ist. Dies bedeutet, dass Sie über einen absichtlichen digitalen Ausgang verfügen, dessen Polarität zum Ein- und Ausschalten beliebig ist, und dass Sie das Umschalten in analoger Hardware nicht implementieren müssen.
Olin Lathrop

Obwohl viele Mikrocontroller sehr niedrige Schlafströme haben, kosten Qualitätsregler mehr als miese. Ein Regler, der zusätzliche 250 uA (oder sogar 2,5 mA) verwendet, kann in Ordnung sein, wenn er nur aktiv sein muss, wenn ein Gerät verwendet wird, wäre jedoch völlig inakzeptabel, wenn er aktiv sein müsste, selbst wenn ein Gerät "ausgeschaltet" war. . Ein Produkt, das ich vor einigen Jahren entworfen hatte, verwendete nicht einmal einen Regler - stattdessen wurden drei Transistoren und etwa sieben Widerstände verwendet, um eine nominale 5-Volt-Versorgung mit prozessorgesteuerter Abschaltung bereitzustellen. Nach "Regler" -Standards war seine Spannungsgenauigkeit wirklich mies ...
Supercat

1
@OlinLathrop: Zwei 2N3094 und ein 2N3906 kosten weniger als 0,07 USD. Selbst wenn man bedenkt, dass zehn Komponenten einen Cent pro Baugruppe kosten, spart das immer noch einen Cent pro Einheit - wenn 100.000 Einheiten hergestellt werden, sind das 10.000 US-Dollar. Wenn ein Produkt nicht über ein solches Volumen verfügt, lohnt es sich möglicherweise nicht, diese 0,10 USD herauszudrücken. Wenn die heutigen Regler verfügbar wären, als ich das Ding entworfen habe, und wenn ich nicht vorher gewusst hätte, wie gut es sich verkaufen würde, hätte ich wahrscheinlich einfach einen Regler mit Standby-Steuerung verwendet, aber meine Schaltung funktioniert und ist billiger als alles andere. Kein Grund, es nicht weiter zu benutzen.
Supercat

3

BEARBEITEN - Nach dem Nachdenken ist die unten stehende Schaltung (die ich als Referenz belassen werde) wahrscheinlich am besten für die Verwendung in Schaltungen ohne Mikro geeignet. Wie in den anderen Antworten erwähnt, ist es nicht wirklich sinnvoll, das Mikro nicht zur Steuerung des Power-Toggles zu verwenden, da es weniger Komponenten verwendet und genau gesteuert werden kann, es sei denn, Sie können sich die wenigen uA wirklich nicht leisten.
Die einfachste Version kann so etwas wie ein IOC-Eingang (Interrupt on Change) mit Pull-up und Taste auf Masse sein. Das Mikro wird ständig mit Strom versorgt und steuert einen P-Kanal-MOSFET (mit Pullup von Gate zu Source) für den Rest der Schaltung. Wenn es schläft, lässt es das Tor schweben, um den Stromkreis auszuschalten.

Referenzschaltung:

Kippschalter

Zunächst ist der P-MOSFET ausgeschaltet, sodass an Q2 kein Basisstrom anliegt, der ebenfalls ausgeschaltet ist. Q1 ist aus, also liegt Q1c bei 5V. Die Schaltung ist statisch.

Wenn S1 (ignorieren Sie die + und - Knoten, sie sind für SPICE-Triggerzwecke da) gedrückt wird, werden die 5 V an Q1c mit der Q2-Basis verbunden und eingeschaltet. Dies zieht das P-MOSFET-Gate auf Masse und schaltet es ebenfalls ein.
R4 sieht jetzt 5 V und wenn S1 freigegeben wird, liefert es Q2s Basis den Strom, der benötigt wird, um es offen zu halten (und daher auch den MOSFET an). Q1 wird auch eingeschaltet, wenn der Strom durch R2 C1 auf ~ 600 mV auflädt, zu welchem ​​Zeitpunkt Q1c ist <200mV (dh Q1 ist eingeschaltet)
Der Stromkreis ist jetzt wieder statisch.

Wenn S1 erneut gedrückt wird, leitet Q1 den Strom von R4 ab (wodurch Q2 eingeschaltet bleibt), wodurch Q2 ausgeschaltet wird. R1 zieht den MOSFET-Sockel auf 5V und schaltet ihn wieder aus.

Hier ist die Simulation (V (push) high repräsentiert, wenn der Knopf gedrückt wird):

ToggleSwitchSim

Außerdem können wir nach dem Ausschalten sehen, dass der Strom auf Null geht (wenn sich C1 entlädt und Q1 ausschaltet), sodass die Schaltung im ausgeschalteten Zustand keinen Strom verbraucht (der Cursor für I (V1) befindet sich bei 19,86 s und misst 329 nA):

ToggleSwitchPower

Die ursprüngliche Schaltungsidee ist nicht meine, sie stammt von Dave Jones bei EEVblog .


1

Wie Bruno Ferreira vorschlug, besteht die einfachste Möglichkeit, die Taste als "Aus" -Schalter zu verwenden, darin, die Schaltung zu ändern, indem der Prozessor weiß, wann die Taste gedrückt wird. Ich denke, man kann ziemlich gut Widerstände verwenden, um den Eingang des Prozessors vor Spannungen über VDD zu schützen, ohne dafür einen Zener zu benötigen.

Hier ist eine grobe Skizze eines Schaltungsentwurfs, den Sie verwenden könnten. Die rechte Hälfte stellt das Verhalten des Prozessors dar, und ich habe eine Kombination aus Transistor, Zener und Widerstand verwendet, um für einen Regler einzutreten. Der Ausgang des Prozessors wird mit einem analogen Schalter (VDD) und nicht mit einem Gatter dargestellt, da Gatter in diesem Simulator immer einen + 5-V-Ausgang erzeugen.

Ein Hauptaspekt der Schaltung, der bei Nichtbeachtung zu Problemen führen kann, besteht darin, dass sie so ausgelegt ist, dass der Prozessor die Schaltung nur dann einschalten kann, wenn ihre VDD mindestens ~ 3,6 Volt beträgt. Ich habe den Simulator auch so manipuliert, dass der Prozessor immer versucht, seinen Ausgang einzuschalten, wenn sein VDD unter 3,5 Volt liegt. Ich habe viele Designs gesehen, die davon ausgehen, dass Prozessoren nicht versuchen, eine hohe Logik auszugeben, wenn ihre Leistung nachlässt. Diese Annahme mag bei einigen Chargen von Chips, die beim Testen verwendet wurden, in Ordnung sein, scheitert aber dann bei anderen Chargen von Chips, die in der Serienproduktion verwendet wurden. Das Verhalten der meisten Prozessoren ist unter Unterspannungsbedingungen nicht spezifiziert. Ein gutes Design sollte so konstruiert sein, dass das Verhalten eines Prozessors unter solchen Bedingungen keine Rolle spielt. t Die explizite Erzeugung von Spannungen, die höher sind als die angelegte Spannung, wird dies nicht auf magische Weise tun. Ich glaube nicht, dass es eine explizite Spezifikation dafür gibt, aber ich denke, dass es in den meisten Fällen sicher gefolgert werden kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.