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 765432 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
7Bit (Individually) 0 7 0 7 0
23Bit (Z-pointer) 16 15 8 7 0