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.

MSPM0L1303: how to limit current when wake up avoiding default 32MHz running

Part Number: MSPM0L1303

HI everybody 

my application  a  very limited peak  current power supply   (   max<500uA ,  ideally <350uA)   to MCU 

now I normally stay in STOP   then wake up and run 2MHz ( enough for me for mips and UART ) 

issue is  : when waking up    MSPM0 seems to go run default 32MHz     , and I see my supply under heavy stress ...

please how can I solve this ?  

ideally  best is to wake up @2Mhz  directly : can I make it and how ?

otherwise  any workaround ?    

thank you 

BR


Carlo

  • Hi Carlo,

    Yes, coming out of STOP or STANDBY modes the SYSOSC will startup at 32MHz by default.  If you enable the gear-shift mode as described in section 2.3.1.2.1, the clock will start at 32MHz then drop down to 4MHz.

    To enable the gear-shift, you can use this driverlib function as part of initialization:

    DL_SYSCTL_setSYSOSCFreq(DL_SYSCTL_SYSOSC_FREQ_4M);

    Using this driverlib function along with the specific low power policy you can see when the MCU switches from STANDBY to RUN, the SYSOSC is 32MHz for a brief period, then gear shifts down to 4MHz.

    Give this a try and let me know.

  • Hi Dennis ,

    OK thank you very much 

    let s test and give feedbacks

    BR

    Carlo

  • Hi Carlo,

    I did forget to point out an important part.  You won't see much improvement if the task (function) is deterministic versus one that has variable delays (waits or polls for a specific condition to be true).

    What I mean by deterministic is the task repeats the same operations without interruption or delays or conditional jumps.  For example a function that simply adds two numbers.  Each time the task executes it will take the same amount of time.

    On the other hand, If the function is interrupted (by high priority interrupt) or has to wait for a specific bit to clear in a register (polling), the time for this task to run can vary (non-deterministic).

    So why does this matter?  Well it turns out with deterministic tasks running at 4MHz the power consumed will be same/similar compared to running at 32MHz.  You would think how is this possible - a 32MHz clock consumes more power than a 4MHz.. The reason is the task executed with a 4MHz clock will take 8x longer to complete compared to the same task running at 32MHz.  So yes, the operations do take less power at 4MHz, but take longer to complete, so in this case it doesn't matter.

    Now this is a different story in non-deterministic tasks.  If a task polls, or has delays, an the CPU is kept in an active state, then the CPU is burning much more power at 32MHz as compared to 4MHz so you want to keep it 4MHz as long as possible. See the difference?

    So depending on the application (task) you may not see much improvement.

    The attached project I actually used to demonstrate the different power consumption of each MSPM0's power policies, but added it the gear-shift to show how it can or cannot help.

    test_low_power_modes_LP_MSPM0L1306.zip

  • Hi Dennis 

    thank you    for your inputs 

    we are studying . our main issue is to have a very low avergae current so when waking up the 32MHz running is over our power supply - we need to have this time slot very small- ideally zero .    We are investigating and get back to you asap

    BR

    Carlo

  • Hi Dennis , 

    we are doin g tests on evm and share asp . one test we did  is using Master reset  -  here we see when using it something like 1mA  consumption   : is it correct ? what should be done to avoid this ?

    thank you 

    BR

    Carlo

  • Hi Carlo,

    I'm closing this posting since this topic is now handled by the designers through email.