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..
@ 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
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!
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.
> 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!
@ 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
Viele der neuen F2xx Serie haben einen eingebauten 12kHz Taktgenerator. Damit kann man die Zeitspanne noch mal etwas erhöhen.
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.