AI Interactive Datasheet ATmega640
AVR · megaAVR

ATmega640 memory map

Where everything sits, at its exact address. The ATmega640 keeps program and data apart (Harvard): flash is read in words by the CPU, while registers, I/O and SRAM share one data address space.

Program memory

Flash, with the boot section at its top. Addresses in bytes.

Boot section0xE000 – 0xFFFF8 KB
Flash0x0000 – 0xFFFF64 KB

Data memory

Working registers, I/O registers and SRAM in one space.

External RAM0x2200 – 0xFFFF55.5 KB
SRAM0x0200 – 0x21FF8 KB
I/O registers0x0020 – 0x01FF480 B
Working registers R0–R310x0000 – 0x001F32 B

EEPROM

Non-volatile data, kept without power.

EEPROM0x0000 – 0x0FFF4 KB

Every segment

SegmentSpaceStartEndSizePage
Working registers R0–R31data0x00000x001F32 B
I/O registersdata0x00200x01FF480 B
SRAMdata0x02000x21FF8 KB
External RAMdata0x22000xFFFF55.5 KB
EEPROMeeprom0x00000x0FFF4 KB8 B
FUSESfuses0x00000x00023 B
LOCKBITSlockbits0x00000x00001 B
OSCCALosccal0x00000x00001 B
Flashprog0x00000xFFFF64 KB256 B
Boot sectionprog0xE0000xFFFF8 KB256 B
Boot sectionprog0xF0000xFFFF4 KB256 B
Boot sectionprog0xF8000xFFFF2 KB256 B
Boot sectionprog0xFC000xFFFF1 KB256 B
SIGNATURESsignatures0x00000x00023 B