ARM Sleep Mode Management
193
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Power Management
9.6
ARM Sleep Mode Management
9.6.1 ARM Wait-For-Interrupt Sleep Mode
The ARM module can be put into a low-power state using a special sleep mode called wait-for-interrupt
(WFI). When the wait-for-interrupt mode is enabled, all internal clocks within the ARM9 module are shut
off, the core is completely inactive and only resumes operation after receiving an interrupt. This is a
feature for dynamic power management of the ARM processor itself, it does not impact the static power.
NOTE:
To enable the WFI mode, the ARM needs to be in supervisor mode.
You can enable the WFI mode via the CP15 register #7 using the following instruction:
•
MCR p15, #0, <Rd>, c7, c0, #4
Once the ARM module transitions into the WFI mode, it will remain in this state until an interrupt request
(IRQ/FIQ) occurs.
The following sequence exemplifies how to enter the WFI mode:
•
Enable any interrupt (for example, an external interrupt) that you plan to use as the wake-up interrupt
to exit from the WFI mode.
•
Enable the WFI mode using the following CP15 instruction:
–
MCR p15, #0, r3, c7, c0, #4
The following sequence describes the procedure to wake-up from the WFI mode:
•
To wake-up from the WFI mode, trigger any enabled interrupt (for example, an external interrupt).
•
The ARM’s PC jumps to the IRQ/FIQ vector and you must handle the interrupt in an interrupt service
routine (ISR).
Exit the ISR and continue normal program execution starting from the instruction immediately following the
instruction that enabled the WFI mode.
NOTE:
The ARM interrupt controller (AINTC) and the module sourcing the wake-up interrupt (for
example, GPIO or watchdog timer) must not be disabled, or the device will never wake up.
For more information on this sleep mode, see the ARM926EJ-S Technical Reference Manual
(TRM), downloadable from
http://infocenter.arm.com/help/index.jsp
.