Forum: Mikrocontroller und Digitale Elektronik Shutdown


von Ingo (Gast)


Lesenswert?

Hallole,

mich würde interessieren wie ihr so das Ausschalten ("Shutdown") der
"Versorgungsspannung" beim AVR software technisch realisiert habt.
Sprich wenn der Benutzer mit einem Schalter die Spannung ausschaltet,
würde ich gerne zuvor noch einige Aktionen tun.
Als Beispiel, wenn man einen Batteriebetrieben GPS-Logger hat und der
Benutzer schaltet das Gerät aus, würde ich gerne noch die letzten
gemessenen Daten speichern.
Was sind euch für Ideen gekommen? Habe mir schon überlegt die
Versorgungsspannung zu kontrollieren und wenn die nicht mehr da ist,
mit Hilfe einer Backup-Batterie die notwendigen Dinge zu tun. Aber
diese würde ich mir gerne sparen.

Grüße
Ingo

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Das nennt sich AFIAK "Brown-out detection" und haben viele (alle
aktuellen) AVR eingebaut.
Je nache Menge der zu sichernden Daten braucht man dann noch einen
entsprechend grossen Kondensator.
Übrigens ist es bei heutigen Geräte üblich einen "Softswitch"
einzubauen: Dabei wird über den "An-/Aus-Taster" der Mikrocontroller
angewiesen, in den Sleep-Mode zu gehen oder aus diesem zu erwachen.
Der Controller steuert dann auch noch per Highside-Switch
(p-kanalMOSFET im einfachsten Fall) den Stromzufluß der restlichen
Periferie.

von D. W. (dave) Benutzerseite


Lesenswert?

Der Brown-Out Reset hält den AVR in einem definierten RESET-Zustand,
in dem er keinen Unfug anstellen kann.
Ab 2,7 oder 4,0V (je nach Einstellung) fällt der AVR in den
Reset-Zustand.
Vorteil: sachen wie Eeprom schreiben oder angeschlossene ICs mit
unsinnigen Daten füttern, geht nicht mehr.

Das was du willst, musst du mit einer eigenen Erkennung der
Versorgungsspannung und einem ausreichend groß dimensionierten
Kondensator anstellen.

von inoffizieller WM-Rahul (Gast)


Lesenswert?

>Der Brown-Out *Reset*
Stimmt...da war doch was mit dem Reset-Status-Register.
Da konnt man nämnlich die Reset-Quelle feststellen.

Mit dem Analog-Komparator könnte man die Aufgabe aber erledigen.

von Ingo (Gast)


Lesenswert?

Super, vielen Dank für das schnelle Feedback.
Also wenn ich das richtige verstehe gibt es zwei Möglichkeiten:

1) mit Analog-Komparator VCC messen und gegebenenfalls noch mit einem
Kondensator die zu erledigende Arbeit tun. Das hiesse aber ich brauche
Platz für einen dicken Kondensator, müßte natürlich erstmal messen was
ich überhaupt für eine Leistung brauche.

2) "Softswitch" finde ich fast besser. Sprich ich tausche meinen
"harten" Ausschalter durch einen Taster aus. Der dann einen Externen
Interrupt auslöst, mit dem ich den AVR wecke oder zum schlafen lege,
oder ? Habt ihr vielleicht konkrete Schaltpläne wo ihr den prellfreien
Taster und die Abschaltung mit p-kanalMOSFET schon realisiert habt?

Grüße
Ingo

von Hagen (Gast)


Lesenswert?

Ich habe es mit einem Taster der einen Umschalter enthält gelöst.

