IP2022 Data Sheet
www.ubicom.com
15
The INTSPD register holds bits that control the CPU
speed and clock source during interrupt service routines
(it is copied to the . It has the same format as the
SPDREG register.
The XCFG register holds additional control and status
bits, as shown in Figure 3-5.
GIEglobal interrupt enable bit. When set, interrupts
are enabled. When clear, interrupts are disabled. For
more information about interrupt processing, see
Section 3.7.
FWPflash write protect bit. When clear, writes to
flash memory are ignored. For more information
about programming the flash memory, see Section
4.7.
RTEOSreal-time timer oversampling enable bit.
When set, oversampling is used. For more informa-
tion, see Section 5.3.
RTOSC_ENRTCLK oscillator enable bit. When
clear, the RTCLK oscillator is operational. When set,
the RTCLK oscillator is turned off.
INT_ENint instruction interrupt enable bit. When
set, int instructions cause interrupts. When clear,
int instructions only increment the PC, like nop.
FBUSYread-only flash memory busy bit. Set while
fetching instructions out of flash memory or while
busy processing an iread, ireadi, fwrite,
fread or ferase instruction, otherwise clear. For
more information about programming the flash mem-
ory, see Section 4.7.
The PCH and PCL register pair form a 16-bit program
counter. The PCH register is read-only. The PCL register
can be written, but this is not recommended or supported.
The PCL register can be used to implement a lookup
table, by moving a variable to the w register, then
executing an add PCL,w instruction. If w=01 when the
add occurs, the the instruction after the add will be
skipped; if w=02, two instructions will be skipped, etc.
The IPCH and IPCL register pair specifies the return
address when a reti instruction is executed.
The INTVECH and INTVECL register pair specifies the
interrupt vector. It has a default value of 0 following reset.
On a return from interrupt, an option of the reti
instruction allows software to save the incremented value
of the program counter in the INTVECH and INTVECL
registers.
The IPH and IPL register pair is used as a pointer for
indirect addressing. For more information about indirect
addressing, see Section 4.1.3.
The DPH and DPL register pair and the SPH and SPL
register pair are used as pointer registers for indirect-with-
offset addressing. For more information about indirect-
with-offset addressing, see Section 4.1.4. The SPH and
SPL registers are automatically post-decremented when
storing to memory with a push instruction, and they are
automatically pre-incremented when reading from
memory with a pop instruction.
The ADDRSEL register holds an index to one of eight 24-
bit pointers used to address program memory. The current
program memory/external memory 24-bit address
selected by the ADDRSEL register is accessable in the
ADDRX (bits 23:16), ADDRH (bits 15:8), and ADDRL (bits
7:0) registers. The upper 5-bits of the ADDRSEL register
are unused. All 8 banks of 24-bits are initialized to
0x000000 upon reset.
Program memory is always read or written as 16-bit
words. On reads, the data from program memory is
loaded into the DATAH and DATAL register pair. On
writes, the contents of the DATAH and DATAL register pair
are loaded into the program memory.
1011
32
3.75 MHz
1100
48
2.5 MHz
1101
64
1.875 MHz
1110
128
0.9375 MHz
1111
Clock Off
0 MHz
7
6
5
4
3
2
1
0
GIE FWP RTEOS RTOSC_EN INT_EN Rsvd FBUSY
Figure 3-5 XCFG Register
Table 3-2 System Clock Divisor (continued)
CDIV3:0
System
Clock
Divisor
CPU Core Frequency
(if System Clock
is 120 MHz)