10.3
Functional Description
10.3.1
Initialization
To put the device into a sleep mode, follow these steps:
•
Configure and enable the interrupts that shall be able to wake the device from sleep. Also, enable
global interrupts.
WARNING
•
Select the sleep mode to be entered and enable the Sleep Controller by writing to the Sleep Mode
bits (SMODE) and the Enable bit (SEN) in the Control A register (SLPCTRL.CTRLA). A SLEEP
instruction must be run to make the device actually go to sleep.
10.3.2
Operation
10.3.2.1 Sleep Modes
In addition to Active mode, there are three different sleep modes, with decreasing power consumption
and functionality.
Idle
The CPU stops executing code, no peripherals are disabled.
All interrupt sources can wake the device.
Standby
The user can configure peripherals to be enabled or not, using the respective RUNSTBY
bit. This means that the power consumption is highly dependent on what functionality is
enabled, and thus may vary between the Idle and Power-Down levels.
SleepWalking is available for the ADC module.
Power-
BOD, WDT, and PIT (a component of the RTC) are active.
Down
The only wake-up sources are the pin change interrupt, PIT, VLM, TWI address match and
CCL.
Table 10-1. Sleep Mode Activity Overview
Group
Active Clock
Domain
©
2018 Microchip Technology Inc.
If there are no interrupts enabled when going to sleep, the device cannot wake up again.
Only a Reset will allow the device to continue operation.
Peripheral
Clock
CPU
CLK_CPU
Peripherals
CLK_PER
RTC
CLK_RTC
CCL
CLK_PER
ADCn
CLK_PER
TCBn
CLK_PER
PIT (RTC)
CLK_RTC
BOD (VLM)
CLK_BOD
WDT
CLK_WDT
Active in Sleep Mode
Idle
X
X
(2)
X
X
X
X
X
X
Datasheet Preliminary
®
megaAVR
0-Series
Sleep Controller (SLPCTRL)
Standby
Power-Down
(1)
X
(1)
X
(1)
X
(1)
X
X
X
X
DS40002015A-page 94
X
X
X
Need help?
Do you have a question about the megaAVR 0 Series and is the answer not in the manual?