As far as patents or other rights of third parties are conc erned, liability is only assumed for components, not for app lic ations, processes
and circuits implemented within co mpo nent s or assemblies.
The information describes the type of component and shall not be considered as assured characteristics.
Terms of delivery and rights to change design reserved.
For questions on technology, delivery and prices please contact the Semiconductor Group Offices in Germany or the Siemens Companies
and Representatives worldwide (see address list).
Due to technical requirements components m ay contain dangerous substances. For information on the types in question pleas e contact
your nearest Siemens Office, Sem iconductor Group.
Siemens AG is an approved CECC manufacturer.
Packing
Please use the recycling operators known to you. We can also help you – get in touch with your nearest sales office. By agreement we will
take packing material back, if it is sorted. You mus t bea r the costs of transport.
For packing material that is returned to us unsorted or which we are not obliged to accept, we shall have to invoice you for any costs incurred.
Components used in life-support devices or systems must be expressly authorized for such purpose!
Critical components
written approval of the Semiconductor Group of Siemens AG.
1 A critical component is a component used in a life-support device or system whose failure can reasonably be expected to cause the
failure of that life-support device or system, or to affect its safet y or ef fectiv eness of that device or system.
2 Life support devices or systems are intended (a) to be implante d in the human body, or (b) to su pport and/o r maintain a nd sustain hu-
man life. If they fail, it is reasonable to assume that the health of the user may be endangered.
1
of the Semiconductor Group of Siemens AG, may only be used in life-support devices or systems2 with the express
C16x-Family of
C164CI
High-Performance CMOS 16-Bit Microcontrollers
Preliminary
C164CI 16-Bit Microcontroller
● High Performance 16-bit CPU with 4-Stage Pipeline
● 100 ns Instruction Cycle Time at 20 MHz CPU Clock
This document describes the SAF-C164CI-8EM and the SAK-C164CI-8EM.
For simplicity all versions are referred to by the term C164CI throughout this document.
Semiconductor Group31998-02
C164CI
Introduction
The C164CI is a new low cost derivative of the Siemens C166 Family of 16-bit single-chip CMOS
microcontrollers. It combines high CPU performance (up to 8 million instructions per second) with
high peripheral functionality and enhanced IO-capabilities. It also provides on-chip ROM or OTP
and clock generation via PLL. The C164CI derivative is especially suited for cost sensitive
applications.
XTAL1
XTAL2
RSTIN
RSTOUT
NMI
EA
ALE
RD
WR
V
DD
C164CI
V
AREF
V
SS
V
PORT0
16 bit
PORT1
16 bit
Port 3
9 bit
Port 4
6 bit
Port 8
4 bit
Port 5
8 bit
AGND
Figure 1
Logic Symbol
Ordering Information
The ordering code for Siemens microcontrollers provides an exact reference to the required
product. This ordering code identifies:
● the derivative itself, ie. its function set
● the specified temperature range
● the package
● the type of delivery.
For the available ordering codes for the C164CI please refer to the
„Product Information Microcontrollers“, which summarizes all available microcontroller variants.
Note: The ordering codes for the Mask-ROM versions are defined for each product after
Port 5 is a 8-bit input-only port with Schmitt-Trigger
characteristics. The pins of Port 5 also serve as the (up to 8)
analog input channels for the A/D converter, where P5.x
equals ANx (Analog input channel x).
The following pins of Port 5 also serve as timer inputs:
P5.4T2EUDGPT1 Timer T2 Ext.Up/Down Ctrl.Input
P5.5T4EUDGPT1 Timer T4 Ext.Up/Down Ctrl.Input
P5.6T2INGPT1 Timer T2 Input for
Count/Gate/Reload/Capture
P5.7T4INGPT1 Timer T4 Input for
Count/Gate/Reload/Capture
Port 3 is a 9-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 highimpedance state.
The following Port 3 pins also serve for alternate functions:
P3.4T3EUDGPT1 Timer T3 Ext.Up/Down Ctrl.Input
P3.6T3INGPT1 Timer T3 Count/Gate Input
P3.8MRSTSSC Master-Rec./Slave-Transmit I/O
P3.9MTSRSSC Master-Transmit/Slave-Rec. O/I
P3.10TXD0ASC0 Clock/Data Output (Asyn./Syn.)
P3.11RXD0ASC0 Data Input (Asyn.) or I/O (Syn.)
P3.12BHE
Ext. Memory High Byte Enable Signal,
Ext. Memory High Byte Write Strobe
P4.0 –
P4.3
P4.5 –
P4.6
Semiconductor Group61998-02
17 - 19,
22,
23 24
17
...
22
23
24
I/O
I/O
I/O
I/O
O
O
...
O
O
O
I
O
O
Port 4 is a 6-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 highimpedance state.
In case of an external bus configuration, Port 4 can be used to
output the segment address lines:
P4.0A16Least Significant Segment Addr. Line
CS3
.........
P4.3A19Segment Address Line
CS0
P4.5A20Segment Address Line,
CAN_RxD CAN Receive Data Input
P4.6A21Most Significant Segment Addr. Line,
CAN_TxD CAN Transmit Data Output
Chip Select 3 Output
Chip Select 0 Output
Pin Definitions and Functions (cont’d)
C164CI
SymbolPin
Number
RD25OExternal Memory Read Strobe. RD is activated for every
WR
/
WRL
ALE27OAddress Latch Enable Output. Can be used for latching the
EA
PORT0:
P0L.0 –
P0L.7,
P0H.0 P0H.7
26OExternal Memory Write Strobe. In WR-mode this pin is
28IExternal Access Enable pin. A low level at this pin during and
29 36
37 - 39,
42 - 46
Input (I)
Output (O)
I/OPORT0 consists of the two 8-bit bidirectional I/O ports P0L
Function
external instruction or data read access.
activated for every external data write access. In WRL
this pin is activated for low byte data write accesses on a 16bit bus, and for every data write access on an 8-bit bus. See
WRCFG in register SYSCON for mode selection.
address into external memory or an address latch in the
multiplexed bus modes.
after Reset forces the C164CI to begin instruction execution
out of external memory. A high level forces execution out of
the internal ROM.
Note: This pin also accepts the programming voltage for OTP
versions of the C164CI.
and P0H. 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, PORT0 serves as
the address and data (AD) bus.
Data Path Width:8-bit16-bit
P0L.0 – P0L.7:AD0 – AD7AD0 - AD7
P0H.0 – P0H.7:A8 - A15AD8 - AD15
PORT1 consists of the two 8-bit bidirectional I/O ports P1L and
P1H. It is bit-wise programmable for input or output via
direction bits. For a pin configured as in put, the ou tput driv er is
put into high-impedance state.
The following Port 1 pins also serve for alternate functions:
P1L.0CC60CAPCOM6: Input / Output of Ch. 0
P1L.1COUT60CAPCOM6: Output of Channel 0
P1L.2CC61CAPCOM6: Input / Output of Ch. 1
P1L.3COUT61CAPCOM6: Output of Channel 1
P1L.4CC62CAPCOM6: Input / Output of Ch. 2
P1L.5COUT62CAPCOM6: Output of Channel 2
P1L.6COUT63Output of 10-bit Compare Channel
P1L.7CTRAP
CTRAP
is an input pin with an internal pullup resistor. A low
CAPCOM6: Trap Input
level on this pin switches the compare outputs of the
CAPCOM6 unit to the logic level defined by software.
P1H.0CC6POS0
XTAL1:Input to the oscillator amplifier and input to the
internal clock generator
XTAL2
54
O
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.
RSTIN
69IReset Input with Schmitt-Trigger characteristics. A low level at
this pin for a specified duration while the oscillator is running
resets the C164CI. An internal pullup resistor permits power-
V
on reset using only a capacitor connected to
SS
.
In bidirectional reset mode (enabled by setting bit BDRSTEN
in register SYSCON) the RSTIN
line is pulled low for the
duration of the internal reset sequence upon a software or
WDT reset.
1)
Semiconductor Group81998-02
Pin Definitions and Functions (cont’d)
C164CI
SymbolPin
Number
RSTOUT
NMI
P8.0 –
P8.3
70OInternal Reset Indication Output. This pin is set to a low level
71INon-Maskable Interrupt Input. A high to low transition at this
72 75
72
...
75
Input (I)
Output (O)
I/O
I/O
I/O
...
I/O
Function
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.
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 C164CI 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, pin NMI
should be pulled high externally.
Port 8 is a 4-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 highimpedance state.
The following Port 8 pins also serve for alternate functions:
P8.0CC16IOCAPCOM2: CC16 Cap.-In/Comp.Out
.........
P8.3CC19IOCAPCOM2: CC19 Cap.-In/Comp.Out
V
AREF
V
AGND
V
DD
V
SS
1-Reference voltage for the A/D converter.
80-Reference ground for the A/D converter.
7, 21,
40, 53,
61
6, 20,
-Digital Supply Voltage:
+ 3 V / + 5 V during normal operation and idle mode.
≥ 2.5 V during power down mode
-Digital Ground.
41, 56,
60
1)
The following behaviour differences must be observed when the bidirectional reset is active:
● Bit BDRSTEN in register SYSCON cannot be changed after EINIT.
● After a reset bit BDRSTEN is cleared.
● Bit WDTR will always be ’0’, even after a watchdog timer reset.
● The PORT0 configuration is treated like on a hardware reset. Especially the bootstrap loader
may be activated when P0L.4 is low.
● Pin RSTIN may only be connected to external reset devices with an open drain output driver.
Semiconductor Group91998-02
C164CI
Functional Description
The C164CI is a low cost downgrade of the high performance microcontroller C167CR with OTP or
internal ROM, reduced peripheral functionality and a hig h performan ce Capture Compare Unit with
an additional functionality.
The architecture of the C164CI combines advantages of both RISC and CISC processors and of
advanced peripheral subsystems in a very well-balance d way. The following block diagram gives an
overview of the different on-chip components and of the advanced, high bandwidth internal bus
structure of the C164CI.
Note: All time specifications refer to a CPU clock of 20 MHz
(see definition in the AC Characteristics section).
XTAL
P4.5/CAN_RxD
P4.6/CA N_ T xD
16
(C164CI-8RM)
(C164CI-8EM)
PLL-Oscillator
Full-CAN
Interface
V2.0B
active
5
64K
Internal ROM
or OTP
32
Instr./Data
C166-Core
CPU Core
CPU
Data
Data
16
progr. Multiplier:
0.5; 1; 1.5; 2;
2.5; 3; 4; 5
External Instr./Data
16
Interrupt Controller
PEC
up to 12
ext. IR
Interrupt Bus
Peripheral Dat a
External
Bus
(8/16 bit;
(16-bit NON MUX Data / Addresses)
MUX only)
Port 0
XBUS
&
XBUS
Control
Port 4Port 1
Channel
Port 5
8-
10-Bit
ADC
8
USART
ASC
BRG
Sync.
Channel
(SPI)
SSC
BRG
9
GPT 1
T 2
T 3
T 4
General Purpose
Capture/Compare
Unit
Timer 7
8-Channel 16-bit
Capture/Compare Unit
(CAPCOM2)
Port 8Port 3
4
Capture/Compare Unit for
PWM Generation (CAPCOM6)
1 Compare
Channel
Timer 13
Timer 8
16
16
RTC
3/6 Capture/Compare
Channels
16
Internal
2 KByte
Dual Port
RAM
WDT
16
C164CI V1.2
Figure 3
Block Diagram
Semiconductor Group101998-02
C164CI
Memory Organization
The memory space of the C164CI 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 4 MBytes. The entire memory space can be accessed bytewise or wordwise.
Particular portions of the on-chip memory have additionally been made directly bitaddressable.
The C164CI incorporates 64 KByte of on-chip ROM or OTP memory for code or con stant data. The
OTP memory can be programmed by the CPU itself (in system , eg. during booting) or directly via a n
external interface (eg. before assembly). The programming time is approx. 100 µsec per word. An
external programming voltage V
2 KBytes of on-chip Internal RAM are provided as a storage for user defined variables, for the
system stack, general purpose register ba nks and ev en for c ode. A reg ister b ank c an c onsis t of u p
to 16 wordwide (R0 to R15) and/or bytewide (RL0, RH0, …, RL7, RH7) so-called Gene ral Purpos e
Registers (GPRs).
1024 bytes (2 * 512 bytes) of the address space are reserved for the Special Function Register
areas (SFR space and ESFR space). SFRs are wordwide registers which are used for controlling
and monitoring functions of the different on-chip units. Unused SFR addresses are reserved for
future members of the C16x family.
= 11.5 V must be supplied for this purpose (via pin EA).
PP
In order to meet the needs of designs where more memory is required than is provi ded on c hip, u p
to 4 MBytes of external RAM and/or ROM can be connected to the microcontroller.
External Bus Controller
All of the external memory accesses are performed by a particular on-chip External Bus Controller
(EBC). It can be programmed either to Single Chip Mode when no external memory is required, or
to one of two different external memory access modes, which are as follows:
– 16-/18-/20-/22-bit Addresses, 16-bit Data, Multiplexed
– 16-/18-/20-/22-bit Addresses, 8-bit Data, Multiplexed
Important timing characteristics of the external bus interface (Memory Cycle Time, Memory Tri-
State Time, Length of ALE and Read Write Delay) have been m ade programmable to allow the user
the adaption of a wide range of different types of memories and external peripherals.
In addition, up to 4 independent address windows may be defined (via register pairs ADDRSELx /
BUSCONx) which allow to access different resources with different bus characteristics. These
address windows are arranged hierarchically where BUSCON4 overrides BUSCON3 and
BUSCON2 overrides BUSCON1. All accesses to location s not covered by these 4 address wind ows
are controlled by BUSCON0.
For applications which require less than 4 MBytes of external memory space, this address space
can be restricted to 1 MByte, 256 KByte or to 64 KByte. In this case Port 4 outputs four, two or no
address lines at all. It outputs all 6 address lines, if an address space of 4 MBytes is used.
Note: When the on-chip CAN Module is to be used the segment address output on Port 4 must be
limited to 4 bits (ie. A19...A16) in order to enable the alternate function of the CAN interface
pins.
Semiconductor Group111998-02
C164CI
Central Processing Unit (CPU)
The main core of the CPU consists of a 4-stage instruction pi peline, a 16-bit arithmetic and logic unit
(ALU) and dedicated SFRs. Additional hardware has been spent for a separate mu ltipl y and d ivide
unit, a bit-mask generator and a barrel shifter.
Based on these hardware provisions, most of the C164CI’s instructions can be exec uted in just one
machine cycle which requires 100 ns at 20-MHz CPU clock. For example, shift and rotate
instructions are always processed during one machine cycle independent of the number of bits to
be shifted. All multiple-cycl e instructions have been optimized s o that they can be executed very fast
as well: branches in 2 cycles, a 16 × 16 bit multiplication in 5 cycles and a 32-/16 bit division in
10 cycles. Another pipeline optimization, the so-called ‘Jump Cach e’, allows reducing the exe cution
time of repeatedly performed jumps in a loop from 2 cycles to 1 cycle.
The CPU disposes of an actual register context consisting of up to 16 wordwide GPRs which are
physically allocated within the on-chip RAM area. A Context Pointer (CP) register determines the
base address of the active register bank to be accessed by the CPU at a time. The number of
register banks is only restricted by the available internal RAM space. For easy parameter passing,
a register bank may overlap others.
A system stack of up to 2048 bytes is provided as a storage for temporary data. The system stack
is allocated in the on-chip RAM area, and it is accessed by the CPU via the stack pointer (SP)
register. Two separate SFRs, STKOV and STKUN, are implicitly compared against the stack
pointer value upon each stack access for the detection of a stack overflow or underflow.
The high performance offered by the hardware implem entation of the CPU can efficiently be utilized
by a programmer via the highly efficient C164CI instruction set which includes the following
instruction classes:
– Arithmetic Instructions
– Logical Instructions
– Boolean Bit Manipulation Instructions
– Compare and Loop Control Instructions
– Shift and Rotate Instructions
– Prioritize Instruction
– Data Movement Instructions
– System Stack Instructions
– Jump and Call Instructions
– Return Instructions
– System Control Instructions
– Miscellaneous Instructions
The basic instruction length is either 2 or 4 bytes. Possible op erand types are bits, by tes and words.
A variety of direct, indirect or immediate addressing modes are provided to specify the required
operands.
Semiconductor Group131998-02
C164CI
Interrupt System
With an interrupt response time within a range from just 250 ns to 600 ns (in case of internal
program execution), the C164CI is capable of reacting very fast to the occurrence of nondeterministic events.
The architecture of the C164CI supports several mechanisms for fast and flexible response to
service requests that can be generated from various sources internal or external to the
microcontroller. Any of these interrupt requests can be programmed to being serviced by the
Interrupt Controller or by the Peripheral Event Controller (PEC).
In contrast to a standard interrupt service where the current program execution is suspended and
a branch to the interrupt vector table is performed, just one cycle is ‘stolen’ from the current CPU
activity to perform a PEC service. A PEC service implies a single byte or word dat a transfer between
any two memory locations with an additional increment of either the PEC source or the destination
pointer. An individual PEC transfer counter is implicity decremented for each PEC service except
when performing in the continuous transfer mode. When this counter reaches zero, a standard
interrupt is performed to the corresponding source related vector location. PEC services are very
well suited, for example, for supporting the transmi ssion or reception of b locks of data. The C164CI
has 8 PEC channels each of which offers such fast interrupt-driven data transfer capabilities.
A separate control register which contains an interrupt request fla g, an interrupt enable flag and an
interrupt priority bitfield exists for each of the possible interrupt sources. Via its related regis ter, each
source can be programmed to one of sixteen interrupt priority levels. Once having been accepted
by the CPU, an interrupt service can only be interrupted by a higher prioritize d service reques t. For
the standard interrupt processing, each of the possible interrupt sources has a dedicated vector
location.
Fast external interrupt inputs are provided to service external interrupts with high precision
requirements. These fast interrupt inputs feature program mable ed ge detecti on (rising edge, fa lling
edge or both edges).
Software interrupts are supported by means of the ‘TRAP’ instruction in combination with an
individual trap (interrupt) number.
The following table shows all of the possible C164CI interrupt sources and the corresponding
hardware-related interrupt flags, vectors, vector locations and trap (interrupt) numbers:
Source of Interrupt or PEC
Service Request
Fast External Interrupt 0CC8IRCC8IECC8INT00’0060
Fast External Interrupt 1CC9IRCC9IECC9INT00’0064
Fast External Interrupt 2CC10IECC10IECC10INT00’0068
Fast External Interrupt 3CC11IECC11IECC11INT00’006C
GPT1 Timer 2T2IRT2IET2INT00’0088
GPT1 Timer 3T3IRT3IET3INT00’008C
The C164CI also provides an excellent mechanism to identify and to process exceptions or error
conditions that arise during run-time, so-cal led ‘Hardware Trap s’. Ha rdware traps c ause im mediate
non-maskable system reaction which is similar to a standard interrupt service (branching to a
dedicated vector table location). The occurence of a hardware trap is additionally signified by an
individual bit in the trap flag register (TFR). Except when another higher prioritize d trap service is in
progress, a hardware trap will interrupt any actual program execution. In turn, hardware trap
services can normally not be interrupted by standard or PEC interrupts.
The following table shows all of the possible exceptions or error condit ions that can arise during runtime: