AT90S1200
Relative Program Addressing, RJMP and RCALL
Figure 10. Relative Program Memory Addressing
Program execution continues at address PC + k + 1. The relative address k is -2048 to 2047.
Subroutine and Interrupt Hardware Stack
The AT90S1200 uses a 3 level deep hardware stack for subroutines and interrupts. The hardware stack is 9 bit wide and
stores the Program Counter - PC - return address while subroutines and interrupts are executed.
RCALL instructions and interrupts push the PC return address onto stack level 0, and the data in the other stack levels
1-2 are pushed one level deeper in the stack. When a RET or RETI instruction is executed the returning PC is fetched from
stack level 0, and the data in the other stack levels 1-2 are popped one level in the stack.
If more than 3 subsequent subroutine calls or interrupts are executed, the first values written to the stack are overwritten.
EEPROM Data Memory
The AT90S1200 contains 64 bytes of data EEPROM memory. It is organized as a separate data space, in which single
bytes can be read and written. The EEPROM has an endurance of at least 100,000 write/erase cycles. The access
between the EEPROM and the CPU is described on page 23 specifying the EEPROM address register, the EEPROM data
register, and the EEPROM control register. For the SPI data downloading, see page 42 for a detailed description.
Instruction Execution Timing
This section describes the general access timing concepts for instruction execution and internal memory access.
The AVR CPU is driven by the System Clock Ø, directly generated from the external clock crystal for the chip. No internal
clock division is used.
Figure 11 shows the parallel instruction fetches and instruction executions enabled by the Harvard architecture and the
fast-access register file concept. This is the basic pipelining concept to obtain up to 1 MIPS per MHz with the corresponding
unique results for functions per cost, functions per clocks, and functions per power-unit.
9
Need help?
Do you have a question about the AT90S1200 and is the answer not in the manual?