www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Shutdown


Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Malte (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ist das so richtig?

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Malte (Gast)
Datum:

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

Autor: Oliver S. (eragon)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.