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.

MSP430FR6043: Low Power Mode Implementation

Part Number: MSP430FR6043

Hello Community,

I need clarification on the following points:.

1. I want to add the low power mode to our system for the MSP430FR6043 water measurement. According to Table 9-1. Operating Modes, the USS_A module is operational in LPM0.
Since the CPU is off, could you perhaps clarify how the USS module operates in LPM0 modes?


2. I have two interrupts: timerA0 interrupt and UART interrupt.
So the MCU can come out from the LPM0. Is this right?

Thanks in advance,

Sarwath

  • Is there any application note for low power mode implementation for USS.

  • Hi Sarwath,

    1. I want to add the low power mode to our system for the MSP430FR6043 water measurement. According to Table 9-1. Operating Modes, the USS_A module is operational in LPM0.
    Since the CPU is off, could you perhaps clarify how the USS module operates in LPM0 modes?

    In LPM0 only the CPU is off, so the USS module/hardware itself (Described in section 18 of the MSP430FR58xx, MSP430FR59xx, and MSP430FR6xx Family User's Guide) continues to work, but the CPU itself is not awake and executing code.

    2. I have two interrupts: timerA0 interrupt and UART interrupt.
    So the MCU can come out from the LPM0. Is this right?

    Correct. As long as interrupts are enabled and one of these interrupts occurs, you will wake from LPM0 and begin executing code again.

    Is there any application note for low power mode implementation for USS

    To clarify, are you asking about  the low power modes specifically or just reducing power consumption? 

    For understanding low power modes in MSP430 in general, there are definitely older threads on this forum that answer specific questions, and some older trainings (such as this video https://www.ti.com/video/4062521865001) that cover the concepts in general. 

    For reducing power consumption for the USS measurements specifically. Increasing things like the UPS0 to UPS1 gap, and decreasing things like the sampling frequency can help with power used. There will be compromises in system performance as a result though. 

    Best Regards,
    Brandon Fisher

  • Hello Brandon Fisher,

    I'm looking for an application note for LPM implementation. From hardware standpoint, everything is corrected, and sensing is working properly. Right now, want to add the LPM to it. The datasheet indicates that the USS module is only turned on in LPM0. So decided to use the same.

    1. How do include LPM0 in my present working base? Is there any reference material available? 2. Will there be any effects on the USS module, such as drop in accuracy, if implement the LPM0?

    Thanks in advance,

    Sarwath

  • Hi Sa,

    I'm looking for an application note for LPM implementation. From hardware standpoint, everything is corrected, and sensing is working properly. Right now, want to add the LPM to it. The datasheet indicates that the USS module is only turned on in LPM0. So decided to use the same.

    If you are not actively taking a measurement you don't necessarily need the USS module turned on, so you could enter a lower power state than LPM0. Calls to USS_startLowPowerUltrasonicCapture() will actually automatically enter LPM3 between pulse generation and pulse capture to save power. 

    1. How do include LPM0 in my present working base? Is there any reference material available?

    The only reference materials here would be the device datasheet and the family user's guide to know what is available in each low power mode. Where you want to enter will depend on how exactly your code is written. You will also need to consider how you want to wake up. Actually entering the low power mode isn't too complicated. Traditionally on MSP430 devices entering a low power mode is done directly with a call to __bis_SR_register like so:

    // Enter LPM0 with interrupts enabled
    __bis_SR_register( LPM0_bits | GIE );

    The USS library does also provide the USS_generateLPMDelay() function if you just want to drop into a lower power mode for some fixed amount of time (see below description from API guide). 

    2. Will there be any effects on the USS module, such as drop in accuracy, if implement the LPM0?

    No, there shouldn't be any effects on the USS module. The consequences of dropping into a Low Power mode are largely the wakeup time and the peripherals that are available (including which are able to wake the device). 

    Best Regards,
    Brandon Fisher

  • I have to run the USS module in battery mode continuously.

  • Hi Sa,

    If you want to get an idea of how the power modes can be managed, the main loop in the USS example project should give you an idea.

    You need the CPU active to process or transmit the data, but you can afford to enter a low power mode between captures and between pulse generation/capture.

    The example does exactly that with the calls to USS_waitForAppTimerElapse and USS_startLowPowerUltrasonicCapture respectively.


    Regards,
    Brandon

**Attention** This is a public forum