English
Language : 

ATAR080 Datasheet, PDF (4/68 Pages) ATMEL Corporation – Low-current Microcontroller for Wireless Communication
Components of MARC4
Core
Figure 4. ROM Map
7FFh
ROM
(2 K × 8 bit)
1FFh
000h
Zero page
1F8h
1F0h
1E8h
1E0h
020h
018h
010h
008h
000h
Zero
page
1E0h
1C0h
180h
140h
100h
0C0h
080h
040h
008h
000h
INT7
INT6
INT5
INT4
INT3
INT2
INT1
INT0
$RESET
$AUTOSLEEP
ROM
RAM
Expression Stack
Return Stack
The core contains ROM, RAM, ALU, program counter, RAM address registers, instruc-
tion decoder and interrupt controller. The following sections describe each functional
block in more detail.
The program memory (ROM) is mask programmed with the customer application pro-
gram during fabrication of the microcontroller. The 2 Kbyte ROM size is addressed by a
12-bit wide program counter. An additional 1-Kbyte of ROM exists, which is reserved for
quality control self-test software The lowest user ROM address segment is taken up by
a 512-byte Zero page which contains predefined start addresses for interrupt service
routines and special subroutines accessible with single byte instructions (SCALL).
The corresponding memory map is shown in Figure 4. Look-up tables of constants can
also be held in ROM and are accessed via the MARC4's built-in table instruction.
The ATAR080 contains 256 × 4-bit wide static random access memory (RAM), which is
used for the expression stack. The return stack and data memory are used for variables
and arrays. The RAM is addressed by any of the four 8-bit wide RAM address registers
SP, RP, X and Y.
The 4-bit wide expression stack is addressed with the expression stack pointer (SP). All
arithmetic, I/O and memory reference operations take their operands, and return their
results to the expression stack. The MARC4 performs the operations with the top of
stack items (TOS and TOS-1). The TOS register contains the top element of the expres-
sion stack and works in the same way as an accumulator. This stack is also used for
passing parameters between subroutines and as a scratch pad area for temporary stor-
age of data.
The 12-bit wide return stack is addressed by the return stack pointer (RP). It is used for
storing return addresses of subroutines, interrupt routines and for keeping loop index
counts. The return stack can also be used as a temporary storage area.
The MARC4 instruction set supports the exchange of data between the top elements of
the expression stack and the return stack. The two stacks within the RAM have a user
definable location and maximum depth.
4 ATAR080
4675D–4BMCU–12/04