This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SPI Power Consumption In Inactive Mode

Other Parts Discussed in Thread: MSP430FR5969

Introduction: I am building an electronic device with MSP430FR5969 and nRF24L01+ RF module ( SPI interface ). One crucial constraint of my design is LOW POWER. But currently I encounter a problem of SPI power consumption.

Background: I built my own communication protocol between two devices aiming for low power. According to this protocol, two devices communicate once every fifteen seconds. During communicating time, each device transmit one packet and receive one ( like a handshake ). After communication, each MCU configs nRF24L01+ into Power Down mode and then enters LPM3.

Problem: The ideal situation should be that the power consumption of MCU drops to several uA instantly after MCU enters LPM3. However, we observed that the power consumption of MCU increased after MCU enters LPM3 until it went up to several hundreds uA ( in about 6~7 seconds ) and then dropped to several uA abruptly. We are sure that there are no other codes that would result in such power consumption.

Guess: I found the text about this situation in MSP430FR5969 User Guide as follow:

22.3.7 Using the SPI Mode With Low-Power Modes
The eUSCI module provides automatic clock activation for use with low-power modes. When the eUSCI
clock source is inactive because the device is in a low-power mode, the eUSCI module automatically
activates it when needed, regardless of the control-bit settings for the clock source. The clock remains
active until the eUSCI module returns to its idle condition. After the eUSCI module returns to the idle
condition, control of the clock source reverts to the settings of its control bits.

Hence, I guess the reason of the high power consumption after LPM3 resulted from the eUSCI clock which is still active. If so, how can I turned it off forcefully?

Appendix:

My system clock was initiated this way:

FRCTL0 = FRCTLPW|NWAITS_1;
CSCTL0_H = CSKEY >> 8; // Unlock CS registers
CSCTL1 = DCOFSEL_4|DCORSEL; // Set DCO to 16 MHz
//CSCTL1 = DCOFSEL_0;
CSCTL2 = SELM__DCOCLK | SELS__DCOCLK | SELA__LFXTCLK;
// CSCTL2 = SELM__HFXTCLK | SELS__HFXTCLK | SELA__LFXTCLK;//VLO 9.4(6~14)k
CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // Set all dividers to 1
CSCTL4 |= ( LFXTOFF | HFXTOFF);

My SPI was initiated this way:

UCA0CTLW0 = UCSWRST; // **Put state machine in reset**
UCA0CTLW0 |= UCMST | UCSYNC | UCMSB | UCCKPH;
UCA0CTLW0 &= ~UC7BIT_H; 
UCA0CTLW0 &= ~UCCKPL; 
UCA0CTLW0 |= UCSSEL__SMCLK;
UCA0BR0 = 0x02; 
UCA0BR1 = 0; 
// UCB0MCTLW = 0; // No modulation
UCA0CTLW0 &= ~UCSWRST; // **Initialize USCI state machine**
UCA0IE |= UCRXIE; 

Thank you very much for read and reply!

**Attention** This is a public forum