www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MC soll sich selbst den Saft abdrehen können


Autor: Thomas Schwetzer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich plane eine Schaltung für's Auto mit einem AVR, die sich

1) bei einem Ereignis auf einem von drei Eingängen einschalten soll.

2) Sich selber komplett abschalten können soll, also nicht
nur den MC in irgendeinen Sleep-Modus versetzen soll.

Als V-Reg möchte ich einen LM2931 (5V) mit Inhibit (An=GND, Aus=Vin)
verwenden. Über diesen Inhibit soll sich der Controller den gesamten
5V-Teil, also auch sich selbst abschalten können.

Ich habe mal ein Idee als Skizze angehängt.

Wenn von den Eingängen 12V kommen, wird Q9 leitend, dadurch wird auch
Q7 leitend und der Inhibit-Pin des Vregs wird dauerhaft
auf GND gezogen. Damit ist die Schaltung an.

Kopfzerbrechen bereitet mir das Ausschalten.
Wenn der AVR Q8 durchschaltet, sollten Q9 und Q7 sperren und damit
der Saft ausgehen.
Da ich aber nicht weiß, wie schnell die 5V aus dem AVR runtergehen,
weiß ich nicht, ob Q8 lange genug leitend bleibt, um die
Schaltung sicher auszuschalten.

Hat jemand eine Idee, wie man das Ausschalten sicher kann,
ohne genaue Kenntnis, wie die Versorgung des AVRs und damit auch
das High am Ausgang absinken?

Oder gibt's eine andere (fertige) Lösung?


Frohe Weihnachten
Thomas


Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hat jemand eine Idee, wie man das Ausschalten sicher kann,
>ohne genaue Kenntnis, wie die Versorgung des AVRs und damit auch
>das High am Ausgang absinken?

>Oder gibt's eine andere (fertige) Lösung?

Wenn du sicher sein willst, setze eine Sicherung in die Zuleitung, und 
verbinde die Sicherung über einen Relaiskontakt mit Masse. Das Relais 
wird dann vom Mikrocontrollerausgang ausgelöst. Danach hat der uC sicher 
keinen Saft mehr.

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

Bewertung
0 lesenswert
nicht lesenswert
wie wärs mit angehängter lösung (sehr rudimentär). du gibst dem uC saft 
(einschalten), darauf hin liefert er solange ein hi-pegel (vom uC) bis 
er sich abschalten will...

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also von der Logik her würde ich es immer so machen, dass der Prozessor 
etwas abschaltet, wenn er ausschalten will. Also ein Portpin gegen 
Masse, der dann auch im ausgeschalteten Zustand auf Masse liegen bleibt. 
In dieser Schaltung habe ich das realisiert:

http://www.wikidorf.de/reintechnisch/Inhalt/AVRPro...

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem Flipflop.
Den SET-Eingang mit deinen drei Eingänge verbinden und den RESET-Eingang 
mit dem AVR verbinden.

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Warum muss der avr sich ganz abschalten ?
Hab letztens mit nem attiny45 was gebastelt und der brauch nur
0,1uA (!) im sleep modus. Aufwachen ganz normal per Interruptpin.
(wichtig ist es alles abzuschalten und die sleep bits richtig zu setzen)

Da das ganze von zwei AA Zellen versorgt wird wollte ich das ganze auch
erst abschalten, bei 0,1 uA lohnt sich da aber der Schaltungsaufwand 
nicht ;)

Bye, Simon

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man 0,1µA noch messen? ;)

Autor: Ssss Ssssss (sssssss)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Zeigt zumindest mein Messgerät an 8)

Während der tiny mit zwei hellen LEDs läuft hab ich 10-20mA (pwm).
Wenn ich dann in den sleep gehe zeigt es 0,0 mA an, wenn ich dann 
umstöpsel
und auf uA stelle zeigt es nur noch 0,1uA an :)

Bevor ich rausgefunden habe wie man die ganzen internen Sachen 
abschaltet und wirklich auch den osc
stoppt kam ich immer nur auf 0,7mA.


