Other Parts Discussed in Thread: MSP430F2618, MSP430WARE,
SLAU208P (the MSP430x5xx and MSP430x6xx Family User's Guide) makes the following statement:
36.3.14 Using the USCI Module in UART Mode With Low-Power Modes
The USCI module provides automatic clock activation for use with low-power modes. When the USCI
clock source is inactive because the device is in a low-power mode, the USCI module automatically
activates it when needed, regardless of the control-bit settings for the clock source. The clock remains
active until the USCI module returns to its idle condition. After the USCI module returns to the idle
condition, control of the clock source reverts to the settings of its control bits.
Let's suppose I've set up a UART (say, UCA1) as follows:
- It's clocked from SMCLK
- SMCLK is driven from MCLK
- MCLK is driven from the FLL DCO at 8 MHz
- RXIE for this UART is enabled
Then, suppose I put the microprocessor into low-power mode (say, LPM3) so MCLK and SMCLK are off.
Interpreting Section 36.3.14 freely, I'd assume that a Marking-to-Spacing transition on the Rx Data line coming into the UART would activate the UART and the UART would then request SMCLK (hopefully in time to catch the incoming asynch Start bit or at least the first data bit). Then, I'd further hope that the setting of RXIFG at the end of the character would cause an interrupt that would take the microprocessor out of LPM3 while the USCI_A1_VECTOR interrupt is being processed.
But for me, this doesn't seem to be happening. My UART only receives characters when some other action in my system has already taken the microprocessor out of LPM3.
Am I reading that paragraph too optimistically and hoping for too much automation? Or am I failing to set up some bit that's blocking this bit of automation?
Notes:
- TRANSMITTING characters from the UART seems to properly request/enable SMCLK.
- I don't see anything in the device Errata that is relevant to this.
- Substantially the same code worked without this difficulty on our previous MSP430F2618 design but that's no guarantee that I ported everything correctly/completely.