Forum: Mikrocontroller und Digitale Elektronik MSP430G2553: Watchdog auch während LPM3?


von Sven Scholz (Gast)


Lesenswert?

Hallo Gemeinde,

kurze Frage:
Ich verwende derzeit einen MSP430 i2c-Treiber der momentan endlos auf 
entsprechende Status-Bits des I2C-Bausteins polled:
z.B.:

/* Wait for the start condition to be sent and ready to transmit 
interrupt */
while ((UCB0CTL1 & UCTXSTT) && ((IFG2 & UCB0TXIFG) == 0));

/* Wait for the data */
while ( (IFG2 & UCB0RXIFG) == 0 );

Mit dieser Lösung bin ich leider nicht ganz zufrieden.
Wenn nur ein Gerät am i2c-Bus sich aus welchen Gründen auch immer 
"verabschiedet" steht die SW halt für immer in einer der 
endlos-while()-Schleifen.

Zudem verbraucht der MSP430 in der Schleife so um die 300uA.
Ich würde die CPU daher gerne schlafen legen (LPM3) und von dem 
entsprechenden I2C-Interrupt wieder aufwecken.

Allerdings:
Was ist wenn der Interrupt niemals kommt, da ein angeschlossenes 
i2c-Gerät sich nicht meldet oder spinnt?

Ich würde daher gerne den Watchdog parallel mitlaufen lassen, sodass ich 
aus diesem Endlos-Wartezustand wieder rauskomme...
Den Watchdog würde ich vom ACLK speisen und auf 1000ms setzen.
Nach einer 1 Sekunde würde die SW dann komplett neustarten, den I2c 
baustein wieder neu-initialisieren und versuchen das i2c-Gerät wieder 
anzusprechen.

Die Frage ist, kann man das realisieren? Schlägt Watchdog auch zu, wenn 
man in LPM3 ist?
Wie würdet ihr einen Timeout realisieren OHNE polling?

Herzlichen Dank!!!

von Stefan (Gast)


Lesenswert?

MSP430x2xx Family User's Guide
10 Watchdog Timer+ (WDT+) ....................341
10.2.6 Operation in Low-Power Modes ......345

von Sven Scholz (Gast)


Lesenswert?

Also so wie ich es jetzt verstanden habe, läuft der WDT auch in LPM3 
mit, vorausgesetzt der wird vom ACLK gespeist.

Dann passt das ja ganz gut...

Danke!

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.