16
ATmega64A [DATASHEET]
8160D–AVR–02/2013
8.2
SRAM Data Memory
The ATmega64A supports two different configurations for the SRAM data memory as listed in
Table 8-1.The ATmega64A is a complex microcontroller with more peripheral units than can be supported within the 64 loca-
tions reserved in the Opcode for the IN and OUT instructions. For the Extended I/O space from 0x60 - 0xFF in
SRAM, only the ST/STS/STD and LD/LDS/LDD instructions can be used. The Extended I/O space does not exist
when the ATmega64A is in the ATmega103 compatibility mode.
The first 4,352 data memory locations address both the Register File, the I/O memory, Extended I/O memory, and
the internal data SRAM. The first 32 locations address the Register File, the next 64 location the standard I/O
memory, then 160 locations of Extended I/O memory, and the next 4,096 locations address the internal data
SRAM.
In ATmega103 compatibility mode, the first 4,096 data memory locations address both the Register File, the I/O
memory and the internal data SRAM. The first 32 locations address the Register File, the next 64 location the stan-
dard I/O memory, and the next 4,000 locations address the internal data SRAM.
An optional external data SRAM can be used with the ATmega64A. This SRAM will occupy an area in the remain-
ing address locations in the 64K address space. This area starts at the address following the internal SRAM. The
Register File, I/O, Extended I/O and internal SRAM occupy the lowest 4,352 bytes in Normal mode, and the lowest
4,096 bytes in the ATmega103 compatibility mode (Extended I/O not present), so when using 64 Kbyte (65,536
bytes) of External memory, 61,184 bytes of External memory are available in Normal mode, and 61,440 bytes in
of the external memory map.
When the addresses accessing the SRAM memory space exceeds the internal data memory locations, the exter-
nal data SRAM is accessed using the same instructions as for the internal data memory access. When the internal
data memories are accessed, the read and write strobe pins (PG0 and PG1) are inactive during the whole access
cycle. External SRAM operation is enabled by setting the SRE bit in the MCUCR Register.
Accessing external SRAM takes one additional clock cycle per byte compared to access of the internal SRAM.
This means that the commands LD, ST, LDS, STS, LDD, STD, PUSH, and POP take one additional clock cycle. If
the Stack is placed in external SRAM, interrupts, subroutine calls and returns take three clock cycles extra
because the 2-byte Program Counter is pushed and popped, and external memory access does not take advan-
tage of the internal pipeline memory access. When external SRAM interface is used with wait state, one-byte
external access takes two, three, or four additional clock cycles for one, two, and three wait states respectively.
Interrupt, subroutine calls and returns will need five, seven, or nine clock cycles more than specified in the AVR
Instruction Set manual for one, two, and three waitstates.
The five different addressing modes for the data memory cover: Direct, Indirect with Displacement, Indirect, Indi-
rect with Pre-decrement, and Indirect with Post-increment. In the Register File, registers R26 to R31 feature the
indirect addressing pointer registers.
The direct addressing reaches the entire data space.
The Indirect with Displacement mode reaches 63 address locations from the base address given by the Y- or Z-
register.
Table 8-1.
Memory Configurations
Configuration
Internal SRAM
Data Memory
External SRAM
Data Memory
Normal mode
4096
up to 64K
ATmega103 compatibility mode
4000
up to 64K