13
7679H–CAN–08/08
AT90CAN32/64/128
Figure 3-3.
The X-, Y-, and Z-registers
In the different addressing modes these address registers have functions as fixed displacement,
automatic increment, and automatic decrement (see the instruction set reference for details).
3.5.2
Extended Z-pointer Register for ELPM/SPM – RAMPZ
• Bits 7..1 – Res: Reserved Bits
These bits are reserved for future use and will always read as zero. For compatibility with future
devices, be sure to write to write them to zero.
• Bit 0 – RAMPZ0: Extended RAM Page Z-pointer
The RAMPZ Register is normally used to select which 64K RAM Page is accessed by the Z-
pointer. As the AT90CAN32/64/128 does not support more than 64K of SRAM memory, this reg-
ister is used only to select which page in the program memory is accessed when the ELPM/SPM
instruction is used. The different settings of the RAMPZ0 bit have the following effects:
– AT90CAN32 and AT90CAN64: RAMPZ0 exists as register bit but it is not used for
program memory addressing.
– AT90CAN128: RAMPZ0 exists as register bit and it is used for program memory
addressing.
Figure 3-4.
The Z-pointer used by ELPM and SPM
Note:
LPM (different of ELPM) is never affected by the RAMPZ setting.
15
XH
XL
0
X-register
7
0
7
0
R27 (0x1B)
R26 (0x1A)
15
YH
YL
0
Y-register
7
0
7
0
R29 (0x1D)
R28 (0x1C)
15
ZH
ZL
0
Z-register
7
0
7
0
R31 (0x1F)
R30 (0x1E)
Bit
7
6
5
4
3
2
1
0
–
–
–
–
–
–
–
RAMPZ0
RAMPZ
Read/Write
R
R
R
R
R
R
R
R/W
Initial Value
0
0
0
0
0
0
0
0
RAMPZ0 = 0: Program memory address 0x0000 - 0x7FFF (lower 64K bytes) is accessed by
ELPM/SPM
RAMPZ0 = 1: Program memory address 0x8000 - 0xFFFF (higher 64K bytes) is accessed by
ELPM/SPM
RAMPZ
ZH
ZL
7
Bit (Individually)
0
7
0
7
0
23
Bit (Z-pointer)
16
15
8
7
0