40
ATmega16M1/32M1/64M1 [DATASHEET]
8209E–AVR–11/2012
10. System control and reset
10.1
Resetting the AVR
During reset, all I/O Registers are set to their initial values, and the program starts execution from the Reset Vec-
tor. The instruction placed at the Reset Vector must be a JMP – Absolute Jump – instruction to the reset handling
routine. If the program never enables an interrupt source, the Interrupt Vectors are not used, and regular program
code can be placed at these locations. This is also the case if the Reset Vector is in the Application section while
the Interrupt Vectors are in the Boot section or vice versa. The circuit diagram in
Figure 10-1 on page 40 shows the
The I/O ports of the AVR are immediately reset to their initial state when a reset source goes active. This does not
require any clock source to be running.
After all reset sources have gone inactive, a delay counter is invoked, stretching the internal reset. This allows the
power to reach a stable level before normal operation starts. The time-out period of the delay counter is defined by
the user through the SUT and CKSEL Fuses. The different selections for the delay period are presented in
“Clock10.2
Reset sources
The Atmel ATmega16M1/32M1/64M1 has four sources of reset:
Power-on Reset. The MCU is reset when the supply voltage is below the Power-on Reset threshold (V
POT)
External Reset. The MCU is reset when a low level is present on the RESET pin for longer than the minimum
pulse length
Watchdog Reset. The MCU is reset when the Watchdog Timer period expires and the Watchdog is enabled
Brown-out Reset. The MCU is reset when the supply voltage V
CC is below the Brown-out Reset threshold (VBOT)
and the Brown-out Detector is enabled
Figure 10-1. Reset logic.
MCU Status
Register (MCUSR)
Brown-out
Reset Circuit
BODLEVEL [2..0]
Delay Counters
CKSEL[3:0]
CK
TIMEOUT
WDRF
BORF
EXTRF
PORF
DATA BUS
Clock
Generator
Spike
Filter
Pull-up Resistor
Watchdog
Oscillator
SUT[1:0]
Power-on Reset
Circuit