Hallo,
ich "beschäftige" mich aktuell mit dem SleepModus bei Mikrocontrollern.
Im Tutorial von mikrocontroller.net ist zu lesen, dass der
Stromverbrauch im "Power Down Mode" nur durch die Leckströme bestimmt
wird.(http://www.mikrocontroller.net/articles/Sleep_Mode#Power_Down_Mode).
Ist es möglich, wenn sich der mC im Power Down Mode befindet, ihn von
der Stromversorgung zu trennen - 5Tage liegen lassen - Stromversorgung
wieder dran - Interrupt und alles funktioniert wie gewohnt?
Macht ja eigentlich keinen Sinn, weil er von der Stromversorgung
getrennt wurde. Aber dann verstehe ich das oben mit den "Leckströmen"
nicht, weil diese sind doch eigentlich parasitärer Natur und sollten
eigentlich gar nicht auftreten -> also auch nicht für die Arbeit des mC
wichtig sein?!
Gruß
Bruder Jakob schrieb:> Aber dann verstehe ich das oben mit den "Leckströmen"> nicht, weil diese sind doch eigentlich parasitärer Natur und sollten> eigentlich gar nicht auftreten -> also auch nicht für die Arbeit des mC> wichtig sein?!
es gibt kaum einen perfekten Isolator, im PowerDown wird wohl diese
Widerstand der Isolierung die Ströme verursachen.
Bruder Jakob schrieb:> Also funktioniert das Prinzip ihn von der Stromversorgung zu trennen?
ja (aber nur kurz). Wenn es länger dauert sorgt der Strom dafür die die
Spannung verschwindend und damit der RAM gelöscht wird.
Peter II schrieb:> Bruder Jakob schrieb:>> Aber dann verstehe ich das oben mit den "Leckströmen">> nicht, weil diese sind doch eigentlich parasitärer Natur und sollten>> eigentlich gar nicht auftreten -> also auch nicht für die Arbeit des mC>> wichtig sein?!>> es gibt kaum einen perfekten Isolator, im PowerDown wird wohl diese> Widerstand der Isolierung die Ströme verursachen.Bruder Jakob schrieb:> Also funktioniert das Prinzip ihn von der Stromversorgung zu> trennen?
Im Prinzip ja,
WENN die Pufferkondensatoren die Betriebsspannung lang genug stützen
können. Die üblichen Abblock-Kondensatoren (einige 100nF typischerweise)
schaffen das aber auch bei kleinen Leckströmen über die gewünschte Dauer
nicht. Und im normalen Betrieb müssen sie das auch nicht.
Ok, nehmen wir eben größere Kondensatoren, beispielsweise Elkos mit
vielen 100µF Stützkapazität. Auch hier wird es bei realen Leckströmen
des Controllers schon schwierig. Und noch schwieriger ist, dass auch die
Kondensatoren selbst Leckströme haben, die typischerweise sogar größer
als die des Controllers sein können.
Praktisch wird das Vorhaben also leider nicht für längere Zeiten
funktionieren.
Grüße
Christian
@ Bruder Jakob (Gast)
>Ist es möglich, wenn sich der mC im Power Down Mode befindet, ihn von>der Stromversorgung zu trennen - 5Tage liegen lassen - Stromversorgung>wieder dran - Interrupt und alles funktioniert wie gewohnt?
Nur dann, wenn über ausreichend große Pufferkondensatoren (Goldcaps,
Supercaps) oder eine Lithiumzelle die Spannungsversorgung zur Verfügung
gestellt wird.
>Macht ja eigentlich keinen Sinn, weil er von der Stromversorgung>getrennt wurde.
Eben.
> Aber dann verstehe ich das oben mit den "Leckströmen">nicht, weil diese sind doch eigentlich parasitärer Natur
Sind sie auch.
> und sollten eigentlich gar nicht auftreten
Warum sollten sie nicht auftreten? Denkst du, die Isolation im so einem
uC ist PERFEKT? Sie ist verdammt gut, aber eben nicht perfekt. So ein uC
hat heute Leckströme von weniger als 1uA!!!
> also auch nicht für die Arbeit des mC>wichtig sein?!
Doch, und zwar wenn er schläft, sonst fällt das gar nicht auf.
Gruß
Damit die Teile möglichst schnell/energiearm arbeiten können, werden die
internen Kapazitäten so gering wie möglich gehalten.
Stell Dir einfach mal vor, was passieren würde, wenn z.B. Ausgänge
(damit sie lange den Pegel halten können) sehr große Kapazitäten hätten.
Deine Leistungsbilanz wäre noch tiefer als im Keller.
wow, cool, danke für die kompetente Hilfe!
Ist es denn irgendwie anders möglich Programme auf einem mC zu speichern
ohne stromversorgung?
Theo ich habe Programm A. Programm A wird ausgeführt bis zum Ende. Dann
kappe ich die Stromversorgung, warte ein paar Tage.
Dann schließe ich den mC wieder an die Stromversorgung an und Programm A
wird (automatisch) wieder ausgeführt?!
Beste Grüße und einen schönen Abend :-)
Das Programm selber ist normalerweise "Resetfest" im mC gespeichert. Das
braucht auch selbst keine Energie. Üblicherweise verwendet man hierfür
einen Flash-Speicher.
Der größte Teil des aktuellen Status ist aber in flüchtigen internen
Speichern fixiert.
Das können einfache Zwischenwerte sein, Zeiger auf gerade aktuelle
Speicherbereiche, interessant ist auch der Programmzähler, der auf den
gerade aktuellen Befehl im Programm zeigt. Und so kommen jede Menge
Sachen zusammen, die "man" sich einfach merken muss.
Natürlich muss ein mC irgendwo mit der Arbeit anfangen. Meist nach dem
Einschalten der Betriebsspannung. Dies ist aber eine durch die
Programmierung festgelegte Sequenz, die (im Normalfall) immer gleich
ist.
Bruder Jakob schrieb:> Ist es denn irgendwie anders möglich Programme auf einem mC zu speichern> ohne stromversorgung?
Bei manchen schon. Nämlich bei denen, die einen eingebauten
nichtflüchtigen Speicher haben, also ROM (oder, heute wohl häufiger:
Flash-ROM)
Diese Speicherarten behalten ihre Information auch ohne dauerhaftes
Anliegen einer Spannung.
Und bei den µC, die sowas nicht eingebaut haben, kann man es extern
antüdern.
Bruder Jakob schrieb:> Dann schließe ich den mC wieder an die Stromversorgung an und Programm A> wird (automatisch) wieder ausgeführt?!
Ja, aber das Programm arbeitet nicht weiter von der Stelle, wo es beim
Abschalten gerade war.
Es startet neu von der Reset-Adresse: das Einschalten der
Stromversorgung erzeugt einen Hardware-Reset (wenn diese Funktion nicht
im µC vorhanden ist, muss man sie extern dazu bauen).
Bruder Jakob schrieb:> Ist es denn irgendwie anders möglich Programme auf einem mC zu speichern> ohne stromversorgung?> Theo ich habe Programm A. Programm A wird ausgeführt bis zum Ende. Dann> kappe ich die Stromversorgung, warte ein paar Tage.> Dann schließe ich den mC wieder an die Stromversorgung an und Programm A> wird (automatisch) wieder ausgeführt?!
Wenn Programm A entsprechend geschrieben wurde geht das. Mit
entsprechender Beschaltung und Programm kann man sich z.B. merken wo der
µC war als die Spannung weg ging und wenn sie wieder kommt kann man an
dieser Stelle weiter machen. Unter anderem das EEProm im µC kann hierbei
helfen.
Hast du denn ein konkretes Problem wobei du diese Funktionalität
benötigst?
Dietrich L. schrieb:> Ja, aber das Programm arbeitet nicht weiter von der Stelle, wo es beim> Abschalten gerade war.> Es startet neu von der Reset-Adresse: das Einschalten der> Stromversorgung erzeugt einen Hardware-Reset (wenn diese Funktion nicht> im µC vorhanden ist, muss man sie extern dazu bauen).
So ist es.
Aber natürlich kann man (wiederum bei Vorhandensein eines geeigneten
Speichers, in diesem Fall z.B. EEPROM) einem Programm beibringen, sich
im Falle eines PowerDown noch schnell zu merken, wo es gerade war und
dann nach dem Reset (und ggf. geeigneter Neuinitialisierung der
benutzten Hardware) an "genau" dieser Stelle weiter zu arbeiten. Es ist
natürlich nicht wirklich genau diese Stelle, sondern es erscheint nur
dem Laien im Makroabstand so...
Insgesamt entspricht das dann dem Trick des "Ruhezustands" bzw.
"Hybernate" bei PCs. Allerdings sind diese Dinger schon viel zu komplex,
als dass es wirklich völlig unbemerkt für den Laienbetrachter ablaufen
könnte. Bei µC ohne OS und den entsprechenden Anwendungen geht das
hingegen wirklich so zu machen, dass es praktisch nicht zu bemerken ist.
Bruder Jakob schrieb:> Ist es möglich, wenn sich der mC im Power Down Mode befindet, ihn von> der Stromversorgung zu trennen - 5Tage liegen lassen - Stromversorgung> wieder dran - Interrupt und alles funktioniert wie gewohnt?
Bei vielen µCs kommt man aus "Power Down" nur mit Reset raus,
dafür zeiht das echt wenig Strom (z.B: EFM32 20nA typisch).
Bruder Jakob schrieb:> Ist es möglich, wenn sich der mC im Power Down Mode befindet, ihn von> der Stromversorgung zu trennen - 5Tage liegen lassen - Stromversorgung> wieder dran - Interrupt und alles funktioniert wie gewohnt?
Dazu braucht es den RAM Inhalt, und nun reden wir von Stömen um ein paar
einzelnen µA. Eine CR2032 hält da Jahre, aber rechne das mal mit einen
100nF Kondensator.
Ein 1F Goldcap könnte aber eine Woche halten. Länger würde ich der
Selbstentladung nicht trauen.
Jim M. schrieb:> Bruder Jakob schrieb:>> Ist es möglich, wenn sich der mC im Power Down Mode befindet, ihn von>> der Stromversorgung zu trennen - 5Tage liegen lassen - Stromversorgung>> wieder dran - Interrupt und alles funktioniert wie gewohnt?>> Bei vielen µCs kommt man aus "Power Down" nur mit Reset raus,> dafür zeiht das echt wenig Strom (z.B: EFM32 20nA typisch).
Der Unterschied zwischen "Sleep" und "Aus" besteht darin, daß beim Sleep
der Zustand des Programms (also u.A. die Inhalte aller Variablen)
erhalten bleibt. Wenn man da nur mit einem Reset heraus käme, wäre ein
solcher Sleepmode vollkommen sinnlos.
Was du meinst, ist wahrscheinlich gar kein Reset im eigentlichen Sinn,
sondern nur die Verwendung des selben Pins.
Wobei all das mit der Frage des TE auch eher nichts zu tun hat.
> Bruder Jakob schrieb:>> Ist es möglich, wenn sich der mC im Power Down Mode befindet, ihn von>> der Stromversorgung zu trennen - 5Tage liegen lassen - Stromversorgung>> wieder dran - Interrupt und alles funktioniert wie gewohnt?>> Dazu braucht es den RAM Inhalt, und nun reden wir von Stömen um ein paar> einzelnen µA. Eine CR2032 hält da Jahre, aber rechne das mal mit einen> 100nF Kondensator.>> Ein 1F Goldcap könnte aber eine Woche halten. Länger würde ich der> Selbstentladung nicht trauen.
Ich weiß nicht, was ihr alle immer mit Stützkondensatoren oder gar
Batterien wollt. Der TE wollte dem µC den Saft abklemmen. Nicht der
Baugruppe oder Platine, auf der der µC sitzt.
Und das geht selbstverständlich nicht. Auch wenn da "nur Leckströme"
fließen, dann heißt das nicht daß die Betriebsspannung nicht benötigt
würde. Zum Erhalt des RAM-Inhalts (Variablen, s.o.) wird die Spannung
natürlich benötigt. Diese Einschränkung fällt erst dann, wenn man einen
µC hat, der statt herkömmlichem RAM einen nichtflüchtigen Arbeits-
speicher verwendet, z.B. MRAM.
Aber auch das kann nur eine Anmerkung am Rande sein (quasi zur Abrundung
des Themas). Die eigentliche Frage des TE zielte ja darauf, daß er die
Spannungsversorgung des µC prinzipiell als entbehrlich ansah, weil da
"nur Leckströme" fließen. Nur folgt das eine halt so gar nicht aus dem
anderen. Die Betriebsspannung braucht es nicht, damit da lustig
Leckströme fließen können. Die Betriebsspannung brauchts, damit RAM und
Register ihren Inhalt behalten.
Jim M. schrieb:> Bei vielen µCs kommt man aus "Power Down" nur mit Reset raus,> dafür zeiht das echt wenig Strom (z.B: EFM32 20nA typisch).
Dann musst du aber nochmal Datenblätter lesen. Käme man aus dem Power
Down nur mit einem Reset raus wäre dieser Sleep Mode schlicht Quatsch.
Richtig ist lediglich, dass man den Mikrocontroller nur mit
vergleichsweise wenigen Funktionen aus dem Power Down aufwecken kann.
Axel S. schrieb:> Ich weiß nicht, was ihr alle immer mit Stützkondensatoren oder gar> Batterien wollt. Der TE wollte dem µC den Saft abklemmen. Nicht der> Baugruppe oder Platine, auf der der µC sitzt.>> Und das geht selbstverständlich nicht. Auch wenn da "nur Leckströme"> fließen, dann heißt das nicht daß die Betriebsspannung nicht benötigt> würde. Zum Erhalt des RAM-Inhalts (Variablen, s.o.) wird die Spannung> natürlich benötigt. Diese Einschränkung fällt erst dann, wenn man einen> µC hat, der statt herkömmlichem RAM einen nichtflüchtigen Arbeits-> speicher verwendet, z.B. MRAM.
doch. Auch der µC selber hat eine Kapazität und stellt damit einen (sehr
kleinen) Kondensator dar. Damit bleibt die Spannung auch eine (kurze)
Zeit erhalten wenn man sie von der Versorgung trennt.
Man hat sogar schon geschafft, PC-Ram Module auszubauen und dann in
einem andere PC auszulesen. (Sie wurden dafür gekühlt, damit die
Leckströme so gering wie möglich sind).
Peter II schrieb:>> Und das geht selbstverständlich nicht. Auch wenn da "nur Leckströme">> fließen, dann heißt das nicht daß die Betriebsspannung nicht benötigt>> würde. Zum Erhalt des RAM-Inhalts (Variablen, s.o.) wird die Spannung>> natürlich benötigt. Diese Einschränkung fällt erst dann, wenn man einen>> µC hat, der statt herkömmlichem RAM einen nichtflüchtigen Arbeits->> speicher verwendet, z.B. MRAM.>> doch. Auch der µC selber hat eine Kapazität und stellt damit einen (sehr> kleinen) Kondensator dar. Damit bleibt die Spannung auch eine (kurze)> Zeit erhalten wenn man sie von der Versorgung trennt.
So ein Quatsch. Das ist eine Spitzfindigkeit, die mit der Frage des TE
genau gar nichts zu tun hat. Denn ein Stützkondensator (vollkommen
egal wie groß oder wie klein) verhindert ja gerade das, wonach der TE
fragte: die Betriebsspannung des µC abzuschalten.
Axel S. schrieb:> So ein Quatsch. Das ist eine Spitzfindigkeit, die mit der Frage des TE> genau gar nichts zu tun hat.
hä? Das war doch die Frage. Bei einem einfachen Mosfet kannst du auch
das Gate trennen und der Schaltzustand bleibt kurzeitig erhalten. Ein µC
ist auch nur eine Sammlung von Fets.
> Denn ein Stützkondensator
wo steht etwas von einen Stützkondensator?