I'm using a MSP430f5438 in an application where I want to be in LPM3 until a character comes in on one of the UARTS.
I’m using an XT1 clock of 32 KHz. The FLL is multiplying that to 7.3728 MHz., which is supplying MCLK and SMCLK. ACLK is the 32 KHz. I’m running a couple of the UARTS at 115.2 KBaud, so their baud rate clocks are sourced from SMCLK and divided appropriately. I was under the impression that if I put the processor into LPM3, the falling edge on a start bit on the serial Rx line would wake the processor (or at least turn on the needed clock ) .
From the users guide p. 397.
UART mode features include:
.
.
.
· Receiver start-edge detection for auto-wake up from LPMx modes
However, when I go into LPM3, I’ve determined that SMCLK (and therefore the DCO/FLL) remains on, thus drawing too much power. The MCLK does turn off. This is as observed on the SMCLK and MCLK output pins (appropriately configured).
Turning off SMCLK explicitly (via SMCLKOFF) when going into LPM3 results in never receiving an Rx IRQ from the UART, thus never waking.
So my question: is there some way to have the SMCLK and thus the DCO/FLL turned off until the UART determines it needs it when a falling edge occurs on the RX line? Or am I reading the user’s guide wrong and the BRCLK needs to be there always for the UART to wake from an LPMx ? (In which case the above quote from the UG doesn’t make sense.)
Thanks for any insight.