The following table shows the different sleep modes, BOD disable ability, and their wake-up sources.
Sleep Mode | Active Clock Domains | Oscillators | Wake-Up Sources | Software BOD Disable | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
clkCPU | clkFLASH | clkIO | clkADC | clkASY | clkPTC | Main Clock Source Enabled | Timer Oscillator Enabled | INT and PCINT | TWI Address Match | Timer2 | SPM/EEPROM Ready | ADC | WDT | USART(4) | Other I/O | ||
Idle | Yes | Yes | Yes | Yes | Yes | Yes(2) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |||
ADC Noise Reduction | Yes | Yes | Yes | Yes | Yes(2) | Yes(3) | Yes | Yes(2) | Yes | Yes | Yes | Yes | |||||
Power-Down | Yes(3) | Yes | Yes | Yes | Yes | ||||||||||||
Power-Save | Yes | Yes | Yes(5) | Yes(2) | Yes(3) | Yes | Yes | Yes | Yes | Yes | |||||||
Standby(1) | Yes | Yes(3) | Yes | Yes | Yes | Yes | |||||||||||
Extended Standby | Yes(2) | Yes | Yes | Yes(2) | Yes(3) | Yes | Yes | Yes | Yes | Yes |
To enter any of the six sleep modes, the sleep enable bit in the Sleep Mode Control Register (SMCR.SE) must be written to '1' and a SLEEP instruction must be executed. Sleep Mode Select bits (SMCR.SM[2:0]) select which sleep mode (Idle, ADC Noise Reduction, Power-Down, Power-Save, Standby, or Extended Standby) will be activated by the SLEEP instruction.
If an enabled interrupt occurs while the MCU is in a Sleep mode, the MCU wakes up. The MCU is then halted for four cycles in addition to the start-up time, executes the interrupt routine, and resumes execution from the instruction following SLEEP. The contents of the register file and SRAM are unaltered when the device wakes up from sleep. If a reset occurs during Sleep mode, the MCU wakes up and executes from the Reset vector.