TI E2E Community
C2000 32-bit Microcontrollers Forum
F28335 Low Power
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;
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
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?
I believe the FPWR register is EALLOW protected. Try moving it down one line and see what happens.
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.
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?
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.
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?
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.