ChipFind - документация

Электронный компонент: Q67120-C850

Скачать:  PDF   ZIP
Data Sheet 05.94
Microcomputer Components
SAB 88C166/88C166W
16-Bit CMOS Single-Chip Microcontrollers
with/without oscillator prescaler
with 32 KByte Flash EPROM
q
High Performance 16-bit CPU with 4-Stage Pipeline
q
100 ns Instruction Cycle Time at 20 MHz CPU Clock
q
500 ns Multiplication (16
16 bit), 1
s Division (32 / 16 bit)
q
Enhanced Boolean Bit Manipulation Facilities
q
Register-Based Design with Multiple Variable Register Banks
q
Single-Cycle Context Switching Support
q
Up to 256 KBytes Linear Address Space for Code and Data
q
1 KByte On-Chip RAM
q
32 KBytes On-Chip Flash EPROM with Bank Erase Feature
q
Read-Protectable Flash Memory
q
Dedicated Flash Control Register with Operation Lock Mechanism
q
12 V External Flash Programming Voltage
q
Flash Program Verify and Erase Verify Modes
q
100 Flash Program/Erase Cycles guaranteed
q
Programmable External Bus Characteristics for Different Address Ranges
q
8-Bit or 16-Bit External Data Bus
q
Multiplexed or Demultiplexed External Address/Data Buses
q
Hold and Hold-Acknowledge Bus Arbitration Support
q
512 Bytes On-Chip Special Function Register Area
q
Idle and Power Down Modes
q
8-Channel Interrupt-Driven Single-Cycle Data Transfer Facilities via Peripheral Event
Controller (PEC)
q
16-Priority-Level Interrupt System
q
10-Channel 10-bit A/D Converter with 9.7
s Conversion Time
q
16-Channel Capture/Compare Unit
q
Two Multi-Functional General Purpose Timer Units with 5 Timers
q
Two Serial Channels (USARTs)
q
Programmable Watchdog Timer
q
Up to 76 General Purpose I/O Lines
q
Direct clock input without prescaler in the SAB 88C166W (SAB 88C166 with prescaler)
q
Supported by a Wealth of Development Tools like C-Compilers, Macro-Assembler Packages,
Emulators, Evaluation Boards, HLL-Debuggers, Simulators, Logic Analyzer Disassemblers,
Programming Boards
q
On-Chip Bootstrap Loader
q
100-Pin Plastic MQFP Package (EIAJ)
C16x-Family of
High-Performance CMOS 16-Bit Microcontrollers
Preliminary
SAB 88C166(W) 16-Bit Microcontrollers with 32 KByte Flash EPROM
SAB 88C166(W)
Semiconductor Group
1
05.94
SAB 88C166(W)
Semiconductor Group
2
Introduction
The SAB 88C166 and the SAB 88C166W are members of the Siemens SAB 80C166 family of full
featured single-chip CMOS microcontrollers. They combine high CPU performance (up to 10 million
instructions per second) with high peripheral functionality, enhanced IO-capabilities and an on-chip
reprogrammable 32 KByte Flash EPROM.
The SAB 88C166W derives its CPU clock signal (operating clock) directly from the on-chip oscillator
without using a prescaler, as known from the SAB 80C166W/83C166W. This reduces the device's
EME.
The SAB 88C166 operates at half the oscillator clock frequency (using a 2:1 oscillator prescaler), as
known from the SAB 80C166/83C166.
Figure 1
Logic Symbol
Ordering Information
Type
Ordering Code
Package
Function
SAB 88C166-5M
Q67120-C850
P-MQFP-100
16-bit microcontroller, 0 C to + 70 C,
1 KByte RAM, 32 KByte Flash EPROM
SAB 88C166W-5M
Q67120-C934
P-MQFP-100
16-bit microcontroller, 0 C to + 70 C,
1 KByte RAM, 32 KByte Flash EPROM
SAB
88C166
SAB
88C166W
V
PP
/
SAB 88C166(W)
Semiconductor Group
3
Pin Configuration Rectangular P-MQFP-100 (top view)
Figure 2
SAB 88C166(W)
V
PP
/
SAB 88C166(W)
Semiconductor Group
4
Pin Definitions and Functions
Symbol
Pin
Number
Input (I)
Output (O)
Function
P4.0
P4.1
16 - 17
16
17
I/O
O
O
Port 4 is a 2-bit bidirectional I/O port. It is bit-wise
programmable for input or output via direction bits. For a pin
configured as input, the output driver is put into high-
impedance state.
In case of an external bus configuration, Port 4 can be used to
output the segment address lines:
P4.0
A16
Least Significant Segment Addr. Line
P4.1
A17
Most Significant Segment Addr. Line
XTAL1
XTAL2
20
19
I
O
XTAL1:
Input to the oscillator amplifier and input to the
internal clock generator
XTAL2:
Output of the oscillator amplifier circuit.
To clock the device from an external source, drive XTAL1,
while leaving XTAL2 unconnected. Minimum and maximum
high/low and rise/fall times specified in the AC Characteristics
must be observed.
BUSACT,
EBC1,
EBC0
V
PP
22
23
24
23
I
I
I
External Bus Configuration selection inputs. These pins are
sampled during reset and select either the single chip mode
or one of the four external bus configurations:
BUSACT EBC1
EBC0
Mode/Bus Configuration
0
0
0
8-bit demultiplexed bus
0
0
1
8-bit multiplexed bus
0
1
0
16-bit muliplexed bus
0
1
1
16-bit demultiplexed bus
1
0
0
Single chip mode
1
0
1
Reserved.
1
1
0
Reserved.
1
1
1
Reserved.
After reset pin EBC1 accepts the programming voltage for the
Flash EPROM as an "alternate function":
Flash EPROM Programming Voltage V
PP
= 12 V.
RSTIN
27
I
Reset Input with Schmitt-Trigger characteristics. A low level at
this pin for a specified duration while the oscillator is running
resets the SAB 88C166(W). An internal pullup resistor permits
power-on reset using only a capacitor connected to
V
SS
.
RSTOUT 28
O
Internal Reset Indication Output. This pin is set to a low level
when the part is executing either a hardware-, a software- or a
watchdog timer reset. RSTOUT remains low until the EINIT
(end of initialization) instruction is executed.
SAB 88C166(W)
Semiconductor Group
5
NMI
29
I
Non-Maskable Interrupt Input. A high to low transition at this
pin causes the CPU to vector to the NMI trap routine. When
the PWRDN (power down) instruction is executed, the NMI
pin must be low in order to force the SAB 88C166(W) to go
into power down mode. If NMI is high, when PWRDN is
executed, the part will continue to run in normal mode.
If not used, pull NMI high externally.
ALE
25
O
Address Latch Enable Output. Can be used for latching the
address into external memory or an address latch in the
multiplexed bus modes.
RD
26
O
External Memory Read Strobe. RD is activated for every
external instruction or data read access.
P1.0
P1.15
30 - 37
40 - 47
I/O
Port 1 is a 16-bit bidirectional I/O port. It is bit-wise
programmable for input or output via direction bits. For a pin
configured as input, the output driver is put into high-
impedance state. Port 1 is used as the 16-bit address bus (A)
in demultiplexed bus modes and also after switching from a
demultiplexed bus mode to a multiplexed bus mode..
P5.0
P5.9
48 53
56 59
I
I
Port 5 is a 10-bit input-only port with Schmitt-Trigger
characteristics. The pins of Port 5 also serve as the (up to 10)
analog input channels for the A/D converter, where P5.x
equals ANx (Analog input channel x).
P2.0
P2.15
62 77
62
...
75
76
77
I/O
I/O
I/O
O
I/O
O
I/O
I
Port 2 is a 16-bit bidirectional I/O port. It is bit-wise
programmable for input or output via direction bits. For a pin
configured as input, the output driver is put into high-
impedance state.
The following Port 2 pins also serve for alternate functions:
P2.0
CC0IO
CAPCOM: CC0 Cap.-In/Comp.Out
...
...
...
P2.13
CC13IO
CAPCOM: CC13 Cap.-In/Comp.Out,
BREQ
External Bus Request Output
P2.14
CC14IO
CAPCOM: CC14 Cap.-In/Comp.Out,
HLDA
External Bus Hold Acknowl. Output
P2.15
CC15IO
CAPCOM: CC15 Cap.-In/Comp.Out,
HOLD
External Bus Hold Request Input
Pin Definitions and Functions (cont'd)
Symbol
Pin
Number
Input (I)
Output (O)
Function
SAB 88C166(W)
Semiconductor Group
6
P3.0
P3.15
80 92,
95 97
80
81
82
83
84
85
86
87
88
89
90
91
92
95
96
97
I/O
I/O
I
O
I
O
I
I
I
I
O
I/O
O
I/O
O
O
I
O
Port 3 is a 16-bit bidirectional I/O port. It is bit-wise
programmable for input or output via direction bits. For a pin
configured as input, the output driver is put into high-
impedance state.
The following Port 3 pins also serve for alternate functions:
P3.0
T0IN
CAPCOM Timer T0 Count Input
P3.1
T6OUT
GPT2 Timer T6 Toggle Latch Output
P3.2
CAPIN
GPT2 Register CAPREL Capture Input
P3.3
T3OUT
GPT1 Timer T3 Toggle Latch Output
P3.4
T3EUD
GPT1 Timer T3 Ext.Up/Down Ctrl.Input
P3.5
T4IN
GPT1 Timer T4 Input for
Count/Gate/Reload/Capture
P3.6
T3IN
GPT1 Timer T3 Count/Gate Input
P3.7
T2IN
GPT1 Timer T2 Input for
Count/Gate/Reload/Capture
P3.8
TxD1
ASC1 Clock/Data Output (Asyn./Syn.)
P3.9
RxD1
ASC1 Data Input (Asyn.) or I/O (Syn.)
P3.10
T
D0
ASC0 Clock/Data Output (Asyn./Syn.)
P3.11
R
D0
ASC0 Data Input (Asyn.) or I/O (Syn.)
P3.12
BHE
Ext. Memory High Byte Enable Signal,
P3.13
WR
External Memory Write Strobe
P3.14
READY
Ready Signal Input
P3.15
CLKOUT
System Clock Output (=CPU Clock)
P0.0
P0.15
98 5
8 15
I/O
Port 0 is a 16-bit bidirectional IO port. It is bit-wise
programmable for input or output via direction bits. For a pin
configured as input, the output driver is put into high-
impedance state.
In case of an external bus configuration, Port 0 serves as the
address (A) and address/data (AD) bus in multiplexed bus
modes and as the data (D) bus in demultiplexed bus modes.
Demultiplexed bus modes:
Data Path Width:
8-bit
16-bit
P0.0 P0.7:
D0 D7
D0 - D7
P0.8 P0.15:
output!
D8 - D15
Multiplexed bus modes:
Data Path Width:
8-bit
16-bit
P0.0 P0.7:
AD0 AD7
AD0 - AD7
P0.8 P0.15:
A8 - A15
AD8 - AD15
V
AREF
54
-
Reference voltage for the A/D converter.
V
AGND
55
-
Reference ground for the A/D converter.
Pin Definitions and Functions (cont'd)
Symbol
Pin
Number
Input (I)
Output (O)
Function
SAB 88C166(W)
Semiconductor Group
7
Functional Description
This document only describes specific properties of the SAB 88C166(W), e.g. Flash memory
functionality or specific DC and AC Characteristics, while for all other descriptions common for the
SAB 88C166(W) and the SAB 80C166(W)/83C166(W), e.g. functional description, it refers to the
respective Data Sheet for the Non-Flash device.
A detailled description of the SAB 88C166(W)'s instruction set can be found in the "C16x Family
Instruction Set Manual"
.
V
CC
7, 18,
38, 61,
79, 93
-
Digital Supply Voltage:
+ 5 V during normal operation and idle mode.
2.5 V during power down mode
V
SS
6, 21,
39, 60,
78, 94
-
Digital Ground.
Pin Definitions and Functions (cont'd)
Symbol
Pin
Number
Input (I)
Output (O)
Function
SAB 88C166(W)
Semiconductor Group
8
Memory Organization
The memory space of the SAB 88C166(W) is configured in a Von Neumann architecture which
means that code memory, data memory, registers and I/O ports are organized within the same
linear address space which includes 256 KBytes. Address space expansion to 16 MBytes is
provided for future versions. The entire memory space can be accessed bytewise or wordwise.
Particular portions of the on-chip memory have additionally been made directly bit addressable.
1 KByte of on-chip RAM is provided as a storage for user defined variables, for the system stack,
general purpose register banks and even for code. A register bank can consist of up to 16 wordwide
(R0 to R15) and/or bytewide (RL0, RH0, ..., RL7, RH7) so-called General Purpose Registers
(GPRs).
512 bytes of the address space are reserved for the Special Function Register area. SFRs are
wordwide registers which are used for controlling and monitoring functions of the different on-chip
units. 98 SFRs are currently implemented. Unused SFR addresses are reserved for future
members of the SAB 80C166 family.
In order to meet the needs of designs where more memory is required than is provided on chip, up
to 256 KBytes of external RAM and/or ROM can be connected to the microcontroller.
Flash Memory Overview
The SAB 88C166(W) provides 32 KBytes of electrically erasable and reprogrammable non-volatile
Flash EPROM on-chip for code or constant data, which can be mapped to either segment 0
(0'0000
H
to 0'7FFF
H
) or segment 1 (1'0000
H
to 1'7FFF
H
) during the initialization phase.
A separate Flash Control Register (FCR) has been implemented to control Flash operations like
programming or erasure. For programming or erasing an external 12 V programming voltage must
be applied to the VPP/EBC1 pin.
The Flash memory is organized in 8 K x 32 bits, which allows even double-word instructions to be
fetched in just one machine cycle. The entire Flash memory is divided into four blocks with different
sizes (12/12/6/2 KByte). This allows to erase each block separately, when only parts of the Flash
memory need to be reprogrammed. Word or double word programming typically takes 100
s, block
erasing typically takes 1 s (@ 20 MHz CPU clock). The Flash memory features a typical endurance
of 100 erasing/programming cycles. Erased Flash memory cells contain all `1's, as known from
standard EPROMs.
The Flash memory can be programmed both in an appropriate programming board and in the target
system, which provides a lot of flexibility. The SAB 88C166(W)'s on-chip bootstrap loader may be
used to load and start the programming code.
To save the customer's know-how, a Flash memory protection option is provided in the SAB
88C166(W). If this was activated once, Flash memory contents cannot be read from any location
outside the Flash memory itself.
SAB 88C166(W)
Semiconductor Group
9
Figure 3
Flash Memory Overview
The Flash Control Register (FCR)
In standard operation mode the Flash memory can be accessed like the normal mask-
programmable on-chip ROM of the SAB 83C166. So all appropriate direct and indirect addressing
modes can be used for reading the Flash memory.
All programming or erase operations of the Flash memory are controlled via the 16-bit Flash control
register FCR. To prevent unintentional writing to the Flash memory the FCR is locked and inactive
during standard operation mode. Before a valid access to the FCR is enabled, the Flash memory
writing mode must be entered. This is done via a special key code instruction sequence.
3'FFFF
H
0'0000
H
1'0000
H
2'0000
H
3'0000
H
3
2
1
0
x'0000
H
x'3000
H
x'6000
H
x'7800
H
Bank
3
Bank
2
Bank
1
Bank
0
Memory Segments
Flash Banks
SAB 88C166(W)
Semiconductor Group
10
FCR (FFA0
H
/ D0
H
)
SFR
Reset Value: 00X0
H
*)
*)
The reset value of bit VPPREV depends on the voltage on pin V
PP
.
Note: The FCR is no real register but is rather virtually mapped into the active address space of the
Flash memory while the Flash writing mode is active. In writing mode all direct (mem)
accesses refer to the FCR, while all indirect ([Rw
n
]) accesses refer to the Flash memory
array itself.
Bit
Function
FWE
Flash Write Enable Bit (see description below)
0 :
Flash write operations (program / erase) disabled
1 :
Flash write operations (program / erase) enabled
FEE
Flash Erase Enable Bit (Significant only, when FWE = '1', see description below)
0 :
Flash programming mode selected
1 :
Flash erase mode selected
FBUSY
RPROT
Flash Busy Bit (On read accesses)
0 :
No Flash write operation in progress
1 :
Flash write operation in progress
Flash Read Protection Activation Bit (On write accesses)
0 :
Deactivates Flash read protection
1 :
Activates Flash read protection, if this is enabled
FCVPP
Flash Control V
PP
Bit
0 :
No V
PP
failure occurred during a Flash write operation
1 :
V
PP
failure occurred during a Flash write operation
VPPREV
Flash V
PP
Revelation Bit
0 :
No valid V
PP
applied to pin V
PP
1 :
V
PP
applied to pin V
PP
is valid
CKCTL
Internal Flash Timer Clock Control
Determines the width of an internal Flash write or erase pulse
WDWW
Word / Double Word Writing Bit (significant only in programming mode)
0 :
16-bit programming operation
1 :
32-bit programming operation
BE
Bank Erase Select (significant only in erasing mode)
Selects the Flash Bank to be erased
FWMSET
Flash Writing Mode Set Bit (see description below)
0 :
Exit Flash writing mode, return to standard mode
1 :
Stay in Flash writing mode
rw
FEE
FWM
SET
rw
-
rw
-
rw
-
rw
-
rw
-
FWE
5
4
3
2
1
0
11
10
9
8
7
6
15
14
13
12
rw
rw
r
rw
rw
r/w
rw
VPP
REV
FC
VPP
FBUSY
RPROT
rw
CKCTL
WDW
W
BE
SAB 88C166(W)
Semiconductor Group
11
The selection of Flash Operation and Read Mode is done via the three bits FWE, FEE and
FWMSET. The table below shows the combinations for these bits to select a specific function:
FWE enables/disables write operations, FEE selects erasing or programming, FWMSET controls
the writing mode. Bits FWE and FEE select an operation, but do not execute it directly.
Note: Watch the FWMSET bit, when writing to register FCR (word access only), in order not to exit
Flash writing mode unintentionally by clearing bit FWMSET.
FBUSY: This read-only flag is set to `1' while a Flash programming or erasing operation is in
progress. FBUSY is set via hardware, when the respective command is issued.
RPROT: This write-only Flash Read Protection bit determines whether Flash protection is active
or inactive. RPROT is the only FCR bit which can be modified even in the Flash standard mode but
only by an instruction executed from the on-chip Flash memory itself. Per reset, RPROT is set to `1'.
Note: RPROT is only significant, if the general Flash memory protection is enabled.
FCVPP and VPPREV: These read-only bits allow to monitor the
V
PP
voltage. The Flash Vpp
Revelation bit VPPREV reflects the state of the
V
PP
voltage in the Flash writing mode (VPPREV =
`0' indicates that
V
PP
is below the threshold value necessary for reliable programming or erasure,
otherwise VPPREV = `1'). The Flash Control
V
PP
bit FCVPP indicates, if
V
PP
fell below the valid
threshold value during a Flash programming or erase operation (FCVPP = `1'). FCVPP = `0' after
such an operation indicates that no critical discontinuity on
V
PP
has occurred.
CKCTL: This Flash Timer Clock Control bitfield controls the width of the programming or erase
pulses (TPRG) applied to Flash memory cells during the corresponding operation. The width of a
single programming or erase pulse and the cumulated programming or erase time must not exceed
certain values to avoid putting the Flash memory under critical stress (see table below).
FWMSET
FEE
FWE
Flash Operation Mode
Flash Read Mode
1
1
1
Erasing mode
Erase-Verify-Read via [Rn]
1
0
1
Programming mode
Program-Verify-Read via [Rn]
1
X
0
Non-Verify mode
Normal Read via [Rn]
0
X
X
Standard mode
Normal Read via [Rn] or mem
Time Specification
Limit Value
Maximum Programming Pulse Width
Maximum Cumulated Programming Time
128
s
2.5
ms
Maximum Erase Pulse Width
Maximum Cumulated Erase Time
10
ms
30
s
SAB 88C166(W)
Semiconductor Group
12
In order not to exceed the limit values listed above, a specific CKCTL setting requires a minimum
CPU clock frequency, as listed below.
The maximum number of allowed programming or erase attempts depends on the CPU clock
frequency and on the CKCTL setting chosen in turn. This number results from the actual pulse width
compared to the maximum pulse width (see above tables).
The table below lists some sample frequencies, the respective recommended CKCTL setting and
the resulting maximum number of program / erase pulses:
BE: The Flash Bank Erasing bit field determines the Flash memory bank to be erased (see table
below). The physical addresses of the selected bank depend on the Flash memory mapping
chosen.
Setting of
CKCTL
Length of
TPRG
TPRG
@ f
CPU
= 20 MHz
f
CPUmin
for programming
f
CPUmin
for erasing
0 0
2
7
* 1/f
CPU
6.4
s
1 MHz
---
0 1
2
11
* 1/f
CPU
102.4
s
16 MHz
1 MHz
1 0
2
15
* 1/f
CPU
1.64 ms
---
3.28 MHz
1 1
2
18
* 1/f
CPU
13.11 ms
---
13.11 MHz
f
CPU
Programming
Erasing
CKCTL
TPROG
N
PROGmax
CKCTL
TPROG
N
ERASEmax
1 MHz
0 0
128
s
19
0 1
2.05 ms
14648
10 MHz
0 0
12.8
s
195
1 0
3.28 ms
9155
16 MHz
0 0
8
s
312
1 0
2.05 ms
14648
20 MHz
0 0
6.4
s
390
1 0
1.64 ms
18310
BE setting
Bank
Addresses Selected for Erasure (x = 0 or 1)
0 0
0 1
1 0
1 1
0
1
2
3
x'0000
H
to x'2FFF
H
x'3000
H
to x'5FFF
H
x'6000
H
to x'77FF
H
x'7800
H
to x'7FFF
H
SAB 88C166(W)
Semiconductor Group
13
Operation Modes of the Flash Memory
There are two basic operation modes for Flash accesses: The standard and the writing mode. Sub-
modes of the writing mode are the programming, the erase and the non-verify mode.
Figure 4
Flash Operating Mode Transitions
In Standard Mode the Flash memory can be accessed from any memory location (external
memory, on-chip RAM or Flash memory) for instruction fetches and data operand reads. Data
operand reads may use both direct 16-bit (mnemonic: mem) and indirect (mnemonic: [Rw])
addressing modes. Standard mode does not allow accesses to the FCR or Flash write operations.
Note: When Flash protection is active, data operands can be accessed only by instructions that are
executed out of the internal Flash memory.
The Flash Writing Modes must be entered for programming or erasing the Flash memory. The
SAB 88C166 enters these modes by a specific key code sequence, called UNLOCK sequence.
In writing mode the used addressing mode decides whether the FCR or a Flash memory location is
accessed. The FCR can be accessed with any direct access to an even address in the active
address space of the Flash memory. Only word operand instructions are allowed for FCR accesses.
Accesses to Flash memory locations must use indirect addressing to even addresses.
direct 16-bit addressing mode:
mem
-->
Access to FCR
indirect addressing mode:
[Rw
n
] -->
Access to Flash location
SAB 88C166(W)
Semiconductor Group
14
After entering writing mode the first erase or programming operation must not be started for at least
10
s. This absolute (!) delay time is required to set up the internal high voltage. In general, Flash
write operations need a 12 V external
V
PP
voltage to be applied to the
V
PP
/EBC1 pin.
It is not possible to erase or to program the Flash memory via code executed from the Flash memory
itself. The respective code must reside within the on-chip RAM or within external memory.
When programming or erasing `on-line' in the target system, some considerations have to be taken:
While these operations are in progress, the Flash memory cannot be accessed as usual. Therefore
care must be taken that no branch is taken into the Flash memory and that no data reads are
attempted from the Flash memory during programming or erasure. If the Flash memory is mapped
to segment 0, it must especially be ensured that no interrupt or hardware trap can occur, because
this would implicitly mean such a `forbidden' branch to the Flash memory in this case.
The UNLOCK sequence is a specific key code sequence, which is required to enable the writing
modes of the SAB 88C166(W). The UNLOCK sequence must use identical values (see example
below) and must not be interrupted:
MOV
FCR, Rw
n
; Dummy write to the FCR
MOV
[Rw
n
], Rw
n
; Both operands use the same GPR
CALL
cc_UC, WAIT_10
; Delay for 10
s (may be realized also by
; instructions other than a delay loop
where Rw
n
can be any word GPR (R0...R15). [Rw
n
] and FCR must point to even addresses within
the active address space of the Flash memory.
Note: Data paging and Flash segment mapping, if active, must be considered in this context.
In Flash Erase Mode (FEE='1', FWE='1') the SAB 88C166(W) is prepared to erase the bank
selected by the Bank Erase (BE) bit field in the FCR. The width of the erase pulses generated
internally is defined by the Internal Flash Timer Clock Control (CKCTL) bit field of the FCR. The
maximum number of erase pulses (EN
max
) applied to the Flash memory is determined by software
in the Flash erase algorithm. The chosen values for CKCTL and EN
max
must guarantee a maximum
cumulated erase time of 30 s per bank and a maximum erase pulse width of 20 ms.
The Flash bank erase operation will not start before the erase command is given. This provides
additional security for the erase operation. The erase command can be any write operation to a
Flash location, where the data and the even address written to must be identical:
MOV
[Rw
n
], Rw
n
; Both operands use the same GPR
Upon the execution of this instruction, the Flash Busy (FBUSY) flag is automatically set to `1'
indicating the start of the operation. End of erasure can be detected by polling the FBUSY flag.
V
PP
must stay within the valid margins during the entire erase process.
At the end of erasure the Erase-Verify-Mode (EVM) is entered automatically. This mode allows to
check the effect of the erase operation (see description below).
Note: Before the erase algorithm can be properly executed, the respective bank of the Flash
memory must be programmed to all zeros (`0000
H
').
SAB 88C166(W)
Semiconductor Group
15
In Flash Programming Mode (FEE='0', FWE='1') the SAB 88C166(W) is prepared to program
Flash locations in the way specified by the Word or Double Word Write (WDWW) bit in the FCR. The
width of the programming pulses generated internally is defined by the Internal Flash Timer Clock
Control (CKCTL) bit field of the FCR. The maximum number of programming pulses (PN
max
)
applied to the Flash memory is determined by software in the Flash programming algorithm. The
chosen values for CKCTL and PN
max
must guarantee a maximum cumulated programming time of
2.5 ms per cell and a maximum programming pulse width of 200
s.
If 16-bit programming was selected, the operation will start automatically when an instruction is
executed, where the first operand specifies the address and the second operand the value to be
programmed:
MOV
[Rw
n
], Rw
m
; Program one word
If 32-bit programming was selected, the operation will start automatically when the second of two
subsequent instructions is executed, which define the doubleword to be programmed. Note that the
destination pointers of both instructions refer to the same even double word address. The two
instructions must be executed without any interruption.
MOV
[Rw
n
], Rw
x
; Prepare programming of first word
MOV
[Rw
n
], Rw
y
; Start programming of both words
Upon the execution of the second instruction (the one and only in 16-bit programming mode), the
Flash Busy (FBUSY) bit is automatically set to `1'. End of programming can be detected by polling
the FBUSY bit.
V
PP
must stay within the valid margins during the entire programming process.
At the end of programming the Program-Verify-Mode (PVM) is entered automatically. This mode
allows to check the effect of the erase operation (see description below).
The Flash Verify-Modes Erase-Verify-Mode (EVM) and Program-Verify-Mode (PVM) allow to
verify the effect of an erase or programming operation. In these modes an internally generated
margin voltage is applied to a Flash cell, which makes reading more critical than for standard read
accesses. This ensures safe standard accesses after correct verification.
To get the contents of a Flash word in this mode, it has to be read in a particular way:
MOV
Rw
m
, [Rw
n
]
; First (invalid) read of dedicated cell
...
; 4
s delay to stabilize internal margin voltage
MOV
Rw
m
, [Rw
n
]
; Second (valid) read of dedicated cell
Such a Flash verify read operation is different from the reading in the standard or in the non-verify
mode. Correct verify reading needs a read operation performed twice on the same cell with an
absolute time delay of 4
s which is needed to stabilize the internal margin voltage applied to the
cell. To verify that a Flash cell was erased or programmed properly, the value of the second verify
read operation has to be compared against FFFF
H
or the target value, respectively. Clearing bit
FWE to `0' exits the Flash programming mode and returns to the Flash non-verify mode.
In Flash non-verify mode all Flash locations can be read as usual (via indirect addressing modes),
which is not possible in Flash programming or Flash erase mode (see EVM and PVM).
SAB 88C166(W)
Semiconductor Group
16
Flash Protection
If active, Flash protection prevents data operand accesses and program branches into the on-chip
Flash area from any location outside the Flash memory itself. Data operand accesses and branches
to Flash locations are exclusively allowed for instructions executed from the Flash memory itself.
Erasing and programming of the Flash memory is not possible while Flash protection is active.
Note: A program running within the Flash memory may of course access any location outside the
Flash memory and even branch to a location outside.
However, there is no way back, if Flash protection is active.
Flash protection is controlled by two different bits:
The user-accessible write-only Protection Activation bit (RPROT) in register FCR and
The one-time-programmable Protection Enable bit (UPROG).
Bit UPROG is a `hidden' one-time-programmable bit only accessible in a special mode, which can
be entered eg. via a Flash EPROM programming board. Once programmed to `1', this bit is
unerasable, ie. it is not affected by the Flash Erase mechanism.
To activate Flash Protection bit UPROG must have been programmed to `1', and bit RPROT in
register FCR must be set to `1'. Both bits must be `1' to activate Flash protection.
To deactivate Flash Protection bit RPROT in register FCR must be cleared to `0'. If any of the two
bits (UPROG or RPROT) is `0', Flash protection is deactivated.
Generally Flash protection will remain active all the time. If it has to be deactivated intermittently, eg.
to call an external routine or to reprogram the Flash memory, bit RPROT must be cleared to `0'.
To access bit RPROT in register FCR, an instruction with a `mem, reg' addressing mode must be
used, where the first operand has to represent the FCR address (any even address within the active
address space of the Flash memory) and the second operand must refer to a value which sets the
RPROT bit to `0', eg.:
MOV
FCR, ZEROS
; Deactivate Flash Protection
RPROT is the only bit in the FCR which can be accessed in Flash standard mode without having to
enter the Flash writing mode. Other bits in the FCR are not affected by such a write operation.
However, this access requires an instruction executed out of the internal Flash memory itself.
After reset bit RPROT is set to '1'. For devices with protection disabled (UPROG='0') this has no
effect. For devices with protection enabled this ensures that program execution starts with Flash
protection active from the beginning.
Note: In order to maintain uninterrupted Flash protection, be sure not to clear bit RPROT
unintentionally by FCR write operations. Otherwise the Flash protection is deactivated.
SAB 88C166(W)
Semiconductor Group
17
Flash Programming Algorithm
The figure below shows the recommended Flash programming algorithm. The following example
describes this algorithm in detail.
Figure 5
Flash Programming Algorithm
SAB 88C166(W)
Semiconductor Group
18
Flash Programming Example
This example describes the Flash programming algorithm. A source block of code and/or data
within the first 32 Kbytes of segment 0 is copied (programmed) to a target block within the Flash
memory, which is mapped to segment 1 in this case. The start and the end address of the source
block to be copied are specified by the parameters SRC_START or SRC_END respectively. The
target Flash memory block begins at location FLASH_START. This example uses 32-bit Flash
programming.
Figure 6
Memory Allocation for Flash Programming Example
Note: This example represents one possibility how to program the Flash memory. Other solutions
may differ in the way they provide the source data (eg. without external memory), but use the
same Flash programming algorithm.
The FCR has been defined with an EQU assembler directive. Accesses to bits of the FCR are made
via an auxiliary GPR, as the FCR itself is not bit-addressable.
The shown example uses the following assumptions:
q
Pin
V
PP
/EBC1 receives a proper
V
PP
supply voltage.
q
The SAB 88C166(W) runs at 20 MHz CPU clock (absolute time delays refer to it).
q
The Flash memory is mapped to segment 1. All DPPs are set correctly.
SAB 88C166(W)
Semiconductor Group
19
q
Enter writing mode via unlock sequence (prerequisite for any programming or erase
operation).
MOV
FCR, Rw
n
; Dummy write to the FCR
MOV
[Rw
n
], Rw
n
; Both operands use the same GPR
CALL
cc_UC, WAIT_10
; Delay for 10
s
q
Program the FCR register with a value that selects the desired operating mode. Note that this
does not yet start the programming operation itself.
MOV
R15, #1000 0000 1010 0001B
; #xxxx xxxx xxxx xxx1: FWE='1':
Enable Flash write operations
; #xxxx xxxx xxxx xx0x: FEE='0':
Select programming mode
; #xxxx xxxx x01x xxxx: CKCTL='01':
100
s programming pulse (fCPU = 20 MHz)
; #xxxx xxxx 1xxx xxxx: WDWW='1':
Select 32-bit programming mode
; #1xxx xxxx xxxx xxxx: FWMSET='1':
Stay in writing mode
MOV
DPP1:pof FCR, R15
; Write Value to the FCR using 16-bit access
q
Initialize pointers and counter for the first transfer of the programming algorithm.
The source data block is accessed via the pointer SRC_PTR, initialized with SRC_START. All
read operations via SRC_PTR use DPP2, which selects data page 1 in this example.
The Flash memory must be accessed indirectly and uses the pointer FLASH_PTR, initialized
with FLASH_START.
The counter DWCOUNT defines the number of doublewords to be programmed.
q
Test for correct
V
PP
margin at pin
V
PP
/EBC1 before a programming operation is started. If bit
VPPREV reads `1', the programming voltage is correct and the algorithm can be continued.
Otherwise, the programming routine could wait in Flash writing mode until
V
PP
reaches its correct
value and resume programming then, or it could exit writing mode.
MOV
R15, DPP1:pof FCR
; Read FCR contents using 16-bit access
JB
R15.4, Vpp_OK1
; Test
V
PP
via bit VPPREV (= FCR.4)
...
; VPPREV='0': Exit programming procedure
Vpp_OK1:
; VPPREV='1': Test Okay! Continue
SAB 88C166(W)
Semiconductor Group
20
q
Load source values and initialize loop counter (PCOUNT) with the maximum number of
programming trials (PNmax) to be performed before exiting the routine with a failure. Each trial
means applying a pulse of 100
s to the selected words in the Flash memory. According to the
maximum cumulated programming time of 2.5 ms allowed per cell, PNmax must be `25' here.
The doubleword at memory location [SRC_PTR] is loaded into two auxiliary registers DATAWR1
and DATAWR2.
q
Program one doubleword stored in the auxiliary data registers to the Flash memory location
[FLASH_PTR]. FLASH_PTR is not incremented here, since in 32-bit programming mode the
hardware automatically arranges the two data words correctly. The execution of the second write
instruction automatically starts the programming of the entire double word.
This instruction sequence must not be interrupted.
MOV
[FLASH_PTR], DATAWR1
; Write low word to Flash
MOV
[FLASH_PTR], DATAWR2
; Write high word to Flash, starts programming
q
Wait until programming time elapsed (100
s in this example), which depends on bit field
CKCTL in the FCR register and on the CPU clock frequency. End of programming is detected by
polling the FBUSY flag in the FCR register. The Flash memory switches to PVM mode
automatically.
WAIT_PROG:
; Polling Loop to check bit FBUSY
MOV
R15, DPP1: pof FCR
; Read FCR contents using 16-bit access
JB
R15.2, WAIT_PROG
; Loop while bit FBUSY (FCR.2) is `1'
...
; Continue in PVM mode, when FBUSY is `0'
q
Verify
V
PP
validity during programming to make sure
V
PP
did not exceed its valid margins
during the programming operation. Otherwise programming may have not been performed
properly. The FCVPP flag is set to `1' in case of this error condition. If FCVPP reads `1', the
programming routine can abort, when
V
PP
still fails, or repeat the programming operation, when
V
PP
proves to be stable now.
SAB 88C166(W)
Semiconductor Group
21
q
Perform Program-Verify operation and compare with source data in order to check whether
a programming operation was performed correctly. PVM reading consists of two identical Flash
read instructions with 4
s delay in between. This example uses CMP instructions to access the
Flash memory. In case of a mismatch the programming routine repeats the programming cycle
provided that the maximum number of attempts was not yet reached. PVM reading and data
comparison must be performed on both words of the double word to be tested.
CMP
DATAWR1, [FLASH_PTR]
; 1st step of PVM read (low word)
CALL
cc_UC, WAIT_4
; Delay for 4
s
CMP
DATAWR1, [FLASH_PTR]
; 2nd step of PVM read (low word)
JMP
cc_NZ, PROG_FAILED
; Reprogram on mismatch, if (PCOUNT) > 0
MOV
R15, FLASH_PTR
ADD
R15, #0002H
; Auxiliary pointer to upper word of doubleword
CMP
DATAWR2, [R15]
; 1st step of PVM read (high word)
CALL
cc_UC, WAIT_4
; Delay for 4
s
CMP
DATAWR2, [R15]
; 2nd step of PVM read (high word)
JMP
cc_NZ, PROG_FAILED
; Reprogram on mismatch, if (PCOUNT) > 0
. . .
; Programming was OK. Go on with next step.
q
Check number of programming attempts to decide, if another programming attempt is
allowed. PCOUNT is decremented by `1' upon each unsuccessful programming attempt. If it
expires, the failing Flash cells are classified as unprogrammable and should be left out. This
failure is very unlikely to occur. However, it should be checked for safe programming.
Note: This step is taken only in case of a program verify mismatch.
q
Check for last doubleword and increment pointers to decide, if another programming cycle is
required. The auxiliary counter DWCOUNT is decremented by `1' after each successful double
word programming. If it expires, the complete data block is programmed and the programming
routine is exited successfully. Otherwise source and target pointers (SRC_PTR and
FLASH_PTR) are incremented to the next doubleword to be programmed.
q
Disable Flash programming operations and exit routine, when the Flash memory block was
programmed successfully or when a failure occurred. In either case bit FWE of the FCR is reset
to `0' and the programming routine is exited. This means that the Flash non-verify mode is
entered again, where the FCR stays accessible but Flash memory locations can be read
normally again using indirect addressing. For returning to the Flash standard mode, bit FWMSET
of the FCR must be reset to `0' by the calling routine. The programming routine may return an exit
code that indicates correct programming or identifies the type of error.
SAB 88C166(W)
Semiconductor Group
22
Flash Erase Algorithm
The figure below shows the recommended Flash erase algorithm. The following example describes
this algorithm in detail.
Figure 7
Flash Erase Algorithm
SAB 88C166(W)
Semiconductor Group
23
Flash Erase Example
This example describes the Flash erase algorithm. The four banks of the Flash memory can be
erased separately. The algorithm erases the Flash memory bank, which is selected by bitfield BE in
the FCR. Start address and size of the selected Flash bank have to be considered.
Note: Before a bank can be erased, all its contents must be programmed to `0000
H
'. This is
required by the physics of the Flash memory cells and is done with the Flash programming
algorithm already described.
Figure 8
Memory Banking for Flash Erasure
The FCR has been defined with an EQU assembler directive. Accesses to bits of the FCR are made
via an auxiliary GPR, as the FCR itself is not bit-addressable.
The shown example uses the following assumptions:
q
Pin
V
PP
/EBC1 receives a proper
V
PP
supply voltage.
q
The SAB 88C166(W) runs at 20 MHz CPU clock (absolute time delays refer to it).
q
The Flash memory is mapped to segment 1. All DPPs are set correctly.
SAB 88C166(W)
Semiconductor Group
24
q
Enter writing mode via unlock sequence (prerequisite for any programming or erase
operation).
MOV
FCR, Rw
n
; Dummy write to the FCR
MOV
[Rw
n
], Rw
n
; Both operands use the same GPR
CALL
cc_UC, WAIT_10
; Delay for 10
s
q
Program the FCR register with a value that selects erase mode. Note that this does not yet start
the erase operation itself.
MOV
R15, #1000 00XX 0110 0011B
; #xxxx xxxx xxxx xxx1: FWE='1':
Enable Flash write operations
; #xxxx xxxx xxxx xx1x: FEE='1':
Select erase mode
; #xxxx xxxx x11x xxxx: CKCTL='11':
10 ms erase pulse (fCPU = 20 MHz)
; #xxxx xxXX xxxx xxxx: BE='xx':
Select the desired bank (3...0)
; #1xxx xxxx xxxx xxxx: FWMSET='1':
Stay in writing mode
MOV
DPP1:pof FCR, R15
; Write Value to the FCR using 16-bit access
q
Initialize target pointer with the start address of the selected Flash memory bank. The Flash
memory must be accessed indirectly and uses the pointer FLASH_PTR. This pointer will apply
to DPP0 or DPP1, which are expected to select data pages 4 or 5, respectively.
q
Test for correct
V
PP
margin at pin
V
PP
/EBC1 before an erase operation is started. If bit
VPPREV reads `1', the erase voltage is correct and the algorithm can be continued. Otherwise,
the erase routine could wait in Flash writing mode until
V
PP
reaches its correct value and resume
erasing then, or it could exit writing mode.
MOV
R15, DPP1:pof FCR
; Read FCR contents using 16-bit access
JB
R15.4, Vpp_OK2
; Test
V
PP
via bit VPPREV (= FCR.4)
...
; VPPREV='0': Exit erase procedure
Vpp_OK2:
; VPPREV='1': Test Okay! Continue
q
Initialize loop counter (PCOUNT) with the maximum number of erase trials (ENmax) to be
performed before exiting the routine with a failure. Each trial means applying a pulse of 10 ms to
the selected Flash memory bank. According to the maximum cumulated erase time of 30 s
allowed per cell, ENmax must be `3000' here.
q
Erase selected Flash memory bank by writing to a Flash memory location using the target
address as write data.
MOV
[FLASH_PTR], FLASH_PTR
; Write address to Flash, starts erasing
q
Wait until erase time elapsed, which depends on bit field CKCTL in the FCR register and on the
CPU clock frequency (10 ms in this example). End of erasing is detected by polling the FBUSY
flag in the FCR register. The Flash memory switches to EVM mode automatically.
SAB 88C166(W)
Semiconductor Group
25
WAIT_ERASE:
; Polling Loop to check bit FBUSY
MOV
R15, DPP1: pof FCR
; Read FCR contents using 16-bit access
JB
R15.2, WAIT_ERASE
; Loop while bit FBUSY (FCR.2) is `1'
...
; Continue in EVM mode, when FBUSY is `0'
q
Verify
V
PP
validity during erasing to make sure
V
PP
did not exceed its valid margins during the
erase operation. Otherwise erasing may have not been performed properly. The FCVPP flag is
set to `1' in case of this error condition. If FCVPP reads `1', the erase routine can abort, when
V
PP
still fails, or repeat the erase operation, when
V
PP
proves to be stable now.
q
Perform Erase-Verify operation and compare with `FFFF
H
' in order to check whether an
erase operation was performed correctly. EVM reading consists of two identical Flash read
instructions with 4
s delay in between. This example uses CMP instructions to access the Flash
memory. In case of a mismatch the erase routine repeats the erase cycle provided that the
maximum number of attempts was not yet reached.
MOV
R15, ONES
; Load auxiliary GPR with anticipated value
CMP
R15, [FLASH_PTR]
; 1st step of EVM read
CALL
cc_UC, WAIT_4
; Delay for 4
s
CMP
R15, [FLASH_PTR]
; 2nd step of EVM read
JMP
cc_NZ, ERASE_FAILED
; Re-erase on mismatch, if (PCOUNT) > 0
. . .
; Erasing was OK. Go on with next step.
q
Check number of erase attempts to decide, if another erase attempt is allowed. PCOUNT is
decremented by `1' upon each unsuccessful erase attempt. If it expires, the failing Flash memory
bank is classified as unerasable. This failure is very unlikely to occur. However, it should be
checked for safe erasing.
Note: This step is taken only in case of a erase verify mismatch.
q
Check for last word and increment pointers to decide, if another cell must be verified. The
target pointer (FLASH_PTR) is incremented to the next word to be verified and checked against
the upper limit of the respective bank. If the target pointer exceeds the bank limit, the erase
routine is exited successfully.
q
Disable erase operations and exit routine, when the Flash memory bank was erased
successfully or when a failure occurred. In either case bit FWE of the FCR is reset to `0' and the
erase routine is exited. This means that the Flash non-verify mode is entered again, where the
FCR stays accessible but Flash memory locations can be read normally again using indirect
addressing. For returning to the Flash standard mode, bit FWMSET of the FCR must be reset to
`0' by the calling routine. The erase routine may return an exit code that indicates correct erasing
or identifies the type of error.
SAB 88C166(W)
Semiconductor Group
26
Fundamentals of Flash Technology
The Flash memory included in the SAB 88C166(W) combines the EPROM programming
mechanism with electrical erasability (like an EEPROM) to create a highly reliable and cost effective
memory. A Flash memory cell consists of a single transistor with a floating gate for charge storage
like an EPROM, uses a thinner gate oxide, however.
The programming mechanism of a Flash cell is based on `hot' electron injection which works as
follows: The high voltage between drain and source forces `hot' electrons supplied from the source
to enter the channel. Attracted by the high voltage on the cell's control gate there, free electrons are
trapped into the floating gate. The amount of negative charge on the floating gate is basically
determined by the length and the number of programming pulses applied to the cell. A special read
operation, Program-Verify, is provided for verifying that the charge put onto the floating gate
represents a proper `0'.
Figure 9
Flash Memory Cell Programming Mechanism
The cell erase mechanism is based on `Fowler-Nordheim' tunnelling which works as follows:
A high voltage is applied to the cell's source whilst the control gate grounded. The cell's drain is
disconnected in this case. Attracted by the high voltage on the cell's source, electrons migrate from
the floating gate to the source. The amount of negative charge removed from the floating gate is
basically determined by the length and the number of erasing pulse applied to the cell. A special
read operation, Erase-Verify, is provided for verifying that the charge remaining on the floating gate
represents a proper `1'.
Unlike a standard EEPROM, where individual bytes can be erased, the Flash memory of the SAB
88C166(W) is erased block-wise which means that the high voltage is applied to all cells belonging
to one block simultaneously.
One requirement for performing proper Flash programming and erase operations is to have all cells
of a block set to a minimum threshold level before the operation is started. A cell erasing faster than
others could have a threshold voltage too low or negative. In this case the corresponding transistor
could become conductive and affect other cells placed in the same column of the transistor array.
Thus, all cells of that column could erroneously be read as `1' instead of `0'.
SAB 88C166(W)
Semiconductor Group
27
To avoid this possible malfunction, the user must equalize the amount of charge on each cell by
programming all cells of one block to `0' before performing a block erasure.
Figure 10
Flash Memory Cell Erase Mechanism
The introduced erase algorithm meets this requirement. In combination with the Flash technology
used, it provides a tight threshold voltage distribution, generating a sufficient margin even to cells
erasing faster than others.
Figure 11
Flash Erasure
Note that the following terminology is used in this document: Flash WRITING means changing the
state of the floating gate. Flash PROGRAMMING means loading electrons onto the floating gate.
Flash ERASING means removing electrons from the floating gate.
SAB 88C166(W)
Semiconductor Group
28
Absolute Maximum Ratings
Ambient temperature under bias (
T
A
):
SAB 88C166(W)-5M ....................................................................................................... 0 to + 70 C
Storage temperature (
T
ST
) ....................................................................................... 65 to + 125 C
Voltage on
V
CC
pins with respect to ground (
V
SS
) ..................................................... 0.5 to + 6.5 V
Voltage on any pin with respect to ground (
V
SS
) ................................................. 0.5 to
V
CC
+ 0.5 V
Input current on any pin during overload condition .................................................. 10 to + 10 mA
Absolute sum of all input currents during overload condition ..............................................|100 mA|
Power dissipation........................................................................................................................ 1 W
Flash programming voltage (
V
PP
)............................................................................ 0.3 to + 13.5 V
Note: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent
damage to the device. This is a stress rating only and functional operation of the device at
these or any other conditions above those indicated in the operational sections of this
specification is not implied. Exposure to absolute maximum rating conditions for extended
periods may affect device reliability. During overload conditions (
V
IN
>
V
CC
or
V
IN
<
V
SS
) the
voltage on pins with respect to ground (
V
SS
) must not exceed the values defined by the
Absolute Maximum Ratings.
Parameter Interpretation
The parameters listed in the following partly represent the characteristics of the SAB 88C166(W)
and partly its demands on the system. To aid in interpreting the parameters right, when evaluating
them for a design, they are marked in column "Symbol":
CC (Controller Characteristics):
The logic of the SAB 88C166(W) will provide signals with the respective timing characteristics.
SR (System Requirement):
The external system must provide signals with the respective timing characteristics to the SAB
88C166(W).
SAB 88C166(W)
Semiconductor Group
29
DC Characteristics
V
CC
= 5 V
10 %;
V
SS
= 0 V;
f
CPU
= 20 MHz
T
A
= 0 to + 70 C
for SAB 88C166(W)-5M
Parameter
Symbol
Limit Values
Unit
Test Condition
min.
max.
Input low voltage EBC1/V
PP
V
IL1
SR
0.3
0.2
V
CC
0.1
V
Input low voltage
(all except EBC1/V
PP
)
V
IL2
SR
0.5
0.2
V
CC
0.1
V
Input high voltage
(all except RSTIN and XTAL1)
V
IH
SR
0.2
V
CC
+ 0.9
V
CC
+ 0.5
V
Input high voltage RSTIN
V
IH1
SR
0.6
V
CC
V
CC
+ 0.5
V
Input high voltage XTAL1
V
IH2
SR
0.7
V
CC
V
CC
+ 0.5
V
Output low voltage
(Port 0, Port 1, Port 4, ALE, RD,
WR, BHE, CLKOUT, RSTOUT)
V
OL
CC
0.45
V
I
OL
= 2.4 mA
Output low voltage
(all other outputs)
V
OL1
CC
0.45
V
I
OL1
= 1.6 mA
Output high voltage
(Port 0, Port 1, Port 4, ALE, RD,
WR, BHE, CLKOUT, RSTOUT)
V
OH
CC
0.9
V
CC
2.4
V
I
OH
= 500
A
I
OH
= 2.4 mA
Output high voltage
(all other outputs)
V
OH1
CC
0.9
V
CC
2.4
V
V
I
OH
= 250
A
I
OH
= 1.6 mA
Input leakage current (Port 5)
1)
I
OZ1
CC
200
nA
0 V <
V
IN
<
V
CC
Input leakage current (all other)
I
OZ2
CC
500
nA
0 V <
V
IN
<
V
CC
V
PP
leakage current EBC1/V
PP
I
PPS
CC
100
A
V
PP
V
CC
RSTIN pullup resistor
R
RST
CC
50
150
k
Read inactive current
4)
I
RH
2)
40
A
V
OUT
=
V
OHmin
Read active current
4)
I
RL
3)
-500
A
V
OUT
=
V
OLmax
ALE inactive current
4)
I
ALEL
2)
150
A
V
OUT
=
V
OLmax
ALE active current
4)
I
ALEH
3)
2100
A
V
OUT
=
V
OHmin
XTAL1 input current
I
IL
CC
20
A
0 V <
V
IN
<
V
CC
Pin capacitance
5)
(digital inputs/outputs)
C
IO
CC
10
pF
f
= 1 MHz
T
A
= 25 C
Power supply current
I
CC
50 +
5 x
f
CPU
mA
RSTIN =
V
IL2
f
CPU
in [MHz]
6)
Idle mode supply current
I
ID
30 +
1.5 x
f
CPU
mA
RSTIN =
V
IH1
f
CPU
in [MHz]
6)
SAB 88C166(W)
Semiconductor Group
30
Notes
1)
This specification does not apply to the analog input (Port 5.x) which is currently converted.
2)
The maximum current may be drawn while the respective signal line remains inactive.
3)
The minimum current must be drawn in order to drive the respective signal line active.
4)
This specification is only valid during Reset, or during Hold-mode.
5)
Not 100% tested, guaranteed by design characterization.
6)
The supply current is a function of the operating frequency. This dependency is illustrated in the figure below.
These parameters are tested at
V
CCmax
and 20 MHz CPU clock with all outputs disconnected and all inputs at
V
IL
or
V
IH
.
7)
All inputs (including pins configured as inputs) at 0 V to 0.1 V or at
V
CC
0.1 V to
V
CC
,
V
REF
= 0 V, all outputs
(including pins configured as outputs) disconnected.
A voltage of
V
CC
2.5 V is sufficient to retain the content of the internal RAM during power down mode.
Power-down mode supply current
I
PD
50
A
V
CC
= 5.5 V
7)
V
PP
read current
I
PPR
200
A
V
PP
>
V
CC
V
PP
writing current
I
PPW
50
mA
1/TCL = 40 MHz
32-bit
programming
V
PP
= 12 V
V
PP
during write/read
V
PP
11.4
12.6
V
Parameter
Symbol
Limit Values
Unit
Test Condition
min.
max.
SAB 88C166(W)
Semiconductor Group
31
Figure 12
Supply/Idle Current as a Function of Operating Frequency
I [mA]
f
CPU
[MHz]
5
10
15
20
150
100
50
10
I
CCmax
I
IDmax
SAB 88C166(W)
Semiconductor Group
32
A/D Converter Characteristics
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166(W)-5M
4.0 V
V
AREF
V
CC
+ 0.1 V;
V
SS
0.1 V
V
AGND
V
SS
+ 0.2 V
Notes
1)
V
AIN
may exceed
V
AGND
or
V
AREF
up to the absolute maximum ratings. However, the conversion result in these
cases will be X000
H
or X3FF
H
, respectively.
2)
During the sample time the input capacitance
C
I
can be charged/discharged by the external source. The
internal resistance of the analog source must allow the capacitors to reach their final voltage level within
t
S
.
After the end of the sample time
t
S
, changes of the analog input voltage have no effect on the conversion result.
The value for the sample clock is
t
SC
= TCL x 32.
3)
This parameter includes the sample time
t
S
, the time for determining the digital result and the time to load the
result register with the conversion result.
The value for the conversion clock is
t
CC
= TCL x 32.
4)
This parameter depends on the ADC control logic. It is not a real maximum value, but rather a fixum.
5)
TUE is tested at
V
AREF
= 5.0 V,
V
AGND
= 0 V,
V
CC
= 4.8 V. It is guaranteed by design characterization for all
other voltages within the defined voltage range.
6)
During the conversion the ADC's capacitance must be repeatedly charged or discharged. The internal
resistance of the reference voltage source must allow the capacitors to reach their respective voltage level
within
t
CC
. The maximum internal resistance results from the CPU clock period.
7)
Not 100% tested, guaranteed by design characterization.
Parameter
Symbol
Limit Values
Unit
Test Condition
min.
max.
Analog input voltage range
V
AIN
SR
V
AGND
V
AREF
V
1)
Sample time
t
S
CC
2
t
SC
2) 4)
Conversion time
t
C
CC
10
t
CC
+
t
S
+ 4TCL
3) 4)
Total unadjusted error
TUECC
2
LSB
5)
Internal resistance of reference
voltage source
R
AREF
CC
t
CC
/ 250
- 0.25
k
t
CC
in [ns]
6)
7)
Internal resistance of analog
source
R
ASRC
CC
t
S
/ 500
0.25
k
t
S
in [ns]
2)
7)
ADC input capacitance
C
AIN
CC
50
pF
7)
SAB 88C166(W)
Semiconductor Group
33
Testing Waveforms
Figure 13
Input Output Waveforms
Figure 14
Float Waveforms
Memory Cycle Variables
The timing tables below use three variables which are derived from registers SYSCON and
BUSCON1 and represent the special characteristics of the programmed memory cycle. The
following table describes, how these variables are to be computed.
Description
Symbol Values
ALE Extension
t
A
TCL x <ALECTL>
Memory Cycle Time Waitstates
t
C
2TCL x (15 <MCTC>)
Memory Tristate Time
t
F
2TCL x (1 <MTTC>)
AC inputs during testing are driven at 2.4 V for a logic `1' and 0.4 V for a logic `0'.
Timing measurements are made at
V
IH
min for a logic `1' and
V
IL
max for a logic `0'.
For timing purposes a port pin is no longer floating when a 100 mV change from load
voltage occurs, but begins to float when a 100 mV change from the loaded
V
OH
/
V
OL
level occurs
(
I
OH
/
I
OL
= 20 mA).
SAB 88C166(W)
Semiconductor Group
34
AC Characteristics
The specification of the timings depends on the CPU clock signal that is used in the respective
device. In this regard the specification for the SAB 88C166 and the SAB 88C166W are different.
While the SAB 88C166W directly uses the clock signal fed to XTAL1 and therefore has to take into
account the duty cycle variation of this signal, the SAB 88C166 derives its CPU clock from the
XTAL1 signal via a 2:1 prescaler and therefore is independant from these variations.
For these reasons the following pages provide the timing specifications for SAB 88C166 and for
SAB 88C166W separately (where applicable).
AC Characteristics
External Clock Drive XTAL1 for the SAB 88C166
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to +70 C
for SAB 88C166-5M
Figure 15
External Clock Drive XTAL1
Parameter
Symbol
Max. CPU Clock
= 20 MHz
Variable CPU Clock
1/2TCL = 1 to 20 MHz
Unit
min.
max.
min.
max.
Oscillator period
TCLSR
25
25
25
500
ns
High time
t
1
SR
6
6
ns
Low time
t
2
SR
6
6
ns
Rise time
t
3
SR
5
5
ns
Fall time
t
4
SR
5
5
ns
SAB 88C166(W)
Semiconductor Group
35
AC Characteristics (cont'd)
External Clock Drive XTAL1 for the SAB 88C166W
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166W-M
Note: In order to run the SAB 88C166W at a CPU clock of 20 MHz the duty cycle of the oscillator
clock must be 0.5, ie. the relation between the oscillator high and low phases must be 1:1. So
the variation of the duty cycle of the oscillator clock limits the maximum operating speed of
the device.
The 16 MHz values in the tables are given as an example for a typical duty cycle variation of
the oscillator clock from 0.4 to 0.6.
Figure 16
External Clock Drive XTAL1
Parameter
Symbol
CPU Clock = 16 MHz
Duty cycle 0.4 to 0.6
Variable CPU Clock
1/CLP = 1 to 20 MHz
Unit
min.
max.
min.
max.
Oscillator period
CLPSR
62.5
62.5
50
1000
ns
High time
TCL
H
SR 25
25
CLP-TCL
L
ns
Low time
TCL
L
SR
25
25
CLP-TCL
H
ns
Rise time
t
R
SR
10
10
ns
Fall time
t
F
SR
10
10
ns
Oscillator duty cycle
DCSR
0.4
0.6
25 / CLP
1 25 / CLP
Clock cycle
TCLSR
25
37.5
CLP x DC
min
CLP x DC
max
ns
SAB 88C166(W)
Semiconductor Group
36
AC Characteristics (cont'd)
Multiplexed Bus for the SAB 88C166
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166-5M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
ALE cycle time = 6 TCL + 2
t
A
+
t
C
+
t
F
(150 ns at 20-MHz CPU clock without waitstates)
Parameter
Symbol
Max. CPU Clock
= 20 MHz
Variable CPU Clock
1/2TCL = 1 to 20 MHz
Unit
min.
max.
min.
max.
ALE high time
t
5
CC
15 +
t
A
TCL 10 +
t
A
ns
Address setup to ALE
t
6
CC
10 +
t
A
TCL 15 +
t
A
ns
Address hold after ALE
t
7
CC
15 +
t
A
TCL 10 +
t
A
ns
ALE falling edge to RD,
WR (with RW-delay)
t
8
CC
15 +
t
A
TCL 10 +
t
A
ns
ALE falling edge to RD,
WR (no RW-delay)
t
9
CC
10 +
t
A
10 +
t
A
ns
Address float after RD,
WR (with RW-delay)
t
10
CC
5
5
ns
Address float after RD,
WR (no RW-delay)
t
11
CC
30
TCL + 5
ns
RD, WR low time
(with RW-delay)
t
12
CC
40 +
t
C
2TCL 10
+
t
C
ns
RD WR low time
(no RW-delay)
t
13
CC
65 +
t
C
3TCL 10
+
t
C
ns
RD to valid data in
(with RW-delay)
t
14
SR
30 +
t
C
2TCL 20
+
t
C
ns
RD to valid data in
(no RW-delay)
t
15
SR
55 +
t
C
3TCL 20
+
t
C
ns
ALE low to valid data in
t
16
SR
55
+
t
A
+
t
C
3TCL 20
+
t
A
+
t
C
ns
Address to valid data in
t
17
SR
75
+
2
t
A
+
t
C
4TCL 25
+
2
t
A
+
t
C
ns
Data hold after RD
rising edge
t
18
SR
0
0
ns
Data float after RD
t
19
SR
35 +
t
F
2TCL 15
+
t
F
ns
Data valid to WR
t
22
CC
35 +
t
C
2TCL 15
+
t
C
ns
Data hold after WR
t
23
CC
35 +
t
F
2TCL 15
+
t
F
ns
SAB 88C166(W)
Semiconductor Group
37
ALE rising edge after RD,
WR
t
25
CC
35 +
t
F
2TCL 15
+
t
F
ns
Address hold after RD,
WR
t
27
CC
35 +
t
F
2TCL 15
+
t
F
ns
Parameter
Symbol
Max. CPU Clock
= 20 MHz
Variable CPU Clock
1/2TCL = 1 to 20 MHz
Unit
min.
max.
min.
max.
SAB 88C166(W)
Semiconductor Group
38
AC Characteristics (cont'd)
Multiplexed Bus for the SAB 88C166W
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166W-M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
ALE cycle time = 6 TCL + 2
t
A
+
t
C
+
t
F
(150 ns at 20-MHz CPU clock without waitstates)
Parameter
Symbol CPU Clock = 16 MHz
Duty cycle 0.4 to 0.6
Variable CPU Clock
1/CLP = 1 to 20 MHz
Unit
min.
max.
min.
max.
ALE high time
t
5
CC
15 +
t
A
TCL
min
10
+
t
A
ns
Address setup to ALE
t
6
CC
10 +
t
A
TCL
min
15
+
t
A
ns
Address hold after ALE
t
7
CC
15 +
t
A
TCL
min
10
+
t
A
ns
ALE falling edge to RD,
WR (with RW-delay)
t
8
CC
15 +
t
A
TCL
min
10
+
t
A
ns
ALE falling edge to RD,
WR (no RW-delay)
t
9
CC
10 +
t
A
10 +
t
A
ns
Address float after RD,
WR (with RW-delay)
t
10
CC
5
5
ns
Address float after RD,
WR (no RW-delay)
t
11
CC
42.5
TCL
max
+ 5
ns
RD, WR low time
(with RW-delay)
t
12
CC
52.5 +
t
C
CLP 10
+
t
C
ns
RD WR low time
(no RW-delay)
t
13
CC
77.5 +
t
C
CLP+TCL
min
10 +
t
C
ns
RD to valid data in
(with RW-delay)
t
14
SR
47.5 +
t
C
CLP 20
+
t
C
ns
RD to valid data in
(no RW-delay)
t
15
SR
72.5 +
t
C
CLP+TCL
min
20 +
t
C
ns
ALE low to valid data in
t
16
SR
72.5
+
t
A
+
t
C
CLP+TCL
min
20 +
t
C
ns
Address to valid data in
t
17
SR
100
+
2
t
A
+
t
C
2CLP 25
+
2
t
A
+
t
C
ns
Data hold after RD
rising edge
t
18
SR
0
0
ns
Data float after RD
t
19
SR
47.5 +
t
F
CLP 15
+
t
F
ns
SAB 88C166(W)
Semiconductor Group
39
Data valid to WR
t
22
CC
47.5 +
t
C
CLP 15
+
t
C
ns
Data hold after WR
t
23
CC
47.5 +
t
F
CLP 15
+
t
F
ns
ALE rising edge after RD,
WR
t
25
CC
47.5 +
t
F
CLP 15
+
t
F
ns
Address hold after RD,
WR
t
27
CC
47.5 +
t
F
CLP 15
+
t
F
ns
Parameter
Symbol CPU Clock = 16 MHz
Duty cycle 0.4 to 0.6
Variable CPU Clock
1/CLP = 1 to 20 MHz
Unit
min.
max.
min.
max.
SAB 88C166(W)
Semiconductor Group
40
Figure 17
External Memory Cycle: Multiplexed Bus, With Read/Write Delay, Normal ALE
BUS
Read Cycle
RD
Data In
Data Out
Address
Address
t
10
Address
ALE
A17-A16
(A15-A8)
BHE
BUS
Write Cycle
WR
t
5
t
16
t
17
t
6
t
7
t
25
t
27
t
18
t
19
t
14
t
12
t
10
t
22
t
23
t
12
t
8
t
8
SAB 88C166(W)
Semiconductor Group
41
Figure 18
External Memory Cycle: Multiplexed Bus, With Read/Write Delay, Extended ALE
Data Out
Address
Data In
Address
t
10
Address
ALE
A17-A16
(A15-A8)
BHE
BUS
Read Cycle
RD
BUS
Write Cycle
WR
t
5
t
16
t
17
t
6
t
7
t
25
t
27
t
18
t
19
t
14
t
12
t
10
t
22
t
23
t
12
t
8
t
8
SAB 88C166(W)
Semiconductor Group
42
Figure 19
External Memory Cycle: Multiplexed Bus, No Read/Write Delay, Normal ALE
Data Out
Address
Address
Data In
Address
ALE
A17-A16
(A15-A8)
BHE
BUS
Read Cycle
RD
BUS
Write Cycle
WR
t
5
t
16
t
17
t
6
t
7
t
25
t
27
t
18
t
19
t
15
t
13
t
22
t
23
t
13
t
9
t
9
t
11
t
11
SAB 88C166(W)
Semiconductor Group
43
Figure 20
External Memory Cycle: Multiplexed Bus, No Read/Write Delay, Extended ALE
Data Out
Address
Data In
Address
Address
ALE
A17-A16
(A15-A8)
BHE
BUS
Read Cycle
RD
BUS
Write Cycle
WR
t
5
t
16
t
17
t
6
t
7
t
25
t
27
t
18
t
19
t
15
t
13
t
22
t
23
t
13
t
9
t
9
t
11
t
11
SAB 88C166(W)
Semiconductor Group
44
AC Characteristics (cont'd)
Demultiplexed Bus for the SAB 88C166
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166-5M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
ALE cycle time = 4 TCL + 2
t
A
+
t
C
+
t
F
(100 ns at 20-MHz CPU clock without waitstates)
Parameter
Symbol
Max. CPU Clock
= 20 MHz
Variable CPU Clock
1/2TCL = 1 to 20 MHz
Unit
min.
max.
min.
max.
ALE high time
t
5
CC
15 +
t
A
TCL 10 +
t
A
ns
Address setup to ALE
t
6
CC
10 +
t
A
TCL 15 +
t
A
ns
ALE falling edge to RD,
WR (with RW-delay)
t
8
CC
15 +
t
A
TCL 10
+
t
A
ns
ALE falling edge to RD,
WR (no RW-delay)
t
9
CC
10 +
t
A
10
+
t
A
ns
RD, WR low time
(with RW-delay)
t
12
CC
40 +
t
C
2TCL 10
+
t
C
ns
RD, WR low time
(no RW-delay)
t
13
CC
65 +
t
C
3TCL 10
+
t
C
ns
RD to valid data in
(with RW-delay)
t
14
SR
30 +
t
C
2TCL 20
+
t
C
ns
RD to valid data in
(no RW-delay)
t
15
SR
55 +
t
C
3TCL 20
+
t
C
ns
ALE low to valid data in
t
16
SR
55
+
t
A
+
t
C
3TCL 20
+
t
A
+
t
C
ns
Address to valid data in
t
17
SR
75
+
2
t
A
+
t
C
4TCL 25
+
2
t
A
+
t
C
ns
Data hold after RD
rising edge
t
18
SR
0
0
ns
Data float after RD rising
edge (with RW-delay)
t
20
SR
35 +
t
F
2TCL 15
+
t
F
ns
Data float after RD rising
edge (no RW-delay)
t
21
SR
15 +
t
F
TCL 10
+
t
F
ns
Data valid to WR
t
22
CC
35 +
t
C
2TCL 15
+
t
C
ns
Data hold after WR
t
24
CC
15 +
t
F
TCL - 10 +
t
F
ns
ALE rising edge after RD,
WR
t
26
CC
10 +
t
F
10
+
t
F
ns
Address hold after RD,
WR
t
28
CC
0 +
t
F
0
+
t
F
ns
SAB 88C166(W)
Semiconductor Group
45
AC Characteristics (cont'd)
Demultiplexed Bus for the SAB 88C166W
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166W-M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
ALE cycle time = 4 TCL + 2
t
A
+
t
C
+
t
F
(100 ns at 20-MHz CPU clock without waitstates)
Parameter
Symbol CPU Clock = 16 MHz
Duty cycle 0.4 to 0.6
Variable CPU Clock
1/CLP = 1 to 20 MHz
Unit
min.
max.
min.
max.
ALE high time
t
5
CC
15 +
t
A
TCL
min
10
+
t
A
ns
Address setup to ALE
t
6
CC
10 +
t
A
TCL
min
15
+
t
A
ns
ALE falling edge to RD,
WR (with RW-delay)
t
8
CC
15 +
t
A
TCL
min
10
+
t
A
ns
ALE falling edge to RD,
WR (no RW-delay)
t
9
CC
10 +
t
A
10
+
t
A
ns
RD, WR low time
(with RW-delay)
t
12
CC
52.5 +
t
C
CLP 10
+
t
C
ns
RD, WR low time
(no RW-delay)
t
13
CC
77.5 +
t
C
CLP+TCL
min
10 +
t
C
ns
RD to valid data in
(with RW-delay)
t
14
SR
47.5 +
t
C
CLP 20
+
t
C
ns
RD to valid data in
(no RW-delay)
t
15
SR
72.5 +
t
C
CLP+TCL
min
20 +
t
C
ns
ALE low to valid data in
t
16
SR
72.5
+
t
A
+
t
C
CLP+TCL
min
20 +
t
A
+
t
C
ns
Address to valid data in
t
17
SR
100
+
2
t
A
+
t
C
2CLP 25
+
2
t
A
+
t
C
ns
Data hold after RD
rising edge
t
18
SR
0
0
ns
Data float after RD rising
edge (with RW-delay)
t
20
SR
47.5 +
t
F
CLP 15
+
t
F
ns
Data float after RD rising
edge (no RW-delay)
t
21
SR
15 +
t
F
TCL
min
10
+
t
F
ns
Data valid to WR
t
22
CC
47.5 +
t
C
CLP 15
+
t
C
ns
Data hold after WR
t
24
CC
15 +
t
F
TCL
min
10
+
t
F
ns
SAB 88C166(W)
Semiconductor Group
46
ALE rising edge after RD,
WR
t
26
CC
10 +
t
F
10
+
t
F
ns
Address hold after RD,
WR
t
28
CC
0 +
t
F
0
+
t
F
ns
Parameter
Symbol CPU Clock = 16 MHz
Duty cycle 0.4 to 0.6
Variable CPU Clock
1/CLP = 1 to 20 MHz
Unit
min.
max.
min.
max.
SAB 88C166(W)
Semiconductor Group
47
Figure 21
External Memory Cycle: Demultiplexed Bus, With Read/Write Delay, Normal ALE
Data Out
Data In
Address
ALE
A17-A16
A15-A0
BHE
BUS
(D15-D8)
D7-D0
Read Cycle
RD
Write Cycle
t
5
t
16
t
17
t
6
t
26
t
28
t
18
t
20
t
14
t
12
t
22
t
24
t
12
t
8
t
8
BUS
(D15-D8)
D7-D0
WR
SAB 88C166(W)
Semiconductor Group
48
Figure 22
External Memory Cycle: Demultiplexed Bus, With Read/Write Delay, Extended ALE
Data Out
Data In
Address
ALE
A17-A16
A15-A0
BHE
Read Cycle
RD
Write Cycle
t
5
t
16
t
17
t
6
t
26
t
28
t
18
t
20
t
14
t
12
t
22
t
24
t
12
t
8
t
8
BUS
(D15-D8)
D7-D0
BUS
(D15-D8)
D7-D0
WR
SAB 88C166(W)
Semiconductor Group
49
Figure 23
External Memory Cycle: Demultiplexed Bus, No Read/Write Delay, Normal ALE
Data Out
Data In
Address
ALE
A17-A16
A15-A0
BHE
Read Cycle
RD
Write Cycle
t
5
t
16
t
17
t
6
t
26
t
28
t
18
t
21
t
15
t
13
t
22
t
24
t
13
t
9
t
9
BUS
(D15-D8)
D7-D0
BUS
(D15-D8)
D7-D0
WR
SAB 88C166(W)
Semiconductor Group
50
Figure 24
External Memory Cycle: Demultiplexed Bus, No Read/Write Delay, Extended ALE
Data Out
Data In
Address
ALE
A17-A16
A15-A0
BHE
Read Cycle
RD
Write Cycle
WR
t
5
t
16
t
17
t
6
t
26
t
28
t
18
t
21
t
15
t
13
t
22
t
24
t
13
t
9
t
9
BUS
(D15-D8)
D7-D0
BUS
(D15-D8)
D7-D0
SAB 88C166(W)
Semiconductor Group
51
AC Characteristics (cont'd)
CLKOUT and READY for SAB 88C166
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166-5M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
Notes
1)
These timings are given for test purposes only, in order to assure recognition at a specific clock edge.
2)
Demultiplexed bus is the worst case. For multiplexed bus 2TCL are to be added to the maximum values. This
adds even more time for deactivating READY.
Parameter
Symbol
Max. CPU Clock
= 20 MHz
Variable CPU Clock
1/2TCL = 1 to 20 MHz
Unit
min.
max.
min.
max.
CLKOUT cycle time
t
29
CC 50
50
2TCL
2TCL
ns
CLKOUT high time
t
30
CC 20
TCL 5
ns
CLKOUT low time
t
31
CC 15
TCL 10
ns
CLKOUT rise time
t
32
CC
5
5
ns
CLKOUT fall time
t
33
CC
5
5
ns
CLKOUT rising edge to
ALE falling edge
t
34
CC 0 +
t
A
10 +
t
A
0 +
t
A
10 +
t
A
ns
Synchronous READY
setup time to CLKOUT
t
35
SR 10
10
ns
Synchronous READY
hold time after CLKOUT
t
36
SR 10
10
ns
Asynchronous READY
low time
t
37
SR 65
2TCL + 15
ns
Asynchronous READY
setup time
1)
t
58
SR 20
20
ns
Asynchronous READY
hold time
1)
t
59
SR 0
0
ns
Async. READY hold time
after RD, WR high
(Demultiplexed Bus)
2)
t
60
SR 0
0
+
2
t
A
+
t
F
2)
0
TCL 25
+
2
t
A
+
t
F
2)
ns
SAB 88C166(W)
Semiconductor Group
52
AC Characteristics (cont'd)
CLKOUT and READY for SAB 88C166W
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166W-M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
Notes
1)
These timings are given for test purposes only, in order to assure recognition at a specific clock edge.
2)
Demultiplexed bus is the worst case. For multiplexed bus 2TCL are to be added to the maximum values. This
adds even more time for deactivating READY.
The 2t
A
refer to the next following bus cycle.
Parameter
Symbol
CPU Clock = 16 MHz
Duty cycle 0.4 to 0.6
Variable CPU Clock
1/CLP = 1 to 20 MHz
Unit
min.
max.
min.
max.
CLKOUT cycle time
t
29
CC 62.5
62.5
CLP
CLP
ns
CLKOUT high time
t
30
CC 20
TCL
min
5
ns
CLKOUT low time
t
31
CC 15
TCL
min
10
ns
CLKOUT rise time
t
32
CC
5
5
ns
CLKOUT fall time
t
33
CC
5
5
ns
CLKOUT rising edge to
ALE falling edge
t
34
CC 0 +
t
A
10 +
t
A
0 +
t
A
10 +
t
A
ns
Synchronous READY
setup time to CLKOUT
t
35
SR 10
10
ns
Synchronous READY
hold time after CLKOUT
t
36
SR 10
10
ns
Asynchronous READY
low time
t
37
SR 77.5
CLP + 15
ns
Asynchronous READY
setup time
1)
t
58
SR 20
20
ns
Asynchronous READY
hold time
1)
t
59
SR 0
0
ns
Async. READY hold time
after RD, WR high
(Demultiplexed Bus)
2)
t
60
SR 0
0
+
2
t
A
+
t
F
2)
0
TCL 25
+
2
t
A
+
t
F
2)
ns
SAB 88C166(W)
Semiconductor Group
53
Figure 25
CLKOUT and READY
Notes
1)
Cycle as programmed, including MCTC waitstates (Example shows 0 MCTC WS).
2)
The leading edge of the respective command depends on RW-delay.
3)
READY sampled HIGH at this sampling point generates a READY controlled waitstate,
READY sampled LOW at this sampling point terminates the currently running bus cycle.
4)
READY may be deactivated in response to the trailing (rising) edge of the corresponding command (RD or
WR).
5)
If the Asynchronous READY signal does not fulfill the indicated setup and hold times with respect to CLKOUT
(eg. because CLKOUT is not enabled), it must fulfill
t
37
in order to be safely synchronized. This is guaranteed,
if READY is removed in reponse to the command (see Note
4)
).
6)
Multiplexed bus modes have a MUX waitstate added after a bus cycle, and an additional MTTC waitstate may
be inserted here.
For a multiplexed bus with MTTC waitstate this delay is 2 CLKOUT cycles, for a demultiplexed bus without
MTTC waitstate this delay is zero.
7)
The next external bus cycle may start here.
CLKOUT
ALE
t
30
t
34
Sync
READY
t
35
t
36
t
35
t
36
Async
READY
t
58
t
59
t
58
t
59
waitstate
READY
MUX/Tristate
6)
t
32
t
33
t
29
Running cycle
1)
t
31
t
37
3)
3)
5)
Command
RD, WR
t
60
4)
see 6)
2)
7)
3)
3)
SAB 88C166(W)
Semiconductor Group
54
AC Characteristics (cont'd)
External Bus Arbitration
V
CC
= 5 V
10 %;
V
SS
= 0 V
T
A
= 0 to + 70 C
for SAB 88C166(W)-5M
C
L
(for Port 0, Port 1, Port 4, ALE, RD, WR, BHE, CLKOUT) = 100 pF
Parameter
Symbol
Max. CPU Clock
= 20 MHz
Variable CPU Clock
1/2TCL = 1 to 20 MHz
Unit
min.
max.
min.
max.
HOLD input setup time
to CLKOUT
t
61
SR 20
20
ns
CLKOUT to HLDA high
or BREQ low delay
t
62
CC
50
50
ns
CLKOUT to HLDA low
or BREQ high delay
t
63
CC
50
50
ns
Other signals release
t
66
CC
25
25
ns
Other signals drive
t
67
CC 5
35
5
35
ns
SAB 88C166(W)
Semiconductor Group
55
Figure 26
External Bus Arbitration, Releasing the Bus
Notes
1)
The SAB 88C166(W) will complete the currently running bus cycle before granting bus access.
2)
This is the first possibility for BREQ to get active.
CLKOUT
HOLD
t
61
HLDA
t
63
Other
Signals
t
66
1)
1)
2)
BREQ
t
62
SAB 88C166(W)
Semiconductor Group
56
Figure 27
External Bus Arbitration, (Regaining the Bus)
Notes
1)
This is the last chance for BREQ to trigger the indicated regain-sequence.
Even if BREQ is activated earlier, the regain-sequence is initiated by HOLD going high.
Please note that HOLD may also be deactivated without the SAB 88C166(W) requesting the bus.
2)
The next SAB 88C166(W) driven bus cycle may start here.
CLKOUT
HOLD
HLDA
Other
Signals
t
62
t
67
t
62
1)
2)
t
61
BREQ
t
63
t
62
SAB 88C166(W)
Semiconductor Group
57
Figure 28
Package Outline Rectangular P-MQFP100
Di
m
mm
inches
Min
Typ
Max
Min
Typ
Max
A
3.30
0.130
A2
2.55
2.80
3.05
0.100 0.110 0.120
D
23.65 23.90 24.15 0.931 0.941 0.951
D1
19.90 20.00 20.10 0.783 0.787 0.791
D3
18.85
0.742
E
17.65 17.90 18.15 0.695 0.705 0.715
E1
13.90 14.00 14.10 0.547 0.551 0.555
E3
12.35
0.486
e
0.65
0.026
Number of Pins
ND
30
NE
20
N
100