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;