Z8 Family of Microcontrollers
Z8 CPU
User Manual
UM001602-0904
ZiLOG Worldwide Headquarters • 532 Race Street • San Jose, CA 95126 Telephone: 408.558.8500 • Fax: 408.558.8300 • www.ZiLOG.com
Z8 Family of Microcontrollers
User Manual
ii
This publication is subject to replacement by a later edition. To determine whether a later edition exists, or to request copies of publications, contact:
ZiLOG Worldwide Headquarters
532 Race Street San Jose, CA 95126
Telephone: 408.558.8500 Fax: 408.558.8300 www.ZiLOG.com
Document Disclaimer
ZiLOG is a registered trademark of ZiLOG Inc. in the United States and in other countries. All other products and/or service names mentioned herein may be trademarks of the companies with which they are associated.
©2004 by ZiLOG, Inc. All rights reserved. Information in this publication concerning the devices, applications, or technology described is intended to suggest possible uses and may be superseded. ZiLOG, INC. DOES NOT ASSUME LIABILITY FOR OR PROVIDE A REPRESENTATION OF ACCURACY OF THE INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED IN THIS DOCUMENT. ZiLOG ALSO DOES NOT ASSUME LIABILITY FOR INTELLECTUAL PROPERTY INFRINGEMENT RELATED IN ANY MANNER TO USE OF INFORMATION, DEVICES, OR TECHNOLOGY DESCRIBED HEREIN OR OTHERWISE. Devices sold by ZiLOG, Inc. are covered by warranty and limitation of liability provisions appearing in the ZiLOG, Inc. Terms and Conditions of Sale. ZiLOG, Inc. makes no warranty of merchantability or fitness for any purpose Except with the express written approval of ZiLOG, use of information, devices, or technology as critical components of life support systems is not authorized. No licenses are conveyed, implicitly or otherwise, by this document under any intellectual property rights.
UM001602-0904
Z8 CPU
User Manual
iii
Each instance in Table 1 reflects a change to this document from its previous revision. To see more detail, click the appropriate link in the table.
Table 1. Revision History of this Document
|
Revision |
|
|
|
Date |
Level |
Section |
Description |
Page # |
|
|
|
|
|
Sept. |
02 |
Formatted to current publication standards |
All |
|
2004 |
|
|
|
|
|
|
|
|
|
UM001602-0904 |
Revision History |
Z8 Family of Microcontrollers
User Manual
iv
Revision History |
UM001602-0904 |
Z8 CPU
User Manual
v
Revision History. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
List of Figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Z8 CPU Product Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Product Development Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Z8 CPU Standard Register File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
General-Purpose Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
RAM Protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Working Register Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Z8 Expanded Register File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Z8 Control and Peripheral Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Standard Z8 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Expanded Z8 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Program Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Z8 External Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
External Data Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Z8 Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Clock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Frequency Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Clock Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
SCLK ÷ TCLK Divide-By-16 Select . . . . . . . . . . . . . . . . . . . . . . . . . 34
External Clock Divide-By-Two . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Oscillator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
UM001602-0904 |
Table of Contents |
Z8 Family of Microcontrollers
User Manual
vi
Oscillator Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Indications of an Unreliable Design . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Circuit Board Design Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Crystals and Resonators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
LC Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
RC Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Reset Pin, Internal POR Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Watch–Dog Timer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Power-On-Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
I/O Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Mode Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Input and Output Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Port 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
General I/O Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Read/Write Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Handshake Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Port 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
General I/O Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Read/Write Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Handshake Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Port 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
General Port I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Read/Write Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Handshake Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Port 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
General Port I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Read/Write Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Special Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Port Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Table of Contents |
UM001602-0904 |
Z8 CPU
User Manual
vii
I/O Port Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Full Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Analog Comparators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Comparator Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Comparator Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Comparator Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Comparator Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Run Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Halt Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Open-Drain Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Low EMI Emission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Input Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Z8 CMOS Autolatches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Autolatch Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Design Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Counters and Timers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
115 |
Prescalers and Counter/Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
117 |
Counter/Timer Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
120 |
Load and Enable Count Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
120 |
Prescaler Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
122 |
TOUT Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
124 |
TIN Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
127 |
External Clock Input Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
129 |
Gated Internal Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
129 |
Triggered Input Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
130 |
Retriggerable Input Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
131 |
Cascading Counter/Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
132 |
Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
132 |
UM001602-0904 |
Table of Contents |
Z8 Family of Microcontrollers
User Manual
viii
Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Interrupt Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
External Interrupt Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Internal Interrupt Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Interrupt Request Register Logic and Timing . . . . . . . . . . . . . . . . . . . . . 141
Interrupt Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Interrupt Priority Register Initialization . . . . . . . . . . . . . . . . . . . . . . 143
Interrupt Mask Register Initialization . . . . . . . . . . . . . . . . . . . . . . . . 145
Interrupt Request Register Initialization . . . . . . . . . . . . . . . . . . . . . . 147
IRQ Software Interrupt Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Vectored Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Vectored Interrupt Cycle Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Nesting of Vectored Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Polled Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Power-Down Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Halt Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Stop Mode Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Stop-Mode Recovery Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Serial Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
UART Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
UART Bit-Rate Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
UART Receiver Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Receiver Shift Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Overwrites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Framing Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Transmitter Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Overwrites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Parity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
UART Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Table of Contents |
UM001602-0904 |
Z8 CPU
User Manual
ix
Serial Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
SPI Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
SPI Compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
SPI Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Receive Character Available and Overrun . . . . . . . . . . . . . . . . . . . . . . . 182
External Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Pin Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
External Addressing Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
External Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Data Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Bus Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Address Strobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Data Strobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Extended Bus Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Instruction Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Z8 Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Instruction Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Processor Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Carry Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Zero Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Sign Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Overflow Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Decimal Adjust Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Half Carry Flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Condition Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Notation and Binary Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Assembly Language Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Z8 Instruction Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Op Code Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
UM001602-0904 |
Table of Contents |
Z8 Family of Microcontrollers
User Manual
x
Instruction Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Customer Feedback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Table of Contents |
UM001602-0904 |
Z8 CPU
User Manual
xi
List of Figures |
|
|
Figure 1. |
Z8 CPU Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 3 |
Figure 2. |
16-Bit Register Addressing . . . . . . . . . . . . . . . . . . . . . . . . . |
9 |
Figure 3. |
Accessing Individual Bits (Example) . . . . . . . . . . . . . . . . . |
9 |
Figure 4. |
Working Register Addressing Examples . . . . . . . . . . . . . |
12 |
Figure 5. |
Register Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
Figure 6. |
Expanded Register File Architecture . . . . . . . . . . . . . . . . |
15 |
Figure 7. |
Register Pointer Example . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
Figure 8. |
Z8 Program Memory Map . . . . . . . . . . . . . . . . . . . . . . . . |
27 |
Figure 9. |
External Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
Figure 10. |
Stack Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
30 |
Figure 11. |
Stack Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
Figure 12. |
Z8® CPU Clock Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . |
33 |
Figure 13. |
Stop-Mode Recovery Register . . . . . . . . . . . . . . . . . . . . . |
34 |
Figure 14. |
External Clock Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
35 |
Figure 15. |
Port Configuration Register . . . . . . . . . . . . . . . . . . . . . . . |
36 |
Figure 16. |
Pierce Oscillator with Internal Feedback Circuit . . . . . . . |
37 |
Figure 17. |
Circuit Board Design Rules . . . . . . . . . . . . . . . . . . . . . . . |
40 |
Figure 18. |
Crystal/Ceramic Resonator Oscillator . . . . . . . . . . . . . . . . |
41 |
Figure 19. |
LC Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
Figure 20. |
External Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
Figure 21. |
RC Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Figure 22. |
Reset Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
49 |
UM001602-0904 |
List of Figures |
Z8 Family of Microcontrollers
User Manual
xii
Figure 23. Example of External Power-On Reset Circuit . . . . . . . . . . |
50 |
|
Figure 24. Example of Z8 Reset with RESET Pin, WDT, SMR, |
|
|
|
and POR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
Figure 25. Example of Z8 Reset with WDT, SMR, and POR . . . . . . |
54 |
|
Figure 26. Example of Z8 Watch–Dog Timer Mode Register . . . . . . |
56 |
|
Figure 27. Example of Z8 with Simple SMR and POR . . . . . . . . . . . |
59 |
|
Figure 28. I/O Ports and Mode Registers . . . . . . . . . . . . . . . . . . . . . . |
62 |
|
Figure 29. Ports 0, 1, 2 Generic Block Diagram . . . . . . . . . . . . . . . . |
64 |
|
Figure 30. Port 0 Configuration with Open-Drain Capability, |
|
|
|
Autolatch, and Schmitt-Trigger . . . . . . . . . . . . . . . . . . . . . |
66 |
Figure 31. Port 0 Configuration with TTL Level Shifter . . . . . . . . . . |
67 |
|
Figure 32. Port 0 I/O Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
69 |
|
Figure 33. Port 0 Handshake Operation . . . . . . . . . . . . . . . . . . . . . . . |
69 |
|
Figure 34. Port 1 Configuration with Open-Drain Capability, |
|
|
|
Autolatch, and Schmitt-Trigger . . . . . . . . . . . . . . . . . . . . . |
70 |
Figure 35. Port 1 Configuration with TTL Level Shifter . . . . . . . . . . |
71 |
|
Figure 36. Port 1 I/O Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
72 |
|
Figure 37. |
Handshake Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
73 |
Figure 38. Port 2 I/O Mode Configuration . . . . . . . . . . . . . . . . . . . . . |
74 |
|
Figure 39. Port 2 Configuration with Open-Drain Capability, |
|
|
|
Autolatch, and Schmitt-Trigger . . . . . . . . . . . . . . . . . . . . . |
75 |
Figure 40. Port 2 Configuration with TTL Level Shifter . . . . . . . . . . |
76 |
|
Figure 41. Port 2 Configuration with Open-Drain Capability, |
|
|
|
Autolatch, Schmitt-Trigger and SPI . . . . . . . . . . . . . . . . . |
77 |
Figure 42. |
Port 2 Handshake Configuration . . . . . . . . . . . . . . . . . . . . |
79 |
List of Figures |
UM001602-0904 |
Z8 CPU
User Manual
xiii
Figure 43. Port 2 Handshaking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 79 |
|
Figure 44. Port 3 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 81 |
|
Figure 45. Port 3 Configuration with Comparator, Autolatch, and |
|
|
|
Schmitt-Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 83 |
Figure 46. Port 3 Configuration with Comparator . . . . . . . . . . . . . . |
. 84 |
|
Figure 47. Port 3 Configuration with SPI and Comparator Outputs |
. 86 |
|
Figure 48. Port 3 Configuration with TTL Level Shifter and |
|
|
|
Autolatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 87 |
Figure 49. Port 3 Mode Register Configuration . . . . . . . . . . . . . . . . |
. 88 |
|
Figure 50. Z8 Input Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 92 |
|
Figure 51. Z8 Output Handshake . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 93 |
|
Figure 52. Output Strobed Handshake on Port 2 . . . . . . . . . . . . . . . |
. 94 |
|
Figure 53. Input Strobed Handshake on Port 2 . . . . . . . . . . . . . . . . |
. 94 |
|
Figure 54. Port 0/1 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 96 |
|
Figure 55. |
Port 2 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 97 |
Figure 56. Port 3 Mode Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 98 |
|
Figure 57. Port 3 Input Analog Selection . . . . . . . . . . . . . . . . . . . . . |
. 99 |
|
Figure 58. Port 3 Comparator Output Selection . . . . . . . . . . . . . . . . |
100 |
|
Figure 59. Port Configuration of Comparator Inputs on P31, P32, |
|
|
|
and P33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
101 |
Figure 60. Port 3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
102 |
|
Figure 61. Port 2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
105 |
|
Figure 62. Port Configuration Register . . . . . . . . . . . . . . . . . . . . . . |
106 |
|
Figure 63. Diode Input Protection . . . . . . . . . . . . . . . . . . . . . . . . . . |
109 |
|
Figure 64. |
OTP Diode Input Protection . . . . . . . . . . . . . . . . . . . . . . |
110 |
UM001602-0904 |
List of Figures |
Z8 Family of Microcontrollers
User Manual
xiv
Figure 65. Simplified CMOS Z8 I/O Circuit . . . . . . . . . . . . . . . . . . 111 Figure 66. Autolatch Equivalent Circuit . . . . . . . . . . . . . . . . . . . . . . 113 Figure 67. Effect of Pulldown Resistors on Autolatches . . . . . . . . . 114 Figure 68. Counter/Timer Block Diagram . . . . . . . . . . . . . . . . . . . . 116 Figure 69. Counter/Timer Register Map . . . . . . . . . . . . . . . . . . . . . . 118 Figure 70. Prescaler 0 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Figure 71. Prescaler 1 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Figure 72. Counter/Timer 0 and 1 Registers . . . . . . . . . . . . . . . . . . . 119 Figure 73. Timer Mode Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Figure 74. Starting The Count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Figure 75. Counting Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Figure 76. Timer Mode Register (TOUT Operation) . . . . . . . . . . . . . 124 Figure 77. Port 3 Mode Register (TOUT Operation) . . . . . . . . . . . . . 125 Figure 78. T0 and T1 Output Through TOUT . . . . . . . . . . . . . . . . . . 126 Figure 79. Internal Clock Output Through TOUT . . . . . . . . . . . . . . . 127 Figure 80. Timer Mode Register (TIN Operation) . . . . . . . . . . . . . . 128 Figure 81. Prescaler 1 Register (TIN Operation) . . . . . . . . . . . . . . . . 128 Figure 82. External Clock Input Mode . . . . . . . . . . . . . . . . . . . . . . . 129 Figure 83. Gated Clock Input Mode . . . . . . . . . . . . . . . . . . . . . . . . . 130 Figure 84. Triggered Clock Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Figure 85. Cascaded Counter/Timers . . . . . . . . . . . . . . . . . . . . . . . . 132 Figure 86. Counter/Timer Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Figure 87. Prescaler 1 Register Reset . . . . . . . . . . . . . . . . . . . . . . . . 133 Figure 88. Prescaler 0 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
List of Figures |
UM001602-0904 |
Z8 CPU
User Manual
xv
Figure 89. |
Timer Mode Register Reset . . . . . . . . . . . . . . . . . . . . . . |
135 |
Figure 90. |
Interrupt Control Registers . . . . . . . . . . . . . . . . . . . . . . . |
137 |
Figure 91. |
Interrupt Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . |
138 |
Figure 92. |
Interrupt Sources IRQ0-IRQ2 Block Diagram . . . . . . . . |
140 |
Figure 93. |
Interrupt Source IRQ3 Block Diagram . . . . . . . . . . . . . . |
141 |
Figure 94. |
IRQ Register Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
142 |
Figure 95. |
Interrupt Request Timing . . . . . . . . . . . . . . . . . . . . . . . . |
143 |
Figure 96. |
Interrupt Priority Register . . . . . . . . . . . . . . . . . . . . . . . . |
144 |
Figure 97. |
Interrupt Mask Register . . . . . . . . . . . . . . . . . . . . . . . . . . |
146 |
Figure 98. |
Interrupt Request Register . . . . . . . . . . . . . . . . . . . . . . . . |
148 |
Figure 99. |
IRQ Reset Functional Logic Diagram . . . . . . . . . . . . . . . |
149 |
Figure 100. |
Effects of an Interrupt on the Stack . . . . . . . . . . . . . . . . . |
151 |
Figure 101. |
Interrupt Vectoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
152 |
Figure 102. |
Z8 Interrupt Acknowledge Timing . . . . . . . . . . . . . . . . . |
153 |
Figure 103. |
Stop-Mode Recovery Register . . . . . . . . . . . . . . . . . . . . |
160 |
Figure 104. |
Stop-Mode Recovery Source . . . . . . . . . . . . . . . . . . . . . |
163 |
Figure 105. |
UART Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . |
165 |
Figure 106. |
Port 3 Mode Register and Bit-Rate Generation . . . . . . . |
167 |
Figure 107. |
Bit Rate Divide Chain . . . . . . . . . . . . . . . . . . . . . . . . . . . |
167 |
Figure 108. |
Prescaler 0 Register Bit-Rate Generation . . . . . . . . . . . . |
169 |
Figure 109. |
Timer Mode Register Bit Rate Generation . . . . . . . . . . . |
169 |
Figure 110. |
Receiver Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
171 |
Figure 111. |
Receiver Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . . |
172 |
Figure 112. |
Port 3 Mode Register Parity . . . . . . . . . . . . . . . . . . . . . . |
173 |
UM001602-0904 |
List of Figures |
Z8 Family of Microcontrollers
User Manual
xvi
Figure 113. Transmitter Data Formats . . . . . . . . . . . . . . . . . . . |
. . . . . 175 |
Figure 114. SIO Register Reset . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 175 |
Figure 115. P3M Register Reset . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 176 |
Figure 116. SPI Control Register . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 178 |
Figure 117. SPI System Configuration . . . . . . . . . . . . . . . . . . . |
. . . . . 181 |
Figure 118. SPI Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 182 |
Figure 119. SPI Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 183 |
Figure 120. SPI Data In/Out Configuration . . . . . . . . . . . . . . . |
. . . . . 184 |
Figure 121. SPI Clock/SPI Slave Select Output Configuration |
. . . . . 185 |
Figure 122. Z8 CPU External Interface Pins . . . . . . . . . . . . . . |
. . . . . 187 |
Figure 123. External Address Configuration . . . . . . . . . . . . . . |
. . . . . 190 |
Figure 124. Z8 Stack Selection . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 191 |
Figure 125. Port 3 Data Memory Operation . . . . . . . . . . . . . . . |
. . . . . 192 |
Figure 126. External Instruction Fetch or Memory Read Cycle |
. . . . . 193 |
Figure 127. External Memory Write Cycle . . . . . . . . . . . . . . . . |
. . . . . 194 |
Figure 128. Extended External Instruction Fetch or Memory Read |
|
Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 196 |
Figure 129. Extended External Memory Write Cycle . . . . . . . |
. . . . . 197 |
Figure 130. Extended Bus Timing . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 198 |
Figure 131. Instruction Cycle Timing (1-Byte Instructions) . . |
. . . . . 199 |
Figure 132. Instruction Cycle Timing (2- and 3-Byte Instructions) . . 200 |
|
Figure 133. Z8 Flag Register . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 205 |
Figure 134. Op Code Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . 222 |
List of Figures |
UM001602-0904 |
Z8 CPU
User Manual
xvii
Table 1. |
Revision History of this Document . . . . . . . . . . . . . . . . . |
. . iii |
Table 2. |
ZiLOG General-Purpose Microcontroller Product Family . 4 |
|
Table 3. |
Z8 Standard Register File . . . . . . . . . . . . . . . . . . . . . . . . |
. . 7 |
Table 4. |
Working Register Groups . . . . . . . . . . . . . . . . . . . . . . . . |
. 11 |
Table 5. |
ERF Bank Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 17 |
Table 6. |
Register Pointer Access Example . . . . . . . . . . . . . . . . . . |
. 18 |
Table 7. |
ERF Bank C Access Example . . . . . . . . . . . . . . . . . . . . . |
. 20 |
Table 8. |
Z8 Expanded Register File Bank Layout . . . . . . . . . . . . |
. 20 |
Table 9. |
Expanded Register File Register Bank C . . . . . . . . . . . . |
. 23 |
Table 10. |
Expanded Register File Bank 0 . . . . . . . . . . . . . . . . . . . . |
. 24 |
Table 11. |
Expanded Register File Bank F . . . . . . . . . . . . . . . . . . . . |
. 25 |
Table 12. |
Crystal/Resonator Characteristics . . . . . . . . . . . . . . . . . . |
. 41 |
Table 13. |
Sample Control and Peripheral Register Reset Values |
|
|
(ERF Bank 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 48 |
Table 14. |
Expanded Register File Bank 0 Reset Values at RESET |
. 51 |
Table 15. |
Sample Expanded Register File Bank C Reset Values . . |
. 51 |
Table 16. |
Sample Expanded Register File Bank F Reset Values . . . 52 |
|
Table 17. |
Time-Out Period of the WDT . . . . . . . . . . . . . . . . . . . . . |
. 57 |
Table 18. |
Port 3 Line Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. 89 |
Table 19. |
Interrupt Types, Sources, and Vectors . . . . . . . . . . . . . . |
139 |
Table 20. |
Interrupt Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
144 |
Table 21. |
Interrupt Group Priority . . . . . . . . . . . . . . . . . . . . . . . . . |
145 |
Table 22. |
IRQ Register Configuration . . . . . . . . . . . . . . . . . . . . . . |
149 |
Table 23. |
Stop-Mode Recovery Source . . . . . . . . . . . . . . . . . . . . . |
161 |
Table 24. |
UART Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
166 |
Table 25. |
Bit Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
168 |
UM001602-0904 |
List of Tables |
Z8 Family of Microcontrollers
User Manual
xviii
Table 26. SPI Pin Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Table 27. Load Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 Table 28. Arithmetic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Table 29. Logical Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Table 30. Program Control Instructions . . . . . . . . . . . . . . . . . . . . . 202 Table 31. Bit Manipulation Instructions . . . . . . . . . . . . . . . . . . . . . 203 Table 32. Block Transfer Instructions . . . . . . . . . . . . . . . . . . . . . . . 203 Table 33. Rotate and Shift Instructions . . . . . . . . . . . . . . . . . . . . . . 204 Table 34. CPU Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . 204 Table 35. Z8 Flag Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Table 36. Flag Settings Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 208 Table 37. Condition Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Table 38. Notational Shorthand . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Table 39. Additional Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Table 40. Summary of Z8 Instruction Set . . . . . . . . . . . . . . . . . . . . 213 Table 41. Summary of Z8 Address Modes . . . . . . . . . . . . . . . . . . . 221 Table 42. Process Manipulation Functions . . . . . . . . . . . . . . . . . . . 223
List of Tables |
UM001602-0904 |
Z8 CPU
User Manual
1
The ZiLOG Z8 microcontroller (MCU) product line continues to expand with new product introductions. ZiLOG MCU products are targeted for cost-sensitive, high-volume applications including consumer, automotive, security, and HVAC. It includes ROM-based products geared for highvolume production (where software is stable) and one-time programmable (OTP) equivalents for prototyping as well as volume production where time to market or code flexibility is critical (see Table 1 on page 4). A variety of packaging options are available including plastic DIP, SOIC, PLCC, and QFP.
A generalized Z8 CPU® block diagram is shown in Figure 1. The same on-chip peripherals are used across the MCU product line with the primary differences being the amount of ROM/RAM, number of I/O lines present, and packaging/temperature ranges available. This allows code written for one MCU device to be easily ported to another family member.
General-Purpose Register File. Every RAM register acts like an accumulator, speeding instruction execution and maximizing coding efficiency. Working register groups allow fast context switching.
Flexible I/O. I/O byte, nibble, and/or bit programmable as inputs or outputs. Outputs are software programmable as open-drain or push–pull on a port basis. Inputs are Schmitt-triggered with autolatches to hold unused inputs at a known voltage state.
Analog Inputs. Three input pins are software programmable as digital or analog inputs. When in analog mode, two comparator inputs are provided with a common reference input. These inputs are ideal for a variety of common functions, including threshold level detection, analog-to-digital
UM001602-0904 |
Z8 CPU Product Overview |
Z8 Family of Microcontrollers
User Manual
2
conversion, and short circuit detection. Each analog input provides a unique maskable interrupt input.
Timer/Counter. The Timer/Counter (T/C) consists of a programmable 6- bit prescaler and 8-bit downcounter, with maskable interrupt upon end-of- count. Software controls T/C load/start/stop, countdown read (at any time on the fly), and maskable end-of-count interrupt. Special functions available include TIN (external counter input, external gate input, or external trigger input) and TOUT (external access to timer output or the internal system clock.) These special functions allow accurate hardware input pulse measurement and output waveform generation.
Interrupts. There are six vectored interrupt sources with software-pro- grammable enable and priority for each of the six sources.
Watch–Dog Timer. An internal Watch–Dog Timer (WDT) circuit is included as a fail-safe mechanism so that if software strays outside the bounds of normal operation, the WDT will time-out and reset the MCU. To maximize circuit robustness and reliability, the default WDT clock source is an internal RC circuit (isolated from the device clock source).
Auto Reset/Low-Voltage Protection. All family devices have internal Power-On Reset. ROM devices add low-voltage protection. Low-voltage protection ensures the MCU is in a known state at all times (in active RUN mode or RESET) without external hardware (or a device reset pin).
Low-EMI Operation. Mode is programmable via software or as a mask option. This new option provides for reduced radiated emission via clock and output drive circuit changes.
Low-Power. CMOS with two standby modes; STOP and HALT.
Full Z8 Instruction Set. Forty-eight basic instructions, supported by six addressing modes with the ability to operate on bits, nibbles, bytes, and words.
Z8 CPU Product Overview |
UM001602-0904 |
Output Input
Port 3
Counter/
Timers (2)
Interrupt
Control
Analog
Comparators
(2)
Port 2
I/O
(Bit Programmable)
Z8 CPU
User Manual
3
VCC GND
ALU
FLAG
Register
Pointer
Register File
256 x 8-Bit
Port 0
44
Address or I/O (Nibble Programmable)
XTAL AS DS R/W RESET
Machine Timing
& Instruction Control
RESET, WDT,
POR
Prg. Memory 512/K x 8-Bit
Program
Counter
Port 1
8
Address/Data or I/O (Byte Programmable)
Figure 1. Z8 CPU Block Diagram
UM001602-0904 |
Z8 CPU Product Overview |
Z8 Family of Microcontrollers
User Manual
4
The Z8® MCU product line is fully supported with a range of cross assemblers, C compilers, ICEBOX emulators, single and gang OTP/ EPROM programmers, and software simulators.
The Z86CCP01ZEM low-cost Z8 CCP™ real-time emulator/programmer kit was designed specifically to support all of the products outlined in Table 1.
Table 1. ZiLOG General-Purpose Microcontroller Product Family
|
ROM/ |
|
|
|
|
|
|
|
|
Speed |
Pin |
Product |
RAM |
I/0 |
T/C |
AN |
INT |
WDT |
POR |
VBO |
RC |
(MHz) |
Count |
Z86C03 |
512/60 |
14 |
1 |
2 |
6 |
F |
Y |
Y |
Y |
8 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E03 |
512/60 |
14 |
1 |
2 |
6 |
F |
Y |
N |
Y |
8 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86C04 |
1K/124 |
14 |
2 |
2 |
6 |
F |
Y |
Y |
Y |
8 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E04 |
1K/124 |
14 |
2 |
2 |
6 |
F |
Y |
N |
Y |
8 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86C06 |
1K/124 |
14 |
2 |
2 |
6 |
P |
Y |
Y |
Y |
12 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E06 |
1K/124 |
14 |
2 |
2 |
6 |
P |
Y |
N |
Y |
12 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86C08 |
2K/124 |
14 |
2 |
2 |
6 |
F |
Y |
Y |
Y |
12 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E08 |
2K/124 |
14 |
2 |
2 |
6 |
F |
Y |
N |
Y |
12 |
18 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86C30 |
4K/236 |
24 |
2 |
2 |
6 |
P |
Y |
Y |
Y |
12 |
28 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E30 |
4K/236 |
24 |
2 |
2 |
6 |
P |
Y |
N |
Y |
12 |
28 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86C31 |
2K/124 |
24 |
2 |
2 |
6 |
P |
Y |
Y |
Y |
8 |
28 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E31 |
2K/124 |
24 |
2 |
2 |
6 |
P |
Y |
N |
Y |
8 |
28 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86C40 |
4K/236 |
32 |
2 |
2 |
6 |
P |
Y |
Y |
Y |
16 |
40/44 |
|
|
|
|
|
|
|
|
|
|
|
|
Z86E40 |
4K/236 |
32 |
2 |
2 |
6 |
P |
Y |
N |
Y |
16 |
40/44 |
*Note: Z86Cxx signify ROM devices; 86xx signify EPROM devices; F = fixed; P = programmable
Z8 CPU Product Overview |
UM001602-0904 |
Z8 CPU
User Manual
5
The Z86CCP01ZEM kit comes with:
•Z8 CCP Evaluation Board
•Z8 CCP Power Cable
•ZiLOG Developer’s Studio (ZDS) CD-ROM , Including WindowsBased GUI Host Software
•1999 ZiLOG Technical Library
•Z8 CCP User Manual
A Z8 CCP Emulator Accessory Kit (Z8CCP00ZAC) is also available and provides an RS-232 cable and power cable along with the 28and 40pin ZIF sockets and 28and 40pin target connector cables required to emulate/program 28/40 pin devices.
UM001602-0904 |
Z8 CPU Product Overview |
Z8 Family of Microcontrollers
User Manual
6
Z8 CPU Product Overview |
UM001602-0904 |
Z8 CPU
User Manual
7
Four address spaces are available for the Z8® CPU:
•The Z8® Standard Register File contains addresses for peripheral, control, all general-purpose, and all I/O port registers. This is the default register file specification.
•The Z8® Expanded Register File (ERF) contains addresses for control and data registers for additional peripherals/features.
•Z8 external program memory contains addresses for all memory locations having executable code and/or data.
•Z8 external data memory contains addresses for all memory locations that hold data only, whether internal or external.
The Z8® Standard Register File totals up to 256 consecutive bytes (Registers). The register file consists of 4 I/O ports (00h–03h), 236 GeneralPurpose Registers (04h–EFh), and 16 control registers (F0h–FFh). Table 2 shows the layout of the register file, including register names, locations, and identifiers.
Table 2. Z8 Standard Register File
Hex Address |
Register Identifier |
Register Description |
|
|
|
FF |
SPL |
Stack Pointer Low Byte |
|
|
|
FE |
SPH |
Stack Pointer High Byte |
|
|
|
FD |
RP |
Register Pointer |
UM001602-0904 |
Address Space |
Z8 Family of Microcontrollers
User Manual
8
Table 2. Z8 Standard Register File (Continued)
Hex Address |
Register Identifier |
Register Description |
|
|
|
FC |
FLAGS |
Program Control Flags |
|
|
|
FB |
IMR |
Interrupt Mask Register |
|
|
|
FA |
IRQ |
Interrupt Request Register |
|
|
|
F9 |
IPR |
Interrupt Priority Register |
|
|
|
F8 |
P01M |
Port 0–1 Mode Register |
|
|
|
F7 |
P3M |
Port 3 Mode Register |
|
|
|
F6 |
P2M |
Port 2 Mode Register |
|
|
|
F5 |
PRE0 |
T0 Prescaler |
|
|
|
F4 |
T0 |
Timer/Counter 0 |
|
|
|
F3 |
PRE1 |
T1 Prescaler |
|
|
|
F2 |
T1 |
Timer/Counter 1 |
|
|
|
F1 |
TMR |
Timer Mode |
|
|
|
F0 |
SIO |
Serial I/O |
|
|
|
EF |
R239 |
|
|
|
|
General-Purpose Registers (GPR) |
|
|
04 |
R4 |
|
|
|
|
03 |
P3 |
Port 3 |
|
|
|
02 |
P2 |
Port 2 |
|
|
|
01 |
P1 |
Port 1 |
|
|
|
00 |
P0 |
Port 0 |
|
|
|
Registers can be accessed as either 8-bit or 16-bit registers using Direct, Indirect, or Indexed Addressing. All 236 general-purpose registers can be
Address Space |
UM001602-0904 |
Z8 CPU
User Manual
9
referenced or modified by any instruction that accesses an 8-bit register, without the requirement for special instructions. Registers accessed as 16 bits are treated as even-odd register pairs (there are 118 valid pairs). In this case, the data’s Most Significant Byte (MSB) is stored in the even numbered register, while the Least Significant Byte (LSB) goes into the next higher odd numbered register. See Figure 2.
MSB LSB
Rn Rn+1
n = Even Address
Figure 2. 16-Bit Register Addressing
By using a logical instruction and a mask, individual bits within registers can be accessed for bit set, bit clear, bit complement, or bit test operations. For example, the instruction AND R15, MASK performs a bit clear operation. Figure 3 shows this example.
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
R15 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MASK |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
0 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
AND R15, DFh |
|
|
;Clear Bit 5 of Working Register 15 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R15 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 3. Accessing Individual Bits (Example)
UM001602-0904 |
Address Space |
Z8 Family of Microcontrollers
User Manual
10
When instructions are executed, registers are read when defined as sources and written when defined as destinations. All General-Purpose Registers function as accumulators, address pointers, index registers, stack areas, or scratch pad memory.
General-Purpose Registers (GPR) are undefined after the device is powered up. The registers keep their last value after any reset, as long as the reset occurs in the VCC voltage-specified operating range. It will not keep its last state from a VLV reset if VCC drops below 1.8v.
Note: Registers in Bank E0-EF may only be accessed through the working register and indirect addressing modes. Direct access cannot be used because the 4-bit working register address mode already uses the format [E | dst], where dst represents the working register number from 0h to Fh.
The upper portion of the register file address space 80h to EFh (excluding the control registers) may be protected from reading and writing. The RAM Protect bit option is mask-programmable and is selected by the customer when the ROM code is submitted. After the mask option is selected, the user activates this feature from the internal ROM code to turn off/on the RAM Protect by loading either a 0 or 1 into the IMR register, bit D6. A 1 in D6 enables RAM Protect. Only devices that use registers 80h to EFh offer this feature.
Z8 instructions can access 8-bit registers and register pairs (16-bit words) using either 4-bit or 8-bit address fields. 8-bit address fields refer to the actual address of the register. For example, Register 58h is accessed by calling upon its 8-bit binary equivalent, 01011000 (58h).
With 4-bit addressing, the register file is logically divided into 16 Working Register Groups of 16 registers each, as shown in Table 3. These 16
Address Space |
UM001602-0904 |
Z8 CPU
User Manual
11
registers are known as Working Registers. A Register Pointer (one of the control registers, FDh) contains the base address of the active Working Register Group. The high nibble of the Register Pointer determines the current Working Register Group.
When accessing one of the Working Registers, the 4-bit address of the Working Register is combined within the upper four bits (high nibble) of the Register Pointer, thus forming the 8-bit actual address. Figure 4 illustrates this operation. Because working registers are typically specified by short format instructions, there are fewer bytes of code required, which reduces execution time. In addition, when processing interrupts or changing tasks, the Register Pointer speeds context switching. A special Set Register Pointer (SRP) instruction sets the contents of the Register Pointer.
Table 3. Working Register Groups
Register Pointer |
Working Register |
Actual Registers |
(FDh) High Nibble |
Group (Hex) |
(Hex) |
|
|
|
1111b |
F |
F0–FF |
|
|
|
1110b |
E |
E0–EF |
|
|
|
1101b |
D |
D0–DF |
|
|
|
1100b |
C |
C0–CF |
|
|
|
1011b |
B |
B0–BF |
|
|
|
1010b |
A |
A0–AF |
|
|
|
1001b |
9 |
90–9F |
|
|
|
1000b |
8 |
80–8F |
|
|
|
0111b |
7 |
70–7F |
|
|
|
0110b |
6 |
60–6F |
|
|
|
0101b |
5 |
50–5F |
|
|
|
0100b |
4 |
40–4F |
UM001602-0904 |
Address Space |
Z8 Family of Microcontrollers
User Manual
12
Table 3. Working Register Groups (Continued)
Register Pointer |
Working Register |
Actual Registers |
(FDh) High Nibble |
Group (Hex) |
(Hex) |
|
|
|
0011b |
3 |
30–3F |
|
|
|
0010b |
2 |
20–2F |
|
|
|
0001b |
1 |
10–1F |
|
|
|
0000b |
0 |
00–0F |
|
|
|
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
Register Pointer (FDh), Standard Register File |
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
INC R6 (instruction, short format) |
|
|
|
|
|
|
|
|
|
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
Actual register address (76h) |
|
|
|
|
|
|
|
|
|
Figure 4. Working Register Addressing Examples
Address Space |
UM001602-0904 |