INNOVASIC IA188EM-PQF100I-R 8/16-bit microcontroller Datasheet

IA186EM/IA188EM
8/16-Bit Microcontrollers
Data Sheet
Copyright ! 2004
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Contents
Features......................................................................................................................................................4
Description ...............................................................................................................................................5
Bus Interface and Control ................................................................................................................7
Peripheral Control and Registers ..................................................................................................7
Clock and Power Management ....................................................................................................49
System Clocks..........................................................................................................................................49
Power-Save Mode ....................................................................................................................................50
Initialization and Reset.............................................................................................................................50
Reset Configuration Register ...................................................................................................................50
Chip-Selects .............................................................................................................................................50
Chip-Select Timing ..................................................................................................................................50
Ready and Wait-State Programming........................................................................................................50
Chip-Select Overlap .................................................................................................................................51
Upper Memory Chip Select .....................................................................................................................52
Low Memory Chip Select ........................................................................................................................52
Midrange Memory Chip Selects ..............................................................................................................52
Peripheral Chip Selects ............................................................................................................................52
Refresh Control ........................................................................................................................................53
Interrupt Control ......................................................................................................................................53
Interrupt Types .....................................................................................................................................54
Interrupt Table Notes ...........................................................................................................................55
Timer Control...........................................................................................................................................55
Direct Memory Access (DMA)................................................................................................................56
DMA Operation .......................................................................................................................................56
DMA Channel Control Registers .........................................................................................................56
DMA Priority .......................................................................................................................................57
Asynchronous Serial Port ...............................................................................................................58
Synchronous Serial Port ..................................................................................................................58
Programmable I/O (PIO) ................................................................................................................59
Pin Descriptions ..................................................................................................................................60
Instruction Set Summary ................................................................................................................71
Key to Abbreviations Used Instruction Summary Table .........................................................................85
Absolute Maximum Ratings .........................................................................................................90
DC Characteristics Over Commercial Operating Ranges ..............................................90
AC Characteristics Over Commercial Operating Ranges (40 MHz) ...........................................................91
Waveforms .............................................................................................................................................94
Alphabetic Key to Waveform Parameters................................................................................................94
Numeric Key to Waveform Parameters ...................................................................................................95
Read Cycle Timing ..................................................................................................................................97
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Write Cycle ..............................................................................................................................................98
Write Cycle Timing .................................................................................................................................99
PSRAM Read Cycle...............................................................................................................................100
PSRAM Read Cycle Timing..................................................................................................................101
PSRAM Write Cycle..............................................................................................................................102
PSRAM Write Cycle Timing .................................................................................................................103
PSRAM Refresh Cycle ..........................................................................................................................104
PSRAM Refresh Cycle ..........................................................................................................................104
Interrupt Acknowledge Cycle ................................................................................................................105
Interrupt Acknowledge Cycle Timing ...................................................................................................106
Software Halt Cycle ...............................................................................................................................107
Software Halt Cycle Timing ..................................................................................................................107
Clock – Active Mode .............................................................................................................................108
Clock – Power-Save Mode ....................................................................................................................108
Clock Timing .........................................................................................................................................108
srdy – Synchronous Ready.....................................................................................................................109
ardy - Asynchronous Ready ..................................................................................................................109
Peripherals..............................................................................................................................................109
Ready and Peripheral Timing.................................................................................................................109
Reset 1....................................................................................................................................................110
Reset 2....................................................................................................................................................110
Bus Hold Entering..................................................................................................................................111
Bus Hold Leaving ..................................................................................................................................111
Reset and Bus Hold Timing ...................................................................................................................111
Synchronous Serial Interface .................................................................................................................112
Synchronous Serial Interface Timing ....................................................................................................112
IA186EM 100-Pin PQFP ...........................................................................................................................113
IA186EM TQFP 100-Pin ...........................................................................................................................116
IA188EM 100-Pin PQFP ...........................................................................................................................119
IA188EM 100-Pin TQFP ...........................................................................................................................122
Physical Dimensions ..................................................................................................................................125
PQFP 100 ...............................................................................................................................................125
TQFP 100 .............................................................................................................................................127
Ordering Information......................................................................................................................128
Errata .......................................................................................................................................................129
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Please Note
Included in the Ordering Information section on page 128 of this manual are enhanced RoHS-compliant
versions of the IA186 and IA188 family of microcontrollers. However, standard packaged or non RoHScompliant versions of the IA186 and IA188 microcontrollers are still available.
Features
"
"
"
"
"
"
"
Pin-for-pin compatible with AMD# Am186EM/188EM devices
All features are retained, including:
" PLL allowing same crystal/system clock frequency
" 8086/8088 instruction set with additional 186 instruction set extensions
" Programmable interrupt controller
" Two DMA channels
" Three 16-bit timers
" Programmable chip select logic and wait-state generator
" Dedicated watch dog timer
" Two independent asynchronous serial ports (UARTs)
o DMA capability
o Hardware flow control
o 7-, 8-, or 9-bit data capability
" Pulse Width Demodulator feature
" Up to 32 programmable I/O pins (PIO)
Pseudo-static/dynamic RAM controller
Fully static CMOS design
40 MHz operation at industrial operating conditions
+5 VDC power supply
Available packages:
o 100-pin Thin Quad Flat Pack (TQFP)
o 100-pin Plastic Quad Flat Pack (PQFP)
The IA186EM/188EM is a form, fit and function replacement for the original Advanced Micro Devices#
Am186EM/188EM family of microcontrollers. Innovasic produces replacement ICs using its MILESTM,
or Managed IC Lifetime Extension System cloning technology. This technology produces replacement
ICs far more complex than "emulation" while ensuring they are compatible with the original IC.
MILESTM captures the design of a clone so it can be produced even as silicon technology advances.
MILESTM also verifies the clone against the original IC so that even the "undocumented features" are
duplicated.
This data sheet contains preliminary information for the IA186EM/188EM. The complete data sheet
which documents all necessary engineering information about the IA186EM/188EM including functional
and I/O descriptions, electrical characteristics, and applicable timing will be available when the device
nears completion.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Description
The IA186EM/188EM family of microcontrollers replaces obsolete AMD# Am186EM/188EM devices,
allowing customers to retain existing board designs, software compilers/assemblers and emulation tools,
thereby avoiding expensive redesign efforts.
The IA186EM/188EM microcontrollers are an upgrade for the 80C186/188 microcontroller designs, with
integrated peripherals to provide increased functionality and reduce system costs. The Innovasic devices
are created to satisfy requirements of embedded products designed for telecommunications, office
automation and storage and industrial controls.
A block diagram of the IA186EM/188EM microcontroller is depicted in Figure 1. The IA186EM/188EM
microcontroller consists of the following functional blocks, with brief discussions of each afterwards.
"
"
"
"
"
"
"
"
"
"
Bus Interface and Control
Peripheral Control and Registers
Chip Selects and Control
Programmable I/O
Clock and Power Management
Direct Memory Access (DMA)
Interrupt Controller
Timers
Asynchronous Serial Ports
Synchronous Serial Interface.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
Vcc
gnd
s2_n - s0_n
As of Production Version -03
dt/r_n
hlda
srdy
den_n/ds_n
ardy
s6/clkdiv2_n
hold
uzi_n
8/16-BIT Microcontrollers
a[19:0]
Clock and
Power Management
ad[15:0]
ale
den_n
clkouta
clkoutb
Bus Interface & Control
wr_n
wlb_n
whb_n
rd_n
drq0
Direct Memory Access
drq1
res_n
int4
int3/inta1_n/irq
Peripheral Control and
Registers
Interrupt Controller
int1/select_n
int0
nmi
Timers
lcs_n/once0_n
mcs3_n/rfsh_n
ucs_n/once1_n
pcs5_n/a1
pcs6_n/a2
mcs2_n - mcs0_n
int2/inta0_n
tmrin0
tmrout0
tmrin1
tmrout1
Chip Selects and Control
txd0
Asynchronous Serial
Port
pcs3_n - pcs0_n
rxd0
cts0_n/enrx0_n
rts0_n/rtr0_n
sclk
pio[31:0]
Synchronous Serial Port
Programmable I/O
sden0
sden1
sdata
Instruction Decode
and Execution
Figure 1. IA186/88EM Block Diagram
NOTE
See pin descriptions for pins that share other functions with PIO pins.
pwd, int5, int6, rts1_n/rtr1_n, and cts1_n/enrx1_n are multiplexed with int2_n/inta0_n, drq0_n,
drq0_n, pcs3_n, and pcs2_n respectively.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Bus Interface and Control
Bus Interface and Control (BIC) manages all accesses to external memory and external peripherals. These
peripherals may be mapped either in memory space or I/O space. The BIC supports both multiplexed and
non-multiplexed bus operations. Multiplexed address and data are provided on the ad [15:0] bus, while a
non-multiplexed address is provided on the a [19:0] bus. The A bus provides address information for the
entire bus cycle (t1-t4), while the ad bus provides address information only during the first (t1) phase of
the bus cycle. For more details regarding bus cycles, see the AC waveforms at the end of this datasheet.
The IA186EM microcontroller provides two signals that serve as byte write enables: write high byte
(whb_n) and write low byte (wlb_n). Obviously, the IA188EM microcontroller requires only a single
write byte (wb_n) signal to support its 8-bit data bus. whb_n is the logical OR of the bhe_n and wr_n.
wlb_n is the logical OR of ad0 and wr_n. wlb_n is the logical OR of ad0 and wr_n. wb_n is low
whenever a byte is written to the IA188EM data bus ad[7:0].
The byte write enables are driven in conjunction with the non-multiplexed address bus a[19:0] to
facilitate meeting the timing requirements of common SRAMs.
The BIC also provides support for Pseudo-Static RAM (PSRAM) devices. PSRAM is supported in the
lower chip select (lcs_n) area only. In order to support PSRAM, the Chip Selects and Control (CSC) must
be appropriately programmed. For details regarding this operation, see Chip Selects.
Peripheral Control and Registers
The on-chip peripherals in the IA186EM/188EM microcontroller are controlled from a 256-byte block of
internal registers. Although these registers are actually located in the peripherals they control, they are
addressed within a single 256-byte block of I/O spaced and are therefore treated as a functional unit for
the purposes of this document.
A map of these registers is depicted in Table 1.
All write operations performed on the IA188EM should be 8-bit writes, which will still result in 16-bit
data transfers to the Peripheral Control Block (PCB) register even if the named register is an 8-bit register.
Any read performed to the PCB registers should be word reads. Code written with these points in mind
will run correctly on both the IA186EM and IA188EM.
However, unpredictable behavior will result in both the IA186EM and IA188EM processors if unaligned
read and write accesses are performed.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Register Name
Peripheral Control Block Registers
Offset
PCB Relocation Register
Reset Configuration Register
Processor Release Level Register
Power-Save Control Register
FEh
F6h
F4h
F0h
Enable RCU Register
Clock Prescaler Register
Memory Partition Register
E4h
E2h
E0h
DMA Registers
DMA1 Control Register
DMA1 Transfer Count Register
DMA1 Destination Address High Register
DMA1 Destination Address Low Register
DMA1 Source Address High Register
DMA1 Source Address Low Register
DMA0 Control Register
DMA0 Transfer Count Register
DMA0 Destination Address High Register
DMA0 Destination Address Low Register
DMA0 Source Address High Register
DMA0 Source Address Low Register
DAh
D8h
D6h
D4h
D2h
D0h
CAh
C8h
C6h
C4h
C2h
C0h
Chip-Select Registers
pcs_n and mcs_n Auxiliary Register
Mid-Range Memory Chip-Select Register
Peripheral Chip-Select Register
Low-Memory Chip-Select Register
Upper-Memory Chip-Select Register
A8h
A6h
A4h
A2h
A0h
Asynchronous Serial Port Register
Serial Port Baud Rate Divisor Register
Serial Port Receive Register
Serial Port Transmit Register
Serial Port Status Register
Serial Port Control Register
88h
86h
84h
82h
80h
PIO Registers
PIO Data 1 Register
PIO Direction 1 Register
PIO Mode 1 Register
PIO Data 0 Register
PIO Direction 0 Register
PIO Mode 0 Register
7Ah
78h
76h
74h
72h
70h
As of Production Version -03
Register Name
Timer Registers
Offset
Timer 2 Mode & Control Register
Timer 2 Max Count Compare A Register
Timer 2 Count Register
Timer 1 Mode & Control Register
Timer 1 Max Count Compare B Register
Timer 1 Max Count Compare A Register
Timer 1 Count Register
Timer 0 Mode & Control Register
Timer 0 Max Count Compare B Register
Timer 0 Max Count Compare A Register
Timer 0 Count Register
66h
62h
60h
5Eh
5Ch
5Ah
58h
56h
54h
52h
50h
Interrupt Registers
Serial Port 0 Interrupt Control Register
Watchdog Timer Control Register
INT4 Interrupt Control Register
INT3 Interrupt Control Register
INT2 Interrupt Control Register
INT1 Interrupt Control Register
INT0 Interrupt Control Register
DMA1 Interrupt Control Register
DMA0 Interrupt Control Register
Timer Interrupt Control Register
Interrupt Status Register
Interrupt Request Register
In-Service Register
Priority Mask Register
Interrupt Mask Register
Poll Status Register
Poll Register
End-of-Interrupt (EOI) Register
Interrupt Vector Register
44h
42h
40h
3Eh
3Ch
3Ah
38h
36h
34h
32h
30h
2Eh
2Ch
2Ah
28h
26h
24h
22h
20h
Synchronous Serial Port Register
Synchronous Serial Receive Register
Synchronous Serial Transmit 0 Register
Synchronous Serial Transmit 1 Register
Synchronous Serial Enable Register
Synchronous Serial Status Register
Table 1. Map of Peripheral Control Registers
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
18h
16h
14h
12h
10h
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
RELREG (0feh) - The Peripheral Control Block RELocation REGister maps the entire Peripheral
Control Block Register Bank to either I/O or memory space. In addition, RELREG contains a bit which
places the Interrupt Controller in either Master or Slave mode.
The RELREG contains 20ffh at reset.
15
14
RES
S/Mn
13
12
11
10
9
8
7
RES IO/Mn
6
5
4
3
2
1
0
RA [19:8]
RES (bit 15) - Reserved.
S/Mn (bit 14) – A 1 in this bit places the Interrupt Controller into slave mode. When set to zero, the
Interrupt Controller is in master mode.
RES (bit 13) - Reserved.
IO/Mn (bit 12)- A 1 in this bit maps the Peripheral Control Block Register Bank into IO space. When
set to zero, the Peripheral Control Block is mapped into memory space.
RA [19:8] (bits 11-0) – Sets the base address (upper 12 bits) of the Peripheral Control Block Register
Bank. RA [7:0} default to zero. Note that when bit 12 (IO/M_n) is a 1, RA [19:16] are ignored.
RESCON (0f6h) - The RESet CONfiguration Register latches user-defined information present at
specified pins at the rising edge of reset. This contents of this register are read-only and remain valid until
the next reset.
The RESCON contains user-defined information at reset.
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
RC [15:0]
RC [15:0] (bits 15-0) – At the rising edge of reset, the values of specified pins (ad [15:0] for the
IA186Es and {ao [15:8], ad [7:0]} for the IA188EM) are latched into this register.
PRL (0f4h) - The Processor Release Level Register contains a code corresponding to the latest processor
production release. The PRL is a Read-Only Register
The PRL contains 0400h.
15
14
13
12
11
10
9
8
7
PRL [7:0]
6
5
4
3
2
1
0
RES
PRL [7:0] (bits 15-8) – The latest Processor Release Level.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PRL Value Processor Release Level
01h
C
02h
D
03h
E
04h
F
RES (bits 7-0) – Reserved.
PDCON (0f0h) - The Power-save CONtrol Register controls several miscellaneous system I/O and
timing functions.
The SYSCON contains 0000h at reset.
15
14
PSEN
13
RES
12
11
10
9
8
CBF CBD CAF CAD
7 6 5 4 3
RES
2
1
0
F2 F1 F0
PSEN (bit 15) – When set to 1, enables the power-save mode causing the internal operating clock to
be divided by the value in F2-F0. External interrupts or interrupts from internal interrupts
automatically clear PSEN. Software interrupts and exception do not clear PSEN. Note that the value of
PSEN is not restored upon execution of an IRET instruction.
RES (bit 14-12) – Reserved. These bits read back as zeros.
CBF (bit 11) – When set to 1, the clkoutb output follows the input crystal (PLL) frequency. When
this bit is 0, the clkoutb follows the internal clock frequency after the clock divider.
CBD (bit 10) – When set to 1, the clkoutb output is pulled low. When this bit is 0, the clkoutb is
driven as an output per the CBF bit.
CAF (bit 9) – When set to 1, the clkouta output follows the input crystal (PLL) frequency. When this
bit is 0, the clkouta follows the internal clock frequency after the clock divider.
CAD (bit 8) – When set to 1, the clkouta output is pulled low. When this bit is 0, the clkouta is driven
as an output per the CBF bit.
RES (bits 7-3) – Reserved. These bits read back as zeros.
F2-F0 (bits 2-0) – These bits control the clock divider as shown below. Note that PSEN must be 1 for
the clock divider to function.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
F2 F1 F0
Divider Factor
0
0
0
Divide by 1 (20)
0
0
1
Divide by 2 (21)
0
1
0
Divide by 4 (22)
0
1
1
Divide by 8 (23)
1
0
0 Divide by 16 (24)
1
0
1 Divide by 32 (25)
1
1
0 Divide by 64 (26)
1
1
1 Divide by 128 (27)
EDRAM (0e4h) - The Enable RCU Register provides control and status for the refresh counter.
The EDRAM register contains 0000h at reset.
15
14
13
12
11
10
9
E
0
0
0
0
0
0
8
7 6 5 4 3
2
1
0
T [8:0]
E (bit 15) – When set to 1, the refresh counter is enabled and msc3_n is configured to act as rfsh_n.
Clearing E clears the refresh counter and disables refresh requests. The refresh address is unaffected
by clearing E.
RES (bits 14-9) – Reserved. These bits read back as 0.
T [8:0] (bits 8-0) – These bits hold the current value of the refresh counter. These bits are read-only.
CDRAM (0e2h) - The Clock Prescaler Register determines the period between refresh cycles.
The CDRAM register is undefined at reset.
15
14
13
12
11
10
9
0
0
0
0
0
0
0
8
7 6 5 4 3
2
1
0
RC [8:0]
RES (bits 15-9) – Reserved. These bits read back as 0.
RC [8:0] (bits 8-0) – These bits hold the clock count interval between refresh cycles. This value
should not be set to less than 18 (12h), else there would never be sufficient bus cycles available for the
processor to execute code.
In power-save mode, the refresh counter value should be adjusted to account for the clock divider
value in SYSCON.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
MDRAM (0e0h) - The Memory Partition Register holds the A19-A13 address bits of the 20-bit base
refresh address.
The MDRAM register contains 0000h at reset.
15
14
13
12
11
10
9
M [6:0]
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
M [6:0] (bits 15-9) – Upper bits corresponding to address bits a19-a13 of the 20-Bit memory refresh
address. These bits are not available on the a19-a0 bus. When using PSRAM mode, M6-M0 must be
programmed to 0000000b.
Reserved [8:0] (bits 8-0) – Reserved. These bits read back as 0.
D1CON (0dah) - DMA CONtrol Registers.
D0CON (0cah)
DMA Control Registers control operation of the two DMA channels. The D0CON and D1CON registers
are undefined at reset, except ST that is set to 0.
15
14
13
12
11
10
9
8
DM/IOn
DDEC
DINC
SM/IOn
SDEC
SINC
TC
INT
7
6
5
4
3
2
1
0
SYN1SYN0
P
TDRQ
Res
CHG
ST
Bn/W
DM/IOn (bit 15) – Destination Address Space Select selects memory or I/O space for the destination
address. When DM/IO is set to 1, the destination address is in memory space. When set to 0, the
destination address is in I/O space.
DDEC (bit 14) – Destination Decrement automatically decrements the destination address after each
transfer when set to 1. The address is decremented by 1 or 2, depending on the byte/word bit (Bn/W,
bit 0). The address does not change if the increment and decrement bits are set to the same value (00b
or 11b).
DINC (bit 13) – Destination Increment, when set to 1, automatically increments the destination
address after each transfer. The address is incremented by 1 or 2, depending on the byte/word bit
(Bn/W, bit 0). The address does not change if the increment and decrement bits are set to the same
value (00b or 11b).
SM/IOn (bit 12) – Source Address Space Select selects memory or I/O space for the source address.
When SM/IOn is set to 1, the source address is in memory space, while when 0, the source address is
in I/O space.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
SDEC (bit 11) – Source Decrement, when set to 1, automatically decrements the destination address
after each transfer. The address is decremented by 1 or 2, depending on the byte/word bit (Bn/W, bit
0). The address does not change if the increment and decrement bits are set to the same value (00b or
11b).
SINC (bit 10) – Source Increment, when set to 1, automatically increments the destination address
after each transfer. The address is incremented by 1 or 2, depending on the byte/word bit (Bn/W, bit
0). The address does not change if the increment and decrement bits are set to the same value (00b or
11b).
TC (bit 9) – Terminal Count. The DMA decrements the transfer count for each DMA transfer. When
TC is set to 1, the source or destination synchronized DMA transfers terminate when the count reaches
0, but when TC is set to 0, source or destination synchronized DMA transfers do not terminate when
the count reaches 0. Unsynchronized DMA transfers always end when the count reaches 0,
irrespective of the setting of this bit.
INT (bit 8) – Interrupt. The DMA channel generates an interrupt request on completion of the transfer
count when this bit is set to 1. However, for an interrupt to be generated, the TC bit must also be set
to 1.
SYN1-SYN0 (bits 7-6) – Synchronization Type bits select channel synchronization as shown in the
following table. The value of these bits is ignored if TDRQ (bit 4) is set to 1. A processor reset
causes these bits to be set to 11b.
SYN1
0
0
1
1
SYN0
0
1
0
1
Sync Type
Unsynchronized
Source Synchronized
Destination Synchronized
Reserved
P (bit 5) – Relative Priority. Selects high priority for this channel relative to the other channel during
simultaneous transfers when set to 1.
TDRQ (bit 4) - Timer 2 Synchronization. Enables DMA requests from timer 2, when set to 1, but
disables DMA requests from timer 2 when set to 0.
EXT (bit 3) – Reserved.
CHG (bit 2) – Change Start Bit. This bit must be set to 1, to allow modification of the ST bit during a
write. During a write, when CHG is set to 0, ST is not changed when writing the control word. The
result of reading this bit is always 0.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
ST (bit 1) – Start/Stop DMA Channel. When the start bit is set to 1, the DMA channel is started. The
CHG bit must be set to 1 for this bit to be modified and only during the same register write. A
processor reset causes this bit to be set to 0.
Bn/W (bit 0) – Byte/Word Select. When set to 1, word transfers are selected. When set to 0, byte
transfers are selected. (The IA188EM does not support word transfers and furthermore they are not
supported if the chip selects are programmed for 8-bit transfers.)
D1TC (0d8h) - DMA Transfer Count Registers.
D0TC (0c8h)
The DMA Transfer Count registers are maintained by each DMA channel. They are decremented after
each DMA cycle. The state of the TC bit in the DMA control register has no influence on this activity.
But, if unsynchronized transfers are programmed or if the TC bit in the DMA control word is set, DMA
activity ceases when the transfer count register reaches 0.
The D0TC and D1TC registers are undefined at reset.
15
14
13
12
11
10
9
8
7
6 5 4 3
2
1
0
TC15 – TC0
TC [15:0] (bits 15-0) – DMA Transfer Count contains the transfer count for the respective DMA
channel. Its value is decremented after each transfer.
D1DSTH (0d6h) - The DMA DeSTination Address High Register.
D0DSTH (0c6h)
The 20-bit destination address consists of these four bits combined with the 16-bits of the respective
Destination Address Low Register. A DMA transfer requires that two complete 16-bit registers (high and
low registers) be used for both the source and destination addresses of each DMA channel involved.
These four registers must be initialized. Each address may be incremented or decremented independently
of the other after each transfer. The addresses are incremented or decremented by two for word transfers
and incremented or decremented by 1 for byte transfers.
The D0DSTH and D1DSTH registers are undefined at reset.
15
14
13
12
11
10
9
Reserved
8
7 6 5 4 3
2
1
0
DDA19-DDA16
Reserved [15:4] (bits 15-4) – Reserved.
DDA [19:16] (bits 3-0) – DMA Destination Address High bits are driven onto A19-A16 during the
write phase of a DMA transfer.
DIDSTL (0d4h) - DMA DeSTination Address Low Register.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
D0DSTL (0c4h)
The sixteen bits of these registers are combined with the four bits of the respective DMA Destination
Address High Register to produce a 20-bit destination address.
The D0DSTL and D1DSTL registers are undefined at reset.
15
14
13
12
11
10
9
8
7 6 5 4 3
2
1
0
DDA15 – DDA0
DDA [15:0] (bits 15-0) – DMA Destination Address Low bits are driven onto A15-A0 during the
write phase of a DMA transfer.
D1SRCH (0d2h) - DMA SouRCe Address High Register.
D0SRCH (0c2h)
The 20-bit source address consists of these four bits combined with the 16-bits of the respective Source
Address Low Register. A DMA transfer requires that two complete 16-bit registers in the peripheral
control block (high and low registers) be used for both the source and destination addresses of each DMA
channel involved. Each DMA channel requires that all four address registers be initialized. Each address
may be incremented or decremented independently of the other after each transfer. The addresses are
incremented or decremented by 2 for word transfers and incremented or decremented by 1 for byte
transfers.
The D0SRCH and D1SRCHL registers are undefined at reset.
15
14
13
12
11
10
9
8
Reserved
7 6 5 4 3
2
1
0
DSA19 –DSA16
Reserved [15:4] (bits 15-4) – Reserved
DSA [19:16] (bits 3-0) – DMA Source Address High bits are driven onto A19-A16 during the read
phase of a DMA transfer.
D1SRCL (0d0h) - DMA SouRCe Address Low Register.
D0SRCL (0c0h)
The sixteen bits of these registers are combined with the four bits of the respective DMA Source Address
High register to produce a 20-bit source address.
The D0SRCL and D1SRCL registers are undefined at reset.
15
14
13
12
11
10
9
8
7 6 5 4 3
2
1
DSA15-DSA0
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
0
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
DSA [15:0] (bits 15-0) – DMA Source Address Low bits are placed onto a15-a0 during the read phase
of a DMA transfer.
MPCS (0a8h) - MCS and PCS Auxiliary Register.
This register controls more than one type of chip select, making it different from the other chip select
control registers. The MPCS register contains information for the following, mcs3_n - mcs0_n as well as
pcs6_n - pcs5_n and pcs3_n - pcs0_n.
The MPCS register also contains a bit that configures the pcs6_n - pcs5_n pins as either chip selects or as
alternate sources for the A2 and A1 address bits. Either address bits a1 & a2 or pcs6_n - pcs5_n are
selected to the exclusion of the other. When programmed for address bits, these outputs can be used to
provide latched address bits for a2 & a1
pcs6_n - pcs5_n are high and not active on processor reset. An access to the MPCS register causes the
pins to activate, when the pcs6_n - pcs5_n are configured as address pins. The pcs6_n - pcs5_n pins do
not require corresponding access to the PACS register to be activated.
The value of the MPCS register is undefined at reset.
15
14
13
1
12
11
10
9
M6-M0
8
7
6
5 4 3
2
EX MS 1 1 1 R2
1
0
R1-R0
Reserved (bit 15) – Set to 1.
M [6:0] (bits14-8) MCS_n Block Size – These seven bits determine the total block size for the
MCS3_n - MCS0_n chip selects. The total block size is divided equally among the four chip selects.
The following table shows the relationship between M [6:0] and the size of the memory block.
Total Block
Size
8K
16K
32K
64K
128K
256K
512K
Individual
Select Size
2K
4K
8K
16K
32K
64K
128K
M6 – M0
0000001b
0000010b
0000100b
0001000b
0010000b
0100000b
1000000b
EX (bit7) Pin Selector – This bit determines whether the pcs6_n - pcs5_n pins are configured as chip
selects or as alternate outputs for a2 & a1. When this bit is set to 1, pcs6_n - pcs5_n are configured
as peripheral chip select pins, whereas when set to 0, pcs6_n - pcs5_n become address bit a1 and
address bit a2 respectively.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
MS (bit 6) Memory/ I/O Space Selector determines whether the pcs_n pins are active either during
memory or I/O bus cycles. When MS is set to 1, the pcs_n outputs are active for memory bus cycles,
and active for I/O bus cycles when set to 0.
Reserved (bits 5:3) – Set to 1.
R2 (bit 2) Ready Mode – This bit influences only the pcs6_n - pcs5_n chip selects. If R2 is set to 0,
external ready is required. If R2 is set to 1, external ready is ignored. In each case, the values of the
R1-R0 bits determine the number of wait states to be inserted.
R [1:0] (bits 1-0) Wait-State Value – These bits influence only the pcs6_n - pcs5_n chip selects. The
value of R1-R0 determines the number of wait states inserted into an access depending on whether its
to the PCS_n memory or I/O area. Up to three wait states can be inserted (R1 - R0 = 00b to 11b).
MMCS (0a6h) - Midrange Memory Chip Select Register.
Four chip-select pins, mcs3_n - mcs0_n, are provided for use within a user-locatable memory block. The
memory block base address can be located anywhere within the 1-Mbyte memory address space,
excluding the areas associated with the ucs_n and lcs_n chip selects (and, if mapped to memory, the
address range of the Peripheral Chip Selects, pcs6_n - pcs5_n and pcs3_n to pcs0_n). If the pcs_n chip
selects are mapped to I/O space, the mcs_n address range can overlap the pcs_n address range
Two registers program the Midrange Chip Selects. The Midrange Memory Chip Select (MMCS) register
determines the base address, the ready condition and wait states of the memory block that are accessed
through the mcs_n pins. The pcs_n and mcs_n Auxiliary (MPCS) register configures the block size. On
reset the mcs3_n - mcs0_n pins are not active. Accessing with a write both the MMCS and MPCS
registers activates these chip selects.
The mcs3_n - mcs0_n outputs assert with the multiplexed AD address bus (ad15 – ad0 or ao15 – ao8
and ad7 – ad0) rather than the earlier timing of the a19 – a0 bus unlike the ucs_n and lcs_n chip selects.
The timing is delayed for a half cycle later than that for ucs_n and lcs_n if the a19 – a0 bus is used for
address selection.
The value of the MMCS register is undefined at reset.
15
14
13
12
BA19 – BA13
11
10
9
8
7 6 5 4 3
2
1
0
1
1 1 1 1 1 R2 R1 - R0
BA [15:9] (bits 15-9) – Base Address. The value of the BA19 – BA13 determines the Base Address of
the memory block that is addressed by the mcs_n chip select pins. These bits correspond to bits a19 –
a13 of the 20-bit memory address. The remaining bits a12 – a0 of the base address are always 0.
The base address may be any integer multiple of the size of the memory clock selected in the MPCS
register. For example, if the midrange block is 32 Kbytes, the block could be located at 20000h or
28000h but not at 24000h.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
If the lcs_n chip select is inactive, the base address of the midrange chip selects can be set to 00000h,
because the lcs_n chip select is defined to be 00000h but is unused. The further limitation that the
base address must be an integer multiple of the block size means that a 512K MMCS block size can
only be used with the lcs_n chip select inactive and the base address of the midrange chip selects set
to 00000h.
Reserved [8:3] (bits 8-3) - Set to 1.
R2 (bit 2) – Ready mode. This bit determines the mcs_n chip selects ready mode. When R2 is 0, an
external ready is necessary. If R2 is 1, an external ready is ignored. In each case, the number of wait
states inserted in an access is determined by the value of the R1 & R0 bits.
R [1:0] (bits 1-0) – Wait-State Value. The number of wait states inserted in an access is determined
by the value of the R1 & R0 bits. Up to three wait states can be inserted (R1 - R0 = 00b to 11b).
PACS (0a4h) - PeripherAl Chip Select Register.
The Peripheral Chip Selects are asserted over 256-byte range with the same timing as the AD address bus.
There are six chip selects, pcs6_n - pcs5_n and pcs3_n - pcs0_n, that are utilized in either the userlocatable memory or I/O blocks. The pcs4_n chip select is not implemented in the ia18xEM family of
Micro controllers. Excluding the areas utilized by the ucs_n, lcs_n, and mcs_n chip selects, the memory
block can be located anywhere within the 1-Mbyte address space. These chip selects may also be
configured to access the 64-Kbyte I/O space.
Programming the Peripheral Chip Selects uses two registers, The Peripheral Chip Select (PACS) register
and the pcs_n and mcs_n Auxiliary (MPCS) register. The PACS register establishes the base address,
configures the ready mode, and determines the number of wait states for the pcs3_n - pcs0_n outputs.
The MPCS register configures the pcs6_n – pcs5_n pins to be either chip selects or address pins a1 and
a2. When these pins are configured as chip selects, the MPCS register determines whether they are active
during memory or I/O bus cycles and determines the ready state and wait states for these output pins.
These pins are not active on reset but are activated as chip selects by writing to the two registers (PACS
and MPCS). To configure and activate them as address pins it is necessary to write to both the PACS and
MPCS registers. pcs6_n – pcs5_n can be configured for 0 to 3 wait states while pcs3_n - pcs0_n can be
programmed for 0 to 15 wait states.
The value of the PACS register is undefined at reset.
15
14
13
12
11
BA19 – BA11
10
9
8
7 6 5 4
3
2
1
0
1 1 1 R3 R2 R1 –R0
BA [19:11] (bits 15-7) - Base Address bits determine the base address and correspond to bits 19 - 11
of the 20-bit programmable base address of the peripheral chip select block. However, if the PCS_n
chip selects are mapped to I/O space, these bits must be set to 0000b, as I/O addresses are only 16 bits
wide.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PCS Address Ranges
PCSn Line
PCS0n
PCS1n
PCS2n
PCS3n
Reserved
PCS5n
PCS6n
Range
Low
High
Base Address
Base Address + 255
Base Address + 256
Base Address + 511
Base Address + 512
Base Address + 767
Base Address + 768
Base Address + 1023
N/A
N/A
Base Address + 1280
Base Address
Base Address + 1536
Base Address
Reserved [6:4] (bits 6-4) – Set to 1.
R [3] (bit 3) – Wait State Value. See the following table.
R [2] (bit 2) – Ready Mode. When 0, external ready is required. When 1, external ready is ignored.
But in each case the number of wait states is determined as in the following table.
R [1:0] (bits 1 – 0) – Wait-State Value. See following table. It should be noted that pcs6_n – pcs5_n
and pcs3_n – pcs0_n pins are multiplexed with the programmable I/O pins. And for them to function
as chip selects, the PIO mode and direction settings for these pins must be set to 0 for normal
operation.
PCS3n – PCS0n Wait–State Encoding
R3
0
0
0
0
1
1
1
1
R1
0
0
1
1
0
0
1
1
R0
0
1
0
1
0
1
0
1
Wait States
0
1
2
3
5
7
9
15
LMCS (0a2h) - Low Memory Chip Select Register configures the Low Memory Chip Select that has
been provided to facilitate access to the interrupt vector table located at 00000h or the bottom of memory.
The lcs_n pin is not active at reset.
The width of the data bus for the lcs_n space should be configured in the AUXCON register before
activating the lcs_n chip select pin, by any write access to the LMCS register.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
The value of the LMCS register is undefined at reset except DA, which is set to 0.
15
0
14
13
12
11
10
9
8
1
1
1
1
UB2 – UB0
7
6
5 4 3
2
DA PSE 1 1 1 R2
1
0
R1-R0
Reserved [15] (bit 15) – Set to 0
UB [2:0] (bits 14 – 12) - Upper Boundary. These bits define the upper boundary of memory accessed
by the lcs_n chip select. The following table gives the possible configurations of block size (max
512Kbytes).
LMCS Block Size Programming Values
Memory Block
Size
64K
128K
256K
512K
Ending
Address
0FFFFh
1FFFFh
3FFFFh
7FFFFh
UB2 – UB0
000b
001b
011b
111b
Reserved [11:8] (bits 11-8) - Set to 1.
DA (bit 7) Disable Address - When set to 0, the address is driven onto the address bus (ad15 – ad0)
during the address phase of a bus cycle. If DA is set to 1, the address bus is disabled, providing some
measure of power saving. This bit is set to 0 at reset.
If BHE_n/ADEN_n is held at 0 during the rising edge of res_n, then the address bus is always driven,
independent of the setting of DA.
PSE (bit 6) PSRAM Mode Enable – PSRAM support for the lcs_n chip select memory space is enabled
when the PSE is set to 1. The EDRAM, MDRAM, and CDRAM refresh control unit registers must be
configured for auto refresh before PSRAM support is enabled. Setting the enable bit (EN) in the
enable RCU register (EDRAM, offset e4h) configures the mcs3_n/rfsh_n as rfsh_n.
Reserved (bits 5-3) – Set to 1.
R2 (bit 2) - Ready Mode. When this bit is set to 0, an external ready is required. When set to 1, the
external ready is ignored. In either case, however, the value of the R1 - R0 bits determine the number
of wait states inserted.
R [1:0] (bits R1-R0) - Wait-State Value. The number of wait states inserted into an access to the
LCS_n memory area is determined by the value of these bits. This number ranges from 0 to 3 (R1 – R0
= 00b to 11b)
UMCS (0a0h) - Upper Memory Chip Select Register configures the Upper Memory Chip Select pin,
which is used for the top of memory. On reset, the first fetch takes place at memory location FFFF0h and
thus this area of memory is usually used for instruction memory. With this in mind, UCS_n defaults to an
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
active state at reset with a memory range of 64 Kbytes (F0000h to FFFFFh), external ready required, and
three wait states automatically inserted. The upper end of the memory range always ends at FFFFFh,
whereas the lower end of this upper memory range is programmable.
The value of the UMCS register is F03Bh at reset.
15
1
14
13
12
LB2 – LB0
11
10
9
8
7
6
5 4 3
2
0
0
0
0
DA
0
1 1 1 R2
1
0
R1-R0
Reserved [15] (bit 15) – Set to 1.
LB [2:0] (bits 14–12) – Lower Boundary. These bits determine the bottom of the memory accessed
by the ucs_n chip selects.
UMCS Block Size Programming Values
Memory
Block
Size
64K
128K
256K
512K
Starting
Address
LB2 – LB0
F0000h
E0000h
C0000h
80000h
111b
110b
100b
000b
Comments
Default
Reserved (bits 11 – 8)
DA (bit 7) – Disable Address. When set to 0, the address is driven onto the address bus (ad15 – ad0)
during the address phase of a bus cycle when ucs_n is asserted. If DA is set to 1, the address bus is
disabled, and the address is not driven on the address bus when ucs_n is asserted, providing some
measure of power saving. This bit is set to 0 at reset.
If bhe_n/aden_n is held at 0 during the rising edge of res_n, then the address bus is always driven
independent of the setting of DA.
Reserved (bit 6) – Set to 0.
Reserved (bit 5 – 3) – Set to 1.
R2 (bit 2) Ready Mode – When this bit is set to 0, an external ready is required. But when set to 1, the
external ready is ignored. In either case, however, the value of the R1 - R0 bits determine the number
of wait states inserted.
R [1:0] (bits 1-0) - Wait-State Value. The number of wait states inserted into an access to the lcs_n
memory area is determined by the value of these bits. This number ranges from 0 to 3 (R1 – R0 = 00b
to 11b).
SPBAUD (088h) - Serial Port BAUD Rate Divisor Register.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
The value in this register determines the number of internal processor cycles in one phase (half-period) of
the 32 x serial clock.
The contents of these registers must be adjusted to reflect the new processor clock frequency if powersave mode is in effect.
The baud rate divisor may be calculated from:
BAUDDIV = (Processor Frequency / (32 x baud rate)) -1
By setting the BAUDDIV to 0000h, the maximum baud rate of 1/32 of the internal processor frequency
clock is set. Setting BAUDDIV to 129 (81h) provides a baud rate of 9600 at 40MHz. The baud rate
tolerance is +4.6% and –1.9% with respect to the actual serial port baud rate, not the target baud rate.
Baud Rates
Divisor Based on CPU Clock Rate
Baud Rate
20 MHz
25 MHz
33 MHz
40 MHz
300
2082
2603
3471
4165
600
1040
1301
1735
2082
1200
519
650
867
1040
2400
259
324
433
519
4800
129
161
216
259
9600
64
80
107
129
14400
42
53
71
85
19200
31
39
53
64
625 Kbaud
0
n/a
n/a
1
781.25 Kbaud
n/a
0
n/a
n/a
1.041 Mbaud
n/a
n/a
0
n/a
1.25 Mbaud
n/a
n/a
n/a
0
7 6 5 4 3
2
The value of the SPBAUD register at reset is undefined.
15
14
13
12
11
10
9
8
1
0
BAUDDIV
BAUDDIV [15:0] (bits 15-0) – Baud Rate Divisor. Defines the divisor for the internal processor
clock.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
SPRD (086h) - Serial Port Receive Data Register.
Data received over the serial port are stored in this register until read. The data are received initially by
the receive shift register (no software access) permitting data to be received while the previous data are
being read.
The RDR bit (Receive Data Ready) in the serial port status register indicates the status of the SPRD
register. Setting the RDR bit 1 indicates that there is valid data in the receive register.
The value of the SPRD register is undefined at reset.
15
14
13
12
11
10
9
8
7
6
5 4 3
Reserved
2
1
0
RDATA
Reserved (bits 15-8) – Reserved.
RDATA [7:0] (bits 7-0) – Holds valid data while the RDR bit of the status register is set.
SPTD (084h) - Serial Port Transmit Data Register.
Data is written to this register by software, with the values to be transmitted by the serial port. Double
buffering of the transmitter allows for the transmission of data from the transmit shift register (no
software access), while the next data are written into the transmit register.
The THRE bit in the Serial Port Status register indicates whether there is valid data in the SPDT register.
The THRE bit must be a 1 before writing data to this register to prevent overwriting valid data that is
already in the SPDT register.
The value of the SPTD register is undefined at reset.
15
14
13
12
11
10
9
8
7
6
5 4 3
Reserved
2
1
0
TDATA
Reserved (bits 15-8) – Reserved.
TDATA [7:0] (bits 7-0) – Holds the data to be transmitted.
SPSTS (082h) – Serial Port STatuS Register.
This register stores information concerning the current status of the port. The status bits are described
below.
The value of the SPSTS register is undefined at reset.
15
14
13
12
11
Reserved
10
9
8
7
6
5
4
3
TEMT THRE RDR BRKI
2
FER
1
0
PER OER
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Reserved (bits 15-7) – Reserved – Set to 0.
TEMT (bit 6) – Transmitter Empty. When both the transmit shift register and the transmit register are
empty, this bit is set indicating to software that it is safe to disable the transmitter.
This bit is read-only.
THRE (bit 5) – Transmit Holding Register Empty. When this bit is 1, the corresponding transmit
holding register is ready to accept data. This is a read-only bit.
RDR (bit 4) – Receive Data Ready. When this bit is 1, the respective SPRD register contains valid
data. This is a read/write bit and can be reset only by reading the corresponding Receive register.
BRKI (bit 3) –Break Interrupt. This bit indicates that a break has been received when this bit is set to
1 and causes a serial port interrupt request.
NOTE: This bit should be reset by software.
FER (bit 2) – Framing Error Detected. When the receiver samples the rxd line as low when a stop bit
is expected (line high) a framing error is generated setting this bit.
NOTE: This bit should be reset by software.
PER (bit 1) - Parity Error Detected. When a parity error is detected in either mode 1 or 3, this bit is
set.
NOTE: This bit should be reset by software.
OER (bit 0) – Overrun Error Detected. When new data overwrites valid data in the receive register
(because it hasn’t been read) an overrun error is detected setting this bit.
NOTE: This bit should be reset by software.
SPCT (080h) - Serial Port ConTrol Register.
This register controls both transmit and receive parts of the serial port.
The value of the SPCT register is 0000h at reset.
15 14 13 12
11
10
9
8
7
Reserved
TX
RX
LOOP
BRK
BRK
IE
IE
6
5
PMODE
4
3
2
1
0
WLGN
STP
TMODE
RSIE
RMODE
VAL
Reserved (bits 15-12) – Reserved. Set to 0.
TXIE (bit 11) – Transmitter Ready Interrupt Enable. This bit enables the generation of an interrupt
requests whenever the transmit holding register is empty (THRE bit 1). The respective port does not
generate interrupts when this bit is 0. Interrupts continue to be generated as long as THRE and the
TXIE are 1.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
RXIE (bit 10) – Receive Data Ready Interrupt Enable. This bit enables the generation of an interrupt
requests whenever the receive register contains valid data (RDR bit 1). The respective port does not
generate interrupts when this bit is 0. Interrupts continue to be generated as long as RDR and the
RXIE are 1.
LOOP (bit 9) – Loop-back. The serial port is placed into the loop-back mode when this bit is set.
BRK (bit 8) – Send Break. When this bit is set to 1, the txd pin is driven low, overriding any data that
may be in the course of being shifted out of the transmit shift register.
See the definitions of long and short break in the Serial Port Status register definition.
BRKVAL (bit 7) – Break Value. This is the ninth data bit transmitted when in modes 2 and 3. This bit
is cleared at each transmitted word and is not buffered. To transmit data with this bit set high, the
following procedure is recommended.
1. The TEMT bit in the serial port status register must go high.
2. Set the TB8 bit by writing it to the serial port control register.
3. Finally write the transmit character to the serial port transmit register.
Serial port 0 is a special case in that if this bit is 1, the associated pins are used for flow control
overriding the Peripheral Chip Select signals. This bit is 0 at reset.
PMODE (bits6:5) – Parity Mode. When this bit is set to 1, the txd pin is driven low overriding any
data that may be in the course of being shifted out of the transmit shift register.
See the definitions of long and short break in the Serial Port Status register definition.
WLGN (bit 4) – Word Length. The number of bits transmitted or received in a frame is determined by
the value of this bit. When this bit is 0, the number of data bits in a frame is 7 whereas when this bit is
1 the number of data bits in a frame is 8. This bit is 0 at reset.
STP (bit 3) – Stop Bits. This bit specifies the number of stop bits used to indicate the end of a frame.
When this bit is 0, the number of stop bits is 1. When it is 1, the number of stop bits is 2. This bit is 0
at reset.
TMODE (bit 2) – Transmit Mode. The transmit section of the serial port is enabled when this bit is 1
and disabled when this bit is 0.
RSIE (bit 1) – Receive Status Interrupt Enable. When an exception occurs during data reception an
interrupt request is generated if enabled by this bit (RSIE = 1). Interrupt requests are made for the
error conditions listed (BRK, OER, PER, and FER) in the serial port status register. This bit is 0 at
reset.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
RMODE (bit 0) – Receive Mode. The receive section of the serial port is enabled when this bit is 1 and
disabled when this bit is 0. This bit is 0 at reset.
PDATA1 (07ah) - PIO DATA Registers.
PDATA0 (074h),
When a PIO pin is configured as an output the value in the corresponding PIO data register bit is driven
onto the pin. On the other hand, if the PIO pin is configured as an input, the value on the pin is input into
the corresponding bit of the PIO data register.
The following table lists the default states for the PIO pins.
PIO Pin Assignments
PIO
Number
Associated Pin Name
Power-On Reset
Status
0
tmrin1
Input with pull-up
1
tmrout1
Input with pull-down
2
pcs6/A2
Input with pull-up
3
pcs5/A1
Input with pull-up
4
dt/r_n
Normal operation(c)
5
den_n/ds_n
Normal operation(c)
6
srdy
Normal operation(d)
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
PIO
Number
As of Production Version -03
Associated Pin Name
Power-On Reset
Status
7(a)
a17
Normal operation(c)
8(a)
a18
Normal operation(c)
9(a)
a19
Normal operation(c)
10
tmrout0
Input with pull-down
11
tmrin0
Input with pull-up
12
drq0
Input with pull-up
13
drq1
Input with pull-up
14
mcs0_n
Input with pull-up
15
mcs1_n
Input with pull-up
16
pcs0_n
Input with pull-up
17
pcs1_n
Input with pull-up
18
pcs2_n
Input with pull-up
19
pcs3_n
Input with pull-up
20
sclk
Input with pull-up
21
sdata
Input with pull-up
22
sden0
Input with pull- down
23
sden1
Input with pull- down
24
mcs2_n
Input with pull-up
25
mcs3_n/rfsh_n
Input with pull-up
26(a, b)
uzi
Input with pull-up
27
txd
Input with pull-up
28
rxd
Input with pull-up
s6/clkdiv2_n
Input with pull-up
30
int4
Input with pull-up
31
int2
Input with pull-up
29
(a, b)
NOTES
1. Emulators use these pins. (s2_n-s0_n, res_n, nmi, clkouta, bhe_n, ale, ad15 – ad0, and a16 – a0 are
used by emulators also.)
2. If bhe_n/aden_n (ia186EM) or rfsh2_n/aden (ia188EM) is held low during power-on reset, these pins
revert to normal operation.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
3. When used as a PIO pin, it is an input with an available pull-up option.
4. When used as a PIO pin, it is an input with an available pull-down option.
The value of the PDATA registers is undefined at reset.
PDATA 0
15
14
13
12
11
10
9
8
7
6
5 4 3
2
1
0
7
6
5 4 3
2
1
0
PDATA (15 – 0)
PDATA 1
15
14
13
12
11
10
9
8
PDATA (31 – 16)
PDATA [15:0] (bits 15-0) – PIO Data 0 Bits. This register contains the values of the bits that are
either driven on or received from the corresponding PIO pins, depending on its configuration each pin
as either an output or an input. The values of these bits correspond to those in the PIO direction
registers and PIO Mode registers.
PDATA [31:16] (bits 15-0) – PIO Data 1 Bits. This register contains the values of the bits that are
either driven on, or received from, the corresponding PIO pins depending on its configuration each pin
as either an output or an input. The values of these bits correspond to those in the PIO direction
registers and PIO Mode registers
The PIO pins can be operated as open-drain outputs by:
1. Maintaining the data constant in the appropriate bit of the PIO data register.
2. Writing the value of the data bit into the respective bit position of the PIO Direction register, so that
the output is either 0 or disabled depending on the value of the data bit.
PDIR1 (078h) - PIO DIRection Registers.
PDIR0 (072h)
Each PIO pin is configured as an input or an output by the corresponding bit in the PIO direction register.
PIO Mode and PIO Direction Settings
PIO Mode
PIO Direction
Pin function
0
0
Normal operation
0
1
PIO input with pullup/pulldown
1
0
PIO output
1
1
PIO input without pullup/pulldown
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PDIR0
The value of the PDIR0 register is FC0Fh at reset.
15
14
13
12
11
10
9
8
7
6
5 4 3
2
1
0
8
7
6
5 4 3
2
1
0
PDIR (15 – 0)
PDIR1
The value of the PDIR1 register is FFFFh at reset.
15
14
13
12
11
10
9
PDIR (31 – 16)
PDIR [15:0] (bits 15-0) – PIO Direction 0 Bits. For each bit, if the value is 1, the pin is configured
as an input and as an output if the value is 0. The values of these bits correspond to those in the PIO
data registers and PIO Mode registers.
PDIR [31:16] (bits 15-0) – PIO Direction 1 Bits. For each bit, if the value is 1, the pin is configured
as an input and as an output if the value is 0. The values of these bits correspond to those in the PIO
data registers and PIO Mode registers.
PIOMODE1 (076h) - PIO MODE Registers.
PIOMODE0 (070h)
Each PIO pin is configured as an input or an output by the corresponding bit in the PIO direction register.
The bit number of PMODE corresponds to the PIO number.
See the table PIO Mode and PIO Direction Settings in PDIR description above.
PIOMODE0
The value of the PIOMODE0 register is 0000h at reset.
15
14
13
12
11
10
9
8
7
6
5
4 3
2
1
0
5 4 3
2
1
0
PMODE (15 – 0)
PIOMODE1
The value of the PIOMODE1 register is 0000h at reset.
15
14
13
12
11
10
9
8
7
6
PMODE (31 – 16)
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PMODE [15:0] (bits 15-0) – PIO Mode 0 Bits. For each bit, if the value is 1 then the pin is
configured as an input and as an output if the value is 0. The values of these bits correspond to those
in the PIO data registers and PIO Mode registers.
PMODE [31:16] (bits 15-0) – PIO Mode 1 Bits. For each bit, if the value is 1 then the pin is
configured as an input and as an output if the value is 0. The values of these bits correspond to those
in the PIO data registers and PIO Mode registers.
T1CON (05eh) - Timer 0 and Timer 1 Mode and CONtrol Registers.
T0CON (056h)
This registers controls the operation of the Timer 1 and Timer 0 respectively.
The value of both the T0CON and T1CON registers is 0000h at reset.
15
14
13
12
EN INHn INT RIU
11
10
9
8
7
6
0
0
0
0
0
0
5
4
MC RTG
3
P
2
1
0
EXT ALT CONT
EN (bit 15) – Enable Bit. The timer is enabled when the EN bit is 1. The timer count is inhibited
when the EN bit is 0. This bit is write-only, but with the INHn bit set to 1 in the same write operation.
INHn (bit 14) – Inhibit Bit. Gates the setting of the enable (EN) bit. This bit must be set to 1 in the
same write operation that sets the enable (EN) bit. Otherwise, the EN bit will not be changed. This bit
always reads as 0.
INT (bit 13) – Interrupt Bit. An interrupt request is generated when the Count register reaches its
maximum, MC = 1, by setting the INT bit to 1. In dual maxcount mode, an interrupt request is
generated when the count register reaches the value in maxcount A or maxcount B. No interrupt
requests are generated if this bit is set to 0. If an interrupt request is generated and then the enable bit
is cleared before said interrupt is serviced, the interrupt request will remain.
RIU (bit 12) – Register in Use Bit. This bit is set to 1 when the maxcount register B is used to
compare to the timer count value. It is set to 0 when the maxcount compare A register is used.
Reserved (bits 11-6) – Set to 0.
MC (bit 5) – Maximum Count. When the timer reaches its maximum count this bit is set to 1
regardless of the interrupt enable bit. This bit is also set every time Maxcount Compare register A or
B is reached, when in dual maxcount mode. This bit may be used by software polling to monitor
timer status rather than through interrupts if desired.
RTG (bit 4) – Retrigger Bit. This pin controls the timer function of the timer input pin. When set to 1,
the count is reset by a 0 to 1 transition on timrin0 or tmrin1. When set to 0, a high input on tmrin0
or tmrin1 enables the count and a 1 holds the timer value. This bit is ignored if the external clocking
(EXT=1) bit is set.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
P (bit 3) – Prescaler Bit. P is ignored if external clocking is enabled (EXT = 1). Timer 2 prescales the
timer when P is set to 1. Otherwise, the timer is incremented on every fourth CLKOUT cycle.
EXT (bit 2) – External Clock Bit. This bit determines whether an external or internal clock is used.
EXT = 1, an external clock is used and EXT = 0, an internal is used.
ALT (bit 1) – Alternate Compare Bit. If set to 1, the timer will count to Maxcount Compare A, reset
the count register to 0, count to maxcount compare B, reset the count register to 0 and begin again at
maxcount compare A.
If set to 0, the timer will count to maxcount compare A, reset the count register to 0, and begin again
at maxcount compare A. Maxcount compare B is not used in this case.
CONT (bit 0) – Continuous Mode Bit. The timer will run continuously when this bit is set to 1. The
timer will stop after each count run and EN will be cleared if the CONT bit is set to 0. If CONT = 1
and ALT = 1, the respective timer counts to the maxcount compare A value and resets, then
commences counting to maxcount compare B value, resets and ceases counting.
T2CON (066h) - Timer 2 Mode and CONtrol Register.
This register controls the operation of the Timer 2.
The value of the T2CON register is 0000h at reset.
15
EN
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
INHn INT
0
0
0
0
0
0
0
MC
0
0
0
0
CONT
EN (bit 15) – Enable Bit. The timer is enabled when the EN bit is 1. The timer count is inhibited
when the EN bit is 0. Setting this bit to 1 by writing to the T2CON register requires that the INH bit be
set to 1 during the same write. This bit is write-only, but with the INHn bit set to 1 in the same write
operation.
INHn (bit 14) – Inhibit Bit. Gates the setting of the enable (EN) bit. This bit must be set to 1 in the
same write operation that sets the enable (EN) bit. This bit always reads as 0.
INT (bit 13) – Interrupt Bit. An interrupt request is generated, by setting the INT bit to 1, when the
Count register reaches its maximum, MC = 1.
Reserved (bits 12-6) – Set to 0.
MC (bit 5) – Maximum Count. When the timer reaches its maximum count this bit is set to 1,
regardless of the interrupt enable bit. This bit may be used by software polling to monitor timer status
rather than through interrupts if desired.
Reserved (bits 4-1) – Set to 0.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
CONT (bit 0) – Continuous Mode Bit. The timer will run continuously when this bit is set to 1. The
timer will stop after each count run and EN will be cleared if this bit is set to 0.
T2COMPA (062h), - Timer Maxcount COMpare Registers.
T1COMPB (05ch)
T1COMPA (05ah)
T0COMPB (054h)
T0COMPA (052h)
These registers contain the maximum count value that is compared to the respective count register. Timer
0 and Timer 1 have two of these compare registers each.
If Timer 0 or Timer 1 or both are configured to count and compare firstly to register A and then register
B, the tmrout0 or tmrout1 signals may be used to generate various duty-cycle wave forms.
Timer 2 has only one compare register, T2COMPA.
If one of these timer maxcount compare registers is set to 0000h, the respective timer will count from
0000h to FFFFh before generating an interrupt request. For example, a timer configured in this manner
with a 40MHz clock will interrupt every 6.5536 mS.
The value of these registers is undefined at reset.
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
TC15 – TC0
TC [15:0] (bits 15-0) – Timer Compare Value. The timer will count to the value in the respective
register before resetting the count value to 0.
T2CNT (060h) - Timer CouNT Registers.
T1CNT (058h)
T0CNT (050h),
These registers are incremented by one every four internal clock cycles if the relevant timer is enabled.
The Increment of Timer 0 and Timer 1 may also be controlled by external signals tmrin0 and tmrin1
respectively, or prescaled by Timer 2.
Comparisons are made between the count registers and maxcount registers and action taken dependent on
achieving the maximum count.
The value of these registers is undefined at reset.
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
TC15 – TC0
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
0
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
TC [15:0] (bits 15-0) – Timer Count Value. This register has the value of the current count of the
related timer that is incremented every fourth processor clock in internal clocked mode. Alternatively,
the register is incremented each time the Timer 2 maxcount is reached if using Timer 2 as a prescaler.
Timer 0 and Timer 1 may be externally clocked by tmrin0 and tmrin1 signals.
SPICON (044h) - Serial Port Interrupt CONtrol Register.
Master Mode
This register controls the operation of the asynchronous serial port interrupt source (SPI, bit 10 in of the
Interrupt Request register)
The value of this register is 001Fh at reset.
15
14
13
12
11
10
9
8
7
6
5
Reserved
4
3
Res
MSK
2
1
0
PR2-PR0
Reserved (bits 15-5) – Set to 0.
Reserved (bit 4) – Set to1.
MSK (bit 3) – Mask. This bit, when 0, enables the serial port to cause an interrupt. When this bit is 1,
the serial port is prevented from generating an interrupt.
PR2-PR0 (bits 2-0) – Priority. These bits define the priority of the serial port interrupt in relation to
other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2 – PR0 are
shown in the following table.
Priority Level
Priority
(High) 0
1
2
3
4
5
6
(Low) 7
PR2 – PR0
000b
001b
010b
011b
100b
101b
110b
111b
WDCON (044h) – WatchDog timer interrupt CONtrol Register.
Master Mode
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
These registers control the operation of the Watchdog Timer interrupt source. The value of this register is
000Fh at reset.
15
14
13
12
11
10
9
8
7
6
5
Reserved
4
3
Res
MSK
2
1
0
PR2-PR0
Reserved (bits 15-5) – Set to 0.
Reserved (bit 4) – Set to 0.
MSK (bit 3) – Mask. This bit, when 0, enables the Watchdog Timer to cause an interrupt. When this
bit is 1 prevents the Watchdog Timer from generating an interrupt.
PR2-PR0 (bits 2-0) – Priority. These bits define the priority of the Watchdog Timer interrupt in
relation to other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2
– PR0 are shown in the above table (Priority Level).
I4CON (040h) – INT4 CONtrol Register.
Master Mode
This register controls the operation of the int4 signal, which is only intended for use in fully nested mode.
The interrupt is assigned to type 10h.
The value of the I4CON register is 000Fh at reset.
15
14
13
12
11
10
9
Reserved
8
7
6
5
4
3
LTM MSK
2
1
0
PR2-PR0
Reserved (bits 15-5) – Set to 0.
LTM (bit 4) – Level-Triggered Mode. The int4 interrupt may be edge or level triggered depending on
the value of the bit. If LTM is 1, int4 is active high-level sensitive interrupt l. If LTM is 0, int4 is a
rising edge triggered interrupt. The interrupt int4 must remain active (high) until serviced.
MSK (bit 3) – Mask. The int4 signal can cause an interrupt if the MSK bit is 0. The int4 signal cannot
cause an interrupt if the MSK bit is 1.
PR2-PR0 (bit 2-0) – Priority. These bits define the priority of the serial port interrupt in relation to
other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2 – PR0 are
shown in the above table (Priority Level).
I3CON (03eh) – INT2/INT3 CONtrol Register.
I2CON (03ch),
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Master Mode
INT2 and INT3 are designated as interrupt type 0eh and 0fh respectively.
The int2 and int3 pins may be configured as the interrupt acknowledge pins inta0_n and inta1_n
respectively in cascade mode.
The value of these registers is 000Fh at reset.
15
14
13
12
11
10
9
8
7
6
Reserved
5
4
3
2
LTM MSK
1
0
PR2-PR0
Reserved (bits 15-5) – Set to 0.
LTM (bit 4) – Level-Triggered Mode The int2 or int3 interrupt may be edge or level triggered
depending on the value of this bit. If LTM is 1, int2 or int3 is an active high level-sensitive interrupt.
If LTM is 0, int2 or int3 is a rising edge triggered interrupt. The interrupt int2 or int3 must remain
active (high) until acknowledged.
MSK (bit 3) – Mask. The int2 or int3 signal can cause an interrupt if the MSK bit is 0. The int2 or
int3 signal cannot cause an interrupt if the MSK bit is 1. The Interrupt Mask Register has a duplicate
of this bit.
PR2-PR0 (bit 2-0) – Priority. These bits define the priority of the serial port interrupt int2 or int3 in
relation to other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2
– PR0 are shown in the above table (Priority Level).
I1CON (03ah) – INT0/INT1 CONtrol Register.
I0CON (038h),
(Master Mode)
IINT0 and INT1 are designated as interrupt type 0ch and 0dh respectively.
The int2 and int3 pins may be configured as the interrupt acknowledge pins inta0 and inta1 respectively,
the interrupt acknowledge signals for int0 and int1 in cascade mode.
The value of these registers is 000Fh at reset.
15
14
13
12
11
Reserved
10
9
8
7
6
5
4
3
SFNM C LTM MSK
2
1
0
PR2-PR0
Reserved (bits 15-7) – Set to 0.
SPNM (bit 6) – Special Fully Nested Mode. This bit enables fully nested mode for int0 or int1 when
set to 1.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
C (bit 5) – Cascade Mode. This bit enables cascade mode for int0 or int1 when set to 1.
LTM (bit 4) – Level-Triggered Mode. The int0 or int1 interrupt may be edge or level triggered
depending on the value of the bit. If LTM is 1, int0 or int1 is an active high level-sensitive interrupt.
If LTM is 0, int0 or int1 is a rising edge triggered interrupt. The interrupt int0 or int1 must remain
active (high) until acknowledged.
MSK (bit 3) – Mask. The int0 or int1 signal can cause an interrupt if the MSK bit is 0. The int0 or
int1 signal cannot cause an interrupt if the MSK bit is 1. The Interrupt Mask Register has a duplicate
of this bit.
PR2-PR0 (bit 2-0) – Priority. These bits define the priority of the serial port interrupt int0 or int1 in
relation to other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2
– PR0 are shown in the above table (Priority Level).
TCUCON (032h) - Timer Control Unit Interrupt CONtrol Register.
Master Mode
The three timers have their interrupts assigned to types 08h, 12h, and 13h and are configured by this
register.
The value of this register is 000Fh at reset.
15
14
13
12
11
10
9
8
Reserved
7
6
5 4
3
MSK
2
1
0
PR2-PR0
Reserved (bits 15-4) – Set to 0.
MSK (bit 3) – Interrupt Mask. An interrupt source may cause an interrupt if the MSK bit is 0. The
interrupt source cannot cause an interrupt if the MSK bit is 1. The Interrupt Mask Register has a
duplicate of this bit.
PR2-PR0 (bit 2-0) – Priority. These bits define the priority of the serial port interrupt in relation to
other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2 – PR0 are
shown in the above table (Priority Level).
T2INTCON (03ah) - Timer INTerrupt CONtrol Register.
T1INTCON (038h)
T0INTCON (032h)
Slave Mode
The three timers, Timer2, Timer1, and Timer0, each have an interrupt control register, whereas in master
mode all three are masked and prioritized in one register (TCUCON).
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
The value of these registers is 000Fh at reset.
15
14
13
12
11
10
9
8
7
6
5 4
Reserved
3
2
MSK
1
0
PR2 - PR0
Reserved (bits 15-4) – Set to 0.
MSK (bit 3) – Mask. Any of the interrupt sources may cause an interrupt if the MSK bit is 0. The
interrupt sources cannot cause an interrupt if the MSK bit is 1. The Interrupt Mask Register has a
duplicate of this bit.
PR2-PR0 (bit 2-0) – Priority. These bits define the priority of the serial port interrupts in relation to
other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2 – PR0 are
shown in the above table (Priority Level).
DMA1CON/INT6CON (036h) – DMA and INTerrupt CONtrol Register. DMA0CON/INT5CON (034h)
Master Mode
The DMA0 and DMA1 interrupts have interrupt type 0ah and 0bh respectively. These pins are
configured as external interrupts or DMA requests in the respective DMA Control register.
The value of these registers is 000Fh at reset.
15
14
13
12
11
10
9
8
7
6
Reserved
5 4
3
MSK
2
1
0
PR2 - PR0
Reserved (bits 15-4) – Set to 0.
MSK (bit 3) – Mask. Any of the interrupt sources may cause an interrupt if the MSK bit is 0. The
interrupt sources cannot cause an interrupt if the MSK bit is 1. The Interrupt Mask Register has a
duplicate of this bit.
PR2-PR0 (bits 2-0) – Priority. These bits define the priority of the serial port interrupts in relation to
other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2 – PR0 are
shown in the above table (Priority Level).
DMA1CON/INT6 (036h) – DMA and INTerrupt CONtrol Register.
DMA0CON/INT5 (034h)
Slave Mode
The two DMA control registers maintain their original functions and addressing that they possessed in
Master Mode. These pins are configured as external interrupts or DMA requests in the respective DMA
Control register.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
The value of these registers is 000Fh at reset.
15
14
13
12
11
10
9
8
7
6
5 4
Reserved
3
2
MSK
1
0
PR2 - PR0
Reserved (bits 15-4) – Set to 0.
MSK (bit 3) – Mask. Any of the interrupt sources may cause an interrupt if the MSK bit is 0. The
interrupt sources cannot cause an interrupt if the MSK bit is 1. The Interrupt Mask Register has a
duplicate of this bit.
PR2-PR0 (bits 2-0) – Priority. These bits define the priority of the serial port interrupts in relation to
other interrupt signals. The interrupt priority is the lowest at 7 at reset. The values of PR2 – PR0 are
shown in the above table (Priority Level).
INTSTS (030h) – INTerrupt STatuS Register.
Master Mode
The Interrupt status register contains the interrupt request status of each of the three timers, Timer2,
Timer1, and Timer0.
15
14
13
DHLT
12
11
10
9
Reserved
8
7
6
5 4
3
2
1
0
TMR2 - TMR0
DHLT (bit 15) – DMA Halt. DMA activity is halted when this bit is 1. It is set to 1 automatically
when any non-maskable interrupt occurs and is cleared to 0 when an IRET instruction is executed.
Interrupt handlers and other time critical software may modify this bit directly to disable DMA
transfers. However, the DHLT bit should not be modified by software if the timer interrupts are
enabled as the function of this register as an interrupt request register for the timers would be
compromised.
Reserved (bits 14-3)
TMR [2:0] (bit 2-0) – Timer Interrupt Request. A pending interrupt request is indicated by the
respective timer, when any of these bits is 1. (N.B. the TMR bit in the REQST register is a logical OR
of these timer interrupt requests)
Slave Mode
When nonmaskable interrupts occur the interrupt status register controls DMA operation and the interrupt
request status of each of the three timers, Timer2, Timer1, and Timer0.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
15
14
13
12
11
DHLT
As of Production Version -03
10
9
8
7
6
5
4
3
2
Reserved
1
0
TMR2 - TMR0
DHLT (bit 15) – DMA Halt. DMA activity is halted when this bit is 1. It is set to 1 automatically
when any non-maskable interrupt occurs and is cleared to 0 when an IRET instruction is executed.
Reserved (bits 14-3)
TMR [2:0] (bit 2-0) – Timer Interrupt Request. A pending interrupt request is indicated by the
respective timer, when any of these bits is 1. (N.B. the TMR bit in the REQST register is a logical OR
of these timer interrupt requests.)
REQST (02eh) – Interrupt REQueST Register.
Master Mode
This is a read-only register and such a read results in the status of the interrupt request bits presented to
the interrupt controller.
The REQST register is undefined on reset.
15
14
13
Reserved
12
11
10
9
8
7
6
5
4
SPI
WD
I4
I3
I2 I1 IO
3
2
D1- D0
1
0
Res
TMR
Reserved (bits 15 – 11)
SPI (bit 10) – Serial Port Interrupt Request. This is the serial port interrupt state and when enabled is
the logical OR of all the serial port 0 interrupt sources: - THRE, RDR, BRKI, FER, PER, and OER.
WD (bit 9) – Watchdog Timer Interrupt Request. This is the watchdog interrupt state and indicates
that an interrupt is pending when it is a 1.
I [4:0] (bits 8 - 4) Interrupt Requests. Setting any of these bits to 1 indicates that the relevant
interrupt has a pending interrupt.
D1-D0 (bit 3:2) DMA Channel Interrupt 6 Request. Setting either bit to 1 indicates that either the
respective DMA channel has a pending interrupt.
Reserved (bit 1)
TMR (bit 0) – Timer Interrupt Request. This is the timer interrupt state and is the logical OR of the
timer interrupt requests. Setting this bit to 1 indicates that the timer control unit has a pending
interrupt.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Slave Mode
This is a read-only register and such a read results in the status of the interrupt request bits presented to
the interrupt controller. The status of these bits is available when this register is read.
When an internal interrupt request (D1, D0, TMR2, TMR1, or TMR0) occurs, the respective bit is set to 1.
The internally generated interrupt acknowledge resets these bits.
The REQST register contains 0000h on reset.
15
14
13
12
11
10
9
8
7
6
Reserved
5
4
3
TMR2 TMR1 D1
2
1
0
D0
Res
TMR0
Reserved (bits 15 – 6)
TMR2 (bit 5) Interrupt Requests. Setting this bit to 1 indicates that timer 2 has a pending interrupt.
TMR1 (bit 4) Interrupt Requests. Setting this bit to 1 indicates that timer 1 has a pending interrupt.
D1:D0 (bits 3:2) DMA Channel Interrupt Request. Setting either bit to 1 indicates that the respective
DMA channel has a pending interrupt.
Reserved (bit 1)
TMR0 (bit 0) – Timer0 Interrupt Request. Setting this bit to 1 indicates that timer 0 has a pending
interrupt.
INSERV (02ch) – IN-SERVice Register.
Master Mode
The interrupt controller sets the bits in this register when the interrupt is taken. Writing the corresponding
interrupt type to the End-of-Interrupt (EOI) register clears each of these bits.
When one of these bits is set, an interrupt request will not be generated by the microcontroller for the
respective source. This prevents an interrupt from interrupting itself if interrupts are enabled in the ISR.
This restriction is bypassed in fully Special Fully nested mode for the INT0 and INT1 sources.
The INSERV register contains 0000h on reset
15
14
13
Reserved
12
11
10
9
8
7
6
5
4
3
2
1
0
SPI
WD
I4
I3
I2 I1 IO D1 D0 Res TMR
Reserved (bits 15 – 11)
SPI (bit 10) – Serial Port Interrupt Request. This is the serial port 0 interrupt state.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
WD (bit 9) – Watchdog Timer Interrupt In-Service Request. This bit is the In-Service state of the
Watchdog Timer.
I [4:0] (bits 8 - 4) Interrupt Requests. Setting any of these bits to 1 indicates that the relevant
interrupt has a pending interrupt.
D1-D0 (bit 3:2) DMA Channel Interrupt In-Service. This bit is the In-Service state of the respective
DMA channel.
Reserved (bit 1)
TMR (bit 0) – Timer Interrupt Request. This is the timer interrupt state and is the logical OR of the
timer interrupt requests. Setting this bit to 1 indicates that the timer control unit has a pending
interrupt.
Slave Mode
This is a read-only register and such a read supplies the status of the interrupt request bits presented to the
interrupt controller.
When an internal interrupt request (D1, D0, TMR2, TMR1, and TMR0) occurs, the respective bit is set to
1. The internally generated interrupt acknowledge resets these bits.
The REQST register contains 0000h on reset.
15
14
13
12
11
10
9
8
Reserved
7
6
5
4
TMR2 TMR1
3
2
1
0
D1
D0
Res
TMR0
Reserved (bits 15 – 6)
TMR2 (bit 5) Timer2 Interrupt In Service. Timer 2 is being serviced when this bit is set to 1.
TMR1 (bit 4) Timer1 Interrupt IN Service. Timer 1 is being serviced when this bit is set to 1.
D1-D0 (bit 3:2) DMA Channel Interrupt In Service. The respective DMA channel is being serviced
when this bit is set to 1.
Reserved (bit 1)
TMR0 (bit 0) – Timer Interrupt In Service. Timer 0 is being serviced when this bit is set to 1.
PRIMSK (02ah) – PRIority MaSK Register.
Master and Slave Mode
This register contains a value that sets the minimum priority level at which an interrupt can be generated
by a maskable interrupt.
The PRIMSK register contains 0007h on reset
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
15
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
PRM2 – PRM0
Reserved (bits 15 – 3) – Set to 0.
PRM 2-PRM0 (bits 2 - 0) Priority Field Mask. This three-bit field sets the minimum priority
necessary for a maskable interrupt to generate an interrupt. Any maskable interrupt with a
numerically higher value than that contained by these three bits is masked.
Priority Level
Priority
(High) 0
1
2
3
4
5
6
(Low) 7
PR2 – PR0
0 0 0b
0 0 1b
0 1 0b
0 1 1b
1 0 0b
1 0 1b
1 1 0b
1 1 1b
Any unmasked interrupt can generate an interrupt if the priority level is set to 7. On the other hand, if
the priority level is set to say 4, only unmasked interrupts with a priority of 0 to 5 are permitted to
generate interrupts.
IMASK (028h) – Interrupt MASK Register.
Master Mode
The interrupt mask register is read/write. Setting a bit in this register is effectively the same as setting the
MSK bit in the corresponding interrupt control register. Setting a bit to 1 masks the interrupt. The
interrupt request is enabled when the corresponding bit is set to 0.
The IMASK register contains 07fdh on reset
15
14
13
12
Reserved
11
10
9
8
7
6
5
4
3
2
SPI
WD
I4
I3
I2 I1
I0
D1-D0
1
0
Res
TMR
Reserved (bits 15 – 11)
SPI (bit 10) – Serial Port Interrupt Mask. Setting this bit to 1 is an indication that the asynchronous
serial port interrupt is masked.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
WD (bit 9) – Watchdog Timer Interrupt In-Service Request. Setting this bit to 1 is an indication that
the Watchdog Timer interrupt is masked.
I [4:0] (bits 8 - 4) Interrupt Mask. Setting any of these bits to 1 is an indication that the relevant
interrupt is masked.
D1-D0 (bit 3:2) DMA Channel Interrupt Mask. Setting this bit to 1 is an indication that the respective
DMA channel interrupt is masked.
Reserved (bit 1)
TMR (bit 0) – Timer Interrupt Mask. When set to 1, it indicates that the timer control unit interrupt is
masked.
Slave Mode
The interrupt mask register is read/write. Setting a bit in this register is effectively the same as setting the
MSK bit in the corresponding interrupt control register. Setting a bit to 1 masks the interrupt request. The
interrupt request is enabled when the corresponding bit is set to 0.
The IMASK register contains 003dh on reset.
15
14
13
12
11
10
Reserved
9
8
7
6
5
4
3
TMR2 TMR1 D1
2
1
D0 Res
0
TMR0
Reserved (bits 15 – 6)
TMR2 (bit 5) Timer2 Interrupt Mask. This bit provides an indication of the state of the mask bit in
the Timer Interrupt Control register. When it is set to 1, it indicates that the interrupt request is
masked.
TMR1 (bit 4) Timer1 Interrupt Mask. This bit provides an indication of the state of the mask bit in
the Timer Interrupt Control register. When it is set to 1, it indicates that the interrupt request is
masked.
D1-D0 (bit 3:2) DMA Channel Interrupt Mask. This bit provides an indication of the state of the
mask bit in the respective DMA channel Interrupt Control register. When it is set to 1, it indicates that
the interrupt request is masked.
Reserved (bit 1)
TMR0 (bit 0) – Timer Interrupt Mask. This bit provides an indication of the state of the mask bit in
the Timer Interrupt Control register. When it is set to 1, it indicates that the interrupt request is
masked.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
POLLST (026h) – POLL STatus Register.
Master Mode
This register reflects the current state of the Poll register and can be read without affecting its contents.
However, when the Poll Register is read, it causes the current interrupt to be acknowledged and be
replaced by the next interrupt.
The poll status register is read-only.
15
14
13
12
11
IREQ
10
9
8
7
6
5
4
3
2
1
0
S4 – S0
Reserved
IREQ (bit 15) – Interrupt Request. This bit is set to 1 when an interrupt is pending. And during this
state, the S4 - S0 bits contain valid data.
Reserved (bits 14-6) Set to 0
S [4:0] (bit 4-0) – Poll Status. These bits show the interrupt type of the highest priority pending
interrupt.
The interrupt service routine does not begin execution automatically with the IS bit set. Rather, the
application software must execute the appropriate ISR.
POLL (024h) – POLL Register.
Master Mode
When the Poll Register is read, it causes the current interrupt to be acknowledged and be replaced by the
next interrupt. The poll status register reflects the current state of the Poll register and can be read without
affecting its contents.
The POLL register is read-only.
15
14
13
IREQ
12
11
10
9
Reserved
8
7
6
5
4
3
2
1
0
S4 – S0
IREQ (bit 15) – Interrupt Request. This bit is set to 1 when an interrupt is pending. And during this
state, the S4 - S0 bits contain valid data.
Reserved (bits 14-6)
S [4:0] (bit 4-0) – Poll Status. These bits show the interrupt type of the highest priority pending
interrupt.
EOI (022h) – End-Of-Interrupt Register.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Master Mode
The In Service flags of the In-Service register are reset when a write is made to the EOI register.
The interrupt service routine (ISR) should write to the EOI to reset the IS bit, in the In-Service register,
for the interrupt before executing an IRET instruction that ends an interrupt service routine.
The specific EOI reset is the preferred method for resetting the IS bits as it is most secure.
The EOI register is write-only.
15
14
13
12
11
NSPEC
10
9
8
7
6
5
4
3
Reserved
2
1
0
S4 – S0
NSPEQ (bit 15) – Non-Specific EOI. This bit is set to 1 a non-specific EOI and when set to 0 it
indicates the specific EOI.
Reserved (bits 14-5)
S [4:0] (bit 4-0) – Source Interrupt Type. These bits show the interrupt type of the highest priority
pending interrupt.
EOI (022h) – Specific End-Of-Interrupt Register.
Slave Mode
An In Service flag of a specific priority, in the In-Service register, is reset when a write is made to the
EOI register.
A three-bit user supplied priority-level value that points to the in-service bit that is to be reset. Writing
this value to this register resets the specific bit.
The EOI register is write only and undefined at reset.
15
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
L2 – L0
Reserved (bits 15-3) – Write as 0.
L[2:0] (bit 2-0) – Interrupt Type. The priority or the IS (interrupt service) bit to be reset is encoded in
these three bits. Writing to these bits caused the issuance of an EOI for the interrupt type. See Table
3 - Interrupt Types.
INTVEC (020h) –INTerrupt VECtor Register.
Slave Mode
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
The CPU shifts left 2 bits (multiplies by 4) an 8-bit interrupt type, generated by the interrupt controller, to
produce an offset into the interrupt vector table.
The INTVEC register is undefined at reset.
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
7
6
5
4
3
T4 – T0
2
1
0
0
0
0
Reserved (bits 15-8) – Read as 0.
T [4:0] (bits 7-3) – Interrupt Type. These five bits contain the five most significant bits of the
interrupt types used for the internal interrupt type. The least significant three bits of the interrupt type
are supplied by the interrupt controller, as set by the priority level of the interrupt request.
Reserved (bits 2-0) – Read as 0.
SSR (018h) – Synchronous Serial Receive Register.
This register holds the serial data received on the SSI port.
The value of the SSR register is undefined at reset.
15
14
13
12
11
10
9
8
7
6
5
Reserved
4
3
2
1
0
2
1
0
SR7-SR0
Reserved (bits 15-8) – Reserved Bits.
SR[7:0] (bits 7-0) – Data received over the SDATA pin.
SSD0 (016h) – Synchronous Serial Transmit Registers.
SSD0 (014h)
These registers hold the data to be transmitted by the SSI ports.
The value of these registers is undefined at reset.
15
14
13
12
11
10
9
8
7
6
5
Reserved
4
3
SD7-SD0
Reserved (bits 15-8) – Reserved Bits.
SD[7:0] (bits 7-0) – Data to be transmitted over the SDATA pin.
SSC (012h) – Synchronous Serial Control Register.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
This register controls the operation of the sden1 and sden0 outputs and the baud rate of the SSI port. The
sden1 and sden0 outputs are held high when the respective bit is set to 1, but in the event that both DE1
and DE0 are set to 1 then only sden0 will be held high.
The value of the SSR register is 0000h at reset.
15
14
13
12
11
10
9
8
7
6
5
Reserved
4
SCLKDIV
3
2
RES
1
0
DE1-DE0
Reserved (bits 15-6) – Reserved Bits.
SCLKDIV (bits 5-4) – SCLK Divide. These bits set the SCLK frequency. SCLK is the result of
dividing the internal processor clock by 2, 4, 8, or 16 as in the following table.
SCLKDIV
00b
01b
10b
11b
SCLK Frequency Divider
Processor Clock /2
Processor Clock /4
Processor Clock /8
Processor Clock /16
RES (bits 3-2) – Reserved Bits.
DE1 (bit1) - SDEN1. The SDEN1 bit is held high when this bit is set to 1 and SDEN1 is held low
when this bit is set to 0.
DE0 (bit0) – SDEN0. The SDEN0 bit is held high when this bit is set to 1 and SDEN0 is held low
when this bit is set to 0.
SSS (010h) – Synchronous Serial Status Register.
This is a read only register that indicates the state of the SSI port.
The value of the SSR register is 0000h at reset.
15
14
13
12
11
10
9
Reserved
8
7
6
5
4
3
2
1
RE/TE DR/DT
0
PB
Reserved (bits 15-3) – Reserved Bits.
RE/TE (bit 2) – Receive/Transmit Error Detect. This bit is set to 1 when a read of the Synchronous
Serial Received register or a write to one of the transmit register is detected while the interface is busy
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
(PB = 1). This bit is reset to 0 when the SDEN output is not active (DE1-DE0 in the SSC register are
00h).
DR/DT (bit 1) – Data Receive/Transmit Complete. This bit is set to a 1 when the transmission of data
bit 7 is completed (SCLK rising edge) during a transmit or receive operation. This bit is reset by a
read of the SSR register, when either the SSD0 or SSD1 register is written, when the SSS register is
read (unless the SSI completes an operation and sets the bit in the same cycle), or when both SDEN0
and SDEN1 become inactive.
PB (bit 0) SSI Port busy. This bit indicates that a data transmit or receive is occurring when it is set
to 1. When set to 0 it indicates that the port is ready to transmit or receive data.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Clock and Power Management
A phase-lock-loop (PLL) and a second programmable system clock output (CLKOUTB) are included in
the clock and power management unit. The internal clock is the same frequency as the crystal but with a
duty cycle of 45% - 55 %, as a worse case, generated by the PLL obviating the need for an x2 external
clock. A power-on reset (POR) resets the PLL.
C1
C2
Crystal
X1
Recommended range of
values for C1 and C2 are:
X2
C1
=
C2
=
Am186/188EM
15pF +/- 20%
22pF +/- 20%
Figure 2. Crystal Configuration
System Clocks
If required, the internal oscillator can be driven by an external clock source that should be connected to
X1, leaving X2 unconnected.
The clock outputs clkouta and clkoutb may be enabled or disabled individually (Power-Save Control
register (PDCON) bits (11 – 8)). These clock control bits allow one clock output to run at PLL frequency
and the other to run at the power-save frequency.
Processor Internal Clock
PLL
X1,
X2
Power-Save
Divisor
(/2 to /128)
clkouta
Mux
Drive enable
Mux
Time
Delay
6 +/- 2.5nS
clkoutb
Drive enable
Figure 3. Organization of Clock
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Power-Save Mode
The operation of the CPU and peripherals operate at a slower clock frequency when in power save mode
reducing power consumption and thermal dissipation. Should an interrupt occur, the microcontroller
returns to its normal operating frequency automatically on the internal clock’s next rising edge in t3. Any
clock dependent devices should be reprogrammed for the changed in frequency during the power-save
mode period.
Initialization and Reset
res_n (Reset), the highest priority interrupt, must be held low for 1mS during power-up to initialize the
microcontroller correctly. This operation makes the device cease all instruction execution and local bus
activity. The microcontoller begins instruction execution at physical address FFFF0h when res_n
becomes inactive and after an internal processing interval with ucs_n asserted and three wait states. Reset
also sets up certain registers to predetermined values and resets the Watchdog timer.
Reset Configuration Register
The data on the address/data bus (ad15 – ad0 for the Am186EM and ao15 – ao8 and ad7 – ad0 for the
Am188EM) are written into the Reset Configuration register when reset is low. This data is system
dependent and is held in the Reset Configuration register after Reset is de-asserted. This configuration
data may be placed on the address/data bus by using weak external pull-up and pull-down resistors or
applied to the bus by an external driver, as the processor does not drive the bus during reset. It is a
method of supplying the software with some initial data after a reset; for example, option jumper
positions.
Chip Selects
Chip select generation is programmable for memories and peripherals. Programming is also available to
produce ready and wait-state generation plus latched address bits a1 and a2. For all memory and I/O
cycles, the chip-select lines are active within their programmed areas, regardless of whether they are
generated by the internal DMA unit or the CPU.
There are six chip selects outputs for memories and a further six for peripherals whether in memory or I/O
space. The memory chip-selects are able to address three memory ranges, whereas the peripheral chipselects are used to address 256-byte blocks that are offset from a programmable base address. Writing to
a chip-select register enables the related logic even in the event that the pin in question has another
function, as for example in the case that the pin is programmed to be a PIO.
Chip Select Timing
For normal timing, the ucs_n and lcs_n outputs are asserted with the non-multiplexed address bus.
Ready and Wait-State Programming
Each of the memory or peripheral chip-select lines can have a ready signal programmed that can be the
ardy or srdy signal. The chip-select control registers (UMCS, LMCS, MMCS, PACS, and MPCS) have
a single bit that selects if the external ready signal is to be used or not (R2, bit 2). R1 & R0 (bits 1-0) in
these registers control the number of wait-states that are inserted during each access to a memory or
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
peripheral location (from 0 to 3). The control registers for pcs3_n – pcs0_n utilize three bits, R3, R1 – R0
(bits 3, 1 – 0) to provide 5, 7, 9, and 15 wait-states in addition to the original values of 0 – 3 wait states.
In the case where an external ready has been selected as required, internally programmed
wait-states will always be completed before the external ready can finish or extend a bus cycle. As an
example, consider a system in which the number of wait-states to be inserted has been set to three. The
external ready pin is sampled by the processor during the first wait cycle. The access is completed after
seven cycles (4 cycles plus 3 wait-cycles) if the ready is asserted. Alternatively, if the ready is not asserted
during the first wait cycle the access is prolonged until ready is asserted and two more wait-states are
inserted followed by t4.
Chip Select Overlap
Overlapping chip selects are those configurations in which more than one chip-select is asserted for the
same physical address. For example, if PCS is configured in I/O space with LCS or any other chip select
configured for memory, address 00000h is not overlapping the chip selects. It is not recommended that
multiple chip-select signals be asserted for the same physical address, although it may be inescapable in
certain systems. If this is the case, then all overlapping chip-selects must have the same external ready
configuration and the same number of wait-states to be inserted into access cycles.
Internal signals are employed to access the peripheral control block (PCB) and these signals serve as chip
selects that are configured with no wait-states and no external ready. Therefore, the PCB can be
programmed with addresses that overlap external chip-selects only if these chip selects are configured in
the same manner.
Care should be exercised in the use of the Disable Address (DA) bit in the LMCS or UMCS registers
when overlapping an additional chip-select with either the lcs_n or ucs_n chip-selects. Setting the DA bit
to 1 prevents the address from being driven onto the AD bus for all accesses for which the respective
chip-select is active, including those accesses for which the multiple selects are active.
The mcs_n and pcs_n pins are dual-purpose pins, either as chip-selects or PIO inputs or outputs.
However, their respective ready and wait-state configurations for their chip-select function will be in
effect no matter for which function these two pins are actually programmed. This requires that even if
these pins are configured as PIO and enabled (by writing to the MMCS and MPCS registers for the
mcs_n chip-selects and to the PACS and MPCS registers for the pcs_n chip-selects), the ready and waitstate settings for these signals must agree with the settings for any over-lapping chip-selects as if they had
been configured as chip-selects.
Even though pcs4_n is not available as an external pin it has ready and wait-state logic and must therefore
follow the rules for overlapping chip-selects. pcs6_n and pcs5_n on the other hand have ready and waitstate logic that is disabled when these pins are configured as address bits a2 and a1 respectively.
If the chip-select configuration rules are not followed, the processor may hang with the appearance of
waiting for a ready signal even in a system in which ready (ardy or srdy) is always set to 1.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Upper Memory Chip Select
The ucs_n chip-select is for the top of memory. On reset, the micro controller begins fetching and
executing instructions at memory location FFFF0h. As a result, upper memory is usually utilized for
instruction memory. To this end, ucs_n is active on reset and has a memory range of 64Kbytes (F0000h
to FFFFFh) as default along with external ready required and three wait-states automatically inserted.
The lower boundary of ucs_n is programmable to provide ranges of 64Kbytes to 512Kbytes.
Low Memory Chip Select
The lcs_n chip-select is for lower memory. As the interrupt vector table is at the bottom of memory
beginning at 00000h, this pin us usually utilized for control data memory. Unlike ucs_n, this pin is
inactive on reset, but it can be activated by any read or write to the LMCS register.
Midrange Memory Chip Selects
There are four midrange chip-selects, mcs3_n-mcs0_n, which may be used in a user-located memory
block. The base address of the memory block may be located anywhere in the 1-Mbyte memory address
space with some exceptions. The memory spaces used by the ucs_n and lcs_n chip-selects are excluded,
as are the pcs6_n, pcs5_n, and pcs3_n – pcs0_n. If the pcs_n chip-selects are mapped to I/O space then
the MCS address range can overlap the PCS address range.
Both the Midrange Memory Chip Select (MMCS) register and the MCS and PCS Auxiliary register
(MPCS) registers are used to program the four midrange chip-selects. The MPCS register is used to
configure the block size, whereas the MMCS register configures the base address, the ready condition,
and the wait states of the memory block accessed by the mcs_n pin. The chip selects (mcs3_n-mcs0_n)
are activated by performing a read or write operation of the MMCS and MPCS registers. The assertion of
the MCS outputs occurs with the same timing as the multiplexed AD address bus (ad15-ad0 or ao15-ao8
and ad7-ad0). The a19-a0 may be used for address selection, but the timing will be delayed by a half
clock cycle over the timing used for the ucs_n and lcs_n.
Peripheral Chip Selects
There are six peripheral chip-selects, pcs6_n, pcs5_n, and pcs3_n – pcs0_n, that may be used within a
user-defined memory or I/O block. The base address of this user-defined memory block can be located
anywhere within the 1-Mbyte memory address space except for the spaces associated with the ucs_n,
lcs_n, and mcs_n chip selects. Or it may be programmed to the 64Kbyte I/O space. pcs4_n is not
available.
Both the Peripheral Chip Select (PACS) register and the MCS and PCS Auxiliary register (MPCS)
registers are used to program the six peripheral chip-selects, pcs6_n, pcs5_n, and pcs3_n – pcs0_n. The
PACS register sets the base address, the ready condition, and the wait states for the pcs3_n – pcs0_n
outputs.
The MPCS register configures pcs6_n and pcs5_n pins as either chip selects or address pins a1 and a2
respectively. When these pins are chip selects the MPCS register also configures them as being active
during memory or I/O bus cycles, and their ready and wait states.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
None of the pcs_n pins are active at reset. Both the Peripheral Chip Select (PACS) register and the MCS
and PCS Auxiliary register (MPCS) registers must be read or written to activate the pcs_n pins aws chip
selects.
pcs6_n and pcs5_n may be programmed to have 0 to 3 wait-states, whereas pcs3_n – pcs0_n may be
programmed to have these and 5, 7, 9, and 15 wait-states.
Refresh Control
The Refresh Control Unit (RCU) generates refresh bus cycles. The RCU generates a memory read
request after a programmable period of time to the bus interface unit.
The ENA bit in the Enable RCU register (EDRAM) enables refresh cycles, operating off the processor
internal clock. If the processor is in power-save mode, the RCU must be reconfigured for the new clock
rate.
If the hlda pin is asserted when a refresh request is initiated (indicating a bus hold condition), the
processor disables the hlda pin to allow a refresh cycle to be performed. The external circuit bus master
must deassert the hold signal for at least one clock period to permit the execution of the refresh cycle.
Interrupt Control
Interrupt requests originate from a variety of internal and external sources that are arranged by the internal
interrupt controller in priority order and presented one by one to the processor.
Six external interrupt sources, five maskable (int4-int0) and one nonmaskable (NMI), are connected to
the processor and six internal interrupt sources (three timers, two DMA channels, and the asynchronous
serial port that are not brought out to external pins).
The five external maskable interrupt request pins can be used as direct interrupt requests. However,
should more interrupts be needed, int3-int0 may be with an external interrupt controller of the 82C59A
type. By programming the internal interrupt controller to slave mode, an external 82C59A compatible
interrupt controller can be used as the system master. Interrupt nesting can be used in all cases that permit
interrupts of a higher priority to interrupt those of a lower priority.
When an interrupt is accepted, other interrupts are disabled, but may be re-enabled by setting the Interrupt
Enable Flag (IF), in the Processor Status Flags register, during the Interrupt Service Routine (ISR).
Setting IF permits interrupts of equal or greater priority to interrupt the currently running ISR.
Further interrupts from the same source will be blocked until the corresponding bit in the In-Service
register (INSERV) is cleared. Special Fully Nested mode is invoked for int0 and int1 by the SFNM bit in
the INT0 and INT1 control registerm, respectively, when this bit is set to 1. In this mode a new interrupt
may be generated by these sources regardless of the in-service bit. The following table shows the
priorities of the interrupts at power-on reset.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Interrupt Types
Interrupt Name
Divide Error Exception (1)
Trace Interrupt (2)
Non-maskable Interrupt (NMI)
Breakpoint Interrupt (1)
(1)
INT0 Detected Overflow Exception
(1)
Array Bounds Exception
Unused Opcode Exception
(1)
(1, 3)
ESC Opcode Exception
(4, 5)
Timer 0 Interrupt
(4, 5)
Timer 1 Interrupt
(4, 5)
Timer 2 Interrupt
Reserved
(5)
DMA 0 Interrupt
(5)
DMA 1 Interrupt
INT0 Interrupt
INT1 Interrupt
INT2 Interrupt
INT3 Interrupt
(6)
INT4 Interrupt
(6)
Watchdog Timer Interrupt
(6)
Asynchronous Serial Port Interrupt
Reserved
00h
01h
02h
03h
04h
05h
Vector
Table
Address
00h
04h
08h
0ch
10h
14h
06h
18h
N/A
1
07h
08h
12h
13h
09h
0ah
0bh
0ch
0dh
0eh
0fh
10h
11h
14h
15h – 1fh
1ch
20h
48h
4ch
24h
28h
2ch
30h
34h
38h
3ch
40h
44h
50h
54h – 7ch
N/A
08h
08h
08h
1
2A
2B
2C
0ah
0bh
0ch
0dh
0eh
0fh
10h
11h
14h
3
4
5
6
7
8
9
9
9
Interrupt
Type
EOI
Type
Overall
Priority
Related
Instructions
N/A
N/A
N/A
N/A
N/A
N/A
1
1A
1B
1
1
1
DIV, IDIV
All
INT3
INT0
BOUND
Undefined
Opcodes
ESC Opcodes
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Interrupt Table Notes
If the user does not change priority levels, the default priority level will be used for the interrupt sources.
1. Instruction execution generates interrupts.
2. Performed in the same manner as for the 8086 & 8088.
3. An ESC opcode causes a trap.
4. Only one IRQ is generated for the three timers so they share priority level with regard to other
sources. The timers themselves have an interrupt priority order among themselves (2A > 2B > 2C).
5. These interrupt types are programmable in Slave mode.
6. Not available in slave mode.
Timer Control
The IA186EM and IA188EM each have three 16-bit programmable timers.
Timer0 and timer1 each have an input and an output connected to external pins that permit them to count
or time events, produce variable duty-cycle waveforms or non-repetitive waveforms. Timer1 can also be
configured as a Watchdog timer.
Timer2 does not have any external connections. Therefore, it is confined to internal functions such as
real-time coding, time-delay applications, a prescaler for timer0 and timer1, or to synchronize DMA
transfers.
The Peripheral Control Block contains eleven 16-bit registers to control the programmable timers. The
present value of the timer is located in the associated timer-count register, which may be read from or
written to at any time regardless of whether the timer is in operation or not. The value of the timer-count
register is incremented by the microcontroller every time a timer event takes place.
The maximum value that each timer can reach is determined by the value stored in the associated
maximum count register. Upon reaching this maximum count value, the timer count register is reset to 0
in the same clock cycle that this count was attained, so that the timer count register does not store this
maximum value. Both timer0 and timer1 have two maximum count registers, a primary and a secondary
register, permitting each timer to alternate between two discrete maximum values.
Timer0 and timer1 can have the maximum count registers configured in one of two ways, primary only or
both primary and secondary. If only the primary is configured to operate, on reaching the maximum
count the output pin will go low for one clock period. If both the primary and secondary registers are
enabled, the output pin reflects the state of whichever of the two registers is in control at the time,
generating the required waveform that is dependent on the two values in the maximum count registers.
The timers can operate at a quarter of the internal clock frequency, as they are polled every fourth clock
period. Alternatively, an external clock can be used. However, in this case the timer output can take six
clock cycles to respond to the input.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Direct Memory Access (DMA)
Direct memory access (DMA) relieves the CPU of involvement in the transfer of data between memory
and peripherals over either one or both high-speed DMA channels. Data can be transferred from memory
to I/O, I/O to memory, memory-to-memory, or I/O-to-I/O. Furthermore, the DMA channels can be
connected to the asynchronous serial port.
The IA186EM microcontroller supports the transfer of both bytes and words, to and from, even or odd
addresses, but it does not support word transfers to memory that is configured for byte accesses. The
IA188EM does not support word transfers at all. Each data transfer will take two bus cycles (a minimum
of 8 clock cycles).
There are three sources of DMA requests for each DMA channel: the channel request pin (drq1 – drq0),
Timer2, or the system software. The two channels can be programmed to have different priorities to
facilitate the resolution of simultaneous DMA requests or to interrupt a transfer on the other channel.
DMA Operation
The Peripheral Control Block contains six registers for each DMA channel to control and specify the
operation of the channels. The six registers consist of a pair of registers to store a 20-bit source address, a
pair of registers to store a 20-bit destination address, a 16-bit transfer count register, and a 16-bit control
register.
The number of DMA transfers required is designated in the DMA Transfer Count register and can be up
to 64K bytes or words and, furthermore, will end automatically. DMA channel function is defined by the
Control registers, which along with the other 5 registers can be changed at any time, including during a
DMA transfer and are implemented immediately.
DMA Channel Control Registers
See D1CON (0dah) & D0CON (0cah) - DMA CONtrol Registers above. Briefly, these registers specify
the following:
"
Is the data destination in memory or I/O space? (Bit 15).
"
Is the destination address incremented, decremented, or unchanged after each transfer? (Bit 14 & 13).
"
Is the data source in memory or I/O space? (Bit 12).
"
Is the source address incremented, decremented, or unchanged after each transfer? (Bit 11 & 10).
"
Do DMA transfers cease upon reaching a designated count? (Bit 9).
"
Does the last transfer generate an interrupt? (Bit 8).
"
Synchronization mode. (Bits 7 & 6).
"
The relative priority of one DMA channel with respect to the other. (Bit 5).
"
Acceptance of DMA requests from Timer2. (Bit 4).
"
Byte or word transfers. (Bit 0).
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
20-bit Adder/Subtractor
As of Production Version -03
Adder Control
Logic
20
Timer Request
Request
Selection
Logic
Transfer Counter Ch. 1
Destination Address Ch. 1
Source Address Ch. 1
Transfer Counter Ch. 0
Destination Address Ch. 0
Source Address Ch. 0
DMA
Control
Logic
20
Channel Control Register 1
Channel Control Register 0
drq1
drq0
Interrupt
Request
16
Internal Address/Data Bus
Figure 4. DMA Unit
DMA Priority
DMA transfers have a higher priority than CPU transfers, with the exception of word accesses to odd
memory locations or between locked memory addresses. The CPU cannot access memory during a DMA
transfer and a DMA transfer cannot be suspended by an interrupt request. Continuous DMA activity will
thus cause interrupt latency to suffer. However, an NMI request halts any DMA activity, enabling the
CPU to respond promptly to the request.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Asynchronous Serial Port
The asynchronous serial port employs standard industry communication protocols in its implementation
of full duplex, bi-directional data transfers. The port can be the source or destination of DMA transfers.
The following features are supported:
" Full-duplex data transfers
" 7-, 8-, or 9-bit data transfers
" Odd, even, or no parity
" One or two stop bits
" Error detection provided by Parity, Framing, or Overrun errors
" Hardware handshaking is achieved with the following selectable control signals: Clear-to-send (cts_n)
o Enable receiver request (enrx_n)
o Ready to send (rts_n)
o Ready to receive (rtr_n)
"
"
"
"
"
DMA to and from the port
The port has its own maskable interrupt
The port has an independent baud rate generator
Maximum baud rate is 1/32 of the processor clock
Transmit and Receive lines are double buffered
In power-save mode the baud rate generator divide factor must be re-programmed to compensate for the
change in clock rate.
Synchronous Serial Port
The synchronous serial port allows the microcontrollers to communicate with ASICs that are required to
be programmed but have a pin shortage. The four-pin interface allows half-duplex, bi-directional data
transfer at a maximum of 20 Mbits/sec with a 40 MHz CPU clock.
The synchronous serial interface of the AI186EM/AI188EM operates as the master port in a master/slave
arrangement.
There are four pins in the synchronous serial interface for communication with the system elements.
These pins are two enables (SDEN0 and SDEN1), a clock (SCLK) and a data pin (SDATA).
In power-save mode, the baud rate generator divide factor must be re-programmed to compensate for the
change in clock rate.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Programmable I/O (PIO)
32 pins are programmable as I/O signals. The following tables list these pins with their pin name and PIO
number, first in PIO numerical order, then in pin name alphabetical order. Programming a pin as a PIO
should only be performed if the normal pin function is not required as the normal function is disabled and
no longer has any affect on the pin. A PIO pin can be programmed as an input or output with or without
either a weak pull-up or pull-down, or as an open-drain output. Following a power-on reset, the PIO pins
have default status as shown in the following tables.
PIO
No.
0
1
2
3
4
5
6
7(1)
8(1)
9(1)
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26(1,2)
27
28
29(1,2)
30
31
Associated Pin
tmrin1
tmrout1
pcs6_n/a2
pcs5_n/a1
dt/r_n
den_n
srdy
a17
a18
a19
tmrout0
tmrin0
drq0
drq1
mcs0_n
mcs1_n
pcs0_n
pcs1_n
pcs2_n
pcs3_n
sclk
sdata
sden0
sden1
mcs2_n
mcs3_n/rfsh_n
uzi_n
txd
rxd
s6/clkdiv2
int4
int2
Power-On Reset
Status
Input with pull-up
Input with pull-down
Input with pull-up
Normal operation(3)
Normal operation(3)
Normal operation(3)
Normal operation(3)
Normal operation(3)
Normal operation(3)
Normal operation(3)
Input with pull-down
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Associated Pin
a17
a18
a19
den_n/ds_n
drq0
drq1
dt/r_n
int2/
int4
mcs0_n
mcs1_n
mcs2_n
mcs3_n/rfsh_n
pcs0_n
pcs1_n
pcs2_n
pcs3_n
pcs5_n/a1
pcs6_n/a2
rxd
s6/clkdiv2
sclk
sdata
sden0
sden1
srdy
tmrin0
tmrin1
tmrout0
tmrout1
txd
uzi_n
PIO No.
7
8
9
5
12
13
4
31
30
14
15
24
25
16
17
18
19
3
2
28
29
20
21
22
23
6
11
0
10
1
27
26
Power-On Reset
Status
Normal operation(3)
Normal operation(3)
Normal operation(3)
Normal operation(3)
Input with pull-up
Input with pull-up
Normal operation(3)
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up(1,2)
Input with pull-up
Input with pull-up
Input with pull-up
Input with pull-up
Normal operation(4)
Input with pull-up
Input with pull-up
Input with pull-down
Input with pull-down
Input with pull-up
Input with pull-up
NOTES
These notes apply to both tables:
1. Emulators use these pins and also s2_n-s0_n, res_n, nmi, clkouta, bhe_n ale, ad15-ad0, and a15-a0.
2. If bhe_n/aden_n (IA186EM) or rfsh_n/aden_n (IA188M) is held low during power-on reset, these
pins will revert to normal operation.
3. Input with pull-up option available when used as PIO.
4. Input with pull-down option available when used as PIO.
These default status setting may be changed as desired.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
The three most significant bits of the address bus (a19 – a17) start with their normal function on poweron reset, permitting the processor to begin fetching instructions from the boot address FFFF0h.
Furthermore, normal function is the default setting for dt/r_n, den_n, and srdy on power-on reset.
s6/clkdiv2_n and uzi_n automatically return to normal operation in the event that the ad15-ad0 bus
override is enabled. The ad15-ad0 bus override is enabled if the bhe_n/aden_n for the IA186EM, or the
rfsh2_n/aden_n for the IA188EM, is held low during power-on reset.
Pin Descriptions
a19 (pio9), a18 (pio8), a17 (pio7), a16 – a0 Address Bus (synchronous outputs with tristate)
These pins are the system’s source of non-multiplexed I/O or memory addresses and occur a half
CLKOUTA cycle before the multiplexed address/data bus (ad15-ad0 for the IA186EM or ao15_ao8 and
ad7-ad0 for the AI188EM). The address bus is tristated during a bus hold or reset.
ad15 – ad8 IA186EM Address/Data bus (level-sensitive synchronous inouts with tristate)
These pins are the system’s source of time-multiplexed I/O or memory addresses and data. The address
function of these pins can be disabled. (See bhe_n/aden_n pin description.) If the address function of
these pins is enabled, the address will be present on this bus during t1 of the bus cycle and data will be
present during t2, t3, and t4 of the same bus cycle.
If whb_n is not active, these pins are tristated during t2, t3, and t4 of the bus cycle.
The address/data bus is tristated during a bus hold or reset.
These pins can be used to load the internal Reset Configuration register (RESCON, offset 0F6h) with
configuration data during a power-on reset.
ad7 – ad0 Address/Data bus (level-sensitive synchronous inouts with tristate)
These pins are the system’s source of time-multiplexed low-order byte of the addresses for I/O or memory
and 8-bit data. The low-order address byte will be present on this bus during t1 of the bus cycle and the 8bit data will be present during t2, t3, and t4 of the same bus cycle.
The address function of these pins can be disabled. (See bhe_n/aden_n pin description.)
If wlb_n is not active, these pins are tristated during t2, t3, and t4 of the bus cycle. The address/data bus is
tristated during a bus hold or reset.
ao15 – ao8 IA188EM Address-only bus (level-sensitive synchronous outputs with tristate)
The address-only bus will contain valid high-order address bits during the bus cycle (t1, t2, t3, and t4) if the
bus is enabled.
These pins are combined with ad7-ad0 to complete the multiplexed address bus and are tristated during a
bus hold or reset condition.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
ale Address Latch Enable (synchronous output)
This signal indicates the presence of an address on the address bus (ad15-ad0 for the IA186EM or ao15ao8 and ad7-ad0 for the AI188EM), which is guaranteed to be valid on the falling edge of ale.
ardy Asynchronous Ready (level-sensitive asynchronous input)
This asynchronous signal provides an indication to the microcontroller that the addressed I/O device or
memory space will complete a data transfer. This active high signal is asynchronous with respect to
clkouta and if the falling edge of ardy is not synchronized to clkouta and additional clock cycle may be
added
ardy should be tied high to maintain a permanent assertion of the ready condition. On the other hand, if
the ardy signal is not used by the system it should be tied low, which passes control to the srdy signal.
bhe_n/aden_n IA186EM only Bus High Enable (synchronous output with tristate) /Address Enable
(input with internal pull-up)
bhe_n - bhe_n and address bit ad0 or a0 inform the system which bytes of the data bus (upper, lower, or
both) are involved in the current memory access bus cycle as shown in the following table.
bhe_n
0
0
1
1
ad0
0
1
0
1
Type of Bus Cycle
Word Transfer
High-Byte Transfer (Bits 15-8)
Low-Byte Transfer (Bits 7-0)
Refresh
bhe_n does not require latching and during bus hold and reset is tristated. It is asserted during t1 and
remains so through t3 and tw.
The high and low byte write enable functions of bhe_n and ad0 are performed by whb_n and wlb_n
respectively.
When using the ad bus, DRAM refresh cycles are indicated by bhe_n/aden_n and ad0 both being high.
During refresh cycles the a and ad busses may not have the same address during the address phase of the
ad bus cycle necessitating the use of ad0 as a determinant for the refresh cycle rather than A0.
An additional signal is utilized for PSRAM refreshes (see mcs3_n/rfsh_n pin description).
aden_n
There is a weak internal pull-up on bhe_n/aden_n obviating the need for an external pull-up and reducing
power consumption.
Holding aden_n high or letting it float during power-on reset passes control of the address function of the
ad bus (ad15-ad0) during LCS and UCS bus cycles from aden_n to the DA bit in LMCS and UMCS
registers. When the address function is selected, the memory address is placed on the a19-a0 pins.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Holding aden_n low during power-on reset, both the address and data are driven onto the ad bus
independently of the DA bit setting. This pin is normally sampled one clock cycle after the rising edge of
res_n.
clkouta – Clock Output A (synchronous output)
This pin is the internal clock output to the system. Bits 9, 8, and 2-0 of the Power-Save Control register
(PDCON) control the output of this pin, which may be tristated, output the crystal input frequency (X1),
or output the power save frequency (internal processor frequency after divisor). clkouta can be used as a
full speed clock source in power-save mode. The A.C. timing specifications that are clock-related refer to
clkouta, which remains active during reset and hold conditions.
clkoutb – Clock Output B (synchronous output)
This pin is an additional clock out put to the system. Bits 11, 10, and 2-0 of the Power-Save Control
register (PDCON) control the output of this pin, which may be tristated, output the PLL frequency, or
may output the power save frequency (internal processor frequency after divisor). clkoutb remains active
during reset and hold conditions.
den_n (pio5) – Data Enable Strobe ( synchronous output with tristate)
This pin provides an output enable to an external bus data bus transmitter or receiver. This signal is
asserted during I/O, memory, and interrupt acknowledge processes and is deasserted when dt/r_n
undergoes a change of state. It is tristated for a bus hold or reset.
drq1-drq (pio12-pio13) – DMA Requests (synchronous level-sensitive inputs)
drq0 – An external device that is ready for DMA channel 1 or 0 to carry out a transfer indicates to the
microcontroller this readiness on these pins. They are level triggered, internally synchronized, not
latched, and must remain asserted until dealt with.
dt/r_n (pio4) – Data Transmit or Receive (synchronous output with tristate)
The microntroller transmits data when dt/r_n is pulled high and receives data when this pin is pulled low.
It floats during a reset or bus hold condition.
gnd – Ground
Six or seven pins, depending on package, connect the microcontroller to the system ground.
hlda – Bus Hold Acknowledge (synchronous output)
This pin is pulled high to signal the system that the microntroller has ceded control of the local bus, in
response to a high on the hold signal by an external bus master, after the microcontroller has completed
the current bus cycle. The assertion of hlda is accompanied by the tristating of den_n, rd_n, wr_n,
s2_n-s0_n, ad15-ad0, s6, a19-a0, bhe_n, whb_n, wlb_n, and dt/r_n, followed by the driving high of the
chip selects ucs_n, lcs_n, mcs3_n - mcs0_n, pcs6_n – pcs5_n, and pcs3_n – pcs0_n. The external bus
master releases control of the local bus by the deassertion of hold that in turn induces the microcontroller
to deassert the hlda. The microcontroller can take control of the bus if necessary (to execute a refresh for
example), by deasserting hlda without the bus master first deasserting hold. This requires that the
external bus master be able to deassert hold to permit the microcontroller to access the bus.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
hold – Bus Hold Request (synchronous level-sensitive input)
This pin is pulled high to signal the microcontroller that the system requires control of the local bus.
hold latency time (time between the hold and hlda) depends on the current processor activity when the
hold is received. A hold request is second only do a DMA refresh request in priority of processor activity
requests. If a hold request is received at the moment a DMA transfer starts, the hold latency can be up to
4 bus cycles. (On the IA186EM only, this happens when a word transfer is taking place from an odd to an
odd address). This means that the latency may be 16 clock cycles without wait states. Furthermore, if
lock transfers are being performed, then the latency time is increased by the during of the locked transfer.
int0 – Maskable Interrupt Request 0 (asynchronous input)
The int0 pin provides an indication that an interrupt request has occurred, and provided that int0 is not
masked, program execution will continue at the location specified by the INT0 vector in the interrupt
vector table. Although interrupt requests are asynchronous, they are synchronized internally and may be
edge- or level-triggered. The assertion of the interrupt request must be maintained until it is handled, to
ensure that it is recognized.
int1/select_n – Maskable Interrupt Request 1/Slave Select (both are asynchronous inputs)
int1 - The int1 pin provides an indication that an interrupt request has occurred, and provided that int1 is
not masked, program execution will continue at the location specified by the INT1 vector in the interrupt
vector table. Although interrupt requests are asynchronous, they are synchronized internally and may be
edge- or level-triggered. The assertion of the interrupt request must be maintained until it is handled, to
ensure that it is recognized.
select_n – This pin provides an indication to the microcontroller that an interrupt type has been placed on
the address/data bus when the internal Interrupt Control Unit is slaved to an external interrupt controller.
Before this occurs, however, the int0 pin must have indicated an interrupt request has occurred.
int2/inta0_n (pio31) – Maskable Interrupt Request 2 (asynchronous input) / Interrupt Acknowledge
0 (synchronous output)
int2 - The int2 pin provides an indication that an interrupt request has occurred, and provided that int2 is
not masked, program execution will continue at the location specified by the int2 vector in the interrupt
vector table. Although interrupt requests are asynchronous, they are synchronized internally and may be
edge- or level-triggered. The assertion of the interrupt request must be maintained until it is handled, to
ensure that it is recognized. When int0 is configured to be in cascade mode, int2 changes its function to
inta0_n.
inta0_n – this function indicates to the system that the microcontroller requires an interrupt type in
response to the interrupt request int0 when the microcontroller’s Interrupt Control Unit is in cascade
mode. The peripheral device that issued the interrupt must provide the interrupt type.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
int3/inta1_n/irq – Maskable Interrupt Request 3 (asynchronous input) / Interrupt Acknowledge 1
(synchronous output) / Interrupt Acknowledge (synchronous output)
int3 - The int3 pin provides an indication that an interrupt request has occurred, and provided that int3 is
not masked, program execution will continue at the location specified by the int3 vector in the interrupt
vector table. Although interrupt requests are asynchronous, they are synchronized internally and may be
edge- or level-triggered. The assertion of the interrupt request must be maintained until it is handled, to
ensure that it is recognized. When int1 is configured to be in cascade mode, int3 changes its function to
inta1_n.
inta1_n – this function indicates to the system that the microcontroller requires an interrupt type in
response to the interrupt request int1 when the microcontroller’s Interrupt Control Unit is in cascade
mode. The peripheral device that issued the interrupt must provide the interrupt type.
irq – With the Interrupt Control Unit of the microcontroller in slave mode, the signal on this pin allows
the microcontroller to output an interrupt request to the external master interrupt controller.
int4/pio30 – Maskable Interrupt Request 4 (asynchronous input)
int4 - The int4 pin provides an indication that an interrupt request has occurred, and provided that int4 is
not masked, program execution will continue at the location specified by the int4 vector in the interrupt
vector table. Although interrupt requests are asynchronous, they are synchronized internally and may be
edge- or level-triggered. The assertion of the interrupt request must be maintained until it is handled, to
ensure that it is recognized.
lcs_n/once0_n – Lower Memory Chip Select (synchronous output with internal pull-up) / ONCE
Mode Request (input)
lcs_n - The lcs_n pin provides an indication that a memory access is occurring to the lower memory
block. The size of the Lower Memory Block and its base address are programmable, with the size
adjustable up to 512 Kbytes. lcs_n is held high during bus hold.
once0_n – (ONCE – ON Circuit Emulation). This pin and its companion pin once1_n define the
microcontroller mode during reset. These two pins are sampled on the rising edge of res_n and if both
are asserted low the microcontroller starts in ONCE mode, else it starts normally. In ONCE mode, all
pins are tristated and remain so until a subsequent reset. To prevent the microcontroller from entering
ONCE mode inadvertently, this pin has a weak pull-up that is only present during reset. Finally, this pin
is not tristated during bus hold.
mcs2_n – mcs0_n (no pio - pio15 – pio 14) – Midrange Memory Chip Selects (synchronous outputs
with internal pull-up)
mcs0_n - The mcs2_n and mcs0_n pins provide an indication that a memory access is in train to either
the second or third midrange memory block. The size of the Midrange Memory Block and its base
address are programmable. mcs2_n – mcs0_n are held high during bus hold and have weak pull-ups that
are only present during reset.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
mcs3_n/rfsh_n (pio25) – Midrange Memory Chip Select (synchronous output with internal pull-up)
/ Automatic Refresh (synchronous output)
mcs3_n - The mcs3_n pin provides an indication that a memory access is in train to the fourth region of
the midrange memory block. The size of the Midrange Memory Block and its base address are
programmable. mcs3_n is held high during bus hold and has a weak pull-up that is present only during
reset.
rfsh_n – This signal is timed for auto refresh to PSRAM or DRAM devices. The refresh pulse is output
only when the PSRAM or DRAM mode bit is set (EDRAM register bit 15). This pulse is of 1.5 clock
pulse duration with the rest of the refresh cycle made up of a deassertion period such that the overall
refresh time is met. Finally, this pin is not tristated during a bus hold.
nmi – Nonmaskable Interrupt (synchronous edge-sensitive input)
This is the highest priority interrupt signal and cannot be masked, unlike int4 – int0.
Program execution is transferred to the nonmaskable interrupt vector in the interrupt vector table, upon
the assertion of this interrupt (transition from Low to High), and this interrupt is initiated at the next
instruction boundary. For recognition to be assured the nmi pin must be held high for at least a clkouta
period so that the transition from low to high is latched and synchronized internally. The interrupt will
begin at the next instruction boundary.
The NMI is not involved in the priority resolution process that deals with the maskable interrupts, and
does not have an associated interrupt flag. This allows for a new NMI request to interrupt an NMI service
routine that is already underway. The interrupt flag IF is cleared, disabling the maskable interrupts, when
an interrupt is taken by the processor. If, during the NMI service routine, the maskable interrupts are reenabled, by use of STI instruction for example, the priority resolution of maskable interrupts will be
unaffected by the servicing of the NMI. For this reason, it is strongly recommended that the NMI interrupt
service routine does not enable the maskable interrupts.
pcs3_n - pcs0_n (pio19 – pio16) – Peripheral Chip Selects 3-0 (synchronous outputs)
These pins provide an indication that a memory access is under way for the corresponding region of the
peripheral memory block (I/O or memory address space). The base address of the Peripheral memory
block is programmable. pcs3_n – pcs0_n are held high during both bus hold and reset. These outputs are
asserted with the ad address bus over a 256-byte range each.
pcs5_n/A1– Peripheral Chip Select 5 (synchronous output) / latched Address Bit 1 (synchronous
output)
pcs5_n – This signal provides an indication that a memory access is under way for the sixth region of the
peripheral memory block (I/O or memory address space). The base address of the Peripheral memory
block is programmable. pcs5_n is held high during both bus hold and reset. This output is asserted with
the ad address bus over a 256-byte range.
A1 – This pin provides and internally latched address bit 1 to the system when the EX bit (bit 7) in the
MCS_n and PCS_n auxiliary (MPCS) register is 0. It retains its previously latched value during a bus
hold.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
pcs6_n/A2/ – Peripheral Chip Select 6 (synchronous output) / latched Address Bit 2 (synchronous
output)
pcs6_n – This signal provides an indication that a memory access is under way for the seventh region of
the peripheral memory block (I/O or memory address space). The base address of the Peripheral memory
block is programmable. pcs6_n is held high during both bus hold and reset. This output is asserted with
the ad address bus over a 256-byte range.
A2 – This pin provides and internally latched address bit 2 to the system when the EX bit (bit 7) in the
MCS_n and PCS_n auxiliary (MPCS) register is 0. It retains its previously latched value during a bus
hold.
pio31 – pio0
Programmable I/O Pins (asynchronous input/output open –drain)
32 individually programmable I/O pins are provided. See page 62.
rd_n - Read strobe (synchronous output with tristate)
This pin provides an indication to the system that a memory or I/O read cycle is under way. It will not to
be asserted before the ad bus is floated during the address to data transition. rd_n is tristated during bus
hold.
res_n - Reset (asynchronous level-sensitive input)
This pin forces a reset on the microcontroller. It has a Schmitt trigger to allow power-on reset generation
via an RC network. When this signal is asserted, the microcontroller immediately terminates its present
activity, clears its internal logic, and transfers CPU control to the reset address, FFFF0h.
res_n must be asserted for at least 1ms and may be asserted asynchronously to clkouta as it is
synchronized internally. Furthermore, Vcc must be within specification and clkouta must be stable for
more than four of its clock periods for the period that res_n is asserted.
The microcontroller starts to fetch instructions 6.5 clkouta clock periods after the deassertion of res_n.
rfsh2_n/aden_n - IA188EM only - Refresh 2 (synchronous output with tristate) / Address Enable
(input with internal pull-up)
rfsh2_n – Indicates that a DRAM refresh cycle is being performed when it is asserted low. However, this
is not valid in PSRAM mode where mcs3_n/rfsh_n is used instead.
aden_n – If this pin is held high during power-on reset, the ad bus (ao15-ao8 & ad7-ad0) is controlled
during the address portion of the LCS and UCS bus cycles by the DA bit (bit 7) in the LCS and UCS
registers. If the DA bit is 1, the address is accessed on the a19-a0 pins reducing power consumption. The
weak pull-up on this pin obviates the necessity of an external pull-up.
If this pin is held low during power-on reset, the ad bus is used for both addresses and data without regard
for the setting of the DA bits. rfsh2_n/aden_n is sampled one crystal clock cycle after the rising edge of
res_n and is tristated during bus holds and ONCE mode.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
rxd (pio28) - Receive Data (asynchronous input)
This signal connects asynchronous serial receive data from the system to the asynchronous serial port.
s2_n-s0_n - Bus Cycle Status (synchronous outputs with tristate)
These three signals inform the system of the type of bus cycle is in progress. s2_n may be used to
indicate whether the current access is to memory or I/O, and s1_n may be used to indicate whether data is
being transmitted or received. These signals are tristated during bus hold and hold acknowledge.
The coding for these pins is shown in the following table.
s2_n
0
0
0
0
1
1
1
1
s1_n
0
0
1
1
0
0
1
1
s0_n
0
1
0
1
0
1
0
1
Bus Cycle
Interrupt acknowledge
Read data from I/O
Write data to I/O
Halt
Instruction fetch
Read data from memory
Write data to memory
None (passive)
s6/clkdiv2_n (pio29) - Bus Cycle Status Bit 6 (synchronous output) /Clock Divide by 2 (input with
internal pull-up)
s6 - This signal is high during the second and remaining cycle periods, i.e. t2 – t4, indicating that a DMA–
initiated bus cycle is under way. s6 is tristated during bus hold or reset.
clkdiv2_n – The microcontroller enters clock divide-by-2 mode, if this signal is held low during poweron-reset. In this mode, the PLL is disabled and the processor receives the external clock divided by 2.
Sampling of this pin occurs on the rising edge of res_n.
Should this pin be used as pio29 configured as an input, care should be taken that it is not driven low
during power-on-reset. This pin has an internal pull-up so it is not necessary to drive the pin high even
though it defaults to an input PIO.
sclk – Serial Clock (synchronous outputs with tristate)
This pin provides a slave device with a synchronous serial clock permitting synchronization of the
transmit and receive data exchanges between the slave and the microcontroller. sclk is the result of
dividing the internal clock by 2, 4, 8, or 16 dependent on the contents of the Synchronous Serial Control
(SSC) register bits 5-4. Accessing either the SSR of SSD registers activates the sclk for eight cycles.
When sclk is not active the microcontroller hold is high.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
sdata – Serial Data (synchronous inout)
This pin connects a slave device to synchronous serial transmit and receive data. The last value is
maintained on this pin when it is inactive.
sden1 - sden0 – Serial Data Enables (synchronous outputs with tristate)
These pins facilitate the transfer of data on ports 1 and 0 of the Synchronous Serial Interface (SSI). Either
sden1 or sden0 is asserted by the microcontroller at the start of the data transfer and is de-asserted it when
the transfer is completed. These pins are held low by the microcontroller when they are inactive.
srdy/pio6 - Synchronous Ready (synchronous level-sensitive input)
This signal is an active high input synchronized to clkouta and indicates to the microcontroller that a data
transfer will be completed by the addressed memory space or I/O device.
In contrast to the Asynchronous Ready (ardy), which requires internal synchronization, srdy permits
easier system timing as it already synchronized. Tying srdy high will always assert this ready condition,
whereas tying it low will give control to ardy.
tmrin0/pio11 - Timer Input 0 (synchronous edge-sensitive input)
This signal may be either a clock or control signal for the internal timer 0. The timer is incremented by
the microcontroller after it synchronizes a rising edge of tmrin0. When not used, tmrin0 must be tied
high, or when used as pio11 it is pulled up internally.
tmrin1/pio0 - Timer Input 1 (synchronous edge-sensitive input)
This signal may be either a clock or control signal for the internal timer 1. The timer is incremented by
the microcontroller after it synchronizes a rising edge of tmrin1. When not used, tmrin1 must be tied
high, or when used as pio0 it is pulled up internally.
tmrout0/pio10 - Timer Output 0 (synchronous output)
This signal provides the system with a single pulse or a continuous waveform with a programmable duty
cycle. It is tristated during a bus hold or reset.
tmrout1/pio1 - Timer Output 1 (synchronous output)
This signal provides the system with a single pulse or a continuous waveform with a programmable duty
cycle. It is tristated during a bus hold or reset.
txd/pio22 - Transmit Data (asynchronous output)
This pin provides the system with asynchronous serial transmit data from the serial port.
ucs_n/once1_n - Upper Memory Chip Select (synchronous output) / ONCE Mode Request 1 (input
with internal pull-up)
ucs_n - This pin provides an indication that a memory access is in train to the upper memory block. The
size of the Upper Memory Block and its base address are programmable, with the size adjustable up to
512 Kbytes. ucs_n is held high during bus hold.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
After power-on-reset, ucs_n is active low and program execution begins at FFFF0h with the default
configuration of the ucs_n chip select is for 64 Kbytes memory range from F0000h to FFFFFh.
once1_n – (ONCE – ON Circuit Emulation). This pin and its companion pin once0_n define the
microcontroller mode during reset. These two pins are sampled on the rising edge of res_n and if both
are asserted low the microcontroller starts in ONCE mode, else it starts normally. In ONCE mode all pins
are tristated and remain so until a subsequent reset. To prevent the microcontroller from entering ONCE
mode inadvertently, this pin has a weak pull-up that is only present during reset. Finally, this pin is not
tristated during bus hold.
uzi_n/pio26 – Upper Zero Indicate (synchronous output)
This pin allows the designer to determine if an access to the interrupt vector table is in progress by ORing
it with bits 15-10 of the address and data bus (ad15-ad10 on the AI186EM and ao15-ao10 on the
AI188EM). uzi_n is the logical OR of the inverted a19-a16 bits. It asserts in the first period of a bus
cycle and is held throughout the cycle.
At reset uzi_n should be pulled high or should be allowed to float. If this pin is pulled low at reset, the
microcontroller enters a reserved clock test mode.
vcc – Power Supply (input)
These pins supply power (+5V) to the microcontroller.
whb_n – Write High Byte - IA186EM only - (synchronous output with tristate)
This pin and wlb_n provide an indication to the system of which bytes of the data bus (upper, lower or
both) are taking part in a write cycle. whb_n is asserted with ad15_ad8 and is the logical OR of bhe_n
and wr_n. It is tristated during reset.
wlb_n/wb_n – Write Low Byte - IA186EM only - (synchronous output with tristate) / Write Byte –
IA188EM only - (synchronous output with tristate)
wlb_n - wlb_n and whb_n provide an indication to the system of which bytes of the data bus (upper,
lower, or both) are taking part in a write cycle. wlb_n is asserted with ad7_ad0 and is the logical OR of
ad0 and wr_n. It is tristated during reset.
wb_n – On the IA188EM microcontroller, wb_n provides an indication that a write to the bus is
occurring. It shares the same early timing as that of the non-multiplexed address bus, and is associated
with ad7-ad0. It is tristated during reset.
wr_n – Write Strobe (synchronous output)
This pin provides an indication to the system that the data currently on the bus is to be written to a
memory or I/O device. It is tristated during a bus hold or reset.
x1 – Crystal Input (input)
This pin and x2 are the connections for a fundamental mode or third-overtone, parallel-resonant crystal
used by the internal oscillator circuit. An external clock source for the microcontroller is connected to x1
while the x2 pin is left unconnected.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
x2 – Crystal Input (input)
This pin and x1 are the connections for a fundamental mode or third-overtone, parallel-resonant crystal
used by the internal oscillator circuit. An external clock source for the microcontroller is connected to x1
while the x2 pin is left unconnected.
Pins Used by Emulators
The following pins are used by emulators:
a19-a0
ao15-ao8
ad7-ad0
ale
bhe_n/aden_n (on the AI186EM)
clkouta
rfsh2_n/aden_n (on the AI188EM)
rd_n
s2_n-s0_n
s6/lock_n/clkdiv2_n
uzi_n
Emulators require that s6/lock_n/clkdiv2_n and uzi_n be configured as their normal functions, i.e. as s6
and uzi_n respectively. Holding bhe_n/aden_n (AI186EM) or rfsh_n/aden_n (AI188EM) low during
the rising edge of res_n, s6 and uzi_n will be configured in their normal functions instead of as PIOs, at
reset.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Instruction Set Summary
NOTE
Key to abbreviations appears at the end of the table.
Instruction
Mnemonic
AAA
AAD
AAM
AAS
Description
ASCII adjust AL after add
ASCII adjust AX before divide.
ASCII adjust AL after multiply
ASCII adjust AL after subtract
Add imm8 to AL with carry
Add imm16 to AX with carry
Add imm8 to r/m8 with carry
Add imm16 to r/m16 with carry
ADC
Add sign extended imm8 to r/m16
with carry
Add byte reg to r/m8 with carry
Add word reg to r/m16 with carry
Add r/m8 to byte reg with carry
Add r/m16 to word reg with carry
Add imm8 to AL
Add imm16 to AX
Add imm8 to r/m8
Add imm16 to r/m16
ADD
AND
Add sign extended imm8 to r/m16
Add byte reg. to r/m8
Add word reg. to r/m16
Add r/m8 to byte reg
Add r/m16 to word reg
And imm8 with AL
Opcode - Hex
byte byte byte
1
2
3-6
37
D5
0A
D4
0A
3F
14
ib
15
iw
/2
80
ib
/2
81
iw
/2
83
ib
10
/r
11
/r
12
/r
13
/r
04
ib
05
iw
/0
80
ib
/0
81
iw
/0
83
ib
00
/r
01
/r
02
/r
03
/r
24
ib
Clock Cycles
IA186
IA188
8
15
19
7
3
4
8
15
19
7
3
4
4/16
4/16
4/16
4/20
4/16
4/20
3/10
3/10
3/10
3/10
3
4
3/10
3/14
3/10
3/14
3
4
4/16
4/16
4/16
4/20
4/16
4/20
3/10
3/10
3/10
3/10
3
3/10
3/14
3/10
3/14
3
And imm16 with AX
25
iw
4
4
And imm8 with r/m8
80
/4
ib
4/16
4/16
And imm16 with r/m16
81
/4
iw
4/16
4/20
And sign-extended imm8 with
r/m16
83
/4
ib
4/16
4/20
And byte reg. with r/m8
20
/r
3/10
3/10
Flags Affected
O D I
T S Z A P C
U
U
U
U
-
-
-
U
R
R
U
U
R
R
U
R
U
U
R
U
R
R
U
R -
-
-
R R R R R
R -
-
-
R R R R R
0 -
-
-
R R U R
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
R
U
U
R
0
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
And word reg. with r/m16
21
/r
3/10
3/14
And r/m8 with byte reg
22
/r
3/10
3/10
And r/m16 with word reg
23
/r
3/10
3/14
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
Description
BOUND
Check array index against bounds
Call near, disp relative to next
instruction
Call near, reg indirect mem
Call far to full address given
Call far to address at m16:16 word
Convert byte integer to word
Clear carry flag
Clear direction flag
Clear interrupt-enable flag
Complement carry flag
Compare imm8 to AL
Compare imm16 to AX
Compare imm8 to r/m8
Compare imm16 to r/m16
Compare sign-extended imm8 to
r/m16
Compare byte reg to r/m8
Compare word reg to r/m16
Compare r/m8 to byte reg
Compare r/m16 to word reg
Compare byte ES: [DI] to byte
segment: [SI]
Compare word ES: [DI] to word
segment: [SI]
Compare byte ES: [DI] to byte DS:
[SI]
Compare word ES: [DI] to word DS:
[SI]
CS segment reg override prefix
Convert word integer to double word
Decimal adjust AL after addition
Decimal adjust AL after subtraction
Subtract 1 from r/m8
Subtract 1 from r/m16
Subtract 1 from word reg
CALL
CBW
CLC
CLD
CLI
CMC
CMP
CMPS
CMPSB
CMPSW
CS
CWD
DAA
DAS
DEC
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
62
/r
-
Clock Cycles
IA186
IA188
O D I
T S Z A P C
33-35
33-35
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
-
0
-
-
-
-
-
-
R
R -
-
-
R R R R R
R -
-
-
R R R R R
R -
-
-
R R R R R
R -
-
-
R R R R R
U
U
-
-
-
R
R
R -
-
-
R R R R R
U -
-
-
U U U U U
-
-
-
-
E8
cw
-
15
19
FF
9A
FF
98
F8
FC
FA
F5
3C
3D
80
81
83
/2
cd
/3
ib
iw
/7
/7
/7
ib
iw
ib
13/19
23
38
2
2
2
2
2
3
4
3/10
3/10
3/10
17/27
31
54
2
2
2
2
2
3
4
3/10
3/14
3/14
38
39
3A
3B
/r
/r
/r
/r
-
3/10
3/10
3/10
3/10
3/10
3/14
3/10
3/14
A6
-
-
22
22
A7
-
-
22
26
A6
-
-
22
22
A7
-
-
22
26
2E
99
27
2F
FE
FF
48+
rw
/1
/1
-
4
4
4
3/15
3/15
3
4
4
4
3/15
3/19
3
-
29/35
29/35
-
-
-
DIV
Divide unsigned numbers
F6
DS
DS segment override prefix
3E
mod
110
r/m
-
Flags Affected
-
R
R
-
R
R
-
- - R R
R R
-
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
-
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
ENTER
ES
ESC
HLT
IDIV
IMUL
Description
Create stack frame for nested
procedure
Create stack frame for non-nested
procedure
Create stack frame for nested
procedure
ES segment reg override prefix
Escape - takes a Trap 7
Escape - takes a Trap 7
Escape - takes a Trap 7
Escape - takes a Trap 7
Escape - takes a Trap 7
Escape - takes a Trap 7
Escape - takes a Trap 7
Escape - takes a Trap 7
Suspend instruction execution
Divide Integers
AL = AX/(r/m8);
AH = remainder
Divide Integers
AX = DX : AX/(r/m16);
DX = remainder
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
iw
C8
ib
iw
C8
00
iw
C8
01
26
D8
/0
D9
/1
DA
/2
DB
/3
DC
/4
DD
/5
DE
/6
DF
/7
F4
F6
/7
-
Clock Cycles
IA186
IA188
22+16
(n-1)
26+20
(n-1)
15
19
25
29
2
44-52
/
50-58
53-61
/
59-67
25-28
/
31-34
2
44-52
/
50-58
53-61
/
63-71
25-28
/
31-34
F7
/7
-
Multiply Integers
AX=(r/m8)*Al
F6
/5
-
Multiply Integers
DX=(r/m16)*AX
F7
/5
-
34-37
/
40-43
34-37
/
44-47
Multiply Integers
(word reg) = (r/m16)*(sign-ext.
byte integer)
6B
/r
ib
-
22-25
22-25
Multiply Integers
(word reg) = (word reg)*(sign-ext.
byte integer)
6B
/r
ib
-
22-25
22-25
Multiply Integers
(word reg) = (r/m16)*(sign-ext.
byte integer)
69
/r
iw
-
29-32
29-32
Multiply Integers
(word reg) = (word reg)*(sign-ext.
byte integer)
69
/r
iw
-
29-32
29-32
Flags Affected
O D I
T S Z A P C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0 0 -
-
-
-
-
-
-
-
-
-
-
-
-
-
U -
-
-
U U U U U
R -
-
-
U U U U R
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
IN
INC
Description
Input byte from imm port to AL
Input word from imm port to AX
Input byte from port in DX to AL
Input word from port in DX to AX
Increment r/m8 by 1
Increment r/m16 by 1
Increment word reg by 1
INS
INSB
INSW
INT 3
INT
INTO
Input byte from port in DX to ES :
[DI]
Input word from port in DX to ES :
[DI]
Input byte from port in DX to ES :
[DI]
Input word from port in DX to ES :
[DI]
Generate interrupt 3 (trap to
debug)
Generate type of interrupt specified
by imm8
Generate interrupt 4 if Overflow
Flag (O) is 1
IRET
Interrupt return
JA
JNBE
JAE
JNB
JNC
JB
JC
Jump short if above (C & Z = 0)
JNAE
JBE
JNA
JCXZ
JE
JZ
Jump short if not below or equal
Jump short if above or equal(C=0)
Jump short if not below (C=0)
Jump short if not carry (C=0)
Jump short if below (C=1)
Jump short if carry (C=1)
Jump short if not above or equal
(C=1)
Jump short if below or equal
(C & Z = 0)
Jump short if not above
(C & Z = 0)
Jump short if CX reg is 0
Jump short if equal (Z=1)
Jump short if 0 (Z=1)
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
E4
ib
E5
ib
EC
ED
FE
/0
FF
/0
40+
rw
Clock Cycles
IA186
IA188
10
10
8
8
3/15
3/15
10
14
8
12
3/15
3/19
3
3
Flags Affected
O D I
T S Z A P C
-
-
-
-
-
-
-
-
-
R -
-
-
R R R R R
-
-
-
-
-
-
-
-
-
-
-
0 0 -
-
-
-
-
6C
6D
-
-
14
14
CC
-
-
45
45
CD
ib
-
47
47
CE
-
-
48, 4
48, 4
CF
-
-
28
28
77
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
73
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
72
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
76
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
E3
cb
-
15,5
15,5
-
-
-
-
-
-
-
-
-
74
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
6C
6D
Restores value of flags reg that
was stored on the stack when
the interrupt was taken
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
Description
JG
Jump short if greater (Z & S = O)
Jump short if not less or equal
(Z & S = O)
Jump short if greater or equal
(S=O)
Jump short if not less (S = O)
Jump short if less or equal
(Z & S = O)
Jump short if not greater
(Z & S = O)
Jump short direct, disp relative to
next instruction
Jump near direct, disp relative to
next instruction
Jump near indirect
Jump far direct to doubleword imm
address
Jump m16: 16 indirect and far
Jump short if not equal (Z=0)
Jump short if not zero (Z=0)
Jump short if not overflow (O=1)
Jump short if not parity (P=0)
Jump short if parity odd (P=0)
Jump short if not sign (S=0)
Jump short if overflow (O=1)
Jump short if parity (P=1)
Jump short if parity (P=1)
Jump short if sign (S=1)
Load AH with low byte of flags reg
Load DS:r16 with segment :offset
from memory
Load offset for m16 word in 16-bit
reg
Destroy procedure stack frame
Load ES:r16 with segment offset
from memory
Asserts lock_n during an
instruction execution
Load byte segment :[SI] in AL
Load word segment :[SI] in AX
JNLE
JGE
JNL
JLE
JNG
JMP
JNE
JNZ
JNO
JNP
JPO
JNS
JO
JP
JPE
JS
LAHF
LDS
LEA
LEAVE
LES
LOCK
LODS
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
Clock Cycles
Flags Affected
IA186
IA188
O D I
T S Z A P C
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
7F
cb
7D
cb
7E
cb
-
13, 4
13, 4
EB
cb
-
14
14
E9
cw
-
14
14
FF
/4
-
11/17
11/21
EA
cd
-
14
14
FF
/5
-
26
34
75
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
71
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
7B
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
79
70
cb
cb
-
13, 4
13, 4
13, 4
13, 4
-
-
-
-
-
-
-
-
-
7A
cb
-
13, 4
13, 4
-
-
-
-
-
-
-
-
-
78
9F
cb
-
-
13, 4
2
13, 4
2
C5
/r
-
18
26
-
-
-
-
-
-
-
-
-
8D
/r
-
6
6
-
-
-
-
-
-
-
-
-
C9
-
-
8
8
-
-
-
-
-
-
-
-
-
C4
/r
-
18
26
-
-
-
-
-
-
-
-
-
F0
-
-
1
1
-
-
-
-
-
-
-
-
-
AC
AD
-
-
12
12
12
16
-
-
-
-
-
-
-
-
-
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
LODSB
LODSW
LOOP
LOOPE
LOOPZ
LOOPNE
LOOPNZ
MOV
Description
Load byte DS: [SI] in AL
Load word DS: [SI] in AX
Decrement count ; jump short if
CX $ 0
Decrement count ; jump short if
CX $ 0 and Z = 1
Decrement count ; jump short if
CX $ 0 and Z = 1
Decrement count ; jump short if
CX $ 0 and Z = 0
Decrement count ; jump short if
CX $ 0 and Z = 0
Copy reg to r/m8
Copy reg to r/m16
Copy r/m8 to reg
Copy r/m16 to reg
Copy segment reg to r/m16
Copy r/m16 to segment reg
Copy byte at segment offset to AL
Copy word at segment offset to AX
Copy AL to byte at segment offset
Copy AX to word at segment offset
Copy imm8 to reg
Copy imm16 to reg
MOVS
MOVSB
MOVSW
Copy imm8 to r/m8
Copy imm16 to r/m16
Copy byte segment [SI] to ES:[DI]
Copy word segment [SI] to ES:[DI]
Copy byte DS:[SI] to ES:[DI]
Copy word DS:[SI] to ES:[DI]
AX = (r/m8) * AL
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
AC
AD
16, 6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
R -
-
-
-
-
-
-
R
R -
-
-
R R R R R
12
12
12
16
16, 6
-
E1
cb
-
E0
cb
-
16, 6
16, 6
88
89
8A
/r
/r
/r
-
2/12
2/12
2/9
2/12
2/16
2/9
8B
8C
8E
A0
A1
A2
A3
B0
+rb
B8
+rw
C6
C7
A4
A5
A4
A5
/r
/sr
/sr
-
-
2/9
2/11
2/9
8
8
9
9
2/13
2/15
2/13
8
12
9
13
3
3
3
4
F6
/4
12
12
14
14
14
14
26-28
/
32-34
35-37
/
41-43
12
13
14
18
14
18
26-28
/
32-34
35-37
/
45-47
3/10
3/10
-
DX :: AX = (r/m16) * AX
F7
/4
Perform 2's complement negation
of r/m8
F6
/3
Perform 2's complement negation
of r/m16
F7
Instruction
T S Z A P C
IA188
-
/0
/0
-
/3
-
Opcode - Hex
3/10
Flags Affected
O D I
IA186
E2
MUL
NEG
Clock Cycles
3/14
Clock Cycles
Flags Affected
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Mnemonic
NOP
NOT
As of Production Version -03
OR imm8 with r/m8
80
OR imm16 with r/m16
81
OR imm8 with r/m16
83
OR byte reg with r/m8
OR word reg with r/m16
OR r/m8 with byte reg
OR r/m16 with word reg
Output AL to imm port
Output AX to imm port
Output AL to port in DX
Output AX to port in DX
Output byte DS:[SI] to port in DX
Output word DS:[SI] to port in DX
Output byte DS:[SI] to port in DX
Output word DS:[SI] to port in DX
Pop top word of stack into memory
word
Pop top word of stack into word
reg
Pop top word of stack into DS
Pop top word of stack into ES
Pop top word of stack into SS
Pop DI, SI, BP, BX, DX, CX, & AX
Pop top word of stack into
Processor Status Flags reg
Push memory word onto stack
08
09
0A
0B
E6
E7
EE
EF
6E
6F
6E
6F
byte
2
/2
/2
ib
iw
/1
ib
/1
iw
/1
ib
/r
/r
/r
/r
ib
ib
-
8F
/0
-
20
24
10
14
Description
Perform no operation
Complement each bit in r/m8
Complement each bit in r/m16
OR imm8 with AL
OR imm16 with AX
byte
1
90
F6
F7
0C
0D
OR
OUT
OUTS
OUTSB
OUTSW
POP
POPA
POPF
Push reg word onto stack
PUSH
Push sign-extended imm8 onto
stack
Push imm16 onto stack
Push CS onto stack
Push SS onto stack
Push DS onto stack
Push ES onto stack
byte
3-6
-
IA186
IA188
O D I
T S Z A P C
3
3/10
3/10
3
4
3
3/10
3/14
3
4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
4/16
4/16
-
4/16
4/20
0 -
-
-
R R U R
0
-
4/16
4/20
-
3/10
3/10
3/10
3/10
9
9
7
7
3/10
3/14
3/10
3/14
9
13
7
11
-
-
-
-
-
-
-
-
-
14
14
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
58+
rw
1F
07
17
61
-
-
-
-
8
12
51
83
9D
-
-
8
12
FF
50+
rw
/6
-
16
20
-
-
10
14
6A
-
-
10
14
68
0E
16
1E
06
-
-
10
9
9
9
9
14
13
13
13
13
Values in word at top of stack
are copied into FLAGS reg bits
-
-
-
-
-
-
-
-
-
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
PUSHA
PUSHF
RCL
RCR
REP
INS
REP
LODS
REP
MOVS
REP
OUTS
Description
Push AX, CX, DX, BX, original SP,
BP, SI, and DI
Push Processor Status Flags reg
Rotate 9 bits of C and r/m8 left
once
Rotate 9 bits of C and r/m8 left CL
times
Rotate 9 bits of C and r/m8 left
imm8 times
Rotate 17 bits of C and r/m16 left
once
Rotate 17 bits of C and r/m16 left
CL times
Rotate 17 bits of C and r/m16 left
imm8 times
Rotate 9 bits of C and r/m8 right
once
Rotate 9 bits of C and r/m8 right
CL times
Rotate 9 bits of C and r/m8 right
imm8 times
Rotate 17 bits of C and r/m16
right once
Rotate 17 bits of C and r/m16
right CL times
Rotate 17 bits of C and r/m16
right imm8 times
Input CX bytes from port in DX to
ES : [DI]
Input CX bytes from port in DX to
ES : [DI]
Load CX bytes from segment :[SI]
in AL
Load CX words from segment :[SI]
in AX
Copy CX bytes from segments :
[SI] to ES:[DI]
Copy CX words from segments :
[SI] to ES:[DI]
Output CX bytes from DS:[SI] to
port in DX
Output CX bytes from DS:[SI] to
port in DX
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
Clock Cycles
IA186
IA188
Flags Affected
O D I
T S Z A P C
60
-
-
36
68
-
-
-
-
-
-
-
-
-
9C
-
-
9
13
-
-
-
-
-
-
-
-
-
D0
/2
-
2/15
2/15
5+n/
17+n
5+n/
17+n
5+n/
17+n
5+n/
17+n
-
-
-
-
-
-
-
-
-
2/15
2/15
5+n/
17+n
5+n/
17+n
5+n/
17+n
5+n/
17+n
2/15
2/15
5+n/
17+n
5+n/
17+n
5+n/
17+n
5+n/
17+n
-
-
-
-
-
-
-
-
-
2/15
2/15
5+n/
17+n
5+n/
17+n
5+n/
17+n
5+n/
17+n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
D2
/2
-
D1
/2
ib
/2
D3
/2
-
C1
/2
ib
-
D0
/3
-
C0
D2
/3
-
-
/3
ib
-
D1
/3
-
D3
/3
-
75
/3
ib
-
F3
6C
-
8+8n
8+8n
F3
6D
-
8+8n
12+8n
AC
-
6+11n
6+11n
AD
-
6+11n
10+
11n
A4
-
8+8n
8+8n
C0
F3
F3
F3
F3
A5
-
8+8n
12+8n
F3
6E
-
8+8n
8+8n
F3
6F
-
8+8n
12+8n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
Description
REP
STOS
Fill CX bytes at ES:[DI] with AL
Fill CX words at ES:[DI] with AL
Find non-matching bytes in ES:[DI]
and segment :[SI]
Find non-matching words in
ES:[DI] and segment :[SI]
Find non-AL byte starting at
ES:[DI]
Find non-AX word starting at
ES:[DI]
Find non-matching bytes in ES:DI
and segment :[SI]
Find non-matching words in ES:DI
and segment :[SI]
Find non-AL byte starting at ES:DI
Find non-AX word starting at ES:DI
Find matching bytes in ES:[DI] and
segment :[SI]
Find matching words in ES:[DI]
and segment :[SI]
Find AL byte starting at ES:[DI]
Find AX word starting at ES:[DI]
Find matching bytes in ES:DI and
segment :[SI]
Find matching words in ES:DI and
segment :[SI]
Find AL byte starting at ES:DI
Find AX word starting at ES:DI
Return near to calling procedure
REPE
CMPS
REPE
SCAS
REPZ
CMPS
REPZ
SCAS
REPNE
CMPS
REPNZ
CMPS
REPNE
SCAS
REPNZ
SCAS
RET
ROL
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
F3
AA
F3
AB
-
IA188
O D I
T S Z A P C
8+8n
8+8n
8+8n
12+8n
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
U -
-
-
-
-
-
-
R
A6
-
5+22n
5+22n
F3
A7
-
5+22n
9+22n
F3
AE
-
5+15n
5+15n
F3
AF
-
5+15n
9+15n
F3
A6
-
5+22n
5+22n
F3
A7
-
5+22n
9+22n
F3
F3
AE
AF
-
5+15n
5+15n
5+15n
9+15n
F2
A6
-
5+22n
5+22n
F2
A7
-
5+22n
9+22n
F2
F2
A6
A7
-
5+22n
5+22n
5+22n
9+22n
F2
AE
-
5+15n
5+15n
F2
AF
-
5+15n
9+15n
F2
F2
C3
AE
AF
-
5+15n
5+15n
16
5+15n
9+15n
20
data
low
data
high
22
30
18
22
25
33
2/15
5+n/
17+n
5+n/
17+n
2/15
2/15
5+n/
17+n
5+n/
17+n
2/15
CB
Return near; pop imm16
parameters
C2
Return far; pop imm16 parameters
CA
Rotate 8 bits of r/m8 left once
Rotate 8 bits or r/m8 left CL times
D0
data
low
/0
data
high
-
D2
/0
-
/0
ib
/0
data
8
-
C0
D1
Flags Affected
IA186
F3
Return far to calling procedure
Rotate 8 bits or r/m8 left imm8
times
Rotate 16 bits of r/m8 left once
Clock Cycles
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
ROL
ROR
SAHF
Description
Rotate 16 bits or r/m8 left CL
times
Rotate 16 bits or r/m8 left imm8
times
Rotate 8 bits of r/m8 right once
Rotate 8 bits or r/m8 right CL
times
Rotate 8 bits or r/m8 right imm8
times
Rotate 16 bits of r/m8 right once
Rotate 16 bits or r/m8 right CL
times
Rotate 16 bits or r/m8 right imm8
times
Show AH in low byte of the Status
Flags reg
Multiply r/m8 by 2, once
Multiply r/m8 by 2, CL times
Multiply r/m8 by 2, imm8 times
Opcode - Hex
byte byte byte
1
2
3-6
IA188
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
D0
/0
ib
/1
data
8
-
D2
/1
-
D1
/1
ib
/1
data
8
-
D3
/1
-
C1
/1
ib
data
8
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
9E
-
-
3
3
D0
/4
-
D2
/4
data
8
-
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
2/15
5+n/
17+n
5+n/
17+n
C1
C0
D1
Multiply r/m16 by 2, CL times
D3
/4
data
8
-
C0
Multiply r/m8 by 2, once
D0
/4
ib
/4
Multiply r/m8 by 2, CL times
D2
/4
data
8
-
C1
Multiply r/m16 by 2, once
D1
/4
ib
/4
Multiply r/m16 by 2, CL times
D3
/4
-
C1
/4
ib
data
8
Multiply r/m16 by 2, imm8 times
IA186
-
Multiply r/m16 by 2, once
Multiply r/m8 by 2, imm8 times
Clock Cycles
/0
D3
/4
ib
/4
Multiply r/m16 by 2, imm8 times
SAL/SHL
As of Production Version -03
C0
Flags Affected
O D I
T S Z A P C
U -
-
-
-
-
-
-
R
U -
-
-
-
-
-
-
R
-
-
-
-
R R R R R
U -
-
-
-
R R R R
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
SAR
SBB
SCAS
SCASB
SCASW
Description
Perform a signed division of r/m8
by 2, once
Perform a signed division of r/m8
by 2, CL times
Perform a signed division of r/m8
by 2, imm8 times
Perform a signed division of
r/m16 by 2, once
Perform a signed division of
r/m16 by 2, Cl times
Perform a signed division of
r/m16 by 2, imm8 times
Subtract imm8 from Al with
borrow
Subtract imm16 from AX with
borrow
Subtract imm8 from r/m8 with
borrow
Subtract imm16 from r/m16 with
borrow
Subtract sign-extended imm8 from
r/m16 with borrow
Subtract byte reg from r/m8 with
borrow
Subtract word reg from r/m16
with borrow
Subtract r/m8 from r/m8 with
borrow
Subtract r/m8 reg from byte with
borrow
Compare byte AL to ES:[DI];
update DI
Compare word AL to ES:[DI];
update DI
Compare byte AL to ES:[DI];
update DI
Compare word AL to ES:[DI];
update DI
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
Clock Cycles
IA186
IA188
2/15
2/15
5+n/
17+n
5+n/
17+n
D0
/7
-
D2
/7
-
C0
/7
ib
data
8
5+n/
17+n
5+n/
17+n
D1
/7
-
2/15
2/15
D3
/7
-
C1
/7
ib
data
8
5+n/
17+n
5+n/
17+n
5+n/
17+n
5+n/
17+n
1C
ib
-
3
3
1D
iw
data
8
4
4
-
4/16
4/16
-
4/16
4/20
-
4/16
4/20
80
81
83
/3
ib
/3
iw
/3
ib
18
/r
data
8
3/10
3/10
19
/r
-
3/10
3/14
1A
/r
-
3/10
3/10
1B
/r
data
8
3/10
3/14
AE
-
-
15
19
AF
-
-
15
19
AE
-
-
15
19
AF
-
-
15
19
Flags Affected
O D I
T S Z A P C
U -
-
-
R R U R R
R -
-
-
R R R R R
R -
-
-
R R R R R
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
SHR
SS
STC
STD
STI
STOS
STOSB
STOSW
SUB
Description
Divide unsigned of r/m8 by 2,
once
Divide unsigned of r/m8 by 2, CL
times
Divide unsigned of r/m8 by 2,
imm8 times
Divide unsigned of r/m16 by 2,
once
Divide unsigned of r/m16 by 2, CL
times
Divide unsigned of r/m16 by 2,
imm8 times
SS segment reg override prefix
Set the Carry Flag to 1
Set the Direction Flag so the
source Index (SI) and/or the
Destination Index (DI) regs will
decrement during string
instructions
Enable maskable interrupts after
the next instruction
Store AL in byte ES:[DI]; update DI
Store AX in word ES:[DI]; update
DI
Store AL in byte ES:[DI]; update DI
Store AX in word ES:[DI]; update
DI
Subtract imm8 from AL
Subtract imm16 from AX
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
IA186
IA188
2/15
2/15
5+n/
17+n
5+n/
17+n
Flags Affected
O D I
T S Z A P C
U -
-
-
R R U R
0
D0
/7
-
D2
/7
-
C0
/7
ib
data
8
5+n/
17+n
5+n/
17+n
D1
/7
-
2/15
2/15
D3
/7
-
36
F9
/7
ib
-
data
8
-
5+n/
17+n
5+n/
17+n
2
5+n/
17+n
5+n/
17+n
2
-
-
-
-
-
-
-
-
1
FD
-
-
2
2
-
1 -
-
-
-
-
-
-
FB
-
-
2
2
-
-
1 -
-
-
-
-
-
AA
-
-
10
10
AB
-
-
10
14
AA
-
-
10
10
-
-
-
-
-
-
-
-
-
AB
-
-
10
14
2C
2D
ib
iw
/5
ib
/5
iw
/5
ib
/r
/r
/r
/r
-
3
4
3
4
-
4/16
4/16
-
4/16
4/20
R -
-
-
R R R R R
-
4/16
4/20
-
3/10
3/10
3/10
3/10
3/10
3/14
3/10
3/14
C1
Subtract imm8 from r/m8
80
Subtract imm16 from r/m16
81
Subtract sign-extended imm8 from
r/m16
Subtract byte reg from r/m8
Subtract word reg from r/m16
Subtract r/m8 from byte reg
Subtract r/m16 from word reg
Clock Cycles
83
28
29
2A
2B
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Instruction
Mnemonic
Description
AND imm8 with AL
AND imm16 with AX
AND imm8 with r/m8
TEST
AND imm16 with r/m16
AND byte reg with r/m8
AND word reg with r/m16
WAIT
XCHG
XLAT
XLATB
XOR
Performs a NOP
Exchange word reg with AX
Exchange AX with word reg
Exchange byte reg with r/byte
Exchange r/m8 with byte reg
Exchange word reg with r/m16
Exchange r/m16 with word reg
Set AL to memory byte segment
:[BX+unsigned AL]
Set AL to memory byte DS
:[BX+unsigned AL]
XOR imm8 with AL
XOR imm16 with AX
As of Production Version -03
Opcode - Hex
byte byte byte
1
2
3-6
A8
ib
A9
iw
/0 data
F6
8
ib
/0
F7
iw
84
/r
data
85
/r
8
9B
90
+rw
86
/r
87
/r
-
IA186
IA188
3
4
3
4
4/10
4/10
4/10
4/14
3/10
3/10
3/10
3/14
3
3
4/17
4/17
4/17
4/17
3
3
4/17
4/17
4/21
4/21
D7
-
-
11
15
D7
-
-
11
15
34
35
ib
iw
/6
ib
/6
iw
/6
ib
/r
/r
/r
/r
-
3
4
3
4
-
4/16
4/16
-
4/16
4/20
-
4/16
4/20
-
3/10
3/10
3/10
3/10
3/10
3/14
3/10
3/14
XOR imm8 with r/m8
80
XOR imm16 with r/m16
81
XOR sign-extended imm8 with
r/m16
XOR byte reg with r/m8
XOR word reg with r/m16
XOR r/m8 with byte reg
XOR r/m16 with word reg
Clock Cycles
83
30
31
32
33
Flags Affected
O D I
T S Z A P C
0 -
-
-
R R U R
0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0 -
-
-
R R U R
0
Key to Abbreviations Used Instruction Summary Table
The Operand Address byte is configured as follows.
7
6
5
4
mod field
aux field
3
2
1
r/m field
0
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
mod field (Modifier Field)
mod
11
00
01
10
Description
r/m is treated as a register field
DISP = 0, disp-low and disp-high are absent - address displacement is 0.
DISP = disp-low sign-extended to 16-bits, disp-high is absent.
DISP = disp-high: disp-low.
aux field (Auxiliary Field)
aux
000
001
010
011
100
101
110
111
If mod = 11 and word = 0
AL
CL
DL
BL
AH
CH
DH
BH
If mod = 11 and word = 1
AX
CX
DX
BX
SP
BP
SI
DI
When mod $ 11, depends on instruction
r/m field
r/m
000
001
010
011
100
101
110
111
Description
EA = (BX) + (SI) + DISP [where EA is the Effective Address]
EA = (BX) + (DI) + DISP
EA = (BP) + (SI) + DISP
EA = (BX) + (DI) + DISP
EA = (SI) + DISP
EA = (DI) + DISP
EA = (BP) + DISP [except if mod = 00, then EA = disp-high: disp-low]
EA = (BX) + DISP
Displacement
The displacement is an 8 or 16 bit value added to the offset portion of the address.
Immediate
The immediate bytes consist of up to 16 bits of immediate data.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Segment Override Prefix
The Operand Address byte is configured as follows.
7
6
5
4
0
0
1
SR
SR
00
01
10
11
3
SR
2
1
1
1
0
0
Segment Register
ES
CS
SS
DS
Notation
Parameter
:
::
Indication
The component of the left is the segment for a component located in
memory. The component on the right is the offset.
The component of the left is concatenated with the component on the right.
Operand
imm8
imm16
m
m8
m16
r/m8
r/m16
Translation
Immediate byte: signed number between –128 and 127
Immediate word: signed number between –32768 and 32767
Operand in memory
Byte string in memory pointed to by DS:SI or ES:DI
Word string in memory pointed to by DS:SI or ES:DI
General byte register or a byte in memory
General word register or a word in memory
Opcode
Parameter
/0 - /7
/r
The Auxiliary Field in the Operand Address byte specifies an extension (from 000 to 111,
i.e. 0 to 7) to the opcode instead of a register. Thus the opcode for adding (AND) an
immediate byte to a general byte register or a byte in memory is ‘80 /4 ib’. This indicates
that the second byte of the opcode is ‘mod 100 r/m’.
The Auxiliary Field in the Operand Address byte specifies a register rather that an opcode
extension. The opcode byte specifies which register, either byte size or word size, is
assigned as in the aux code above.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
/sr
This byte is placed before the instruction as shown above under Segment Override Prefix.
cb
The byte following the Opcode byte specifies the offset.
cd
The double-word following the Opcode byte specifies the offset and is some cases a
segment.
ib
Immediate byte – signed or unsigned determined by the Opcode byte.
iw
Immediate word – signed or unsigned determined by the Opcode byte.
rw
Word register operand as determined by the Opcode byte, aux field.
Flags Affected After Instruction
U
R
Undefined
Unchanged
Result dependent
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Absolute Maximum Ratings
Storage Temperature
Voltage on any pin with respect to ground
Operating Range
Industrial (TA)
TA = ambient temperature
-65%C to +125%C
-0.5 V to VCC +0.5 V
-40%C to +85%C
DC Characteristics Over Commercial Operating Ranges
Symbol
Parameter Description
VIL
VIL1
VIH
VIH1
VIH1
VOL
Input Low Voltage (Except X1)
Clock Input Low Voltage (X1)
Input High Voltage (Except res_n and X1)
Input High Voltage (res_n)
Clock Input High Voltage (X1)
Output Low Voltages(1)
VOH
ICC
ILI
ILO
VCLO
VCHO
Test Conditions
IOL = 2.5 mA (s2_n -s0_n)
IOL = 2.0 mA (other)
Preliminary
Min
Max
-0.5
0.8
-0.5
0.8
2.0
VCC + 0.5
2.4
VCC + 0.5
VCC - 0.8
VCC + 0.5
0.45
0.45
Output High Voltages
IOH = -2.4 mA @ 2.4 V
IOH = -200 &A @ VCC 0.5
2.4
VCC - 0.5
Power Supply Current @ 0%C
Input Leakage Current @ 0.5 MHz
Output Leakage Current @ 0.5 MHz
Clock Output Low
Clock Output High
VCC = 5.5 V(2)
0.45 V ' VIN ' VCC
0.45 V ' VOUT ' VCC(3)
ICLO = 4.0 mA
ICHO = -500 &A
VCC - 0.5
Unit
V
V
V
V
V
V
V
VCC + 0.5
VCC
V
V
5.9
(10
(10
0.45
mA/MHz
&A
&A
V
V
NOTES
1. The lcs_n/once0_n, mcs3_n – mcs0_n, ucs_n/once1_n, and rd_n pins have weak internal pull-up
resistors. Loading the lcs_n/once0_n and ucs_n/once1_n pins in excess of IOH = -200 &A during
reset can cause the device to go into ONCE mode.
2. Current is measured with the device in reset with the x1 and x2 driven and all other non-power
pins open but held High or Low.
3. Testing is performed with the pins floating, either during hold or by invoking the ONCE mode.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
AC Characteristics Over Commercial Operating Ranges (40 MHz)
No. Name
Description
MIN
MAX
General Timing Requirements
1 tDVCL
Data in Setup
10
2 tCLDX
Data in Hold
0
General Timing Responses
3 tCHSV
Status Active Delay
0
6
4 tCLSH
Status Inactive Delay
0
6
5 tCLAV
ad Address Valid Delay
0
12
6 tCLAX
Address Hold
0
12
8 tCHDX
Status Hold Time
0
9 tCHLH
ale Active Delay
0
8
10 tLHLL
ale Width
tCLCH-5
11 tCHLL
ale Inactive Delay
0
8
12 tAVLL
ad Address Valid to ale Low
tCLCH
13 tLLAX
ad Address Hold from ale Inactive
tCHCL
14 tAVCH
ad Address Valid to Clock High
0
15 tCLAZ
ad Address Float Delay
0
12
16 tCLCSV
mcs_n/pcs_n Inactive Delay
0
12
17 tCXCSX
mcs_n/pcs_n Hold from Command Inactive tCLCH
18 tCHCSX
mcs_n/pcs_n Inactive Delay
0
12
19 tDXDL
den_n Inactive to dt_r_n Low
0
20 tCVCTV
Control Active Delay 1
0
10
21 tCVDEX
den_n Inactive Delay
0
0
22 tCHCTV
Control Active Delay 2
0
10
23 tLHAV
ale High to Address Valid
7.5
80 tCLCLX
lcs_n Inactive Delay
0
9
81 tCLCSL
lcs_n Active Delay
0
9
82 tCLRF
clkoutA High to rfsh_n Invalid
0
12
tCLCL +
84 tLRLL
lcs_n Precharge Pulse Width
tCLCH
Read Cycle Timing Responses
24 tAZRL
ad Address Float to rd_n Active
0
25 tCLRL
rd_n Active Delay
0
10
26 tRLRH
rd_n Pulse Width
tCLCL
27 tCLRH
rd_n Inactive Delay
0
10
28 tRHLH
rd_n Inactive to ale High
tCLCH
29 tRHAV
rd_n Inactive to ad Address Active
tCLCL
30 tCLDOX
Data Hold Time
0
Write Cycle Timing Responses
31 tCVCTX
Control Inactive Delay
0
10
32 tWLWH
wr_n Pulse Width
2tCLCL
33 tWHLH
wr_n Inactive to ale High
tCLCH
Units
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
No.
34
35
41
59
65
66
67
68
87
Name
tWHDX
tWHDEX
tDSHLH
tRHDX
tAVWL
tAVRL
tCHCSV
tCHAV
tAVBL
As of Production Version -03
Description
Data Hold after wr_n
wr_n Inactive to den_n Inactive
ds_n Inactive to ale Inactive
rd_n High to Data Hold on ad Bus
a Address Valid to wr_n Low
a Address Valid to rd_n Low
clkoutA High to lcs_n/usc_n Valid
clkoutA High to a Address Valid
a Address Valid to whb_n/wlb_n Low
Refresh Timing Cycle Parameters
79 tCHRFD
clkoutA High to rfsh_n Valid
82 tCLRF
clkoutA High to rfsh_n Invalid
85 tRFCY
rfsh_n Cycle Time
86 tLCRF
lcs_n Inactive to rfsh_n Active Delay
clkin Timing
36 tCKIN
X1 Period
37 tCLCK
X1 Low Time
38 tCHCK
X1 High Time
39 tCKHL
X1 Fall Time
40 tCKLH
X1 Rise time
clkout Timing
42 tCLCL
clkoutA Period
43 tCLCH
clkoutA Low Time
44 tCHCL
clkoutA High Time
45 tCH1CH2
clkoutA Rise Time
46 tCL2CL1
clkoutA Fall Time
61 tLOCK
Maximum PLL Lock Time
69 tCICOA
X1 to clkoutA Skew
70 tCICOB
X1 to clkoutB Skew
Ready & Peripheral Timing Requirements
47 tSRYCL
srdy Transition Setup Time
48 tCLSRY
srdy Transistion Hold Time
49 tARYCH
ardy Resolution Transition Setup Time
50 tCLARX
ardy Active Hold Time
51 tARYCHL
ardy Inactive Holding Time
52 tARYLCL
ardy Setup Time
53 tINVCH
Peripheral Setup Time
54 tINVCL
drq Setup Time
MIN
MAX
tCLCL
tCLCH
tCLCH
0
tCLCL +
tCHCL
tCLCL +
tCHCL
0
9
0
8
tCHCL tCHCL
1.5
Units
ns
ns
ns
ns
ns
ns
ns
ns
ns
0
0
6tCLCL
2tCLCL
12
12
ns
ns
ns
ns
25
7.5
7.5
66
5
5
ns
ns
ns
ns
ns
3
3
0.5
25
35
ns
ns
ns
ns
ns
ms
ns
ns
25
TCLCL/2
TCLCL/2
10
3
9
4
6
9
10
10
ns
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
No. Name
Description
Peripheral Timing Responses
55 tCLTMV
Timer Output Delay
Reset & Hold Timing Requirements
57 tRESIN
res_n Setup Time
58 tHVCL
hld Setup Time
Reset & Hold Timing Responses
62 tCLHAV
hlda Valid Delay
63 tCHCZ
Command Lines Float Delay
64 tCHCV
Command Lines Valid Delay (after Float)
Synchronous Serial Port Timing Requirements
75 tDVSH
Data Valid to sclk High
77 tSHDX
sclk High to SPI Data Hold
Synchronous Serial Port Timing Responses
71 tCLEV
clkouta Low to sden Valid
72 tCLSL
clkouta Low to sclk High
78 tSLDV
sclk Low to Data Valid
MIN
MAX
Units
0
12
ns
10
ns
10
ns
0
0
0
7
12
12
10
3
0
0
0
ns
ns
ns
ns
ns
12
12
12
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Waveforms
Alphabetic Key to Waveform Parameters
No. Name
49
51
52
87
14
12
66
65
24
45
68
38
44
67
18
22
64
63
8
9
11
79
3
69
70
39
36
40
46
50
5
6
15
43
37
42
80
81
16
30
7
tARYCH
tARYCHL
tARYLCL
tAVBL
tAVCH
tAVLL
tAVRL
tAVWL
tAZRL
tCH1CH2
tCHAV
tCHCK
tCHCL
tCHCSV
tCHCSX
tCHCTV
tCHCV
tCHCZ
tCHDX
tCHLH
tCHLL
tCHRFD
tCHSV
tCICOA
tCICOB
tCKHL
tCKIN
tCKLH
tCL2CL1
tCLARX
tCLAV
tCLAX
tCLAZ
tCLCH
tCLCK
tCLCL
tCLCLX
tCLCSL
tCLCSV
tCLDOX
tCLDV
Description
ardy Resolution Transition Setup Time
ardy Inactive Holding Time
ardy Setup Time
a Address Valid to whb_n/wlb_n Low
ad Address Valid to Clock High
ad Address Valid to ale Low
a Address Valid to rd_n Low
a Address Valid to wr_n Low
ad Address Float to rd_n Active
clkoutA Rise Time
clkoutA High to A Address Valid
X1 High Time
clkoutA High Time
clkoutA High to lcs_n/usc_n Valid
mcs_n/pcs_n Inactive Delay
Control Active Delay 2
Command Lines Valid Delay (after Float)
Command Lines Float Delay
Status Hold Time
ale Active Delay
ale Inactive Delay
clkoutA High to rfsh_n Valid
Status Active Delay
X1 to clkoutA Skew
X1 to clkoutB Skew
X1 Fall Time
X1 Period
X1 Rise time
clkoutA Fall Time
ardy Active Hold Time
ad Address Valid Delay
Address Hold
ad Address Float Delay
clkoutA Low Time
X1 Low Time
clkoutA Period
lcs_n Inactive Delay
lcs_n Active Delay
mcs_n/pcs_n Inactive Delay
Data Hold Time
Data Valid Delay
No. Name Description
2
71
62
82
27
25
4
72
48
55
83
20
31
21
17
1
75
19
58
53
54
86
23
10
13
61
84
57
85
29
59
28
26
77
78
47
35
34
33
32
tCLDX
tCLEV
tCLHAV
tCLRF
tCLRH
tCLRL
tCLSH
tCLSL
tCLSRY
tCLTMV
tCOAOB
tCVCTV
tCVCTX
tCVDEX
tCXCSX
tDVCL
tDVSH
tDXDL
tHVCL
tINVCH
tINVCL
tLCRF
tLHAV
tLHLL
tLLAX
tLOCK
tLRLL
tRESIN
tRFCY
tRHAV
tRHDX
tRHLH
tRLRH
tSHDX
tSLDV
tSRYCL
tWHDEX
tWHDX
tWHLH
tWLWH
Data in Hold
clkoutA Low to sden Valid
hlda Valid Delay
clkoutA High to rfsh_n Invalid
rd_n Inactive Delay
rd_n Active Delay
Status Inactive Delay
clkoutA Low to sclk Low
srdy Transistion Hold Time
Timer Output Delay
clkoutA to clkoutB Skew
Control Active Delay 1
Control Inactive Delay
den_n Inactive Delay
mcs_n/pcs_n Hold from Command Inactive
Data in Setup
Data Valid to SCLK High
den_n Inactive to dt_r_n Low
hld Setup Time
Peripheral Setup Time
drq Setup Time
lcs_n Inactive to rfsh_n Active Delay
ale High to Address Valid
ale Width
ad Address Hold from ALE Inactive
Maximum PLL Lock Time
lcs_n Precharge Pulse Width
res_n Setup Time
rfsh_n Cycle Time
rd_n Inactive to ad Address Active
rd_n High to Data Hold on ad Bus
rd_n Inactive to ale High
rd_n Pulse Width
sclk High to SPI Data Hold
sclk Low SPI Data Hold
srdy Transition Setup Time
wr_n Inactive to den_n Inactive
Data Hold after wr_n
wr_n Inactive to ale High
wr_n Pulse Width
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Numeric Key to Waveform Parameters
No. Name
1 tDVCL
2 tCLDX
3 tCHSV
4 tCLSH
5 tCLAV
6 tCLAX
7 tCLDV
8 tCHDX
9 tCHLH
10 tLHLL
11 tCHLL
12 tAVLL
13 tLLAX
14 tAVCH
15 tCLAZ
16 tCLCSV
17 tCXCSX
18 tCHCSX
19 tDXDL
20 tCVCTV
21 tCVDEX
22 tCHCTV
23 tLHAV
24 tAZRL
25 tCLRL
26 tRLRH
27 tCLRH
28 tRHLH
29 tRHAV
30 tCLDOX
31 tCVCTX
32 tWLWH
33 tWHLH
34 tWHDX
35 tWHDEX
36 tCKIN
37 tCLCK
38 tCHCK
39 tCKHL
40 tCKLH
42 tCLCL
Description
No. Name
Data in Setup
43 tCLCH
Data in Hold
44 tCHCL
Status Active Delay
45 tCH1CH2
Status Inactive Delay
46 tCL2CL1
ad Address Valid Delay
47 tSRYCL
Address Hold
48 tCLSRY
Data Valid Delay
49 tARYCH
Status Hold Time
50 tCLARX
ale Active Delay
51 tARYCHL
ale Width
52 tARYLCL
ale Inactive Delay
53 tINVCH
ad Address Valid to ALE Low
54 tINVCL
ad Address Hold from ALE Inactive
55 tCLTMV
ad Address Valid to Clock High
57 tRESIN
ad Address Float Delay
58 tHVCL
mcs_n/pcs_n Inactive Delay
59 tRHDX
mcs_n/pcs_n Hold from Command Inactive 61 tLOCK
mcs_n/pcs_n Inactive Delay
62 tCLHAV
den_n Inactive to dt_r_n Low
63 tCHCZ
Control Active Delay 1
64 tCHCV
den_n Inactive Delay
65 tAVWL
Control Active Delay 2
66 tAVRL
ale High to Address Valid
67 tCHCSV
ad Address Float to rd_n Active
68 tCHAV
rd_n Active Delay
69 tCICOA
rd_n Pulse Width
70 tCICOB
rd_n Inactive Delay
71 tCLEV
rd_n Inactive to ale High
72 tCLSL
rd_n Inactive to ad Address Active
75 tDVSH
Data Hold Time
77 tSHDX
Control Inactive Delay
78 tSLDV
wr_n Pulse Width
79 tCHRFD
wr_n Inactive to ale High
80 tCLCLX
Data Hold after wr_n
81 tCLCSL
wr_n Inactive to den_n Inactive
82 tCLRF
X1 Period
83 tCOAOB
X1 Low Time
84 tLRLL
85 tRFCY
X1 High Time
86 tLCRF
X1 Fall Time
X1 Rise time
87 tAVBL
clkoutA Period
Description
clkoutA Low Time
clkoutA High Time
clkoutA Rise Time
clkoutA Fall Time
srdy Transition Setup Time
srdy Transistion Hold Time
ardy Resolution Transition Setup Time
ardy Active Hold Time
ardy Inactive Holding Time
ardy Setup Time
Peripheral Setup Time
drq Setup Time
Timer Output Delay
res_n Setup Time
hld Setup Time
rd_n High to Data Hold on ad Bus
Maximum PLL Lock Time
hlda Valid Delay
Command Lines Float Delay
Command Lines Valid Delay (after Float)
a Address Valid to wr_n Low
a Address Valid to rd_n Low
clkoutA High to lcs_n/usc_n Valid
clkoutA High to A Address Valid
X1 to clkoutA Skew
X1 to clkoutB Skew
clkouta Low to sden Valid
clkouta Low to sclk High
Data Valid to sclk High
sclk High to SPI Data Hold
sclk Low to Data Valid
clkoutA High to rfsh_n Valid
lcs_n Inactive Delay
lcs_n Active Delay
clkoutA High to rfsh_n Invalid
clkoutA to clkoutB Skew
lcs_n Precharge Pulse Width
rfsh_n Cycle Time
lcs_n Inactive to rfsh_n Active Delay
a Address Valid to whb_n/wlb_n Low
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Read Cycle
0ns
20ns
40ns
60ns
t1
80ns
100ns
t2
120ns
t3
140ns
160ns
t4
clkoutA
66
a19-0
address
68
s6_lock_n
8
s6
lock_n
s6
5
14
ad15-ad0/ad7-ad0
6
1
address
Data
23
15
2
ao15-ao8
Address
12
9
59
11
29
ale
10
26
24
28
rd_n
25
27
bhe_n
bhe_n
67
13
18
lcs_n/ucs_n
16
99
17
mcs_n/pcs_n
20
21
den_n
19
41
22
22
dt_r_n
3
4
s2_n-s0_n
uzi_n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Read Cycle Timing
No. Name
Description
General Timing Requirements
1 tDVCL
Data in Setup
2 tCLDX
Data in Hold
General Timing Responses
3 tCHSV
Status Active Delay
4 tCLSH
Status Inactive Delay
5 tCLAV
ad Address Valid Delay
6 tCLAX
Address Hold
8 tCHDX
Status Hold Time
9 tCHLH
ale Active Delay
MIN
MAX
10
0
0
0
0
0
0
0
tCLCH10 tLHLL
ale Width
5
11 tCHLL
ale Inactive Delay
0
12 tAVLL
ad Address Valid to ale Low
tCLCH
13 tLLAX
ad Address Hold from ale Inactive
tCHCL
14 tAVCH
ad Address Valid to Clock High
0
15 tCLAZ
ad Address Float Delay
0
16 tCLCSV
mcs_n/pcs_n Inactive Delay
0
17 tCXCSX
mcs_n/pcs_n Hold from Command Inactive tCLCH
18 tCHCSX
mcs_n/pcs_n Inactive Delay
0
19 tDXDL
den_n Inactive to dt_r_n Low
0
20 tCVCTV
Control Active Delay 1
0
21 tCVDEX
den_n Inactive Delay
0
22 tCHCTV
Control Active Delay 2
0
23 tLHAV
ale High to Address Valid
7.5
Read Cycle Timing Responses
24 tAZRL
ad Address Float to rd_n Active
0
25 tCLRL
rd_n Active Delay
0
26 tRLRH
rd_n Pulse Width
tCLCL
27 tCLRH
rd_n Inactive Delay
0
28 tRHLH
rd_n Inactive to ale High
tCLCH
29 tRHAV
rd_n Inactive to ad Address Active
tCLCL
tCLCL
+
66 tAVRL
a Address Valid to rd_n Low
tCHCL
67 tCHCSV
clkoutA High to lcs_n/usc_n Valid
0
68 tCHAV
clkoutA High to a Address Valid
0
Units
ns
ns
6
6
12
12
8
8
12
12
12
10
9
10
10
10
9
8
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Write Cycle
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
clkoutA
65
a19-0
address
68
s6_lock_n
8
s6
lock_n
s6
14
7
ad15-ad0/ad7-ad0
30
address
12
data
6
ao15-ao8
9
11
23
13
34
ale
31
10
33
wr_n
20
32
87
20
31
whb_n/wlb_n/wb_n
5
bhe_n
18
bhe_n
67
lcs_n/ucs_n
16
17
mcs_n/pcs_n
35
21
31
den_n
22
19
dt_r_n
3
4
s2-s0
uzi_n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Write Cycle Timing
No. Name
Description
General Timing Requirements
1
tDVCL
Data in Setup
2
tCLDX
Data in Hold
General Timing Responses
3
tCHSV
Status Active Delay
4
tCLSH
Status Inactive Delay
5
tCLAV
ad Address Valid Delay
6
tCLAX
Address Hold
7
tCLDV
Data Valid Delay
8
tCHDX
Status Hold Time
9
tCHLH
ale Active Delay
MIN
MAX
10
0
0
0
0
0
0
0
0
tCLCH10 tLHLL
ale Width
5
11 tCHLL
ale Inactive Delay
0
12 tAVLL
ad Address Valid to ale Low
tCLCH
13 tLLAX
ad Address Hold from ale Inactive
tCHCL
14 tAVCH
ad Address Valid to Clock High
0
16 tCLCSV
mcs_n/pcs_n Inactive Delay
0
17 tCXCSX
mcs_n/pcs_n Hold from Command Inactive tCLCH
18 tCHCSX
mcs_n/pcs_n Inactive Delay
0
19 tDXDL
den_n Inactive to dt_r_n Low
0
20 tCVCTV
Control Active Delay 1
0
22 tCHCTV
Control Active Delay 2
0
23 tLHAV
ale High to Address Valid
7.5
Write Cycle Timing Responses
30 tCLDOX
Data Hold Time
0
31 tCVCTX
Control Inactive Delay
0
32 tWLWH
wr_n Pulse Width
2tCLCL
33 tWHLH
wr_n Inactive to ale High
tCLCH
34 tWHDX
Data Hold after wr_n
tCLCL
35 tWHDEX
wr_n Inactive to den_n Inactive
tCLCH
tCLCL
+
65 tAVWL
a Address Valid to wr_n Low
tCHCL
67 tCHCSV
clkoutA High to lcs_n/usc_n Valid
0
68 tCHAV
clkoutA High to a Address Valid
0
tCHCL
87 tAVBL
a Address Valid to whb_n/wlb_n Low
-1.5
Units
ns
ns
6
6
12
12
12
8
8
12
12
10
9
10
9
8
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PSRAM Read Cycle
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
clkoutA
66
a19-a0
Address
68
s6/lock_n
8
s6
lock_n
5
ad15-ad0/ad7-ad0
s6
7
1
Address
Data
23
Address
2
ao15-ao8
Address
9
11
59
ale
24
10
28
25
27
rd_n
84
26
81
80
lcs_n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PSRAM Read Cycle Timing
No.
Name
Comment
General Timing Requirements
1 tDVCL
Data in Setup
2 tCLDX
Data in Hold
General Timing Responses
5 tCLAV
ad Address Valid Delay
7 tCLDV
Data Valid Delay
8 tCHDX
Status Hold Time
9 tCHLH
ale Active Delay
10
11
23
80
81
tLHLL
tCHLL
tLHAV
tCLCLX
tCLCSL
ale Width
ale Inactive Delay
ale High to Address Valid
lcs_n Inactive Delay
lcs_n Active Delay
84 tLRLL
lcs_n Precharge Pulse Width
Read Cycle Timing Responses
24 tAZRL
ad Address Float to rd_n Active
25 tCLRL
rd_n Active Delay
26 tRLRH
rd_n Pulse Width
27 tCLRH
rd_n Inactive Delay
28 tRHLH
rd_n Inactive to ale High
59 tRHDX
rd_n High to Data Hold on ad Bus
66 tAVRL
68 tCHAV
a Address Valid to rd_n Low
clkoutA High to a Address Valid
MIN
MAX
Units
10
0
NLL
ns
ns
0
0
0
0
12
12
ns
ns
ns
ns
8
tCHCL5
0
7.5
0
0
tCLCL
+
tCLCH
0
0
tCLCL
0
tCLCH
0
tCLCL
+
tCHCL
0
8
9
9
ns
ns
ns
ns
ns
ns
10
10
8
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PSRAM Write Cycle
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
clkoutA
65
a19-a0
Address
68
s6
8
s6
lock_n
5
ad15-ad0/ad7-ad0
s6
7
30
Address
Data
ao15-ao8
Address
23
33
9
11
34
ale
31
10
20
31
wr_n
87
20
32
whb_n/wlb_n/wb_n
80
81
84
80
lcs_n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PSRAM Write Cycle Timing
No. Name
Comment
General Timing Requirements
1 tDVCL
Data in Setup
2 tCLDX
Data in Hold
General Timing Responses
5 tCLAV
ad Address Valid Delay
7 tCLDV
Data Valid Delay
8 tCHDX
Status Hold Time
9 tCHLH
ale Active Delay
10 tLHLL
ale Width
11 tCHLL
ale Inactive Delay
20 tCVCTV
Control Active Delay 1
23 tLHAV
ale High to Address Valid
80 tCLCLX
lcs_n Inactive Delay
81 tCLCSL
lcs_n Active Delay
84 tLRLL
lcs_n Precharge Pulse Width
Write Cycle Timing Responses
30 tCLDOX
Data Hold Time
31 tCVCTX
Control Inactive Delay
32 tWLWH
wr_n Pulse Width
33 tWHLH
wr_n Inactive to ale High
34 tWHDX
Data Hold after wr_n
65 tAVWL
68 tCHAV
a Address Valid to wr_n Low
clkoutA High to a Address Valid
87 tAVBL
a Address Valid to whb_n/wlb_n Low
MIN
MAX Units
10
0
ns
ns
0
12
0
12
0
0
8
tCLCH-5
NULL NULL
0
10
7.5
0
9
0
9
tCLCL+
tCLCH
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
0
0
2tCLCL
tCLCH
tCLCL
tCLCL+
tCHCL
0
tCHCL 1.5
ns
ns
ns
ns
ns
10
8
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
PSRAM Refresh Cycle
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
CLKOUTA
a19-a0
Address
9
11
28
ale
27
10
26
rd_n
80
25
27
81
lcs_n
79
82
rfsh_n
86
85
PSRAM Refresh Cycle
No. Name
Comment
General Timing Requirements
1 tDVCL
Data in Setup
2 tCLDX
Data in Hold
General Timing Responses
9 tCHLH
ale Active Delay
10 tLHLL
ale Width
11 tCHLL
ale Inactive Delay
Read/Write Cycle Timing Responses
25 tCLRL
rd_n Active Delay
26 tRLRH
rd_n Pulse Width
27 tCLRH
rd_n Inactive Delay
28 tRHLH
rd_n Inactive to ale High
80 tCLCLX
lcs_n Inactive Delay
81 tCLCSL
lcs_n Active Delay
Refresh Cycle Timing Responses
79 tCHRFD
clkoutA High to rfsh_n Valid
82 tCLRF
clkoutA High to rfsh_n Invalid
85 tRFCY
rfsh_n Cycle Time
86 tLCRF
lcs_n Inactive to rfsh_n Active Delay
MIN
MAX
10
0
0
tCLCH5
0
0
tCLCL
0
tCLCH
0
0
Units
ns
ns
8
ns
8
ns
ns
10
10
9
9
0
12
0
12
6tCLCL
2tCLCL NULL
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Interrupt Acknowledge Cycle
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
clkoutA
68
a19-a0
Address
7
s6
s6
8
lock_n
s6
15
1
ad15-ad0/ad7-ad0
Ptr
12
23
2
ao15-ao8
Address
9
11
ale
10
bhe_n
4
bhe_n
20
31
inta1_n/inta0_n
22
22
21
den_n
19
22
dt_r_n
3
4
s2_n-s0_n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Interrupt Acknowledge Cycle Timing
No. Name
Description
General Timing Requirements
1
tDVCL
Data in Setup
2
tCLDX
Data in Hold
General Timing Responses
3
tCHSV
Status Active Delay
4
tCLSH
Status Inactive Delay
7
tCLDV
Data Valid Delay
8
tCHDX
Status Hold Time
9
tCHLH
ale Active Delay
10
11
12
15
19
20
21
22
23
31
68
tLHLL
tCHLL
tAVLL
tCLAZ
tDXDL
tCVCTV
tCVDEX
tCHCTV
tLHAV
tCVCTX
tCHAV
ale Width
ale Inactive Delay
ad Address Valid to ale Low
ad Address Float Delay
den_n Inactive to dt_r_n Low
Control Active Delay 1
den_n Inactive Delay
Control Active Delay 2
ale High to Address Valid
Control Inactive Delay
clkoutA High to a Address Valid
MIN
MAX
10
0
0
0
0
0
0
tCLCH5
0
tCLCH
0
0
0
0
0
7.5
0
0
Units
ns
ns
6
6
12
8
8
12
10
9
10
10
8
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Software Halt Cycle
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
clkoutA
68
a19-a0
Invalid Address
5
s6/ad[15:0/ad[8:0]/ao[15:8]
Invalid Address
9
11
ale
10
den_n
19
dt_r_n
22
s2_n-s0_n
4
Status
3
Software Halt Cycle Timing
No. Name
Description
General Timing Responses
3
tCHSV
Status Active Delay
4
tCLSH
Status Inactive Delay
5
tCLAV
ad Address Valid Delay
9
tCHLH
ale Active Delay
10
11
19
22
68
tLHLL
tCHLL
tDXDL
tCHCTV
tCHAV
ale Width
ale Inactive Delay
den_n Inactive to dt_r_n Low
Control Active Delay 2
clkoutA High to a Address Valid
MIN
MAX
Units
0
0
0
0
tCLCH5
0
0
0
0
6
6
12
8
ns
ns
ns
ns
8
10
8
ns
ns
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Clock – Active Mode
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
180ns
160ns
180ns
x2
36
37
38
x1
69
42
43
44
clkoutA
70
clkoutB
Clock – Power-Save Mode
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
x2
x1
clkoutA
clkoutB(CBF=1)
clkoutB(CBF=0)
Clock Timing
No. Name
CLKIN Requirements
36 tCKIN
37 tCLCK
38 tCHCK
39 tCKHL
40 tCKLH
CLKOUT Timing
42 tCLCL
43 tCLCH
44 tCHCL
45 tCH1CH2
46 tCL2CL1
61 tLOCK
69 tCICOA
70 tCICOB
Description
MIN
MAX
Units
X1 Period
X1 Low Time
X1 High Time
X1 Fall Time
X1 Rise time
25
7.5
7.5
66
5
5
ns
ns
ns
ns
ns
3
3
0.5
25
35
ns
ns
ns
ns
ns
ms
ns
ns
clkoutA Period
clkoutA Low Time
clkoutA High Time
clkoutA Rise Time
clkoutA Fall Time
Maximum PLL Lock Time
X1 to clkoutA Skew
X1 to clkoutB Skew
25
tCLCL/2
tCLCL/2
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
srdy – Synchronous Ready
0ns
20ns
40ns
60ns
80ns
100ns
120ns
clkoutA
47
srdy
48
ardy - Asynchronous Ready
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140
clkoutA
51
49
ardy
50
Sytem Normally not Ready
49
ardy
Sytem Normally Ready
50
ardy
System Normally Ready
52
Peripherals
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
clkoutA
53
int4-0/NMI/tmrin1-0
54
drq1-drq0
55
tmrout1-tmrout0
Ready and Peripheral Timing
No. Name
Description
MIN
MAX
Units
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Ready and Peripheral Timing Requirements
47 tSRYCL
srdy Transition Setup Time
48 tCLSRY
srdy Transistion Hold Time
49 tARYCH
ardy Resolution Transition Setup Time
50 tCLARX
ardy Active Hold Time
51 tARYCHL
ardy Inactive Holding Time
52 tARYLCL
ardy Setup Time
53 tINVCH
Peripheral Setup Time
54 tINVCL
drq Setup Time
Peripheral Timing Responses
55 tCLTMV
Timer Output Delay
10
3
9
4
6
9
10
10
ns
ns
ns
ns
ns
ns
ns
ns
0
12
ns
Reset 1
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
x1
57
res_n
57
Low for N x1 Cycles
clkoutA
Reset 2
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
160ns
1
res_n
clkoutA
bhe_n/aden_n,rfsh2_n/
aden_n/s6/clkdiv2,uzi_n
ad[15:0],a0[15:8],ad[7:0]
tri-state
tri-state
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Bus Hold Entering
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
100ns
120ns
140ns
clkoutA
58
hold
62
hlda
15
ad[15:0],den_n
63
a[19:0], s6,rd_n,wr_n,bhe_n, dr/r_n
s2_n-s1_n,whb_n,wlb_n
Bus Hold Leaving
0ns
20ns
40ns
60ns
80ns
clkoutA
58
hold
62
hlda
5
ad[15:0],den_n
64
a[19:0], s6,rd_n,wr_n,bhe_n, dr/r_n
s2_n-s1_n,whb_n,wlb_n
Reset and Bus Hold Timing
No. Name
Description
Reset and Bus Hold Timing Requirements
5
tCLAV
ad Address Valid Delay
15 tCLAZ
ad Address Float Delay
57 tRESIN
res_n Setup Time
58 tHVCL
hld Setup Time
Reset and Bus Hold Timing Responses
62 tCLHAV
hlda Valid Delay
63 tCHCZ
Command Lines Float Delay
64 tCHCV
Command Lines Valid Delay (after Float)
MIN
MAX
Units
0
tCLCH
10
10
12
ns
ns
ns
ns
0
0
0
7
12
12
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Synchronous Serial Interface
0ns
20ns
40ns
60ns
80ns
100ns
120ns
140ns
clkoutA
71
sden
72
sclk
75
77
sdata(RX)
DATA
78
sdata(TX)
DATA
Synchronous Serial Interface Timing
No. Name
Description
Synchronous Serial Port Timing Requirements
75 tDVSH
Data Valid to sclk high
77 tSHDX
sclk High to SPI Data Hold
Synchronous Serial Port Timing Responses
71 tCLEV
clkoutA Low to sden Valid
72 tCLSL
clkoutA Low to sclk Low
78 tSLDV
sclk Low to Data Valid
MIN
MAX
10
3
0
0
0
Units
ns
ns
12
12
12
ns
ns
ns
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
ad4
ad11
ad3
ad10
ad2
ad9
sdata
rxd
txd
uzi_n
s6 /clkdiv2_n
ad15
ad7
ad14
vCC
ad6
ad13
gnd
ad5
ad12
IA186EM 100-Pin PQFP
sden1
sden0
sclk
bhe_n/aden
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19
a18
vCC
a17
a16
a15
a14
a13
a12
a11
a10
a9
hlda
hold
srdy
nmi
dt/r_n
den_n
mcs0
a7
a6
a5
a4
a3
a2
vCC
a1
a0
gnd
whb_n
wlb_n
a8
ad1
ad8
ad0
drq0_n
drq1_n
tmrin0
tmrout0
tmrout1
tmrin1
res_n
gnd
mcs3_n/rfsh_n
mcs2_n
vCC
pcs0_n
pcs1_n
gnd
pcs2_n
pcs3_n
vCC
pcs5_n/a1
pcs6_n/a2
lcs_n/once0_n
ucs_n/once1_n
int0
int1/select_n
int2/inta0_n/pwd
int3/inta1_n/irq
int4
mcs1_n
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
A186EM 100-Pin PQFP Assignments (Sorted by Pin Number)
Pin #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Name
sden1/pio23
sden0/pio22
sclk/pio20
bhe_n/aden_n
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19/pio29
a18/pio8
vCC
a17/pio7
a16
a15
a14
a13
a12
a11
a10
a9
a8
a7
a6
a5
a4
a3
a2
vCC
a1
a0
gnd
whb_n
wlb_n
hlda
hold
srdy/pio6
nmi
dt/r_n/pio4
den_n/pio5
mcs0_n/pio14
Pin #
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Name
mcs1_n/pio15
int4/pio30
int3/inta1_n/irq
int2/inta0_n/pio31
int1/select_n
int0
ucs_n/once1_n
lcs_n/once0_n
pcs6_n/a2/pio2
pcs5_n/a1/pio3
vCC
pcs3_n/pio19
pcs2_n/pio18
gnd
pcs1_n/pio17
pcs0_n/pio16
vCC
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
gnd
res_n
tmrin1/pio25
tmrout1/pio1
tmrout0/pio10
tmrin0/pio11
drq1/pio13
drq0/pio12
ad0
ad8
ad1
ad9
ad2
ad10
ad3
ad11
ad4
ad12
ad5
gnd
ad13
ad6
vCC
ad14
ad7
ad15
s6/clkdiv2_n/pio29
uzi_n/pio26
txd/pio27
rxd/pio28
sdata/pio21
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Pin Name
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17/pio7
a18/pio8
a19/pio9
ad0
ad1
ad2
ad3
ad4
ad5
ad6
ad7
ad8
ad9
ad10
ad11
ad12
ad13
ad14
ad15
ale
ardy
bhe_n/aden_n
clkouta
clkoutb
den_n/pio5
drq0/pio12
drq1/pio13
dt/r_n/pio4
gnd
gnd
gnd
gnd
gnd
As of Production Version -03
Number
40
39
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
20
19
78
80
82
84
86
88
91
94
79
81
83
85
87
90
93
95
7
8
4
16
17
49
77
76
48
12
18
41
64
70
Pin Name
gnd
hlda
hold
int0
int1/select_n
int2/inta0_n/pio31
int3/inta1_n/irq
int4/pio30
lcs_n/once0_n
mcs0_n/pio14
mcs1_n/pio15
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
nmi
pcs0_n/pio16
pcs1_n/pio17
pcs2_n/pio18
pcs3_n/pio19
pcs5_n/a1/pio3
pcs6_n/a2/pio2
rd_n
res_n
rxd/pio28
s0_n
s1_n
s2_n
s6/clkdiv2/pio29
sclk/pio20
sdata/pio21
sden0/pio22
sden1/pio23
srdy/pio6
tmrin0/pio11
tmrin1/pio0
tmrout0/pio10
tmrout1/pio1
txd/pio27
ucs_n/once1_n
uzi_n/pio26
vCC
vCC
vCC
vCC
vCC
vCC
whb_n
wlb_n
wr_n
x1
x2
Number
89
44
45
56
55
54
53
52
58
50
51
68
69
47
66
65
63
62
60
59
6
71
99
11
10
9
96
3
100
2
1
46
75
72
74
73
98
57
97
15
21
38
61
67
92
42
43
5
13
14
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
drq0
drq1
tmrin0
tmrout0
tmrout1
tmrin1
res_n
gnd
mcs3_n/rfsh_n
mcs2_n
vCC
pcs0_n
pcs1_n
gnd
pcs2_n
pcs3_n
vCC
pcs5_n/a1
pcs6_n/a2
lcs_n/once0_n
ucs_n/once1_n
int0
int1/select_n
int2/inta0_n
int3_n/inta1_n/irq
IA186EM TQFP 100-Pin
int4
mcs1_n
mcs0_n
den_n
dt/r_n
nmi
srdy
hold
hlda
wlb_n
whb_n
gnd
a0
a1
vCC
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
sclk
bhe_n/aden_n
wr_n
rd_n
ale
ardy
s2 n
s1_n
s0 n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19
a18
vCC
a17
a16
a15
a14
a13
a12
ad0
ad8
ad1
ad9
ad2
ad10
ad3
ad11
ad4
ad12
ad5
gnd
ad13
ad6
ad7
ad14
vCC
ad15
s6//clkdiv2
uzi_n
txd
rxd
sdata
sden1
sden0
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
IA186EM 100-Pin TQFP Pin Assignments (sorted by Pin number)
Pin #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Name
ad0
ad8
ad1
ad9
ad2
ad10
ad3
ad11
ad4
ad12
ad5
gnd
ad13
ad6
vCC
ad14
ad7
ad15
s6/clkdiv2/pio29
uzi_n/pio26
txd
rxd
sdata/pio21
sden1/pio23
sden0/pio22
sclk/pio20
bhe_n/aden_n
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19/pio9
a18/pio8
vCC
a17/pio7
a16
a15
a14
a13
a12
Pin #
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Name
a11
a10
a9
a8
a7
a6
a5
a4
a3
a2
vCC
a1
a0
gnd
whb_n
wlb_n
hlda
hold
srdy/pio6
nmi
dt/r_n/pio4
den_n/pio5
mcs0_n/pio14
mcs1_n/pio15
int4/pio30
int3/inta1_n/irq
int2/inta0_n/pio31
int1/select_n
int0
ucs_n/once1_n
lcs_n/once0_n
pcs6_n/a2/pio2
pcs5_n/a1/pio3
vCC
pcs3_n/pio19
pcs2_n/pio18
gnd
pcs1_n/pio17
pcs0_n/pio16
vCC
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
gnd
res_n
tmrin1/pio0
tmrout1/pio1
tmrout0/pio10
tmrin0/pio11
drq1/pio13
drq0/pio12
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Pin Name
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17/pio7
a18/pio8
a19/pio9
ad0
ad1
ad2
ad3
ad4
ad5
ad6
ad7
ad8
ad9
ad10
ad11
ad12
ad13
ad14
ad15
ale
ardy
bhe_n/aden_n
clkouta
clkoutb
den_n/pio5
drq0/pio12
drq1/pio13
dt/r_n/pio4
gnd
gnd
gnd
gnd
gnd
As of Production Version -03
Number
63
62
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
43
42
1
3
5
7
9
11
14
17
2
4
6
8
10
13
16
18
30
30
27
39
40
72
100
99
71
12
36
41
64
87
Pin Name
gnd
hlda
hold
int0
int1/select_n
int2/inta0_n/pio31
int3/inta1_n/irq
int4/pio30
lcs_n/once0_n
mcs0_n/pio14
mcs1_n/pio15
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
nmi
pcs0_n/pio16
pcs1_npio
pcs2_n/pio18
pcs3_n/pio19
pcs5_n/a1/pio3
pcs6_n/a2/pio2
rd_n
res_n
rxd/pio23
s0_n
s1_n
s2_n
s6/clkdiv2/pio29
sclk/pio20
sdata/pio21
sden0/pio22
sden1/pio23
srdy/pio6
tmrin0/pio11
tmrin1/pio0
tmrout0/pio10
tmrout1/pio1
txd/pio27
ucs_n/once1_n
uzi_n/pio26
vCC
vCC
vCC
vCC
vCC
vCC
whb_n
wlb_n
wr_n
x1
x2
Number
93
67
68
79
78
77
76
75
81
73
74
91
92
70
89
88
86
85
83
82
29
94
24
34
33
32
19
26
23
25
24
69
98
95
97
96
21
80
20
15
38
44
61
84
90
65
66
28
36
37
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
txd
uzi_n
s6 /clkdiv2_n
ao15
ad7
ao14
vCC
ad6
ao13
gnd
ad5
ao12
ad4
ao11
ad3
ao10
ad2
ao9
sdata
rxd
IA188EM 100-Pin PQFP
ad1
ao8
ad0
drq0
drq1
tmrin0
tmrout0
tmrout1
tmrin1
res_n
gnd
mcs3_n/rfsh_n
mcs2_n
vCC
pcs0_n
pcs1_n
gnd
pcs2_n
pcs3_n
vCC
pcs5_n/a1
pcs6_n/a2
lcs_n/once0
ucs_n/once1
int0
int1/select_n
int2/inta0_n
int3/inta1_n/irq
int4
mcs1_n
a1
a0
gnd
gnd
wb_n
hlda
hold
srdy
nmi
dt/r_n
den_n
mcs0
a8
a7
a6
a5
a4
a3
a2
vCC
sden1
sden0
sclk
rfsh2/aden_n
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19
a18
vCC
a17
a16
a15
a14
a13
a12
a11
a10
a9
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
IA188EM 100 Pin PQFP Assignments (sorted by Pin number)
Pin #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Name
sden1/pio23
sden0/pio22
sclk/pio20
rfsh2_n/aden_n
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19/pio29
a18/pio8
vCC
a17/pio7
a16
a15
a14
a13
a12
a11
a10
a9
a8
a7
a6
a5
a4
a3
a2
vCC
a1
a0
gnd
gnd
wb_n
hlda
hold
srdy/pio6
nmi
dt/r_n/pio4
den_n/pio5
mcs0_n/pio14
Pin #
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Name
mcs1_n/pio15
int4/pio30
int3/inta1_n/irq
int2/inta0_n/pwd/pio31
int1/select_n
int0
ucs_n/once1_n
lcs_n/once0_n
pcs6_n/a2/pio2
pcs5_n/a1/pio3
vCC
pcs3_n/pio19
pcs2_n/pio18
gnd
pcs1_n/pio17
pcs0_n/pio16
vCC
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
gnd
res_n
tmrin1/pio25
tmrout1/pio1
tmrout0/pio10
tmrin0/pio11
drq1/pio13
drq0/pio12
ad0
ao8
ad1
ao9
ad2
ao10
ad3
ao11
ad4
ao12
ad5
gnd
ao13
ad6
VCC
ao14
ad7
ao15
s6/clkdiv2_n/pio29
uzi_n/pio26
txd/pio27
rxd/pio28
sdata/pio21
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Pin Name
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17/pio7
a18/pio8
a19/pio9
ad0
ad1
ad2
ad3
ad4
ad5
ad6
ad7
ale
ao8
ao9
ao10
ao11
ao12
ao13
ao14
ao15
ardy
clkouta
clkoutb
den_n/ds_n/pio5
drq0/pio12
drq1/pio13
dt/r_n/pio4
gnd
gnd
gnd
gnd
gnd
gnd
As of Production Version -03
Number
40
39
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
20
19
78
80
82
84
86
88
91
94
7
79
81
83
85
87
90
93
95
8
16
17
49
77
76
48
12
18
41
42
64
70
Pin Name
gnd
hlda
hold
int0
int1/select_n
int2/inta0_n/pwd/pio31
int3/inta1_n/irq
int4/pio30
lcs_n/once0_n
mcs0_n/pio14
mcs1_n/pio15
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
nmi
pcs0_n/pio16
pcs1_n/pio17
pcs2_n/cts1_n/enrx1_n/pio18
pcs3_n/rts1_n/rtr1_n/pio19
pcs5_n/a1/pio3
pcs6_n/a2/pio2
rd_n
res_n
rfsh2_n/aden_n
rxd/pio28
s0_n
s1_n
s2_n
s6/lock_n/clkdiv2/pio29
sclk/pio20
sdata/pio21
sden0/pio22
sden1/pio23
srdy/pio6
tmrin0/pio11
tmrin1/pio0
tmrout0/pio10
tmrout1/pio1
txd/pio27
ucs_n/once1_n
uzi_n/pio26
vCC
vCC
vCC
vCC
vCC
vCC
wb_n
wr_n
x1
x2
Number
89
44
45
56
55
54
53
52
58
50
51
68
69
47
66
65
63
62
60
59
6
71
4
99
11
10
9
96
3
100
2
1
46
75
72
74
73
98
57
97
15
21
38
61
67
92
42
5
13
14
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
drq0
drq1
tmrin0
tmrout0
tmrout1
tmrin1
res_n
gnd
mcs3_n/rfsh_n
mcs2_n
vCC
pcs0_n
pcs1_n
gnd
pcs2_n
pcs3_n
vCC
pcs5_n/a1
pcs6_n/a2
lcs_n/once0_n
ucs_n/once1_n
int0
int1/select_n
int2/inta0_n
int3_n/inta1_n/irq
IA188EM 100-Pin TQFP
int4
mcs1_n
mcs0_n
den_n
dt/r_n
nmi
srdy
hold
hlda
wb_n
gnd
gnd
a0
a1
vCC
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
sclk
rfsh2/aden_n
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19
a18
vCC
a17
a16
a15
a14
a13
a12
ad0
ao8
ad1
ao9
ad2
ao10
ad3
ao11
ad4
ao12
ad5
gnd
ao13
ad6
vCC
ao14
ad7
ao15
s6//clockdiv2
uzi_n
txd
rxd
sdata
sden1
sden0
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
IA188EM 100-Pin TQFP Pin Assignments (sorted by Pin number)
Pin #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Name
ad0
ao8
ad1
ao9
ad2
ao10
ad3
ao11
ad4
ao12
ad5
gnd
ao13
ad6
vCC
ao14
ad7
ao15
s6/clkdiv2/pio29
uzi_n/pio26
txd/pio27
rxd/pio28
sdata/pio21
sden1/pio23
sden0/pio22
sclk/pio20
rfsh2_n/aden_n
wr_n
rd_n
ale
ardy
s2_n
s1_n
s0_n
gnd
x1
x2
vCC
clkouta
clkoutb
gnd
a19/pio9
a18/pio8
vCC
a17/pio7
a16
a15
a14
a13
a12
Pin #
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Name
a11
a10
a9
a8
a7
a6
a5
a4
a3
a2
vCC
a1
a0
gnd
gnd
wb_n
hlda
hold
srdy/pio6
nmi
dt/r_n/pio4
den_n/pio5
mcs0_n/pio14
mcs1_n/pio15
int4/pio30
int3/inta1_n/irq
int2/inta0_n/pio31
int1/select_n
int0
ucs_n/once1_n
lcs_n/once0_n
pcs6_n/a2/pio2
pcs5_n/a1/pio3
vCC
pcs3_n/pio19
pcs2_n/pio18
gnd
pcs1_n/pio17
pcs0_n/pio16
vCC
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
gnd
res_n
tmrin1/pio0
tmrout1/pio1
tmrout0/pio10
tmrin0/pio11
drq1/pio13
drq0/pio12
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
Pin Name
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
a11
a12
a13
a14
a15
a16
a17/pio7
a18/pio8
a19/pio9
ale
ad0
ad1
ad2
ad3
ad4
ad5
ad6
ad7
ao8
ao9
ao10
ao11
ao12
ao13
ao14
ao15
ardy
clkouta
clkoutb
den_/pio5
drq0/pio12
drq1/pio13
dt/r_n/pio4
gnd
gnd
gnd
gnd
gnd
gnd
As of Production Version -03
Number
63
62
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
43
42
30
1
3
5
7
9
11
14
17
2
4
6
8
10
13
16
18
30
39
40
72
100
99
71
12
35
41
64
65
87
Pin Name
gnd
hlda
hold
int0
int1/select_n
int2/inta0_n/pio31
int3/inta1_n/irq
int4/pio30
lcs_n/once0_n
mcs0_n/pio14
mcs1_n/pio15
mcs2_n/pio24
mcs3_n/rfsh_n/pio25
nmi
pcs0_n/pio16
pcs1_n/pio17
pcs2_n/pio18
pcs3_n/pio19
pcs5_n/a1/pio3
pcs6_n/a2/pio2
rd_n
res_n
rfsh2_n/aden_n
rxd/pio28
s0_n
s1_n
s2_n
s6/lock_n/clkdiv2/pio29
sclk/pio20
sdata/pio21
sden0/pio22
sden1/pio23
srdy/pio6
tmrin0/pio11
tmrin1/pio0
tmrout0/pio10
tmrout1/pio1
txd/pio27
ucs_n/once1_n
uzi_n/pio26
vCC
vCC
vCC
vCC
vCC
vCC
wb_n
wr_n
x1
x2
Number
93
67
68
79
78
77
76
75
81
73
74
91
92
70
89
88
86
85
83
82
29
94
27
22
34
33
32
19
26
23
25
24
69
98
95
97
96
21
80
20
15
38
44
61
84
90
66
28
36
37
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Physical Dimensions
PQFP 100
PLATING
Pin 1 Indicator
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Symbol
A
A1
A2
B
B1
C
C1
D
D1
E
E1
e
L
L1
R1
R2
S
Y
)
)1
)2
)3
Dimensions in Inches
Minimum Nominal
Maximum
------0.134
0.010
------0.107
0.112
0.117
0.010
0.012
0.015
0.009
0.012
0.013
0.005
0.006
0.009
0.004
0.006
0.007
0.906
0.913
0.921
0.783
0.787
0.791
0.669
0.677
0.685
0.547
0.551
0.555
0.026 BSC
0.029
0.035
0.041
0.063 BSC
0.005
------0.005
---0.012
0.008
------------0.004
---0%
7%
------0%
9%
10%
11%
9%
10%
11%
Data Sheet
As of Production Version -03
Dimensions in mm
Minimum Nominal
Maximum
------3.40
0.25
------2.73
2.85
2.97
0.25
0.30
0.38
0.22
0.30
0.33
0.13
0.15
0.23
0.11
0.15
0.17
23.00
23.20
23.40
19.90
20.00
20.10
17.00
17.20
17.40
13.90
14.00
14.10
0.65 BSC
0.73
0.88
1.03
1.60 BSC
0.13
------0.13
---0.30
0.20
------------0.10
---0%
7%
------0%
9%
10%
11%
9%
10%
11%
NOTES
1. Dimensions D1 and E1 do not include mold protrusion. But mold mismatch is included.
Allowable Protrusion is 0.25mm/0.010* per side.
2. Dimension B does not include Dambar protrusion. Allowable protrusion is 0.08mm/0.003* total
in excess of the B dimension at maximum material condition. Dambar cannot be located on the
lower radius or the foot.
3. Controlling dimension: millimeter.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
TQFP 100
Pin 1 Indicator
b
e
D2
E2
Dimensions in mm
Minimum Nominal Maximum
0.17
0.20
0.27
0.50 BSC
12.00
12.00
Dimensions in Inches
Minimum Nominal Maximum
0.007
0.008
0.011
0.02 BSC
0.472
0.472
aaa
bbb
ccc
ddd
0.20
0.20
0.08
0.08
0.008
0.008
0.003
0.003
Symbol
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
Data Sheet
8/16-BIT Microcontrollers
As of Production Version -03
Ordering Information
Innovasic#
Part Number
IA186EM-PQF100I
(standard packaging)
IA186EM-PQF100I-R
(RoHS packaging)
IA186EM-PTQ100I
(standard packaging)
IA186EM-PTQ100I-R
(RoHS packaging)
IA188EM-PQF100I
(standard packaging)
IA188EM-PQF100I-R
(RoHS packaging)
IA188EM-PTQ100I
(standard packaging)
IA188EM-PTQ100I-R
(RoHSpackaging)
AMD# Part
Number
Package
Type
Temperature
Grades
AM186EM-20KC\W
AM186EM-20KI\W
AM186EM-25KC\W
AM186EM-25KI\W
AM186EM-33KC\W
AM186EM-40KC\W
AM186EM-20KC\W
AM186EM-20KI\W
AM186EM-25KC\W
AM186EM-25KI\W
AM186EM-33KC\W
AM186EM-40KC\W
100-Pin Plastic Quad
Flat Package (PQFP)
Commercial and
Industrial
AM186EM-20VC\W
AM186EM-25VC\W
AM186EM-33VC\W
AM186EM-40VC\W
AM186EM-20VC\W
AM186EM-25VC\W
AM186EM-33VC\W
AM186EM-40VC\W
AM188EM-20KC\W
AM188EM-20KI\W
AM188EM-25KC\W
AM188EM-25KI\W
AM188EM-33KC\W
AM188EM-40KC\W
AM188EM-20KC\W
AM188EM-20KI\W
AM188EM-25KC\W
AM188EM-25KI\W
AM188EM-33KC\W
AM188EM-40KC\W
AM188EM-20VC\W
AM188EM-25VC\W
AM188EM-33VC\W
AM188EM-40VC\W
AM188EM-20VC\W
AM188EM-25VC\W
AM188EM-33VC\W
AM188EM-40VC\W
100-Pin Thin Quad Flat
Package (TQFP)
Commercial and
Industrial
100-Pin Plastic Quad
Flat Package (PQFP)
Commercial and
Industrial
100-Pin Thin Quad Flat
Package (TQFP)
Commercial and
Industrial
Other packages and temperature grades may be available for an additional cost and lead time.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Errata
Version -01
1) Problem: MCS chip select signals (MCS0-3) are intermittently suppressed. All other signals in bus cycle
appear correct (i.e. address, data, write/read strobes).
Analysis: Anomaly occurs when an access to I/O space is immediately followed by an MCS access. Given the
way instruction prefetches naturally separate such accesses, one known scenario for this anomaly is via a DMA
sequence. Possible combinations are:
(1) DMA write to destination is followed by previously scheduled
MCS read or write,
(2) DMA from I/O space to MCS space.
Customers using the UART DMA feature of the ES products may be particularly sensitive to this,
because when the TX data register of the PCB is in I/O space, eventually an MCS access will be
corrupted.
Another known scenario occurs when auxiliary flash (containing executable code) is selected by an
MCS signal and the PCB or PCS selects are in I/O space.
The PCB register block and the PCS address spaces are the only areas that can be assigned to I/O
space. The PCB register block is configured by bit 12 of the RELREG, and defaults to I/O space.
PCS space is configured by bit 6 of the MPCS, and must be initialized by the user.
Workaround: If possible, assign PCB and PCS address locations to memory space instead of I/O space.
2) Problem: IA186ES devices do not work in a 188ES socket.
Analysis: The WHB pin should be sampled at reset to configure the bus width. This pin is always
grounded in 188 applications, and floats high during reset in 186 applications. The bus width of the
Innovasic devices are configured via in-package bonding.
Workaround: Use IA188ES devices for 188 sockets.
3) Problem: Noise on TMROUT0 (PIO10) and TMROUT1 (PIO1) when in PIO output mode.
Analysis: Only occurs when application is using HOLD/HLDA function, and either TMROUT pin is
in PIO output mode. Improper logic allows the TMROUT pin to tri-state when HLDA is asserted.
Analysis shows that UZI (PIO26), S6CLK2 (PIO29), DEN (PIO5), and DT_R (PIO4) may also be
affected. PIO input modes and normal operation modes are not affected.
Workaround: If possible, use a PIO pin other than those listed above when utilizing HOLD/HLDA feature. An
external pullup/pulldown may also help.
4) Problem: An extra DMA cycle occurs after ending DMA transfers via a DMA control register write. In certain
applications, this extra DMA cycle occurrence will hang the device because of DREQ/SRDY dependency.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Analysis: The string of DMA transfers is ended by writing x0004 to PCB address xCA or xDA while
DMA request line is asserted. By this time, the sequence to initiate the DMA transfer cannot be
suppressed or recalled, so the IA device executes the spurious transfer.
Workaround: None.
5) Problem: In the 186/188ES devices, the TB8 bit of the UART control register (offset x10 or x80) does not
automatically reset after transmitting the initial word when using 9-bit formats (modes 2 or 3).
Analysis: This feature is used to designate the “address” byte when using the UART in a psuedoLAN configuration. The automatic reset of TB8 allows a convenient means to send a block of words
with little software interaction.
Workaround: Manually reset TB8 after detecting the end of the first transmitted word.
6) Problem: In the 186/188ES devices, the Power Save clock speed is not working correctly.
Analysis: A logic error causes the device to incorrectly clear bits [2:0] of the PDCON when the
device leaves power save mode by clearing bit 15 of the PDCON.
Workaround: Every time the programmer desires to go into power save mode by setting bit 15 of the PDCON
register, then bits [2:0] should also be set according to the desired clock divide factor. It should not be assumed
that once written to, bits [2:0] will retain their values when entering and exiting the power save mode.
7) Problem: The device responds incorrectly to false start bits.
Analysis: If a start bit is less than half width, the device should ignore this start bit completely (no
data byte, no errors). Instead the device treats the data that follows as a valid byte, and generates a
framing error.
Workaround: Eliminate false start bits, or revise how the resulting framing error and extra byte are handled.
8) Problem: The UART is disabled when an external system generates a break condition.
Analysis: The device should not be disabled when an external system generates a break condition,
instead once the break condition is deasserted the UART should start receiving data. However, the
UART in the Innovasic device is disabled by the externally generated break condition and can only
receive data once the break flags (Bit 9: BRK0 of registers SP0ST and/or SP1ST) are cleared.
Workaround: Ensure that every time an external break condition is acknowledged, that the break flag bits are
cleared.
9) Problem: The MOV instruction does work when an attempt is made to load the CS register.
Analysis: On the OEM AMD part a MOV CS, AX command loads CS with the contents of AX. The
Innovasic part never loads CS with AX by use of a MOV instruction.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
Workaround: To load the CS register use a far JMP command.
10) Problem: There is a difference in how priority of timer interrupts are asserted between the original AMD part
and the Innovasic part.
Analysis: In the original AMD part, timer interrupts cannot be interrupted by another timer interrupt,
even if the new timer interrupt is of a higher priority. The Innovasic part will interrupt a timer
interrupt with a higher priority timer interrupt. Additionally, if a lower priority timer interrupt is
interrupted with a higher priority timer interrupt and another occurrence of the lower priority interrupt
occurs during the processing of the higher priority interrupt, upon execution of the EOI a new lower
priority interrupt will be initiated, possibly orphaning the original lower priority timer interrupt.
Workaround: When using nested interrupts, at the beginning of the interrupt routine before the global
interrupts are enabled with a CLI, timer interrupts must be specifically masked. At the end of the timer
interrupt routine being serviced, you need to set the Interrupt Enable Bit in the Process Status Word to globally
disable interrupts prior to clearing the timer interrupt being serviced.
11) Problem: UART will not respond to break condition if RXD is low when receiver is enabled.
Analysis: Detection of a break only occurs with a falling edge of RXD while receiver is enabled.
Workaround: None.
12) Problem: UART transmitter will not start if TX interrupt conditions exist prior to enabling transmitter.
Analysis: Priority of logic design inadvertently causes this lock up condition .
Workaround: Need to have transmitter enabled prior to any expected data transfers, or clear any spurious
interrupts before enabling .
13) Problem: Lock up just after reset is released.
Analysis: Usually, the first instruction is a long jump to the start of the user's code. In this case, the
compiler apparently inserted a short jump instruction with zero displacement before the expected long
jump instruction. The OEM device stuttered, but recovered to execute the long jump, while the IA
device instruction pointer was corrupted, causing the lock up. In summary, a short jump with zero
displacement is a corner case that does not work in the IA device.
Workaround: Do not use a short jump instruction with zero displacement.
14) Problem: Intermittent startup.
Analysis: Processor either came out of reset normally, or would go into a series of watchdog
timeouts. The addition of 10K ohm pullups to the WR_n and RD_n outputs seemed to solve the issue.
Further analysis of the OEM device shows the presence of undocumented pullups on these pins,
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
which will pull them high when the reset condition tristates these pins. The Innovasic device does not
include internal pullups on these pins allowing these outputs to float during reset.
Workaround: Add 10K ohm pullups to WR_n and RD_n pins to guarantee proper logic levels at the end of
reset.
Version -03
1) Problem: There is a difference in how priority of timer interrupts are asserted between the original AMD part
and the Innovasic part.
Analysis: In the original AMD part, timer interrupts cannot be interrupted by another timer interrupt, even if the
new timer interrupt is of a higher priority. The Innovasic part will interrupt a timer interrupt with a higher
priority timer interrupt. Additionally, if a lower priority timer interrupt is interrupted with a higher priority timer
interrupt and another occurrence of the lower priority interrupt occurs during the processing of the higher
priority interrupt, upon execution of the EOI a new lower priority interrupt will be initiated, possibly orphaning
the original lower priority timer interrupt.
Workaround: When using nested interrupts, at the beginning of the interrupt routine before the global interrupts
are enabled with a CLI, timer interrupts must be specifically masked. At the end of the timer interrupt routine
being serviced, you need to set the Interrupt Enable Bit in the Process Status Word to globally disable interrupts
prior to clearing the timer interrupt being serviced and unmask the appropriate timer interrupts.
2) Problem: Lock up just after reset is released.
Analysis: Usually, the first instruction is a long jump to the start of the user's code. In this case, the
compiler apparently inserted a short jump instruction with zero displacement before the expected long
jump instruction. The OEM device stuttered, but recovered to execute the long jump, while the IA
device instruction pointer was corrupted, causing the lock up. In summary, a short jump with zero
displacement is a corner case that does not work in the IA device.
Workaround: Do not use a short jump instruction with zero displacement.
3) Problem: Intermittent startup.
Analysis: Processor either came out of reset normally, or would go into a series of watchdog
timeouts. The addition of 10K ohm pullups to the WR_n and RD_n outputs seemed to solve the issue.
Further analysis of the OEM device shows the presence of undocumented pullups on these pins,
which will pull them high when the reset condition tristates these pins. The Innovasic device does not
include internal pullups on these pins allowing these outputs to float during reset.
Workaround: Add 10K ohm pullups to WR_n and RD_n pins to guarantee proper logic levels at the end of
reset.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
IA186EM/IA188EM
8/16-BIT Microcontrollers
Data Sheet
As of Production Version -03
4) Problem: Timer Operation in continuous mode.
Analysis The timers (Timer0 and Timer1) do not function per the specification when set in continuous
mode with no external timer input stimulus to initiate/continue count.
Workaround: None.
3737 Princeton NE, Ste 130 • Albuquerque, NM 87107 • Tel 505.883.5263 • Fax 505.883.5477 • www.Innovasic.com
Similar pages