MSP430 low power modi

Gast #640509
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..
#640528
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
Gast #640534
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!
Gast #640598
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.
Gast #640606
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!
#640617
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
Gast #640794
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
Gast #640991
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.

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