AVR ATmega16
Memories
This section describes the different memories in the ATmega16. The AVR architecture
has two main memory spaces, the Data Memory and the Program Memory space. In
addition, the ATmega16 features an EEPROM Memory for data storage. All three mem-
ory spaces are linear and regular.
In-System
Reprogrammable Flash
Program Memory
The ATmega16 contains 16K bytes On-chip In-System Reprogrammable Flash memory
for program storage. Since all AVR instructions are 16 or 32 bits wide, the Flash is orga-
nized as 8K x 16. For software security, the Flash Program memory space is divided
into two sections, Boot Program section and Application Program section.
The Flash memory has an endurance of at least 10,000 write/erase cycles. The
ATmega16 Program Counter (PC) is 13 bits wide, thus addressing the 8K program
memory locations. The operation of Boot Program section and associated Boot Lock
bits for software protection are described in detail in “Boot Loader Support – Read-
While-Write Self-Programming” on page 241. “Memory Programming” on page 254 con-
tains a detailed description on Flash data serial downloading using the SPI pins or the
JTAG interface.
Constant tables can be allocated within the entire program memory address space (see
the LPM – Load Program Memory Instruction Description).
Timing diagrams for instruction fetch and execution are presented in “Instruction Execu-
tion Timing” on page 11.
Figure 8. Program Memory Map
$0000
Application Flash Section
Boot Flash Section
$1FFF
14
ATmega16(L)
2466E–AVR–10/02