Atmel SAM4S-XPLD Atmel ATSAM4S-XPLD ATSAM4S-XPLD Hoja De Datos

Los códigos de productos
ATSAM4S-XPLD
Descargar
Página de 1125
 78
SAM4S [DATASHEET]
11100E–ATARM–24-Jul-13
12.5
Power Management
The Cortex-M4 processor
 
sleep modes reduce the power consumption:
Sleep mode stops the processor clock
Deep sleep mode stops the system clock and switches off the PLL and flash memory.
This section describes the mechanisms for entering sleep mode, and the conditions for waking up from sleep mode.
12.5.1 Entering Sleep Mode
This section describes the mechanisms software can use to put the processor into sleep mode.
The system can generate spurious wakeup events, for example a debug operation wakes up the processor. Therefore,
the software must be able to put the processor back into sleep mode after such an event. A program might have an idle
loop to put the processor back to sleep mode. 
12.5.1.1 Wait for Interrupt
The wait for interrupt instruction, WFI, causes immediate entry to sleep mode. When the processor executes a WFI
instruction it stops executing instructions and enters sleep mode. See 
 for more information.
12.5.1.2 Sleep-on-exit
If the SLEEPONEXIT bit of the SCR is set to 1 when the processor completes the execution of an exception handler, it
returns to Thread mode and immediately enters sleep mode. Use this mechanism in applications that only require the
processor to run when an exception occurs.
12.5.2 Wakeup from Sleep Mode
The conditions for the processor to wake up depend on the mechanism that cause it to enter sleep mode.
12.5.2.1 Wakeup from WFI or Sleep-on-exit
Normally, the processor wakes up only when it detects an exception with sufficient priority to cause exception entry.
Some embedded systems might have to execute system restore tasks after the processor wakes up, and before it
executes an interrupt handler. To achieve this, set the PRIMASK bit to 1 and the FAULTMASK bit to 0. If an interrupt
arrives that is enabled and has a higher priority than the current exception priority, the processor wakes up but does not
execute the interrupt handler until the processor sets PRIMASK to zero. For more information about PRIMASK and
FAULTMASK, see 
.
12.5.3 Power Management Programming Hints
ISO/IEC C cannot directly generate the WFI and WFE instructions. The CMSIS provides the following functions for these
instructions:
void __WFI(void) // Wait for Interrupt