Power Management
15-25
Clock Generation and System Reset Management
15.3.1.1
Putting the DSP in IDLE
Perform this procedure to put the DSP in idle mode:
1) Turn off the DSP peripheral clocks.
2) Disable the DSP watchdog timer.
3) Enable the desired DSP interrupts (interrupt mask).
4) Enable the DSP global interrupt (INTM bit), if required.
5) Switch the DSP to shared-access mode (SAM) (it is in SAM, but switch
mode to signal the CPU). In SAM, the public peripheral bus is shared
between the MPU and DSP.
6) Write to ICR registers to disable all clock domains or a particular clock
domain (write a 1 to disable).
7) Switch the DSP back to host-only mode (HOM). In HOM, the public periph-
eral bus is owned exclusively by the MPU (usually because the DSP is in
idle mode or about to go to idle mode).
8) Execute the IDLE instruction.
DSP goes to sleep. If INTM is set, ISR is not executed after wake up; the
interrupt simply wakes the DSP up. The program continues just after the
IDLE instruction; otherwise, ISR is executed.
When the DSP is awakened (by an enabled interrupt or an external event such
as reset), perform the following procedure:
1) Disable the global interrupt (INTM), if required.
2) Switch the DSP to SAM. The public peripheral bus is now shared by the
DSP and MPU.
3) Write a 0 to the respective ICR bit to clear the idle bit.
4) Execute the IDLE instruction.
Note:
To set the DPLL subdomain to idle, switch off the other clock domains (CPU,
DMA cache); otherwise, the DSP peripheral cancels the idle request with a
bus error indicating that the configuration is not allowed.