sleep-modus fragen

Gast #4200793
Lesenswert?

Hi
hi, ich möchte meinen PIC im sleep-modus bringen.
dazu habe ich ein paar fragen
1) ab wann lohnt sich das? Wahrscheinlich bekommt mein Kontroller nur 
alle 30 min. ein Befehl, wo er dann ~15min. arbeiten muss. aber ab wann 
würde sich so etwas lohnen? schon ab 1 sekunde?
2) Lohnt sich so etwas überhaupt? was sind denn die vorteile. Nur der 
Strom?
3) ist der sleep modus wie ein break? also fängt er beim aufwachen 
wieder da an, wo er aufgehört hat?

Stephan
Gast #4200837
Lesenswert?

Der Sleep Modus senkt die Stromaufnahme, aber einige Hardwarefunktionen 
fallen dabei aus und die SOftware bleibt auch stehen.

Ob es sich lohnt, hängt von deiner Stromversorgung und den Anforderungen 
an die Stromaufnahme ab.

Aber von der Software hängt ab, ob die sleep Modi überhaupt nutzen 
kannst.

> fängt er beim aufwachen wieder da an, wo er aufgehört hat?
Jein. Man kann auch mit einem Watchdog-Reset oder Reset aufwachen, dann 
läuft das Programm nicht weiter sondern startet neu.
#4200870
Lesenswert?

@Stephan (Gast)

>1) ab wann lohnt sich das? Wahrscheinlich bekommt mein Kontroller nur
>alle 30 min. ein Befehl, wo er dann ~15min. arbeiten muss. aber ab wann
>würde sich so etwas lohnen? schon ab 1 sekunde?

Teilweise auch bei kürzeren Zeiten.

>2) Lohnt sich so etwas überhaupt? was sind denn die vorteile. Nur der
>Strom?

Ja. Wenn dein Gerät über ein Netzteil versorgt wird, kannst du dir das 
sparen.

>3) ist der sleep modus wie ein break? also fängt er beim aufwachen
>wieder da an, wo er aufgehört hat?

Meistens.
#4201004
Lesenswert?

die allermeisten PIC's wachen durch den "event", also ein zb ein 
interrupt auf und arbeiten genau nach der "sleep" instruction weiter.
lohnt sich bei batteriebetrieb fast immer!
Aber, viele PIC's sind nicht sehr schnell beim aufwachen, heisst, wenn 
deine anwendung superschnell reagieren soll, musst du prüfen ob die 
aufwachzeit zu deiner anwendung passt.
die zeit liegt je nach typ und oszilatorconfiguration im mehrstelligen 
millisekundenbereich.
Gast #4201394
Lesenswert?

Es gibt meist verschiedene Arten von Sleep modes - da muss man abwägen 
zwischen Spareffekt und noch verfügbaren Funktionen und der Zeit für die 
Reaktivierung.

Je nach sleep Mode reduziert sich auch die HF Abstrahlung ganz 
erheblich.

Lohnend ist es vor allem bei Batteriebetrieb - dann auch schon für kurze 
Zeiten im ms Bereich.
#4201408
Lesenswert?

Lurchi schrieb:
> Je nach sleep Mode reduziert sich auch die HF Abstrahlung ganz
> erheblich.

Kann ich nicht bestätigen. Die internen Flashzugriffe dringen kaum nach 
außen und der Quarz erzeugt nur einen oberwellenarmen Sinus.
Man muß schon sämtliche Abblockkondensatoren weglassen, um einen 
merkbaren Unterschied zu sehen.

Wenn was abstrahlt, dann sind das schreibende Portzugriffe, an denen 
lange Leitungen ohne Dämpfungswiderstände hängen.
Gast #4201463
Lesenswert?

Lurchi schrieb:
> dann auch schon für kurze
> Zeiten im ms Bereich.

hast du auch ein beispiel dafür? Also ich glaube dir das, kann mir aber 
nichts vorstellen, wo es sich lohnt für ein paar ms. strom zu sparen.

ansonsten habe ich das jetzt umgesetzt (war einfacher als ich dachte). 
aber probleme habe ich beim aufwecken.
ich möchte gerne, dass der bei einer einkommenden CAN-Nachricht aufwacht 
(das macht er auch und fängt holt sich aus dem CAN-Interrupt die Daten). 
Allerdings läuft der Timer im sleep-modus weiter und wenn dieser 
ebenfalls einen Interrupt auslöst, wird der controller ebenfalls 
geweckt. kann man das irgendwo definieren, durch welche interrupts der 
controller geweckt werden soll?
das ganze mit einem dspic30f4011.
Gast #4201762
Lesenswert?

> hast Du 1mA gespart, das wirkt sich in der
> Gesamtschaltung nur unmerkbar aus.

Nun, wenn die Gesamtschaltung 1,01mA aufnimmt, dann 1mA weniger schon 
erheblich.

Und dann gibt es ja auch noch (bei AVR) den power-down Modus, in dem der 
µC nur noch wenige hunder nA aufnimmt. Ich schätze, dass es auch bei PIC 
solche schlafmodi gibt.

Es ist durchaus möglich, einen Mikrocontroller jahrelang an einer 
kleinen 3V Knopfzelle zu betreiben.

Eine Millisekunde schlöafen hört sich nach wenig an. Aber wenn der µC 
zwischen dem Schlafen nur 0,1mS aktiv ist, dann schläft er schon 90% der 
Zeit. Wenn dann noch der Rest der Schaltung ebenso sparsam ist, lohnt es 
sich.
Gast #4201782
Lesenswert?

Kannst du deinen Controller auch öfters schlafen schicken?
ich möchte meinen auch schlafen lassen, kann es aber nur einmal machen. 
Wahrscheinlich ist da noch irgendwo ein bit, welches ich beim wecken 
nicht gelöscht habe (eigentlich lösche ich gar keine bits). Ich benutze 
einen dspic30f6011a. Da dieser ja der selben pic-family angehört wie 
deiner, wollte ich fragen, welches bit du gelöscht hast und wo das 
steht.

Johannes

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren