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.

F28335 Low Power



All:

I am working with the F28335, and trying to use the low power modes - I can only use mode 0 of the IDLE mode, and also wanted to use the Flash low-power mode. To do that, I have added the following code:

#pragma CODE_SECTION(FlashSleep, "ramfuncs");

STATIC void FlashSleep(void)

{

// Put the Flash to sleep

FlashRegs.FPWR.bit.PWR = FLASH_SLEEP;

EALLOW;

if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 1) // Only enter Idle mode when PLL is not in limp mode.

{

     SysCtrlRegs.LPMCR0.bit.LPM = 0x0000;  // LPM mode = Idle

}

EDIS;

asm(" IDLE"); // Device waits in IDLE until XINT1 interrupts

}

 

However, I am not seeing an appreciable difference yet - can anyone spot something wrong with the above code snippet?

 

  • Todd,

    I believe the FPWR register is EALLOW protected.  Try moving it down one line and see what happens.

    Kris

  • It looks like the biggest item for lowering power is slowing down the clock.

    With the flash example of F335 on the Experimenters board,  I was able to

                                                                                    measure 0.15 a @ 5 volts & 150 MIPs.

                                                                                                        0.09 a @ 5 volts & 75 MIPs.

                                                                                                        0.08 a @ 5 volts & 60 MIPs.

                                                                                                        0.05 a @ 5 volts & 30 MIPs.

    I tried to enable IDLE, and go into flash sleep mode, but I am still not able to do any better than 0.05 a.

    I cannot go into HALT mode, or STANDBY (IDLE) on our setup.

     

  • Todd,

    Did you try moving the flash sleep command after the EALLOW?  Just wasn't sure if you saw that.  This should be significant reduction.  Which power rail are you trying to reduce?  

    Kris

  • Kris:

    I will look into it more, but I did not see any significant reduction in power when moving the flash sleep after the EALLOW. Also, I started getting some "illegal instruction" errors when I did that. In our application, that would generate a reset.

     

  • Todd,

    I would suggest further investigating those illegal instruction errors when you move the flash power command.  With this instruction before the EALLOW, it is not having any effect (watch it in the Watch Window while stepping through it).  So in order to achieve reduction in flash power consumption, we'll need to figure out what is generating those errors.

    See pg 17 of http://www.ti.com/lit/ug/sprufb0d/sprufb0d.pdf for guidelines before/after setting the FPWR state. 

    Are you trying to lower IDD, IDDIO, or IDDA?

    Kris