Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller ON/OFF mit Push button


von Stefan M. (stefanme)



Lesenswert?

Hallko, ich möchte einen ON OFF über meine Mikrocontroller realisieren.

Dazu drücke ich den Schalterfür wenige Sekunden bis der Mikrocontroller 
hoch gefahren ist und über den Ausgang an PA23 (Widerstand fehlt, 
vereinfachte Darstellung!) schaltet um sich selbst am Leben zu halten. 
Nun kann ich in der Software abfragen ob der Eingang PA21 gedrückt wird 
und Zeitverzögert nach wenigen Sekunden die "Selbsthaltung" auflösung.

Vermutlich ist es Sinnvoller hier einen P-MOSFET zu benutzen, da GND ja 
in der Platine als plane vorhanden ist oder?

Ist das totaler quatsch oder sollte das so praktikabel funktionieren?

lg Stefan

von MaWin (Gast)


Lesenswert?

Wenn du schon Eagle verwendest, solltest du zum Screenshot auch noch die 
.sch und .brd-Files hochladen.

von Dieter R. (drei)


Lesenswert?

Warum überhaupt der Aufwand? Was spricht dagegen, den Prozessor im 
Standby auf den Tastendruck warten zu lassen?

von Stefan F. (Gast)


Lesenswert?

Ja, ich würde auf keinen Fall GND unterbrechen. Verwende einen 
Transistor auf der High-Side (P-kanal MOSFET oder PNP) und steuere 
diesen wiederum über einen NPN Transistor an.

Du solltest deinem MOSFET noch einen Pull-Down Widerstand gönnen, damit 
er nicht versehentlich durch Radiowellen aktiviert wird. Bzw. beim 
P-Kanal MOSFET muss es natürlich ein Pull-Up Widerstand sein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> ist das totaler quatsch oder sollte das so praktikabel funktionieren?
Eher ersteres.

Es ist immer schlecht, einem digitalen Schaltkreis den GND zu schalten. 
Denn sämtliche Angaben im Datenblatt beziehen sich auf diesen GND. Wenn 
du den "abschaltest", dann erreichst du ziemlich schnell den Augenblick, 
wo du einen Parameter aus der "Absolute Maximum Ratings" Abteilung 
verletzt.
Wenn nämlich z.B. ein µC-Pin über einen Pulldown an der "richtigen" 
Masse hängt und die Masse vom µC abgeschaltet wird und damit eigentlich 
auf 5V "hoch" soll, dann wäre eigetnlich der Pulldownpin 5V negativer 
als die (floatende) µC Masse. Stichwort dazu: "Backpowering" über die 
"Schutzdiode".

Denn meist sind neben dem µC auch andere Bauteile betroffen, über die 
dann sogar u.U. wieder (ab&zu) eine Masse ins Spiel kommt (z.B. über 
einen angeschlossenen PC oder sonstwas).

Andere, die das auf diese Art probiert haben, konnten hier im Forum von 
eigenartigen Effekten bis hin zum Tod des µC berichten...

: Bearbeitet durch Moderator
von Stefan M. (stefanme)


Lesenswert?

Vielen Dank für die Antworten.

Ich möchte nicht in den Sleep gehen... es sollen eventuell noch ein zwei 
Verbraucher mehr strom los geschaltet werden die ich nicht in den SLEEP 
Modus schicken kann.

Falls das ganze nicht nach meinen Wünschen klappt, werde ich jedoch die 
alternative über sleep gehen.


Vielen Dank  @Stefanus

von georg (Gast)


Lesenswert?

Stefan M. schrieb:
> es sollen eventuell noch ein zwei
> Verbraucher mehr strom los geschaltet werden

Dann schalte doch Vcc.

Georg

von MaWin (Gast)


Lesenswert?

Stefan M. schrieb:
> sollen eventuell noch ein zwei Verbraucher mehr strom los geschaltet
> werden die ich nicht in den SLEEP Modus schicken kann.

Die kannst du ja dann vom uC einschalten, direkt ihr VCC am PortPin, per 
MOSFET vom PortPin, oder ihr Enable/Shutdown Anschluss am PortPin des 
uC.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> es sollen eventuell noch ein zwei Verbraucher mehr strom los geschaltet
> werden
Dann vergiss das mit der Masse-Abschalterei blitzartig und denke 
dringend über den angesprochenen möglichen Stromfluss durch 
abgeschaltete IO-Pins nach...

