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.

SM470R1B1M Low Power Modes

Hi,


I am trying to get the SM470R1B1M into a low power mode, but I cannot seem to get it working.  I am following SPNA107 as my example, but the part never goes into a low power state.  I have a port pin that toggles in my main loop, and it keeps toggling even after executing the code to put the part into its low power mode.  So, I know it's still executing code.  I have also watched on the debugger just after trying to set the low power bits in the CLKCNTL register, and they don't ever show to be set.  It's almost like I don't have access to them.  Any thoughts on where I might be going wrong?


Thanks, Shawn.

I run the following code from RAM trying to go into low power mode:

    volatile unsigned long dummy;
    
    GCR |= FLCONFIG;
    FMMAC1 = PSLEEP_MAX;                                                                                                    // pump sleep to standby time
    FMMAC2 = BANK0_ENA + PMPPWR_SLEEP + PSTDBY_MAX;                                   // bank0
    FMBAC1 = (BNKPWR_SLEEP + BSTDBY_MAX) & ~0x00000003;                               // active
    FMBAC2 = PIPELINE_MODE + BSLEEP_MAX;                                                                // 0 wait states
    FMMAC2 = BANK1_ENA + PMPPWR_SLEEP + PSTDBY_MAX;                                   // bank1
    FMBAC1 = (BNKPWR_SLEEP + BSTDBY_MAX) & ~0x00000003;                               // active
    FMBAC2 = PIPELINE_MODE + BSLEEP_MAX;                                                                // 0 wait states
    FMREGOPT = ENPIPE;                                                                                                         // ENABLE PIPELINE MODE

    dummy = 2000000;                                     // delay to allow grace period timers to expire
    while(dummy){dummy--;}
    
    GCR |= FLCONFIG;

    CLKCNTL |= LPM_HA;                                // Go into halt mode (This does not appear to do anything)
    dummy = CLKCNTL;