Forum: Mikrocontroller und Digitale Elektronik MSP430 low power modi


von Dussel (Gast)


Lesenswert?

Wer  schon den MSP430 benutzt: in welchen Power Modi läßt sich der 
Controller durch einen seiner internen Timer noch aufwecken? (also wenn 
ich möchte, dass er aufwacht, ohne dass der Interrupt  von extern 
erfolgen muss)
Und wie lang können diese Timerintervalle maximal sein ? Werde aus dem 
Datenblatt nicht ganz schlau..

von Falk B. (falk)


Lesenswert?

@ Dussel (Gast)

>Wer  schon den MSP430 benutzt: in welchen Power Modi läßt sich der
>Controller durch einen seiner internen Timer noch aufwecken? (also wenn

LPM0...LMP3

>Und wie lang können diese Timerintervalle maximal sein ? Werde aus dem

Beliebig. Praktisch aber durch den 32kHz Uhrenquarz + Vorteiler 
begrenzt. Bei vollem 16 Bit Zählumfang ca. alle 2s, bei Vorteiler 8 alle 
16s.

>Datenblatt nicht ganz schlau..

MfG
Falk

von Stefan (Gast)


Lesenswert?

Das hängt davon ab, welche Clock-Source Du für den jeweiligen Timer 
benutzt:

1.) SMCLK für Timer_A oder WDT -> LPM0 u. LPM1
2.) ACLK für Timer_A oder WDT  -> LPM0 bis LPM3
3.) ext. Clock für Timer_A     -> LPM0 bis LPM4

Zu den Timerintervallen:
Das hängt natürlich auch von Deiner Clock-Frequenz ab!
Der WDT hat als größtes Intervall 32768*T_Clk. Du kannst aber auch eine 
Zählervariable nehmen und mit jedem Timer-Intervall hochzählen. Erst 
wenn die Variable einen bestimmten Wert überschreitet, weckst Du den µC 
wieder auf. Damit sind praktisch (fast) unbegrenzte Zeitintervalle 
möglich!

von Dussel (Gast)


Lesenswert?

Danke für die schnellen Antworten.
Versteh ich das falsch, oder müsste ich um die Zählervariable zu 
inkrementieren und lesen dann erst aus dem low power Modus raus, weil 
die CPU abgeschaltet ist?
Bräuchte am besten einige Minuten lang ununterbrochenen Low Power Modus 
zum Energie sparen.

von Stefan (Gast)


Lesenswert?

> Versteh ich das falsch, oder müsste ich um die Zählervariable zu
> inkrementieren und lesen dann erst aus dem low power Modus raus, weil
> die CPU abgeschaltet ist?

Nein, denn jeder Interrupt weckt den µC aus dem LPM auf, arbeitet die 
entsprechende ISR ab und geht dann wieder in den vorher definierten LPM 
zurück. Wenn Deine Zählvariable also in der ISR inkrementiert wird, dann 
musst Du nichts weiter machen.
Erst wenn dein 'Aufweck-Zeitintervall' abgelaufen ist, musst Du in der 
ISR den LPM wieder ausschalten, damit Dein normales Programm ablaufen 
kann!
Da die ISR in der Regel recht kurz sind (zumindest sein sollten!) ist 
der Stromverbrauch beim kurzzeitigen Aufwecken (nur für die ISR) recht 
gering. Also einige sek. oder min. LPM machen fast keinen Unterschied!

von Falk B. (falk)


Lesenswert?

@ Dussel (Gast)

>Versteh ich das falsch, oder müsste ich um die Zählervariable zu
>inkrementieren und lesen dann erst aus dem low power Modus raus, weil
>die CPU abgeschaltet ist?

Ja.

>Bräuchte am besten einige Minuten lang ununterbrochenen Low Power Modus
>zum Energie sparen.

Und? Mit 32k Uhrenquarz und Vorteiler 8 alle 16 Sekunden für ein paar 
Mikrosekunden aufwachen, Variable hochzählen und wieder schlafen. Die 
paar uA fallen unter ferner liefen.

MFg
Falk

von Jörg S. (Gast)


Lesenswert?

Viele der neuen F2xx Serie haben einen eingebauten 12kHz Taktgenerator. 
Damit kann man die Zeitspanne noch mal etwas erhöhen.

von Falk (Gast)


Lesenswert?

@ Jörg S. (Gast)

>Viele der neuen F2xx Serie haben einen eingebauten 12kHz Taktgenerator.
>Damit kann man die Zeitspanne noch mal etwas erhöhen.

Wobei der sicher relativ ungenau ist. Ein 32 kHz Uhrenquarz ist, Nomen 
est Omen, uhrengenau.

MfG
Falk

von Jörg S. (Gast)


Lesenswert?

Kommt darauf an was man machen will. Für den bau einer RTC ist der 12kHz 
natürlich eher schlecht :) Ich nutze den bei einer kleinen Sensoreinheit 
die nur alle ~1,5 Sekunden aufwacht, da spielt halt auch eine größere 
Abweichung keine Rolle.

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.