7.2 Sleep Mode
Sleep mode is entered by executing the SLEEP
instruction, while the Idle Enable (IDLEN) bit of the CPUDOZE register is clear (IDLEN = 0
).
Upon entering Sleep mode, the following conditions exist:
- WDT will be cleared but keeps running if enabled for operation during Sleep
- The PD bit of the STATUS register is cleared
- The TO bit of the STATUS register is set
- The CPU clock is disabled
- LFINTOSC, SOSC, HFINTOSC and ADCRC are unaffected and peripherals using them may continue operation in Sleep.
- I/O ports maintain the status they had before Sleep was executed (driving high, low, or high-impedance)
- Resets other than WDT are not affected by Sleep mode
Refer to individual chapters for more details on peripheral operation during Sleep.
To minimize current consumption, the following conditions should be considered:
- I/O pins should not be floating
- External circuitry sinking current from I/O pins
- Internal circuitry sourcing current from I/O pins
- Current draw from pins with internal weak pull-ups
- Modules using any oscillator
I/O pins that are high-impedance inputs should be pulled to VDD or VSS externally to avoid switching currents caused by floating inputs.
Examples of internal circuitry that might be sourcing current include modules such as the DAC and FVR modules.