Falls es wen interessiert:
void powerdown(){
        //avr: atTINY45

        //prepare for powerdown, switch off all LEDs:
        PORTB &= ~((1<<LED0) | (1<<LED1) | (1<<LED2));

        //switch all peripheral devices off:
        PRR = (1<<PRTIM0) | (1<<PRTIM1) | (1<<PRUSI) | (1<<PRADC);

        //BOD disable & sleep (must be within some clock cylces!)
        asm volatile ("cli "); //disable interrupts
        asm volatile ("push r16 "); //backup reg16
        asm volatile ("in r16, 85-0x20"); //MCUCR
        asm volatile ("ori r16, 0b00100000"); //set SE bit (b5)
        asm volatile ("out 85-0x20, r16"); //set MCUCR
        asm volatile ("ori r16, 0b10000100"); //set BODS (b7) and BODSE (b2)
        asm volatile ("out 85-0x20, r16"); //set MCUCR
        asm volatile ("andi r16, 0b11111011"); //clear BODSE (b2)
        asm volatile ("out 85-0x20, r16"); //set MCUCR
        asm volatile ("sei"); //enable ints again
        asm volatile ("sleep"); //sleeeep
        asm volatile ("pop r16 "); //restore r16

        //reactivate timer
        PRR = (0<<PRTIM0) | (0<<PRTIM1) | (1<<PRUSI) | (1<<PRADC);
}
So klappt es jedenfalls :) Ob das reactivate Timer sinn macht weiss ich 
grad nicht
mehr, kann sein dass es überflüssig is.
Aufpassen bei der Reihenfolge vor sleep, da muss man innerhalb von 3 
takten bleiben

Bye, Simon

Autor: Thomas Schwetzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Irgendwelche Logik-Bausteine (Latches) brauchen im KFZ
dann doch auch wieder eine entprechend aufbereitete Versorgung.
Genau die möchte ich mir aber sparen und nur die "eine" 5V-Schiene
abschalten.

Und wie gesagt, es geht mir nicht um einen Sleep-Modus, egal
wie wenig der MC dann nur noch zieht.


Thomas

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei 0,1µA könnte man aber schon mit einem einfachen Elko (oder Goldcap) 
auch bei ausgeschaltetem Spannungsregler eine gewisse Zeit überbrücken. 
Das Eine schließt das Andere nicht aus.

Autor: Thomas Schwetzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

ok, dann verrate mir doch, wie ich beim Ausschalten des
5V-Zweigs den Goldcap an den MC naschließe und nur an
an den MC.

Gruß
Thomas

Autor: Albrecht Gündel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den GoldCap einfach dranlassen.. ggf mit ner Diode vom Regler trennen...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich würde den µC ständig an 5V lassen und mittels Transistor oder 
MOSFET die weiterführende 5V-Schiene bei Bedarf ausschalten. Wenn der 
Controller also in Sleep geht, macht er vorher die 5V für die restliche 
Logik aus. Ein LP2950CZ5 nimmt als Ruhestrom 10µA, plus die 0.1µA vom 
Controller und vielleicht nochmal 0,1µA vom Transistor-Ruhestrom. Die 
Bordelektronik braucht mit Sicherheit das 100-fache und die 
Selbstentladung der Starterbatterie ist noch höher.

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In batteriebetriebenen Systemen macht ein Controller oft nur dann Sinn, 
wenn man die BOD-Überwachung eingeschaltet hat oder extern eine 
Supervisor-Chip dranhängen hat. Sonst kann so ein Controller total 
spinnen und wirres Zeugs machen. Wenn man aber beim Tiny 45 den BOD 
anschaltet, hat man gleich mal 20 uA mehr Stromverbrauch. Wenn man den 
Watchdog einschaltet, den man ebenso bei batteriebetriebenen Geräten oft 
braucht, hat man zusätzlich nochmal 15 uA.

Damit ist dann leider der Traum von geringen Strömen vorbei, die ein 
permanentes Eingeschaltetsein zulassen.

In den letzten 15 Jahren habe ich schon mehrfach batteriebetriebene 
Prozesessoren erlebt, die völligen Unfug gemacht haben, bis man sie 
wieder resetet hat. Das Programm war jedoch in Ordnung, es war also kein 
Softwarebug.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut - ich denke, selbst diese 35µA kann man im Auto locker verschmerzen, 
wie gesagt, die Selbstentladung ist bei Weitem höher. Das Autoradio und 
die Bordelektronik brauchen auch entschieden mehr im Standby. Bei 
kleinen transportablen Geräten ist das freilich schon ein 
K.O.-Kriterium.

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.