Ein P-MOSFET in die Versorgungsleitung rein. Am Gate einen Widerstand
von ca. 240 Ohm und einen 10K auf + zum Gate. Dadurch sperrt der MOSFET
erstmal. Nun einen Umschalttaster von GND ans Gate. Wird der Taster
gedrückt zieht er das Gate auf Masse und der MOSFET steuert durch und
die nachfolgende Schaltung wird mit Power versorgt. Um zu verhindern
das beim Loslassen des Taster der MOSFET wieder sperrt wird das Gate
noch zusätzlich an einen PIN des AVRs gelegt. Beim Powerup des AVRs
wird dieser PIN auf GND gelegt. So bald also der Taster gedrückt wird
startet der AVR der dann selber das Gate auf GND legt über einen Pin.
Wird der taster losgelassen so hält also der AVR den MOSFET offen. Der
AVR kann also zu jeder Zeit indem er diesen Pin auf High setzt seine
eigene Power abschalten. Der andere Kontakt des Taster wird ebenfalls
an einen Pin am AVR gelegt. Dieser Pin ist Eingang mit aktiviertem
PullUp. Wenn der taster gedrück wird liegt an diesem Pin also HIGH über
den internen Pullup an. Ist der Taster losgelassen dann liegt LOW an da
der Taster ja gegen GND durchschaltet. Wir können also anhand diese
Pins feststellen ob der Taster gedrückt ist.

Wenn der AVR nun läuft und der Anwender alles ausschalten möchte so
drückt der Anwender einfach den Taster. Über den Input Pin am AVR
kriegen wir das mit. Speichern unsere Daten zwischen und setzen den
Ouput Pin auf HIGH. So bald der Taster losgelassen wird sperrt also
unser MOSFET und die Schaltung wird von der Versorgungsspannung
getrennt.

Statt einem Umschalter kannst du auch einen einfachen Taster nehmen.
Der muß aber dann per Diode ans Gate gekoppelt werden und zwischen
Diode und Taster gehen wir zum Eingangs Pin am AVR.

Gruß Hagen

von Malte (Gast)


Lesenswert?

Hallo,

ich weiss, der Thread ist schon sehr alt, ich brauche aber genau so eine 
Schaltung und habe per Suche nach "softswitch" nichts Sinnvolles finden 
können.
Könnte jemand (Hagen?) mal die Schaltung posten, insbesondere die 
Version mit Taster und Diode? Das wäre sehr freundlich. Mir ist nämlich 
nicht ganz klar, wo der 240 Ohm Widerstand hinkommt.

Danke und Gruß
Malte

von Malte (Gast)


Angehängte Dateien:

Lesenswert?

ist das so richtig?

von Lukas K. (carrotindustries)


Lesenswert?

Wozu externe MOSFETs, wenn die AVRs auch in den Winterschlaf 
(=verschwindend geringer Stromverbrauch) fallen können? Aufwecken und 
schlafenlegen geht per Taster am INT-Pin.

von Malte (Gast)


Lesenswert?

es wird nicht nur der AVR geschaltet, sondern auch Display etc.

von Oliver S. (eragon)


Lesenswert?

Würde sagen das Bild des FET`s ist ein N Kanal.
Mit P Kanal müsste das aber so funktionieren.
Gruss

von Falk B. (falk)


Lesenswert?

@  Malte (Gast)

>es wird nicht nur der AVR geschaltet, sondern auch Display etc.

ja eben.

Der AVR wird in den Power Down Sleep Mode versetzt, Stromverbrauch 
kleiner als 1uA.
Der AVR schaltet eien normalen P-Kanal MOSFET für die anderen 
Verbraucher. Der Taster hängt am INT0 oder einem Pin mit Pin Change 
Interrupt, um den AVR wieder zu wecken. Fettig.

MfG
Falk

von Malte (Gast)


Lesenswert?

@ Oliver: danke!

@ Falk:
Ok, aber mir ist nicht klar, was das für Vorteile hätte (ausser dass man 
die Diode spart). Stromverbrauch im abgeschalteten Zustand ist nicht so 
wichtig, da es sich um ein Gerät handelt, bei dem man nach dem 
Abschalten sowieso den Stromstecker zieht. Die Schaltung soll nur 
kontrolliert "runtergefahren" werden.

Gruß
Malte

von Lukas K. (carrotindustries)


Lesenswert?

Malte schrieb:
> bei dem man nach dem
> Abschalten sowieso den Stromstecker zieht. Die Schaltung soll nur
> kontrolliert "runtergefahren" werden.


Dann reicht es ja, alle Daten zu sichern und den Controller in eine 
Endlosschleife zu schicken.
Außerdem : Speicher: EEPROM Schreibzugriffe minimieren

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.