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.

LP-MSPM0L1306: Dynamic changes to sleep/stop/standby policy for ADC and timer usage

Part Number: LP-MSPM0L1306

I am thinking about a capacitor-operated time delay relay and want to minimize the power consumption by waking up every second, take an ADC reading or two, and going back to processor at "standby" (only timer clock is operating).  Does it make sense to set a different sleep policy (just stop, not the deeper standby) when the timer interrupt has done its thing but is still awaiting the ADC completion?

That is,

DL_SYSCTL_setPowerPolicy(STANDBY0);
WFE();

and

DL_SYSCtl_setPowerPolicy(STOP0);
WFE();

(depending on circumstances, like if (WaitingForADC)...and being very careful 
about race conditions and critical sections.)

or does the embedded example work, where the timer publishes an event that causes the ADC to convert and this actually works from a "STANDBY" mode where the ADC clock isn't operating.

or does it make more sense to do a little housekeeping in the timer interrupt at full power and wait therein for the ADC interrupt to finish.

My interest here is *reasonable* power efficiency, under 100uA or so.in the average sense.

  • Hi Eric,

    1.If the 100uA is limited, standby mode would be a good choice @only timer clock is operating . But when MCU is still awaiting the ADC completion, standby0 and stop0 can not support SYSOSC(32MHz) to run, you need to considerate it.

    2.if the timer publishes an event that causes the ADC to convert, which means there will not be interrupt, and MCU will not in run mode, but still in low power mode. However, all in all, the clock speed plays an important role in choosing the mode of MCU.

    3.From my side, use timer event to enable ADC is a great choice here

  • Hi Eric,

    Sorry for wrong information,

    ADC cannot be awaken through EVENT. You can use standby0 while TIMER work, and interrupt ADC to convert. As the ADC finishes, then change again into standby mode.

    B.R.

    Zoey