4.2
SRAM Data Memory
4.2.1
SRAM Data Access Times
7647H–AVR–03/12
Figure 4-2
shows how the ATmega16/32/64/M1/C1 SRAM Memory is organized.
The ATmega16/32/64/M1/C1 is a complex microcontroller with more peripheral units than can
be supported within the 64 locations 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 lower 2304 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 1024/2048/4096 locations address the internal data SRAM.
The five different addressing modes for the data memory cover: Direct, Indirect with Displace-
ment, Indirect, Indirect 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.
When using register indirect addressing modes with automatic pre-decrement and post-incre-
ment, the address registers X, Y, and Z are decremented or incremented.
The 32 general purpose working registers, 64 I/O Registers, 160 Extended I/O Registers, and
the 1024/2048/4096 bytes of internal data SRAM in the ATmega16/32/64/M1/C1 are all accessi-
ble through all these addressing modes. The Register File is described in
Register File" on page
15.
Figure 4-2.
Data Memory Map for 1024/2048/4096 Internal SRAM
This section describes the general access timing concepts for internal memory access.
The internal data SRAM access is performed in two clk
page
22.
Atmel ATmega16/32/64/M1/C1
Data Memory
0x0000 - 0x001F
32 Registers
0x0020 - 0x005F
64 I/O Registers
160 Ext I/O Reg.
0x0060 - 0x00FF
0x0100
Internal SRAM
(1024x8)
(2048x8)
0x04FF/0x08FF/0x10FF
(4096x8)
"General Purpose
cycles as described in
CPU
Figure 4-3 on
21
Need help?
Do you have a question about the ATmega32M1 and is the answer not in the manual?
Questions and answers