V. Adressierbarer Speicher

Aufgrund der Harvard-Architektur der AVR-Familie existieren getrennte Adressräume für Programm- und Datenspeicher.
Der Programmspeicher ist als 16-Bit breiter Flashmemory konzipiert und hat beim AT90S1200 einen Umfang von 1 KByte.
Er kann sowohl parallel (PB0 bis PB7) als auch seriell über die  SPI - Schnittstelle (PB5 bis PB7) In-Circuit programmiert werden (1000 Lösch -/ Schreib-Zyklen). Der Programmspeicher wird linear von der Adresse $00000 aufwärts adressiert.

Der Adressraum des Datenspeichers (RAM) ist in mehrere Blöcke gegliedert:
Die Adressen $00 bis $1F sind für das Fileregister, bestehend aus 32 8-Bit-Arbeitsregistern reserviert.
Von Adresse $20 bis und mit $5F reihen sich die ins RAM gespiegelten I/O-Register (von denen der AT90S1200 aber lediglich deren 15 besitzt). Zur Adresse des jeweiligen I/O-Registers muss der Wert $20 addiert werden.

 

I/O MEMORY des AT90S1200

 

Das interne RAM schliesst sich ab der Adresse $60 an. Seine Grösse beträgt max. 4kByte und ist vom verwendeten Controllertyp abhängig.

Der max. adressierbare Datenspeicher umfasst 64KByte, dh. es können somit bis 60 kByte externer Speicher verwendet werden.

Ebenfalls in einem getrennten Adressraum befindet sich das interne EEPROM, das beim AT90S1200 64 Byte umfasst. Es kann byteweise über dazu reservierte Speicherbereiche im Adressraum der I/O-Register beschrieben werden.

 

EEPROM Adress-Register (high)

EEARH

$1F ($3F)
EEPROM Adress-Register (low)

EEARL

$1E ($3E)
EEPROM Data-Register

EEDR

$1D ($3D)
EEPROM Control-Register

EECR

$1C ($3C)