8. AVR memories
This section describes the different memories in the Atmel
ATmega164A/164PA/324A/324PA/644A/644PA/1284/1284P. The AVR architecture has two main memory
spaces, the Data Memory and the Program Memory space. In addition, the
ATmega164A/164PA/324A/324PA/644A/644PA/1284/1284P features an EEPROM Memory for data storage.
All three memory spaces are linear and regular.
8.2 In-System Reprogrammable Flash Program Memory
The ATmega164A/164PA/324A/324PA/644A/644PA/1284/1284P contains 16/32/64/128Kbytes On-chip In-
System Reprogrammable Flash memory for program storage. Since all AVR instructions are 16 or 32 bits wide,
the Flash is organized as 32/64 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
ATmega164A/164PA/324A/324PA/644A/644PA/1284/1284P Program Counter (PC) is 15/16 bits wide, thus
addressing the 32/64K program memory locations. The operation of Boot Program section and associated Boot
Lock bits for software protection are described in detail in ”Memory programming” on page 287. ”Memory
programming” on page 287 contains 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 Execution Timing” on page 15.