System Control and
Reset
Resetting the AVR
During reset, all I/O Registers are set to their initial values, and the program starts exe-
cution from the Reset Vector. For the ATmega168, the instruction placed at the Reset
Vector must be a JMP – Absolute Jump – instruction to the reset handling routine. For
the ATmega48 and ATmega88, the instruction placed at the Reset Vector must be an
RJMP – Relative 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
(ATmega88/168 only). The circuit diagram in Figure 16 shows the reset logic. Table 20
defines the electrical parameters of the reset circuitry.
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 “Clock
Sources” on page 25.
Reset Sources
The ATmega48/88/168 has four sources of reset:
•
•
•
•
Power-on Reset. The MCU is reset when the supply voltage is below the Power-on
Reset threshold (VPOT).
External Reset. The MCU is reset when a low level is present on the RESET pin for
longer than the minimum pulse length.
Watchdog System Reset. The MCU is reset when the Watchdog Timer period
expires and the Watchdog System Reset mode is enabled.
Brown-out Reset. The MCU is reset when the supply voltage VCC is below the
Brown-out Reset threshold (VBOT) and the Brown-out Detector is enabled.
40
ATmega48/88/168
2545D–AVR–07/04