von Udo S. (urschmitt)


Lesenswert?

Gibts eigentlich einen Grund nicht einfach einen richtigen mechanischen 
Schalter zu nehmen?
Ausser natürlich daß sowas völlig "out" ist ...
(schönes Wortspiel)

von Sebastian S. (amateur)


Lesenswert?

Ich würde einen FET nehmen und damit die Betriebsspannung ein- bzw. 
ausschalten.
Dein Taster schaltet den FET durch und der µP "übernimmt" dann die 
Ansteuerung des Gates. Natürlich entkoppelt durch eine Diode.
Wird nun der Taster losgelassen, so bleibt der FET durchgeschaltet bzw. 
vom µP "gehalten", bis der dazu keine Lust mehr hat.

von Stefan M. (stefanme)



Lesenswert?

Habe das ganze mal angepasst...

Jetzt mit P-Kanal Mosfet. So müsste es mir über die DIODE D1 doch 
möglich sein abzufragen ob der Taster gedrückt ist oder nicht, oder?

Diode zum entkoppeln am Gate verstehe ich noch nicht ganz.

(Diode ect. ist noch willkürlich gewählt! Ich muss erst heraussuchen was 
ich genau benötige)

grüße Stefan

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Stefan M. schrieb:
> Diode zum entkoppeln am Gate verstehe ich noch nicht ganz.
Ausserdem muss der Taster jetzt natürlich gegen GND schalten, sonst wird 
der Mosfet nie leiten.

Das Problem an dieser Schaltung ist aber grundlegend, dass du einen 
"High" Pegel brauchst, um den Mosfet auszuschalten. Ein µC, der keine 
Vcc mehr hat, kann aber auch kein "high" mehr ausgeben. Du wirst einen 
zweiten Mosfet brauchen um den ersten einzuschalten...

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

Stefan M. schrieb:
> Ist das totaler quatsch

Ja. Man kann sich nicht am eigenen Schopf aus dem Sumpf ziehen.
Schaltungen mit nur einem Transistor funktionieren grundsätzlich nicht.
Sobald Du dem MC den GND klaust, kann er das Gate nicht mehr auf GND 
ziehen, d.h der FET leitet wieder.

von Sebastian S. (amateur)


Lesenswert?

@Stefan
Meine Idee war, dass DU den FET (durch Taster) einschaltest und der µP 
dann die Haltung übernimmt. Bis er meint es sei genug.
Auf Softwareebene brauchst Du Dich dann nicht um irgendeinen 
Tasterstatus kümmern, da hier gilt:
Der FET hat Durchgeschaltet.
Entweder Du hast mir das angetan, oder ich halte mich selber. In beiden 
Fällen ist die Ursache klar. Noch anders ausgedrückt: Bootet das Teil, 
so soll es das auch, da irgendjemand den Taster gedrückt hat. 
Bootsequenz = Drückeberger. Irgendeinen Pin abfragen kostet nur unnötig 
Anschlüsse und Software.

von Joachim B. (jar)


Lesenswert?

Stefan M. schrieb:
> Hallko, ich möchte einen ON OFF über meine Mikrocontroller realisieren.

mach doch, ein gutes Beispiel ist im Transistortester!

https://www.mikrocontroller.net/articles/AVR-Transistortester
https://www.mikrocontroller.net/articles/Datei:Schaltplan_transistortester.png

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian S. schrieb:
> Irgendeinen Pin abfragen kostet nur unnötig Anschlüsse und Software.
Wenn man es schlau gemacht, kann man den Taster nach dem Start auch für 
weitere Eingaben verwenden...  ;-)

von Peter D. (peda)


Lesenswert?

Udo S. schrieb:
> Gibts eigentlich einen Grund nicht einfach einen richtigen mechanischen
> Schalter zu nehmen?

Z.B. wenn die Batterie leer ist, weil man das Ausschalten vergessen hat.

von Stefan F. (Gast)


Lesenswert?

Stefan M. schrieb:
> Habe das ganze mal angepasst...

Das wird nicht funktionieren. Wenn der µC keine Stromversorgung hat, 
wird R1 den MOSFET permanent einschalten. Ich habe schon aus gutem Grund 
geschrieben, dass du zwei Transistoren brauchst.

Mach das nach diesem Prinzip:
http://i270.photobucket.com/albums/jj118/new_clear_days/circuits/pchwnpn.jpg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.