EZ80F91AZ050EG [IXYS]
Microcontroller, 8-Bit, FLASH, Z80 CPU, 50MHz, CMOS, PQFP144, LQFP-144;型号: | EZ80F91AZ050EG |
厂家: | IXYS CORPORATION |
描述: | Microcontroller, 8-Bit, FLASH, Z80 CPU, 50MHz, CMOS, PQFP144, LQFP-144 时钟 微控制器 外围集成电路 |
文件: | 总384页 (文件大小:2298K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
An
Company
eZ80Acclaim!® Flash Microcontrollers
eZ80F91 MCU
Product Specification
PS019215-0910
®
Copyright ©2010 by Zilog , Inc. All rights reserved.
www.zilog.com
DO NOT USE IN LIFE SUPPORT
Warning:
LIFE SUPPORT POLICY
ZILOG'S PRODUCTS ARE NOT AUTHORIZED FOR USE AS CRITICAL COMPONENTS IN LIFE
SUPPORT DEVICES OR SYSTEMS WITHOUT THE EXPRESS PRIOR WRITTEN APPROVAL OF
THE PRESIDENT AND GENERAL COUNSEL OF ZILOG CORPORATION.
As used herein
Life support devices or systems are devices which (a) are intended for surgical implant into the body, or (b)
support or sustain life and whose failure to perform when properly used in accordance with instructions for
use provided in the labeling can be reasonably expected to result in a significant injury to the user. A
critical component is any component in a life support device or system whose failure to perform can be
reasonably expected to cause the failure of the life support device or system or to affect its safety or
effectiveness.
Document Disclaimer
©2010 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. The information contained within this
document has been verified according to the general principles of electrical and mechanical engineering.
eZ80, Z80, and eZ80Acclaim! are registered trademarks of Zilog, Inc. All other product or service names
are the property of their respective owners.
PS019215-0910
eZ80F91 MCU
Product Specification
iii
Revision History
Each instance in the Revision History reflects a change to this document from its previous
revision. For more details, refer to the corresponding pages or appropriate links given in
the table below.
Revision
Level
Page
Number
Date
Section
Description
September 15
2010
All
Updated logos and copyright date.
All
August
2008
14
Ordering Information
Updated Part Number Description
section.
360
May 2008 13
Introduction, Figure 48, ZDI- Replaced ZPAK II with USB Smart
231, 232,
and 233
Supported Protocol, and
Figure 49
Cable
September 12
2007
General-Purpose Input/
Output, Flash Memory,
Universal Asynchronous
Updated Table 1, Figure 6, Flash
Program Control Register, UART
Transmitter, Figure 40, Table 93, I2C 176, 201,
4, 53,
112,174,
Receiver/Transmitter, Serial Registers and Ordering Information. 223, and 359
Peripheral Interface, Real-
Time Clock Control Register,
2
I C Serial I/O Interface, Pin
Description, and Ordering
Information.
February
2007
11
Register Map, GPIO Mode 7—Alternate Functions, Register Map - 27, 45, 54,
Table 3. Low-Power Modes, Electrical Characteristics chapters.
Updated Table 93.
339
PS019215-0910
Revision History
eZ80F91 MCU
Product Specification
iv
Revision
Level
Page
Number
Date
Section
Description
June 2006 10
Global modifications
Updated for new release.
All
Pin Identification on the
eZ80F91 Device
Table 3: The description of the
following pins modified: pins 55, 61,
63 and 69
6
General-Purpose Input/
Output
GPIO chapter totally rewritten
49
65
97
Chip Selects and Wait
States
Input/Output chip select operation
modified
Flash Memory
The following sections are modified in
Flash memory chapter: Erasing Flash
memory, Information page
characteristics, Flash Write/Erase
protection register, Flash program
control registers, and Table 43.
Real-Time Clock Overview Added a note in real time clock
overview section
159
175
Universal Asynchronous
Receiver/Transmitter
Table 102 and 109 modified
Infrared Encoder/Decoder
Control Registers
The field [7:4] modified in Table 111
199
231
Zilog Debug Interface
Updated the Introduction section,
Added two paragraphs to ZDI Read
Memory Registers
On-Chip Oscillators
On page 349, Figure 63
336
Recommended Crystal Oscillator
Configuration, the value of inductance
L is changed to 3.3 H
On page 351, Table 232, changed
serial resistance value from 40 k to
50 k
POR and VBO Electrical
Characteristics
In Table 235: Min, Typ, and Max
values of VBO voltage threshold
341
359
modified and added IS
parameter
por_vbo
Ordering Information
Ordering information modified
PS019215-0910
Revision History
eZ80F91 MCU
Product Specification
v
Table of Contents
Architectural Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Pin Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
System Clock Source Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
eZ80® CPU Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
New Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
External Reset Input and Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Power-On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Voltage Brownout Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
SLEEP Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
HALT Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Clock Peripheral Power-Down Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
General-Purpose Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
GPIO Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
GPIO Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
GPIO Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Maskable Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
GPIO Port Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Chip Selects and Wait States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Memory and I/O Chip Selects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Memory Chip Select Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Input/Output Chip Select Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Wait States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
WAIT Input Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Chip Selects During Bus Request/Bus Acknowledge Cycles . . . . . . . . . . . . . . . 70
PS019215-0910
Table of Contents
eZ80F91 MCU
Product Specification
vi
Bus Mode Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
eZ80® Bus Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Z80® Bus Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Intel Bus Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Motorola Bus Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Chip Select Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Bus Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Random Access Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
RAM Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Flash Memory Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Reading Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Memory Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Programming Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Erasing Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Information Page Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Flash Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Watchdog Timer Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Watchdog Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Programmable Reload Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Basic Timer Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Specialty Timer Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Timer Port Pin Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Multi-PWM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
PWM Master Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Modification of Edge Transition Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
AND/OR Gating of the PWM Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
PWM Nonoverlapping Output Pair Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Multi-PWM Power-Trip Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Multi-PWM Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Real-Time Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Real-Time Clock Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
PS019215-0910
Table of Contents
eZ80F91 MCU
Product Specification
vii
Real-Time Clock Alarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Real-Time Clock Oscillator and Source Selection . . . . . . . . . . . . . . . . . . . . . . . 160
Real-Time Clock Battery Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Real-Time Clock Recommended Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Real-Time Clock Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Universal Asynchronous Receiver/Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . 175
UART Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
UART Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
UART Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
UART Recommended Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Baud Rate Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
BRG Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
UART Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Infrared Encoder/Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Transmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Infrared Encoder/Decoder Signal Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Loopback Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Serial Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
SPI Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
SPI Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
SPI Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
SPI Baud Rate Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Data Transfer Procedure with SPI Configured as a Master . . . . . . . . . . . . . . . 205
Data Transfer Procedure with SPI Configured as a Slave . . . . . . . . . . . . . . . . 206
SPI Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
I2C Serial I/O Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
I2C General Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Transferring Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Clock Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
I2C Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
PS019215-0910
Table of Contents
eZ80F91 MCU
Product Specification
viii
Zilog Debug Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
ZDI-Supported Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
ZDI Clock and Data Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
ZDI Start Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
ZDI Register Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
ZDI Write Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
ZDI Read Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Operation of the eZ80F91 Device during ZDI Break Points . . . . . . . . . . . . . . . 238
Bus Requests During ZDI Debug Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
ZDI Write Only Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
ZDI Read Only Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
ZDI Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
On-Chip Instrumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Introduction to On-Chip Instrumentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
OCI Activation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
OCI Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
JTAG Boundary Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Phase-Locked Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
PLL Normal Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Power Requirement to the Phase-Locked Loop Function . . . . . . . . . . . . . . . . . 268
PLL Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
PLL Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
eZ80® CPU Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Opcode Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Ethernet Media Access Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
EMAC Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
EMAC Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
EMAC Shared Memory Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
EMAC and the System Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
EMAC Operation in HALT Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
EMAC Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
EMAC Interpacket Gap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
PS019215-0910
Table of Contents
eZ80F91 MCU
Product Specification
ix
On-Chip Oscillators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Primary Crystal Oscillator Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
32 kHz Real-Time Clock Crystal Oscillator Operation . . . . . . . . . . . . . . . . . . . 337
Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
DC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
POR and VBO Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Flash Memory Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Current Consumption Under Various Operating Conditions . . . . . . . . . . . . . . . 341
AC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
External Memory Read Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
External Memory Write Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
External I/O Read Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
External I/O Write Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Wait State Timing for Read Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Wait State Timing for Write Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
General-Purpose Input/Output Port Input Sample Timing . . . . . . . . . . . . . . . . . 354
General-Purpose I/O Port Output Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
External Bus Acknowledge Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Part Number Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
PS019215-0910
Table of Contents
eZ80F91 MCU
Product Specification
1
Architectural Overview
Zilog’s eZ80F91 device is a member of Zilog’s family of eZ80Acclaim!® Flash micro-
controllers. The eZ80F91 is a high-speed microcontroller with a maximum clock speed
of 50 MHz and single-cycle instruction fetch. It operates in Z80®-compatible address-
ing mode (64 KB) or full 24-bit addressing mode (16 MB). The rich peripheral set of the
eZ80F91 makes it suitable for a variety of applications, including industrial control,
embedded communication, and point-of-sale terminals.
Features
Key features of eZ80F91 device include:
•
•
Single-cycle instruction fetch, high-performance, pipelined eZ80® CPU core
(referred as The CPU in this document)
10/100 BaseT ethernet media access controller with Media-Independent
Interface (MII)
•
•
•
256 KB Flash memory
16 KB SRAM (8 KB user and 8 KB Ethernet)
Low-power features including SLEEP mode, HALT mode, and selective peripheral
power-down control
•
Two Universal Asynchronous Receiver/Transmitter (UART) with independent Baud
Rate Generators (BRG)
•
•
•
•
Serial Peripheral Interface (SPI) with independent clock rate generator
I2C with independent clock rate generator
IrDA-compliant infrared encoder/decoder
Glueless external peripheral interface with 4 Chip Selects, individual Wait State
generators, an external WAIT input pin—supports Z80-, Intel-, and Motorola-style
buses
•
•
Fixed-priority vectored interrupts (both internal and external) and interrupt controller
Real-time clock with separate VDD pin for battery backup and selectable on-chip
32 kHz oscillator or external 50/60 Hz input
•
•
•
•
Four 16-bit Counter/Timers with prescalers and direct input/output drive
Watchdog Timer with internal oscillator clocking option
32 bits of General-Purpose Input/Output (GPIO)
On-Chip Instrumentation (OCI™) and Zilog Debug Interfaces (ZDI)
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
2
•
•
•
•
IEEE 1149.1-compatible JTAG
144-pin LQFP and BGA packages
3.0 V to 3.6 V supply voltage with 5 V tolerant inputs
Operating Temperature Range:
–
–
Standard: 0 ºC to +70 ºC
Extended: –40 ºC to +105 ºC
All signals with an overline are active Low. For example, the signal DCD1 is active when
Note:
it is a logical 0 (Low) state.
The power connections conventions are provided in the table below.
Connection
Power
Circuit
Device
V
V
V
CC
DD
SS
Ground
GND
Block Diagram
Figure 1 on page 3 displays a block diagram of the eZ80F91 microcontroller.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
3
MII Interface
Signals (18)
Ethernet
MAC
8KB
SRAM
Arbiter
RTC_VDD
RTC_XIN
Real-Time
Clock and
32 KHz
Oscillator
RTC_XOUT
BUSACK
BUSREQ
INSTRD
IORQ
MREQ
RD
Bus
Controller
SCL
SDA
I2C
Serial
Interface
WR
NMI
SCK
SS
SPI
Serial
Parallel
Interface
eZ80
CPU
HALT_SLP
MISO
MOSI
256KB
Flash
Memory
JTAG/ZDI
Debug
Interface
JTAG/ZDI Signals (5)
WP
WAIT
Chip Select
and
Wait State
Generator
CTS0/1
DSR0/1
DCD0/1
DTR0/1
RI0/1
Interrupt
CS0
CS1
CS2
CS3
Vector
(8:0)
UART
Universal
Asynchronous
Receiver/
Transmitter
(2)
8KB
SRAM
Interrupt
Controller
RTS0/1
RxD0/1
TxD0/1
DATA[7:0]
ADDR[23:0]
WDT
Watch-Dog
Timer
Internal
RC
Osc.
GPIO
8-Bit General-
Purpose
I/O Port
Crystal
Oscillator
PLL, and
System Clock
Generator
Programmable
Reload
Timer/Counter
(4)
IrDA
Encoder/
Decoder
(4)
POR/VBO
RESET
Figure 1. eZ80F91 Block Diagram
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
4
Pin Description
Table 1 lists the pin configuration of the eZ80F91 device in the 144-BGA package.
Table 1. eZ80F91 144-BGA Pin Configuration
12
11
10
9
8
7
6
5
4
3
2
1
A SDA SCL PA0
PA4
PA3
PA5
PA7
COL
TxD3
TxD2
TxD0
V
Rx_DV MDC WPn
RxD1 MDIO A2
A0
A1
DD
B
C
V
PHI PA1
V
Tx_EN
Tx_CLK
V
SS
SS
DD
PB6 PB7
V
V
Rx_
CLK
RxD3
A3
V
V
DD
DD
SS
SS
D
E
F
PB1 PB3 PB5
PC7 PB0
PC3 PC4 PC5
V
CRS
PA2
PB2
PC6
TxD1
Tx_ER
PA6
Rx_ER
RxD0
A9
RxD2
A5
A4
A8
A6
A7
SS
V
PB4
A11
A15
A20
V
V
A10
A12
A16
DD
SS
DD
V
A17
A23
A14
A13
SS
G
V
PC0 PC1
PC2
PLL_
V
V
V
DD
SS
OUT
SS
SS
SS
V
SS
H X
X
PLL_
V
PD7
TMS
V
D5
V
A21
A19
A18
A22
DD
SS
SS
IN
V
DD
J
V
V
LOOP PD4 TRIGOUT
RTC_
NMIn
WRn
D2
CS0n
V
DD
DD
FILT_
OUT
V
DD
K PD5 PD6 PD3
TDI
V
V
RESETn RDn
V
D1
D4
CS2n CS1n
D0 CS3n
SS
DD
DD
L
PD1 PD2 TRSTn TCK
RTC_ BUSACKn WAITn MREQn D6
XOUT
M PD0
V
TDO HALT
RTC_ BUSREQn INSTRDn IORQn
XIN
D7
D3
V
V
DD
SS
SS
_
SLPn
Note: Lowercase n suffix indicates an active-low signal in this table only
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
5
Figure 2 displays the pin layout of the eZ80F91 device in the 144-pin LQFP package.
108 V
SS
1
A0
A1
A2
A3
A4
PB7/MOSI
PB6/MISO
PB5/IC3
PB4/IC2
PB3/SCK
V
DD
PB2/SS
PB1/IC1
V
SS
A5
A6
100 PB0/IC0/EC0
V
V
SS
A7 10
A8
DD
PC7/RI1
PC6/DCD1
PC5/DSR1
PC4/DTR1
PC3/CTS1
PC2/RTS1
PC1/RxD1
90 PC0/TxD1
A9
A10
V
DD
V
SS
A11
A12
A13
A14
A15 20
A16
144-Pin LQFP
V
V
SS
DD
PLL_V
DD
V
DD
X
X
IN
V
SS
OUT
A17
A18
A19
A20
A21
A22
A23 30
PLL_V
SS
LOOP_FILT
V
V
SS
DD
80 PD7/RI0
PD6/DCD0
PD5/DSR0
PD4/DTR0
PD3/CTS0
V
DD
V
SS
CS0
CS1
PD2/RTS0
PD1/RxD0/IR_RxD
73 PD0/TxD0/IR_TxD
CS2
CS3 36
Figure 2. 144-Pin LQFP Configuration of the eZ80F91
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
6
Pin Characteristics
Table 2 lists the pins and functions of the eZ80F91 MCU’s 144-pin LQFP package and
144-BGA package.
Table 2. Pin Identification on the eZ80F91 Device
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
1
2
3
4
5
A1
B1
B2
C3
D4
ADDR0
ADDR1
ADDR2
ADDR3
ADDR4
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Configured as an output in normal
operation. The address bus selects a
location in memory or I/O space to be
read or written. Configured as an input
during bus acknowledge cycles.
Drives the Chip Select/Wait State
Generator block to generate Chip
Selects.
6
C1
C2
E5
D2
D1
D3
F6
E1
E2
E3
E4
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
7
8
ADDR5
ADDR6
ADDR7
ADDR8
ADDR9
ADDR10
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Power Supply
Ground
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Configured as an output in normal
operation. The address bus selects a
location in memory or I/O space to be
read or written. Configured as an input
during bus acknowledge cycles.
Drives the Chip Select/Wait State
Generator block to generate Chip
Selects.
9
10
11
12
13
14
15
16
V
V
Power Supply.
Ground.
DD
SS
ADDR11
Address Bus
Bidirectional
Configured as an output in normal
operation. The address bus selects a
location in memory or I/O space to be
read or written. Configured as an input
during bus acknowledge cycles.
Drives the Chip Select/Wait State
Generator block to generate Chip
Selects.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
7
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
17
18
19
20
21
F1
F2
F3
F4
G1
ADDR12
ADDR13
ADDR14
ADDR15
ADDR16
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Configured as an output in normal
operation. The address bus selects a
location in memory or I/O space to be
read or written. Configured as an input
during bus acknowledge cycles.
Drives the Chip Select/Wait State
Generator block to generate Chip
Selects.
22
23
24
25
26
27
28
29
30
31
32
33
G2
G3
F5
H1
H2
G4
H3
J1
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
ADDR17
ADDR18
ADDR19
ADDR20
ADDR21
ADDR22
ADDR23
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Address Bus
Power Supply
Ground
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Configured as an output in normal
operation. The address bus selects a
location in memory or I/O space to be
read or written. Configured as an input
during bus acknowledge cycles.
Drives the Chip Select/Wait State
Generator block to generate Chip
Selects.
G5
J2
V
V
Power Supply.
Ground.
DD
SS
H4
J3
CS0
CS1
CS2
CS3
Chip Select 0 Output, Active
Low
CS0 Low indicates that an access is
occurring in the defined CS0 memory
or I/O address space.
34
35
36
K1
K2
L1
Chip Select 1 Output, Active
Low
CS1 Low indicates that an access is
occurring in the defined CS1 memory
or I/O address space.
Chip Select 2 Output, Active
Low
CS2 Low indicates that an access is
occurring in the defined CS2 memory
or I/O address space.
Chip Select 3 Output, Active
Low
CS3 Low indicates that an access is
occurring in the defined CS3 memory
or I/O address space.
37
38
M1
M2
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
8
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Data Bus
Data Bus
Data Bus
Data Bus
Data Bus
Data Bus
Data Bus
Data Bus
Power Supply
Ground
Signal Direction Description
39
40
41
42
43
44
45
46
47
48
49
L2
DATA0
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
Bidirectional
The data bus transfers data to and
from I/O and memory devices. The
eZ80F91 drives these lines only
during Write cycles when the
eZ80F91 is the bus master.
K3
J4
M3
L3
H5
L4
M4
K4
G6
M5
V
V
Power Supply.
Ground.
DD
SS
IORQ
Input/Output
Request
Bidirectional,
Active Low
IORQ indicates that the CPU is
accessing a location in I/O space. RD
and WR indicate the type of access.
The eZ80F91 device does not drive
this line during RESET. It is an input
during bus acknowledge cycles.
50
L5
MREQ
Memory
Request
Bidirectional,
Active Low
MREQ Low indicates that the CPU is
accessing a location in memory. The
RD, WR, and INSTRD signals indicate
the type of access. The eZ80F91
device does not drive this line during
RESET. It is an input during bus
acknowledge cycles.
51
52
K5
J5
RD
Read
Write
Output,
Active Low
RD Low indicates that the eZ80F91
device is reading from the current
address location. This pin is in a high-
impedance state during bus
acknowledge cycles.
WR
Output, Active
Low
WR indicates that the CPU is writing
to the current address location. This
pin is in a high-impedance state
during bus acknowledge cycles.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
9
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
Output, Active INSTRD (with MREQ and RD)
indicates the eZ80F91 device is
53
54
55
M6
INSTRD
Instruction
Read Indicator Low
fetching an instruction from memory.
This pin is in a high-impedance state
during bus acknowledge cycles.
L6
WAIT
WAIT Request Schmitt-trigger
Driving the WAIT pin Low forces the
input, Active Low CPU to wait additional clock cycles for
an external peripheral or external
memory to complete its Read or Write
operation.
K6
RESET
Reset
Bidirectional,
Active Low
Schmitt-trigger
input or open
drain output
This signal is used to initialize the
eZ80F91, and/or allow the ez80F91 to
signal when it resets. See reset
section for the timing details. This
Schmitt-trigger input allows for RC rise
times.
56
J6
NMI
Nonmaskable Schmitt-trigger
Interrupt
The NMI input is a higher priority input
input, Active Low, than the maskable interrupts. It is
edge-triggered
interrupt
always recognized at the end of an
instruction, regardless of the state of
the interrupt enable control bits. This
input includes a Schmitt- trigger to
allow for RC rise times.
57
58
M7
L7
BUSREQ
BUSACK
Bus Request Schmitt-trigger
External devices request the eZ80F91
input, Active Low device to release the memory
interface bus for their use by driving
this pin Low.
Bus
Output, Active
The eZ80F91 device responds to a
Low on BUSREQ making the address,
data, and control signals high
impedance, and by driving the
BUSACK line Low. During bus
acknowledge cycles ADDR[23:0],
IORQ, and MREQ are inputs.
Acknowledge Low
59
60
K7
H6
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
10
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
61
M8
RTC_X
Real-Time
Clock Crystal
Input
Input
This pin is the input to the low-power
32 kHz crystal oscillator for the Real-
time clock. If the Real-time clock is
disabled or not used, this input must
be left floating or tied to VSS to
IN
minimize any input current leakage.
62
L8
RTC_X
Real-Time
Clock Crystal
Output
Bidirectional
This pin is the output from the low-
power 32 kHz crystal oscillator for the
Real-Time Clock. This pin is an input
when the RTC is configured to
operate from 50/60 Hz input clock
signals and the 32 kHz crystal
oscillator is disabled.
OUT
63
J7
RTC_V
Real-Time
Clock Power
Supply
Power supply for the Real-Time Clock
and associated 32 kHz oscillator.
Isolated from the power supply to the
remainder of the chip. A battery is
connected to this pin to supply
DD
constant power to the Real-Time
Clock and 32 kHz oscillator. If the
Real-time clock is disabled or not
used this output must be tied to Vdd.
64
65
K8
V
Ground
Ground.
SS
M9
HALT_SLP HALT and
SLEEP
Output, Active
Low
A Low on this pin indicates that the
CPU has entered either HALT or
SLEEP mode because of execution of
either a HALT or SLP instruction.
Indicator
66
67
68
69
H7
L9
J8
TMS
JTAG Test
Mode Select
Input
JTAG Mode Select Input.
TCK
JTAG Test
Clock
Input
JTAG and ZDI clock input.
Active High trigger event indicator.
TRIGOUT
TDI
JTAG Test
Trigger Output
Output
Bidirectional
K9
JTAG Test
Data In
JTAG data input pin. Functions as ZDI
data I/O pin when JTAG is disabled.
This pin has an internal pull-up
resistor in the pad.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
11
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
70
71
M10
L10
TDO
JTAG Test
Data Out
Output
JTAG data output pin.
JTAG reset input pin.
TRST
JTAG Reset
Schmitt-trigger
input, Active Low
72
73
M11
M12
V
Ground
Ground.
SS
PD0
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
TxD0
IR_TxD
PD1
UART
Transmit Data
Output
This pin is used by the UART to
transmit asynchronous serial data.
This signal is multiplexed with PD0.
IrDA Transmit Output
Data
This pin is used by the IrDA encoder/
decoder to transmit serial data. This
signal is multiplexed with PD0.
74
L12
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
RxD0
Receive Data Input
This pin is used by the UART to
receive asynchronous serial data.
This signal is multiplexed with PD1.
IR_RxD
IrDA Receive Input
Data
This pin is used by the IrDA encoder/
decoder to receive serial data. This
signal is multiplexed with PD1.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
12
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
75
76
77
L11
K10
J9
PD2
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
RTS0
PD3
Request to
Send
Output,
Active Low
Modem control signal from UART.
This signal is multiplexed with PD2.
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
CTS0
PD4
Clear to Send Input, Active Low Modem status signal to the UART.
This signal is multiplexed with PD3.
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
DTR0
Data Terminal Output,
Ready Active Low
Modem control signal to the UART.
This signal is multiplexed with PD4.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
13
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
78
79
80
K12
K11
H8
PD5
GPIO Port D
Bidirectional This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
DSR0
PD6
Data Set
Ready
Input, Active Low Modem status signal to the UART.
This signal is multiplexed with PD5.
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
DCD0
PD7
Data Carrier
Detect
Input, Active Low Modem status signal to the UART.
This signal is multiplexed with PD6.
GPIO Port D
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port D pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port D is multiplexed
with one UART.
RI0
Ring Indicator Input, Active Low Modem status signal to the UART.
This signal is multiplexed with PD7.
81
82
83
84
85
J11
J12
J10
G7
V
V
Power Supply
Ground
Power Supply.
DD
SS
Ground.
LOOP_FILT PLL Loop Filter Analog
Loop Filter pin for the Analog PLL.
Ground for Analog PLL.
PLL_V
Ground
SS
H12
X
System Clock Output
Oscillator
This pin is the output of the onboard
crystal oscillator. When used, a crystal
OUT
Output
must be connected between X and
IN
X
OUT
.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
14
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
86
H11
X
System Clock Input
Oscillator Input
This pin is the input to the onboard
crystal oscillator for the primary
IN
system clock. If an external oscillator
is used, its clock output must be
connected to this pin. When a crystal
is used, it must be connected between
X
and X
.
IN
OUT
87
88
89
90
H10
H9
PLL_V
Power Supply
Power Supply
Ground
Power Supply for Analog PLL.
Power Supply.
DD
V
V
DD
SS
G12
G11
Ground.
PC0
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
TxD1
PC1
Transmit Data Output
This pin is used by the UART to
transmit asynchronous serial data.
This signal is multiplexed with PC0.
91
G10
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
RxD1
Receive Data Schmitt-trigger
input
This pin is used by the UART to
receive asynchronous serial data.
This signal is multiplexed with PC1.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
15
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
92
93
94
G9
PC2
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
RTS1
PC3
Request to
Send
Output, Active
Low
Modem control signal from UART.
This signal is multiplexed with PC2.
F12
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
CTS1
PC4
Clear to Send Schmitt-trigger
Modem status signal to the UART.
input, Active Low This signal is multiplexed with PC3.
F11
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
DTR1
Data Terminal Output, Active
Ready Low
Modem control signal to the UART.
This signal is multiplexed with PC4.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
16
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
95
96
97
F10
PC5
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
DSR1
PC6
Data Set
Ready
Schmitt-trigger
Modem status signal to the UART.
input, Active Low This signal is multiplexed with PC5.
G8
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
DCD1
PC7
Data Carrier
Detect
Schmitt-trigger
Modem status signal to the UART.
input, Active Low This signal is multiplexed with PC6.
E12
GPIO Port C
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port C pin,
when programmed as output is
selected to be an open-drain or open-
source output. Port C is multiplexed
with one UART.
RI1
Ring Indicator Schmitt-trigger
Modem status signal to the UART.
input, Active Low This signal is multiplexed with PC7.
98
99
E11
F9
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
17
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
100
E10
PB0
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
IC0
Input Capture Schmitt-trigger
input
Input Capture A Signal to Timer 1.
This signal is multiplexed with PB0.
EC0
PB1
Event Counter Schmitt-trigger
input
Event Counter Signal to Timer 1. This
signal is multiplexed with PB0.
101
D12
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
IC1
Input Capture Schmitt-trigger
input
Input Capture B Signal to Timer 1.
This signal is multiplexed with PB1.
102
F8
PB2
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
SS
SPI Slave
Select
Schmitt-trigger
input, Active Low select a slave device in SPI mode.
This signal is multiplexed with PB2.
The slave select input line is used to
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
18
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
103
D11
PB3
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
SCK
PB4
SPI Serial
Clock
Bidirectional with SPI serial clock. This signal is
Schmitt-trigger
input
multiplexed with PB3.
104
E9
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
IC2
Input Capture Schmitt-trigger
input
Input Capture A Signal to Timer 3.
This signal is multiplexed with PB4.
105
D10
PB5
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
IC3
Input Capture Schmitt-trigger
input
Input Capture B Signal to Timer 3.
This signal is multiplexed with PB5.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
19
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
106
C12
PB6
GPIO Port B
Bidirectional with This pin is be used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
MISO
PB7
SPI Master-In/ Bidirectional with The MISO line is configured as an
Slave-Out
Schmitt-trigger
input
input when the eZ80F91 device is an
SPI master device and as an output
when eZ80F91 is an SPI slave device.
This signal is multiplexed with PB6.
107
C11
GPIO Port B
Bidirectional with This pin is used for GPIO. It is
Schmitt-trigger
input
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port B pin,
when programmed as output is
selected to be an open-drain or open-
source output.
MOSI
SPI Master Out Bidirectional with The MOSI line is configured as an
Slave In
Schmitt-trigger
input
output when the eZ80F91 device is an
SPI master device and as an input
when the eZ80F91 device is an SPI
slave device. This signal is
multiplexed with PB7.
108
109
110
B12
A12
A11
V
Ground
Ground.
SS
2
2
SDA
SCL
I C Serial Data Bidirectional
This pin carries the I C data signal.
2
I C Serial
Clock
Bidirectional
This pin is used to receive and
transmit the I C clock.
2
111
B11
PHI
System Clock Output
This pin is an output driven by the
internal system clock. It is used by the
system for synchronization with the
eZ80F91 device.
112
113
C10
D9
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
20
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
114
115
116
A10
B10
E8
PA0
GPIO Port A
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM0
OC0
PWM
Output 0
Output
Output
This pin is used by Timer 3 for PWM
0. This signal is multiplexed with PA0.
Output
Compare 0
This pin is used by Timer 3 for Output
Compare 0. This signal is multiplexed
with PA0.
PA1
GPIO Port A
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM1
OC1
PWM
Output 1
Output
Output
This pin is used by Timer 3 for PWM
1. This signal is multiplexed with PA1.
Output
Compare 1
This pin is used by Timer 3 for Output
Compare 1. This signal is multiplexed
with PA1.
PA2
GPIO Port A
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM2
OC2
PWM
Output 2
Output
Output
This pin is used by Timer 3 for PWM
2. This signal is multiplexed with PA2.
Output
Compare 2
This pin is used by Timer 3 for Output
Compare 2. This signal is multiplexed
with PA2.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
21
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
117
B9
PA3
GPIO Port A
Bidirectional This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM3
OC3
PWM Output 3 Output
This pin is used by Timer 3 for PWM
3. This signal is multiplexed with PA3.
Output
Output
This pin is used by Timer 3 for Output
Compare 3 This signal is multiplexed
with PA3.
Compare 3
118
A9
PA4
GPIO Port A
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM0
TOUT0
PA5
PWM Output 0 Output
Inverted
This pin is used by Timer 3 for
negative PWM 0. This signal is
multiplexed with PA4.
Timer Out
Output
This pin is used by Timer 0 timer-out
signal. This signal is multiplexed with
PA4.
119
C9
GPIO Port A
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM1
TOUT2
PWM Output 1 Output
Inverted
This pin is used by Timer 3 for
negative PWM 1. This signal is
multiplexed with PA5.
Timer Out
Output
This pin is used by the Timer 2 timer-
out signal. This signal is multiplexed
with PA5.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
22
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
120
F7
PA6
GPIO Port A
Bidirectional This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM2
PWM Output 2 Output
Inverted
This pin is used by Timer 3 for
negative PWM 2. This signal is
multiplexed with PA6.
EC1
PA7
Event Counter Input
Event Counter Signal to Timer 2. This
signal is multiplexed with PA6.
121
A8
GPIO Port A
Bidirectional
This pin is used for GPIO. It is
individually programmed as input or
output and is also used individually as
an interrupt input. Each Port A pin,
when programmed as output is
selected to be an open-drain or open-
source output.
PWM3
PWM Output 3 Output
Inverted
This pin is used by Timer 3 for
negative PWM 3. This signal is
multiplexed with PA7.
122
123
124
B8
C8
D8
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
CRS
MII Carrier
Sense
Input
This pin is used by the EMAC for the
MII Interface to the PHY (physical
layer). Carrier Sense is an
asynchronous signal.
125
126
A7
B7
COL
MII Collision
Detect
Input
This pin is used by the EMAC for the
MII Interface to the PHY. Collision
Detect is an asynchronous signal.
TxD3
MII Transmit
Data
Output
This pin is used by the EMAC for the
MII Interface to the PHY. Transmit
Data is synchronous to the rising-
edge of Tx_CLK.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
23
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
127
128
129
130
131
C7
D7
A6
B6
C6
TxD2
MII Transmit
Data
Output
Output
Output
Output
Input
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Transmit Data is synchronous to the
rising-edge of Tx_CLK.
TxD1
MII Transmit
Data
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Transmit Data is synchronous to the
rising-edge of Tx_CLK.
TxD0
MII Transmit
Data
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Transmit Data is synchronous to the
rising-edge of Tx_CLK.
Tx_EN
Tx_CLK
MII Transmit
Enable
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Transmit Enable is synchronous to the
rising-edge of Tx_CLK.
MII Transmit
Clock
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Transmit Clock is the Nibble or
Symbol Clock provided by the MII
PHY interface.
132
E7
Tx_ER
MII Transmit
Error
Output
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Transmit Error is synchronous to the
rising-edge of Tx_CLK.
133
134
135
A5
B5
D6
V
V
Power Supply
Ground
Power Supply.
Ground.
DD
SS
Rx_ER
MII Receive
Error
Input
Input
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Error is provided by the MII
PHY interface synchronous to the
rising-edge of Rx_CLK.
136
C5
Rx_CLK
MII Receive
Clock
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Clock is the Nibble or Symbol
Clock provided by the MII PHY
interface.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
24
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
137
138
139
140
141
142
A4
E6
B4
D5
C4
A3
Rx_DV
RxD0
RxD1
RxD2
RxD3
MDC
MII Receive
Data Valid
Input
Input
Input
Input
Input
Output
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Data Valid is provided by the
MII PHY interface synchronous to the
rising-edge of Rx_CLK.
MII Receive
Data
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Data is provided by the MII
PHY interface synchronous to the
rising-edge of Rx_CLK.
MII Receive
Data
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Data is provided by the MII
PHY interface synchronous to the
rising-edge of Rx_CLK.
MII Receive
Data
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Data is provided by the MII
PHY interface synchronous to the
rising-edge of Rx_CLK.
MII Receive
Data
This pin is used by the Ethernet MAC
for the MII Interface to the PHY.
Receive Data is provided by the MII
PHY interface synchronous to the
rising-edge of Rx_CLK.
MII
This pin is used by the Ethernet MAC
for the MII Management Interface to
the PHY. The Ethernet MAC provides
the MII Management Data Clock to
the MII PHY interface.
Management
Data Clock
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
25
Table 2. Pin Identification on the eZ80F91 Device (Continued)
LQFP BGA
Pin No Pin No Symbol
Function
Signal Direction Description
143
B3
MDIO
MII
Bidirectional
This pin is used by the Ethernet MAC
for the MII Management Interface to
the PHY. The Ethernet MAC sends
and receives the MII Management
Data to and from the MII PHY
interface.
Management
Data
144
A2
WP
Write Protect Schmitt-trigger
The Write Protect input is used by the
input, Active Low Flash Controller to protect the Boot
Block from Write and ERASE
operations.
System Clock Source Options
The following section describes the system clock source options.
System Clock—The eZ80F91 device’s internal clock, SCLK, is responsible for clocking
all internal logic. The SCLK source can be an external crystal oscillator, an internal PLL,
or an internal 32 kHz RTC oscillator. The SCLK source is selected by PLL Control Regis-
ter 0. RESET default is provided by the external crystal oscillator. For more details on
CLK_MUX values in the PLL Control Register 0, see Table 154 on page 269.
PHI—PHI is a device output driven by SCLK that is used for system synchronization to
the eZ80F91 device. PHI is used as the reference clock for all AC characteristics, see
page 344.
External Crystal Oscillator—An externally-driven oscillator operates in two modes. In
one mode, the XIN pin is driven by a oscillator from DC up to 50 MHz when the XOUT pin
is not connected. In the other mode, the XIN and XOUT pins are driven by a crystal circuit.
Crystals recommended by Zilog® are defined to be a 50 MHz–3 overtone circuit or 1–10
MHz range fundamental for PLL operation. For details, see On-Chip Oscillators on page
335.
Real Time Clock—An internal 32 kHz real-time clock crystal oscillator driven by either
the on-chip 32768 Hz crystal oscillator or a 50/60 Hz power-line frequency input. While
intended for timekeeping, the RTC 32 kHz oscillator is selected as an SCLK. RTC_VDD
and RTC_VSS provides an isolated power supply to ensure RTC operation in the event of
loss of line power when a battery is provided. For more details, see On-Chip Oscillators on
page 335.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
26
PLL Clock—The eZ80F91 internal PLL driven by external crystals or external crystal
oscillators in the range of 1 MHz to 10 MHz generates an SCLK up to 50 MHz. For more-
details, see Phase-Locked Loop on page 265.
SCLK Source Selection Example
For additional SCLK source selection examples, refer to Crystal Oscillator/Resonator
Guidelines for eZ80® and eZ80Acclaim!® Devices Technical Note (TN0013) available on
www.zilog.com.
PS019215-0910
Architectural Overview
eZ80F91 MCU
Product Specification
27
Register Map
All on-chip peripheral registers are accessed in the I/O address space. All I/O operations
employ 16-bit addresses. The upper byte of the 24-bit address bus is undefined during all
I/O operations (ADDR[23:16] = XX). All I/O operations using 16-bit addresses within the
0000h–00FFhrange are routed to the on-chip peripherals. External I/O chip selects are
not generated if the address space programmed for the I/O chip selects overlap the
0000h–00FFhaddress range.
Registers at unused addresses within the 0000h–00FFhrange assigned to on-chip periph-
erals are not implemented. Read access to such addresses returns unpredictable values and
Write access produces no effect. Table 3 lists the register map for the eZ80F91 device.
Table 3. Register Map
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
Product ID
®
0000
0001
0002
ZDI_ID_L
eZ80 Product ID Low Byte Register
eZ80 Product ID High Byte Register
eZ80 Product ID Revision Register
08
00
R
R
R
252
252
252
ZDI_ID_H
ZDI_ID_REV
XX
Interrupt Priority
0010
0011
0012
0013
0014
0015
INT_P0
INT_P1
INT_P2
INT_P3
INT_P4
INT_P5
Interrupt Priority Register—Byte 0
Interrupt Priority Register—Byte 1
Interrupt Priority Register—Byte 2
Interrupt Priority Register—Byte 3
Interrupt Priority Register—Byte 4
Interrupt Priority Register—Byte 5
00
00
00
00
00
00
R/W
R/W
R/W
R/W
R/W
R/W
61
61
61
61
61
61
Ethernet Media Access Controller
0020
0021
0022
0023
0024
0025
EMAC_TEST
EMAC_CFG1
EMAC_CFG2
EMAC_CFG3
EMAC_CFG4
EMAC_STAD_0
EMAC Test Register
00
00
37
0F
00
00
R/W
R/W
R/W
R/W
R/W
R/W
298
299
301
302
303
304
EMAC Configuration Register
EMAC Configuration Register
EMAC Configuration Register
EMAC Configuration Register
EMAC Station Address—Byte 0
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
28
Table 3. Register Map (Continued)
Address
Reset
(hex)
CPU
Access
Page
No
(hex)
0026
0027
0028
0029
002A
002B
Mnemonic
Name
EMAC_STAD_1
EMAC_STAD_2
EMAC_STAD_3
EMAC_STAD_4
EMAC_STAD_5
EMAC_TPTV_L
EMAC Station Address—Byte 1
EMAC Station Address—Byte 2
EMAC Station Address—Byte 3
EMAC Station Address—Byte 4
EMAC Station Address—Byte 5
00
00
00
00
00
00
R/W
R/W
R/W
R/W
R/W
R/W
304
304
304
304
304
305
EMAC Transmit Pause
Timer Value—Low Byte
002C
EMAC_TPTV_H
EMAC Transmit Pause
00
R/W
305
Timer Value—High Byte
002D
002E
002F
0030
EMAC_IPGT
EMAC Inter-Packet Gap
EMAC Non-Back-Back IPG
EMAC Non-Back-Back IPG
15
0C
12
00
R/W
R/W
R/W
R/W
306
308
308
309
EMAC_IPGR1
EMAC_IPGR2
EMAC_MAXF_L
EMAC Maximum Frame
Length—Low Byte
0031
EMAC_MAXF_H
EMAC Maximum Frame
06
R/W
310
Length—High Byte
0032
0033
0034
0035
0036
0037
0038
0039
003A
003B
003C
EMAC_AFR
EMAC Address Filter Register
EMAC Hash Table—Byte 0
EMAC Hash Table—Byte 1
EMAC Hash Table—Byte 2
EMAC Hash Table—Byte 3
EMAC Hash Table—Byte 4
EMAC Hash Table—Byte 5
EMAC Hash Table—Byte 6
EMAC Hash Table—Byte 7
EMAC MII Management Register
00
00
00
00
00
00
00
00
00
00
00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
311
312
312
312
312
312
312
312
312
313
314
EMAC_HTBL_0
EMAC_HTBL_1
EMAC_HTBL_2
EMAC_HTBL_3
EMAC_HTBL_4
EMAC_HTBL_5
EMAC_HTBL_6
EMAC_HTBL_7
EMAC_MIIMGT
EMAC_CTLD_L
EMAC PHY Configuration
Data—Low Byte
003D
003E
EMAC_CTLD_H
EMAC_RGAD
EMAC PHY Configuration
Data—High Byte
00
00
R/W
R/W
315
315
EMAC PHY Register Address Register
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
29
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
003F
EMAC_FIAD
EMAC PHY Unit Select Address
Register
00
R/W
316
0040
0041
0042
EMAC_PTMR
EMAC_RST
EMAC Transmit Polling Timer Register
EMAC Reset Control Register
00
20
00
R/W
R/W
R/W
316
317
318
EMAC_TLBP_L
EMAC Transmit Lower Boundary
Pointer—Low Byte
0043
EMAC_TLBP_H
EMAC Transmit Lower Boundary
Pointer—High Byte
00
R/W
318
0044
0045
0046
0047
EMAC_BP_L
EMAC_BP_H
EMAC_BP_U
EMAC_RHBP_L
EMAC Boundary Pointer—Low Byte
EMAC Boundary Pointer—High Byte
EMAC Boundary Pointer—Upper Byte
00
C0
FF
00
R/W
R/W
R/W
R/W
319
319
319
320
EMAC Receive High Boundary
Pointer—Low Byte
0048
0049
004A
EMAC_RHBP_H
EMAC_RRP_L
EMAC_RRP_H
EMAC Receive High Boundary
Pointer—High Byte
00
00
00
R/W
R/W
R/W
321
321
322
EMAC Receive Read
Pointer—Low Byte
EMAC Receive Read
Pointer—High Byte
004B
004C
004D
004E
EMAC_BUFSZ
EMAC_IEN
EMAC Buffer Size Register
00
00
00
00
R/W
R/W
R/W
R/W
322
323
325
326
EMAC Interrupt Enable Register
EMAC Interrupt Status Register
EMAC_ISTAT
EMAC_PRSD_L
EMAC PHY Read Status
Data—Low Byte
004F
EMAC_PRSD_H
EMAC PHY Read Status
00
R/W
327
Data—High Byte
0050
0051
EMAC_MIISTAT
EMAC_RWP_L
EMAC MII Status Register
00
00
R/W
R/W
327
328
EMAC Receive Write
Pointer—Low Byte
0052
0053
EMAC_RWP_H
EMAC_TRP_L
EMAC Receive Write
Pointer—High Byte
00
00
R/W
R/W
329
329
EMAC Transmit Read
Pointer—Low Byte
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
30
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
0054
EMAC_TRP_H
EMAC Transmit Read
Pointer—High Byte
00
20
00
R/W
R/W
R/W
330
330
331
0055
0056
EMAC_BLKSLFT_L EMAC Receive Blocks Left
Register—Low Byte
EMAC_BLKSLFT_H EMAC Receive Blocks Left
Register—High Byte
0057
0058
0059
EMAC_FDATA_L
EMAC_FDATA_H
EMAC_FFLAGS
EMAC FIFO Data—Low Byte
EMAC FIFO Data—High Byte
EMAC FIFO Flags Register
XX
0X
33
R/W
R/W
R/W
332
332
333
PLL
005C
005D
005E
005F
PLL_DIV_L
PLL_DIV_H
PLL_CTL0
PLL_CTL1
PLL Divider Register—Low Byte
PLL Divider Register—High Byte
PLL Control Register 0
00
00
00
00
W
W
268
269
269
271
R/W
R/W
PLL Control Register 1
Timers and PWM
0060
0061
0062
0063
TMR0_CTL
Timer 0 Control Register
00
00
R/W
R/W
R/W
R
132
133
135
136
138
137
139
132
133
135
136
138
137
139
TMR0_IER
Timer 0 Interrupt Enable Register
Timer 0 Interrupt Identification Register
Timer 0 Data Register—Low Byte
Timer 0 Reload Register—Low Byte
Timer 0 Data Register—High Byte
Timer 0 Reload Register—High Byte
Timer 1 Control Register
TMR0_IIR
00
TMR0_DR_L
TMR0_RR_L
TMR0_DR_H
TMR0_RR_H
TMR1_CTL
TMR1_IER
XX
XX
XX
XX
00
W
0064
R
W
0065
0066
0067
0068
R/W
R/W
R/W
R
Timer 1 Interrupt Enable Register
Timer 1 Interrupt Identification Register
Timer 1 Data Register—Low Byte
Timer 1 Reload Register—Low Byte
Timer 1 Data Register—High Byte
Timer 1 Reload Register—High Byte
00
TMR1_IIR
00
TMR1_DR_L
TMR1_RR_L
TMR1_DR_H
TMR1_RR_H
XX
XX
XX
XX
W
0069
R
W
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
31
Table 3. Register Map (Continued)
Address
Reset
(hex)
CPU
Access
Page
No
(hex)
006A
006B
Mnemonic
Name
TMR1_CAP_CTL
TMR1_CAPA_L
Timer 1 Input Capture Control Register
XX
XX
R/W
R/W
139
140
Timer 1 Capture Value A
Register—Low Byte
006C
006D
006E
TMR1_CAPA_H
TMR1_CAPB_L
TMR1_CAPB_H
Timer 1 Capture Value A
Register—High Byte
XX
XX
XX
R/W
R/W
R/W
141
141
142
Timer 1 Capture Value B
Register—Low Byte
Timer 1 Capture Value B
Register—High Byte
006F
0070
0071
0072
TMR2_CTL
TMR2_IER
Timer 2 Control Register
00
00
R/W
R/W
R/W
R
132
133
135
136
138
137
139
132
133
135
136
138
137
139
153
154
156
139
157
Timer 2 Interrupt Enable Register
Timer 2 Interrupt Identification Register
Timer 2 Data Register—Low Byte
Timer 2 Reload Register—Low Byte
Timer 2 Data Register—High Byte
Timer 2 Reload Register—High Byte
Timer 3 Control Register
TMR2_IIR
00
TMR2_DR_L
TMR2_RR_L
TMR2_DR_H
TMR2_RR_H
TMR3_CTL
TMR3_IER
XX
XX
XX
XX
00
W
0073
R
W
0074
0075
0076
0077
R/W
R/W
R/W
R
Timer 3 Interrupt Enable Register
Timer 3 Interrupt Identification Register
Timer 3 Data Register—Low Byte
Timer 3 Reload Register—Low Byte
Timer 3 Data Register—High Byte
Timer 3 Reload Register—High Byte
PWM Control Register 1
00
TMR3_IIR
00
TMR3_DR_L
TMR3_RR_L
TMR3_DR_H
TMR3_RR_H
PWM_CTL1
PWM_CTL2
PWM_CTL3
TMR3_CAP_CTL
PWM0R_L
XX
XX
XX
XX
00
W
0078
R
W
0079
007A
007B
R/W
R/W
R/W
R/W
R/W
PWM Control Register 2
00
PWM Control Register 3
00
Timer 3 Input Capture Control Register
00
007C
PWM 0 Rising-Edge
XX
Register—Low Byte
TMR3_CAPA_L
Timer 3 Capture Value A
XX
R/W
140
Register—Low Byte
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
32
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
007D
PWM0R_H
PWM 0 Rising-Edge
Register—High Byte
XX
XX
XX
XX
XX
XX
XX
00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
157
141
157
141
157
142
157
132
157
132
157
144
157
145
158
144
TMR3_CAPA_H
PWM1R_L
Timer 3 Capture Value A
Register—High Byte
007E
007F
0080
0081
0082
0083
0084
PWM 1 Rising-Edge
Register—Low Byte
TMR3_CAPB_L
PWM1R_H
Timer 3 Capture Value B
Register—Low Byte
PWM 1 Rising-Edge
Register—High Byte
TMR3_CAPB_H
PWM2R_L
Timer 3 Capture Value B
Register—High Byte
PWM 2 Rising-Edge
Register—Low Byte
TMR3_OC_CTL1
PWM2R_H
Timer 3 Output Compare Control
Register 1
PWM 2 Rising-Edge
Register—High Byte
XX
00
TMR3_OC_CTL2
PWM3R_L
Timer 3 Output Compare Control
Register 2
PWM 3 Rising-Edge
Register—Low Byte
XX
XX
XX
XX
XX
XX
TMR3_OC0_L
PWM3R_H
Timer 3 Output Compare 0 Value
Register—Low Byte
PWM 3 Rising-Edge
Register—High Byte
TMR3_OC0_H
PWM0F_L
Timer 3 Output Compare 0 Value
Register—High Byte
PWM 0 Falling-Edge
Register—Low Byte
TMR3_OC1_L
Timer 3 Output Compare 1 Value
Register—Low Byte
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
33
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
0085
PWM0F_H
PWM 0 Falling-Edge
Register—High Byte
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
158
145
158
144
158
145
158
144
158
145
158
158
TMR3_OC1_H
PWM1F_L
Timer 3 Output Compare 1 Value
Register—High Byte
0086
0087
0088
0089
PWM 1 Falling-Edge
Register—Low Byte
TMR3_OC2_L
PWM1F_H
Timer 3 Output Compare 2 Value
Register—Low Byte
PWM 1 Falling-Edge
Register—High Byte
TMR3_OC2_H
PWM2F_L
Timer 3 Output Compare 2 Value
Register—High Byte
PWM 2 Falling-Edge
Register—Low Byte
TMR3_OC3_L
PWM2F_H
Timer 3 Output Compare 3 Value
Register—Low Byte
PWM 2 Falling-Edge
Register—High Byte
TMR3_OC3_H
PWM3F_L
Timer 3 Output Compare 3 Value
Register—High Byte
008A
008B
PWM 3 Falling-Edge
Register—Low Byte
PWM3F_H
PWM 3 Falling-Edge
Register—High Byte
Watchdog Timer
0093
0094
WDT_CTL
WDT_RR
Watchdog Timer Control Register
Watchdog Timer Reset Register
08/28
XX
R/W
W
117
119
General-Purpose Input/Output Ports
0096
0097
0098
0099
PA_DR
Port A Data Register
XX
FF
00
00
R/W
R/W
R/W
R/W
55
55
56
56
PA_DDR
PA_ALT1
PA_ALT2
Port A Data Direction Register
Port A Alternate Register 1
Port A Alternate Register 2
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
34
Table 3. Register Map (Continued)
Address
Reset
(hex)
CPU
Access
Page
No
(hex)
009A
009B
009C
009D
009E
009F
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
Mnemonic
PB_DR
Name
Port B Data Register
XX
FF
00
00
XX
FF
00
00
XX
FF
00
00
00
00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
W
55
55
56
56
55
55
56
56
55
55
56
56
56
56
PB_DDR
PB_ALT1
PB_ALT2
PC_DR
Port B Data Direction Register
Port B Alternate Register 1
Port B Alternate Register 2
Port C Data Register
PC_DDR
PC_ALT1
PC_ALT2
PD_DR
Port C Data Direction Register
Port C Alternate Register 1
Port C Alternate Register 2
Port D Data Register
PD_DDR
PD_ALT1
PD_ALT2
PA_ALT0
PB_ALT0
Port D Data Direction Register
Port D Alternate Register 1
Port D Alternate Register 2
Port A Alternate Register 0
Port B Alternate Register 0
W
Chip Select/Wait State Generator
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
CS0_LBR
CS0_UBR
CS0_CTL
CS1_LBR
CS1_UBR
CS1_CTL
CS2_LBR
CS2_UBR
CS2_CTL
CS3_LBR
CS3_UBR
CS3_CTL
Chip Select 0 Lower Bound Register
Chip Select 0 Upper Bound Register
Chip Select 0 Control Register
00
FF
E8
00
00
00
00
00
00
00
00
00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
85
86
87
85
86
87
85
86
87
85
86
87
Chip Select 1 Lower Bound Register
Chip Select 1 Upper Bound Register
Chip Select 1 Control Register
Chip Select 2 Lower Bound Register
Chip Select 2 Upper Bound Register
Chip Select 2 Control Register
Chip Select 3 Lower Bound Register
Chip Select 3 Upper Bound Register
Chip Select 3 Control Register
Random Access Memory Control
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
35
Table 3. Register Map (Continued)
Address
Reset
(hex)
CPU
Access
Page
No
(hex)
00B4
00B5
00B6
00B7
Mnemonic
Name
RAM_CTL
RAM Control Register
C0
FF
00
00
R/W
R/W
R/W
R/W
94
95
96
96
RAM_ADDR_U
MBIST_GPR
MBIST_EMR
RAM Address Upper Byte Register
General-Purpose RAM MBIST Control
Ethernet MAC RAM MBIST Control
Serial Peripheral Interface
00B8
SPI_BRG_L
SPI Baud Rate Generator
Register—Low Byte
02
00
R/W
R/W
207
207
00B9
SPI_BRG_H
SPI Baud Rate Generator
Register—High Byte
00BA
00BB
00BC
SPI_CTL
SPI_SR
SPI Control Register
04
00
R/W
R
208
209
210
210
SPI Status Register
SPI_TSR
SPI_RBR
SPI Transmit Shift Register
SPI Receive Buffer Register
XX
XX
W
R
Infrared Encoder/Decoder
00BF IR_CTL
Infrared Encoder/Decoder Control
00
R/W
199
Universal Asynchronous Receiver/Transmitter 0 (UART0)
00C0
UART0_RBR
UART0_THR
UART0_BRG_L
UART 0 Receive Buffer Register
UART 0 Transmit Holding Register
XX
XX
02
R
W
184
184
182
UART 0 Baud Rate Generator
Register—Low Byte
R/W
00C1
00C2
UART0_IER
UART 0 Interrupt Enable Register
00
00
R/W
R/W
185
183
UART0_BRG_H
UART 0 Baud Rate Generator
Register—High Byte
UART0_IIR
UART 0 Interrupt Identification Register
UART 0 FIFO Control Register
01
00
R
186
187
UART0_FCTL
W
Universal Asynchronous Receiver/Transmitter 0 (UART0)
00C3
00C4
00C5
00C6
UART0_LCTL
UART0_MCTL
UART0_LSR
UART0_MSR
UART 0 Line Control Register
UART 0 Modem Control Register
UART 0 Line Status Register
UART 0 Modem Status Register
00
00
60
XX
R/W
R/W
R
188
190
191
193
R
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
36
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
00C7
UART0_SPR
UART 0 Scratch Pad Register
00
R/W
194
2
I C
2
00C8
00C9
00CA
00CB
I2C_SAR
I2C_XSAR
I2C_DR
I C Slave Address Register
00
00
00
00
R/W
R/W
R/W
R/W
224
224
225
226
2
I C Extended Slave Address Register
2
I C Data Register
2
I2C_CTL
I C Control Register
General-Purpose Input/Output Ports
00CE
00CF
00CC
PC_ALT0
PD_ALT0
I2C_SR
Port C Alternate Register 0
Port D Alternate Register 0
00
00
F8
00
XX
W
W
R
56
56
2
I C Status Register
227
229
230
2
I2C_CCR
I2C_SRR
I C Clock Control Register
W
W
2
00CD
I C Software Reset Register
Universal Asynchronous Receiver/Transmitter 1 (UART1)
00D0
UART1_RBR
UART1_THR
UART1_BRG_L
UART 1 Receive Buffer Register
UART 1 Transmit Holding Register
XX
XX
02
R
W
184
184
182
UART 1 Baud Rate Generator
Register—Low Byte
R/W
00D1
UART1_IER
UART 1 Interrupt Enable Register
00
00
R/W
R/W
185
183
UART1_BRG_H
UART 1 Baud Rate Generator
Register—High Byte
00D2
00D3
UART1_IIR
UART 1 Interrupt Identification Register
UART 1 FIFO Control Register
UART 1 Line Control Register
01
00
00
R
W
186
187
188
UART1_FCTL
UART1_LCTL
R/W
Universal Asynchronous Receiver/Transmitter 0 (UART0)
00D4
00D5
00D6
00D7
UART1_MCTL
UART1_LSR
UART1_MSR
UART1_SPR
UART 1 Modem Control Register
UART 1 Line Status Register
UART 1 Modem Status Register
UART 1 Scratch Pad Register
00
60
XX
00
R/W
R/W
R/W
R/W
190
191
193
194
Low-Power Control
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
37
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
00DB
CLK_PPD1
Clock Peripheral Power-Down
00
R/W
47
Register 1
00DC
CLK_PPD2
Clock Peripheral Power-Down
00
R/W
48
Register 2
Real-Time Clock
RTC_SEC
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC
00ED
RTC Seconds Register
XX
XX
XX
0X
XX
XX
XX
XX
XX
XX
XX
0X
00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
161
162
163
164
165
166
167
168
169
170
171
172
173
174
RTC_MIN
RTC Minutes Register
RTC_HRS
RTC_DOW
RTC_DOM
RTC_MON
RTC_YR
RTC Hours Register
RTC Day-of-the-Week Register
RTC Day-of-the-Month Register
RTC Month Register
RTC Year Register
RTC_CEN
RTC_ASEC
RTC_AMIN
RTC_AHRS
RTC_ADOW
RTC_ACTRL
RTC_CTRL
RTC Century Register
RTC Alarm Seconds Register
RTC Alarm Minutes Register
RTC Alarm Hours Register
RTC Alarm Day-of-the-Week Register
RTC Alarm Control Register
RTC Control Register
x0xxxx00
b/
x0xxxx10
4
b
Chip Select Bus Mode Control
00F0
00F1
00F2
00F3
CS0_BMC
CS1_BMC
CS2_BMC
CS3_BMC
Chip Select 0 Bus Mode Control
Register
02
02
02
02
R/W
R/W
R/W
R/W
88
88
88
88
Chip Select 1 Bus Mode Control
Register
Chip Select 2 Bus Mode Control
Register
Chip Select 3 Bus Mode Control
Register
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
38
Table 3. Register Map (Continued)
Address
(hex)
Reset
(hex)
CPU
Access
Page
No
Mnemonic
Name
Flash Memory Control
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC
00FD
00FE
00FF
FLASH_KEY
FLASH_DATA
FLASH_ADDR_U
FLASH_CTL
Flash Key Register
00
XX
00
88
01
FF
00
00
00
00
00
W
102
103
104
105
106
107
108
109
111
112
112
Flash Data Register
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Flash Address Upper Byte Register
Flash Control Register
FLASH_FDIV
FLASH_PROT
FLASH_IRQ
Flash Frequency Divider Register
Flash Write/Erase Protection Register
Flash Interrupt Control Register
Flash Page Select Register
Flash Row Select Register
Flash Column Select Register
Flash Program Control Register
FLASH_PAGE
FLASH_ROW
FLASH_COL
FLASH_PGCTL
PS019215-0910
Register Map
eZ80F91 MCU
Product Specification
39
eZ80® CPU Core
The eZ80® CPU is the first 8-bit CPU to support 16 MB linear addressing. Each software
module or task under a real-time executive or operating system operates in Z80®
compatible (64 KB) mode or full 24-bit (16 MB) address mode.
The CPU instruction set is a superset of the instruction sets for the Z80 and Z180 CPUs.
Z80 and Z180 programs are executed on an eZ80 CPU with little or no modification.
Features
The features of eZ80 CPU include:
•
•
•
•
•
•
•
•
Code-compatible with Z80 and Z180 products
24-bit linear address space
Single-cycle instruction fetch
Pipelined fetch, decode, and execute
Dual Stack Pointers for ADL (24-bit) and Z80 (16-bit) memory modes
24-bit CPU registers and Arithmetic Logic Unit (ALU)
Debug support
Nonmaskable Interrupt (NMI), plus support for 128 maskable vectored interrupts
New Instructions
The new instructions are listed below:
Loads/unloads the I register with a 16-bit value. These new instructions are:
•
–
–
LD I,HL (ED C7)
LD HL,I (ED D7)
For more information on the CPU, its instruction set, and eZ80 programming, refer to
eZ80 CPU User Manual (UM0077), available on www.zilog.com.
PS019215-0910
eZ80® CPU Core
eZ80F91 MCU
Product Specification
40
PS019215-0910
eZ80® CPU Core
eZ80F91 MCU
Product Specification
41
Reset
The Reset controller within the eZ80F91 device features a consistent reset function for all
types of resets that affects the system. A system reset, referred in this document as RESET,
returns the eZ80F91 to a defined state. All internal registers affected by a RESET return to
their default conditions. RESET configures the GPIO port pins as inputs and clears the
CPU’s Program Counter to 000000h. Program code execution ceases during RESET.
The events that cause a RESET are:
•
•
•
•
•
•
Power-on reset (POR).
Low-Voltage Brownout (VBO).
External RESET pin assertion.
Watchdog Timer (WDT) time-out when configured to generate a RESET.
Real-Time Clock alarm with the CPU in low-power SLEEP mode.
Execution of a Debug RESET command.
During RESET, an internal RESET mode timer holds the system in RESET for 1025
system clock (SCLK) cycles to allow sufficient time for the primary crystal oscillator to
stabilize. For internal RESET sources, the RESET mode timer begins incrementing on the
next rising edge of SCLK following deactivation of the signal that is initiating the RESET
event. For external RESET pin assertion, the RESET mode timer begins on the next rising
edge of SCLK following assertion of the RESET pin for three consecutive SCLK cycles.
The default clock source for SCLK on RESET is the crystal input (XIN). See the CLK_MUX
Note:
values in the PLL Control Register 0, (see Table 154 on page 269).
External Reset Input and Indicator
The eZ80F91 RESET pin functions as both open-drain (active Low) RESET mode indica-
tor and active Low RESET input. When a RESET event occurs, the internal circuitry
begins driving the RESET pin Low. The RESET pin is held Low by the internal circuitry
until the internal RESET mode timer times out. If the external reset signal is released prior
to the end of the 1025 count time-out, program execution begins following the RESET
mode time-out. If the external reset signal is released after the end of the 1025 count time-
out, then program execution begins following release of the RESET input (the RESET pin
is High for four consecutive SCLK cycles).
PS019215-0910
Reset
eZ80F91 MCU
Product Specification
42
Power-On Reset
A POR occurs every time the supply voltage to the part rises from below the Voltage
Brownout threshold (VVBO) to above the POR voltage threshold (VPOR). The internal
bandgap-referenced voltage detector sends a continuous RESET signal to the Reset con-
troller until the supply voltage (VCC) exceeds the POR voltage threshold. After VCC rises
above VPOR, an on-chip analog delay element briefly maintains the RESET signal to the
Reset controller. After this analog delay element times out, the Reset controller holds the
eZ80F91 in RESET until the RESET mode timer expires. POR operation is displayed in
Figure 3. The signals in Figure 3 are not drawn to scale but for displaying purposes only.
VCC = 3.3V
V
POR
V
VBO
Program Execution
VCC = 0.0V
System Clock
Oscillator
Startup
Internal RESET
Signal
TANA
RESET mode timer delay
Figure 3. Power-On Reset Operation
Voltage Brownout Reset
If the supply voltage (VCC) drops below the VVBO after program execution begins, the
eZ80F91 device resets. The VBO protection circuitry detects the low supply voltage and
initiates a RESET via the Reset controller. The eZ80F91 remains in RESET until the sup-
ply voltage again returns above the POR voltage threshold (VPOR) and the Reset controller
releases the internal RESET signal. The VBO circuitry rejects short negative brown-out
pulses to prevent spurious RESET events.
VBO operation is displayed in Figure 4 on page 43. The signals in the figure are not drawn
to scale but for illustration purposes only.
PS019215-0910
Reset
eZ80F91 MCU
Product Specification
43
VCC = 3.3V
VPOR
VCC = 3.3V
VVBO
Voltage
Brown-out
Program Execution
Program Execution
System Clock
Internal RESET
Signal
RESET mode
timer delay
TANA
Figure 4. Voltage Brownout Reset Operation
PS019215-0910
Reset
eZ80F91 MCU
Product Specification
44
PS019215-0910
Reset
eZ80F91 MCU
Product Specification
45
Low-Power Modes
The eZ80F91 device provides a range of power-saving features. The highest level of
power reduction is provided by SLEEP mode with all peripherals disabled, including
VBO. The next level of power reduction is provided by the HALT instruction. The most
basic level of power reduction is provided by the clock peripheral power-down registers.
SLEEP Mode
Execution of the CPU’s SLP instruction puts the eZ80F91 device into SLEEP mode. In
SLEEP mode, the operating characteristics are:
•
•
•
•
•
The primary crystal oscillator is disabled.
The system clock is disabled.
The CPU is idle.
The Program Counter (PC) stops incrementing.
The 32 kHz crystal oscillator continues to operate and drives the real-time clock and
WDT (if WDT is configured to operate from the 32 kHz oscillator).
The CPU is brought out of SLEEP mode by any of the following operations:
•
•
•
A RESET via the external RESET pin driven Low.
A RESET via a real-time clock alarm.
A RESET via a WDT time-out (if running out of the 32 kHz oscillator and configured
to generate a RESET on time-out).
•
•
A RESET via execution of a Debug RESET command.
A RESET via the Low-Voltage Brownout (VBO) detection circuit, if enabled.
After exiting SLEEP mode, the standard RESET delay occurs to allow the primary crystal
oscillator to stabilize. For more information, see Figure 4 on page 43.
HALT Mode
Execution of the CPU’s HALT instruction puts the eZ80F91 device into HALT mode.
In HALT mode, the operating characteristics are:
•
•
•
The primary crystal oscillator is enabled and continues to operate.
The system clock is enabled and continues to operate.
The CPU is idle.
PS019215-0910
Low-Power Modes
eZ80F91 MCU
Product Specification
46
•
The PC stops incrementing.
The CPU is brought out of HALT mode by any of the following operations:
•
•
•
•
A nonmaskable interrupt (NMI).
A maskable interrupt.
A RESET via the external RESET pin driven Low.
A Watchdog Timer time-out (if, configured to generate either an NMI or RESET upon
time-out).
•
•
A RESET via execution of a Debug RESET command.
A RESET via the Low-Voltage Brownout detection circuit, if enabled.
To minimize current in HALT mode, the system clock must be gated-off for all unused
on-chip peripherals via the Clock Peripheral Power-Down Registers.
HALT Mode and the EMAC Function
When the CPU is in HALT mode, the eZ80F91 device’s EMAC block cannot be disabled
as other peripherals can. On receipt of an Ethernet packet, a maskable Receive interrupt is
generated by the EMAC block, just as it would be in a non-halt mode. Accordingly, the
processor wakes up and continues with the user-defined application.
Clock Peripheral Power-Down Registers
To reduce power, the Clock Peripheral Power-Down Registers allow the system clock to
be blocked to unused on-chip peripherals. On RESET, all peripherals are enabled. The
clock to unused peripherals are gated off by setting the appropriate bit in the Clock Periph-
eral Power-Down Registers to 1. When powered down, the peripherals are completely dis-
abled. To re-enable, the bit in the Clock Peripheral Power-Down Registers must be cleared
to 0.
Additionally, the VBO_OFF bit of CLK_PPD2 is used to disable the VBO detection cir-
cuit and thereby significantly reduce DC current consumption (see Table 234 on page 341)
when this function is not required.
Many peripherals features separate enable/disable control bits that must be appropriately
set for operation. These peripheral specific enable/disable bits do not provide the same
level of power reduction as the Clock Peripheral Power-Down Registers. When powered
down, the individual peripheral control register is not accessible for Read or Write access,
(see Table 4 on page 47 and Table 5 on page 48).
PS019215-0910
Low-Power Modes
eZ80F91 MCU
Product Specification
47
Table 4. Clock Peripheral Power-Down Register 1 (CLK_PPD1 = 00DBh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit Position
Value Description
7
1
System clock to GPIO Port D is powered down.
Port D alternate functions do not operate correctly.
GPIO_D_OFF
0
1
System clock to GPIO Port D is powered up.
6
System clock to GPIO Port C is powered down.
GPIO_C_OFF
Port C alternate functions do not operate correctly.
0
1
System clock to GPIO Port C is powered up.
5
System clock to GPIO Port B is powered down.
GPIO_B_OFF
Port B alternate functions do not operate correctly.
0
1
System clock to GPIO Port B is powered up.
4
System clock to GPIO Port A is powered down.
GPIO_A_OFF
Port A alternate functions do not operate correctly.
0
1
0
1
0
1
0
1
0
System clock to GPIO Port A is powered up.
System clock to SPI is powered down.
System clock to SPI is powered up.
3
SPI_OFF
2
2
System clock to I C is powered down.
I2C_OFF
2
System clock to I C is powered up.
1
System clock to UART1 is powered down.
System clock to UART1 is powered up.
UART1_OFF
0
System clock to UART0 and IrDA endec is powered down.
System clock to UART0 and IrDA endec is powered up.
UART0_OFF
PS019215-0910
Low-Power Modes
eZ80F91 MCU
Product Specification
48
Table 5. Clock Peripheral Power-Down Register 2 (CLK_PPD2 = 00DCh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R
R
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit Position
Value Description
7
1
0
1
PHI Clock output is disabled (output is high-impedance).
PHI Clock output is enabled.
PHI_OFF
6 VBO_OFF
Voltage Brownout detection circuit is disabled. This reduces
DC current consumption in situations where VBO detection is
not necessary. Power-On Reset functionality is not affected by
this setting.
0
VBO detection circuit is enabled.
[5:4]
000
1
Reserved.
3
System clock to TIMER3 is powered down.
System clock to TIMER3 is powered up.
System clock to TIMER2 is powered down.
System clock to TIMER2 is powered up.
System clock to TIMER1 is powered down.
System clock to TIMER1 is powered up.
System clock to TIMER0 is powered down.
System clock to TIMER0 is powered up.
TIMER3_OFF
0
2
1
TIMER2_OFF
0
1
1
TIMER1_OFF
0
0
1
TIMER0_OFF
0
PS019215-0910
Low-Power Modes
eZ80F91 MCU
Product Specification
49
General-Purpose Input/Output
The eZ80F91 device features 32 General-Purpose Input/Output (GPIO) pins. The GPIO
pins are assembled as four 8-bit ports—Port A, Port B, Port C, and Port D. All port signals
are configured as either inputs or outputs. In addition, all the port pins are used as vectored
interrupt sources for the CPU.
The eZ80F91 microcontroller’s GPIO ports are slightly different from its eZ80®
predecessors. Specifically, Port A pins source 8 mA and sink 10 mA. In addition, the
Port B and C inputs now feature Schmitt-trigger input buffers.
GPIO Operation
GPIO operation is the same for all four GPIO ports (Ports A, B, C, and D). Each port
features eight GPIO port pins. The operating mode for each pin is controlled by four bits
that are divided between four 8-bit registers. The GPIO mode control registers are:
•
•
•
•
Port x Data Register (Px_DR)
Port x Data Direction Register (Px_DDR)
Port x Alternate Register 1 (Px_ALT1)
Port x Alternate Register 2 (Px_ALT2)
where x can be A, B, C, or D representing any of the four GPIO ports. The mode for each
pin is controlled by setting each register bit pertinent to the pin to be configured. For
example, the operating mode for port B pin 7 (PB7) is set by the values contained in
PB_DR[7], PB_DDR[7], PB_ALT1[7], and PB_ALT2[7].
The combination of the GPIO control register bits allows individual configuration of each
port pin for nine modes. In all modes, reading of the Port x Data register returns the
sampled state or level of the signal on the corresponding pin. Table 6 on page 50 lists the
function of each port signal based on these four register bits. After a RESET event, all
GPIO port pins are configured as standard digital inputs with the interrupts disabled.
In addition to the four mode control registers, each port has an 8-bit register, which is used
for clearing edge triggered interrupts. This register is the Port x Alternate register
0(Px_ALT0) where x can be A, B, C, or D representing the four GPIO ports. When a
GPIO pin is configured as an edge triggered interrupt, writing 1 to the corresponding bit of
the Px_ALT0 register clears the interrupt.
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
50
Table 6. GPIO Mode Selection
GPIO Px_ALT2 Px_ALT1 Px_DDR Px_DR
Mode Bits7:0 Bits7:0 Bits7:0 Bits7:0 Port Mode
Output
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Output
0
1
2
3
4
Output
1
Input from pin
Input from pin
Open-drain output
Open-drain I/O
Open-source I/O
Open-source output
Reserved
High impedance
High impedance
0
High impedance
High impedance
1
5
6
High impedance
High impedance
Interrupt—dual edge-triggered
Alternate function controls port I/O.
Alternate function controls port I/O.
Interrupt—active Low
7
8
9
High impedance
High impedance
Interrupt—active High
Interrupt—falling edge-triggered High impedance
Interrupt—rising edge-triggered High impedance
Figure 5 on page 53 and Figure 6 on page 53 display the simplified block diagrams of the
GPIO port pin for the various modes.
GPIO Mode 1—Output
The port pin is configured as a standard digital output pin. The value written to the Port x
Data register (Px_DR) is driven on the pin.
GPIO Mode 2—Input
The port pin is configured as a standard digital input pin. The output is high impedance.
The value stored in the Port x Data register produces no effect. As in all modes, a read
from the Port x Data register returns the pin’s value. GPIO mode 2 is the default operating
mode following a RESET.
GPIO Mode 3—Open Drain
The port pin is configured as open-drain Input/Output. The GPIO pins do not feature an
internal pull-up to the supply voltage. To employ the GPIO pin in OPEN-DRAIN mode,
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
51
an external pull-up resistor must connect the pin to the supply voltage. Writing 0 to the
Port x Data register outputs a Low at the pin. Writing 1 to the Port x Data register results in
high-impedance output.
GPIO Mode 4—Open Source
The port pin is configured as open-source I/O. The GPIO pins do not feature an internal
pull-down to the supply ground. To employ the GPIO pin in OPEN-SOURCE mode, an
external pull-down resistor must connect the pin to the supply ground. Writing 1 to the
Port x Data register outputs a High at the pin. Writing 0 to the Port x Data register results
in a high-impedance output.
GPIO Mode 5—Reserved
This mode produces a high-impedance output.
GPIO Mode 6—Dual Edge Triggered
The port pin is configured for dual edge-triggered interrupt mode. Both a rising and a
falling edge on this pin cause an interrupt request to be sent to the CPU. To select this
mode from the default mode (mode 2), you must:
1. Set Px_DR=1
2. Set Px_ALT2=1
3. Set Px_ALT1=0
4. Set Px_DDR=0
Writing a 1 to the Port x ALT0 register bit position corresponding to the interrupt request
clears the interrupt.
GPIO Mode 7—Alternate Functions
The port pin is configured to pass control over to the alternate (secondary) functions
assigned to the pin. For example, the alternate mode function for PC5 is the DSR1 input
signal to UART1 and the alternate mode function for PB4 is the timer 3 input capture.
When GPIO mode 7 is enabled, the pin output data and pin high-impedance control is
obtained from the alternate function's data output and high-impedance control,
respectively. The value in the Port x Data register produces no effect on operation. Input
signals are sampled by the system clock before being passed to the alternate input
function.
If the alternate function of a pin is an input and alternate function mode for that pin is not
enabled, the input is driven to a default non-asserted value. For example, in alternate mode
function, PC5 drives the DSR1 signal to UART1. As this signal is Low level true, the
DSR1 signal to UART1 is driven to 1 when PC5 is not in alternate mode function.
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
52
GPIO Mode 8—Level Sensitive Interrupt
The port pin is configured for level-sensitive interrupt mode. The value in the Port x Data
register determines if a low or high-level causes an interrupt request. An interrupt request
is generated when the level at the pin is the same as the level stored in the Port x Data
register. The port pin value is sampled by the system clock. The input pin must be held at
the selected interrupt level for a minimum of two system clock periods to initiate an
interrupt. The interrupt request remains active as long as this condition is maintained at the
external source. For example, if a port pin is configured as a low-level-sensitive interrupt,
the interrupt request will be asserted when the pin has been low for two system clocks and
remains active until the pin goes high.
Configuring a pin for mode 8 requires a transition through mode 9 (edge triggered mode).
To avoid the possibility of an unwanted interrupt while transition through mode 9, the
following steps must be taken to select mode 8 when starting from the default mode (mode
2):
1. Disable interrupts
2. Set Px_DR = 0 (low level interrupt) or 1 (high level interrupt)
3. Set Px_ALT2 = 1
4. Set Px_ALT1 =1 (mode 9)
5. Set Px_DDR = 0 (mode 8)
6. Set Px_ALT0 = 1 (to clear possible mode 9 interrupt)
7. Enable interrupts
GPIO Mode 9—Edge Triggered Interrupt
The port pin is configured for single edge triggered interrupt mode. The value in the Port x
Data register determines whether a positive or negative edge causes an interrupt request.
Writing 0 to the Port x Data register bit sets the selected pin to generate an interrupt
request for falling edges. Writing 1 to the Port x Data register bit sets the selected pin to
generate an interrupt request for rising edges. The interrupt request remains active until 1
is written to the corresponding bit of the Port x Alternate register 0. To select mode 9 from
the default mode (mode 2), you must:
1. Set the Port x Data register
2. Set Px_ALT2 = 1
3. Set Px_ALT1 = 1
4. Set Px_DDR=1
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
53
Simplified GPIO Port Block Diagram for Modes 2, 6, 7(input), 8, and 9
GPIO Port Pin
Mode 2
Mode 6
Mode 8
Mode 9
Mode 7(Input)
GPIO Output Buffer
ENB
Px_DR*
Input to chip
D
Q
D
Q
Tristated for
modes 2,6,8,9
and 7(Input)
SysClock
Alternate
Function
Input
Default Value
Mode 7(Input)
Interrupt
Interrupt
Logic
Clear Interrupt
Modes 6,8,9
* Reading from the Px_DR returns
the value stored in this register
Figure 5. GPIO Port Pin Block Diagram for Input and Interrupt Modes
Simplified GPIO Port Block Diagram for Modes 1, 3, 4, and 7 (Output)
VDD
Px_DR*
Mode 4
External
Pull-up resistor
required for
Mode 3
Data
D
Q
GPIOOutput Buffer
ENB
System Clock
GPIO Port
Pin
(open drain)
Q
Mode 3
Mode 1
External Pull-down resistor
required for Mode 4
(Open source)
Mode 7 (Output)
Alternate Function Output
* Writing to the Px_DR stores
the value in this register
Figure 6. GPIO Port Pin Block Diagram for Output and Input/Output Mode
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
54
GPIO Interrupts
Each port pin is used as an interrupt source. Interrupts are either level- or edge-triggered.
Level-Triggered Interrupts
When the port is configured for level-triggered interrupts (mode 8), the corresponding port
pin is open-drain. An interrupt request is generated when the level at the pin is the same as
the level stored in the Port x Data register. The port pin value is sampled by the system
clock. The input pin must be held at the selected interrupt level for a minimum of two
clock periods to initiate an interrupt. The interrupt request remains active as long as this
condition is maintained at the external source.
For example, if PA3 is programmed for low-level interrupt and the pin is forced Low for
two clock cycles, an interrupt request signal is generated from that port pin and sent to the
CPU. The interrupt request signal remains active until the external device driving PA3
forces the pin high. The CPU must be enabled to respond to interrupts for the interrupt
request signal to be acted upon.
Edge Triggered Interrupts
When the port is configured for edge triggered interrupts, the corresponding port pin is
open-drain. If the pin receives the correct edge from an external device, the port pin
generates an interrupt request signal to the CPU.
When configured for dual-edge triggered interrupt mode (GPIO mode 6), both a rising and
a falling edge on the pin cause an interrupt request to be sent to the CPU. To select mode 6
from the default mode (mode 2), you must:
1. Set Px_DR = 1
2. Set Px_ALT2 =1
3. Set Px_ALT1= 0
4. Set Px_DDR = 0
When configured for single-edge triggered interrupt mode (GPIO mode 9), the value in
the Port x Data register determines whether a positive or negative edge causes an interrupt
request. 0 in the Port x Data register bit sets the selected pin to generate an interrupt
request for falling edges. 1 in the Port x Data register bit sets the selected pin to generate
an interrupt request for rising edges. To select mode 9 from the default mode (mode 2),
you must:
1. Set Px_DR = 1
2. Set Px_ALT2 = 1
3. Set Px_ALT = 1
4. Set Px_DDR = 1
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
55
Edge triggered interrupts are cleared by writing 1 to the corresponding bit of the Px_ALT0
register. For example, if PD4 has been set up to generate an edge triggered interrupt, the
interrupt is cleared by writing a 1 to Px_ALT0[4].
GPIO Control Registers
Each GPIO port has four registers that controls its operation. The operating mode of each
bit within a port is selected by writing to the corresponding bits of these four registers as
listed in Table 6 on page 50. These four registers are Port Data register (Px_DR), Port Data
Direction register (Px_DDR), Port Alternate register 1 (PX_ALT1), and Port Alternate
register 2 (Px_ALT2). In addition to these four control registers, each port has a Port
Alternate register 0 (Px_ALT0), which is used for clearing edge triggered interrupts.
Port x Data Registers
When the port pins are configured for one of the output modes, the data written to the
Port x Data registers (see Table 7) is driven on the corresponding pins. In all modes,
reading from the Port x Data registers always returns the sampled current value of the
corresponding pins. When the port pins are configured for edge triggered interrupts or
level-sensitive interrupts, the value written to the Port x Data register bit selects the
interrupt edge or interrupt level (for more details on GPIO mode selection, see Table 6 on
page 50).
Table 7. Port x Data Registers
(PA_DR = 0096h, PB_DR = 009Ah, PC_DR = 009Eh, PD_DR = 00A2h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: X = Undefined; R/W = Read/Write.
Port x Data Direction Registers
In conjunction with the other GPIO Control registers, the Port x Data Direction registers
(see Table 8) control the operating modes of the GPIO port pins. For more details on GPIO
mode selection, see Table 6 on page 50.
Table 8. Port x Data Direction Registers
(PA_DDR = 0097h, PB_DDR = 009Bh, PC_DDR = 009Fh, PD_DDR = 00A3h)
Bit
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
56
Port x Alternate Register 0
The Port x Alternate register 0 is used to clear edge triggered interrupts. If an edge
triggered interrupt occurs, writing 1 to the corresponding bit of this register will clear it.
Table 9. Port x Alternate Registers 0
(PA_ALT0 = 00A6h, PB_ALT0 = 00A7h, PC_ALT0 = 00CEh, PD_ALT0 = 00CFh)
Bit
7
0
6
0
5
0
4
0
3
0
2
0
1
0
0
0
Reset
CPU Access
W
W
W
W
W
W
W
W
Note: W = Write only
Port x Alternate Register 1
In conjunction with the other GPIO Control registers, the Port x Alternate Register 1 (see
Table 10) controls the operating modes of the GPIO port pins. For more details on GPIO
mode selection, see Table 6 on page 50.
Table 10. Port x Alternate Registers 1
(PA_ALT1 = 0098h, PB_ALT1 = 009Ch, PC_ALT1 = 00A0h, PD_ALT1 = 00A4h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Port x Alternate Register 2
In conjunction with the other GPIO Control registers, the Port x Alternate Register 2 (see
Table 11) controls the operating modes of the GPIO port pins. For more details on GPIO
mode selection, see Table 6 on page 50.
Table 11. Port x Alternate Registers 2
(PA_ALT2 = 0099h, PB_ALT2 = 009Dh, PC_ALT2 = 00A1h, PD_ALT2 = 00A5h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
PS019215-0910
General-Purpose Input/Output
eZ80F91 MCU
Product Specification
57
Interrupt Controller
The interrupt controller on the eZ80F91 device routes the interrupt request signals from
the internal peripherals, external devices (via the internal port I/O), and the nonmaskable
interrupt (NMI) pin to the CPU.
Maskable Interrupts
On the eZ80F91 device, all maskable interrupts use the CPU’s vectored interrupt function.
The size of I register is modified to 16 bits in the eZ80F91 device differing from the previ-
ous versions of eZ80® CPU, to allow for a 16 MB range of interrupt vector table place-
ment. Additionally, the size of the IVECT register is increased from 8 bits to 9 bits to
provide an interrupt vector table that is expanded and more easily integrated with other
interrupts.
The vectors are 4 bytes (32 bits) apart, even though only 3 bytes (24 bits) are required.
A fourth byte is implemented for both programmability and expansion purposes.
Starting the interrupt vectors at 40hallows for easy implementation of the interrupt con-
troller vectors with the RST vectors. Table 12 lists the interrupt vector sources by priority
for each of the maskable interrupt sources. The maskable interrupt sources are listed in
order of their priority, with vector 40h being the highest-priority interrupt. In ADL mode,
the full 24-bit interrupt vector is located at starting address {I[15:1], IVECT[8:0]}, where
I[15:0] is the CPU’s Interrupt Page Address register.
Table 12. Interrupt Vector Sources by Priority
Priority
Vector
040h
044h
048h
04Ch
050h
054h
058h
05Ch
060h
064h
068h
Source
EMAC Rx
EMAC Tx
EMAC SYS
PLL
Priority
24
Vector
0A0h
0A4h
0A8h
0ACh
0B0h
0B4h
0B8h
0BCh
0C0h
0C4h
0C8h
Source
Port B 0
Port B 1
Port B 2
Port B 3
Port B 4
Port B 5
Port B 6
Port B 7
Port C 0
Port C 1
Port C 2
0
1
25
2
26
3
27
4
Flash
28
5
Timer 0
Timer 1
Timer 2
Timer 3
Unused*
Unused*
29
6
30
7
31
8
32
9
33
10
34
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
58
Table 12. Interrupt Vector Sources by Priority (Continued)
Priority
11
Vector
06Ch
070h
074h
078h
07Ch
080h
084h
088h
08Ch
090h
094h
098h
09Ch
Source
RTC
Priority
35
Vector
0CCh
0D0h
0D4h
0D8h
0DCh
0E0h
0E4h
0E8h
0ECh
0F0h
0F4h
0F8h
0FCh
Source
Port C 3
Port C 4
Port C 5
Port C 6
Port C 7
Port D 0
Port D 1
Port D 2
Port D 3
Port D 4
Port D 5
Port D 6
Port D 7
12
UART 0
UART 1
36
13
37
2
14
I C
38
15
SPI
39
16
Port A 0
Port A 1
Port A 2
Port A 3
Port A 4
Port A 5
Port A 6
Port A 7
40
17
41
18
42
19
43
20
44
21
45
22
46
23
47
Note: *The vector addresses 064h and 068h are left unused to avoid conflict with the nonmaskable
interrupt (NMI) address 066h. The NMI is prioritized higher than all maskable interrupts.
The program must store the interrupt service routine starting address in the
four-byte interrupt vector locations. For example in ADL mode, the three-byte address for
the SPI interrupt service routine is stored at {I[15:1], 07Ch}, {I[15:1], 07Dh}, and {I[15:1],
07Eh}. In Z80® mode, the two-byte address for the SPI interrupt service routine is stored at
{MBASE[7:0], I[7:1], 07Ch} and {MBASE, I[7:1], 07Dh}. The LSB is stored at the lower
address.
When one or more interrupt requests (IRQs) become active, an interrupt request is
generated by the interrupt controller and sent to the CPU. The corresponding 9-bit
interrupt vector for the highest-priority interrupt is placed on the 9-bit interrupt vector bus,
IVECT[8:0]. The interrupt vector bus is internal to the eZ80F91 device and is therefore
externally not visible. The response time of the CPU to an interrupt request is a function of
the current instruction being executed as well as the number of wait states being asserted.
The interrupt vector, {I[15:1], IVECT[8:0]} is visible on the address bus (ADDR[23:0]),
when the interrupt service routine begins. The response of the CPU to a vectored interrupt
on the eZ80F91 device is listed in Table 13 on page 59. Interrupt sources are required to be
active until the Interrupt Service Routine (ISR) starts.
The lower bit of the I register is replaced with the MSB of the IVECT from the interrupt con-
troller. As a result, the interrupt vector table is required to be placed onto a 512-byte
Note:
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
59
boundary. Setting the LSB of the I register produces no effect on the interrupt vector
address.
Table 13. Vectored Interrupt Operation
Memory
Mode
ADL MADL
Bit
Bit
Operation
®
Z80 Mode 0
0
Read the LSB of the interrupt vector placed on the internal vectored interrupt
bus, IVECT [8:0], by the interrupting peripheral.
IEF1 0
IEF2 0
The Starting Program Counter is effective {MBASE, PC[15:0]}.
Push the 2-byte return address PC[15:0] onto the ({MBASE,SPS}) stack.
The ADL mode bit remains cleared to 0.
The interrupt vector address is located at { MBASE, I[7:1], IVECT[8:0] }.
PC[23:0] ( { MBASE, I[7:1], IVECT[8:0] } ).
The interrupt service routine must end with RETI.
ADL Mode
1
0
Read the LSB of the interrupt vector placed on the internal vectored interrupt
bus, IVECT [8:0], by the interrupting peripheral.
IEF1 0
IEF2 0
The Starting Program Counter is PC[23:0].
Push the 3-byte return address, PC[23:0], onto the SPL stack.
The ADL mode bit remains set to 1.
The interrupt vector address is located at { I[15:1], IVECT[8:0] }.
PC[23:0] ( { I[15:1], IVECT[8:0] } ).
The interrupt service routine must end with RETI.
Z80 Mode
0
1
Read the LSB of the interrupt vector placed on the internal vectored interrupt
bus, IVECT[8:0], bus by the interrupting peripheral.
• IEF1 0
• IEF2 0
• The Starting Program Counter is effective {MBASE, PC[15:0]}.
• Push the 2-byte return address, PC[15:0], onto the SPL stack.
• Push a 00h byte onto the SPL stack to indicate an interrupt from Z80 mode
(because ADL = 0).
• Set the ADL mode bit to 1.
• The interrupt vector address is located at { I[15:1], IVECT[8:0] }.
• PC[23:0] ( { I[15:1], IVECT[8:0] } ).
• The interrupt service routine must end with RETI.L
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
60
Table 13. Vectored Interrupt Operation (Continued)
Memory
Mode
ADL MADL
Bit
Bit
Operation
ADL Mode
1
1
Read the LSB of the interrupt vector placed on the internal vectored interrupt
bus, IVECT [8:0], by the interrupting peripheral.
• IEF1 0
• IEF2 0
• The Starting Program Counter is PC[23:0].
• Push the 3-byte return address, PC[23:0], onto the SPL stack.
• Push a 01h byte onto the SPL stack to indicate a restart from ADL mode
(because ADL = 1).
• The ADL mode bit remains set to 1.
• The interrupt vector address is located at {I[15:1], IVECT[8:0]}.
• PC[23:0] ( { I[15:1], IVECT[8:0] } ).
• The interrupt service routine must end with RETI.L
Interrupt Priority Registers
The eZ80F91 provides two interrupt priority levels for the maskable interrupts. The default
priority (or Level 0) is listed in Table 14 on page 61. The default priority of any maskable
interrupt increases to Level 1 (a higher priority than any Level 0 interrupt) by setting the
appropriate bit in the Interrupt Priority registers as listed in Table 14 on page 61.
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
61
Table 14. Interrupt Priority Registers (INT_P0 = 0010h, INT_P1 = 0011h, INT_P2 = 0012h, INT_P3
= 0013h, INT_P4 = 0014h, INT_P5 = 0015h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
INT_P0 Reset
INT_P1 Reset
INT_P2 Reset
INT_P3 Reset
INT_P4 Reset
INT_P5 Reset
CPU Access
0
0
0
0
0
0
0
0
0
0
0*
0
0*
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Note: X = Undefined; R/W = Read/Write, *Unused.
Bit
Position
Value Description
Default Interrupt Priority
Level One Interrupt Priority
7
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
INT_PX
6
Default Interrupt Priority
Level One Interrupt Priority
Default Interrupt Priority
Level One Interrupt Priority
Default Interrupt Priority
Level One Interrupt Priority
Default Interrupt Priority
Level One Interrupt Priority
Default Interrupt Priority
Level One Interrupt Priority
Default Interrupt Priority
Level One Interrupt Priority
Default Interrupt Priority
Level One Interrupt Priority
INT_PX
5
INT_PX
4
INT_PX
3
INT_PX
2
INT_PX
1
INT_PX
0
INT_PX
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
62
The Interrupt Vector Priority Control bits are listed in Table 15.
Table 15. Interrupt Vector Priority Control Bits
Priority Control
Bit
Priority Control
Bit
Vector
040h
044h
048h
04Ch
050h
054h
058h
05Ch
060h
064h
068h
06Ch
070h
074h
078h
07Ch
080h
084h
088h
08Ch
090h
094h
098h
09Ch
Source
EMAC Rx
EMAC Tx
EMAC SYS
PLL
Vector
Source
Port B 0
Port B 1
Port B 2
Port B 3
Port B 4
Port B 5
Port B 6
Port B 7
Port C 0
Port C 1
Port C 2
Port C 3
Port C 4
Port C 5
Port C 6
Port C 7
Port D 0
Port D 1
Port D 2
Port D 3
Port D 4
Port D 5
Port D 6
Port D 7
INT_P0[0]
INT_P0[1]
INT_P0[2]
INT_P0[3]
INT_P0[4]
INT_P0[5]
INT_P0[6]
INT_P0[7]
INT_P1[0]
INT_P1[1]
INT_P1[2]
INT_P1[3]
INT_P1[4]
INT_P1[5]
INT_P1[6]
INT_P1[7]
INT_P2[0]
INT_P2[1]
INT_P2[2]
INT_P2[3]
INT_P2[4]
INT_P2[5]
INT_P2[6]
INT_P2[7]
INT_P3[0]
INT_P3[1]
INT_P3[2]
INT_P3[3]
INT_P3[4]
INT_P3[5]
INT_P3[6]
INT_P3[7]
INT_P4[0]
INT_P4[1]
INT_P4[2]
INT_P4[3]
INT_P4[4]
INT_P4[5]
INT_P4[6]
INT_P4[7]
INT_P5[0]
INT_P5[1]
INT_P5[2]
INT_P5[3]
INT_P5[4]
INT_P5[5]
INT_P5[6]
INT_P5[7]
0A0h
0A4h
0A8h
0ACh
0B0h
0B4h
0B8h
0BCh
0C0h
0C4h
0C8h
0CCh
0D0h
0D4h
0D8h
0DCh
0E0h
0E4h
0E8h
0ECh
0F0h
0F4h
0F8h
0FCh
Flash
Timer 0
Timer 1
Timer 2
Timer 3
Unused*
Unused*
RTC
UART 0
UART 1
2
I C
SPI
Port A 0
Port A 1
Port A 2
Port A 3
Port A 4
Port A 5
Port A 6
Port A 7
Note: *The vector addresses 064hand 068hare left unused to avoid conflict with the NMI vector address 066h.
If more than one maskable interrupt is prioritized to a higher level (Level 1), the higher-
priority interrupts follow the priority order as listed in Table 14 on page 61. For example,
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
63
Table 16 lists the maskable interrupts 044h(EMAC Tx), 084h(Port A 1), and 06Ch
(RTC) as elevated to priority Level 1. Table 17 lists the new interrupt priority for the top
ten maskable interrupts.
Table 16. Example: Maskable Interrupt Priority
Priority
Register
INT_P0
INT_P1
INT_P2
INT_P3
INT_P4
INT_P5
Setting Description
02h
08h
02h
00h
00h
00h
Increase 044h (EMAC Tx) to Priority Level 1
Increase 06Ch (RTC) to Priority Level 1
Increase 084h (Port A1) to Priority Level 1
Default priority
Default priority
Default priority
Table 17. Example: Priority Levels for Maskable Interrupts
Priority
Vector
044h
06Ch
084h
040h
048h
04Ch
050h
054h
058h
05Ch
Source
EMAC Tx
RTC
0
1
2
3
4
5
6
7
8
9
Port A 1
EMAC Rx
EMAC SYS
PLL
Flash
Timer 0
Timer 1
Timer 2
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
64
GPIO Port Interrupts
All interrupts are latched. In effect, an interrupt is held even if the interrupt occurs while
another interrupt is being serviced and interrupts are disabled, or if the interrupt is of a
lower priority. However, before the latched ISR completes its task or re-enables interrupts,
the ISR must clear the interrupt. For on-chip peripherals, the interrupt is cleared when the
data register is accessed. For GPIO-level interrupts, the interrupt signal must be removed
before the ISR completes its task. For GPIO-edge interrupts (single and dual), the interrupt
is cleared by writing a 1 to the corresponding bit position in the Px_ALT0 register. See
Edge Triggered Interrupts on page 54.
For F91 devices with a ZDI or JTAG revision less than 2, care must be taken using a GPIO
data register when it is configured for interrupts. For edge-interrupt modes (modes 6 and
9) as discussed earlier, writing 1 clears the interrupt. However, 1 in the data register also
conveys a particular configuration. For example, when the data register Px_DR is set first
followed by the Px_ALT2, Px_ALT1, and Px_DDR registers, then the configuration is per-
formed correctly. Writing 1 to the register later to clear interrupts does not change the con-
figuration. For F91 devices with a ZDI or JTAG revision 2 or later, the clearing of
interrupts is accomplished through the new Px_ALT0 registers and the above problem does
not exist.
Note:
In mode 9 operation, if the GPIO is already configured for mode 9 and if the trigger edge
must be changed (from falling to rising or from rising to falling), then the configuration
must be changed to another mode, such as Mode 2, and then changed back to mode 9. For
example, enter mode 2 by writing the registers in the sequence PxDR, Px_ALT2, Px_ALT1,
and Px_DDR. Next, change back to mode 9 by writing the registers in the sequence PxDR,
Px_ALT2, Px_ALT1, and Px_DDR.
In Mode 8 operation, if the GPIO is configured for level-sensitive interrupts, a Write value
to Px_DR after configuration must be the same Write value used when configuring the
GPIO.
PS019215-0910
Interrupt Controller
eZ80F91 MCU
Product Specification
65
Chip Selects and Wait States
The eZ80F91 generates four chip selects for external devices. Each chip select is pro-
grammed to access either the memory space or the I/O space. The memory chip selects are
individually programmed on a 64 KB boundary. Each I/O chip selects choose a 256-byte
section of I/O space. In addition, each chip select is programmed for up to 7 Wait states.
Memory and I/O Chip Selects
Each of the chip selects are enabled either for the memory address space or the I/O address
space, but not both. To select the memory address space for a particular chip select,
CSX_IO (CSx_CTL[4]) must be reset to 0. To select the I/O address space for a particular
chip select, CSX_IO must be set to 1. After RESET, the default is for all chip selects to be
configured for the memory address space. For either the memory address space or the I/O
address space, the individual chip selects must be enabled by setting CSX_EN
(CSx_CTL[3]) to 1.
Memory Chip Select Operation
Operation of each of the memory chip select is controlled by three control registers. To
enable a particular memory chip select, the following conditions must be satisfied:
•
•
•
The chip select is enabled by setting CSx_EN to 1.
The chip select is configured for memory by clearing CSX_IO to 0.
The address is in the associated chip select range:
CSx_LBR[7:0] ADDR[23:16] CSx_UBR[7:0].
•
•
On-chip Flash is not configured for the same address space, because on-chip Flash is
prioritized higher than all memory chip selects.
On-chip RAM is not configured for the same address space, because on-chip RAM is
prioritized higher than Flash and all memory chip selects.
•
•
No higher priority (lower number) chip select meets the above conditions.
A memory access instruction must be executing.
If all the preceding conditions are satisfied to generate a memory chip select, then the fol-
lowing results occur:
•
•
•
The appropriate chip select—CS0, CS1, CS2, or CS3 is asserted (driven Low).
MREQ is asserted (driven Low).
Depending on the instruction either RD or WR is asserted (driven Low).
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
66
If the upper and lower bounds are set to the same value (CSx_UBR = CSx_LBR), then a
particular chip select is valid for a single 64 KB page.
Memory Chip Select Priority
A lower-numbered chip select is granted priority over a higher-numbered chip select. For
example, if the address space of chip select 0 overlaps the chip select 1 address space, then
chip select 0 is active. If the address range programmed for any chip select signal overlaps
with the address of internal memory, the internal memory is accorded higher priority. If
the particular chip select(s) are configured with an address range that overlaps with an
internal memory address and when the internal memory is accessed, the chip select signal
is not asserted.
Reset States
On RESET, chip select 0 is active for all addresses, because its Lower Bound register
resets to 00hand its Upper Bound register resets to FFh. All the other chip select Lower
and Upper Bound registers reset to 00h.
Memory Chip Select Example
The use of Memory chip selects is displayed in Figure 7 on page 67. The associated con-
trol register values are listed in Table 18 on page 67. In this example, all four chip selects
are enabled and configured for memory addresses. Also, CS1 overlaps with CS0. Because
CS0 is prioritized higher than CS1, CS1 is not active for much of its defined address
space.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
67
Memory
Location
CS3_UBR = FFh
FFFFFFh
CS3 Active
3 MB Address Space
CS3_LBR = D0h
CS2_UBR = CFh
D00000h
CFFFFFh
CS2 Active
3 MB Address Space
CS2_LBR = A0h
CS1_UBR = 9Fh
A00000h
9FFFFFh
CS1 Active
2 MB Address Space
800000h
7FFFFFh
CS0_UBR = 7Fh
CS0 Active
8 MB Address Space
CS0_LBR = CS1_LBR = 00h
000000h
Figure 7. Example: Memory Chip Select
Table 18. Example: Register Values for Figure 7 Memory Chip Select
Chip
Select
CSx_CTL[3] CSx_CTL[4]
CSx_EN
CSx_IO
CSx_LBR CSx_UBR Description
CS0
CS1
CS2
CS3
1
0
00h
00h
A0h
D0h
7Fh
9Fh
CFh
FFh
CS0 is enabled as a Memory chip
select. Valid addresses range from
000000h–7FFFFFh.
1
1
1
0
0
0
CS1 is enabled as a Memory chip
select. Valid addresses range from
800000h–9FFFFFh.
CS2 is enabled as a Memory chip
select. Valid addresses range from
A00000h–CFFFFFh.
CS3 is enabled as a Memory chip
select. Valid addresses range from
D00000h–FFFFFFh.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
68
Input/Output Chip Select Operation
I/O chip selects will be active only when the CPU is performing I/O instructions. Because
the I/O space is separate from the memory space in the eZ80F91 device, a conflict
between I/O and memory addresses never occurs.
The eZ80F91 supports a 16-bit I/O address. The I/O chip select logic decodes the High
byte of the I/O address, ADDR[15:8]. Because the upper byte of the address bus,
ADDR[23:16], is ignored, the I/O devices are always accessed from memory mode (ADL
or Z80®). The MBASE offset value used for setting the Z80 MEMORY mode page is also
always ignored.
Four I/O chip selects are available with the eZ80F91 device. To generate a particular I/O
chip select, the following conditions must be satisfied:
•
•
•
•
•
The chip select is enabled by setting CSx_EN to 1.
The chip select is configured for I/O by setting CSX_IO to 1.
An I/O chip select address match occurs—ADDR[15:8] = CSx_LBR[7:0].
No higher-priority (lower-number) chip select meets the above conditions.
The I/O address is not within the on-chip peripheral address range 0000h–00FFh.
On-chip peripheral registers assume priority for all addresses where:
0000h
ADDR[15:0] 00FFh
•
An I/O instruction must be executing.
If all of the foregoing conditions are met to generate an I/O chip select, then the following
results occur:
•
•
•
The appropriate chip select—CS0, CS1, CS2, or CS3 is asserted (driven Low).
IORQ is asserted (driven Low).
Depending on the instruction, either RD or WR is asserted (driven Low).
Wait States
For each of the chip selects, programmable Wait states are asserted to provide external
devices with additional clock cycles to complete their Read or Write operations. The
number of wait states for a particular chip select is controlled by the 3-bit field
CSx_WAIT (CSx_CTL[7:5]). The Wait states are independently programmed to provide 0
to 7 Wait states for each chip select. The Wait states idle the CPU for the specified number
of system clock cycles.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
69
WAIT Input Signal
Similar to the programmable wait states, an external peripheral drives the WAIT input pin
to force the CPU to provide additional clock cycles to complete its Read or Write opera-
tion. Driving the WAIT pin Low stalls the CPU. The CPU resumes operation on the first
rising edge of the internal system clock following deassertion of the WAIT pin.
If the WAIT pin is to be driven by an external device, the corresponding chip select for
the device must be programmed to provide at least one wait state. Due to input sampling
of the WAIT input pin (see Figure 8), one programmable wait state is required to allow
the external peripheral sufficient time to assert the WAIT pin. It is recommended that the
corresponding chip select for the external device be programmed to provide the maxi-
mum number of wait states (seven).
Caution:
eZ80
CPU
Wait
Pin
D
Q
System Clock
Figure 8. Wait Input Sampling Block Diagram
An example of wait state operation is illustrated in Figure 9 on page 70. In this example,
the chip select is configured to provide a single wait state. The external peripheral
accessed drives the WAIT pin Low to request assertion of an additional wait state. If the
WAIT pin is asserted for additional system clock cycles, wait states are added until the
WAIT pin is deasserted (active High).
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
70
TCLK
TWAIT
SCLK
ADDR[23:0]
DATA[7:0]
(output)
CSx
MREQ
RD
INSTRD
Figure 9. Example: Wait State Read Operation
Chip Selects During Bus Request/Bus Acknowledge Cycles
When the CPU relinquishes the address bus to an external peripheral in response to an
external bus request (BUSREQ), it drives the bus acknowledge pin (BUSACK) Low. The
external peripheral then drives the address bus (and data bus). The CPU continues to gen-
erate chip select signals in response to the address on the bus. External devices cannot
access the internal registers of the eZ80F91.
Bus Mode Controller
The bus mode controller allows the address and data bus timing and signal formats of the
eZ80F91 to be configured to connect with external devices compatible with eZ80®, Z80®,
Intel™ and Motorola microcontrollers. Bus modes for each of the chip selects are config-
ured independently using the Chip Select Bus Mode Control Registers. The number of
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
71
CPU system clock cycles per bus mode state is also independently programmable. For
Intel bus mode, multiplexed address and data are selected in which both the lower byte of
the address and the data byte use the data bus, DATA[7:0]. Each of the bus modes are
explained in the following sections.
eZ80® Bus Mode
Chip selects configured for eZ80 bus mode do not modify the bus signals from the CPU.
The timing diagrams for external Memory and I/O Read and Write operations are shown in
the AC Characteristics on page 344. The default mode for each chip select is eZ80 mode.
Z80® Bus Mode
Chip selects configured for Z80 mode modify the eZ80 bus signals to match the Z80 micro-
processor address and data bus interface signal format and timing. During Read operations,
the Z80 Bus mode employs three states—T1, T2, and T3 as listed in Table 19.
Table 19. Z80 Bus Mode Read States
STATE T1 The Read cycle begins in State T1. The CPU drives the address onto the address bus and
the associated chip select signal is asserted.
STATE T2 During State T2, the RD signal is asserted. Depending on the instruction, either the MREQ
or IORQ signal is asserted. If the external WAIT pin is driven Low at least one CPU system
clock cycle prior to the end of State T2, additional Wait states (T
WAIT pin is driven High.
) are asserted until the
WAIT
STATE T3 During State T3, no bus signals are altered. The data is latched by the eZ80F91 at the rising
edge of the CPU system clock at the end of State T3.
During Write operations, Z80 Bus mode employs three states—T1, T2, and T3 as listed in
Table 20.
Table 20. Z80 Bus Mode Write States
STATE T1 The Write cycle begins in State T1. The CPU drives the address onto the address bus, and
the associated chip select signal is asserted.
STATE T2 During State T2, the WR signal is asserted. Depending upon the instruction, either the
MREQ or IORQ signal is asserted. If the external WAIT pin is driven Low at least one CPU
system clock cycle prior to the end of State T2, additional wait states (T
until the WAIT pin is driven High.
) are asserted
WAIT
STATE T3 During State T3, no bus signals are altered.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
72
Z80® bus mode Read and Write timing is displayed in Figure 10 and Figure 11 on page
73. The Z80 bus mode states are configured for 1 to 15 CPU system clock cycles. In the
figures, each Z80 bus mode state is two CPU system clock cycles in duration. The figures
also display the assertion of 1 wait state (TWAIT) by the external peripheral during each
Z80 bus mode cycle.
T
T1
T2
T3
CLK
System Clock
ADDR[23:0]
DATA[7:0]
CSx
RD
WAIT
WR
MREQ
or IORQ
Figure 10. Example: Z80 Bus Mode Read Timing
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
73
T
T1
T2
T3
CLK
System Clock
ADDR[23:0]
DATA[7:0]
CSx
RD
WAIT
WR
MREQ
or IORQ
Figure 11. Example: Z80® Bus Mode Write Timing
Intel Bus Mode
Chip selects configured for Intel bus mode modify the CPU bus signals to duplicate a
four-state memory transfer similar to that found on Intel-style microcontrollers. The bus
signals and eZ80F91 pins are mapped as displayed in Figure 12 on page 74. In Intel bus
mode, you select either multiplexed or nonmultiplexed address and data buses. In
nonmultiplexed operation, the address and data buses are separate. In multiplexed
operation, the lower byte of the address, ADDR[7:0], also appears on the data bus,
DATA[7:0], during State T1 of the Intel bus mode cycle.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
74
Bus Mode
Controller
eZ80 Bus Mode
Signals (Pins)
Intel Bus
Signal Equvalents
INSTRD
RD
ALE
RD
WR
WR
WAIT
READY
MREQ
MREQ
IORQ
IORQ
ADDR[23:0]
ADDR[23:0]
ADDR[7:0]
Multiplexed
Bus
Controller
DATA[7:0]
DATA[7:0]
Figure 12. Intel Bus Mode Signal and Pin Mapping
Intel™ Bus Mode—Separate Address and Data Buses
During Read operations with separate address and data buses, the Intel bus mode employs
four states—T1, T2, T3, and T4 as listed in Table 21.
Table 21. Intel Bus Mode Read States—Separate Address and Data Buses
STATE T1 The Read cycle begins in State T1. The CPU drives the address onto the address bus and
the associated chip select signal is asserted. The CPU drives the ALE signal High at the
beginning of T1. In the middle of T1, the CPU drives ALE Low to facilitate the latching of the
address.
STATE T2 During State T2, the CPU asserts the RD signal. Depending on the instruction, either the
MREQ or IORQ signal is asserted.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
75
Table 21. Intel Bus Mode Read States—Separate Address and Data Buses (Continued)
STATE T3 During State T3, no bus signals are altered. If the external READY (WAIT) pin is driven Low
at least one CPU system clock cycle prior to the beginning of State T3, additional wait states
(T
) are asserted until the READY pin is driven High.
WAIT
STATE T4 The CPU latches the Read data at the beginning of State T4. The CPU deasserts the RD
signal and completes the Intel bus mode cycle.
During Write operations with separate address and data buses, the Intel bus mode employs
four states—T1, T2, T3, and T4 as listed in Table 22.
Table 22. Intel Bus Mode Write States—Separate Address and Data Buses
STATE T1 The Write cycle begins in State T1. The CPU drives the address onto the address bus, the
associated chip select signal is asserted, and the data is driven onto the data bus. The CPU
drives the ALE signal High at the beginning of T1. During the middle of T1, the CPU drives
ALE Low to facilitate the latching of the address.
STATE T2 During State T2, the CPU asserts the WR signal. Depending on the instruction, either the
MREQ or IORQ signal is asserted.
STATE T3 During State T3, no bus signals are altered. If the external READY (WAIT) pin is driven Low
at least one CPU system clock cycle prior to the beginning of State T3, additional wait states
(T
) are asserted until the READY pin is driven High.
WAIT
STATE T4 The CPU deasserts the WR signal at the beginning of State T4. The CPU holds the data
and address buses till the end of T4. The bus cycle is completed at the end of T4.
Intel bus mode timing is displayed for a Read operation in Figure 13 on page 76 and for a
Write operation in Figure 14 on page 77. If the READY signal (external WAIT pin) is
driven Low prior to the beginning of State T3, additional wait states (TWAIT) are asserted
until the READY signal is driven High. The Intel bus mode states are configured for 2 to
15 CPU system clock cycles. In the Figure 13 on page 76 and Figure 14 on page 77, each
Intel bus mode state is 2 CPU system clock cycles in duration. Figure 13 on page 76 and
Figure 14 on page 77 also display the assertion of one Wait state (TWAIT) by the selected
peripheral.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
76
T
WAIT
T1
T2
T3
T4
System Clock
ADDR[23:0]
DATA[7:0]
CSx
ALE
RD
READY
WR
MREQ
or IORQ
Figure 13. Example: Intel Bus Mode Read Timing—Separate Address and Data Buses
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
77
T
WAIT
T1
T2
T3
T4
System Clock
ADDR[23:0]
DATA[7:0]
CSx
ALE
WR
READY
RD
MREQ
or IORQ
Figure 14. Example: Intel Bus Mode Write Timing—Separate Address and Data Buses
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
78
Intel™ Bus Mode—Multiplexed Address and Data Bus
During Read operations with multiplexed address and data, the Intel™ bus mode employs
four states—T1, T2, T3, and T4 as listed in Table 23.
Table 23. Intel Bus Mode Read States—Multiplexed Address and Data Bus
STATE T1 The Read cycle begins in State T1. The CPU drives the address onto the DATA bus and the
associated chip select signal is asserted. The CPU drives the ALE signal High at the
beginning of T1. In the middle of T1, the CPU drives ALE Low to facilitate the latching of the
address.
STATE T2 During State T2, the CPU removes the address from the DATA bus and asserts the RD
signal. Depending upon the instruction, either the MREQ or IORQ signal is asserted.
STATE T3 During State T3, no bus signals are altered. If the external READY (WAIT) pin is driven Low
at least one CPU system clock cycle prior to the beginning of State T3, additional wait states
(T
) are asserted until the READY pin is driven High.
WAIT
STATE T4 The CPU latches the Read data at the beginning of State T4. The CPU deasserts the RD
signal and completes the Intel™ bus mode cycle.
During Write operations with multiplexed address and data, the Intel™ bus mode employs
four states—T1, T2, T3, and T4 as listed in Table 24.
Table 24. Intel Bus Mode Write States—Multiplexed Address and Data Bus
STATE T1 The Write cycle begins in State T1. The CPU drives the address onto the DATA bus and
drives the ALE signal High at the beginning of T1. During the middle of T1, the CPU drives
ALE Low to facilitate the latching of the address.
STATE T2 During State T2, the CPU removes the address from the DATA bus and drives the Write
data onto the DATA bus. The WR signal is asserted to indicate a Write operation.
STATE T3 During State T3, no bus signals are altered. If the external READY (WAIT) pin is driven Low
at least one CPU system clock cycle prior to the beginning of State T3, additional wait states
(T
) are asserted until the READY pin is driven High.
WAIT
STATE T4 The CPU deasserts the Write signal at the beginning of T4 identifying the end of the Write
operation. The CPU holds the data and address buses through the end of T4. The bus cycle
is completed at the end of T4.
Signal timing for Intel bus mode with multiplexed address and data is displayed for a Read
operation in Figure 15 on page 79 and for a Write operation in Figure 16 on page 80. In
Figure 15 on page 79 and Figure 16 on page 80, each Intel bus mode state is 2 CPU system
clock cycles in duration. Figure 15 on page 79 and Figure 16 on page 80 also display the
assertion of one wait state (TWAIT) by the selected peripheral.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
79
T
WAIT
T1
T2
T3
T4
System Clock
ADDR[23:0]
DATA[7:0]
CSx
ALE
RD
READY
WR
MREQ
or IORQ
Figure 15. Example: Intel Bus Mode Read Timing—Multiplexed Address and Data Bus
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
80
T
WAIT
T1
T2
T3
T4
System Clock
ADDR[23:0]
DATA[7:0]
CSx
ALE
WR
READY
RD
MREQ
or IORQ
Figure 16. Example: Intel Bus Mode Write Timing—Multiplexed Address and Data Bus
Motorola Bus Mode
Chip selects configured for Motorola bus mode modify the CPU bus signals to duplicate
an eight-state memory transfer similar to that on the Motorola-style microcontrollers. The
bus signals (and eZ80F91 I/O pins) are mapped as displayed in Figure 17 on page 81.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
81
Bus Mode
Controller
eZ80 Bus Mode
Signals (Pins)
Motorola Bus
Signal Equvalents
INSTRD
RD
AS
DS
R/W
WR
WAIT
DTACK
MREQ
MREQ
IORQ
IORQ
ADDR[23:0]
ADDR[23:0]
DATA[7:0]
DATA[7:0]
Figure 17. Motorola Bus Mode Signal and Pin Mapping
During Write operations, the Motorola bus mode employs eight states—S0, S1, S2, S3,
S4, S5, S6, and S7 as listed in Table 25.
Table 25. Motorola Bus Mode Read States
STATE S0 The Read cycle starts in state S0. The CPU drives R/W High to identify a Read cycle.
STATE S1 Entering state S1, the CPU drives a valid address on the address bus, ADDR[23:0].
STATE S2 On the rising edge of state S2, the CPU asserts AS and DS.
STATE S3 During state S3, no bus signals are altered.
STATE S4 During state S4, the CPU waits for a cycle termination signal DTACK (WAIT), a peripheral
signal. If the termination signal is not asserted at least one full CPU clock period prior to the
rising clock edge at the end of S4, the CPU inserts WAIT (T
asserted. Each wait state is a full bus mode cycle.
) states until DTACK is
WAIT
STATE S5 During state S5, no bus signals are altered.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
82
Table 25. Motorola Bus Mode Read States (Continued)
STATE S6 During state S6, data from the external peripheral device is driven onto the data bus.
STATE S7 On the rising edge of the clock entering state S7, the CPU latches data from the addressed
peripheral device and deasserts AS and DS. The peripheral device deasserts DTACK at
this time.
The eight states for a Write operation in Motorola bus mode are listed in Table 26.
Table 26. Motorola Bus Mode Write States
STATE S0 The Write cycle starts in S0. The CPU drives R/W High (if a preceding Write cycle leaves R/
W Low).
STATE S1 Entering S1, the CPU drives a valid address on the address bus.
STATE S2 On the rising edge of S2, the CPU asserts AS and drives R/W Low.
STATE S3 During S3, the data bus is driven out of the high-impedance state as the data to be written is
placed on the bus.
STATE S4 At the rising edge of S4, the CPU asserts DS. The CPU waits for a cycle termination signal
DTACK (WAIT). If the termination signal is not asserted at least one full CPU clock period
prior to the rising clock edge at the end of S4, the CPU inserts WAIT (T
DTACK is asserted. Each wait state is a full bus mode cycle.
) states until
WAIT
STATE S5 During S5, no bus signals are altered.
STATE S6 During S6, no bus signals are altered.
STATE S7 On entering S7, the CPU deasserts AS and DS. As the clock rises at the end of S7, the CPU
drives R/W High. The peripheral device deasserts DTACK at this time.
Signal timing for Motorola bus mode is displayed for a Read operation in Figure 18 on
page 83 and for a Write operation in Figure 19 on page 84. In these two figures, each
Motorola bus mode state is 2 CPU system clock cycles in duration.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
83
S3
S6
S7
S0
S1
S2
S4
S5
System Clock
ADDR[23:0]
DATA[7:0]
CSx
AS
DS
R/W
DTACK
MREQ
or IORQ
Figure 18. Example: Motorola Bus Mode Read Timing
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
84
S3
S6
S7
S0
S1
S2
S4
S5
System Clock
ADDR[23:0]
DATA[7:0]
CSx
AS
DS
R/W
DTACK
MREQ
or IORQ
Figure 19. Example: Motorola Bus Mode Write Timing
Switching Between Bus Modes
When switching bus modes between Intel™ to Motorola, Motorola to Intel™, eZ80® to
Motorola, or eZ80 to Intel™, there is one extra SCLK cycle added to the bus access. An
extra clock cycle is not required for repeated access in any of the bus modes (for example,
Intel™ to Intel™). An extra clock cycle is not required for Intel™ (or Motorola) to eZ80
bus mode (under normal operation). The extra clock cycle is not shown in the timing
examples. Due to the asynchronous nature of these bus protocols, the extra delay does not
impact peripheral communication.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
85
Chip Select Registers
Chip Select x Lower Bound Register
For Memory chip selects, the chip select x Lower Bound register (see Table 27) defines
the lower bound of the address range for which the corresponding Memory chip select (if
enabled) is active. For I/O chip selects, the chip select x Lower Bound register defines the
address to which ADDR[15:8] is compared to generate an I/O chip select. All chip select
lower bound registers reset to 00h.
Table 27. Chip Select x Lower Bound Register (CS0_LBR = 00A8h, CS1_LBR = 00ABh,
CS2_LBR = 00AEh, CS3_LBR = 00B1h)
Bit
7
0
6
0
5
0
4
0
3
0
2
0
1
0
0
0
CS0_LBR Reset
CS1_LBR Reset
CS2_LBR Reset
CS3_LBR Reset
CPU Access
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Note: R/W = Read/Write.
Bit
Position
Value Description
00h– For Memory Chip Selects (CSx_IO = 0)
[7:0]
CSX_LBR
FFh
This byte specifies the lower bound of the chip select address
range. The upper byte of the address bus, ADDR[23:16], is
compared to the values contained in these registers for
determining whether a Memory chip select signal must be
generated.
For I/O Chip Selects (CSx_IO = 1)
This byte specifies the chip select address value. ADDR[15:8] is
compared to the values contained in these registers for
determining whether an I/O chip select signal must be generated.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
86
Chip Select x Upper Bound Register
For Memory chip selects, the Chip Select x Upper Bound registers, listed in Table 28,
defines the upper bound of the address range for which the corresponding Chip Select (if
enabled) are active. For I/O chip selects, this register produces no effect. The reset state for
the Chip Select 0 Upper Bound register is FFh when the reset state for the other Chip
Select Upper Bound registers is 00h.
Table 28. Chip Select x Upper Bound Register (CS0_UBR = 00A9h, CS1_UBR = 00ACh,
CS2_UBR = 00AFh, CS3_UBR = 00B2h)
Bit
7
1
6
1
5
1
4
1
3
1
2
1
1
1
0
1
CS0_UBR Reset
CS1_UBR Reset
CS2_UBR Reset
CS3_UBR Reset
CPU Access
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Note: R/W = Read/Write.
Bit
Position
Value Description
00h– For Memory Chip Selects (CSx_IO = 0)
[7:0]
CSX_UBR
FFh
This byte specifies the upper bound of the chip select address
range. The upper byte of the address bus, ADDR[23:16], is
compared to the values contained in these registers for
determining whether a chip select signal must be generated.
For I/O Chip Selects (CSx_IO = 1)
No effect.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
87
Chip Select x Control Register
The Chip Select x Control register (see Table 29) enables the chip selects, specifies the
type of chip select, and sets the number of wait states. The reset state for the Chip Select 0
Control register is E8hwhen the reset state for three other Chip Select Control registers is
00h.
Table 29. Chip Select x Control Register (CS0_CTL = 00AAh, CS1_CTL = 00ADh,
CS2_CTL = 00B0h, CS3_CTL = 00B3h)
Bit
7
1
6
1
5
1
4
0
3
1
2
0
0
0
0
R
1
0
0
0
0
R
0
0
0
0
0
R
CS0_CTL Reset
CS1_CTL Reset
CS2_CTL Reset
CS3_CTL Reset
CPU Access
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
Note: R/W = Read/Write; R = Read Only.
Bit
Position
Value Description
[7:5]
CSX_WAIT
000
001
010
011
100
101
110
111
0
0 wait states are asserted when this chip select is active.
1 wait state is asserted when this chip select is active.
2 wait states are asserted when this chip select is active.
3 wait states are asserted when this chip select is active.
4 wait states are asserted when this chip select is active.
5 wait states are asserted when this chip select is active.
6 wait states are asserted when this chip select is active.
7 wait states are asserted when this chip select is active.
Chip select is configured as a memory chip select.
Chip select is configured as an I/O chip select.
Chip select is disabled.
4
CSX_IO
1
3
0
CSX_EN
1
Chip select is enabled.
[2:0]
000
Reserved.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
88
Chip Select x Bus Mode Control Register
The Chip Select Bus Mode register (see Table 30) configures the chip select for eZ80®,
Z80®, Intel™, or Motorola bus modes. Changing the bus mode allows the eZ80F91 device
to interface to peripherals based on the Z80, Intel™, or Motorola style asynchronous bus
interfaces. When a bus mode other than eZ80 is programmed for a particular chip select,
the CSx_WAIT setting in that Chip Select Control Register is ignored.
Table 30. Chip Select x Bus Mode Control Register (CS0_BMC = 00F0h, CS1_BMC =
00F1h, CS2_BMC = 00F2h, CS3_BMC = 00F3h)
Bit
7
0
6
0
5
0
4
0
0
0
0
R
3
0
2
0
1
1
0
0
CS0_BMC Reset
CS1_BMC Reset
CS2_BMC Reset
CS3_BMC Reset
CPU Access
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Note: R/W = Read/Write; R = Read Only.
Bit
Position
Value Description
[7:6]
BUS_MODE
00
01
10
11
0
eZ80 bus mode
Z80 bus mode
Intel™ bus mode
Motorola bus mode
5
Separate address and data
AD_MUX
1
Multiplexed address and data—appears on data bus
DATA[7:0]
4
0
Reserved
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
89
Bit
Position
Value Description
[3:0]
0000 Not valid.
BUS_CYCLE
®
1, 2, 3
0001 Each bus mode state is 1 eZ80 clock cycle in duration.
0010 Each bus mode state is 2 eZ80 clock cycles in duration.
0011 Each bus mode state is 3 eZ80 clock cycles in duration.
0100 Each bus mode state is 4 eZ80 clock cycles in duration.
0101 Each bus mode state is 5 eZ80 clock cycles in duration.
0110 Each bus mode state is 6 eZ80 clock cycles in duration.
0111 Each bus mode state is 7 eZ80 clock cycles in duration.
1000 Each bus mode state is 8 eZ80 clock cycles in duration.
1001 Each bus mode state is 9 eZ80 clock cycles in duration.
1010 Each bus mode state is 10 eZ80 clock cycles in duration.
1011 Each bus mode state is 11 eZ80 clock cycles in duration.
1100 Each bus mode state is 12 eZ80 clock cycles in duration.
1101 Each bus mode state is 13 eZ80 clock cycles in duration.
1110 Each bus mode state is 14 eZ80 clock cycles in duration.
1111 Each bus mode state is 15 eZ80 clock cycles in duration.
Notes
1. Setting the BUS_CYCLE to 1 in Intel bus mode causes the ALE pin to not function properly.
2. Use of the external WAIT input pin in Z80 mode requires that BUS_CYCLE is set to a value
greater than 1.
3. BUS_CYCLE produces no effect in eZ80 mode.
Bus Arbiter
The Bus Arbiter within the eZ80F91 allows external bus masters to gain control of the
CPU memory interface bus. During normal operation, the eZ80F91 device is the bus mas-
ter. External devices request master use of the bus by asserting the BUSREQ pin. The Bus
Arbiter forces the CPU to release the bus after completing the current instruction. When
the CPU releases the bus, the Bus Arbiter asserts the BUSACK pin to notify the external
device that it can master the bus. When an external device assumes control of the memory
interface bus, the bus acknowledge cycle is complete. Table 31 on page 90 lists the status
of the pins on the eZ80F91 device during bus acknowledge cycles.
During a bus acknowledge cycle, the bus interface pins of the eZ80F91 device are used by
an external bus master to control the memory and I/O chip selects.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
90
Table 31. eZ80F91 Pin Status During Bus Acknowledge Cycles
Pin Symbol
Signal Direction
Description
ADDR23..ADDR0
Input
Allows external bus master to utilize the chip
select logic of the eZ80F91.
CS0
Output
Output
Output
Output
Tristate
Normal operation.
Normal operation.
Normal operation.
Normal operation.
CS1
CS2
CS3
DATA7..0
Allows external bus master to communicate
with external peripherals.
IORQ
MREQ
RD
Input
Allows external bus master to utilize the chip
select logic of the eZ80F91.
Input
Allows external bus master to utilize the chip
select logic of the eZ80F91.
Tristate
Tristate
Tristate
Allows external bus master to communicate
with external peripherals.
WR
Allows external bus master to communicate
with external peripherals.
INSTRD
Allows external bus master to communicate
with external peripherals.
Normal bus operation of the eZ80F91 device using CS0 to communicate to an external
peripheral is displayed in Figure 20 on page 91. Figure 21 on page 91 displays an external
bus master communicating with an external peripheral during bus acknowledge cycles.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
91
WAIT
RD
WR
External
Master
External
Peripheral
DATA
ADDRESS
IORQ
eZ80F91
MREQ
Chip Select
Wait State
Generator
CS0
CS1
CS2
CS3
Figure 20. Memory Interface Bus Operation During CPU Bus Cycles, Normal Operation
WAIT
RD
WR
External
Master
External
Peripheral
DATA
ADDRESS
IORQ
eZ80F91
MREQ
Chip Select
Wait State
Generator
CS0
CS1
CS2
CS3
Figure 21. Memory Interface Bus Operation During Bus Acknowledge Cycles
During bus acknowledge cycles, the Memory and I/O chip select logic is controlled by the
external address bus and external IORQ and MREQ signals.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
92
The following chip select features are not available during bus acknowledge cycles:
•
The chip select logic does not insert wait states during bus acknowledge cycles regard-
less of the WAIT configuration for the decoded chip select.
•
•
The bus mode controller does not function during bus acknowledge cycles.
Internal registers and memory addresses in the eZ80F91 device are not accessible dur-
ing bus acknowledge cycles.
PS019215-0910
Chip Selects and Wait States
eZ80F91 MCU
Product Specification
93
Random Access Memory
The eZ80F91 device features 8 KB (8192 bytes) of single-port data Random Access
Memory (RAM) for general-purpose use and 8 KB of RAM for the EMAC. RAM is
enabled or disabled, and it is relocated to the top of any 64 KB page in memory. Data is
passed to and from RAM via the 8-bit data bus. On-chip RAM operates with zero wait
states. EMAC RAM is accessed via the bus arbiter and executes with zero or one Wait
states.
General-purpose RAM occupies memory addresses in the RAM Address Upper Byte reg-
ister in the range {RAM_ADDR_U[7:0], E000h} to {RAM_ADDR_U[7:0], FFFFh}.
EMAC RAM occupies memory addresses in the range {RAM_ADDR_U[7:0], C000h}
to {RAM_ADDR_U[7:0], DFFFh}. Following a RESET, RAM is enabled when
RAM_ADDR_U is set to FFh. Figure 22 displays a memory map for on-chip RAM. In
this example, RAM_ADDR_U is set to 7Ah. Figure 22 is not drawn to scale, as RAM
occupies only a very small fraction of the available 16 MB address space.
Memory
Location
FFFFFFh
7AFFFFh
8 KB
General-Purpose
RAM
RAM_ADDR_U
7Ah
7AE000h
7ADFFFh
8 KB
EMAC SRAM
7AC000h
000000h
Figure 22. Example: eZ80F91 On-Chip RAM Memory Addressing
When enabled, on-chip RAM assumes priority over on-chip Flash memory and any mem-
ory chip selects that is also enabled in the same address space. If an address is generated in
a range that is covered by both the RAM address space and a particular memory chip
PS019215-0910
Random Access Memory
eZ80F91 MCU
Product Specification
94
select address space, the memory chip select is not activated. On-chip RAM is not accessi-
ble to external devices during bus acknowledge cycles.
RAM Control Registers
RAM Control Register
Internal general-purpose RAM is disabled by clearing the GPRAM_EN bit. The default on
RESET is for general-purpose RAM to be enabled. See Table 32.
Table 32. RAM Control Register (RAM_CTL=00B4h)
Bit
7
6
5
4
3
2
1
0
1
1
0
0
0
0
0
0
Reset
R/W
R/W
R
R
R
R
R
R
CPU Access
Note: R/W = Read/Write; R = Read Only.
Bit
Position
Value
Description
7
0
1
0
1
On-chip general-purpose RAM is disabled.
On-chip general-purpose RAM is enabled.
On-chip EMAC RAM is disabled.
GPRAM_EN
6
ERAM_EN
On-chip EMAC RAM is enabled.
[5:0]
000000 Reserved.
PS019215-0910
Random Access Memory
eZ80F91 MCU
Product Specification
95
RAM Address Upper Byte Register
The RAM_ADDR_U register defines the upper byte of the address for on-chip RAM.
If enabled, RAM addresses assume priority over all Chip Selects. The external Chip Select
signals are not asserted if the corresponding RAM address is enabled. See Table 33.
Table 33. RAM Address Upper Byte Register (RAM_ADDR_U=00B5h)
Bit
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value Description
00h– This byte defines the upper byte of the RAM address. When
[7:0]
RAM_ADDR_U FFh
enabled, the general-purpose RAM address space ranges from
{RAM_ADDR_U, E000h} to {RAM_ADDR_U, FFFFh}. When
enabled, the EMAC RAM address space ranges from
{RAM_ADDR_U, C000h} to {RAM_ADDR_U, DFFFh}.
PS019215-0910
Random Access Memory
eZ80F91 MCU
Product Specification
96
MBIST Control
There are two Memory Built-In Self-Test (MBIST) controllers for the RAM blocks on the
eZ80F91. MBIST_GPR is for General-Purpose RAM and MBIST_EMR is for EMAC
RAM. Writing a 1 to MBIST_ON starts the MBIST testing. Writing a 0 to MBIST_ON
stops the MBIST testing. On completion of the MBIST testing, MBIST_ON is
automatically reset to 0. If RAM passes MBIST testing, MBIST_PASS is 1. The value in
MBIST_PASS is only valid when MBIST_DONE is High. See Table 34.
Table 34. MBIST Control Register (MBIST_GPR=00B6h, MBIST_EMR=00B7h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R
R
R
R
R
R
R
CPU Access
Note: R/W = Read/Write; R = Read Only.
Bit Position
Value
Description
7
0
MBIST Testing of the RAM is disabled.
MBIST Testing of the RAM is enabled.
MBIST Testing has not completed.
MBIST Testing has completed.
MBIST Testing has failed.
MBIST_ON
1
6
0
MBIST_DONE
1
5
0
MBIST_PASS
1
MBIST Testing has passed.
Reserved.
[4:0]
00000
PS019215-0910
Random Access Memory
eZ80F91 MCU
Product Specification
97
Flash Memory
The eZ80F91 device features 256 KB (262,144 bytes) of non-volatile Flash memory with
Read/Write/Erase capability. The main Flash memory array is arranged in 128 pages with
8 rows per page and 256 bytes per row. In addition to main Flash memory, there are two
separately addressable rows which comprise a 512-byte information page.
In eight 32 KB blocks, 256 KB of main storage is protected. Protecting a 32 KB block
prevents Write or Erase operations. The lower 32 KB block (00000h–07FFFh) is pro-
tected using the external WP pin. This portion of memory is called the Boot block because
the CPU always starts executing code from this location at startup. If the application
requires external program memory, then the Boot block must at least contain a jump
instruction to move the Program Counter outside of the Flash memory space.
The Flash memory arrangement is displayed in Figure 23.
16
8
8
2 KB pages
per block
256-byte rows
per page
32 KB blocks
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
256
single-byte columns
per row
255 254
1
0
Figure 23. eZ80F91 Flash Memory Arrangement
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
98
Flash Memory Overview
The eZ80F91 device includes a Flash memory controller that automatically converts
standard CPU Read and Write cycles to the specific protocol required for the Flash
memory array. As such, standard memory Read and Write instructions access the Flash
memory array as if it is internal RAM. The controller also supports I/O access to the Flash
memory array, in effect presenting it as an indirectly addressable bank of I/O registers.
These access methods are also supported via the ZDI and OCI™ interfaces.
In addition, eZ80Acclaim!® Flash Microcontrollers support a Flash Read–While–Write
methodology. In other words, the eZ80® CPU continues to read and execute code from an
area of Flash memory when a nonconflicting area of Flash memory is being programmed.
The Flash memory controller contains a frequency divider, a Flash register interface, and a
Flash control state machine. A simplified block diagram of the Flash controller is
displayed in Figure 24.
Clock Divider
8-bit downcounter
System Clock
17
8
ADDR
DOUT
FDOUT
8
eZ80 Core
Interface
FADDR
FDIN
17
8
Flash
256 KB
+
FCNTL
9
Flash
State
Machine
512 bytes
MAIN_INFO
Flash
Control
Registers
CPUDOUT
8
FLASH_IRQ
Figure 24. Flash Memory Block Diagram
Reading Flash Memory
The main Flash memory array is read using both memory and I/O operations. As an auxil-
iary storage area, the information page is only accessible via I/O operations. In all cases,
Wait states are automatically inserted to allow for read access time.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
99
Memory Read
A memory Read operation uses the address bus and data bus of the eZ80F91 device to
read a single data byte from Flash memory. This Read operation is similar to reads from
RAM. To perform Flash memory reads, the FLASH_CTRL register must be configured to
enable memory access to Flash with the appropriate number of wait states. See Table 38
on page 105.
Only the main area of Flash memory is accessible via memory reads. The information
page must be read using I/O access.
I/O Read
A single-byte I/O Read operation uses I/O registers for setting the column, page, and row
address to be read. A Read of the FLASH_DATA register returns the contents of Flash
memory at the designated address. Each access to the FLASH_DATA register causes an
autoincrement of the Flash address stored in the Flash address registers (FLASH_PAGE,
FLASH_ROW, FLASH_COL). To allow for Flash memory access time, the
FLASH_CTRL register must be configured with the appropriate number of wait states.
See Table 38 on page 105.
Programming Flash Memory
Flash memory is programmed using standard I/O or memory Write operations that the
Flash memory controller automatically translates to the detailed timing and protocol
required for Flash memory. The more efficient multibyte (row) programming mode is only
available via I/O Writes.
To ensure data integrity and device reliability, two main restrictions exist on programming
of Flash memory:
Note:
1. The cumulative programming time since the last erase cannot exceed 31 ms for any
given row.
2. The same byte cannot be programmed more than once since the last erase.
Single-Byte I/O Write
A single-byte I/O Write operation uses I/O registers for setting the column, page, and row
address to be written. The FLASH_DATA register stores the data to be written. While the
CPU executes an I/O instruction to load the data into the FLASH_DATA register, the
Flash controller asserts the internal WAIT signal to stall the CPU until the Flash Write
operation is complete. A single-byte Write takes between 66 µs and 85 µs to complete.
Programming an entire row (256 bytes) using single-byte Writes therefore takes no more
than 21.8 ms. This duration of time does not include the time required by the CPU to
transfer data to the registers which is a function of the instructions employed and the
system clock frequency. Each access to the FLASH_DATA register causes an
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
100
autoincrement of the Flash address stored in the Flash Address registers (FLASH_PAGE,
FLASH_ROW, FLASH_COL).
A typical sequence that performs a single-byte I/O Write is shown below. Because the
Write is self-timed, step 2 of the sequence is repeated back-to-back without requiring poll-
ing or interrupts.
1. Write the FLASH_PAGE, FLASH_ROW, and FLASH_COL registers with the
address of the byte to be written.
2. Write the data value to the FLASH_DATA register.
Multibyte I/O Write (Row Programming)
Multibyte I/O Write operations use the same I/O registers as single-byte Writes.
Multibyte I/O Writes allow the programming of full row and are enabled by setting the
ROW_PGM bit of the Flash Program Control Register. For multibyte I/O Writes, the CPU
sets the address registers, enables row programming, and then executes an I/O instruction
(with repeat) to load the block of data into the FLASH_DATA register. For each individual
byte written to the FLASH_DATA register during the block move, the Flash controller
asserts the internal WAIT signal to stall the CPU until the current byte is programmed.
Each access to the FLASH_DATA register causes an autoincrement of the Flash address
stored in the Flash Address registers (FLASH_PAGE, FLASH_ROW, FLASH_COL).
During row programming, the Flash controller continuously asserts the Flash memory’s
high voltage signal until all bytes are programmed (column address < 255). As a result, the
row programs more quickly than if the high-voltage signal is toggled for each byte. The
per-byte programming time during row programming is between 41µs and 52µs. As such,
programming 256 bytes of a row in this mode takes not more than 13.4 ms, leaving 17.6
ms for CPU instruction overhead to fetch the 256 bytes.
A typical sequence that performs a multibyte I/O Write is shown below:
1. Check the FLASH_IRQ register to ensure that any previous row program is
completed.
2. Write the FLASH_PAGE, FLASH_ROW, and FLASH_COL registers with the
address of the first byte to be written.
3. Set the ROW_PGM bit in the FLASH_PGCTL register to enable row programming
mode.
4. Write the next data value to the FLASH_DATA register.
5. If the end of the row has not been reached, return to step 4.
During row programming, software must monitor the row time-out error bit either by
enabling this interrupt or via polling. If a row time-out occurs, the Flash controller aborts
the row programming operation, and software must assure that no further Writes are
performed to the row without it first being erased. It is suggested that row programming is
be used one time per row and not in combination with single-byte Writes to the same row
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
101
without first erasing it. Otherwise, the burden is on software to ensure that the 31 ms
maximum cumulative programming time between erases is not exceeded for a row.
Memory Write
A single-byte memory Write operation uses the address bus and data bus of the eZ80F91
device for programming a single data byte to Flash memory. While the CPU executes a
Load instruction, the Flash controller asserts the internal WAIT signal to stall the CPU
until the Write is complete. A single-byte Write takes between 66 µs and 85µs to
complete. Programming an entire row using memory Writes therefore takes no more than
21.8 ms. This duration of time does not include time required by the CPU to transfer data
to the registers, which is a function of the instructions employed and the system clock
frequency.
The memory Write function does not support multibyte row programming. Because mem-
ory Writes are self-timed, they are performed back-to-back without requiring polling or
interrupts.
Erasing Flash Memory
Erasing bytes in Flash memory returns them to a value of FFh. Both the MASS and PAGE
ERASE operations are self-timed by the Flash controller, leaving the CPU free to execute
other operations in parallel. The DONE status bit in the Flash Interrupt Control Register
are polled by software or used as an interrupt source to signal completion of an Erase oper-
ation. If the CPU attempts to access Flash memory while an erase is in progress, the Flash
controller forces a wait state until the Erase operation is completed.
Mass Erase
Performing a MASS ERASE operation on Flash memory erases all bits contained in the
main Flash memory array. The information page remains unaffected unless the
FLASH_PAGE register bit 7(INFO_EN) is set. This self-timed operation takes
approximately 200 ms to complete.
Page Erase
The smallest erasable unit in Flash memory is a page. The pages to be erased, whether they
are the 128 main Flash memory pages or the information page, are determined by the set-
ting of the FLASH_PAGE register. This self-timed operation takes approximately 10 ms to
complete.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
102
Information Page Characteristics
As noted earlier, the information page is not accessible using memory access instructions
and must be accessed via the FLASH_DATA I/O register. The Flash Page Select Register
contains a bit which selects the information page for I/O access.
There are two ways to erase the information page. You must set the FLASH_PAGE regis-
ter(0x00FC) bit7(INFO_EN) and then you execute either a MASS ERASE (which also
erases the entire main Flash memory array) operation or a PAGE ERASE operation.
Flash Control Registers
The Flash Control Register interface contains all the registers used in Flash memory. The
definitions in this section describe each register.
Flash Key Register
Writing the two-byte sequence B6h, 49h in immediate succession to this register unlocks
the Flash Divider and Flash Write/Erase Protection registers. If these values are not
written by consecutive CPU I/O Writes (I/O reads and memory Read/Writes have no
effect), the Flash Divider and Flash Write/Erase Protection registers remain locked. This
prevents accidental overwrites of these critical Flash control register settings. Writing a
value to either the Flash Frequency Divider Register or the Flash Write/Erase Protection
Register automatically relocks both of the registers. See Table 35.
Table 35. Flash Key Register (FLASH_KEY = 00F5h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value Description
[7:0]
FLASH_KEY
B6h,
49h
Sequential Write operations of the values B6h, 49h to this
register will unlock the Flash Frequency Divider and Flash
Write/Erase Protection registers.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
103
Flash Data Register
The Flash Data register stores the data values to be programmed into Flash memory via
I/O Write operations. An I/O read of the Flash Data register returns data from Flash
memory. The Flash memory address used for I/O access is determined by the contents of
the page, row, and column registers. Each access to the FLASH_DATA register causes an
autoincrement of the Flash address stored in the Flash Address registers (FLASH_PAGE,
FLASH_ROW, FLASH_COL). See Table 36.
Table 36. Flash Data Register (FLASH_DATA = 00F6h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit Position
Value
Description
[7:0]
FLASH_DATA
00h-FFh Data value to be written to Flash memory during an I/O Write
operation, or the data value that is read in Flash memory,
indicated by the Flash Address registers (FLASH_PAGE,
FLASH_ROW, FLASH_COL).
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
104
Flash Address Upper Byte Register
The FLASH_ADDR_U register defines the upper 6 bits of the Flash memory address
space. Changing the value of FLASH_ADDR_U allows on-chip 256 KB Flash memory
to be mapped to any location within the 16 MB linear address space of the eZ80F91
device. If on-chip Flash memory is enabled, the Flash address assumes priority over any
external Chip Selects. The external Chip Select signals are not asserted if the corre-
sponding Flash address is enabled. Internal Flash memory does not hold priority over
internal SRAM. See Table 37.
Table 37. Flash Address Upper Byte Register (FLASH_ADDR_U = 00F7h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R
R
CPU Access
Note: R/W = Read/Write; R = Read Only.
Bit Position
Value
Description
[7:2]
00h–FCh These bits define the upper byte of the Flash address.
FLASH_ADDR_U
When on-chip Flash is enabled, the Flash address space
begins at address {FLASH_ADDR_U, 00b, 0000h}. On-chip
Flash has priority over all external Chip Selects.
[1:0]
00
Reserved (enforces alignment on a 256 KB boundary).
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
105
Flash Control Register
The Flash Control register enables or disables memory access to Flash memory. I/O access
to the Flash control registers and to Flash memory is still possible while Flash memory
space access is disabled.
The minimum access time of internal Flash memory is 60 ns. The Flash Control Regis-
ter must be configured to provide the appropriate number of wait states based on the sys-
tem clock frequency of the eZ80F91 device. Because the maximum SCLK frequency is
50 MHz (20 ns), the default on RESET is for four Wait states to be inserted for Flash
memory access (Flash memory access + one eZ80® Bus Cycle = 60 ns + 20 ns = 80 ns;
80 ns ÷ 20 ns = 4 Wait states). See Table 38.
Table 38. Flash Control Register (FLASH_CTRL = 00F8h)
Bit
7
6
5
4
3
2
1
0
1
0
0
0
1
0
0
0
Reset
R/W
R/W
R/W
R
R/W
R
R
R
CPU Access
Note: R/W = Read/Write, R = Read Only.
Bit Position
Value Description
[7:5]
FLASH_WAIT
000
001
010
011
100
101
110
111
0
0 wait states are inserted when the Flash is active.
1 wait state is inserted when the Flash is active.
2 wait states are inserted when the Flash is active.
3 wait states are inserted when the Flash is active.
4 wait states are inserted when the Flash is active.
5 wait states are inserted when the Flash is active.
6 wait states are inserted when the Flash is active.
7 wait states are inserted when the Flash is active.
Reserved.
[4]
[3]
0
Flash memory access is disabled.
FLASH_EN
1
Flash memory access is enabled.
[2:0]
000
Reserved.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
106
Flash Frequency Divider Register
The 8-bit frequency divider allows the programming of Flash memory over a range of
system clock frequencies. Flash is programmed with system clock frequencies ranging
from 154 kHz to 50 MHz. The Flash controller requires an input clock with a period that
falls within the range of 5.16.5 µs. The period of the Flash controller clock is set in the
Flash Frequency Divider Register. Writes to this register is allowed only after it is
unlocked via the FLASH_KEY register. The Flash Frequency Divider Register value
required versus the system clock frequency is listed in Table 39. System clock frequencies
outside of the ranges shown are not supported. Register values for the Flash Frequency
Divider are listed in Table 40.
Table 39. Flash Frequency Divider Values
System Clock Frequency
154–196 kHz
Flash Frequency Divider Value
1
308–392 kHz
2
462–588 kHz
3
616kHz–50 MHz
CEILING [System Clock Frequency (MHz) x 5.1 (µs)]*
Note: *The CEILING function rounds fractional values up to the next whole number. For example,
CEILING(3.01) is 4.
Table 40. Flash Frequency Divider Register (FLASH_FDIV = 00F9h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
1
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W
CPU Access
Note: R/W = Read/Write, R = Read Only. *Key sequence required to enable Writes
Bit Position
Value
Description
[7:0]
FLASH_FDIV
01h–FFh Divider value for generating the required 5.1-6.5 µs Flash
controller clock period.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
107
Flash Write/Erase Protection Register
The Flash Write/Erase Protection register prevents accidental Write or Erase operations.
The protection is limited to a resolution of eight 32 KB blocks. Setting a bit to 1 protects
that 32 KB block of Flash memory from accidental Writes or Erases. The default upon
RESET is for all Flash memory blocks to be protected.
The WP pin works in conjunction with FLASH_PROT[0] to protect the lowest block (also
called the Boot block) of Flash memory. If either the WP is held asserted or
FLASH_PROT[0] is set, the Boot block is protected from Write and Erase operations.
A protect bit is not available for the information page. The information page is, however,
protected excluded from a MASS ERASE by clearing the FLASH_PAGE register
(0x00FC) bit7(INFO_EN).
Note:
Writes to this register is allowed only after it is unlocked via the FLASH_KEY register.
Any attempted Writes to this register while locked will set it to FFh, thereby protecting all
blocks. See Table 41.
Table 41. Flash Write/Erase Protection Register (FLASH_PROT = 00FAh)
Bit
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: R/W = Read/Write if unlocked, R = Read Only if locked. *Key sequence required to unlock.
Bit Position
Value Description
[7]
0
1
0
1
0
1
0
1
0
1
0
1
Disable Write/Erase Protect on block 38000h to 3FFFFh.
BLK7_PROT
Enable Write/Erase Protect on block 38000h to 3FFFFh.
Disable Write/Erase Protect on block 30000h to 37FFFh.
Enable Write/Erase Protect on block 30000h to 37FFFh.
Disable Write/Erase Protect on block 28000h to 2FFFFh.
Enable Write/Erase Protect on block 28000h to 2FFFFh.
Disable Write/Erase Protect on block 20000h to 27FFFh.
Enable Write/Erase Protect on block 20000h to 27FFFh.
Disable Write/Erase Protect on block 18000h to 1FFFFh.
Enable Write/Erase Protect on block 18000h to 1FFFFh.
Disable Write/Erase Protect on block 10000h to 17FFFh.
Enable Write/Erase Protect on block 10000h to 17FFFh.
[6]
BLK6_PROT
[5]
BLK5_PROT
[4]
BLK4_PROT
[3]
BLK3_PROT
[2]
BLK2_PROT
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
108
Bit Position
Value Description
[1]
0
1
0
1
Disable Write/Erase Protect on block 08000h to 0FFFFh.
Enable Write/Erase Protect on block 08000h to 0FFFFh.
BLK1_PROT
[0]
Disable Write/Erase Protect on block 00000h to 07FFFh.
Enable Write/Erase Protect on block 00000h to 07FFFh.
BLK0_PROT
Note: The lower 32 KB block (00000h to 07FFFh—BLK0) is called the Boot block and is protected
using the external WP pin.
Flash Interrupt Control Register
There are two sources of interrupts from the Flash controller. These two sources are:
•
•
Page Erase, Mass Erase, or Row Program completed successfully.
An error condition occurred.
Either or both of these two interrupt sources are enabled by setting the appropriate bits in
the Flash Interrupt Control register.
The Flash Interrupt Control register contains four status bits to indicate the following error
conditions:
Row Program Time-Out—This bit signals a time-out during Row Programming. If the
current row program operation does not complete within 4864 Flash controller clocks,
the Flash controller terminates the row program operation by clearing bit 2 of the Flash
Program Control Register and sets the RP_TM0 error bit to 1.
Write Violation—This bit indicates an attempt to write to a protected block of Flash
memory (the Write was not performed).
Page Erase Violation—This bit indicates an attempt to erase a protected block of Flash
memory (the requested page was not erased).
Mass Erase Violation—This bit indicates an attempt to MASS ERASE when there are
one or more protected blocks in Flash memory (the MASS ERASE was not performed).
If the error condition interrupt is enabled, any of these four error conditions result in an
interrupt request being sent to the eZ80F91device’s interrupt controller. Reading the Flash
Interrupt Control register clears all error condition flags and the DONE flag. See Table 42
on page 109.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
109
Table 42. Flash Interrupt Control Register (FLASH_IRQ = 00FBh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R
R
R
R
R
R
CPU Access
Note: R/W = Read/Write, R = Read Only. Read resets bits [5] and [3:0].
Bit Position
Value Description
[7]
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
Flash Erase/Row Program Done Interrupt is disabled.
Flash Erase/Row Program Done Interrupt is enabled.
Error Condition Interrupt is disabled.
DONE_IEN
[6]
ERR_IEN
Error Condition Interrupt is enabled.
[5]
DONE
Erase/Row Program Done Flag is not set.
Erase/Row Program Done Flag is set.
Reserved.
[4]
[3]
WR_VIO
The Write Violation Error Flag is not set.
The Write Violation Error Flag is set.
[2]
RP_TMO
The Row Program Time-Out Error Flag is not set.
The Row Program Time-Out Error Flag is set.
The Page Erase Violation Error Flag is not set.
The Page Erase Violation Error Flag is set.
The Mass Erase Violation Error Flag is not set.
The Mass Erase Violation Error Flag is set.
[1]
PG_VIO
[0]
MASS_VIO
Note: The lower 32 KB block (00000h to 07FFFh) is called the Boot Block and is protected using
the external WP pin. Attempts to page erase BLK0 or mass erase Flash when WP is asserted
result in failure and signal an erase violation.
Flash Page Select Register
The msb of this register is used to select whether I/O Flash access and PAGE ERASE
operations are directed to the 512-byte information page or to the main Flash memory
array, and also whether the information page is included in MASS ERASE operations. The
lower 7 bits are used to select one of the main 128 pages for PAGE ERASE or I/O
operations.
To perform a PAGE ERASE, the software must set the proper page value prior to setting
the page erase bit in the Flash Control Register. In addition, each access to the
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
110
FLASH_DATA register causes an autoincrement of the Flash address stored in the Flash
Address registers (FLASH_PAGE, FLASH_ROW, FLASH_COL). See Table 43.
Table 43. Flash Page Select Register (FLASH_PAGE = 00FCh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write, R = Read Only.
Bit
Position
Value
Description
[7]
INFO_EN
0
Flash I/O access to PAGE ERASE operations are directed to
main Flash memory. Info page is NOT affected by a MASS
ERASE operation.
1
Flash I/O access to PAGE ERASE operations are directed to
the information page. PAGE ERASE operations only affect
the information page. Info page is included during a MASS
ERASE operation.
[6:0]
FLASH_PAGE
00h–7Fh Page address of Flash memory to be used during the PAGE
ERASE or I/O access of main Flash memory. When
INFO_EN is set to 1, this field is ignored.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
111
Flash Row Select Register
The Flash Row Select Register is a 3-bit value used to define one of the 8 rows of Flash
on a single page. This register is used for all I/O access to Flash memory. In addition,
each access to the FLASH_DATA register causes an autoincrement of the Flash address
stored in the Flash Address registers (FLASH_PAGE, FLASH_ROW, FLASH_COL).
See Table 44.
Table 44. Flash Row Select Register (FLASH_ROW = 00FDh)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
0
0
0
Reset
R
R
R
R
R
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write, R = Read Only.
Bit
Position
Value Description
00h Reserved.
[7:3]
[2:0]
FLASH_ROW
0h–7h Row address of Flash memory to be used during an I/O access
of Flash memory. When INFO_EN is 1 in the Flash Page Select
Register, values for this field are restricted to 0h–1h, which
selects between the two rows in the information page.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
112
Flash Column Select Register
The Flash Column Select Register is an 8-bit value used to define one of the 256 bytes of
Flash memory contained in a single row. This register is used for all I/O access to Flash
memory. In addition, each access to the FLASH_DATA register causes an autoincrement
of the Flash address stored in the Flash Address registers (FLASH_PAGE, FLASH_ROW,
FLASH_COL). See Table 45.
Table 45. Flash Column Select Register (FLASH_COL = 00FEh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write, R = Read Only.
Bit
Position
Value
Description
[7:0]
FLASH_COL
00h–FFh Column address of Flash memory to be used during an I/O
access of Flash memory.
Flash Program Control Register
The Flash Program Control Register is used to perform the functions of MASS ERASE,
PAGE ERASE, and ROW PROGRAM. MASS ERASE and PAGE ERASE are
self-clearing functions.
MASS ERASE requires approximately 200 ms to completely erase the full 256 KB of
main Flash and the 512-byte information page if the FLASH_PAGE register(0x00FC)
bit7(INFO_EN) is set. The 200 ms time is not reduced by excluding the 512 byte
information page from erasing.
PAGE ERASE requires approximately 10 ms to erase a 2 KB page.
On completion of either a MASS ERASE or PAGE ERASE, the value of each
corresponding bit is reset to 0.
When Flash is being erased, any Read or Write access to Flash forces the CPU into a Wait
state until the Erase operation is complete and the Flash is accessed. Reads and Writes to
areas other than Flash memory proceeds as usual while an Erase operation is
underway.
During row programming, any reads of Flash memory force a WAIT condition until the
row programming operation completes or times out. See Table 46 on page 113.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
113
Table 46. Flash Program Control Register (FLASH_PGCTL = 00FFh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write, R = Read Only.
Bit
Position
Value Description
[7:3]
00h
0
Reserved.
Row Program Disable or Row Program completed.
[2]
ROW_PGM
1
Row Program Enable. This bit automatically resets to 0 when
the row address reaches 256 or when the Row Program
operation times out.
[1]
0
1
Page Erase Disable (Page Erase completed).
PG_ERASE
Page Erase Enable. This bit automatically resets to 0 when the
PAGE ERASE operation is complete.
[0]
0
1
Mass Erase Disable (Mass Erase completed).
MASS_ERASE
Mass Erase Enable. This bit automatically resets to 0 when the
MASS ERASE operation is complete.
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
114
PS019215-0910
Flash Memory
eZ80F91 MCU
Product Specification
115
Watchdog Timer
The Watchdog Timer (WDT) helps protect against corrupt or unreliable software, power
faults, and other system-level problems which places the CPU into unsuitable operating
states. The eZ80F91 WDT features:
•
Four programmable time-out ranges (depending on the WDT clock source). The four
ranges are:
–
–
–
–
03.2–5.20 ms
51.2–83.9 ms
0.50–0.82 sec
2.68–4.00 sec
•
Three selectable WDT clock sources:
–
–
–
Internal RC oscillator
System clock
Real-Time Clock source (on-chip 32 kHz crystal oscillator or 50/60 Hz signal)
•
•
A selectable time-out response: a time-out is configured to generate either a RESET or
a nonmaskable interrupt (NMI)
A WDT time-out RESET indicator flag
Figure 25 displays a block diagram of the Watchdog Timer.
Data[7:0]
Control Register/
Reset Register
WDT_CLK
RTC Clock
28-Bit
System Clock
Upcounter
WDT Control Logic
Time-out Compare Logic
(WDT_PERIOD)
WDT
Oscillator
RESET
¤
NMI to eZ80 CPU
Figure 25. Watchdog Timer Block Diagram
PS019215-0910
Watchdog Timer
eZ80F91 MCU
Product Specification
116
Watchdog Timer Operation
Enabling and Disabling the Watchdog Timer
The WDT is disabled on a RESET. To enable the WDT, the application program must set
WDT_EN, which is bit 7 of the WDT_CTL register. After WDT_EN is set, no Writes are
allowed to the WDT_CTL register. When enabled, the WDT cannot be disabled except by
a RESET.
Time-Out Period Selection
There are four choices of time-out periods for the WDT. The WDT time-out period is
defined by the WDT_PERIOD WDT_CTL[1:0] field and WDT_CLK WDT_CTL[3:2]
field of the Watchdog Timer control register (WDT_CTL = 0093h). The approximate
time-out period and corresponding clock cycles for three different WDT clock sources are
listed in Table 47.
The WDT time-out period divider is set to one of the four available settings for the
selected frequency of the WDT clock source. Basing the divider settings on the clock
source values provides a time-out range from few seconds to few msecs, regardless of the
frequency setting.
Table 47. WDT Approximate Time-Out Delays for Possible Clock Sources
00
01
10
11
WDT_CLK[
3:2]
50 MHz system 32.768 kHz RTC
clock clock
Internal RC
oscillator (~10
kHz)
Reserved
Divider Timeout Divider Timeout Divider Timeout Divider Timeout
WDT_PERI
OD[1:0]
27
25
22
18
17
14
11
7
15
13
9
00
01
10
11
2
2
2
2
2.68 s
0.67 s
2
2
2
4.00 s
0.5 s
2
2
3.28 s
0.82 s
-
-
-
-
-
-
-
-
83.9 ms
5.2 ms
62.5 ms
3.9 ms
2
51.2 ms
3.2 ms
5
2
2
RESET or NMI Generation
A WDT time-out causes a RESET or sends a NMI signal to the CPU. The default opera-
tion is for the WDT to cause a RESET.
If the NMI_OUT bit in the WDT_CTL register is set to 0, then on a WDT time-out, the
RST_FLAG bit in the WDT_CTL register is set to 1. The RST_FLAG bit is polled by the
CPU to determine the source of the RESET event.
PS019215-0910
Watchdog Timer
eZ80F91 MCU
Product Specification
117
If the NMI_OUT bit in the WDT_CTL register is set to 1, then on time-out, the WDT
asserts an NMI for CPU processing. The NMI_FLAG bit is polled by the CPU to deter-
mine the source of the NMI event.
Watchdog Timer Registers
Watchdog Timer Control Register
The Watchdog Timer Control register (see Table 48) is an 8-bit Read/Write register used to
enable the Watchdog Timer, set the time-out period, indicate the source of the most recent
RESET or NMI, and select the required operation on WDT time-out.
The default clock source for the WDT is the WDT oscillator (WDT_CLK = 10b).
To power-down the WDT oscillator, another clock source must be selected. The power-
up sequence of the WDT oscillator takes approximately 20 ms.
Table 48. Watchdog Timer Control Register (WDT_CTL = 0093h)
Bit
7
6
5
4
3
2
1
0
0
0
0/1
0
1
0
0
0
Reset
R/W
R/W
R
R
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value Description
7
0
1
WDT is disabled.
WDT_EN
WDT is enabled. When enabled, the WDT cannot be disabled
without a RESET.
6
0
1
0
1
WDT time-out resets the CPU.
NMI_OUT
WDT time-out generates a NMI to the CPU.
RESET caused by external full-chip reset or ZDI reset.
5
RST_FLAG
RESET caused by WDT time-out. This flag is set by the WDT
time-out, only if the NMI_OUT flag is set to 0. The CPU polls
this bit to determine the source of the RESET. This flag is
cleared by a non-WDT generated reset.
4
0
1
NMI caused by external source.
NMI_FLAG
NMI caused by WDT time-out. This flag is set by the WDT time-
out, only if the NMI_OUT flag is set to 1. The CPU polls this bit
to determine the source of the NMI. This flag is cleared by a
non-WDT NMI.
PS019215-0910
Watchdog Timer
eZ80F91 MCU
Product Specification
118
Bit
Position
Value Description
[3:2]
WDT_CLK
00
01
WDT clock source is system clock.
WDT clock source is Real-Time Clock source (32 kHz on-chip
oscillator or 50/60 Hz input as set by RTC_CTRL[4]).
10
11
00
WDT clock source is internal RC oscillator (10 kHz typical).
Reserved.
27
[1:0]
WDT_CLK = 00 WDT time-out period is 2 clock cycles.
WDT_PERIOD
17
WDT_CLK = 01 WDT time-out period is 2 clock cycles.
15
WDT_CLK = 10 WDT time-out period is 2 clock cycles.
WDT_CLK = 11 Reserved.
25
01
10
11
WDT_CLK = 00 WDT time-out period is 2 clock cycles.
14
WDT_CLK = 01 WDT time-out period is 2 clock cycles.
13
WDT_CLK = 10 WDT time-out period is 2 clock cycles.
WDT_CLK = 11 Reserved.
22
WDT_CLK = 00 WDT time-out period is 2 clock cycles.
11
WDT_CLK = 01 WDT time-out period is 2 clock cycles.
9
WDT_CLK = 10 WDT time-out period is 2 clock cycles.
WDT_CLK = 11 Reserved.
18
WDT_CLK = 00 WDT time-out period is 2 clock cycles.
7
WDT_CLK = 01 WDT time-out period is 2 clock cycles.
5
WDT_CLK = 10 WDT time-out period is 2 clock cycles.
WDT_CLK = 11 Reserved.
Note: When the WDT is enabled, no Writes are allowed to the WDT_CTL register.
PS019215-0910
Watchdog Timer
eZ80F91 MCU
Product Specification
119
Watchdog Timer Reset Register
The WDT Reset register (see Table 49) is an 8-bit Write only register. The WDT is reset
when an A5hvalue followed by a 5Ahvalue is written to this register. Any amount of time
occurs between the writing of A5hvalue and the 5Ahvalue, so long as the WDT time-out
does not occur prior to completion. Any value other than 5Ahwritten to the WDT Reset
register after the A5hvalue requires that the sequence of Writes (A5h,5Ah) be restarted for
the timer to be reset.
Table 49. Watchdog Timer Reset Register (WDT_RR = 0094h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: X = Undefined; W = Write Only.
Bit
Position
Value Description
[7:0]
WDT_RR
A5h
The first Write value required to reset the WDT prior to a time-
out.
5Ah
The second Write value required to reset the WDT prior to a
time-out. If an A5h, 5Ah sequence is written to WDT_RR, the
WDT timer is reset to its initial count value and counting
resumes.
PS019215-0910
Watchdog Timer
eZ80F91 MCU
Product Specification
120
PS019215-0910
Watchdog Timer
eZ80F91 MCU
Product Specification
121
Programmable Reload Timers
The eZ80F91 device features four programmable reload timers. The core of each timer is a
16-bit downcounter. In addition, each timer features a selectable clock source, adjustable
prescaling and operates in either SINGLE PASS or CONTINUOUS mode.
In addition to the basic timer functionality, some of the timers support specialty modes
that performs event counting, input capture, output compare, and Pulse-Width Modulation
(PWM) generation functions. PWM mode supports four individually-configurable outputs
and a power trip function.
Each of the four timers available on the eZ80F91 device are controlled individually. They
do not share the same counters, reload registers, control registers, or interrupt signals. A
simplified block diagram of a programmable reload timer is displayed in Figure 26.
Each timer features its own interrupt which is triggered either by the timer reaching zero
or after a successful comparison occurs. As with the other eZ80F91 interrupts, the priority
is fully programmable.
Input Capture
Registers
CONTROL
ICx
R
E
L
O
A
D
16-Bit
Down Counter
Comparator
OCx
16
16
SCLK
DIV
Output Compare
Registers
M
U
X
RTC CLK
ECx
PWM
OC PWR Trip
PWM
Control
PWM
EOC
IC
IRQ Control
IRQ
Figure 26. Programmable Reload Timer Block Diagram
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
122
Basic Timer Operation
Basic timer operation is controlled by a timer control register and a programmable reload
value. The CPU uses the control register to setup the prescaling, the input clock source,
the end-of-count behavior, and to start the timer. The 16-bit reload value is used to
determine the duration of the timer’s count before either halting or reloading.
After choosing a timer period and writing the appropriate values to the reload registers, the
CPU must set the timer enable bit (TMRx_CTL[TIM_EN]) by allowing the count to
begin. The reload bit (TMRx_CTL[RLD]) must also be asserted so that the timer counts
down from the reload value rather than from 0000h. On the system clock cycle, after the
assertion of the reload bit, the timer loads with the 16-bit reload value and begins counting
down. The reload bit is automatically cleared after the loading operation. The timer is
enabled and reloaded on the same cycle; however, the timer does not require disabling to
reload and reloading is performed at any time. It is also possible to halt the timer by deas-
serting the timer enable bit and resuming the count at a later time from the same point by
reasserting the bit.
Reading the Current Count Value
The CPU reads the current count value when the timer is running. Because the count is a
16-bit value, the hardware latches the value of the upper byte into temporary storage when
the lower byte is read. This value in temporary storage is the value returned when the
upper byte is read. Therefore, the software must read the lower byte first. If it attempts to
read the upper byte first, it does not obtain the current upper byte of the count. Instead, it
obtains the last latched value. This Read operation does not affect timer operation.
Setting Timer Duration
There are three factors to consider while determining Programmable Reload Timer
duration: clock frequency, clock divider ratio, and initial count value. Minimum duration
of the timer is achieved by loading 0001h. Maximum duration is achieved by loading
0000h, because the timer first rolls over to FFFFh and then continues counting down to
0000hbefore the end-of-count is signaled. Depending on the TMRx_CTL[CLK_SEL]
bits of the control register, the clock is either the system clock, or an on-chip RC oscillator
output or an input from a pin.
The time-out period of the timer is returned by the following equation:
Clock Divider Ratio x Reload Value
Time-Out Period =
System Clock Frequency
To calculate the time-out period with the above equation while using an initial value of
0000h, enter a reload value of 65536 (FFFFh+ 1).
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
123
Minimum time-out duration is four times longer than the input clock period and is gener-
ated by setting the clock divider ratio to 1:4 and the reload value to 0001h. Maximum
time-out duration is 224 (16,777,216) times longer than the input clock period and is gen-
erated by setting the clock divider ratio to 1:256 and the reload value to 0000h.
SINGLE PASS Mode
In SINGLE PASS mode when the end-of-count value (0000h) is reached; counting halts,
the timer is disabled, and TMRx_CTL[TIM_EN] bit resets to 0. To re-enable the timer, the
CPU must set the TIM_EN bit to 1. An example of a PRT operating in SINGLE PASS
mode is displayed in Figure 27. Timer register information is listed in Table 50.
System Clock
Clock Enable
TMR3_CTL Write
(Timer Enable)
T3 Count
0
4
3
2
1
0
Interrupt Request
Figure 27. Example: PRT SINGLE PASS Mode Operation
Table 50. Example: PRT SINGLE PASS Mode Parameters
Parameter
Control Register(s)
Value
Timer Enable
TMRx_CTL[TIM_EN]
TMRx_CTL[RLD]
1
Reload
1
Prescaler Divider = 4
SINGLE PASS Mode
End of Count Interrupt Enable
Timer Reload Value
TMRx_CTL[CLK_DIV]
TMRx_CTL[TIM_CONT]
TMRx_IER[IRQ_EOC_EN]
{TMRx_RR_H, TMRx_RR_L}
00b
0
1
0004h
CONTINUOUS Mode
In CONTINUOUS mode, when the end-of-count value, 0000h, is reached, the timer
automatically reloads the 16-bit start value from the Timer Reload registers,
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
124
TMRx_RR_H and TMRx_RR_L. Downcounting continues on the next clock edge and
the timer continues to count until disabled. An example of the timer operating in
CONTINUOUS mode is displayed in Figure 28. Timer register information is listed in
Table 51.
System Clock
Clock Enable
TMR3_CTL Write
(Timer Enable)
T3 Count
X
4
3
2
1
4
3
2
1
Interrupt
Request
Figure 28. Example: PRT CONTINUOUS Mode Operation
Table 51. Example: PRT CONTINUOUS Mode Parameters
Parameter
Control Register(s)
Value
Timer Enable
TMRx_CTL[TIM_EN]
TMRx_CTL[RLD]
1
Reload
1
Prescaler Divider = 4
CONTINUOUS Mode
End of Count Interrupt Enable
Timer Reload Value
TMRx_CTL[CLK_DIV]
TMRx_CTL[TIM_CONT]
TMRx_IER[IRQ_EOC_EN]
{TMRx_RR_H, TMRx_RR_L}
00b
1
1
0004h
Timer Interrupts
The terminal count flag (TMRx_IIR[EOC]) is set to 1 whenever the timer reaches 0000h,
its end-of-count value in SINGLE PASS mode, or when the timer reloads the start value in
CONTINUOUS mode. The terminal count flag is only set when the timer reaches 0000h
(or reloads) from 0001h. The timer interrupt flag is not set to 1 when the timer is loaded
with the value 0000h, which selects the maximum time-out period.
The CPU is programmed to poll the EOC bit for the time-out event. Alternatively, an inter-
rupt service request signal is sent to the CPU by setting the TMRx_IER[EOC] bit to 1.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
125
And when the end-of-count value (0000h) is reached, the EOC bit is set to 1 and an inter-
rupt service request signal is passed to the CPU. The interrupt service request signal is
deactivated by a CPU read of the timer interrupt identification register, TMRx_IIR.
All bits in that register are reset by the Read.
The response of the CPU to this interrupt service request is a function of the CPU’s inter-
rupt enable flag, IEF1. For more information about this flag, refer to the eZ80® CPU User
Manual (UM0077) available on www.zilog.com.
Timer Input Source Selection
Timers 0–3 features programmable input source selection. By default, the input is taken
from the eZ80F91’s system clock. The timers also use the Real-Time Clock source (50,
60, or 32768 Hz) as their clock sources. The input source for these timers is set using the
timer control register. (TMRx_CTL[CLK_SEL])
Timer Output
The timer count is directed to the GPIO output pins, if required. To enable the Timer
Output feature, the GPIO port pin must be configured as an output and for alternate func-
tions. The GPIO output pin toggles each time the timer reaches its end-of-count value.
In CONTINUOUS mode operation, enabling the Timer Output feature results in a Timer
Output signal period which is twice the timer time-out period. Examples of Timer Output
operation is displayed in Figure 29 on page 126 and listed in Table 52 on page 126. The
initial value for the timer output is zero.
Logic to support timer output exists in all timers; but for the eZ80F91 device, only Timer
0 and 2 route the actual timer output to the pins. Because Timer 3 uses the TOUT pins for
PWMxN signals, the timer outputs are not available when using complementary PWM
outputs. See Table 52 on page 126 for details.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
126
Break Point Halting
System Clock
Clock Enable
TMR3_CTL Write
(Timer Enable)
T3 Count
0
4
3
2
1
4
3
2
1
Timer Out
(internal)
Timer Out
(at pad)
Figure 29. Example: PRT Timer Output Operation
Table 52. Example: PRT Timer Out Parameters
Parameter
Control Register(s)
TMRx_CTL[TIM_EN]
TMRx_CTL[RLD]
Value
Timer Enable
1
Reload
1
Prescaler Divider = 4
CONTINUOUS Mode
Timer Reload Value
TMRx_CTL[CLK_DIV]
TMRx_CTL[TIM_CONT]
{TMRx_RR_H, TMRx_RR_L}
00b
1
0003h
When the eZ80F91 device is running in DEBUG mode, encountering a break point causes
all CPU functions to halt. However, the timers keep running. This instance makes debug-
ging timer-related software much more difficult. Therefore, the control
register contains a BRK_STP bit. Setting this bit causes the count value to be held during
debug break points.
Specialty Timer Modes
The features described above are common to all timers in the eZ80F91 device. In addition
to these common features, some of the timers have additional functionality.
The following is a list of the special features for each timer:
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
127
•
•
Timer 0
–
No special functions
Timer 1
–
–
One event counter (EC0)
Two input captures (IC0 and IC1)
•
•
Timer 2
–
One event counter (EC1)
Timer 3
–
–
–
Two input captures (IC2 and IC3)
Four output compares (OC0, OC1, OC2, and OC3)
Four PWM outputs (PWM0, PWM1, PWM2, and PWM3)
Timer 3 consists of three specialty modes. Each of these modes are enabled using bits in
their respective control registers (TMR3_CAP_CTL, TMR3_OC_CTL1,
TMR3_PWM_CTL1). When PWM mode is enabled, the OUTPUT COMPARE and
INPUT CAPTURE modes are not available. This instance is due to address space sharing
requirements. However, INPUT CAPTURE and OUTPUT COMPARE modes run
simultaneously.
Timers with specialty modes offer multiple ways to generate an interrupt. When the inter-
rupt controller services a timer interrupt, the software must read the timers interrupt iden-
tification register (TMRx_IIR) to determine the causes for an interrupt request. This
register is cleared each time it is read, allowing subsequent events to be identified without
interference from prior events.
Event Counter
When a timer is configured to take its input from a port input pin (ECx), it functions as an
event counter. For event counting, the clock prescaler is automatically bypassed and edges
(events) cause the timer to decrement. You must select the rising or the falling edge for
counting. Also, the port pins must be configured as inputs.
Input sampling on the port pins results in the counter being updated on the third rising
edge of the system clock after the edge event occurs at the port pin. Due to sampling, the
frequency of the event input is limited to one-half the system clock frequency under ideal
conditions. In practice, the event frequency must be less than this value due to duty cycle
variation and system clock jitter.
This EVENT COUNT mode is identical to basic timer operation, except for the clock
source. Therefore, interrupts are managed in the same manner.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
128
RTC Oscillator Input
When the timer clock source is the Real-Time Clock (RTC) signal, the timer functions just
as it does in EVENT COUNT mode, except that it samples the internal RTC clock rather
than the ECx pin.
Input Capture
INPUT CAPTURE mode allows the CPU to determine the timing of specified events on a
set of external pins.
A timer intended for use in INPUT CAPTURE mode is setup the same way as in BASIC
mode, with one exception. The CPU must also write the TMRx_CAP_CTL register to
select the edge on which to capture: rising, falling, or both. When one of these events
occurs on an input capture pin, the current 16 bit timer value is latched into the capture
value register pair (TMRx_CAP_A or TMRx_CAP_B depending on the IC pin exhibiting
the event).
Reading the Low byte of the register pair causes the timer to ignore other capture events
on the associated external pin until the High byte is read. This instance prevents a
subsequent capture event from overwriting the High byte between the two Reads and
generating an invalid capture value. The capture value registers are Read Only.
A capture flag (ICA or ICB) in the TMRx_IIR register is set whenever a capture event
occurs. Setting the interrupt identification register bit TMRx_IER[IRQ_ICx_EN] enables
the capture event to generate a timer interrupt. The port pins must be configured as
alternate functions, see GPIO Mode 7—Alternate Functions on page 51.
Output Compare
The output compare function reverses the input capture function. Rather than store a timer
value when an external event occurs, OUTPUT COMPARE mode waits until the timer
reaches a specified value, then generates an external event. Although the same base timer
is used, up to four separate external pins are driven each with its own compare value.
To use OUTPUT COMPARE mode, the CPU must first configure the basic timer
parameters. Then it must load up to four 16-bit compare values into the four TMR3_OCx
register pairs. Next, it must load the TMR3_ OC_CTL2 register to specify the event that
occurs on comparison. You can select the following events: SET, CLEAR, and TOGGLE.
Finally, the CPU must enable OUTPUT COMPARE mode by asserting
TMR3_OC_CTL1[OC_EN].
The initial value for the OCx pins in OUTPUT COMPARE mode is 0 by default. It is
possible to initialize this value to 1 or force a value at a later time. Setting the
TMR3_OC_CTL2[OCx_MODE] value to 0 forces the OCx pin to the selected state
provided by the TMR3_OC_CTL1[OCx_INIT] bits. Regardless of any compare events,
the pin stays at the forced value until OCx_MODE is changed. After release, it retains the
forced value until modified by an OUTPUT COMPARE event.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
129
Asserting TMR3_OC_CTL1[MAST_MODE] selects MASTER MODE for all OUTPUT
COMPARE events and sets output 0 as the master. As a result, outputs 1, 2, and 3 are
caused to disregard output-specific configuration and comparison values and instead
mimic the current settings for output 0.
The OCx bits in the TMR3_IIR register are set whenever the corresponding timer com-
pares occur. TMR3_IER[IRQ_OCx_EN] allows the compare event to generate a timer
interrupt.
Timer Port Pin Allocation
The eZ80F91 device timers interface to the outside world via Ports A and B. These
ports are also used for GPIO as well as other assorted functions. Table 53 on page 129
lists the timer pins and their respective functions.
Table 53. GPIO Mode Selection Using Timer Pins
Timer Function
GPIO Port GPIO Port
PWM_CTL1
PWM_CTL1
Port
Bits
PA0
PA1
PA2
PA3
Mode
MPWM_EN = 0
MPWM_EN = 1
A
7
7
7
7
OC0
OC1
OC2
OC3
PWM0
PWM1
PWM2
PWM3
PWM_CTL1
PAIR_EN = 0
PWM_CTL1
PAIR_EN = 1
PA4
PA5
PA6
PA7
PB0
PB1
PB4
PB5
7
7
7
7
7
7
7
7
TOUT0
TOUT2
EC1
PWM0
PWM1
PWM2
PWM3
B
IC0/EC0
IC1
IC2
IC3
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
130
Timer Registers
The CPU monitors and controls the timer using seven 8-bit registers. These registers are
the control register, the interrupt identification register, the interrupt enable register and
the reload register pair (High and Low byte). There are also a pair of data registers used to
read the current timer count value.
The variable x can be 0, 1, 2, or 3 to represent each of the four available timers.
Basic Timer Register Set
Each timer requires a different set of registers for configuration and control. However,
all timers contain the following seven registers, each of which is necessary for basic
operation:
•
•
•
Timer Control Register (TMRx_CTL)
Interrupt Identification Register (TMRx_IIR)
Interrupt Enable Register (TMRx_IER)
•
•
Timer Data Registers (TMRx_DR_H and TMRx_DR_L)
Timer Reload Registers (TMRx_RR_H and TMRx_RR_L)
The Timer Data Register is Read Only, when the Timer Reload Register is Write Only.
The address space for these two registers is shared.
Register Set for Capture in Timer 1
In addition to the basic register set, Timer 1 uses the following five registers for its INPUT
CAPTURE mode:
•
•
Capture Control Register (TMR1_CAP_CTL)
Capture Value Registers (TMR1_CAP_B_H, TMR1_CAP_B_L, TMR1_CAP_A_H,
TMR1_CAP_A_L)
Register Set for Capture/Compare/PWM in Timer 3
In addition to the basic register set, Timer 3 uses 19 registers for INPUT CAPTURE,
OUTPUT COMPARE, and PWM modes. PWM and capture/compare functions cannot be
used simultaneously so, their register address space is shared. INPUT CAPTURE and
OUTPUT COMPARE are used concurrently and their address space is not shared.
The INPUT CAPTURE mode registers are equivalent to those used in Timer 1 above
(substitute TMR3 for TMR1).
OUTPUT COMPARE mode uses the following nine registers:
•
Output Compare Control Registers
TMR3_OC_CTL1
–
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
131
–
TMR3_OC_CTL2
•
Compare Value Registers
–
–
–
–
–
–
–
–
TMR3_OC3_H
TMR3_OC3_L
TMR3_OC2_H
TMR3_OC2_L
TMR3_OC1_H
TMR3_OC1_L
TMR3_OC0_H
TMR3_OC0_L
Multiple PWM mode uses the following 19 registers:
•
PWM Control Registers
–
–
–
TMR3_PWM_CTL1
TMR3_PWM_CTL2
TMR3_PWM_CTL3
•
PWM Rising Edge Values
–
–
–
–
–
–
–
–
TMR3_PWM3R_H
TMR3_PWM3R_L
TMR3_PWM2R_H
TMR3_PWM2R_L
TMR3_PWM1R_H
TMRx_PWM1R_L
TMR3_PWM0R_H
TMR3_PWM0R_L
•
PWM Falling Edge Values
–
–
–
–
–
–
–
–
TMR3_PWM3F_H
TMRx_PWM3F_L
TMR3_PWM2F_H
TMR3_PWM2F_L
TMR3_PWM1F_H
TMR3_PWM1F_L
TMR3_PWM0F_H
TMR3_PWM0F_L
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
132
Timer Control Register
The Timer x Control Register (see Table 54) is used to control timer operations including
enabling the timer, selecting the clock source, selecting the clock divider, selecting
between CONTINUOUS and SINGLEPASS modes, and enabling the auto-reload
feature.
Table 54. Timer Control Register (TMR0_CTL = 0060h, TMR1_CTL = 0065h,
TMR2_CTL = 006Fh, TMR3_CTL = 0074h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
The timer continues to operate during debug break points.
0
7
The timer stops operation and holds count value during debug
break points.
BRK_STOP
1
00
01
Timer source is the system clock divided by the prescaler.
Timer source is the Real Time Clock Input.
Timer source is the Event Count (ECx) input—falling edge.
For Timer 1 this is EC0.
For Timer 2, this is EC1.
[6:5]
CLK_SEL
10
11
Timer source is the Event Count (ECx) input—rising edge.
For Timer 1 this is EC0.
For Timer 2, this is EC1.
00
01
10
11
System clock divider = 4.
System clock divider = 16.
System clock divider = 64.
System clock divider = 256.
[4:3]
CLK_DIV
The timer operates in SINGLE PASS mode. TIM_EN (bit 0) is
reset to 0 and counting stops when the end-of-count value is
reached.
0
1
2
TIM_CONT
The timer operates in CONTINUOUS mode. The timer reload
value is written to the counter when the end-of-count value is
reached.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
133
0
1
Reload function is not forced.
1
RLD
Force reload. When 1 is written to this bit, the values in the
reload registers are loaded into the downcounter.
0
1
The programmable reload timer is disabled.
The programmable reload timer is enabled.
0
TIM_EN
Timer Interrupt Enable Register
The Timer x Interrupt Enable Register (see Table 55) is used to control timer interrupt
operations. Only bits related to functions present in a given timer are active.
Table 55. Timer Interrupt Enable (TMR0_IER = 0061h, TMR1_IER = 0066h,
TMR2_IER = 0070h, TMR3_IER = 0075h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
7
0
Unused.
Interrupt requests for OC3 are disabled (valid only in
OUTPUT COMPARE mode). OC operations occur in Timer 3.
0
1
0
1
0
1
0
1
6
IRQ_OC3_EN
Interrupt requests for OC3 are enabled (valid only in OUTPUT
COMPARE mode). OC operations occur in Timer 3.
Interrupt requests for OC2 are disabled (valid only in
OUTPUT COMPARE mode). OC operations occur in Timer 3.
5
IRQ_OC2_EN
Interrupt requests for OC2 are enabled (valid only in OUTPUT
COMPARE mode). OC operations occur in Timer 3.
Interrupt requests for OC1 are disabled (valid only in
OUTPUT COMPARE mode). OC operations occur in Timer 3.
4
IRQ_OC1_EN
Interrupt requests for OC1 are enabled (valid only in OUTPUT
COMPARE mode). OC operations occur in Timer 3.
Interrupt requests for OC0 are disabled (valid only in
OUTPUT COMPARE mode). OC operations occur in Timer 3.
3
IRQ_OC0_EN
Interrupt requests for OC0 are enabled (valid only in OUTPUT
COMPARE mode). OC operations occur in Timer 3.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
134
Interrupt requests for ICx are disabled (valid only in INPUT
CAPTURE mode).
Timer 1: the capture pin is IC1.
0
1
0
1
Timer 3: the capture pin is IC3.
2
IRQ_ICB_EN
Interrupt requests for ICx are enabled (valid only in INPUT
CAPTURE mode).
For Timer 1: the capture pin is IC1.
For Timer 3: the capture pin is IC3.
Interrupt requests for ICA or PWM power trip are disabled
(valid only in INPUT CAPTURE and PWM modes).
For Timer 1: the capture pin is IC0.
For Timer 3: the capture pin is IC2.
1
IRQ_ICA_EN
Interrupt requests for ICA or PWM power trip are enabled
(valid only in INPUT CAPTURE and PWM modes).
For Timer 1: the capture pin is IC0.
For Timer 3: the capture pin is IC2.
0
1
Interrupt on end-of-count is disabled.
Interrupt on end-of-count is enabled.
0
IRQ_EOC_EN
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
135
Timer Interrupt Identification Register
The TImer x Interrupt Identification Register (see Table 56) is used to flag timer events so
that the CPU determines the cause of a timer interrupt. This register is cleared by a CPU
Read.
Table 56. Timer Interrupt Identification Register (TMR0_IIR = 0062h, TMR1_IIR =
0067h, TMR2_IIR = 0071h, TMR3_IIR = 0076h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only;
Bit
Position
Value
Description
7
0
0
1
0
1
0
1
0
1
Unused.
Output compare, OC3, does not occur.
Output compare, OC3, occurs.
6
OC3
Output compare, OC2, does not occur.
Output compare, OC2, occurs.
5
OC2
Output compare, OC1, does not occur.
Output compare, OC1, occurs.
4
OC1
Output compare, OC0, does not occur.
Output compare, OC0, occurs.
3
OC0
Input capture, ICB, does not occur.
For Timer 1, the capture pin is IC1.
For Timer 3, the capture pin is IC3.
0
1
0
1
2
ICB
Input capture, ICB, occurs.
For Timer 1, the capture pin is IC1.
For Timer 3, the capture pin is IC3.
Input capture, ICA, or PWM power trip does not occur.
For Timer 1, the capture pin is IC0.
For Timer 3, the capture pin is IC2.
1
ICA
Input capture, ICA, or PWM power trip occurs.
For Timer 1, the capture pin is IC0.
For Timer 3, the capture pin is IC2.
0
1
End-of-count does not occur.
End-of-count occurs.
0
EOC
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
136
Timer Data Register—Low Byte
The Timer x Data Register—Low Byte returns the Low byte of the current count value of
the selected timer. The Timer Data Register—Low Byte (see Table 57) is read when the
timer is in operation. Reading the current count value does not affect timer
operation. To read the 16-bit data of the current count value, {TMRx_DR_H[7:0],
TMRx_DR_L[7:0]}, first read the Timer Data Register—Low Byte, followed by the
Timer Data Register—High Byte. The Timer Data Register—High Byte value is latched
into temporary storage when a Read of the Timer Data Register—Low Byte occurs.
This register shares its address with the corresponding timer reload register.
Table 57. Timer Data Register—Low Byte (TMR0_DR_L = 0063h, TMR1_DR_L =
0068h, TMR2_DR_L = 0072h, TMR3_DR_L = 0077h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
These bits represent the Low byte of the 2-byte timer data
value, {TMRx_DR_H[7:0], TMRx_DR_L[7:0]}. Bit 7 is bit 7
of the 16-bit timer data value. Bit 0 is bit 0 (lsb) of the 16-bit
timer data value.
[7:0]
TMR_DR_L
00h–FFh
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
137
Timer Data Register—High Byte
The Timer x Data Register—High Byte returns the High byte of the count value of the
selected timer as it existed at the time that the Low byte was read. The Timer Data
Register—High Byte (see Table 58) is read when the timer is in operation. Reading the
current count value does not affect timer operation. To read the 16-bit data of the
current count value, {TMRx_DR_H[7:0], TMRx_DR_L[7:0]}, first read the Timer Data
Register—Low Byte followed by the Timer Data Register—High Byte. The Timer Data
Register—High Byte value is latched into temporary storage when a Read of the Timer
Data Register—Low Byte occurs.
This register shares its address with the corresponding timer reload register.
Table 58. Timer Data Register—High Byte (TMR0_DR_H = 0064h, TMR1_DR_H =
0069h, TMR2_DR_H = 0073h, TMR3_DR_H = 0078h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
These bits represent the High byte of the 2-byte timer data
[7:0]
TMR_DR_H
value, {TMRx_DR_H[7:0], TMRx_DR_L[7:0]}. Bit 7 is bit 15
(msb) of the 16-bit timer data value. Bit 0 is bit 8 of the 16-bit
timer data value.
00h–FFh
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
138
Timer Reload Register—Low Byte
The Timer x Reload Register—Low Byte (see Table 59) stores the least-significant byte
(LSB) of the 2-byte timer reload value. In CONTINUOUS mode, the timer reload value is
reloaded into the timer on end-of-count. When the reload bit (TMRx_CTL[RLD]) is set to
1 forcing the reload function, the timer reload value is written to the timer on the next ris-
ing edge of the clock.
This register shares its address with the corresponding timer data register.
Table 59. Timer Reload Register—Low Byte (TMR0_RR_L = 0063h, TMR1_RR_L
= 0068h, TMR2_RR_L = 0072h, TMR3_RR_L = 0077h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
These bits represent the Low byte of the 2-byte timer
[7:0]
TMR_RR_L
reload value, {TMRx_RR_H[7:0], TMRx_RR_L[7:0]}. Bit 7
is bit 7 of the 16-bit timer reload value. Bit 0 is bit 0 (lsb) of
the 16-bit timer reload value.
00h–FFh
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
139
Timer Reload Register—High Byte
The Timer x Reload Register—High Byte (see Table 60) stores the most-significant byte
(MSB) of the 2-byte timer reload value. In CONTINUOUS mode, the timer reload value is
reloaded into the timer upon end-of-count. When the reload bit (TMRx_CTL[RLD]) is set
to 1, it forces the reload function, the timer reload value is written to the timer on the next
rising edge of the clock.
This register shares its address with the corresponding timer data register.
Table 60. Timer Reload Register—High Byte (TMR0_RR_H = 0064h,
TMR1_RR_H = 0069h, TMR2_RR_H = 0073h, TMR3_RR_H = 0078h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
These bits represent the High byte of the 2-byte timer
[7:0]
TMR_RR_H
reload value, {TMRx_RR_H[7:0], TMRx_RR_L[7:0]}. Bit 7
is bit 15 (msb) of the 16-bit timer reload value. Bit 0 is bit 8
of the 16-bit timer reload value.
00h–FFh
Timer Input Capture Control Register
The Timer x Input Capture Control Register (see Table 61) is used to select the edge or
edges to be captured. For Timer 1, CAP_EDGE_B is used for IC1 and CAP_EDGE_A is
for IC0. For Timer 3, CAP_EDGE_B is for IC3, and CAP_EDGE_A is for IC2.
Table 61. Timer Input Capture Control Register
(TMR1_CAP_CTL = 006Ah, TMR3_CAP_CTL = 007Bh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
[7:4]
0000
Reserved
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
140
00
01
10
11
00
01
10
11
Disable capture on ICB.
Enable capture only on the falling edge of ICB.
Enable capture only on the rising edge of ICB.
Enable capture on both edges of ICB.
Disable capture on ICA.
[3:2]
CAP_EDGE_B
Enable capture only on the falling edge of ICA
Enable capture only on the rising edge of ICA.
Enable capture on both edges of ICA.
[1:0]
CAP_EDGE_A
Timer Input Capture Value A Register—Low Byte
The Timer x Input Capture Value A Register—Low Byte (see Table 62) stores the Low
byte of the capture value for external input A. For Timer 1, the external input is IC0. For
Timer 3, it is IC2.
Table 62. Timer Input Capture Value Register A—Low Byte (TMR1_CAPA_L =
006Bh, TMR3_CAPA_L = 007Ch)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
These bits represent the Low byte of the 2-byte capture
value, {TMRx_CAPA_H[7:0], TMRx_CAPA_L[7:0]}. Bit 7 is
bit 7 of the 16-bit data value. Bit 0 is bit 0 (lsb) of the 16-bit
timer data value.
[7:0]
TMRx_CAPA_L
00h–FFh
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
141
Timer Input Capture Value A Register—High Byte
The Timer x Input Capture Value A Register—High Byte (see Table 63) stores the High
byte of the capture value for external input A. For Timer 1, the external input is IC0. For
Timer 3, it is IC2.
Table 63. Timer Input Capture Value Register A—High Byte (TMR1_CAPA_H
= 006Ch, TMR3_CAPA_H = 007Dh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
These bits represent the High byte of the 2-byte capture
value, {TMRx_CAPA_H[7:0], TMRx_CAPA_L[7:0]}. Bit 7 is
bit 15 (msb) of the 16-bit data value. Bit 0 is bit 8 of the 16-
bit timer data value.
[7:0]
TMRx_CAPA_H
00h–FFh
Timer Input Capture Value B Register—Low Byte
The Timer x Input Capture Value B Register—Low Byte (see Table 64) stores the Low
byte of the capture value for external input B. For Timer 1, the external input is IC1. For
Timer 3, it is IC3.
Table 64. Timer Input Capture Value Register B—Low Byte (TMR1_CAPB_L =
006Dh, TMR3_CAPB_L = 007Eh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
These bits represent the Low byte of the 2-byte capture
value, {TMRx_CAPB_H[7:0], TMRx_CAPB_L[7:0]}. Bit 7 is
bit 7 of the 16-bit data value. Bit 0 is bit 0 (lsb) of the
16-bit timer data value.
[7:0]
TMRx_CAPB_L
00h–FFh
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
142
Timer Input Capture Value B Register—High Byte
The Timer x Input Capture Value B Register—High Byte (see Table 65) stores the High
byte of the capture value for external input B. For Timer 1, the external input is IC0. For
Timer 3, it is IC3.
Table 65. Timer Input Capture Value Register B—High Byte (TMR1_CAPB_H
= 006Eh, TMR3_CAPB_H = 007Fh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
These bits represent the High byte of the 2-byte capture
value, {TMRx_CAPB_H[7:0], TMRx_CAPB_L[7:0]}. Bit 7 is
bit 15 (msb) of the 16-bit data value. Bit 0 is bit 8 of the 16-
bit timer data value.
[7:0]
TMRx_CAPB_H
00h–FFh
Timer Output Compare Control Register 1
The Timer3 Output Compare Control Register 1 (see Table 66) is used to select the Master
Mode and to provide initial values for the OC pins.
Table 66. Timer Output Compare Control Register 1 (TMR3_OC_CTL1 = 0080h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
[7:6]
00
0
Unused.
OC pin cleared when initialized.
OC pin set when initialized.
OC pin cleared when initialized.
OC pin set when initialized.
5
OC3_INIT
1
0
4
OC2_INIT
1
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
143
0
1
0
1
0
1
0
1
OC pin cleared when initialized.
OC pin set when initialized.
OC pin cleared when initialized.
OC pin set when initialized.
OC pins are independent.
OC pins all mimic OC0.
3
OC1_INIT
2
OC0_INIT
1
MAST_MODE
OUTPUT COMPARE mode is disabled.
OUTPUT COMPARE mode is enabled.
0
OC_EN
Timer Output Compare Control Register 2
The Timer3 Output Compare Control Register 2 (see Table 67) is used to select the event
that occurs on the output compare pins when a timer compare happens.
Table 67. Timer Output Compare Control Register 2 (TMR3_OC_CTL2 = 0081h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
Initialize OC pin to value specified in
TMR3_OC_CTL1[OC3_INT].
00
[7:6]
OC3_MODE
01
10
11
OC pin is cleared upon timer compare.
OC pin is set upon timer compare.
OC pin toggles upon timer compare.
Initialize OC pin to value specified in
TMR3_OC_CTL1[OC2_INT].
00
[5:4]
OC2_MODE
01
10
11
OC pin is cleared upon timer compare.
OC pin is set upon timer compare.
OC pin toggles upon timer compare.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
144
Initialize OC pin to value specified in
TMR3_OC_CTL1[OC1_INT].
00
[3:2]
OC1_MODE
01
10
11
OC pin is cleared upon timer compare.
OC pin is set upon timer compare.
OC pin toggles upon timer compare.
Initialize OC pin to value specified in
TMR3_OC_CTL1[OC0_INT].
00
[1:0]
OC0_MODE
01
10
11
OC pin is cleared upon timer compare.
OC pin is set upon timer compare.
OC pin toggles upon timer compare.
Timer Output Compare Value Register—Low Byte
The Timer3 Output Compare x Value Register—Low Byte (see Table 68) stores the Low
byte of the compare value for OC0–OC3.
Table 68. Compare Value Register—Low Byte (TMR3_OC0_L = 0082h,
TMR3_OC1_L = 0084h, TMR3_OC2_L = 0086h, TMR3_OC3_L = 0088h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the Low byte of the 2-byte compare
value, {TMR3_OCx_H[7:0], TMR3_OCx_L[7:0]}. Bit 7 is bit
7 of the 16-bit data value. Bit 0 is bit 0 (lsb) of the 16-bit
timer compare value.
[7:0]
TMR3_OCx_L
00h–FFh
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
145
Timer Output Compare Value Register—High Byte
The Timer3 Output Compare x Value Register—High Byte (see Table 69) stores the High
byte of the compare value for OC0–OC3.
Table 69. Compare Value Register—High Byte (TMR3_OC0_H = 0083h,
TMR3_OC1_H = 0085h, TMR3_OC2_H = 0087h, TMR3_OC3_H = 0089h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the High byte of the 2-byte compare
value, {TMR3_OCx_H[7:0], TMR3_OCx_L[7:0]}. Bit 7 is bit
15 (msb) of the 16-bit data value. Bit 0 is bit 8
of the 16-bit timer compare value.
[7:0]
TMR3_OCx_H
00h–FFh
Multi-PWM Mode
The special Multi-PWM mode uses the Timer 3 16-bit counter as the primary timekeeper
to control up to four PWM generators. The 16-bit reload value for Timer 3 sets a common
period for each of the PWM signals. However, the duty cycle and phase for each generator
are independent that is, the High and Low periods for each PWM generator are set inde-
pendently. In addition, each of the four PWM generators are enabled independently.
The eight PWM signals (four PWM output signals and their inverses) are output via Port
A. A functional block diagram of the Multi-PWM is displayed in Figure 30 on page 146.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
146
16
PA0
PA4
PWM0 Output
PWM0 Output
PWM0
Generator
16
Timer 3
16-Bit Binary
Downcounter
PA1
PA5
PWM1 Output
PWM1 Output
PWM1
Generator
16
Timer 3
Clock Input
Count Value
16
PA2
PA6
PWM2 Output
PWM2 Output
PWM2
Generator
16
PA3
PA7
PWM3 Output
PWM3 Output
PWM3
Generator
Figure 30. Multi-PWM Simplified Block Diagram
Setting TMR3_PWM_CTL1[MPWM_EN] to 1 enables Multi-PWM mode. The
TMR3_PWM_CTL1 register bits enable the four individual PWM generators by adjusting
settings according to the list provided in Table 70.
Table 70. Enabling PWM Generators
Enable PWM generator 0 by setting TMR3_PWM_CTL1[PWM0_EN] to 1.
Enable PWM generator 1 by setting TMR3_PWM_CTL1[PWM1_EN] to 1.
Enable PWM generator 2 by setting TMR3_PWM_CTL1[PWM2_EN] to 1.
Enable PWM generator 3 by setting TMR3_PWM_CTL1[PWM3_EN] to 1.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
147
The inverted PWM outputs PWM0, PWM1, PWM2, and PWM3 are globally enabled by
setting TMR3_PWM_CTL1[PAIR_EN] to 1. The individual PWM generators must be
enabled for the associated inverted PWM signals to be output.
For each of the 4 PWM generators, there is a 16-bit rising edge value
{TMR3_PWMxR_H[PWMxR_H], TMR3_PWMxR_L[PWMxR_L]} and a 16-bit falling
edge value {TMR3_PWMxF_H[PWMxF_H], TMR3_PWMxF_L[PWMxF_L]} for a total
of 16 registers. The rising-edge byte pairs define the timer count at which the PWMx
output transitions from Low to High. Conversely, the falling-edge byte pairs define the
timer count at which the PWMx output transitions from High to Low. On reset, all enabled
PWM outputs begin Low and all PWMx outputs begin High. When the PWMx output is
Low, the logic is looking for a match between the timer count and the rising edge value,
and vice versa. Therefore, in a case in which the rising edge value is the same as the falling
edge value, the PWM output frequency is one-half the rate at which the counter passes
through its entire count cycle (from reload value down to 0000h).
Figure 31and Figure 32 display a simple Multi-PWM output and an expanded view of the
timing, respectively. Associated control values are listed in Table 71 on page 148.
T3 Count
PWM0
C B
A
9
8
7
6
5
4
3
2
1
C B
A
9
8
7
6
5
4
3
2
1
C B
A
9
8
7
6
5
4
3
2
1 C B A
0
PWM0
PWM1
PWM1
Figure 31. Multi-PWM Operation
System Clock
Clock Enable
T3 Count
A
9
8
7
6
5
4
Figure 32. Multi-PWM Operation—Expanded View of Timing
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
148
Table 71. Example: Multi-PWM Addressing
Parameter
Control Register(s)
Value
Timer Reload Value
{TMR3_RR_H, TMR3_RR_L}
000Ch
{TMR3_PWM0R_H,
TMR3_PWM0R_L}
PWM0 rising edge
PWM0 falling edge
PWM1 rising edge
0008h
{TMR3_PWM0F_H, TMR3_PWM0F_L} 0004h
{TMR3_PWM1R_H,
0006h
TMR3_PWM1R_L}
PWM1 falling edge
PWM enable
{TMR3_PWM1F_H, TMR3_PWM1F_L} 0007h
TMR3_PWM_CTL1[PAIR_EN]
TMR3_PWM_CTL1[PWM0_EN]
TMR3_PWM_CTL1[PWM1_EN]
TMR3_PWM_CTL1[MPWM_EN]
TMR3_CTL[CLK_DIV]
1
PWM0 enable
1
PWM1 enable
1
Multi-PWM enable
Prescaler Divider = 4
1
00b
0000b
PWM nonoverlapping delay = 0 TMR3_PWM_CTL2[PWM_DLY]
PWM Master Mode
In PWM Master mode, the pair of output signals generated from the PWM0 generator
(PWM0 and PWM0) are directed to all four sets of PWM output pairs. Setting
TMR3_PWM_CTL1[MM_EN] to 1 enables PWM Master mode. Assuming the outputs
are all enabled and no AND/OR gating is used, all four PWM output pairs transition
simultaneously under the direction of PWM0 and PWM0. In PWM Master mode,
the outputs still be gated individually using the AND/OR gating functions described in the
next section. Multi-PWM mode and the individual PWM outputs must be enabled along
with PWM Master mode. It is possible to enable or disable any combination of the four
PWM outputs while running in PWM Master mode.
Modification of Edge Transition Values
Special circuitry is included for the update of the PWM edge transition values. Normal use
requires that these values be updated while the PWM generator is running.
Under certain circumstances, electric motors driven by the PWM logic encounters rough
operation. In other words, cycles are skipped if the PWM waveform edge is not carefully
modified.
Note:
Without special consideration, if a PWM generator looks for a particular count to make a
state transition and if the edge transition value changes to a value that already occurred in
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
149
the current counter count-down cycle, then the transition is missed. The PWM generator
holds the current output state until the counter reloads and cycles through to the
appropriate edge transition value again. In effect, an entire cycle of the PWM waveform is
skipped with the signal held at a DC value. The change in PWM waveform duty cycle
from cycle to cycle must be limited to some fraction of a period to avoid rough running.
To avoid unintentional roughness due to timing of the load operation for the register val-
ues in question, the PWM edge transition values are double-buffered and exhibit the
following behavior:
•
•
When the PWM generators are disabled, PWM edge transition values written by the
CPU are immediately loaded into the PWM edge transition registers.
When the PWM generators are enabled, a PWM edge transition value is loaded into a
buffer register and transferred to its destination register only during a specific transition
event. A rising edge transition value is only loaded upon a falling edge transition event,
and a falling edge transition value is only loaded upon a rising edge transition event.
AND/OR Gating of the PWM Outputs
When in Multi-PWM mode, it is possible for you to turn off PWM propagation to the pins
without disabling the PWM generator. This feature is global and applies to all enabled
PWM generators. The function is implemented by applying digital logic (AND or OR
functions) to combine the corresponding bits in the port output register with the PWM and
PWM outputs.
The AND or OR functions are enabled on all PWM outputs by setting
TMR3_PWM_CTL2[AO_EN] to either a 01b(AND) or 10b(OR). Any other value
disables this feature. Likewise, the AND or OR functions are enabled on all PWM outputs
by setting TMR3_PWM_CTL2[AON_EN] to either a 01b(AND) or 10b(OR). Any
other value disables this feature. A functional block diagram for the AND/OR gating fea-
ture for PWM0 and PWM0 is displayed in Figure 33 on page 150. The functionality for
the other three PWM pairs are identical.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
150
00
01
10
11
PA0
PWM0 Output
PWM0 Signal
PADR0
2
TMR3_PWM_CTL2[5:4]
00
01
10
PWM0 Output
PWM0 Signal
PADR4
PA4
11
2
TMR3_PWM_CTL2[7:6]
Figure 33. PWM AND/OR Gating Functional Diagram
If you enable the OR function on all PWM outputs and PADR0 is set to 1, then the PWM0
output on PA0 is forced High. Similarly, if you select the AND function on all PWM
outputs and PADR0 is set to a 0, then the PWM0 output on PA0 is forced Low.
PWM Nonoverlapping Output Pair Delays
A delay is added between the falling edge of the PWM (PWM) outputs and the rising edge
of the PWM (PWM) outputs. This delay is set to assure that even with load and output
drive variations there will be no overlap between the falling edge of a PWM (PWM) out-
put and the rising edge of its paired output. The selected delay is global to all four PWM
pairs. The delay duration is software-selectable using the 4-bit field
TMR3_PWM_CTL2[PWM_DLY]. The duration is programmable in units of the system
clock (SCLK), from 0 SCLK periods to 15 SCLK periods. The
TMR3_PWM_CTL2[PWM_DLY] bits are mapped directly to a counter, such that a
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
151
setting of 0000brepresents a delay of 0 system clock periods and a setting of 1111brep-
resents a delay of 15 system clock periods. The PWM delay feature is displayed in
Figure 34 with associated addressing listed in Table 72.
The PWM nonoverlapping delay time must always be defined to be less than the delay
between the rising and falling edges (and the delay between the falling and rising edges)
of all Multi-PWM outputs. In other words, a rising (falling) edge cannot be delayed
beyond the time at which it is subsequently scheduled to fall (rise).
Note:
System Clock
Clock Enable
A
9
8
7
6
5
4
3
2
1
C
TMR3_Count
PWM0
PWM0
3 x SCLK
3 x SCLK
Figure 34. PWM Nonoverlapping Output Delay
Table 72. PWM Nonoverlapping Output Addressing
Parameter
Control Register(s)
Value
Timer clock is SCLK ÷ 4
Timer reload value
PWM0 rising edge
PWM0 falling edge
Prescaler divider = 4
PWM nonoverlapping delay = 3
PWM enable
TMR3_CTL[CLK_DIV]
00b
{TMR3_RR_H, TMR3_RR_L}
000Ch
0008h
0004h
00b
0011b
1
{TMR3_PWM0R_H, TMR3_PWM0R_L}
{TMR3_PWM0F_H, TMR3_PWM0F_L}
TMR3_CTL[CLK_DIV]
TMR3_PWM_CTL2[PWM_DLY]
TMR3_PWM_CTL1[PAIR_EN]
TMR3_PWM_CTL1[PWM0_EN]
TMR3_PWM_CTL1[MPWN_EN]
PWM0 enable
1
Multi-PWM enable
1
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
152
Multi-PWM Power-Trip Mode
When enabled, the Multi-PWM power-trip feature forces the enabled PWM outputs to a
predetermined state when an interrupt is generated from an external source via IC0, IC1,
IC2, or IC3. One or multiple external interrupt sources are enabled at any given time. If
multiple sources are enabled, any of the selected external sources trigger an interrupt.
Configuring the PWM_CTL3 register enables or disables interrupt sources. See Table 75
on page 156.
The possible interrupt sources for a Multi-PWM power-trip are:
•
•
•
•
IC0—digital input
IC1—digital input
IC2—digital input
IC3—digital input
When the power-trip is detected, TMR3_PWM_CTL3[PTD] is set to 1 to indicate
detection of the power-trip. A value of 0 signifies that no power-trip is detected.
The PWMs are released only after a power-trip when TMR3_PWM_CTL3[PTD] is
written back to 0 by software. As a result, you are allowed to check the conditions of the
motor being controlled before releasing the PWMs. The explicit release also prevents
noise glitches after a power-trip from causing an accidental exit or re-entry of the PWM
power-trip state.
The programmable power-trip states of the PWMs are globally grouped for the PWM out-
puts and the inverting PWM outputs. Upon detection of a power-trip, the PWM outputs
are forced to either a High state, a Low state, or high-impedance. The settings for the
power-trip states are made with power-trip control bits TMR3_PWM_CTL3[PT_LVL],
TMR3_PWM_CTL3[PT_LVL_N], and TMR3_PWM_CTL3[PT_TRI].
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
153
Multi-PWM Control Registers
Pulse-Width Modulation Control Register 1
The PWM Control Register 1 (see Table 73) controls PWM function enables.
Table 73. PWM Control Register 1 (PWM_CTL1 = 0079h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
Global disable of the PWM outputs (PWM outputs enabled
only).
0
7
PAIR_EN
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Global enable of the PWM and PWM output pairs.
Disable power-trip feature.
Enable power-trip feature.
Disable Master mode.
6
PT_EN
5
MM_EN
Enable Master mode.
Disable PWM generator 3.
Enable PWM generator 3.
Disable PWM generator 2.
Enable PWM generator 2.
Disable PWM generator 1.
Enable PWM generator 1.
Disable PWM generator 0.
Enable PWM generator 0.
Disable Multi-PWM mode.
Enable Multi-PWM mode.
4
pwm3_en
3
pwm2_en
2
pwm1_en
1
PWM0_EN
0
mpwm_en
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
154
Pulse-Width Modulation Control Register 2
The PWM Control Register 2 (see Table 74) controls pulse-width modulation AND/OR
and edge delay functions.
Table 74. PWM Control Register 2 (PWM_CTL2 = 007Ah)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
00
01
10
11
00
01
10
11
Disable AND/OR features on PWM
Enable AND logic on PWM
[7:6]
AON_EN
Enable OR logic on PWM
Disable AND/OR features on PWM
Disable AND/OR features on PWM
Enable AND logic on PWM
[5:4]
AO_EN
Enable OR logic on PWM
Disable AND/OR features on PWM
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
155
No delay between falling edge of PWM (PWM) and rising
edge of PWM (PWM)
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Delay of 1 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 2 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 3 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 4 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 5 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 6 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 7 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
[3:0]
PWM_DLY
Delay of 8 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 9 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 10 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 11 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 12 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 13 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 14 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
Delay of 15 SCLK periods between falling edge of PWM
(PWM) and rising edge of PWM (PWM)
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
156
Pulse-Width Modulation Control Register 3
The PWM Control Register 3 (see Table 75) is used to configure the PWM power trip
functionality.
Table 75. PWM Control Register 3 (PWM_CTL3 = 007Bh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R
CPU Access
Note: R/W = Read/Write; R = Read only.
Bit
Position
Value
Description
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Power trip disabled on IC3.
Power trip enabled on IC3.
Power trip disabled on IC2.
Power trip enabled on IC2.
Power trip disabled on IC1.
Power trip enabled on IC1.
Power trip disabled on IC0.
Power trip enabled on IC0.
7
PT_IC3_EN
6
PT_IC2_EN
5
PT_IC1_EN
4
PT_IC0_EN
All PWM trip levels are open-drain.
3
PT_TRI
All PWM trip levels are defined by PT_LVL and PT_LVL_N.
After power trip, PWMx outputs are set to one.
After power trip, PWMx outputs are set to zero.
After power trip, PWMx outputs are set to one.
After power trip, PWMx outputs are set to zero.
Power trip has been cleared.
2
PT_LVL
1
PT_LVL_N
0
PTD
This bit is set after power trip event.
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
157
Pulse-Width Modulation Rising Edge—Low Byte
A parallel 16-bit Write of {TMR3_PWMxR_H[7–0], TMR3_PWMxR_L[7–0]} occurs
when software initiates a Write to TMR3_PWMxR_L. The register is listed in
Table 76.
Table 76. PWMx Rising-Edge Register—Low Byte (TMR3_PWM0R_L = 007Ch,
TMR3_PWM1R_L = 007Eh, TMR3_PWM2R_L = 0080h, TMR3_PWM3R_L = 0082h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the Low byte of the 16-bit value to set the
rising edge COMPARE value for PWMx,
00h–FFh {TMR3_PWMXR_H[7:0], TMR3_PWMXR_L[7:0]}. Bit 7 is bit 7
of the 16-bit timer data value. Bit 0 is bit 0 (lsb) of the
16-bit timer data value.
[7:0]
PWMXR_L
Pulse-Width Modulation Rising Edge—High Byte
Writing to TMR3_PWMxR_H stores the value in a temporary holding register. A parallel
16-bit Write of {TMR3_PWMxR_H[7–0], TMR3_PWMxR_L[7–0]} occurs when soft-
ware initiates a Write to TMR3_PWMxR_L. The register is listed in Table 77.
Table 77. PWMx Rising-Edge Register—High Byte (TMR3_PWM0R_H = 007Dh,
TMR3_PWM1R_H = 007Fh, TMR3_PWM2R_H = 0081h, TMR3_PWM3R_H = 0083h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the High byte of the 16-bit value to set the
rising edge COMPARE value for PWMx,
00h–FFh {TMR3_PWMXR_H[7:0], TMR3_PWMXR_L[7:0]}. Bit 7 is bit
15 (msb) of the 16-bit timer data value. Bit 0 is bit 8 of the
16-bit timer data value.
[7:0]
PWMXR_H
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
158
Pulse-Width Modulation Falling Edge—Low Byte
A parallel 16-bit Write of {TMR3_PWMxF_H[7–0], TMR3_PWMxF_L[7–0]} occurs
when software initiates a Write to TMR3_PWMxF_L. The register is listed in Table 78.
Table 78. PWMx Falling-Edge Register—Low Byte (TMR3_PWM0F_L = 0084h,
TMR3_PWM1F_L = 0086h, TMR3_PWM2F_L = 0088h, TMR3_PWM3F_L = 008Ah)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the Low byte of the 16-bit value to set the
falling edge COMPARE value for PWMx,
00h–FFh {TMR3_PWMXF_H[7:0], TMR3_PWMXF_L[7:0]}. Bit 7 is bit 7
of the 16-bit timer data value. Bit 0 is bit 0 (lsb) of the
16-bit timer data value.
[7:0]
PWMXF_L
Pulse-Width Modulation Falling Edge—High Byte
Writing to TMR3_PWMxF_H stores the value in a temporary holding register. A parallel
16-bit Write of {TMR3_PWMxF_H[7–0], TMR3_PWMxF_L[7–0]} occurs when
software initiates a Write to TMR3_PWMxF_L. The register is listed in Table 79.
Table 79. PWMx Falling-Edge Register—High Byte (TMR3_PWM0F_H = 0085h,
TMR3_PWM1F_H = 0087h, TMR3_PWM2F_H = 0089h, TMR3_PWM3F_H = 008Bh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the High byte of the 16-bit value to set the
falling edge COMPARE value for PWMx,
00h–FFh {TMR3_PWMXF_H[7:0], TMR3_PWMXF_L[7:0]}. Bit 7 is bit 15
(msb) of the 16-bit timer data value. Bit 0 is bit 8 of the
16-bit timer data value.
[7:0]
PWMXF_H
PS019215-0910
Programmable Reload Timers
eZ80F91 MCU
Product Specification
159
Real-Time Clock
Real-Time Clock Overview
The Real-Time Clock (RTC) maintains time by keeping count of seconds, minutes, hours,
day-of-the-week, day-of-the-month, year, and century. The current time is kept in 24-hour
format. The format for all count and alarm registers is selectable between binary and
binary-coded-decimal (BCD) operations. The calendar operation maintains the correct
day-of-the-month and automatically compensates for leap year. A simplified block
diagram of the RTC and the associated on-chip, low-power, 32 kHz oscillator is displayed
in Figure 35. Connections to an external battery supply and 32 kHz crystal network is also
displayed in Figure 35.
For users NOT using the RTC the following RTC signal pins must be connected as follows
to avoid a 10 uA leakage within the RTC circuit block. RTC_Xin (pin 61) must be left float-
ing or connected to ground.
Note:
RTC_VDD
Battery
VDD
IRQ
Real-Time Clock
ADDR[15:0]
DATA[7:0]
RTC Clock
R1
RTC_XOUT
C
System Clock
Low-Power
32 KHz Oscillator
VDD
32 KHz
Crystal
Enable
CLK_SEL
(RTC_CTRL[4])
RTC_XIN
C
Figure 35. Real-Time Clock and 32 kHz Oscillator Block Diagram
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
160
Real-Time Clock Alarm
The clock is programmed to generate an alarm condition when the current count matches
the alarm set-point registers. Alarm registers are available for seconds, minutes, hours, and
day-of-the-week. Each alarm is independently enabled. To generate an alarm condition,
the current time must match all enabled alarm values. For example, if the day-of-the-week
and hour alarms are both enabled, the alarm only occurs at a specified hour on a specified
day. The alarm triggers an interrupt if the interrupt enable bit, INT_EN, is set to 1. The
alarm flag, ALARM, and corresponding interrupt to the CPU are cleared by reading the
RTC_CTRL register.
Alarm value registers and alarm control registers are written at any time. Alarm conditions
are generated when the count value matches the alarm value. The comparison of alarm and
count values occurs whenever the RTC count increments (one time every second). The
RTC is also forced to perform a comparison at any time by writing a 0 to the
RTC_UNLOCK bit (the RTC_UNLOCK bit is not required to be changed to a 1 first).
Real-Time Clock Oscillator and Source Selection
The RTC count is driven by either the on-chip 32 kHz RTC oscillator or an external
50/60 Hz CMOS-level clock signal (typically derived from the AC power line frequency).
The on-chip oscillator requires an external 32 kHz crystal connected to RTC_XIN and
RTC_XOUT as displayed in Figure 35 on page 159. If an external 50/60 Hz clock signal is
used, connect it to RTC_XOUT.
The clock source and power-line frequencies are selected in the RTC_CTRL register.
Writing to the RTC_CTRL register resets the clock divider.
Real-Time Clock Battery Backup
The power supply pin (RTC_VDD) for the RTC and associated low-power 32 kHz
oscillator is isolated from the other power supply pins on the eZ80F91 device. To ensure
that the RTC continues to keep time in the event of loss of line power to the application, a
battery is used to supply power to the RTC and the oscillator via the RTC_VDD pin. All
VSS (ground) pins must be connected together on the printed circuit assembly.
Real-Time Clock Recommended Operation
Following a initial system reset from a power-down condition of VDD and VDD_RTC, the
counter values of the RTC are undefined and all alarms are disabled. The following proce-
dure is recommended to initialize the Real-Time Clock:
•
Write to RTC_CTRL to set RTC_UNLOCK and disable the RTC counter; this action
also clears the clock divider
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
161
•
•
•
Write values to the RTC count registers to set the current time
Write values to the RTC alarm registers to set the appropriate alarm conditions
Write to RTC_CTRL to clear RTC_UNLOCK; clearing the RTC_UNLOCK bit resets
and enables the clock divider
Real-Time Clock Registers
The RTC registers are accessed via the address and data buses using I/O instructions. The
RTC_UNLOCK control bit controls access to the RTC count registers. When unlocked
(RTC_UNLOCK = 1), the RTC count is disabled and the count registers are Read/Write.
When locked (RTC_UNLOCK = 0), the RTC count is enabled and the count registers are
Read Only. The default at RESET is for the RTC to be locked.
Real-Time Clock Seconds Register
This register contains the current seconds count. The value in the RTC_SEC register is
unchanged by a RESET. The current setting of BCD_EN determines whether the values
in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
Access to this register is Read Only if the RTC is locked, and Read/Write if the RTC is
unlocked. See Table 80.
Table 80. Real-Time Clock Seconds Register (RTC_SEC = 00E0h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded-Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–5
The tens digit of the current seconds count.
TEN_SEC
[3:0]
0–9
The ones digit of the current seconds count.
SEC
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–3Bh The current seconds count.
SEC
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
162
Real-Time Clock Minutes Register
This register contains the current minutes count. The value in the RTC_MIN register is
unchanged by a RESET. The current setting of BCD_EN determines whether the values
in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
Access to this register is Read Only if the RTC is locked, and Read/Write if the RTC is
unlocked. See Table 81.
Table 81. Real-Time Clock Minutes Register (RTC_MIN = 00E1h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–5
The tens digit of the current minutes count.
TEN_MIN
[3:0]
0–9
The ones digit of the current minutes count.
MIN
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–3Bh The current minutes count.
MIN
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
163
Real-Time Clock Hours Register
This register contains the current hours count. The value in the RTC_HRS register is
unchanged by a RESET. The current setting of BCD_EN determines whether the values
in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
Access to this register is Read Only if the RTC is locked, and Read/Write if the RTC is
unlocked. See Table 82.
Table 82. Real-Time Clock Hours Register (RTC_HRS = 00E2h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–2
The tens digit of the current hours count.
TEN_HRS
[3:0]
0–9
The ones digit of the current hours count.
HRS
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–17h The current hours count.
HRS
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
164
Real-Time Clock Day-of-the-Week Register
This register contains the current day-of-the-week count. The RTC_DOW register begins
counting at 01h. The value in the RTC_DOW register is unchanged by a RESET. The
current setting of BCD_EN determines whether the value in this register is binary
(BCD_EN = 0) or binary-coded decimal (BCD_EN = 1). Access to this register is Read
Only if the RTC is locked and Read/Write if the RTC is unlocked. See Table 83.
Table 83. Real-Time Clock Day-of-the-Week Register (RTC_DOW = 00E3h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
X
X
X
X
Reset
R
R
R
R
R/W*
R/W*
R/W*
R/W*
CPU Access
Note: X = Unchanged by RESET; R = Read Only; R/W* = Read Only if RTC locked, Read/Write
if RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0000 Reserved.
[3:0]
1–7
The current day-of-the-week.count.
DOW
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:4]
0000
Reserved.
[3:0]
01h–07h The current day-of-the-week count.
DOW
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
165
Real-Time Clock Day-of-the-Month Register
This register contains the current day-of-the-month count. The RTC_DOM register begins
counting at 01h. The value in the RTC_DOM register is unchanged by a RESET. The
current setting of BCD_EN determines whether the values in this register are binary
(BCD_EN = 0) or binary-coded decimal (BCD_EN = 1). Access to this register is Read
Only if the RTC is locked, and Read/Write if the RTC is unlocked. See Table 84.
Table 84. Real-Time Clock Day-of-the-Month Register (RTC_DOM = 00E4h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–3
The tens digit of the current day-of-the-month count.
TENS_DOM
[3:0]
0–9
The ones digit of the current day-of-the-month count.
DOM
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
01h–1Fh The current day-of-the-month count.
DOM
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
166
Real-Time Clock Month Register
This register contains the current month count. The RTC_MON register begins counting at
01h. The value in the RTC_MON register is unchanged by a RESET. The current setting
of BCD_EN determines whether the values in this register are binary (BCD_EN = 0) or
binary-coded decimal (BCD_EN = 1). Access to this register is Read Only if the RTC is
locked, and Read/Write if the RTC is unlocked. See Table 85.
Table 85. Real-Time Clock Month Register (RTC_MON = 00E5h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–1
The tens digit of the current month count.
TENS_MON
[3:0]
0–9
The ones digit of the current month count.
MON
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
01h–0Ch The current month count.
MON
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
167
Real-Time Clock Year Register
This register contains the current year count. The value in the RTC_YR register is
unchanged by a RESET. The current setting of BCD_EN determines whether the values
in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
Access to this register is Read Only if the RTC is locked, and Read/Write if the RTC is
unlocked. See Table 86.
Table 86. Real-Time Clock Year Register (RTC_YR = 00E6h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–9
The tens digit of the current year count.
TENS_YR
[3:0]
0–9
The ones digit of the current year count.
YR
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–63h The current year count.
YR
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
168
Real-Time Clock Century Register
This register contains the current century count. The value in the RTC_CEN register is
unchanged by a RESET. The current setting of BCD_EN determines whether the values
in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
Access to this register is Read Only if the RTC is locked, and Read/Write if the RTC is
unlocked. See Table 87.
Table 87. Real-Time Clock Century Register (RTC_CEN = 00E7h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W* R/W* R/W* R/W* R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R/W* = Read Only if RTC locked, Read/Write if RTC unlocked.
Binary-Coded-Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–9
The tens digit of the current century count.
TENS_CEN
[3:0]
0–9
The ones digit of the current century count.
CEN
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–63h The current century count.
CEN
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
169
Real-Time Clock Alarm Seconds Register
This register contains the alarm seconds value. The value in the RTC_ASEC register is
unchanged by a RESET. The current setting of BCD_EN determines whether the values
in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1). See
Table 88.
Table 88. Real-Time Clock Alarm Seconds Register (RTC_ASEC = 00E8h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: X = Unchanged by RESET; R/W = Read/Write.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–5
The tens digit of the alarm seconds value.
ATEN_SEC
[3:0]
0–9
The ones digit of the alarm seconds value.
ASEC
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–3Bh The alarm seconds value.
ASEC
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
170
Real-Time Clock Alarm Minutes Register
This register contains the alarm minutes value. The value in the RTC_AMIN register is
unchanged by a RESET. The current setting of BCD_EN determines whether the
values in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
See Table 89.
Table 89. Real-Time Clock Alarm Minutes Register (RTC_AMIN = 00E9h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: X = Unchanged by RESET; R/W = Read/Write.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–5
The tens digit of the alarm minutes value.
ATEN_MIN
[3:0]
0–9
The ones digit of the alarm minutes value.
AMIN
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–3Bh The alarm minutes value.
AMIN
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
171
Real-Time Clock Alarm Hours Register
This register contains the alarm hours value. The value in the RTC_AHRS register is
unchanged by a RESET. The current setting of BCD_EN determines whether the
values in this register are binary (BCD_EN = 0) or binary-coded decimal (BCD_EN =
1). See Table 90.
Table 90. Real-Time Clock Alarm Hours Register (RTC_AHRS = 00EAh)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: X = Unchanged by RESET; R/W = Read/Write.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0–2
The tens digit of the alarm hours value.
ATEN_HRS
[3:0]
0–9
The ones digit of the alarm hours value.
AHRS
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:0]
00h–17h The alarm hours value.
AHRS
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
172
Real-Time Clock Alarm Day-of-the-Week Register
This register contains the alarm day-of-the-week value. The value in the RTC_ADOW
register is unchanged by a RESET. The current setting of BCD_EN determines whether
the value in this register is binary (BCD_EN = 0) or binary-coded decimal (BCD_EN = 1).
See Table 91.
Table 91. Real-Time Clock Alarm Day-of-the-Week Register (RTC_ADOW = 00EBh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
X
X
X
X
Reset
R
R
R
R
R/W* R/W* R/W* R/W*
CPU Access
Note: X = Unchanged by RESET; R = Read Only; R/W* = Read Only if RTC locked, Read/Write if
RTC unlocked.
Binary-Coded Decimal Operation (BCD_EN = 1)
Bit Position
Value Description
[7:4]
0000 Reserved.
[3:0]
1–7
The alarm day-of-the-week value.
ADOW
Binary Operation (BCD_EN = 0)
Bit Position
Value
Description
[7:4]
0000
Reserved.
[3:0]
01h–07h The alarm day-of-the-week value.
ADOW
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
173
Real-Time Clock Alarm Control Register
This register contains control bits for the Real-Time Clock. The RTC_ACTRL register is
cleared by a RESET. See Table 92.
Table 92. Real-Time Clock Alarm Control Register (RTC_ACTRL = 00ECh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R/W
R/W
R/W
R/W
CPU Access
Note: X = Unchanged by RESET; R = Read Only; R/W = Read/Write
Bit Position
Value Description
[7:4]
0000 Reserved.
3
0
1
0
1
0
1
0
1
The day-of-the-week alarm is disabled.
ADOW_EN
The day-of-the-week alarm is enabled.
The hours alarm is disabled.
The hours alarm is enabled.
2
AHRS_EN
1
The minutes alarm is disabled.
The minutes alarm is enabled.
The seconds alarm is disabled.
The seconds alarm is enabled.
AMIN_EN
0
ASEC_EN
Real-Time Clock Control Register
This register contains control and status bits for the Real-Time Clock. Some bits in the
RTC_CTRL register are cleared by a RESET. The ALARM bit flag and associated inter-
rupt (if INT_EN is enabled) are cleared by reading this register. The ALARM bit flag is
updated by clearing (locking) the RTC_UNLOCK bit or by an increment of the RTC
count. Writing to the RTC_CTRL register also resets the RTC count prescaler allowing the
RTC to be synchronized to another time source.
SLP_WAKE indicates if an RTC alarm condition initiated the CPU recovery from SLEEP
mode. This bit is checked after RESET to determine if a sleep-mode recovery is caused by
the RTC. SLP_WAKE is cleared by a Read of the RTC_CTRL register.
Setting the BCD_EN bit causes the RTC to use binary-coded decimal
all registers including the alarm set points.
(BCD) counting in
The CLK_SEL and FREQ_SEL bits select the RTC clock source. If the 32KHz crystal
option is selected, the oscillator is enabled and the internal prescaler is set to divide by
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
174
32768. If the power-line frequency option is selected, the prescale value is set by the
FREQ_SEL bit, and the 32 kHz oscillator is disabled. See Table 93.
Table 93. Real-Time Clock Control Register (RTC_CTRL = 00EDh)
Bit
7
6
5
4
3
2
1
0
X
0
X
X
X
X
0/1
0
Reset
R
R/W
R/W
R/W
R/W
R/W
R
R/W
CPU Access
Note: X = Unchanged by RESET; R = Read Only; R/W = Read/Write.
Bit Position
Value Description
7
0
1
0
1
0
1
0
Alarm interrupt is inactive.
ALARM
Alarm interrupt is active.
6
Interrupt on alarm condition is disabled.
Interrupt on alarm condition is enabled.
INT_EN
5
RTC count and alarm value registers are binary.
RTC count and alarm value registers are BCD.
BCD_EN
4
RTC clock source is crystal oscillator output (32768 Hz).
On-chip 32768Hz oscillator is enabled.
CLK_SEL
1
RTC clock source is power-line frequency input.
On-chip 32768Hz oscillator is disabled.
3
0
1
0
1
Power-line frequency is 60 Hz.
FREQ_SEL
Power-line frequency is 50 Hz.
2
Suggested value for Daylight Savings Time not selected.
DAY_SAV
Suggested value for Daylight Savings Time selected.
This register bit has been allocated as a storage location only
for software applications that use DST. No action is performed
in the eZ80F91 when setting or clearing this bit.
1
0
1
0
RTC did not generate a sleep-mode recovery reset.
RTC Alarm generated a sleep-mode recovery reset.
SLP_WAKE
0
RTC count registers are locked to prevent write access.
RTC_UNLOCK
RTC counter is enabled.
1
RTC count registers are unlocked to allow write access.
RTC counter is disabled.
PS019215-0910
Real-Time Clock
eZ80F91 MCU
Product Specification
175
Universal Asynchronous
Receiver/Transmitter
The UART module implements all of the logic required to support the asynchronous com-
munications protocol. The module also implements two separate 16-byte-deep FIFOs for
both transmission and reception. A block diagram of the UART is displayed in Figure 36.
System Clock
Receive
RxD0/RxD1
Buffer
I/O Address
Transmit
Buffer
Data
TxD0/TxD1
Interrupt Signal
CTS0/CTS1
RTS0/RTS1
DSR0/DSR1
DTR0/DTR1
DCD0/DCD1
RI0/RI1
Modem
Control
Logic
Figure 36. UART Block Diagram
The UART module provides the following asynchronous communications protocol-
related features and functions:
•
•
•
•
•
•
5-, 6-, 7-, 8- or 9-bit data transmission.
Even/odd, space/mark, address/data, or no parity bit generation and detection.
Start and stop bit generation and detection (supports up to two stop bits).
Line break detection and generation.
Receiver overrun and framing errors detection.
Logic and associated I/O to provide modem handshake capability.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
176
UART Functional Description
The UART Baud Rate Generator (BRG) creates the clock for the serial transmit and
receive functions. The UART module supports all of the various options in the asynchro-
nous transmission and reception protocol including:
•
•
•
•
•
5- to 9-bit transmit/receive
Start bit generation and detection
Parity generation and detection
Stop bit generation and detection
Break generation and detection
The UART contains 16-byte-deep FIFOs in each direction. The FIFOs are enabled or dis-
abled by the application. The receive FIFO features trigger-level detection logic, which
enables the CPU to block-transfer data bytes from the receive FIFO.
UART Functions
The UART function implements:
•
•
•
The transmitter and associated control logic
The receiver and associated control logic
The modem interface and associated logic
UART Transmitter
The transmitter block controls the data transmitted on the TxD output. It implements the
FIFO, access via the UARTx_THR register, the transmit shift register, the parity generator,
and control logic for the transmitter to control parameters for the asynchronous communi-
cations protocol.
The UARTx_THR is a Write Only register. The CPU writes the data byte to be transmitted
into this register. In FIFO mode, up to 16 data bytes are written via the UARTx_THR reg-
ister. The data byte from the FIFO is transferred to the transmit shift register at the appro-
priate time and transmitted via TxD output. After SYNC_RESET, the UARTx_THR
register is empty. Therefore, the Transmit Holding Register Empty (THRE) bit (bit 5 of
the UARTx_LSR register) is 1. An interrupt is sent to the CPU if interrupts are enabled.
The CPU resets this interrupt by loading data into the UARTx_THR register, which clears
the transmitter interrupt.
The transmit shift register places the byte to be transmitted on the TxD signal serially. The
LSb of the byte to be transmitted is shifted out first and the MSb is shifted out last. The
control logic within the block adds the asynchronous communications protocol bits to the
data byte being transmitted. The transmitter block obtains the parameters for the protocol
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
177
from the bits programmed via the UARTx_LCTL register. When enabled, an interrupt is
generated after the final protocol bit is transmitted which the CPU resets by loading data
into the UARTx_THR register. The TxD output is set to 1 if the transmitter is idle (that is,
the transmitter does not contain any data to be transmitted).
The transmitter operates with the BRG clock. The data bits are placed on the TxD output
one time every 16 BRG clock cycles. The transmitter block also implements a parity gen-
erator that attaches the parity bit to the byte, if programmed. For 9-bit data, the host CPU
programs the parity bit generator so that it marks the byte as either address (mark parity)
or data (space parity).
UART Receiver
The receiver block controls the data reception from the RxD signal. The receiver block
implements a receiver shift register, receiver line error condition monitoring logic and
receiver data ready logic. It also implements the parity checker.
The UARTx_RBR is a Read Only register of the module. The CPU reads received data
from this register. The condition of the UARTx_RBR register is monitored by the DR bit
(bit 0 of the UARTx_LSR register). The DR bit is 1 when a data byte is received and trans-
ferred to the UARTx_RBR register from the receiver shift register. The DR bit is reset
only when the CPU reads all of the received data bytes. If the number of bits received is
less than eight, the unused MSb of the data byte Read are 0.
For 9-bit data, the receiver checks incoming bytes for space parity. A line status interrupt
is generated when an address byte is received, because address bytes maintain high parity
bits. The CPU clears the interrupt by determining if the address matches its own, then con-
figures the receiver to either accept the subsequent data bytes if the address matches, or
ignore the data if the address does not match.
The receiver uses the clock from the BRG for receiving the data. This clock must operate
at 16 times the appropriate baud rate. The receiver synchronizes the shift clock on the fall-
ing edge of the RxD input start bit. It then receives a complete byte according to the set
parameters. The receiver also implements logic to detect framing errors, parity errors,
overrun errors, and break signals.
UART Modem Control
The modem control logic provides two outputs and four inputs for handshaking with the
modem. Any change in the modem status inputs, except RI, is detected and an interrupt is
generated. For RI, an interrupt is generated only when the trailing edge of the RI is
detected. The module also provides LOOP mode for self-diagnostics.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
178
UART Interrupts
There are six different sources of interrupts from the UART. The six sources of interrupts
are:
•
•
•
Transmitter (two different interrupts)
Receiver (three different interrupts)
Modem status
UART Transmitter Interrupt
A Transmitter Hold Register Empty interrupt is generated if there is no data available in
the hold register. By the same token, a transmission complete interrupt is generated after
the data in the shift register is sent. Both interrupts are disabled using individual interrupt
enable bits, or cleared by writing data into the UARTx_THR register.
UART Receiver Interrupts
A receiver interrupt is generated by three possible events. The first event, a receiver data
ready interrupt event, indicates that one or more data bytes are received and are ready to
be read. Next, this interrupt is generated if the number of bytes in the receiver FIFO is
greater than or equal to the trigger level. If the FIFO is not enabled, the interrupt is gener-
ated if the receive buffer contains a data byte. This interrupt is cleared by reading the
UARTx_RBR.
The second interrupt source is the receiver time-out. A receiver time-out interrupt is gen-
erated when there are fewer data bytes in the receiver FIFO than the trigger level and there
are no Reads and Writes to or from the receiver FIFO for four consecutive byte times.
When the receiver time-out interrupt is generated, it is cleared only after emptying the
entire receive FIFO.
The first two interrupt sources from the receiver (data ready and time-out) share an inter-
rupt enable bit. The third source of a receiver interrupt is a line status error, indicating an
error in byte reception. This error results from:
•
Incorrect received parity.
For 9-bit data, incorrect parity indicates detection of an address byte.
Note:
•
•
•
Incorrect framing (that is, the stop bit) is not detected by receiver at the end of the byte.
Receiver overrun condition.
A BREAK condition being detected on the receive data input.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
179
An interrupt due to one of the above conditions is cleared when the UARTx_LSR register
is read. In case of FIFO mode, a line status interrupt is generated only after the received
byte with an error reaches the top of the FIFO and is ready to be read.
A line status interrupt is activated (provided this interrupt is enabled) as long as the Read
pointer of the receiver FIFO points to the location of the FIFO that contains a byte with the
error. The interrupt is immediately cleared when the UARTx_LSR register is read. The
ERR bit of the UARTx_LSR register is active as long as an erroneous byte is present in the
receiver FIFO.
UART Modem Status Interrupt
The modem status interrupt is generated if there is any change in state of the modem status
inputs to the UART. This interrupt is cleared when the CPU reads the UARTx_MSR regis-
ter.
UART Recommended Usage
The following standard sequence of events occurs in the UART block of the eZ80F91
device. A description of each follows.
•
•
•
Module Reset
Control Transfers to Configure UART Operation
Data Transfers
Module Reset
Upon reset, all internal registers are set to their default values. All command status regis-
ters are programmed with their default values, and the FIFOs are flushed.
Control Transfers to Configure UART Operation
Based on the requirements of the application, the data transfer baud rate is determined and
the BRG is configured to generate a 16X clock frequency. Interrupts are disabled and the
communication control parameters are programmed in the UARTx_LCTL register. The
FIFO configuration is determined and the receive trigger levels are set in the
UARTx_FCTL register. The status registers, UARTx_LSR and UARTx_MSR, are read to
ensure that none of the interrupt sources are active. The interrupts are enabled (except for
the transmit interrupt) and the application is ready to use the module for transmission/
reception.
Data Transfers
Transmit—To transmit data, the application enables the transmit interrupt. An interrupt is
immediately expected in response. The application reads the UARTx_IIR register and
determines whether the interrupt occurs due to either an empty UARTx_THR register or a
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
180
completed transmission. When the application makes this determination, it writes the
transmit data bytes to the UARTx_THR register. The number of bytes that the application
writes depends on whether or not the FIFO is enabled. If the FIFO is enabled, the applica-
tion writes 16 bytes at a time. If not, the application writes one byte at a time. As a result
of the first Write, the interrupt is deactivated. The CPU then waits for the next interrupt.
When the interrupt is raised by the UART module, the CPU repeats the same process until
it exhausts all of the data for transmission.
To control and check the modem status, the application sets up the modem by writing to
the UARTx_MCTL register and reading the UARTx_MCTL register before starting the
process described above.
In RS485 multidrop mode, the first byte of the message is the station address and the rest
of the message contains the data for that station. You must set the Even Parity Select (EPS
bit 4) and Parity Enable (PEN bit 3) in the UARTx_LCTL before sending the station
address. We recommend that in your UART initialization routine set up the
UARTx_LCTL register for your data transfer format and set the Parity Enable (PEN bit 3)
bit. Each time you want to send a new message you must perform these three steps:
1. Since the UART automatically clears the Even Parity Select (EPS bit 4) bit in the
UARTx_LCTL after a byte is sent, before starting a new message you have to wait for
the transmitter to go idle. The Transmit Empty (TEMT bit 6) of the UARTx_LSR will
be set. If you set the EPS bit of the UARTx_LCTL before the last byte of the previous
message is transmitted, the EPS bit will be cleared and the new station address will be
sent as data instead of being used as an address.
2. Set the Even Parity Select (EPS bit 4) bit in the UARTx_LCTL register being careful
not to alter the other bits in the register sets the address mark. Write station address to
the UARTx_THR. The UART will automatically clear the EPS bit after the station
address byte is transmitted.
3. Send the rest of the message. Write data to the UART Transmit Holding Register
UARTx_THR whenever the Transmit Holding Register Empty (THRE bit 5) in the
UARTx_LSR is set.
In multidrop mode, during receiving start address marks, you will see a receive line inter-
rupt (INSTS bits[3:1]) in the IIR register. Read the LSR and check for receive errors only
and ignore any parity errors. The parity is only used for address marks in this multidrop
mode.
Receive—The receiver is always enabled, and it continually checks for the start bit on the
RxD input signal. When an interrupt is raised by the UART module, the application reads
the UARTx_IIR register and determines the cause for the interrupt. If the cause is a line
status interrupt, the application reads the UARTx_LSR register, reads the data byte and
then discards the byte or take other appropriate action. If the interrupt is caused by a
receive-data-ready condition, the application alternately reads the UARTx_LSR and
UARTx_RBR registers and removes all of the received data bytes. It reads the
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
181
UARTx_LSR register before reading the UARTx_RBR register to determine that there is
no error in the received data.
To control and check modem status, the application sets up the modem by writing to the
UARTx_MCTL register and reading the UARTx_MSR register before starting the process
described above.
Poll Mode Transfers—When interrupts are disabled, all data transfers are referred to as
poll mode transfers. In poll mode transfers, the application must continually poll the
UARTx_LSR register to transmit or receive data without enabling the interrupts. The
same holds true for the UARTx_MSR register. If the interrupts are not enabled, the data in
the UARTx_IIR register cannot be used to determine the cause of interrupt.
Baud Rate Generator
The Baud Rate Generator consists of a 16-bit downcounter, two registers, and associated
decoding logic. The initial value of the Baud Rate Generator is defined by the two BRG
Divisor Latch registers, {UARTx_BRG_H, UARTx_BRG_L}. At the rising edge of each
system clock, the BRG decrements until it reaches the value 0001h. On the next system
clock rising edge, the BRG reloads the initial value from {UARTx_BRG_H,
UARTx_BRG_L) and outputs a pulse to indicate the end-of-count.
Calculate the UART data rate with the following equation:
System Clock Frequency
UART Data Rate (bits/s)
=
16 X UART Baud Rate Generator Divisor
Upon RESET, the 16-bit BRG divisor value resets to the smallest allowable value of
0002h. Therefore, the minimum BRG clock divisor ratio is 2. A software Write to either
the Low- or High-byte registers for the BRG Divisor Latch causes both the Low and High
bytes to load into the BRG counter, and causes the count to restart.
The divisor registers are accessed only if bit 7 of the UART Line Control register
(UARTx_LCTL) is set to 1. After reset, this bit is reset to 0.
Recommended Use of the Baud Rate Generator
The following is the normal sequence of operations that must occur after the eZ80F91 is
powered on to configure the BRG:
1. Assert and deassert RESET.
2. Set UARTx_LCTL[7] to 1 to enable access of the BRG divisor registers.
3. Program the UARTx_BRG_L and UARTx_BRG_H registers.
4. Clear UARTx_LCTL[7] to 0 to disable access of the BRG divisor registers.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
182
BRG Control Registers
UART Baud Rate Generator Register—Low and High Bytes
The registers hold the Low and High bytes of the 16-bit divisor count loaded by the CPU
for UART baud rate generation. The 16-bit clock divisor value is returned by
{UARTx_BRG_H, UARTx_BRG_L}, where x is either 0 or 1 to identify the two available
UART devices. Upon RESET, the 16-bit BRG divisor value resets to 0002h. The initial
16-bit divisor value must be between 0002hand FFFFh, because the values 0000hand
0001hare invalid and proper operation is not guaranteed at these two values. As a result,
the minimum BRG clock divisor ratio is 2.
A Write to either the Low- or High-byte registers for the BRG Divisor Latch causes both
bytes to be loaded into the BRG counter. The count is then restarted.
Bit 7 of the associated UART Line Control register (UARTx_LCTL) must be set to 1 to
access this register. See Table 94 and Table 95 on page 183. For more information, see
UART Line Control Register on page 188.
The UARTx_BRG_L registers share the same address space with the UARTx_RBR and
UARTx_THR registers. The UARTx_BRG_H registers share the same address space with
the UARTx_IER registers. Bit 7 of the associated UART Line Control register
(UARTx_LCTL) must be set to 1 to enable access to the BRG registers.
Note:
Table 94. UART Baud Rate Generator Register—Low Bytes (UART0_BRG_L = 00C0h,
UART1_BRG_L = 00D0h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the Low byte of the 16-bit BRG divider value. The
complete BRG divisor value is returned by {UART_BRG_H,
UART_BRG_L}.
[7:0]
UART_BRG_L
00h–FFh
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
183
Table 95. UART Baud Rate Generator Register—High Bytes (UART0_BRG_H = 00C1h,
UART1_BRG_H = 00D1h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the High byte of the 16-bit BRG divider value. The
complete BRG divisor value is returned by {UART_BRG_H,
UART_BRG_L}.
[7:0]
UART_BRG_H
00h–FFh
UART Registers
After a system reset, all UART registers are set to their default values. Any Writes to unused
registers or register bits are ignored and reads return a value of 0. For compatibility with
future revisions, unused bits within a register must always be written with a value of 0.
Read/Write attributes, reset conditions, and bit descriptions of all of the UART registers are
provided in this section.
UART Transmit Holding Register
If less than eight bits are programmed for transmission, the lower bits of the byte written
to this register are selected for transmission. The Transmit FIFO is mapped at this address.
You can write up to 16 bytes for transmission at one time to this address if the FIFO is
enabled by the application. If the FIFO is disabled, this buffer is only one byte deep.
These registers share the same address space as the UARTx_RBR and UARTx_BRG_L
registers. See Table 96 on page 184.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
184
Table 96. UART Transmit Holding Registers (UART0_THR = 00C0h, UART1_THR = 00D0h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
[7:0]
TxD
00h–FFh Transmit data byte.
UART Receive Buffer Register
The bits in this register reflect the data received. If less than eight bits are programmed
for reception, the lower bits of the byte reflect the bits received, whereas upper unused
bits are 0. The Receive FIFO is mapped at this address. If the FIFO is disabled, this
buffer is only one byte deep.
These registers share the same address space as the UARTx_THR and UARTx_BRG_L
registers. See Table 97.
Table 97. UART Receive Buffer Registers (UART0_RBR = 00C0h, UART1_RBR = 00D0h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
[7:0]
RxD
00h–FFh Receive data byte.
UART Interrupt Enable Register
The UARTx_IER register is used to enable and disable the UART interrupts. The
UARTx_IER registers share the same I/O addresses as the UARTx_BRG_H registers. See
Table 98 on page 185.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
185
Table 98. UART Interrupt Enable Registers (UART0_IER = 00C1h, UART1_IER = 00D1h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:5]
000
0
Reserved.
Transmission complete interrupt is disabled.
4
TCIE
Transmission complete interrupt is generated when both the transmit hold
register and the transmit shift register are empty.
1
0
1
0
Modem interrupt on edge detect of status inputs is disabled.
Modem interrupt on edge detect of status inputs is enabled.
Line status interrupt is disabled.
3
MIIE
2
LSIE
Line status interrupt is enabled for receive data errors: incorrect parity bit
received, framing error, overrun error, or break detection.
1
0
1
0
Transmit interrupt is disabled.
1
TIE
Transmit interrupt is enabled. Interrupt is generated when the transmit
FIFO/buffer is empty indicating no more bytes available for transmission.
Receive interrupt is disabled.
0
RIE
Receive interrupt and receiver time-out interrupt are enabled. Interrupt is
generated if the FIFO/buffer contains data ready to be read or if the
receiver times out.
1
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
186
UART Interrupt Identification Register
The Read Only UARTx_IIR register allows you to check whether the FIFO is enabled and
the status of interrupts. These registers share the same I/O addresses as the UARTx_FCTL
registers. See Table 99 and Table 100.
Table 99. UART Interrupt Identification Registers (UART0_IIR = 00C2h, UART1_IIR = 00D2h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
1
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
0
FIFO is disabled.
FIFO is enabled.
Reserved.
[7]
FSTS
1
[6:4]
000
Interrupt Status Code.
The code indicated in these three bits is valid only if INTBIT is
1. If two internal interrupt sources are active and their
respective enable bits are High, only the higher priority
interrupt is seen by the application. The lower-priority interrupt
code is indicated only after the higher-priority interrupt is
serviced. Table 100 lists the interrupt status codes.
[3:1]
INSTS
000–
110
0
1
There is an active interrupt source within the UART.
There is not an active interrupt source within the UART.
0
INTBIT
Table 100. UART Interrupt Status Codes
INSTS
Value
011
010
110
101
001
000
Priority
Highest
Second
Third
Interrupt Type
Receiver Line Status
Receive Data Ready or Trigger Level
Character Time-out
Fourth
Fifth
Transmission Complete
Transmit Buffer Empty
Modem Status
Lowest
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
187
UART FIFO Control Register
This register is used to monitor trigger levels, clear FIFO pointers, and enable or disable
the FIFO. The UARTx_FCTL registers share the same I/O addresses as the UARTx_IIR
registers. See Table 101.
Table 101. UART FIFO Control Registers (UART0_FCTL = 00C2h, UART1_FCTL = 00D2h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
Receive FIFO trigger level set to 1. Receive data interrupt is
generated when there is 1 byte in the FIFO. Valid only if FIFO
is enabled.
00
01
10
Receive FIFO trigger level set to 4. Receive data interrupt is
generated when there are 4bytes in the FIFO. Valid only if
FIFO is enabled.
[7:6]
TRIG
Receive FIFO trigger level set to 8. Receive data interrupt is
generated when there are 8 bytes in the FIFO. Valid only if
FIFO is enabled.
Receive FIFO trigger level set to 14. Receive data interrupt is
generated when there are 14 bytes in the FIFO. Valid only if
FIFO is enabled.
11
[5:3]
000b
Reserved—must be 000b.
Transmit Disable. This register bit works differently than the
standard 16550 UART. This bit must be set to transmit data.
When it is reset the transmit FIFO logic is reset along with the
associated transmit logic to keep them in sync. This bit is now
persistent–it does not self clear and it must remain at 1 to
transmit data.
0
1
0
1
2
CLRTxF
Transmit Enable.
Receive Disable. This register bit works differently than the
standard 16550 UART. This bit must be set to receive data.
When it is reset the receive FIFO logic is reset along with the
associated receive logic to keep them in sync and avoid the
previous version’s lookup problem. This bit is now persistent–it
does not self clear and it must remain at 1 to receive data.
1
CLRRxF
Receive Enable.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
188
Bit
Position
Value
Description
0
FIFOs are not used.
Receive and transmit FIFOs are used–You must clear the
FIFO logic using bits 1 and 2. First enable the FIFOs by setting
bit 0 to 1 then enable the receiver and transmitter by setting
bits 1 and 2.
0
FIFOEN
1
UART Line Control Register
This register is used to control the communication control parameters. See Table 102 and
Table 103 on page 189.
Table 102. UART Line Control Registers (UART0_LCTL = 00C3h, UART1_LCTL = 00D3h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position Value
Description
0
Access to the UART registers at I/O addresses C0h, C1h, D0h and D1h is enabled.
7
DLAB
Access to the Baud Rate Generator registers at I/O addresses C0h, C1h, D0h and
D1h is enabled.
1
0
Do not send a BREAK signal.
Send Break.
UART sends continuous zeroes on the transmit output from the next bit boundary.
The transmit data in the transmit shift register is ignored. After forcing this bit High,
the TxD output is 0 only after the bit boundary is reached. Just before forcing TxD to
0, the transmit FIFO is cleared. Any new data written to the transmit FIFO during a
break must be written only after the THRE bit of UARTx_LSR register goes High.
This new data is transmitted after the UART recovers from the break. After the break
is removed, the UART recovers from the break for the next BRG edge.
6
SB
1
0
Do not force a parity error.
5
Force a parity error. When this bit and the parity enable bit (pen) are both 1, an
incorrect parity bit is transmitted with the data byte.
FPE
1
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
189
Bit
Position Value
Description
Even Parity Select.
Use odd parity for transmit and receive. The total number of 1 bits in the transmit
data plus parity bit is odd. Used as SPACE bit in Multidrop Mode. See Table 104 on
page 189 for parity select definitions. Note: Receive Parity is set to SPACE in
multidrop mode.
0
4
EPS
Use even parity for transmit and receive. The total number of 1 bits in the transmit
data plus parity bit is even. Used as MARK bit in Multidrop Mode. See Table 104 on
page 189 for parity select definitions.
1
0
Parity bit transmit and receive is disabled.
Parity bit transmit and receive is enabled. For transmit, a parity bit is generated and
transmitted with every data character. For receive, the parity is checked for every
incoming data character. In Multidrop Mode, receive parity is checked for space
parity.
3
PEN
1
[2:0]
CHAR
UART Character Parameter Selection.
See Table 103 on page 189 for a description of the values.
000–111
Table 103. UART Character Parameter Definition
CHAR[2:0] Character Length (Tx/Rx Data Bits) Stop Bits (Tx Stop Bits)
000
001
010
011
100
101
110
111
5
6
7
8
5
6
7
8
1
1
1
1
2
2
2
2
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
190
Table 104. Parity Select Definition for Multidrop Communications
Multidrop Mode
Even Parity Select
Parity Type
0
0
1
1
0
1
odd
even
space
mark
0
1*
Note: *In Multidrop Mode, EPS resets to 0 after the first character is sent.
UART Modem Control Register
This register is used to control and check the modem status. See Table 105.
Table 105. UART Modem Control Registers (UART0_MCTL = 00C4h, UART1_MCTL = 00D4h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
Description
7
0
0
1
0
Reserved.
TxD and RxD signals—Normal Polarity.
Invert Polarity of TxD and RxD signals.
Multidrop Mode disabled.
6
POLARITY
5
MDM
Multidrop Mode enabled. See Table 104 on page 189 for parity select
definitions.
1
0
LOOP BACK mode is not enabled.
LOOP BACK mode is enabled.
The UART operates in internal LOOP BACK mode. The transmit data output
port is disconnected from the internal transmit data output and set to 1. The
receive data input port is disconnected and internal receive data is connected to
internal transmit data. The modem status input ports are disconnected and the
four bits of the modem control register are connected as modem status inputs.
The two modem control output ports (OUT1&2) are set to their inactive state.
4
LOOP
1
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
191
Bit
Position
Value
Description
No function in normal operation.
In LOOP BACK mode, this bit is connected to the DCD bit in the UART Status
Register.
3
OUT2
0–1
No function in normal operation.
In LOOP BACK mode, this bit is connected to the RI bit in the UART Status
Register.
2
OUT1
0–1
0–1
0–1
Request to Send.
1
RTS
In normal operation, the RTS output port is the inverse of this bit. In LOOP
BACK mode, this bit is connected to the CTS bit in the UART Status Register.
Data Terminal Ready.
In normal operation, the DTR output port is the inverse of this bit. In LOOP
BACK mode, this bit is connected to the DSR bit in the UART Status Register.
0
DTR
UART Line Status Register
This register is used to show the status of UART interrupts and registers. See Table 106.
Table 106. UART Line Status Registers (UART0_LSR = 00C5h, UART1_LSR = 00D5h)
Bit
7
6
5
4
3
2
1
0
0
1
1
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
Always 0 when operating in with the FIFO disabled. With the
FIFO enabled, this bit is reset when the UARTx_LSR register is
read and there are no more bytes with error status in the FIFO.
0
7
ERR
Error detected in the FIFO. There is at least 1 parity, framing or
break indication error in the FIFO.
1
0
Transmit holding register/FIFO is not empty or transmit shift
register is not empty or transmitter is not idle.
6
TEMT
Transmit holding register/FIFO and transmit shift register are
empty; and the transmitter is idle. This bit cannot be set to 1
during the BREAK condition. This bit only becomes 1 after the
BREAK command is removed.
1
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
192
Bit
Position
Value
Description
0
Transmit holding register/FIFO is not empty.
5
THRE
Transmit holding register/FIFO. This bit cannot be set to 1
during the BREAK condition. This bit only becomes 1 after the
BREAK command is removed.
1
0
Receiver does not detect a BREAK condition. This bit is reset
to 0 when the UARTx_LSR register is read.
Receiver detects a BREAK condition on the receive input line.
This bit is 1 if the duration of BREAK condition on the receive
data is longer than one character transmission time, the time
depends on the programming of the UARTx_LSR register. In
case of FIFO only one null character is loaded into the receiver
FIFO with the framing error. The framing error is revealed to
4
BI
1
®
the eZ80 whenever that particular data is read from the
receiver FIFO.
No framing error detected for character at the top of the FIFO.
This bit is reset to 0 when the UARTx_LSR register is read.
0
1
3
FE
Framing error detected for the character at the top of the FIFO.
This bit is set to 1 when the stop bit following the data/parity bit
is logic 0.
The received character at the top of the FIFO does not contain
a parity error. In multidrop mode, this indicates that the
received character is a data byte. This bit is reset to 0 when the
UARTx_LSR register is read.
0
2
PE
The received character at the top of the FIFO contains a parity
error. In multidrop mode, this indicates that the received
character is an address byte.
1
0
The received character at the top of the FIFO does not contain
an overrun error. This bit is reset to 0 when the UARTx_LSR
register is read.
Overrun error is detected. If the FIFO is not enabled, this
indicates that the data in the receive buffer register was not
read before the next character was transferred into the receiver
buffer register. If the FIFO is enabled, this indicates the FIFO
was already full when an additional character was received by
the receiver shift register. The character in the receiver shift
register is not put into the receiver FIFO.
1
OE
1
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
193
Bit
Position
Value
Description
This bit is reset to 0 when the UARTx_RBR register is read or
all bytes are read from the receiver FIFO.
0
Data ready. If the FIFO is not enabled, this bit is set to 1 when
a complete incoming character is transferred into the receiver
buffer register from the receiver shift register. If the FIFO is
enabled, this bit is set to 1 when a character is received and
transferred to the receiver FIFO.
0
DR
1
UART Modem Status Register
This register is used to show the status of the UART signals. See Table 107.
Table 107. UART Modem Status Registers (UART0_MSR = 00C6h, UART1_MSR = 00D6h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
Data Carrier Detect
7
DCD
In NORMAL mode, this bit reflects the inverted state of the
DCDx input pin. In LOOP BACK mode, this bit reflects the
value of the UARTx_MCTL[3] = out2.
0–1
0–1
0–1
0–1
Ring Indicator
6
RI
In NORMAL mode, this bit reflects the inverted state of the RIx
input pin. In LOOP BACK mode, this bit reflects the value of the
UARTx_MCTL[2] = out1.
Data Set Ready
5
DSR
In NORMAL mode, this bit reflects the inverted state of the
DSRx input pin. In LOOP BACK mode, this bit reflects the
value of the UARTx_MCTL[0] = DTR.
Clear to Send
4
CTS
In NORMAL mode, this bit reflects the inverted state of the
CTSx input pin. In LOOP BACK mode, this bit reflects the value
of the UARTx_MCTL[1] = RTS.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
194
Bit
Position
Value
Description
Delta Status Change of DCD.
This bit is set to 1 whenever the DCDx pin changes state. This
bit is reset to 0 when the UARTx_MSR register is read.
3
DDCD
0–1
Trailing Edge Change on RI.
2
TERI
This bit is set to 1 whenever a falling edge is detected on the
RIx pin. This bit is reset to 0 when the UARTx_MSR register is
read.
0–1
Delta Status Change of DSR.
This bit is set to 1 whenever the DSRx pin changes state. This
bit is reset to 0 when the UARTx_MSR register is read.
1
DDSR
0–1
0–1
Delta Status Change of CTS.
This bit is set to 1 whenever the CTSx pin changes state.
This bit is reset to 0 when the UARTx_MSRs register is read.
0
DCTS
UART Scratch Pad Register
The UARTx_SPR register is used by the system as a general-purpose Read/Write register.
See Table 108.
Table 108. UART Scratch Pad Registers (UART0_SPR = 00C7h, UART1_SPR = 00D7h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
UART scratch pad register is available for use as a general-
[7:0]
SPR
00h–FFh purpose Read/Write register. In multi-drop 9 bit mode, this
register is used to store the address value.
PS019215-0910
Universal Asynchronous Receiver/Transmitter
eZ80F91 MCU
Product Specification
195
Infrared Encoder/Decoder
The eZ80F91 device contains a UART to an infrared encoder/decoder (endec). The endec
is integrated with the on-chip UART0 to allow easy communication between the CPU and
IrDA Physical Layer Specification Version 1.4-compatible infrared transceivers, as dis-
played in Figure 37. Infrared communication provides secure, reliable, high-speed, low-
cost, point-to-point communication between PCs, PDAs, mobile telephones, printers, and
other infrared-enabled devices.
eZ80F91
System
Clock
Infrared
Transceiver
RxD
TxD
IR_RxD
IR_TxD
RxD
TxD
Infrared
Encoder/Decoder
UART0
Baud Rate
Clock
Interrupt
I/O
Data
I/O
Address
Data
Signal Address
¤
To eZ80 CPU
Figure 37. Infrared System Block Diagram
Functional Description
When the endec is enabled, the transmit data from the on-chip UART is encoded as digital
signals in accordance with the IrDA standard and output to the infrared transceiver. Like-
wise, data received from the infrared transceiver is decoded by the endec and passed to the
UART. Communication is half-duplex, meaning that simultaneous data transmission and
reception is not allowed.
The baud rate is set by the UART Baud Rate Generator (BRG), which supports IrDA stan-
dard baud rates from 9600 bps to 115.2 kbps. Higher baud rates are possible, but do not meet
PS019215-0910
Infrared Encoder/Decoder
eZ80F91 MCU
Product Specification
196
IrDA specifications. The UART must be enabled to use the endec. For more information on
the UART and its BRG, see Universal Asynchronous Receiver/Transmitter on page 175.
Transmit
The data to be transmitted via the IR transceiver is the data sent to UART0. The UART
transmit signal, TxD, and Baud Rate Clock are used by the endec to generate the
modulation signal, IR_TxD, that drives the infrared transceiver. Each UART bit is 16
clocks wide. If the data to be transmitted is a logical 1 (High), the IR_TxD signal remains
Low (0) for the full 16-clock period. If the data to be transmitted is a logical 0, a 3-clock
High (1) pulse is output following a 7-clock Low (0) period. Following the 3-clock High
pulse, a 6-clock Low pulse completes the full 16-clock data period. Data transmission is
displayed in Figure 38. During data transmission, the IR receive function must be disabled
by clearing the IR_RxEN bit in the IR_CTL reg to 0 to prevent transmitter-to-receiver
crosstalk.
16-clock
period
Baud Rate
Clock
UART_TxD
Start Bit = 0
Data Bit 0 = 1
Data Bit 1 = 0
Data Bit 2 = 1
Data Bit 3 = 1
3-clock
pulse
IR_TxD
7-clock
delay
Figure 38. Infrared Data Transmission
Receive
Data received from the IR transceiver via the IR_RxD signal is decoded by the endec and
passed to the UART. The IR_RxEN bit in the IR_CTL register must be set to enable the
receiver decoder. The IrDA serial infrared (SIR) data format uses half duplex communica-
tion. Therefore, the UART must not be allowed to transmit while the receiver decoder is
enabled. The UART Baud Rate Clock is used by the endec to generate the demodulated
signal, RxD, that drives the UART. Each UART bit is 16 clocks wide. If the data to be
received is a logical 1 (High), the IR_RxD signal remains High (1) for the full 16-clock
PS019215-0910
Infrared Encoder/Decoder
eZ80F91 MCU
Product Specification
197
period. If the data to be received is a logical 0, a delayed Low (0) pulse is output on RxD.
Data transmission is displayed in Figure 39.
16-clock
period
Baud Rate
Clock
Start Bit = 0
Data Bit 0 = 1
Data Bit 1 = 0
Data Bit 2 = 1
Data Bit 3 = 1
IR_RxD
UART_RxD
16-clock
period
16-clock
period
16-clock
period
16-clock
period
8-clock
delay
Figure 39. Infrared Data Reception
The IrDA endec is designed to ignore pulses on IR_RxD which do not comply with IrDA
pulse width specifications. Input pulses wider than five baud clocks (that is, 5/16 of a bit
period) are always ignored, as this would be a violation of the maximum pulse width spec-
ified for any standard baud rate up to 115.2 kbps. The check for minimum pulse widths is
optional, since using a slow system clock frequency limits the ability to accurately mea-
sure narrow pulse widths near the IrDA specification minimum of 1.41 us for the
2.4–115.2 kbps rate range.
To enable checks of minimum input pulse width on IR_RxD, a non-zero value must be
programmed into the MIN_PULSE field of IR_CTL (bits [7:4]). This field forms the
most-significant four bits of the 6-bit down-counter used to determine if an input pulse
will be ignored because it is too narrow. The lower two counter bits are hard-coded to load
with 0x3, resulting in a total down-count equal to ((MIN_PULSE* 4) + 3). To be accepted,
input pulses must have a width greater than or equal to the down-count value times the
system clock period.
The following equation is used to determine an appropriate setting for MIN_PULSE:
MIN_PULSE = INT( ((Fsys*Wmin) - 3) / 4 )
Where,
F
sys is the frequency of the system clock, and,
min is the minimum width of recognized input pulses.
W
PS019215-0910
Infrared Encoder/Decoder
eZ80F91 MCU
Product Specification
198
If this equation results in a value less than one, MIN_PULSE must be set to 0x0h which
enables edge detection and ensures that valid pulses wider than Wmin are accepted. The
field's maximum setting of 0xFh supports a Wmin of 1.25 us when Fsys is 50 MHz.
Jitter
Due to the inherent sampling of the received IR_RxD signal by the Bit Rate Clock, some
jitter is expected on the first bit in any sequence of data. However, all subsequent bits in
the received data stream are a fixed 16 clock periods wide.
Infrared Encoder/Decoder Signal Pins
The endec signal pins, IR_TxD and IR_RxD, are multiplexed with General-Purpose
Input/Output (GPIO) pins. These GPIO pins must be configured for alternate function
operation for the endec to operate.
The remaining six UART0 pins, CTS0, DCD0, DSR0, DTR0, RTS, and RI0, are not
required for use with the endec. The UART0 modem status interrupt must be disabled to
prevent unwanted interrupts from these pins. The GPIO pins corresponding to these six
unused UART0 pins are used for inputs, outputs, or interrupt sources. Recommended
GPIO Port D control register settings are listed in Table 109. See General-Purpose Input/
Output on page 49 for additional information on setting the GPIO Port modes.
Table 109. GPIO Mode Selection when using the IrDA Encoder/Decoder
GPIO Port D Allowable GPIO
Bits
Port Mode
Allowable Port Mode Functions
Alternate Function
PD0
7
7
PD1
Alternate Function
PD2–PD7
Any other than GPIO Mode 7
(1, 2, 3, 4, 5, 6, 8, or 9)
Output, Input, Open-Drain, Open-Source, Level-
sensitive Interrupt Input, or Edge-Triggered Interrupt
Input
Loopback Testing
Both internal and external loopback testing is accomplished with the endec on the eZ80F91
device. Internal loopback testing is enabled by setting the LOOP_BACK bit to 1. During
internal loopback, the IR_TxD output signal is inverted and connected on-chip to the
IR_RxD input. External loopback testing of the off-chip IrDA transceiver is accomplished
by transmitting data from the UART while the receiver is enabled (IR_RxEN set to 1).
PS019215-0910
Infrared Encoder/Decoder
eZ80F91 MCU
Product Specification
199
Infrared Encoder/Decoder Register
After a RESET, the Infrared Encoder/Decoder Register is set to its default value. Any
Writes to unused register bits are ignored and reads return a value of 0. The IR_CTL regis-
ter is listed in Table 110.
Table 110. Infrared Encoder/Decoder Control Registers (IR_CTL = 00BFh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R
R/W
R/W
R/W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
[7:4]
MIN_PULSE
0000
Minimum receive pulse width control. When this field is equal to
0x0, the IrDA decoder uses edge detection to accept arbitrarily
narrow (that is, short) input pulses.
1h-Fh
When not equal to 0x0, this field forms the most-significant four
bits of the 6-bit down-counter used to determine if an input
pulse will be ignored because it is too narrow. The lower two
counter bits are hard-coded to load with 0x3, resulting in a total
down-count equal to ((IR_CTL[4:0]MIN_PULSE * 4) + 3). To be
accepted, input pulses must have a width greater than or equal
to the down-count value times the system clock period.
3
0
0
1
Reserved.
2
Internal LOOP BACK mode is disabled.
LOOP_BACK
Internal LOOP BACK mode is enabled.
IR_TxD output is inverted and connected to IR_RxD input for
internal loop back testing.
1
0
1
0
1
IR_RxD data is ignored.
IR_RxD data is passed to UART0 RxD.
Endec is disabled.
IR_RxEN
0
IR_EN
Endec is enabled.
PS019215-0910
Infrared Encoder/Decoder
eZ80F91 MCU
Product Specification
200
PS019215-0910
Infrared Encoder/Decoder
eZ80F91 MCU
Product Specification
201
Serial Peripheral Interface
The Serial Peripheral Interface (SPI) is a synchronous interface allowing several SPI-type
devices to be interconnected. The SPI is a full-duplex, synchronous, character-oriented
communication channel that employs a four-wire interface. The SPI block consists of a
transmitter, receiver, baud rate generator, and control unit. During an SPI transfer, data is
sent and received simultaneously by both the master and the slave SPI devices.
In a serial peripheral interface, separate signals are required for data and clock. The SPI is
configured either as a master or as a slave. The connection of two SPI devices (one master
and one slave) and the direction of data transfer is displayed in Figure 40 and Figure 41.
MASTER
SS
MOSI
SCK
MISO
Bit 0
Bit 7
DATAOUT
CLKOUT
DATAIN
8-Bit Shift Register
Baud Rate
Generator
Figure 40. SPI Master Device
SLAVE
SS
ENABLE
MOSI
SCK
Bit 0
Bit 7
MISO
DATAOUT
DATAIN
CLKIN
8-Bit Shift Register
Figure 41. SPI Slave Device
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
202
SPI Signals
The four basic SPI signals are:
•
•
•
•
MISO (Master In, Slave Out)
MOSI (Master Out, Slave In)
SCK (SPI Serial Clock)
SS (Slave Select)
These SPI signals are discussed in the following paragraphs. Each signal is described in
both MASTER and SLAVE modes.
Master In, Slave Out
The Master In, Slave Out (MISO) pin is configured as an input in a master device and as
an output in a slave device. It is one of the two lines that transfer serial data, with the most-
significant bit (msb) sent first. The MISO pin of a slave device is placed in a high-imped-
ance state if the slave is not selected. When the SPI is not enabled, this signal is in a high-
impedance state.
Master Out, Slave In
The Master Out, Slave In (MOSI) pin is configured as an output in a master device and as
an input in a slave device. It is one of the two lines that transfer serial data, with the msb
sent first. When the SPI is not enabled, this signal is in a high-impedance state.
Slave Select
The active Low Slave Select (SS) input signal is used to select the SPI as a slave device. It
must be Low prior to all data communication and must stay Low for the duration of the
data transfer.
The SS input signal must be High for the SPI to operate as a master device. If the SS signal
goes Low in Master mode, a Mode Fault error flag (MODF) is set in the SPI_SR register.
For more information, see SPI Status Register on page 209.
When the clock phase (CPHA) is set to 0, the shift clock is the logical OR of SS with
SCK. In this clock phase mode, SS must go High between successive characters in an
SPI message. When CPHA is set to 1, SS remains Low for several SPI characters. In
cases where there is only one SPI slave, its SS line could be tied Low as long as CPHA
is set to 1. For more information on CPHA, see SPI Control Register on page 208.
Serial Clock
The Serial Clock (SCK) is used to synchronize data movement both in and out of the
device via its MOSI and MISO pins. The master and slave are each capable of exchanging
a byte of data during a sequence of eight clock cycles. Because SCK is generated by the
master, the SCK pin becomes an input on a slave device. The SPI contains an internal
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
203
divide-by-two clock divider. In MASTER mode, the SPI serial clock is one-half the fre-
quency of the clock signal created by the SPI’s Baud Rate Generator.
As displayed in Figure 42 and Table 111, four possible timing relations are chosen by
using the clock polarity (CPOL) and clock phase CPHA control bits in the SPI Control
register. See SPI Control Register on page 208. Both the master and slave must operate
with the identical timing, CPOL, and CPHA. The master device always places data on the
MOSI line a half-cycle before the clock edge (SCK signal), for the slave device to latch
the data.
Number of Cycles on the SCK Signal
1
2
3
4
5
6
7
8
SCK (CPOL bit = 0)
SCK (CPOL bit = 1)
Sample Input
(CPHA bit = 0) Data Out
MSB
6
5
4
3
2
1
LSB
Sample Input
(CPHA bit = 1) Data Out
MSB
6
5
4
3
2
1
LSB
ENABLE (To Slave)
Figure 42. SPI Timing
Table 111. SPI Clock Phase and Clock Polarity Operation
SS High
SCK
Transmit
Edge
SCK
Receive
Edge
SCK
Idle
State
Between
Characters?
CPHA
CPOL
0
0
1
1
0
1
0
1
Falling
Rising
Rising
Falling
Rising
Falling
Falling
Rising
Low
High
Low
High
Yes
Yes
No
No
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
204
SPI Functional Description
When a master transmits to a slave device via the MOSI signal, the slave device responds
by sending data to the master via the master's MISO signal. The result is a full-duplex
transmission, with both data out and data in synchronized with the same clock signal. The
byte transmitted is replaced by the byte received, eliminating the need for separate trans-
mit-empty and receive-full status bits. A single status bit, SPIF, is used to signify that the
I/O operation is complete. See SPI Status Register on page 209.
The SPI is double-buffered during reads, but not during Writes. If a Write is performed
during data transfer, the transfer occurs uninterrupted, and the Write is unsuccessful. This
condition causes the write collision (WCOL) status bit in the SPI_SR register to be set.
After a data byte is shifted, the SPI flag of the SPI_SR register is set to 1.
In SPI MASTER mode, the SCK pin functions as an output. It idles High or Low depend-
ing on the CPOL bit in the SPI_CTL register until data is written to the shift register. Data
transfer is initiated by writing to the transmit shift register, SPI_TSR. Eight clocks are then
generated to shift the eight bits of transmit data out via the MOSI pin while shifting in
eight bits of data via the MISO pin. After transfer, the SCK signal becomes idle.
In SPI SLAVE mode, the start logic receives a logic Low from the SS pin and a clock
input at the SCK pin; as a result, the slave is synchronized to the master. Data from the
master is received serially from the slave MOSI signal and is loaded into the 8-bit shift
register. After the 8-bit shift register is loaded, its data is parallel-transferred to the Read
buffer. During a Write cycle, data is written into the shift register. Next, the slave waits for
the SPI master to initiate a data transfer, supply a clock signal, and shift the data out on the
slave's MISO signal.
If the CPHA bit in the SPI_CTL register is 0, a transfer begins when the SS pin signal goes
Low. The transfer ends when SS goes High after eight clock cycles on SCK. When the
CPHA bit is set to 1, a transfer begins the first time SCK becomes active while SS is Low.
The transfer ends when the SPI flag is set to 1.
SPI Flags
Mode Fault
The Mode Fault flag (MODF) indicates that there is a multimaster conflict in the system
control. The MODF bit is normally cleared to 0 and is only set to 1 when the master
device’s SS pin is pulled Low. When a mode fault is detected, the following sequence
occurs:
1. The MODF flag (SPI_SR[4]) is set to 1.
2. The SPI device is disabled by clearing the SPI_EN bit (SPI_CTL[5]) to 0.
3. The MASTER_EN bit (SPI_CTL[4]) is cleared to 0, forcing the device into SLAVE
mode.
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
205
4. If the SPI interrupt is enabled by setting IRQ_EN (SPI_CTL[7]) High, an SPI inter-
rupt is generated.
Clearing the Mode Fault flag is performed by reading the SPI Status register. The other
SPI control bits (SPI_EN and MASTER_EN) must be restored to their original states by
user software after the Mode Fault Flag is cleared to 0.
Write Collision
The write collision flag, WCOL (SPI_SR[5]), is set to 1 when an attempt is made to write
to the SPI Transmit Shift register (SPI_TSR) while data transfer occurs. Clearing the
WCOL bit is performed by reading SPI_SR with the WCOL bit set to 1.
SPI Baud Rate Generator
The SPI’s Baud Rate Generator (BRG) creates a lower frequency clock from the high-fre-
quency system clock. The BRG output is used as the clock source by the SPI.
Baud Rate Generator Functional Description
The SPI’s BRG consists of a 16-bit downcounter, two 8-bit registers, and associated
decoding logic. The BRG’s initial value is defined by the two BRG Divisor Latch registers
{SPI_BRG_H, SPI_BRG_L}. At the rising edge of each system clock, the BRG decre-
ments until it reaches the value 0001h. On the next system clock rising edge, the BRG
reloads the initial value from {SPI_BRG_H, SPI_BRG_L) and outputs a pulse to indicate
the end of the count.
The SPI Data Rate is calculated using the following equation:
System Clock Frequency
SPI Data Rate (bits/s)
=
2 X SPI Baud Rate Generator Divisor
Upon RESET, the 16-bit BRG divisor value resets to 0002h. When the SPI is operating as
a Master, the BRG divisor value must be set to a value of 0003hor greater. When the SPI
is operating as a Slave, the BRG divisor value must be set to a value of 0004hor greater.
A software Write to either the Low- or High-byte registers for the BRG Divisor Latch
causes both the Low and High bytes to load into the BRG counter, and causes the count to
restart.
Data Transfer Procedure with SPI Configured as a Master
The following list describes the procedure for transferring data from a master SPI device
to a slave SPI device.
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
206
1. Load the SPI BRG Registers, SPI_BRG_H and SPI_BRG_L. The external device
must deassert the SS pin if currently asserted.
2. Load the SPI Control Register, SPI_CTL.
3. Assert the ENABLE pin of the slave device using a GPIO pin.
4. Load the SPI Transmit Shift Register, SPI_TSR.
5. When the SPI data transfer is complete, deassert the ENABLE pin of the slave device.
Data Transfer Procedure with SPI Configured as a Slave
The following list describes the procedure for transferring data from a slave SPI device to
a master SPI device.
1. Load the SPI BRG Registers, SPI_BRG_H and SPI_BRG_L.
2. Load the SPI Transmit Shift Register, SPI_TSR. This load cannot occur while the SPI
slave is currently receiving data.
3. Wait for the external SPI Master device to initiate the data transfer by asserting SS.
SPI Registers
There are six registers in the Serial Peripheral Interface that provide control, status, and
data storage functions. The SPI registers are described in the following paragraphs.
SPI Baud Rate Generator Registers—Low Byte and High Byte
These registers hold the Low and High bytes of the 16-bit divisor count loaded by the CPU
for baud rate generation. The 16-bit clock divisor value is returned by {SPI_BRG_H,
SPI_BRG_L}. Upon RESET, the 16-bit BRG divisor value resets to 0002h. When config-
ured as a Master, the 16-bit divisor value must be between 0003hand FFFFh, inclusive.
When configured as a Slave, the 16-bit divisor value must be between 0004hand FFFFh,
inclusive.
A Write to either the Low- or High-byte registers for the BRG Divisor Latch causes both
bytes to be loaded into the BRG counter and a restart of the count. See Table 112 on page
207 and Table 113 on page 207.
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
207
Table 112. SPI Baud Rate Generator Register—Low Byte (SPI_BRG_L = 00B8h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the Low byte of the 16-bit BRG divider
value. The complete BRG divisor value is returned by
{SPI_BRG_H, SPI_BRG_L}.
[7:0]
SPI_BRG_L
00h–
FFh
Table 113. SPI Baud Rate Generator Register—High Byte (SPI_BRG_H = 00B9h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
These bits represent the High byte of the 16-bit BRG divider
[7:0]
SPI_BRG_H
00h–FFh value. The complete BRG divisor value is returned by
{SPI_BRG_H, SPI_BRG_L}.
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
208
SPI Control Register
This register is used to control and setup the serial peripheral interface. The SPI must be
disabled prior to making any changes to CPHA or CPOL. See Table 114.
Table 114. SPI Control Register (SPI_CTL = 00BAh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
1
0
0
Reset
R/W
R
R/W
R/W
R/W
R/W
R
R
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value Description
0
1
0
0
1
0
1
0
1
0
1
00
SPI system interrupt is disabled.
SPI system interrupt is enabled.
Reserved.
7
IRQ_EN
6
SPI is disabled.
5
SPI_EN
SPI is enabled.
When enabled, the SPI operates as a slave.
When enabled, the SPI operates as a master.
Master SCK pin idles in a Low (0) state.
Master SCK pin idles in a High (1) state.
4
MASTER_EN
3
CPOL
SS must go High after transfer of every byte of data.
SS remains Low to transfer any number of data bytes.
Reserved.
2
CPHA
[1:0]
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
209
SPI Status Register
The SPI Status Read Only register returns the status of data transmitted using the serial
peripheral interface. Reading the SPI_SR register clears Bits 7, 6, and 4 to a logical 0.
See Table 115.
Table 115. SPI Status Register (SPI_SR = 00BBh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value Description
0
SPI data transfer is not finished.
7
SPIF
SPI data transfer is finished. If enabled, an interrupt is
generated. This bit flag is cleared to 0 by a Read of the
SPI_SR register.
1
0
1
An SPI write collision is not detected.
6
WCOL
An SPI write collision is detected. This bit Flag is cleared to 0
by a Read of the SPI_SR registers.
5
0
0
Reserved.
A mode fault (multimaster conflict) is not detected.
4
MODF
A mode fault (multimaster conflict) is detected. This bit Flag is
cleared to 0 by a Read of the SPI_SR register.
1
[3:0]
0000 Reserved.
SPI Transmit Shift Register
The SPI Transmit Shift register (SPI_TSR) is used by the SPI master to transmit data over
SPI serial bus to the slave device. A Write to the SPI_TSR register places data directly into
the shift register for transmission. A Write to this register within an SPI device configured
as a master initiates transmission of the byte of the data loaded into the register. At the
completion of transmitting a byte of data, the SPI Flag (SPI_SR[7]) is set to 1 in both the
master and slave devices.
The SPI Transmit Shift Write Only register shares the same address space as the SPI
Receive Buffer Read Only register. See Table 116 on page 210.
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
210
Table 116. SPI Transmit Shift Register (SPI_TSR = 00BCh)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
[7:0]
TX_DATA
00h–FFh SPI transmit data.
SPI Receive Buffer Register
The SPI Receive Buffer register (SPI_RBR) is used by the SPI slave to receive data from
the serial bus. The SPIF bit must be cleared prior to a second transfer of data from the shift
register; otherwise, an overrun condition exists. In the event of an overrun, the byte that
causes the overrun is lost.
The SPI Receive Buffer Read Only register shares the same address space as the SPI
Transmit Shift Write Only register. See Table 117.
Table 117. SPI Receive Buffer Register (SPI_RBR = 00BCh)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
RX_DATA
00h–FFh SPI received data.
PS019215-0910
Serial Peripheral Interface
eZ80F91 MCU
Product Specification
211
2
I C Serial I/O Interface
I2C General Characteristics
The Inter-Integrated Circuit (I2C) serial I/O bus is a two-wire communication interface
that operates in four modes:
•
•
•
•
MASTER TRANSMIT
MASTER RECEIVE
SLAVE TRANSMIT
SLAVE RECEIVE
The I2C interface consists of a Serial Clock (SCL) and Serial Data (SDA). Both SCL and
SDA are bidirectional lines connected to a positive supply voltage via an external pull-up
resistor. When the bus is free, both lines are High. The output stages of devices connected
to the bus must be configured as open-drain outputs. Data on the I2C bus are transferred at
a rate of up to 100 kbps in STANDARD mode, or up to 400 kbps in FAST mode. One
clock pulse is generated for each data bit transferred.
Clocking Overview
If another device on the I2C bus drives the clock line when the I2C is in MASTER mode,
the I2C synchronizes its clock to the I2C bus clock. The High period of the clock is
determined by the device that generates the shortest High clock period. The Low period of
the clock is determined by the device that generates the longest Low clock period.
The Low period of the clock is stretched by a slave to slow down the bus master. The Low
period is also stretched for handshaking purposes. This result is accomplished after each
bit transfer or each byte transfer. The I2C stretches the clock after each byte transfer until
the IFLG bit in the I2C_CTL register is cleared to 0.
Bus Arbitration Overview
In MASTER mode, the I2C checks that each transmitted logic 1 appears on the I2C bus as
a logic 1. If another device on the bus overrules and pulls the SDA signal Low, arbitration
is lost. If arbitration is lost during the transmission of a data byte or a Not Acknowledge
(NACK) bit, the I2C returns to an idle state. If arbitration is lost during the transmission of
an address, the I2C switches to SLAVE mode so that it recognizes its own slave address or
the general call address.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
212
Data Validity
The data on the SDA line must be stable during the High period of the clock. The High or
Low state of the data line changes only when the clock signal on the SCL line is Low, as
displayed in Figure 43.
SDA Signal
SCL Signal
Data Line
Stable
Change of
Data Allowed
Data Valid
Figure 43. I2C Clock and Data Relationship
START and STOP Conditions
Within the I2C bus protocol, unique situations arise which are defined as START and
STOP conditions. Figure 44 displays a High-to-Low transition on the SDA line while SCL
is High, indicating a START condition. A Low-to-High transition on the SDA line while
SCL is High defines a STOP condition.
START and STOP conditions are always generated by the master. The bus is considered to
be busy after a START condition. The bus is considered to be free for a defined time after
a STOP condition.
SDA Signal
SCL Signal
S
P
START Condition
STOP Condition
Figure 44. START and STOP Conditions In I2C Protocol
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
213
Transferring Data
Byte Format
Every character transferred on the SDA line must be a single 8-bit byte. The number of
bytes that is transmitted per transfer is unrestricted. Each byte must be followed by an
Acknowledge (ACK). Data is transferred with the most-significant bit (msb) first.
Figure 45 displays a receiver that holds the SCL line Low to force the transmitter into a
Wait state. Data transfer then continues when the receiver is ready for another byte of data
and releases SCL.
SDA Signal
SCL Signal
MSB
1
Acknowledge from
Receiver
Acknowledge from
Receiver
2
8
9
1
9
S
P
ACK
START Condition
STOP Condition
Clock Line Held Low By Receiver
2
Figure 45. I C Frame Structure
Acknowledge
Data transfer with an ACK function is obligatory. The ACK-related clock pulse is gen-
erated by the master. The transmitter releases the SDA line (High) during the ACK
clock pulse. The receiver must pull down the SDA line during the ACK clock pulse so
that it remains stable (Low) during the High period of this clock pulse. See Figure 46
on page 214.
A receiver that is addressed is obliged to generate an ACK after each byte is received.
When a slave receiver does not acknowledge the slave address (for example, unable to
receive because it is performing some real-time function), the data line must be left High
by the slave. The master then generates a STOP condition to abort the transfer.
If a slave receiver acknowledges the slave address, but cannot receive any more data
bytes, the master must abort the transfer. The abort is indicated by the slave generating the
Not Acknowledge (NACK) on the first byte to follow. The slave leaves the data line High
and the master generates the STOP condition.
If a master receiver is involved in a transfer, it must signal the end of the data stream to the
slave transmitter by not generating an ACK on the final byte that is clocked out of the
slave. The slave transmitter must release the data line to allow the master to generate a
STOP or a repeated START condition.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
214
Data Output
by Transmitter
MSB
Data Output
by Receiver
1
S
SCL Signal
from Master
1
2
8
9
START Condition
Clock Pulse for Acknowledge
Figure 46. I2C Acknowledge
Clock Synchronization
All masters generate their own clocks on the SCL line to transfer messages on the I2C bus.
Data is only valid during the High period of each clock.
Clock synchronization is performed using the wired AND connection of the I2C interfaces
to the SCL line, meaning that a High-to-Low transition on the SCL line causes the relevant
devices to start counting from their Low period. When a device clock goes Low, it holds
the SCL line in that state until the clock High state is reached. See Figure 47 on page 215.
The Low-to-High transition of this clock, however, cannot change the state of the SCL
line if another clock is still within its Low period. The SCL line is held Low by the device
with the longest Low period. Devices with shorter Low periods enter a High wait state
during this time.
When all devices count off the Low period, the clock line is released and goes High. There
is no difference between the device clocks and the state of the SCL line; all of the devices
start counting the High periods. The first device to complete its High period again pulls
the SCL line Low. In this way, a synchronized SCL clock is generated with its Low period
determined by the device with the longest clock Low period, and its High period
determined by the device with the shortest clock High period.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
215
Wait
State
Start Counting
High Period
CLK1 Signal
Counter
Reset
CLK2 Signal
SCL Signal
Figure 47. Clock Synchronization In I2C Protocol
Arbitration
Any master initiates a transfer if the bus is free. As a result, multiple masters each gener-
ates a START condition if the bus is free within a minimum period. If multiple masters
generate a START condition, a START is defined for the bus. However, arbitration defines
which MASTER controls the bus. Arbitration takes place on the SDA line. As mentioned,
START conditions are initiated only while the SCL line is held High. If during this period,
a master (M1) initiates a High-to-Low transition—that is, a START condition—while a
second master (M2) transmits a Low signal on the line, then the first master, M1, cannot
take control of the bus. As a result, the data output stage for M1 is disabled.
Arbitration continues for many bits. Its first stage is comparison of the address bits. If the
masters are each trying to address the same device, arbitration continues with a compari-
son of the data. Because address and data information on the I2C bus is used for arbitra-
tion, no information is lost during this process. A master that loses the arbitration
generates clock pulses until the end of the byte in which it loses the arbitration.
If a master also incorporates a slave function and it loses arbitration during the addressing
stage, it is possible that the winning master is trying to address it. The losing master must
switch over immediately to its slave receiver mode. Figure 47 displays the arbitration pro-
cedure for two masters. Of course, more masters can be involved, depending on how many
masters are connected to the bus. The moment there is a difference between the internal
data level of the master generating DATA 1 and the actual level on the SDA line, its data
output is switched off, which means that a High output level is then connected to the bus.
As a result, the data transfer initiated by the winning master is not affected. Because con-
trol of the I2C bus is decided solely on the address and data sent by competing masters,
there is no central master, nor any order of priority on the bus.
Special attention must be paid if, during a serial transfer, the arbitration procedure is still
in progress at the moment when a repeated START condition or a STOP condition is trans-
mitted to the I2C bus. If it is possible for such a situation to occur, the masters involved
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
216
must send this repeated START condition or STOP condition at the same position in the
format frame. In other words, arbitration is not allowed between:
•
•
•
A repeated START condition and a data bit.
A STOP condition and a data bit.
A repeated START condition and a STOP condition.
Clock Synchronization for Handshake
The clock-synchronizing mechanism functions as a handshake, enabling receivers to cope
with fast data transfers, on either a byte or a bit level. The byte level allows a device to
receive a byte of data at a fast rate, but allows the device more time to store the received
byte or to prepare another byte for transmission. Slaves hold the SCL line Low after recep-
tion and acknowledge the byte, forcing the master into a Wait state until the slave is ready
for the next byte transfer in a handshake procedure.
Operating Modes
Master Transmit
In MASTER TRANSMIT mode, the I2C transmits a number of bytes to a slave receiver.
Enter MASTER TRANSMIT mode by setting the STA bit in the I2C_CTL register to 1.
The I2C then tests the I2C bus and transmits a START condition when the bus is free.
When a START condition is transmitted, the IFLG bit is 1 and the status code in the
I2C_SR register is 08h. Before this interrupt is serviced, the I2C_DR register must be
loaded with either a 7-bit slave address or the first part of a 10-bit slave address, with the
lsb cleared to 0 to specify TRANSMIT mode. The IFLG bit must now be cleared to 0 to
prompt the transfer to continue.
After the 7-bit slave address (or the first part of a 10-bit address) plus the Write bit are
transmitted, the IFLG is set again. A number of status codes are possible in the I2C_SR
register. See Table 118 on page 217.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
217
Table 118. I2C Master Transmit Status Codes
2
2
Code
I C State
Microcontroller Response
Next I C Action
18h
Addr+W transmitted
ACK received
For a 7-bit address: write byte to DATA,
clear IFLG
Transmit data byte,
receive ACK
1
Or set STA, clear IFLG
Transmit repeated
START
Or set STP, clear IFLG
Transmit STOP
Or set STA & STP, clear IFLG
Transmit STOP then
START
For a 10-bit address: write extended
address byte to data, clear IFLG
Transmit extended
address byte
20h
38h
Addr+W transmitted,
ACK not received
Same as code 18h
Same as code 18h
Arbitration lost
Clear IFLG
Return to idle
Or set STA, clear IFLG
Transmit START when
bus is free
2
68h
Arbitration lost,
+W received,
ACK transmitted
Clear IFLG, AAK = 0
Receive data byte,
transmit NACK
Or clear IFLG, AAK = 1
Same as code 68h
Receive data byte,
transmit ACK
78h
B0h
Arbitration lost,
General call address
received, ACK
transmitted
Same as code 68h
Arbitration lost,
SLA+R received,
ACK transmitted
Write byte to DATA, clear IFLG, clear AAK Transmit last byte,
= 0 receive ACK
3
Or write byte to DATA, clear IFLG, set AAK Transmit data byte,
= 1 receive ACK
Notes
1. W is defined as the Write bit; that is, the lsb is cleared to 0.
2
2. AAK is an I C control bit that identifies which ACK signal to transmit.
3. R is defined as the Read bit; that is, the lsb is set to 1.
If 10-bit addressing is used, the status code is 18hor 20hafter the first part of a 10-bit
address, plus the Write bit, are successfully transmitted.
After this interrupt is serviced and the second part of the 10-bit address is transmitted, the
I2C_SR register contains one of the codes listed in Table 119.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
218
Table 119. I2C 10-Bit Master Transmit Status Codes
2
2
Code
I C State
Microcontroller Response
Clear IFLG
Next I C Action
38h
Arbitration lost
Return to idle
Or set STA, clear IFLG
Transmit START when bus free
Receive data byte, transmit NACK
Receive data byte, transmit ACK
2
68h
B0h
Arbitration lost,
SLA+W received,
ACK transmitted
Clear IFLG, clear AAK = 0
Or clear IFLG, set AAK = 1
1
Arbitration lost,
Write byte to DATA,
Transmit last byte,
SLA+R received,
ACK transmitted
clear IFLG, clear AAK = 0
receive ACK
3
Or write byte to DATA,
Transmit data byte,
clear IFLG, set AAK = 1
receive ACK
D0h
Second address byte Write byte to data,
Transmit data byte,
+ W transmitted,
clear IFLG
receive ACK
ACK received
Or set STA, clear IFLG
Or set STP, clear IFLG
Transmit repeated START
Transmit STOP
Or set STA & STP,
clear IFLG
Transmit STOP then
START
D8h
Second address byte Same as code D0h
+ W transmitted,
Same as code D0h
ACK not received
Notes
1. W is defined as the Write bit; that is, the lsb is cleared to 0.
2
2. AAK is an I C control bit that identifies which ACK signal to transmit.
3. R is defined as the Read bit; that is, the lsb is set to 1.
If a repeated START condition is transmitted, the status code is 10hinstead of 08h. After
each data byte is transmitted, the IFLG is set to 1 and one of the status codes listed in
Table 120 is loaded into the I2C_SR register.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
219
2
Table 120. I C Master Transmit Status Codes For Data Bytes
2
2
Code
I C State
Microcontroller Response
Next I C Action
28h
Data byte transmitted, Write byte to data,
Transmit data byte,
ACK received
clear IFLG
receive ACK
Or set STA, clear IFLG
Or set STP, clear IFLG
Transmit repeated START
Transmit STOP
Or set STA & STP,
Transmit START then STOP
clear IFLG
30h
38h
Data byte transmitted, Same as code 28h
ACK not received
Same as code 28h
Arbitration lost
Clear IFLG
Return to idle
Or set STA, clear IFLG
Transmit START when bus free
When all bytes are transmitted, the microcontroller must write a 1 to the STP bit in the
I2C_CTL register. The I2C then transmits a STOP condition, clears the STP bit and returns
to an idle state.
Master Receive
In MASTER RECEIVE mode, the I2C receives a number of bytes from a slave
transmitter.
After the START condition is transmitted, the IFLG bit is 1 and the status code 08his
loaded into the I2C_SR register. The I2C_DR register must be loaded with the slave
address (or the first part of a 10-bit slave address), with the lsb set to 1 to signify a Read.
The IFLG bit must be cleared to 0 as a prompt for the transfer to continue.
When the 7-bit slave address (or the first part of a 10-bit address) and the Read bit are
transmitted, the IFLG bit is set and one of the status codes listed in Table 121 on page 220
is loaded into the I2C_SR register.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
220
Table 121. I2C Master Receive Status Codes
2
2
Code I C State
Microcontroller Response
Next I C Action
40h
Addr + R transmitted, For a 7-bit address,
Receive data byte,
transmit NACK
1
ACK received
clear IFLG, AAK = 0
Or clear IFLG, AAK = 1
Receive data byte,
transmit ACK
For a 10-bit address
Transmit extended address byte
Write extended address
byte to data, clear IFLG
48h
Addr + R transmitted, For a 7-bit address:
Transmit repeated START
2
ACK not received
Set STA, clear IFLG
Or set STP, clear IFLG
Transmit STOP
Or set STA & STP,
Transmit STOP then START
clear IFLG
For a 10-bit address:
Write extended address byte to data,
clear IFLG
Transmit extended address byte
38h
68h
Arbitration lost
Clear IFLG
Return to idle
Or set STA, clear IFLG
Clear IFLG, clear AAK = 0
Transmit START when bus is free
Arbitration lost,
Receive data byte,
SLA+W received,
ACK transmitted
transmit NACK
3
Or clear IFLG, set AAK = 1
Same as code 68h
Receive data byte,
transmit ACK
78h
B0h
Arbitration lost,
General call addr
received, ACK
transmitted
Same as code 68h
Arbitration lost,
SLA+R received,
ACK transmitted
Write byte to DATA,
clear IFLG, clear AAK = 0
Transmit last byte,
receive ACK
Or write byte to DATA,
Transmit data byte,
clear IFLG, set AAK = 1
receive ACK
Notes
2
1. AAK is an I C control bit that identifies which ACK signal to transmit.
2. R is defined as the Read bit; that is, the lsb is set to 1.
3. W is defined as the Write bit; that is, the lsb is cleared to 0.
If 10-bit addressing is being used, the slave is first addressed using the full 10-bit address,
plus the Write bit. The master then issues a restart followed by the first part of the 10-bit
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
221
address again, this time with the Read bit. The status code then becomes 40hor 48h. It is
the responsibility of the slave to remember that it had been selected prior to the restart.
If a repeated START condition is received, the status code is 10hinstead of 08h.
After each data byte is received, the IFLG is set to 1 and one of the status codes listed in
Table 122 is loaded into the I2C_SR register.
Table 122. I2C Master Receive Status Codes For Data Bytes
2
2
Code
I C State
Microcontroller Response
Next I C Action
50h
Data byte received,
Read data, clear IFLG,
Receive data byte,
ACK transmitted
clear AAK = 0*
transmit NACK
Or read data, clear IFLG,
set AAK = 1
Receive data byte,
transmit ACK
58h
Data byte received,
NACK transmitted
Read data, set STA,
clear IFLG
Transmit repeated
START
Or read data, set STP,
Transmit STOP
clear IFLG
Or read data, set
STA & STP, clear IFLG
Transmit STOP then
START
38h
Arbitration lost in
NACK bit
Same as master transmit
Same as master
transmit
2
Note: AAK is an I C control bit that identifies which ACK signal to transmit.
When all bytes are received, a NACK must be sent, then the microcontroller must write 1
to the STP bit in the I2C_CTL register. The I2C then transmits a STOP condition, clears
the STP bit and returns to an idle state.
Slave Transmit
In SLAVE TRANSMIT mode, a number of bytes are transmitted to a master receiver.
The I2C enters SLAVE TRANSMIT mode when it receives its own slave address and a
Read bit after a START condition. The I2C then transmits an ACK bit (if the AAK bit is
set to 1); it then sets the IFLG bit in the I2C_CTL register. As a result, the I2C_SR register
contains the status code A8h.
When I2C contains a 10-bit slave address (signified by the address range F0h–F7hin the
I2C_SAR register), it transmits an ACK when the first address byte is received after a
restart. An interrupt is generated and IFLG is set to 1; however, the status does not
change. No second address byte is sent by the master. It is up to the slave to remember it
had been selected prior to the restart.
Note:
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
222
I2C goes from MASTER mode to SLAVE TRANSMIT mode when arbitration is lost dur-
ing the transmission of an address, and the slave address and Read bit are received. This
action is represented by the status code B0hin the I2C_SR register.
The data byte to be transmitted is loaded into the I2C_DR register and the IFLG bit is
cleared to 0. After the I2C transmits the byte and receives an ACK, the IFLG bit is set to 1
and the I2C_SR register contains B8h. When the final byte to be transmitted is loaded into
the I2C_DR register, the AAK bit is cleared when the IFLG is cleared to 0. After the final
byte is transmitted, the IFLG is set and the I2C_SR register contains C8hand the I2C
returns to an idle state. The AAK bit must be set to 1 before reentering SLAVE mode.
If no ACK is received after transmitting a byte, the IFLG is set and the I2C_SR register
contains C0h. The I2C then returns to an idle state. If a STOP condition is detected after an
ACK bit, the I2C returns to an idle state.
Slave Receive
In SLAVE RECEIVE mode, a number of data bytes are received from a master transmit-
ter. The I2C enters SLAVE RECEIVE mode when it receives its own slave address and a
Write bit (lsb = 0) after a START condition. The I2C transmits an ACK bit and sets the
IFLG bit in the I2C_CTL register and the I2C_SR register contains the status code 60h.
The I2C also enters SLAVE RECEIVE mode when it receives the general call address 00h
(if the GCE bit in the I2C_SAR register is set). The status code is then 70h.
When the I2C contains a 10-bit slave address (signified by F0h–F7hin the I2C_SAR regis-
ter), it transmits an acknowledge after the first address byte is received but no interrupt is
generated. IFLG is not set and the status does not change. The I2C generates an interrupt
only after the second address byte is received. The I2C sets the IFLG bit and loads the sta-
tus code as described above.
Note:
I2C goes from MASTER mode to SLAVE RECEIVE mode when arbitration is lost during
the transmission of an address, and the slave address and Write bit (or the general call
address if the CGE bit in the I2C_SAR register is set to 1) are received. The status code in
the I2C_SR register is 68hif the slave address is received or 78hif the general call
address is received. The IFLG bit must be cleared to 0 to allow data transfer to continue.
If the AAK bit in the I2C_CTL register is set to 1 then an ACK bit (Low level on SDA) is
transmitted and the IFLG bit is set after each byte is received. The I2C_SR register con-
tains the two status codes 80hor 90hif SLAVE RECEIVE mode is entered with the gen-
eral call address. The received data byte are read from the I2C_DR register and the IFLG
bit must be cleared to allow the transfer to continue. If a STOP condition or a repeated
START condition is detected after the acknowledge bit, the IFLG bit is set and the I2C_SR
register contains status code A0h.
If the AAK bit is cleared to 0 during a transfer, the I2C transmits a NACK bit (High level
on SDA) after the next byte is received, and sets the IFLG bit to 1. The I2C_SR register
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
223
contains the two status codes 88hor 98hif SLAVE RECEIVE mode is entered with the
general call address. The I2C returns to an idle state when the IFLG bit is cleared to 0.
2
I C Registers
The section that follows describes each of the eZ80F91 MCU’s Inter-Integrated Circuit
(I2C) registers.
Addressing
The CPU interface provides access to seven 8-bit registers: four Read/Write registers, one
Read Only register and two Write Only registers, as listed in Table 123.
Table 123. I2C Register Descriptions
Register
I2C_SAR
I2C_XSAR
I2C_DR
Description
Slave address register
Extended slave address register
Data byte register
I2C_CTL
I2C_SR
Control register
Status register (Read Only)
Clock Control register (Write Only)
Software reset register (Write Only)
I2C_CCR
I2C_SRR
Resetting the I2C Registers
Hardware Reset—When the I2C is reset by a hardware reset of the eZ80F91 device, the
I2C_SAR, I2C_XSAR, I2C_DR, and I2C_CTL registers are cleared to 00h; while the
I2C_SR register is set to F8h.
Software Reset—Perform a software reset by writing any value to the I2C Software Reset
Register (I2C_SRR). A software reset clears the STP, STA, and IFLG bits of the I2C_CTL
register to 0 and sets the I2C back to an idle state.
I2C Slave Address Register
The I2C_SAR register provides the 7-bit address of the I2C when in SLAVE mode and
allows 10-bit addressing in conjunction with the I2C_XSAR register. I2C_SAR[7:1] =
SLA[6:0] is the 7-bit address of the I2C when in 7-bit SLAVE mode. When the I2C
receives this address after a START condition, it enters SLAVE mode. I2C_SAR[7] corre-
sponds to the first bit received from the I2C bus.
When the register receives an address starting with F7hto F0h(I2C_SAR[7:3] = 11110b),
the I2C recognizes that a 10-bit slave addressing mode is being selected. The I2C sends an
ACK after receiving the I2C_SAR byte (the device does not generate an interrupt at this
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
224
point). After the next byte of the address (I2C_XSAR) is received, the I2C generates an
interrupt and enters SLAVE mode.Then I2C_SAR[2:1] are used as the upper 2 bits for the
10-bit extended address. The full 10-bit address is supplied by {I2C_SAR[2:1],
I2C_XSAR[7:0]}. See Table 124.
Table 124. I2C Slave Address Register (I2C_SAR = 00C8h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
2
[7:1]
SLA
00h–7Fh 7-bit slave address or upper 2 bits, I C_SAR[2:1], of
address when operating in 10-bit mode.
2
0
GCE
0
1
I C not enabled to recognize the General Call Address.
2
I C enabled to recognize the General Call Address.
I2C Extended Slave Address Register
The I2C_XSAR register is used in conjunction with the I2C_SAR register to provide 10-
bit addressing of the I2C when in SLAVE mode. The I2C_SAR value forms the lower 8
bits of the 10-bit slave address. The full 10-bit address is supplied by {I2C_SAR[2:1],
I2C_XSAR[7:0]}.
When the register receives an address starting with F7hto F0h(I2C_SAR[7:3] = 11110b),
the I2C recognizes that a 10-bit slave addressing mode is being selected. The I2C sends an
ACK after receiving the I2C_XSAR byte (the device does not generate an interrupt at this
point). After the next byte of the address (I2C_XSAR) is received, the I2C generates an
interrupt and enters SLAVE mode.Then I2C_SAR[2:1] are used as the upper 2 bits for the
10-bit extended address. The full 10-bit address is supplied by {I2C_SAR[2:1],
I2C_XSAR[7:0]}. See Table 125.
Table 125. I2C Extended Slave Address Register (I2C_XSAR = 00C9h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
225
Bit
Position
Value
Description
[7:0]
00h–FFh Least-significant 8 bits of the 10-bit extended slave address
SLAX
I2C Data Register
This register contains the data byte/slave address to be transmitted or the data byte just
received. In TRANSMIT mode, the MSb of the byte is transmitted first. In RECEIVE
mode, the first bit received is placed in the MSb of the register. After each byte is transmit-
ted, the I2C_DR register contains the byte that is present on the bus in case a lost arbitra-
tion event occurs. See Table 126.
Table 126. I2C Data Register (I2C_DR = 00CAh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
2
[7:0]
00h–FFh I C data byte
DATA
I2C Control Register
The I2C_CTL register is a control register that is used to control the interrupts and the
master slave relationships on the I2C bus.
When the Interrupt Enable bit (IEN) is set to 1, the interrupt line goes High when the IFLG
is set to 1. When IEN is cleared to 0, the interrupt line always remains Low.
When the Bus Enable bit (ENAB) is set to 0, the I2C bus inputs SCLx and SDAx are
ignored and the I2C module does not respond to any address on the bus. When ENAB is
set to 1, the I2C responds to calls to its slave address and to the general call address if the
GCE bit (I2C_SAR[0]) is set to 1.
When the Master Mode Start bit (STA) is set to 1, the I2C enters MASTER mode and
sends a START condition on the bus when the bus is free. If the STA bit is set to 1 when
the I2C module is already in MASTER mode and one or more bytes are transmitted, then a
repeated START condition is sent. If the STA bit is set to 1 when the I2C block is being
accessed in SLAVE mode, the I2C completes the data transfer in SLAVE mode and then
enters MASTER mode when the bus is released. The STA bit is automatically cleared after
a START condition is set. Writing 0 to the STA bit produces no effect.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
226
If the Master Mode Stop bit (STP) is set to 1 in MASTER mode, a STOP condition is
transmitted on the I2C bus. If the STP bit is set to 1 in SLAVE mode, the I2C module oper-
ates as if a STOP condition is received, but no STOP condition is transmitted. If both STA
and STP bits are set, the I2C block first transmits the STOP condition (if in MASTER
mode), then transmits the START condition. The STP bit is cleared to 0 automatically.
Writing a 0 to this bit produces no effect.
The I2C Interrupt Flag (IFLG) is set to 1 automatically when any of 30 of the possible 31
I2C states is entered. The only state that does not set the IFLG bit is state F8h. If IFLG is
set to 1 and the IEN bit is also set, an interrupt is generated. When IFLG is set by the I2C,
the Low period of the I2C bus clock line is stretched and the data transfer is suspended.
When a 0 is written to IFLG, the interrupt is cleared and the I2C clock line is released.
When the I2C Acknowledge bit (AAK) is set to 1, an acknowledge is sent during the
acknowledge clock pulse on the I2C bus if:
•
•
•
Either the whole of a 7-bit slave address or the first or second byte of a 10-bit slave ad-
dress is received.
The general call address is received and the General Call Enable bit in I2C_SAR is set
to 1.
A data byte is received while in MASTER or SLAVE modes.
When AAK is cleared to 0, a NACK is sent when a data byte is received in MASTER or
SLAVE mode. If AAK is cleared to 0 in SLAVE TRANSMIT mode, the byte in the
I2C_DR register is assumed to be the final byte. After this byte is transmitted, the I2C
block enters the C8hstate, then returns to an idle state. The I2C module does not respond
to its slave address unless AAK is set to 1. See Table 127 on page 226.
Table 127. I2C Control Register (I2C_CTL = 00CBh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R
R
CPU Access
Note: R/W = Read/Write; R = Read Only.
Bit
Position
Value Description
2
7
IEN
0
1
0
1
I C interrupt is disabled.
2
I C interrupt is enabled.
2
6
ENAB
The I C bus (SCL/SDA) is disabled and all inputs are ignored.
2
The I C bus (SCL/SDA) is enabled.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
227
Bit
Position
Value Description
5
STA
0
Master mode START condition is sent.
Master mode start-transmit START condition on the bus.
1
4
0
Master mode STOP condition is sent.
STP
1
Master mode stop-transmit STOP condition on the bus.
2
3
0
I C interrupt flag is not set.
IFLG
2
1
I C interrupt flag is set.
2
AAK
0
Not Acknowledge.
Acknowledge.
Reserved.
1
[1:0]
00
I2C Status Register
The I2C_SR register is a Read Only register that contains a 5-bit status code in the five
MSbs; the three LSbs are always 0. The Read Only I2C_SR registers share the same I/
O addresses as the Write Only I2C_CCR registers. See Table 128.
Table 128. I2C Status Registers (I2C_SR = 00CCh)
Bit
7
6
5
4
3
2
1
0
1
1
1
1
1
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read only.
Bit
Position
Value
Description
2
[7:3]
00000– 5-bit I C status code.
STAT
11111
[2:0]
000
Reserved.
There are 29 possible status codes, as listed in Table 129. When the I2C_SR register
contains the status code F8h, no relevant status information is available, no interrupt is
generated, and the IFLG bit in the I2C_CTL register is not set. All other status codes
correspond to a defined state of the I2C.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
228
When each of these states is entered, the corresponding status code appears in this register
and the IFLG bit in the I2C_CTL register is set to 1. When the IFLG bit is cleared, the sta-
tus code returns to F8h.
Table 129. I2C Status Codes
Code
00h
08h
10h
18h
20h
28h
30h
38h
40h
48h
50h
58h
60h
68h
70h
78h
80h
88h
90h
98h
A0h
A8h
B0h
B8h
C0h
C8h
D0h
Status
Bus error.
START condition transmitted.
Repeated START condition transmitted.
Address and Write bit transmitted, ACK received.
Address and Write bit transmitted, ACK not received.
Data byte transmitted in MASTER mode, ACK received.
Data byte transmitted in MASTER mode, ACK not received.
Arbitration lost in address or data byte.
Address and Read bit transmitted, ACK received.
Address and Read bit transmitted, ACK not received.
Data byte received in MASTER mode, ACK transmitted.
Data byte received in MASTER mode, NACK transmitted.
Slave address and Write bit received, ACK transmitted.
Arbitration lost in address as master, slave address and Write bit received, ACK transmitted.
General Call address received, ACK transmitted.
Arbitration lost in address as master, General Call address received, ACK transmitted.
Data byte received after slave address received, ACK transmitted.
Data byte received after slave address received, NACK transmitted.
Data byte received after General Call received, ACK transmitted.
Data byte received after General Call received, NACK transmitted.
STOP or repeated START condition received in SLAVE mode.
Slave address and Read bit received, ACK transmitted.
Arbitration lost in address as master, slave address and Read bit received, ACK transmitted.
Data byte transmitted in SLAVE mode, ACK received.
Data byte transmitted in SLAVE mode, ACK not received.
Last byte transmitted in SLAVE mode, ACK received.
Second Address byte and Write bit transmitted, ACK received.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
229
Table 129. I2C Status Codes (Continued)
Code
D8h
Status
Second Address byte and Write bit transmitted, ACK not received.
No relevant status information, IFLG = 0.
F8h
If an illegal condition occurs on the I2C bus, the bus error state is entered (status code
00h). To recover from this state, the STP bit in the I2C_CTL register must be set and the
IFLG bit cleared. The I2C then returns to an idle state. No STOP condition is transmitted
on the I2C bus.
The STP and STA bits are set to 1 at the same time to recover from the bus error. The I2C
then sends a START condition.
Note:
I2C Clock Control Register
The I2C_CCR register is a Write Only register. The seven LSBs control the frequency at
which the I2C bus is sampled and the frequency of the I2C clock line (SCL) when the I2C
is in MASTER mode. The Write Only I2C_CCR registers share the same I/O addresses as
the Read Only I2C_SR registers. See Table 130.
Table 130. I2C Clock Control Registers (I2C_CCR = 00CCh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Read only.
Bit
Position
Value
Description
7
0
Reserved.
2
[6:3]
0000–1111 I C clock divider scalar value.
M
2
[2:0]
N
000–111
I C clock divider exponent.
The I2C clocks are derived from the system clock of the eZ80F91 device. The frequency
of this system clock is fSCK. The I2C bus is sampled by the I2C block at the frequency
fSAMP supplied by the following equation:
f
SCLK
f
=
SAMP
N
2
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
230
In MASTER mode, the I2C clock output frequency on SCL (fSCL) is supplied by the fol-
lowing equation:
f
SCLK
f
=
SCL
N
10 • (M + 1)(2)
The use of two separately-programmable dividers allows the MASTER mode output
frequency to be set independently of the frequency at which the I2C bus is sampled. This
feature is particularly useful in multimaster systems because the frequency at which the
I2C bus is sampled must be at least 10 times the frequency of the fastest master on the bus
to ensure that START and STOP conditions are always detected. By using two
programmable clock divider stages, a high sampling frequency is ensured while allowing
the MASTER mode output to be set to a lower frequency.
Bus Clock Speed
The I2C bus is defined for bus clock speeds up to 100 kbps (400 kbps in FAST mode).
To ensure correct detection of START and STOP conditions on the bus, the I2C must sam-
ple the I2C bus at least ten times faster than the bus clock speed of the fastest master on the
bus. The sampling frequency must therefore be at least 1 MHz (4 MHz in FAST mode) to
guarantee correct operation with other bus masters.
The I2C sampling frequency is determined by the frequency of the eZ80F91 system clock
and the value in the I2C_CCR bits 2 to 0. The bus clock speed generated by the I2C in
MASTER mode is determined by the frequency of the input clock and the values in
I2C_CCR[2:0] and I2C_CCR[6:3].
I2C Software Reset Register
The I2C_SRR register is a Write Only register. Writing any value to this register performs
a software reset of the I2C module. See Table 131.
Table 131. I2C Software Reset Register (I2C_SRR = 00CDh)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
[7:0]
SRR
00h–FFh Writing any value to this register performs a software reset
2
of the I C module.
PS019215-0910
I2C Serial I/O Interface
eZ80F91 MCU
Product Specification
231
Zilog Debug Interface
Introduction
The Zilog Debug Interface (ZDI) provides a built-in debugging interface to the CPU. ZDI
provides basic in-circuit emulation features including:
•
•
•
•
•
•
•
•
•
Examining and modifying internal registers.
Examining and modifying memory.
Starting and stopping the user program.
Setting program and data break points.
Single-stepping the user program.
Executing user-supplied instructions.
Debugging the final product with the inclusion of one small connector.
Downloading code into SRAM.
C source-level debugging using Zilog Developer Studio II (ZDS II).
The above features are built into the silicon. Control is provided via a two-wire interface
that is connected to the USB Smart Cable emulator. Figure 48 displays a typical setup
using a a target board, USB Smart Cable, and the host PC running Zilog Developer Studio
II. For more information on USB Smart Cable and ZDS II, refer to www.zilog.com.
Target Board
C
O
N
N
E
C
T
Zilog
Developer
Studio
USB Smart
Cable
Emulator
eZ80®
Product
O
R
Figure 48. Typical ZDI Debug Setup
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
232
ZDI allows reading and writing of most internal registers without disturbing the state of
the machine. Reads and Writes to memory occurs as fast as the ZDI downloads and
uploads data, with a maximum supported ZDI clock frequency of 0.4 times the eZ80F91
system clock frequency. Also, regardless of the ZDI clock frequency, the duration of the
low-phase of the ZDI clock (that is, ZCL = 0) must be at least 1.25 times the system clock
period.
For the description on how to enable the ZDI interface on the exit of RESET, see the OCI
Activation on page 258.
Table 132. Recommend ZDI Clock versus System Clock Frequency
System Clock Frequency
3–10 MHz
ZDI Clock Frequency
1 MHz
8–16 MHz
2 MHz
12–24 MHz
4 MHz
20–50 MHz
8 MHz
ZDI-Supported Protocol
ZDI supports a bidirectional serial protocol. The protocol defines any device that sends
data as the transmitter and any receiving device as the receiver. The device controlling the
transfer is the master and the device being controlled is the slave. The master always ini-
tiates the data transfers and provides the clock for both receive and transmit operations.
The ZDI block on the eZ80F91 device is considered a slave in all data transfers.
Figure 49 on page 233 displays the schematic for building a connector on a target board.
This connector allows you to connect directly to the USB Smart Cable emulator using a
six-pin header.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
233
TVDD
(Target VDD
)
10 Kohm
10 Kohm
2
4
6
1
3
5
TCK (ZCL)
TDI (ZDA)
eZ80F91
6-Pin Target Connector
Figure 49. Schematic For Building a Target Board USB Smart Cable
Connector
ZDI Clock and Data Conventions
The two pins used for communication with the ZDI block are the ZDI clock pin (ZCL) and
the ZDI data pin (ZDA). On eZ80F91, the ZCL pin is shared with the TCK pin while the
ZDA pin is shared with the TDI pin. The ZCL and ZDA pin functions are only available
when the On-Chip Instrumentation is disabled and the ZDI is therefore enabled. For gen-
eral data communication, the data value on the ZDA pin changes only when ZCL is Low
(0). The only exception is the ZDI START bit, which is indicated by a High-to-Low transi-
tion (falling edge) on the ZDA pin while ZCL is High.
Data is shifted into and out of ZDI, with the MSb (bit 7) of each byte being first in time,
and the LSb (bit 0) last in time. All information is passed between the master and the slave
in 8-bit (single-byte) units. Each byte is transferred with nine clock cycles; eight to shift
the data, and the ninth for internal operations.
ZDI START Condition
All ZDI commands are preceded by the ZDI START signal, which is a High-to-Low tran-
sition of ZDA when ZCL is High. The ZDI slave on the eZ80F91 device continually mon-
itors the ZDA and ZCL lines for the START signal and does not respond to any command
until this condition is met. The master pulls ZDA Low, with ZCL High, to indicate the
beginning of a data transfer with the ZDI block. Figure 50 on page 234 and Figure 51 on
page 234 displays a valid ZDI START signal prior to writing and reading data, respec-
tively. A Low-to-High transition of ZDA while the ZCL is High produces no effect.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
234
Data is shifted in during a Write to the ZDI block on the rising edge of ZCL, as displayed
in Figure 50. Data is shifted out during a Read from the ZDI block on the falling edge of
ZCL as displayed in Figure 51. When an operation is completed, the master stops during
the ninth cycle and holds the ZCL signal High.
ZDI Data In
(Write)
ZDI Data In
(Write)
ZCL
ZDA
Start Signal
Figure 50. ZDI Write Timing
ZDI Data Out
(Read)
ZDI Data Out
(Read)
ZCL
ZDA
Start Signal
Figure 51. ZDI Read Timing
ZDI Single-Bit Byte Separator
Following each 8-bit ZDI data transfer, a single-bit byte separator is used. To initiate a
new ZDI command, the single-bit byte separator must be High (logical 1) to allow for a
new ZDI START command to be sent. For all other cases, the single-bit byte separator is
either Low (logical 0) or High (logical 1). When ZDI is configured to allow the CPU to
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
235
accept external bus requests, the single-bit byte separator must be Low (logical 0) during
all ZDI commands. This Low value indicates that ZDI is still operating and is not ready to
relinquish the bus. The CPU does not accept the external bus requests until the single-bit
byte separator is a High (logical 1). For more information on accepting bus requests in
ZDI DEBUG mode, see Bus Requests During ZDI Debug Mode on page 238.
ZDI Register Addressing
Following a START signal the ZDI master must output the ZDI register address. All data
transfers with the ZDI block use special ZDI registers. The ZDI control registers that
reside in the ZDI register address space must not be confused with the eZ80F91 device
peripheral registers that reside in the I/O address space.
Many locations in the ZDI control register address space are shared by two registers—one
for Read Only access and one for Write Only access. For example, a Read from ZDI regis-
ter address 00hreturns the eZ80® Product ID Low Byte, while a Write to this same loca-
tion, 00h, stores the Low byte of one of the address match values used for generating
break points.
The format for a ZDI address is seven bits of address, followed by one bit for Read or
Write control, and completed by a single-bit byte separator. The ZDI executes a Read or
Write operation depending on the state of the R/W bit (0 = Write, 1 = Read). If no new
START command is issued at completion of the Read or Write operation, the operation is
repeated. This allows repeated Read or Write operations without having to resend the ZDI
command. A START signal must follow to initiate a new ZDI command. Figure 52 dis-
plays the timing for address Writes to ZDI registers.
Single-Bit
Byte Separator
or new ZDI
START Signal
ZDI Address Byte
ZCL
ZDA
S
1
2
3
4
5
6
7
8
9
A6
A5
A4
A3
A2
A1
A0
lsb
R/W 0/1
msb
START
Signal
0 = WRITE
1 = READ
Figure 52. ZDI Address Write Timing
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
236
ZDI Write Operations
ZDI Single-Byte Write
For single-byte Write operations, the address and write control bit are first written to the
ZDI block. Following the single-bit byte separator, the data is shifted into the ZDI block
on the next 8 rising edges of ZCL. The master terminates activity after 8 clock cycles.
Figure 53 displays the timing for ZDI single-byte Write operations.
ZDI Data Byte
ZCL
ZDA
7
8
9
1
2
3
4
5
6
7
8
9
A0
Write
0/1
D7
D6
D5
D4
D3
D2
D1
D0
1
msb
of DATA
lsb
of DATA
lsb of
Single-Bit
End of Data
or New ZDI
START Signal
ZDI Address Byte Separator
Figure 53. ZDI Single-Byte Data Write Timing
ZDI Block Write
The block Write operation is initiated in the same manner as the single-byte Write opera-
tion, but instead of terminating the Write operation after the first data byte is transferred,
the ZDI master continues to transmit additional bytes of data to the ZDI slave on the
eZ80F91 device. After the receipt of each byte of data the ZDI register address increments
by 1. If the ZDI register address reaches the end of the Write Only ZDI register address
space (30h), the address stops incrementing. Figure 54 displays the timing for ZDI block
Write operations.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
237
ZDI Data Bytes
ZCL
ZDA
7
8
9
1
2
7
8
9
1
2
A0
Write
0/1
D7
D6
D1
D0
0/1
D7
D6
msb
of DATA
Byte 1
lsb
of DATA
Byte 1
msb
of DATA
Byte 2
lsb of
Single-Bit
Single-Bit
Byte Separator
ZDI Address Byte Separator
Figure 54. ZDI Block Data Write Timing
ZDI Read Operations
ZDI Single-Byte Read
Single-byte Read operations are initiated in the same manner as single-byte Write opera-
tions, with the exception that the R/W bit of the ZDI register address is set to 1. Upon
receipt of a slave address with the R/W bit set to 1, the eZ80F91 device’s ZDI block loads
the selected data into the shifter at the beginning of the first cycle following the single-bit
data separator. The most significant bit (msb) is shifted out first. Figure 55 displays the
timing for ZDI single-byte Read operations.
ZDI Data Byte
ZCL
ZDA
7
8
9
1
2
3
4
5
6
7
8
9
A0
Read
0/1
D7
D6
D5
D4
D3
D2
D1
D0
1
msb
of DATA
lsb
of DATA
lsb of
Single-Bit
End of Data
or New ZDI
START Signal
ZDI Address Byte Separator
Figure 55. ZDI Single-Byte Data Read Timing
In ZDI single-byte read operations, after each read operation, the Program Counter (PC)
address is incremented by two bytes. For example, if the current PC address is 0x00, then
Note:
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
238
a read operation at 0x00 increments the PC to 0x02. To read the next byte, the PC must be
decremented by one.
ZDI Block Read
A block Read operation is initiated in the same manner as a single-byte Read; however,
the ZDI master continues to clock in the next byte from the ZDI slave as the ZDI slave
continues to output data. The ZDI register address counter increments with each Read. If
the ZDI register address reaches the end of the Read Only ZDI register address space
(20h), the address stops incrementing. Figure 56 displays the ZDI’s block Read timing.
ZDI Data Bytes
ZCL
ZDA
7
8
9
1
2
7
8
9
1
2
A0
Read
0/1
D7
D6
D1
D0
0/1
D7
D6
msb
of DATA
Byte 1
lsb
of DATA
Byte 1
msb
of DATA
Byte 2
lsb of
Single-Bit
Single-Bit
Byte Separator
ZDI Address Byte Separator
Figure 56. ZDI Block Data Read Timing
Operation of the eZ80F91 Device during ZDI Break Points
If the ZDI forces the CPU to break, only the CPU suspends operation. The system clock
continues to operate and drive other peripherals. Those peripherals that operate autono-
mously from the CPU continues to operate, if so enabled. For example, the Watchdog
Timer and Programmable Reload Timers continue to count during a ZDI break point.
When using the ZDI interface, any Write or Read operations of peripheral registers in the
I/O address space produces the same effect as Read or Write operations using the CPU. As
many register Read/Write operations exhibit secondary effects, such as clearing flags or
causing operations to commence, the effects of the Read/Write operations during a ZDI
break must be taken into consideration.
Bus Requests During ZDI Debug Mode
The ZDI block on the eZ80F91 device allows an external device to take control of the
address and data bus while the eZ80F91 device is in DEBUG mode. ZDI_BUSACK_EN
causes ZDI to allow or prevent acknowledgement of bus requests by external peripherals.
The bus acknowledge occurs only at the end of the current ZDI operation (indicated by a
High during the single-bit byte separator). The default reset condition is for bus acknowl-
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
239
edgement to be disabled. To allow bus acknowledgement, the ZDI_BUSACK_EN must be
written.
When an external bus request (BUSREQ pin asserted) is detected, ZDI waits until comple-
tion of the current operation before responding. ZDI acknowledges the bus request by
asserting the bus acknowledge (BUSACK) signal. If the ZDI block is not currently shift-
ing data, it acknowledges the bus request immediately. ZDI uses the single-bit byte separa-
tor of each data word to determine if it is at the end of a ZDI operation. If the bit is a
logical 0, ZDI does not assert BUSACK to allow additional data Read or Write operations.
If the bit is a logical 1, indicating completion of the ZDI commands, BUSACK is asserted.
Potential Hazards of Enabling Bus Requests During DEBUG Mode
There are some potential hazards that you must be aware of when enabling external bus
requests during ZDI DEBUG mode. First, when the address and data bus are being used
by an external source, ZDI must only access ZDI registers and internal CPU registers to
prevent possible bus contention. The bus acknowledge status is reported in the
ZDI_BUS_STAT register. The BUSACK output pin also indicates the bus acknowledge
state.
A second hazard is that when a bus acknowledge is granted, the ZDI is subject to any wait
states that are assigned to the device currently being accessed by the external peripheral.
To prevent data errors, ZDI must avoid data transmission while another device is
controlling the bus.
Finally, exiting ZDI DEBUG mode while an external peripheral controls the address and
data buses, as indicated by BUSACK assertion produces unpredictable results.
ZDI Write Only Registers
Table 133 lists the ZDI Write Only registers. Many of the ZDI Write Only addresses are
shared with ZDI Read Only registers.
Table 133. ZDI Write Only Registers
Reset
ZDI Address ZDI Register Name ZDI Register Function
Value
XXh
XXh
XXh
XXh
XXh
XXh
00h
01h
02h
04h
05h
06h
ZDI_ADDR0_L
ZDI_ADDR0_H
ZDI_ADDR0_U
ZDI_ADDR1_L
ZDI_ADDR1_H
ZDI_ADDR1_U
Address Match 0 Low Byte
Address Match 0 High Byte
Address Match 0 Upper Byte
Address Match 1 Low Byte
Address Match 1 High Byte
Address Match 1 Upper Byte
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
240
Table 133. ZDI Write Only Registers (Continued)
Reset
Value
ZDI Address ZDI Register Name ZDI Register Function
08h
09h
0Ah
0Ch
0Dh
0Eh
10h
11h
13h
14h
15h
16h
17h
21h
22h
23h
24h
25h
30h
ZDI_ADDR2_L
ZDI_ADDR2_H
ZDI_ADDR2_U
ZDI_ADDR3_L
ZDI_ADDR3_H
ZDI_ADDR3_U
ZDI_BRK_CTL
Address Match 2 Low Byte
XXh
XXh
XXh
XXh
XXh
XXh
00h
Address Match 2 High Byte
Address Match 2 Upper Byte
Address Match 3 Low Byte
Address Match 3 High Byte
Address Match 4 Upper Byte
Break Control Register
ZDI_MASTER_CTL Master Control Register
00h
ZDI_WR_DATA_L
ZDI_WR_DATA_H
ZDI_WR_DATA_U
ZDI_RW_CTL
ZDI_BUS_CTL
ZDI_IS4
Write Data Low Byte
Write Data High Byte
Write Data Upper Byte
Read/Write Control Register
Bus Control Register
Instruction Store 4
XXh
XXh
XXh
00h
00h
XXh
XXh
XXh
XXh
XXh
XXh
ZDI_IS3
Instruction Store 3
ZDI_IS2
Instruction Store 2
ZDI_IS1
Instruction Store 1
ZDI_IS0
Instruction Store 0
ZDI_WR_MEM
Write Memory Register
ZDI Read Only Registers
Table 134 lists the ZDI Read Only registers. Many of the ZDI Read Only addresses are
shared with ZDI Write Only registers.
Table 134. ZDI Read Only Registers
Reset
Value
ZDI Address
ZDI Register Name
ZDI_ID_L
ZDI Register Function
®
00h
01h
02h
eZ80 Product ID Low Byte Register
08h
00h
XXh
ZDI_ID_H
eZ80 Product ID High Byte Register
eZ80 Product ID Revision Register
ZDI_ID_REV
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
241
Table 134. ZDI Read Only Registers (Continued)
Reset
Value
ZDI Address
ZDI Register Name
ZDI_STAT
ZDI Register Function
03h
10h
11h
12h
17h
20h
Status Register
00h
ZDI_RD_L
Read Memory Address Low Byte Register
Read Memory Address High Byte Register
Read Memory Address Upper Byte Register
Bus Status Register
XXh
XXh
XXh
00h
ZDI_RD_H
ZDI_RD_U
ZDI_BUS_STAT
ZDI_RD_MEM
Read Memory Data Value
XXh
ZDI Register Definitions
ZDI Address Match Registers
The four sets of address match registers are used for setting the addresses for generating
break points. When the accompanying BRK_ADDRX bit is set in the ZDI Break Control
register to enable the particular address match, the current eZ80F91 address is compared
with the 3-byte address set, {ZDI_ADDRx_U, ZDI_ADDRx_H, and ZDI_ADDR_x_L}.
If the CPU is operating in ADL mode, the address is supplied by ADDR[23:0]. If the CPU
is operating in Z80® mode, the address is supplied by {MBASE[7:0], ADDR[15:0]}. If a
match is found, ZDI issues a break to the eZ80F91 device placing the CPU in ZDI mode
pending further instructions from the ZDI interface block. If the address is not the first op-
code fetch, the ZDI break is executed at the end of the instruction in which it is executed.
There are four sets of address match registers. They are used in conjunction with each
other to break on branching instructions. See Table 135 on page 241.
Table 135. ZDI Address Match Registers
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
[7:0]
00h–FFh The four sets of ZDI address match registers are used for
setting the addresses for generating break points. The 24
bit addresses are supplied by {ZDI_ADDRx_U,
zdi_addrx_l,
zdi_addrx_h,
or
ZDI_ADDRx_H, ZDI_ADDRx_L, where x is 0, 1, 2, or 3.
zdi_addrx_u
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
242
Address Information for ZDI Address Match Registers
ZDI_ADDR0_L = 00h, ZDI_ADDR0_H = 01h, ZDI_ADDR0_U = 02h, ZDI_ADDR1_L =
04h, ZDI_ADDR1_H = 05h, ZDI_ADDR1_U = 06h, ZDI_ADDR2_L = 08h, ZDI_ADDR2_H
= 09h, ZDI_ADDR2_U = 0Ah, ZDI_ADDR3_L = 0Ch, ZDI_ADDR3_H = 0Dh, and
ZDI_ADDR3_U = 0Eh in the ZDI Register Write Only Address Space.
ZDI Break Control Register
The ZDI Break Control register is used to enable break points. ZDI asserts a break when
the CPU instruction address, ADDR[23:0], matches the value in the ZDI Address Match 3
registers, {ZDI_ADDR3_U, ZDI_ADDR3_H, ZDI_ADDR3_L}. BREAKs occurs only
on an instruction boundary. If the instruction address is not the beginning of an instruction
(that is, for multibyte instructions), then the break occurs at the end of the current instruc-
tion. The brk_next bit is set to 1. The brk_next bit must be reset to 0 to release the break.
See Table 136 on page 243.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
243
Table 136. ZDI Break Control Register (ZDI_BRK_CTL = 10h in the ZDI Write Only Register
Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value Description
7
0
The ZDI break on the next CPU instruction is disabled.
Clearing this bit releases the CPU from its current BREAK
condition.
brk_next
1
The ZDI break on the next CPU instruction is enabled. The
CPU uses multibyte Op Codes and multibyte operands.
Break points only occur on the first Op Code in a multibyte
Op Code instruction. If the ZCL pin is High and the ZDA pin
is Low at the end of RESET, this bit is set to 1 and a break
occurs on the first instruction following the RESET. This bit
is set automatically during ZDI break on address match. A
break is also forced by writing a 1 to this bit.
6
0
1
0
1
0
1
0
1
The ZDI break, upon matching break address 3, is
disabled.
brk_addr3
The ZDI break, upon matching break address 3, is
enabled.
5
The ZDI break, upon matching break address 2, is
disabled.
brk_addr2
The ZDI break, upon matching break address 2, is
enabled.
4
The ZDI break, upon matching break address 1, is
disabled.
brk_addr1
The ZDI break, upon matching break address 1, is
enabled.
3
The ZDI break, upon matching break address 0, is
disabled.
brk_addr0
The ZDI break, upon matching break address 0, is
enabled.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
244
Bit
Position
Value Description
2
0
The Ignore the Low Byte function of the ZDI Address Match
1 registers is disabled. If brk_addr1 is set to 1, ZDI initiates
ign_low_1
a break when the entire 24-bit address, ADDR[23:0],
matches the 3-byte value {ZDI_ADDR1_U,
ZDI_ADDR1_H, ZDI_ADDR1_L}.
1
The Ignore the Low Byte function of the ZDI Address Match
1 registers is enabled. If brk_addr1 is set to 1, ZDI initiates
a break when only the upper 2 bytes of the 24-bit address,
ADDR[23:8], match the 2-byte value {ZDI_ADDR1_U,
ZDI_ADDR1_H}. As a result, a break occurs anywhere
within a 256-byte page.
1
0
1
The Ignore the Low Byte function of the ZDI Address Match
1 registers is disabled. If brk_addr0 is set to 1, ZDI initiates
a break when the entire 24-bit address, ADDR[23:0],
matches the 3-byte value {ZDI_ADDR0_U,
ign_low_0
ZDI_ADDR0_H, ZDI_ADDR0_L}.
The Ignore the Low Byte function of the ZDI Address Match
1 registers is enabled. If the brk_addr1 is set to 0, ZDI
initiates a break when only the upper 2 bytes of the 24-bit
address, ADDR[23:8], match the 2 bytes value
{ZDI_ADDR0_U, ZDI_ADDR0_H}. As a result, a break
occurs anywhere within a 256-byte page.
0
0
1
ZDI single step mode is disabled.
single_step
ZDI single step mode is enabled. ZDI asserts a break
following execution of each instruction.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
245
ZDI Master Control Register
The ZDI Master Control register provides control of the eZ80F91 device. It is capable of
forcing a RESET and waking up the eZ80F91 from the LOW-POWER modes (HALT or
SLEEP). See Table 137.
Table 137. ZDI Master Control Register (ZDI_MASTER_CTL = 11h in ZDI Register Write
Address Spaces)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
7
0
1
No action.
ZDI_RESET
Initiate a RESET of the eZ80F91. This bit is automatically
cleared at the end of the RESET event.
[6:0]
0000000 Reserved.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
246
ZDI Write Data Registers
These three registers are used in the ZDI Write Only register address space to store the
data that is written when a Write instruction is sent to the ZDI Read/Write Control register
(ZDI_RW_CTL). The ZDI Read/Write Control register is located at ZDI address 16h
immediately following the ZDI Write Data registers. As a result, the ZDI Master is
allowed to write the data to {ZDI_WR_U, ZDI_WR_H, ZDI_WR_L} and the Write
command in one data transfer operation. See Table 138.
Table 138. ZDI Write Data Registers (ZDI_WR_U = 13h, ZDI_WR_H = 14h, and ZDI_WR_L =
15h in the ZDI Register Write Only Address Space)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: X = Undefined; W = Write.
Bit
Position
Value
Description
[7:0]
00h–FFh These registers contain the data that is written during
execution of a Write operation defined by the
zdi_wr_l,
zdi_wr_h,
or
ZDI_RW_CTL register. The 24-bit data value is stored
as {ZDI_WR_U, ZDI_WR_H, ZDI_WR_L}. If less than
24 bits of data are required to complete the required
operation, the data is taken from the LSBs.
zdi_wr_l
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
247
ZDI Read/Write Control Register
The ZDI Read/Write Control register is used in the ZDI Write Only Register address to
read data from, write data to, and manipulate the CPU’s registers or memory locations.
When this register is written, the eZ80F91 device immediately performs the operation
corresponding to the data value written as listed in Table 139. When a Read operation is
executed via this register, the requested data values are placed in the ZDI Read Data
registers {ZDI_RD_U, ZDI_RD_H, ZDI_RD_L}. When a Write operation is executed via
this register, the Write data is taken from the ZDI Write Data registers {ZDI_WR_U,
ZDI_WR_H, ZDI_WR_L}. See Table 139. For information on the CPU registers, refer to
eZ80® CPU User Manual (UM0077) available on www.zilog.com.
The CPU’s alternate register set (A’, F’, B’, C’, D’, E’, HL’) cannot be read directly. The
ZDI programmer must execute the exchange instruction (EXX) to gain access to the alter-
nate CPU register set.
Note:
Table 139. ZDI Read/Write Control Register Functions (ZDI_RW_CTL = 16h in the ZDI
Register Write Only Address Space)
Hex
Value
Hex
Value
Command
Command
00
01
02
03
04
Read {MBASE, A, F}
ZDI_RD_UMBASE
ZDI_RD_HF
80
81
82
83
84
Write AF
MBASEZDI_WR_U
FZDI_WR_H
AZDI_WR_L
ZDI_RD_LA
Read BC
Write BC
ZDI_RD_UBCU
ZDI_RD_HB
ZDI_RD_LC
BCUZDI_WR_U
BZDI_WR_H
CZDI_WR_L
Read DE
Write DE
ZDI_RD_UDEU
ZDI_RD_HD
ZDI_RD_LE
DEUZDI_WR_U
DZDI_WR_H
EZDI_WR_L
Read HL
Write HL
ZDI_RD_UHLU
ZDI_RD_HH
ZDI_RD_LL
HLUZDI_WR_U
HZDI_WR_H
LZDI_WR_L
Read IX
Write IX
ZDI_RD_UIXU
ZDI_RD_HIXH
ZDI_RD_LIXL
IXUZDI_WR_U
IXHZDI_WR_H
IXLZDI_WR_L
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
248
Table 139. ZDI Read/Write Control Register Functions (ZDI_RW_CTL = 16h in the ZDI
Register Write Only Address Space) (Continued)
Hex
Value
Hex
Value
Command
Command
05
Read IY
85
Write IY
ZDI_RD_UIYU
ZDI_RD_HIYH
ZDI_RD_LIYL
IYUZDI_WR_U
IYHZDI_WR_H
IYLZDI_WR_L
06
07
Read SP
86
87
Write SP
In ADL mode, SP = SPL.
In Z80 mode, SP = SPS.
In ADL mode, SP = SPL.
®
In Z80 mode, SP = SPS.
Read PC
Write PC
ZDI_RD_UPC[23:16]
ZDI_RD_HPC[15:8]
ZDI_RD_LPC[7:0]
PC[23:16]ZDI_WR_U
PC[15:8]ZDI_WR_H
PC[7:0]ZDI_WR_L
08
09
0A
Set ADL
ADL1
88
89
Reserved
Reserved
Reserved
Reset ADL
ADL 0
Exchange CPU register sets 8A
AF AF’
BC BC’
DE DE’
HL HL’
0B
Read memory from current PC 8B
value, increment PC
Write memory from current PC
value, increment PC
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
249
ZDI Bus Control Register
The ZDI Bus Control register controls bus requests during DEBUG mode. It enables or
disables bus acknowledge in ZDI DEBUG mode and allows ZDI to force assertion of the
BUSACK signal. This register must only be written during ZDI DEBUG mode (that is,
following a break). See Table 140.
Table 140. ZDI Bus Control Register (ZDI_BUS_CTL = 17h in the ZDI Register Write Only
Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write Only.
Bit
Position
Value
Description
7
0
Bus requests by external peripherals using the BUSREQ
pin are ignored. The bus acknowledge signal, BUSACK, is
not asserted in response to any bus requests.
ZDI_BUSAK_EN
1
Bus requests by external peripherals using the BUSREQ
pin are accepted. A bus acknowledge occurs at the end of
the current ZDI operation. The bus acknowledge is
indicated by asserting the BUSACK pin in response to a
bus request.
6
0
1
Deassert the bus acknowledge pin (BUSACK) to return
control of the address and data buses back to ZDI.
ZDI_BUSAK
Assert the bus acknowledge pin (BUSACK) to pass control
of the address and data buses to an external peripheral.
[5:0]
000000 Reserved.
Instruction Store 4:0 Registers
The ZDI Instruction Store registers are located in the ZDI Register Write Only address
space. They are written with instruction data for direct execution by the CPU. When the
ZDI_IS0 register is written, the eZ80F91 device exits the ZDI break state and executes a
single instruction. The opcodes and operands for the instruction come from these Instruc-
tion Store registers. The Instruction Store Register 0 is the first byte fetched, followed by
Instruction Store registers 1, 2, 3, and 4, as necessary. Only the bytes the CPU requires to
execute the instruction must be stored in these registers. Some CPU instructions, when
combined with the MEMORY mode suffixes (.SIS, .SIL, .LIS, or .LIL), require 6 bytes to
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
250
operate. These 6-byte instructions cannot be executed directly using the ZDI Instruction
Store registers. See Table 141.
The Instruction Store 0 register is located at a higher ZDI address than the other Instruc-
tion Store registers. This feature allows the use of the ZDI auto-address increment function
to load and execute a multibyte instruction with a single data stream from the ZDI master.
Execution of the instruction commences with writing the final byte to ZDI_IS0.
Note:
Table 141. Instruction Store 4:0 Registers (ZDI_IS4 = 21h, ZDI_IS3 = 22h, ZDI_IS2 = 23h,
ZDI_IS1 = 24h, and ZDI_IS0 = 25h in the ZDI Register Write Only Address Space)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: X = Undefined; W = Write.
Bit
Position
Value
Description
[7:0]
00h–FFh These registers contain the Op Codes and operands for
immediate execution by the CPU following a Write to
ZDI_IS0. The ZDI_IS0 register contains the first Op Code
of the instruction. The remaining ZDI_ISx registers
contain any additional Op Codes or operand dates
required for execution of the required instruction.
zdi_is4,
zdi_is3,
zdi_is2,
zdi_is1,
or
zdi_is0
ZDI Write Memory Register
A Write to the ZDI Write Memory register causes the eZ80F91 device to write the 8-bit
data to the memory location specified by the current address in the Program Counter. In
Z80® MEMORY mode, this address is {MBASE, PC[15:0]}. In ADL MEMORY mode,
this address is PC[23:0]. The Program Counter, PC, increments after each data Write.
However, the ZDI register address does not increment automatically when this register
is accessed. As a result, the ZDI master is allowed to write any number of data bytes by
writing to this address one time followed by any number of data bytes. See Table 142
on page 251.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
251
Table 142. ZDI Write Memory Register (ZDI_WR_MEM = 30h in the ZDI Register Write Only
Address Space)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: X = Undefined; W = Write.
Bit
Position
Value
Description
[7:0]
zdi_wr_mem
00h–FFh The 8-bit data that is transferred to the ZDI slave
following a Write to this address is written to the address
indicated by the current Program Counter. The Program
Counter is incremented following each 8 bits of data. In
®
Z80 MEMORY mode, ({MBASE, PC[15:0]}) 8 bits of
transferred data. In ADL MEMORY mode, (PC[23:0])
8-bits of transferred data.
eZ80® Product ID Low and High Byte Registers
The eZ80 Product ID Low and High Byte registers combine to provide a means for an
external device to determine the particular eZ80 product being addressed. See Table 143
and Table 144 on page 252.
Table 143. eZ80 Product ID Low Byte Register (ZDI_ID_L = 00h in the ZDI Register Read Only
Address Space, ZDI_ID_L = 0000h in the I/O Register Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
1
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value Description
[7:0]
zdi_id_l
08h
{ZDI_ID_H, ZDI_ID_L} = {00h, 08h} indicates the eZ80F91
product.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
252
Table 144. eZ80® Product ID High Byte Register (ZDI_ID_H = 01h in the ZDI Register Read Only
Address Space, ZDI_ID_H = 0001h in the I/O Register Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value Description
[7:0]
zdi_id_H
00h
{ZDI_ID_H, ZDI_ID_L} = {00h, 08h} indicates the eZ80F91
device.
eZ80 Product ID Revision Register
The eZ80 Product ID Revision register identifies the current revision of the eZ80F91
product. See Table 145.
Table 145. eZ80 Product ID Revision Register (ZDI_ID_REV = 02h in the ZDI Register Read
Only Address Space, ZDI_ID_REV = 0002h in the I/O Register Address Space)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: X = Undetermined; R = Read Only.
Bit
Position
Value
Description
[7:0]
00h–FFh Identifies the current revision of the eZ80F91 product.
zdi_id_rev
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
253
ZDI Status Register
The ZDI Status register provides current information on the eZ80F91 device and the CPU.
See Table 146.
Table 146. ZDI Status Register (ZDI_STAT = 03h in the ZDI Register Read Only Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value Description
7
0
1
0
0
1
0
The CPU is not functioning in ZDI mode.
The CPU is currently functioning in ZDI mode.
Reserved.
zdi_active
6
5
The CPU is not currently in HALT or SLEEP mode.
The CPU is currently in HALT or SLEEP mode.
halt_SLP
®
4
The CPU is operating in Z80 MEMORY mode.
ADL
(ADL bit = 0)
1
The CPU is operating in ADL MEMORY mode.
(ADL bit = 1)
3
MADL
0
1
0
The CPU’s Mixed-Memory mode (MADL) bit is reset to 0.
The CPU’s Mixed-Memory mode (MADL) bit is set to 1.
2
IEF1
The CPU’s Interrupt Enable Flag 1 is reset to 0. Maskable
interrupts are disabled.
1
The CPU’s Interrupt Enable Flag 1 is set to 1. Maskable
interrupts are enabled.
[1:0]
00
Reserved.
Reserved
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
254
ZDI Read Register Low, High, and Upper
The ZDI register Read Only address space offers Low, High, and Upper functions, which
contain the value read by a Read operation from the ZDI Read/Write Control register
(ZDI_RW_CTL). This data is valid only while in ZDI BREAK mode and only if the
instruction is read by a request from the ZDI Read/Write Control register. See Table 147.
Table 147. ZDI Read Register Low, High, and Upper (ZDI_RD_L = 10h, ZDI_RD_H = 11h, and
ZDI_RD_U = 12h in the ZDI Register Read Only Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
00h–FFh Values read from the memory location as requested by the
ZDI Read Control register during a ZDI Read operation.
The 24-bit value is supplied by {ZDI_RD_U, ZDI_RD_H,
ZDI_RD_L}.
zdi_rd_l,
zdi_rd_h,
or
zdi_rd_u
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
255
ZDI Bus Status Register
The ZDI Bus Status register monitors BUSACKs during DEBUG mode. See Table 148.
Table 148. ZDI Bus Control Register (ZDI_BUS_STAT = 17h in the ZDI Register Read Only
Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
Bus requests by external peripherals using the
7
0
ZDI_BUSAcK_En
BUSREQ pin are ignored. The bus acknowledge signal,
BUSACK, is not asserted.
1
Bus requests by external peripherals using the
BUSREQ pin are accepted. A bus acknowledge occurs
at the end of the current ZDI operation. The bus
acknowledge is indicated by asserting the BUSACK pin.
6
0
1
Address and data buses are not relinquished to an
external peripheral. bus acknowledge is deasserted
(BUSACK pin is High).
ZDI_BUS_STAT
Address and data buses are relinquished to an external
peripheral. bus acknowledge is asserted (BUSACK pin
is Low).
[5:0]
000000 Reserved.
ZDI Read Memory Register
When a Read is executed from the ZDI Read Memory register, the eZ80F91 device
fetches the data from the memory address currently pointed to by the Program
Counter, PC; the Program Counter is then incremented. In Z80® MEMORY mode, the
memory address is {MBASE, PC[15:0]}. In ADL MEMORY mode, the memory
address is PC[23:0]. For more information on Z80 and ADL MEMORY modes, refer
to the eZ80® CPU User Manual (UM0077) available on www.zilog.com. The Pro-
gram Counter, PC, increments after each data Read. However, the ZDI register address
does not increment automatically when this register is accessed. As a result, the ZDI
master reads any number of data bytes out of memory via the ZDI Read Memory reg-
ister. See Table 149 on page 256.
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
256
Note that the delay between issuing a memory read request and the return of the corre-
sponding data amount to multiple ZDI clock cycles. This delay is a function of the wait
state configuration of the memory space being accessed as well as the relative frequencies
of the ZDI clock and the system clock. If the ZDI master begins clocking the read data out
of the eZ80F91 soon after issuing the memory read request, invalid data will be returned.
Since no data-valid handshake mechanism exists in the ZDI protocol, the ZDI master must
account for expected memory read delay in some way.
A technique exists to mask this delay in almost all situations. It always reads at least two
consecutive bytes, starting one address lower than the address of interest. In this situation,
the eZ80F91 internally prefetches the data from the second address while the ZDI master
is sending the second read request. This allows enough time for the second ZDI memory
read to return valid data. The first data byte returned to the ZDI master must be discarded
since it is invalid. Memory reads of more than two consecutive bytes will also return cor-
rect data for all but the first address.
Table 149. ZDI Read Memory Register (ZDI_RD_MEM = 20h in the ZDI Register Read Only
Address Space)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
zdi_rd_mem
00h–FFh 8-bit data Read from the memory address indicated by
®
the CPU’s Program Counter. In Z80 Memory mode, 8-
bit data is transferred out from address {MBASE,
PC[15:0]}. In ADL Memory mode, 8-bit data is
transferred out from address PC[23:0].
PS019215-0910
Zilog Debug Interface
eZ80F91 MCU
Product Specification
257
On-Chip Instrumentation
Introduction to On-Chip Instrumentation
On-Chip Instrumentation1 (OCI™) for the eZ80® CPU core enables powerful debugging
features. The OCI provides run control, memory and register visibility, complex break
points, and trace history features.
The OCI employs all of the functions of the Zilog Debug Interface (ZDI) as described in
the ZDI section. It also adds the following debug features:
•
Control via a 4-pin Joint Test Action Group (JTAG) port that conforms to IEEE Stan-
dard 1149.1 (Test Access Port and Boundary Scan Architecture)
•
•
Complex break point trigger functions
Break point enhancements, such as the ability to:
–
–
–
–
Define two break point addresses that form a range
Break on masked data values
Start or stop trace
Assert a trigger output signal
•
•
Trace history buffer
Software break point instruction
There are four sections to the OCI:
•
•
•
•
JTAG interface
ZDI debug control
Trace buffer memory
Complex triggers
This document contains information to activate the OCI for JTAG boundary scan register
operations. For additional information regarding OCI features, or to order OCI debug
tools, contact:
First Silicon Solutions, Inc.
www.fs2.com
1. On-Chip Instrumentation and OCI are trademarks of First Silicon Solutions, Inc.
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
258
OCI Activation
OCI features clock initialization circuitry so that external debug hardware is detected dur-
ing power-up. The external debugger must drive the OCI clock pin (TCK) Low at least
two system clock cycles prior to the end of the RESET to activate the OCI block. If TCK
is High at the end of the RESET, the OCI block shuts down so that it does not draw power
in normal product operation. When the OCI is shut down, ZDI is enabled directly and is
accessed via the clock (TCK) and data (TDI) pins. For more information on ZDI, see Zilog
Debug Interface on page 231.
OCI Interface
There are six dedicated pins on the eZ80F91 for the OCI interface. Four pins—TCK,
TMS, TDI, and TDO—are required for IEEE Standard 1149.1-compliant JTAG ports. A
fifth pin, TRSTn, is optional for IEEE 1149.1 and utilized by the eZ80F91 device. The
TRIGOUT pin provides additional testability features. These six OCI pins are listed in
Table 150.
Table 150. OCI Pins
Symbol
Name
Type
Description
TCK
Clock
Input
Asynchronous to the primary eZ80F91 system clock.
The TCK period must be at least twice the system
clock period. During RESET, this pin is sampled to
select either OCI or ZDI DEBUG modes. If Low
during RESET, the OCI is enabled. If High during
RESET, the OCI is powered down and ZDI DEBUG
mode is enabled. When ZDI DEBUG mode is active,
this pin is the ZDI clock. On-chip pull-up ensures a
default value of 1 (High).
TRSTn
TMS
TAP Reset
Input
Active Low asynchronous reset for the Test Access
Port state register. On-chip pull-up ensures a default
value of 1 (High).
Test Mode Select Input
This serial test mode input controls JTAG mode
selection. On-chip pull-up ensures a default value of
1 (High). The TMS signal is sampled on the rising
edge of the TCK signal.
TDI
Data In
Input
(OCI enabled)
Serial test data input. This pin is input-only when the
OCI is enabled. The input data is sampled on the
rising edge of the TCK signal.
I/O
When the OCI is disabled, this pin functions as the
(OCI disabled) ZDA (ZDI Data) I/O pin. NORMAL mode, following
RESET, configures TDI as an input.
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
259
Table 150. OCI Pins (Continued)
Symbol
Name
Type
Description
TDO
Data Out
Output
The output data changes on the falling edge of the
TCK signal.
TRIGOUT Trigger Output
Output
Generates an active High trigger pulse when valid
OCI trigger events occur. Output is open-drain when
no data is being driven out.
JTAG Boundary Scan
Introduction
This section describes coverage, implementation, and usage of the eZ80F91 boundary
scan register based on the JTAG standard. A working knowledge of the IEEE 1149.1 spec-
ification, particularly Clause 11, is required.
Pin Coverage
All pins are included in the boundary scan chain, except the following:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
TCK
TMS
TDI
TDO
TRSTN
VDD
VSS
PLL_VDD
PLL_VSS
RTC_VDD
XIN
XOUT
RTC_XIN
RTC_XOUT
LOOP_FILT
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
260
Boundary Scan Cell Functionality
The boundary scan cells implemented are analogous to cell BC_1, defined in the Standard
VHDL Package STD_1149_1_2001.
All boundary scan cells are of the type control-and-observe; they provide both controlla-
bility and observability for the pins to which they are connected. For open-drain outputs
and bidirectional pins, this type includes controllability and observability of output
enables.
Chain Sequence and Length
When enabled to shift data, the boundary scan shift register is connected to TDI at the
input line for TRIGOUT and to TDO at PD0. The shift register is arranged so that data is
shifted via the pins starting to the left of the OCI interface pins and proceeding clockwise
around the chip. If a pin features multiple scannable bits (example: bidirectional pins or
open-drain output pins), the data is shifted first into the input signal, then the output, then
the output enable (OEN).
The boundary scan register is 213 bits wide. Table 151 lists the ordering of bits in the shift
register, numbering them in clockwise order.
Table 151. Pin to Boundary Scan Cell Mapping
Pin
Direction Scan Cell No
Pin
Direction Scan Cell No
TRIGOUT
TRIGOUT
TRIGOUT
HALT_SLP
BUSACK
BUSREQ
NMI
Input
Output
OEN
0
1
MII_TxD2
MII_TxD3
MII_COL
MII_CRS
PA7
Output
Output
Input
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
2
Output
Output
Input
3
Input
4
Input
5
PA7
Output
OEN
Input
6
PA7
RESET
RESET_OUT
WAIT
Input
7
PA6
Input
Output
Input
8
PA6
Output
OEN
9
PA6
INSTRD
WR
Output
Output
OEN
10
11
12
13
14
PA5
Input
PA5
Output
OEN
WR
PA5
RD
Output
Input
PA4
Input
MREQ
PA4
Output
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
261
Table 151. Pin to Boundary Scan Cell Mapping (Continued)
Pin
MREQ
IORQ
IORQ
D7
Direction Scan Cell No
Pin
Direction Scan Cell No
Output
Input
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
PA4
PA3
PA3
PA3
PA2
PA2
PA2
PA1
PA1
PA1
PA0
PA0
PA0
PHI
OEN
Input
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Output
Input
Output
OEN
D7
Output
Input
Input
D6
Output
OEN
D6
Output
Input
D5
Input
D5
Output
Input
Output
OEN
D4
D4
Output
Input
Input
D3
Output
OEN
D3
Output
Input
D2
Output
OEN
D2
Output
Input
PHI
D1
SCL
SCL
SDA
SDA
PB7
PB7
PB7
PB6
PB6
PB6
PB5
PB5
PB5
PB4
Input
D1
Output
Input
Output
Input
D0
D0
Output
OEN
Output
Input
D0
CS3
CS2
CS1
CS0
A23
A23
A22
A22
A21
Output
Output
Output
Output
Input
Output
OEN
Input
Output
OEN
Output
Input
Input
Output
OEN
Output
Input
Input
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
262
Table 151. Pin to Boundary Scan Cell Mapping (Continued)
Pin
A21
A20
A20
A19
A19
A18
A18
A17
A17
A16
A16
A16
A15
A15
A14
A14
A13
A13
A12
A12
A11
A11
A10
A10
A9
Direction Scan Cell No
Pin
Direction Scan Cell No
Output
Input
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
PB4
PB4
PB3
PB3
PB3
PB2
PB2
PB2
PB1
PB1
PB1
PB0
PB0
PB0
PC7
PC7
PC7
PC6
PC6
PC6
PC5
PC5
PC5
PC4
PC4
PC4
PC3
PC3
PC3
Output
OEN
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
Output
Input
Input
Output
OEN
Output
Input
Input
Output
Input
Output
OEN
Output
Input
Input
Output
OEN
Output
OEN
Input
Input
Output
OEN
Output
Input
Input
Output
Input
Output
OEN
Output
Input
Input
Output
OEN
Output
Input
Input
Output
Input
Output
OEN
Output
Input
Input
Output
OEN
A9
Output
Input
A8
Input
A8
Output
OEN
Output
OEN
A8
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
263
Table 151. Pin to Boundary Scan Cell Mapping (Continued)
Pin
Direction Scan Cell No
Pin
Direction Scan Cell No
A7
Input
Output
Input
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
PC2
PC2
PC2
PC1
PC1
PC1
PC0
PC0
PC0
PD7
PD7
PD7
PD6
PD6
PD6
PD5
PD5
PD5
PD4
PD4
PD4
PD3
PD3
PD3
PD2
PD2
PD2
PD1
PD1
Input
Output
OEN
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
A7
A6
A6
Output
Input
Input
A5
Output
OEN
A5
Output
Input
A4
Input
A4
Output
Input
Output
OEN
A3
A3
Output
Input
Input
A2
Output
OEN
A2
Output
Input
A1
Input
A1
Output
Input
Output
OEN
A0
A0
Output
OEN
Input
A0
Output
OEN
WP
Input
MII_MDIO
MII_MDIO
MII_MDIO
MII_MDC
MII_RxD3
MII_RxD2
MII_RxD1
MII_RxD0
MII_Rx_DV
MII_Rx_CLK
MII_Rx_ER
Input
Input
Output
OEN
Output
OEN
Output
Input
Input
Output
OEN
Input
Input
Input
Input
Output
OEN
Input
Input
Input
Input
Output
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
264
Table 151. Pin to Boundary Scan Cell Mapping (Continued)
Pin
Direction Scan Cell No
Pin
Direction Scan Cell No
MII_Tx_ER
MII_Tx_CLK
MII_Tx_EN
MII_TxD0
MII_TxD1
Notes
Output
Input
102
103
104
105
106
PD1
PD0
PD0
PD0
OEN
Input
209
210
211
212
Output
Output
Output
Output
OEN
1. The address bits 0–7, 8–15, and 16–23 each share a single output enable. In this table, the output enables are
associated with the LSb that they control.
2. Direction on the data bus is controlled by a single output enable. It is associated in this table with D[0].
3. MREQ, IORQ, INSTRDN, RD, and WR share an output enable; it is associated in this table with WR.
Usage
Boundary scan functionality is utilized by issuing the appropriate Test Access Port (TAP)
instruction and shifting data accordingly. Both of these steps are accomplished using the
JTAG interface. To activate the TAP (see OCI Activation on page 258), the TCK pin must
be driven Low at least two CPU system clock cycles prior to the deassertion of the RESET
pin. Otherwise the OCI-JTAG features are disabled.
As per the IEEE 1149.1 specification, the boundary scan cells capture system I/O on the
rising edge of TCK during the CAPTURE_DR state. This captured data is shifted on the
rising edge of TCK while in the SHIFT_DR state. Pins and logic receive shifted data only
when enabled, and only on the falling edge of TCK during the UPDATE_DR state, after
shifting is completed.
For more information about eZ80F91 boundary scan support, refer to Using BSDL Files
with eZ80® and eZ80Acclaim!® Devices (AN0114).
Boundary Scan Instructions
The eZ80F91 device’s boundary scan architecture supports the following instructions:
•
•
•
•
•
BYPASS (required)
SAMPLE (required)
EXTEST (required)
PRELOAD (required)
IDCODE (optional)
PS019215-0910
On-Chip Instrumentation
eZ80F91 MCU
Product Specification
265
Phase-Locked Loop
Overview
The Phase-Locked-Loop (PLL) is a programmable frequency multiplier that satisfies the
equation SCLK (Hz) = N * FOSC(Hz). Figure 57 displays the PLL block diagram.
System Clock
(FOSC< SCLK < FOSC* N)
PLL_CTL1[0] = PLL Enable
SCLK-MUX
RTC_CLK
(1MHz < FOSC< 10MHz)
x2
Charge
Pump
Off-Chip
Loop Filter
Oscillator
PFD
VCO
x1
RPLL
CPLL1
PLL_CTL0[7:6]
Lock
Detect
CPLL2
PLL_INT
Div N
PLL_CTL0[3:2]
{PLL_DIV_H, PLL_DIV_L}
Figure 57. Phase-Locked Loop Block Diagram
PLL includes seven main blocks as listed below:
•
•
•
•
•
•
•
Phase Frequency Detector
Charge Pump
Voltage Controlled Oscillator
Loop Filter
Divider
MUX/CLK Sync
Lock Detect
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
266
Phase Frequency Detector
The Phase Frequency Detector (PFD) is a digital block. The two inputs are the reference
clock (XTAL oscillator; see On-Chip Oscillators on page 335) and the PLL divider output.
The two outputs drive the internal charge pump and represent the error (or difference)
between the falling edges of the PFD inputs.
Charge Pump
The Charge Pump is an analog block that is driven by two digital inputs from the PFD that
control its programmable current sources. The internal current source contains four
programmable values: 1.5 mA, 1 mA, 500 µA, and 100 µA. These values are selected by
PLL_CTRL1[7:6]. The selected current drive is sinked/sourced onto the loop-filter node
according to the error (or difference) between the falling edges of the PFD inputs. Ideally,
when the PLL is locked, there are no errors (error = 0) and no current is sourced/sinked
onto the loop-filter node.
Voltage Controlled Oscillator
The Voltage Controlled Oscillator (VCO) is an analog block that exhibits an output
frequency proportional to its input voltage. The VCO input is driven from the charge
pump and filtered via the off-chip loop filter.
Loop Filter
The Loop Filter comprises off-chip passive components (usually 1 resistor and 2
capacitors) that filter/integrate charge from the internal charge pump. The filtered node
also drives the VCO input, which creates a proportional frequency output. When PLL is
not used, the Loop Filter pin must not be connected.
Divider
The Divider is a digital, programmable downcounter. The divider input is driven by the
VCO. The divider output drives the PFD. The function of the Divider is to divide the
frequency of its input signal by a programmable factor N and supply the result in its
output.
MUX/CLK Sync
The MUX/CLK Sync is a digital, software-controllable multiplexer that selects between
PLL or the XTAL oscillator as the system clock (SCLK). A PLL source is selected only
after the PLL is locked (via the lock detect block) to allow glitch-free clock switching.
Lock Detect
The Lock Detect digital block analyzes the PFD output for a locked condition. The PLL
block of the eZ80F91 device is considered locked when the error (or difference) between
the reference clock and divided-down VCO is less than the minimum timing lock criteria
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
267
for the number of consecutive reference clock cycles. The lock criteria is selected in the
PLL Control Register, PLL_CTL0[LDS_CTL]. When the locked condition is met, this
block outputs a logic High signal (lock) that interrupts the CPU.
PLL Normal Operation
By default (after system reset) the PLL is disabled and SCLK = XTAL oscillator. Ensuring
proper loop filter, supply voltages and external oscillator are correctly configured, the PLL
is enabled. The SCLK/Timer cannot choose the PLL as its source until the PLL is locked,
as determined by the lock detect block. By forcing the PLL to be locked prior to enabling
the PLL as a SCLK/Timer source, it is assured to be stable and accurate.
Figure 58 displays the programming flow for normal PLL operation.
POR/System
Reset
Execute instructions with
SCLK = XTAL Oscillator
Program:
{PLL Divider}
PLL_DIV_L then PLL_DIV_H
{Charge Pump & Lock criteria}
PLL_CTL0
Enable:
{Interrupts & PLL}
PLL_CTL1
Upon Lock Interrupt:
Set SCLK MUX to PLL (PLL_CTL0)
Disable Lock Interrupt Mask
(PLL_CTL1)
Execute Application Code
Figure 58. Normal PLL Programming Flow
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
268
Power Requirement to the Phase-Locked Loop Function
Regardless of whether or not you chooses to use the PLL module block as a clock source
for the eZ80F91 device, the PLL_VDD (pin 87) must be connected to a VDD supply and
the PLL_VSS (pin 84) must be connected to a VSS supply for proper operation of the
eZ80F91 using any system clock source.
PLL Registers
PLL Divider Control Register—Low and High Bytes
This register is designed such that the 11 bit divider value is loaded into the divider mod-
ule whenever the PLL_DIV_H register is written. Therefore, the procedure must be to
load the PLL_DIV_L register, followed by the PLL_DIV_H register, for the divider to
receive the appropriate value.
The divider is designed such that any divider value less than two is ignored; a value of two
is used in its place.
The LSB of PLL divider N is set via the corresponding bits in the PLL_DIV_L register.
See Table 152 and Table 153 on page 269.
The PLL divider register are written only when the PLL is disabled. A read-back of the
PLL Divider registers returns 0.
Note:
Table 152. PLL Divider Register—Low Bytes (PLL_DIV_L = 005Ch)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
1
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: W = Write only.
Bit
Position
Value
Description
[7:0]
PLL_DIV_L
00h–FFh These bits represent the Low byte of the 11 bit PLL divider
value. The complete PLL divider value is returned by
{PLL_DIV_H, PLL_DIV_L}.
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
269
Table 153. PLL Divider Register—High Bytes (PLL_DIV_H = 005Dh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
W
W
W
W
W
W
W
W
CPU Access
Note: R = Read only; R/W = Read/Write.
Bit
Position
Value
Description
[7:3]
00h
Reserved
[2:0]
PLL_DIV_H
0h–7h These bits represent the High byte of the 11 bit PLL divider
value. The complete PLL divider value is returned by
{PLL_DIV_H, PLL_DIV_L}.
PLL Control Register 0
The charge pump program, lock detect sensitivity, and system clock source selections are
set using this register. A brief description of each of these PLL Control Register 0
attributes is listed below, and further listed in Table 154.
Charge Pump Program (CHRP_CTL)—Selects one of four values of charge pump
current.
Lock Detect Sensitivity (LDS_CTL)—Determines the lock criteria for the PLL.
System Clock Source (CLK_MUX)—Selects the system clock source from a choice of
the external crystal oscillator (XTAL), PLL, or Real-Time Clock crystal oscillator.
Table 154. PLL Control Register 0 (PLL_CTL0 = 005Eh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R
R
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value Description
[7:6]
CHRP_CTL1
00
01
10
11
Charge pump current = 100 µA
Charge pump current = 500 µA
Charge pump current = 1.0 mA
Charge pump current = 1.5 mA
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
270
Bit
Position
Value Description
[5:4]
00
00
01
10
11
00
01
10
11
Reserved
[3:2]
LDS_CTL1
Lock criteria—8 consecutive cycles of 20 ns
Lock criteria—16 consecutive cycles of 20 ns
Lock criteria—8 consecutive cycles of 400 ns
Lock criteria—16 consecutive cycles of 400 ns
System clock source is the external crystal oscillator
[1:0]
CLK_MUX
2
System clock source is the PLL
System clock source is the Real-Time Clock crystal oscillator
Reserved (previous select is preserved)
Notes
1. Bits are programmed only when the PLL is disabled. The PLL is disabled when PLL_CTL1 bit
0 is equal to 0.
2. PLL cannot be selected when disabled or out of lock.
PLL Control Register 1
The PLL is enabled using this register. PLL lock-detect status, the PLL interrupt signals
and the PLL interrupt enables are accessed via this register. A brief description of each of
these PLL Control Register 1 attributes is listed below, and further listed in Table 155 on
page 271.
Lock Status (LCK_STATUS)—The current lock bit out of the PLL is synchronized and
read via this bit.
Interrupt Lock (INT_LOCK)—This signal feeds the interrupt line out of the CLKGEN
module and indicates that a rising edge on the lock signal out of the PLL has been
observed.
Interrupt Unlock (INT_UNLOCK)—This signal feeds the interrupt line out of the clkgen
module and indicates that a falling edge on the lock signal out of the PLL has been
observed.
Interrupt Lock Enable (INT_LOCK_EN)—This signal enables the interrupt lock bit.
Interrupt Unlock Enable (INT_UNLOCK_EN)—This signal enables the interrupt unlock
bit.
PLL Enable (PLL_ENABLE)—Enables/disables the PLL.
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
271
.
Table 155. PLL Control Register 1 (PLL_CTL1 = 005Fh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value Description
[7:6]
00
0
Reserved.
5
PLL is currently out of lock.
PLL is currently locked.
LCK_STATUS
1
4
0
Lock signal from PLL has not risen since last time register was
read.
INT_LOCK
1
0
1
Interrupt generated when PLL enters LOCK mode. Held until
register is read.
3
Lock signal from PLL has not fallen since last time register was
read.
INT_UNLOCK
Interrupt generated when PLL goes out of lock. Held until
register is read.
2
0
1
0
Interrupt generation for PLL locked condition (Bit 4) is disabled.
Interrupt generation for PLL locked condition is enabled.
INT_LOCK_EN
1
Interrupt generation for PLL unlocked condition (Bit 3) is
disabled.
INT_UNLOCK_
EN
1
0
1
Interrupt generation for PLL unlocked condition is enabled.
1
0
PLL is disabled.
PLL_ENABLE
PLL is enabled.
Note
1. PLL cannot be disabled if the CLK_MUX bit of PLL_CTL0[1:0] is set to 01, because the PLL is
selected as the clock source.
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
272
PLL Characteristics
The operating and testing characteristics for the PLL are listed in Table 156.
Not all conditions are tested in production test. The values in Table 156 are for design and
Note:
characterization only.
Table 156. PLL Characteristics
Symbol
Parameter
Test Condition
3.0 < V < 3.6
0.6 < PD_OUT < V – 0.6
PLL_CTL0[7:6] = 11
Min
Typ
Max Units
I
I
I
I
I
I
I
I
High level output current for
CP_OUT pin (programmed
value ± 42%)
–0.86 –1.50 –2.13 mA
oHCP_OUT
oLCP_OUT
oHCP_OUT
oLCP_OUT
oHCP_OUT
oLCP_OUT
oHCP_OUT
oLCP_OUT
DD
DD
Low level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
0.86 1.50 2.13
mA
DD
0.6 < PD_OUT < V – 0.6
PLL_CTL0[7:6] = 11
DD
High level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
–0.42 –1.0 –1.42 mA
DD
0.6 < PD_OUT < V – 0.6
PLL_CTL0[7:6] = 10
DD
Low level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
0.42
1.0
1.42
mA
µA
µA
µA
µA
%
DD
0.6 < PD_OUT <V – 0.6
PLL_CTL0[7:6] = 10
DD
High level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
–210 –500 –710
DD
0.6 < PD_OUT <V – 0.6
PLL_CTL0[7:6] = 01
DD
Low level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
210
500
710
DD
0.6 < PD_OUT <V – 0.6
PLL_CTL0[7:6] = 01
DD
High level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
–42 –100 –142
DD
0.6 < PD_OUT <V – 0.6
PLL_CTL0[7:6] = 00
DD
Low level output current for
CP_OUT pin (programmed
value ± 42%)
3.0 < V <3.6
42
100
142
+15
DD
0.6 < PD_OUT <V – 0.6
PLL_CTL0[7:6] = 00
DD
Match
I
–I
3.0 < V <3.6
–15
OHCP_OUT OLCP_OUT
DD
current match
0.6 < CP_OUT <V – 0.6
DD
PLL_CTL0[7:6] = XX
I
Tristate leakage on CP_OUT CP_OUT tristated
output pin
–1
1
µA
Hz
LCP_OUT
F
Crystal oscillator frequency
PLL_CTL0[5:4] = 01
1 M
10 M
osc
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
273
Table 156. PLL Characteristics (Continued)
Symbol
Parameter
Test Condition
Min
Typ
Max Units
F
VCO frequency
Recommended operating
conditions
50
MHz
vco
G
VCO Gain
Recommended operating
conditions
36
45
120 MHz/
V
vco
D1
SCLK Duty Cycle from PLL or Recommended operating
XTALOSC source
50
55
%
ps
s
conditions
T1A
Lock2
PLL Clock Jitter
F
= 50 MHz. XTALOSC
350
500
VCO
= 10 MHz
PLL Lock-Time
F
VCO
= 50 MHz. XTALOSC
= 3.579 MHz
C
C
= 220 pF, R = 499 ¾,
= 0.056 µF
pll1
pll2
pll
I
High-level Output Current for
XTAL2 pin
V
= V –0.4 V
–0.3
0.6
mA
mA
mA
mA
V
oH1
oH
DD
(XTL)
PLL_CTL0[5:4] = 01
V = 0.4 V
oL
PLL_CTL0[5:4] = 01
V = V –0.4 V
oH
PLL_CTL0[5:4] = 11
V = 0.4 V
oL
PLL_CTL0[5:4] = 11
F = 3.579 MHz
OSC
I
Low-level Output Current for
XTAL2 pin
oL1
(XTL)
I
High-level Output Current for
XTAL2 pin
oH2
DD
(XTL)
I
Low-level Output Current for
XTAL2 pin
oL2
(XTL)
V
(XTL)
Peak-to-peak voltage under
oscillator conditions for
XTAL2 pin
PP3M
Cx1 = 10 pF
Cx2 = 10 pF
V
(XTL)
Peak-to-peak voltage under
oscillator conditions for
XTAL2 pin
F = 10 MHz
OSC
Cx1 = 10 pF
Cx2 = 10 pF
V
PP10M
C
Capacitance measured from T = 25 ºC
XTAL1 pin to GND
pF
pF
pF
xtal1
(package
type)
C
Capacitance measured from T = 25 ºC
XTAL2 pin to GND
xtal2
(package
type)
C
Capacitance measured from T = 25 ºC
loop filter pin to GND
loop
(package
type)
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
274
PS019215-0910
Phase-Locked Loop
eZ80F91 MCU
Product Specification
275
®
eZ80 CPU Instruction Set
Table 157 through Table 166 on page 278 lists the CPU instructions available for use with
the eZ80F91 device. The instructions are grouped by class. For more information, refer to
eZ80® CPU User Manual (UM0077).
Table 157. Arithmetic Instructions
Mnemonic
ADC
ADD
CP
Instruction
Add with Carry
Add without Carry
Compare with Accumulator
Decimal Adjust Accumulator
Decrement
DAA
DEC
INC
Increment
MLT
Multiply
NEG
SBC
SUB
Negate Accumulator
Subtract with Carry
Subtract without Carry
Table 158. Bit Manipulation Instructions
Mnemonic
BIT
Instruction
Bit Test
RES
Reset Bit
Set Bit
SET
Table 159. Block Transfer and Compare Instructions
Mnemonic
CPD (CPDR)
CPI (CPIR)
LDD (LDDR)
LDI (LDIR)
Instruction
Compare and Decrement (with Repeat)
Compare and Increment (with Repeat)
Load and Decrement (with Repeat)
Load and Increment (with Repeat)
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
276
Table 160. Exchange Instructions
Mnemonic
EX
Instruction
Exchange registers
EXX
Exchange CPU Multibyte register banks
Table 161. Input/Output Instructions
Mnemonic
IN
Instruction
Input from I/O
IN0
Input from I/O on Page 0
IND (INDR)
INDRX
Input from I/O and Decrement (with Repeat)
Input from I/O and Decrement Memory Address with Stationary
I/O Address
IND2 (IND2R)
INDM (INDMR)
INI (INIR)
Input from I/O and Decrement (with Repeat)
Input from I/O and Decrement (with Repeat)
Input from I/O and Increment (with Repeat)
INIRX
Input from I/O and Increment Memory Address with Stationary
I/O Address
INI2 (INI2R)
INIM (INIMR)
OTDM (OTDMR)
OTDRX
Input from I/O and Increment (with Repeat)
Input from I/O and Increment (with Repeat)
Output to I/O and Decrement (with Repeat)
Output to I/O and Decrement Memory Address with Stationary
I/O Address
OTIM (OTIMR)
OTIRX
Output to I/O and Increment (with Repeat)
Output to I/O and Increment Memory Address with Stationary
I/O Address
OUT
Output to I/O
OUT0
Output to I/0 on Page 0
OUTD (OTDR)
OUTD2 (OTD2R)
OUTI (OTIR)
Output to I/O and Decrement (with Repeat)
Output to I/O and Decrement (with Repeat)
Output to I/O and Increment (with Repeat)
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
277
Table 161. Input/Output Instructions (Continued)
Mnemonic
OUTI2 (OTI2R)
TSTIO
Instruction
Output to I/O and Increment (with Repeat)
Test I/O
Table 162. Load Instructions
Mnemonic
LD
Instruction
Load
LEA
Load Effective Address
PEA
Push Effective Address
POP
Pop
PUSH
Push
Table 163. Logical Instructions
Mnemonic
AND
Instruction
Logical AND
CPL
Complement Accumulator
Logical OR
OR
TST
Test Accumulator
Logical Exclusive OR
XOR
Table 164. Processor Control Instructions
Mnemonic
CCF
DI
Instruction
Complement Carry Flag
Disable Interrupts
Enable Interrupts
Halt
EI
HALT
IM
Interrupt Mode
No Operation
NOP
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
278
Table 164. Processor Control Instructions (Continued)
Mnemonic
RSMIX
SCF
Instruction
Reset Mixed-Memory Mode Flag
Set Carry Flag
SLP
Sleep
STMIX
Set Mixed-Memory Mode Flag
Table 165. Program Control Instructions
Mnemonic
CALL
CALL cc
DJNZ
JP
Instruction
Call Subroutine
Conditional Call Subroutine
Decrement and Jump if Nonzero
Jump
JP cc
JR
Conditional Jump
Jump Relative
JR cc
RET
Conditional Jump Relative
Return
RET cc
RETI
Conditional Return
Return from Interrupt
Return from Nonmaskable interrupt
Restart
RETN
RST
Table 166. Rotate and Shift Instructions
Mnemonic
RL
Instruction
Rotate Left
RLA
Rotate Left–Accumulator
Rotate Left Circular
Rotate Left Circular–Accumulator
Rotate Left Decimal
Rotate Right
RLC
RLCA
RLD
RR
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
279
Table 166. Rotate and Shift Instructions (Continued)
Mnemonic
RRA
Instruction
Rotate Right–Accumulator
Rotate Right Circular
Rotate Right Circular–Accumulator
Rotate Right Decimal
Shift Left Arithmetic
RRC
RRCA
RRD
SLA
SRA
Shift Right Arithmetic
Shift Right Logical
SRL
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
280
Opcode Map
Table 167 through Table 173 on page 286 list the hex values for each of the eZ80® instruc-
tions.
Table 167. Opcode Map—First Opcode
Legend
Lower Opcode Nibble
4
Upper
Opcode
Nibble
AND
A,H
Mnemonic
A
Second Operand
First Operand
0
Lower Nibble (Hex)
1
LD
2
LD
3
INC
BC
4
INC
B
5
DEC
B
6
LD
B,n
7
8
EX
9
ADD
A
LD
B
DEC
BC
C
INC
C
D
DEC
C
E
F
0
1
2
3
NOP
RLCA
LD RRCA
C,n
BC, (BC),A
Mmn
AF,AF’ HL,BC A,(BC)
DJNZ
d
LD
LD
INC
DE
INC
D
DEC
D
LD
D,n
RLA
DAA
SCF
LD
JR
d
ADD
HL,DE A,(DE)
LD
DEC
DE
INC
E
DEC
E
LD
E,n
RRA
CPL
CCF
LD
DE, (DE),A
Mmn
JR
NZ,d
LD
LD
INC
HL
INC
H
DEC
H
LD
H,n
JR
Z,d
ADD
HL,HL
LD
HL,
(Mmn)
LD
A,
(Mmn)
LD
C,D
LD
E,D
LD
L,D
LD
DEC
HL
INC
L
DEC
L
LD
L,n
HL, (Mmn),
Mmn
LD
HL
LD
JR
INC
INC
DEC
(HL) (HL),n
LD
JR
ADD
DEC
SP
INC
A
DEC
A
LD
A,n
NC,d
SP, (Mmn), SP
(HL)
CF,d HL,SP
Mmn
LD
B,C
LD
D,C
LD
H,C
LD
A
LD
B,D
.SIL
suffix
LD
4
5
6
7
8
9
A
B
C
.SIS
suffix
LD
D,B
LD
LD
B,E
LD
D,E
LD
LD
B,H
LD
D,H
LD
LD
B,L
LD
LD
LD
C,B
LD
E,B
LD
.LIS
suffix
LD
E,C
LD
LD
C,E
.LIL
suffix
LD
LD
C,H
LD
E,H
LD
LD
LD
B,(HL) B,A
LD LD
C,L C,(HL) C,A
LD
E,L
LD
L,L
LD
LD
E,(HL) E,A
LD LD
L,(HL) L,A
LD LD
LD
D,L D,(HL) D,A
LD LD LD
H,L H,(HL) H,A
H,B
LD
H,D
LD
H,E
LD
H,H
LD
L,B
LD
L,C
LD
L,E
LD
L,H
LD
LD
HALT
LD
(HL),B (HL),C (HL),D (HL),E (HL),H (HL),L
(HL),A
ADD
A,B
ADC
A,B
SBC
A,B
XOR
A,B
CP
A,C
ADC
A,C
SBC
A,C
XOR
A,C
CP
A,D
ADC
A,D
SBC
A,D
XOR
A,D
CP
A,E
ADC
A,E
SBC
A,E
XOR
A,E
CP
A,H
ADC
A,H
SBC
A,H
XOR
A,H
CP
A,L
ADC
A,L
SBC
A,L
XOR
A,L
CP
A,(HL) A,A
ADC ADC
A,(HL) A,A
SBC SBC
A,(HL) A,A
XOR XOR
A,(HL) A,A
ADD
A,B
SUB
A,B
AND
A,B
OR
A,B
RET
NZ
ADD
A,C
SUB
A,C
AND
A,C
OR
A,C
POP
BC
ADD
A,D
SUB
A,D
AND
A,D
OR
A,D
JP
NZ,
Mmn
ADD
A,E
SUB
A,E
AND
A,E
OR
A,E
JP
Mmn
ADD
A,H
SUB
A,H
AND
A,H
OR
ADD
A,L
SUB
A,L
AND
A,L
OR
ADD
A,(HL) A,A
SUB SUB
A,(HL) A,A
AND AND
A,(HL) A,A
OR OR
A,(HL) A,A
CP
CP
A,H
A,L
A,B
RET
Z
A,C
RET
A,D
JP
Z,
A,E
A,H
A,L
A,(HL) A,A
CALL PUSH ADD
NZ,
Mmn
RST
00h
CALL CALL ADC RST
Z,
Mmn
See
Table
168
IN
BC
A,n
Mmn
A,n
08h
Mmn
D
RET
NC
POP
DE
JP
NC,
Mmn
OUT CALL PUSH SUB
RST
10h
RET
CF
EXX
JP
CF,
Mmn
CALL
CF,
Mmn
SBC
A,n
RST
18h
See
Table
169
(n),A
NC,
DE
A,n
A,(n)
Mmn
E
F
RET
PO
POP
HL
JP
EX
CALL PUSH AND
RST
20h
RET
PE
JP
(HL)
JP
EX
CALL
XOR RST
See
PO, (SP),HL PO,
Mmn
HL
A,n
PE, DE,HL PE,
Mmn
A,n
28h
Table
170
See
Table
171
Mmn
Mmn
RET
P
POP
AF
JP
P,
DI
CALL PUSH
OR
A,n
RST
30h
RET
M
LD
SP,HL
JP
M,
Mmn
EI
CALL
M,
Mmn
CP
A,n
RST
38h
P,
AF
Mmn
Mmn
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
281
Table 167. Opcode Map—First Opcode (Continued)
Note: n = 8-bit data; Mmn = 16- or 24-bit addr or data; d = 8-bit two’s-complement displacement.
Table 168. Opcode Map—Second Opcode after 0CBh
Legend
Lower Nibble of 2nd Opcode
Upper
Nibble
of Second
Opcode
4
RES
4,H
Mnemonic
A
First Operand
Second Operand
Lower Nibble (Hex)
0
RLC
B
1
RLC
C
2
RLC
D
3
RLC
E
4
RLC
H
5
RLC
L
6
RLC
(HL)
7
RLC
A
8
RRC
B
9
RRC
C
A
RRC
D
B
RRC
E
C
RRC
H
D
RRC
L
E
RRC
(HL)
F
RRC
A
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
RL
B
RL
C
RL
D
RL
E
RL
H
RL
L
RL
(HL)
RL
A
RR
B
RR
C
RR
D
RR
E
RR
H
RR
L
RR
(HL)
RR
A
SLA
B
SLA
C
SLA
D
SLA
E
SLA
H
SLA
L
SLA
(HL)
SLA
A
SRA
B
SRA
C
SRA
D
SRA
E
SRA
H
SRA
L
SRA
(HL)
SRA
A
SRL
B
SRL
C
SRL
D
SRL
E
SRL
H
SRL
L
SRL
(HL)
SRL
A
BIT
0,B
BIT
0,C
BIT
0,D
BIT
0,E
BIT
0,H
BIT
0,L
BIT
0,(HL)
BIT
0,A
BIT
1,B
BIT
1,C
BIT
1,D
BIT
1,E
BIT
1,H
BIT
1,L
BIT
1,(HL)
BIT
1,A
BIT
2,B
BIT
2,C
BIT
2,D
BIT
2,E
BIT
2,H
BIT
2,L
BIT
2,(HL)
BIT
2,A
BIT
3,B
BIT
3,C
BIT
3,D
BIT
3,E
BIT
3,H
BIT
3,L
BIT
3,(HL)
BIT
3,A
BIT
4,B
BIT
4,C
BIT
4,D
BIT
4,E
BIT
4,H
BIT
4,L
BIT
4,(HL)
BIT
4,A
BIT
5,B
BIT
5,C
BIT
5,D
BIT
5,E
BIT
5,H
BIT
5,L
BIT
5,(HL)
BIT
5,A
BIT
6,B
BIT
6,C
BIT
6,D
BIT
6,E
BIT
6,H
BIT
6,L
BIT
6,(HL)
BIT
6,A
BIT
7,B
BIT
7,C
BIT
7,D
BIT
7,E
BIT
7,H
BIT
7,L
BIT
7,(HL)
BIT
7,A
RES
0,B
RES
0,C
RES
0,D
RES
0,E
RES
0,H
RES
0,L
RES
0,(HL)
RES
0,A
RES
1,B
RES
1,C
RES
1,D
RES
1,E
RES
1,H
RES
1,L
RES
1,(HL)
RES
1,A
RES
2,B
RES
2,C
RES
2,D
RES
2,E
RES
2,H
RES
2,L
RES
2,(HL)
RES
2,A
RES
3,B
RES
3,C
RES
3,D
RES
3,E
RES
3,H
RES
3,L
RES
3,(HL)
RES
3,A
RES
4,B
RES
4,C
RES
4,D
RES
4,E
RES
4,H
RES
4,L
RES
4,(HL)
RES
4,A
RES
5,B
RES
5,C
RES
5,D
RES
5,E
RES
5,H
RES
5,L
RES
5,(HL)
RES
5,A
RES
6,B
RES
6,C
RES
6,D
RES
6,E
RES
6,H
RES
6,L
RES
6,(HL)
RES
6,A
RES
7,B
RES
7,C
RES
7,D
RES
7,E
RES
7,H
RES
7,L
RES
7,(HL)
RES
7,A
SET
0,B
SET
0,C
SET
0,D
SET
0,E
SET
0,H
SET
0,L
SET
0,(HL)
SET
0,A
SET
1,B
SET
1,C
SET
1,D
SET
1,E
SET
1,H
SET
1,L
SET
1,(HL)
SET
1,A
SET
2,B
SET
2,C
SET
2,D
SET
2,E
SET
2,H
SET
2,L
SET
2,(HL)
SET
2,A
SET
3,B
SET
3,C
SET
3,D
SET
3,E
SET
3,H
SET
3,L
SET
3,(HL)
SET
3,A
SET
4,B
SET
4,C
SET
4,D
SET
4,E
SET
4,H
SET
4,L
SET
4,(HL)
SET
4,A
SET
5,B
SET
5,C
SET
5,D
SET
5,E
SET
5,H
SET
5,L
SET
5,(HL)
SET
5,A
SET
6,B
SET
6,C
SET
6,D
SET
6,E
SET
6,H
SET
6,L
SET
6,(HL)
SET
6,A
SET
7,B
SET
7,C
SET
7,D
SET
7,E
SET
7,H
SET
7,L
SET
7,(HL)
SET
7,A
Note: n = 8-bit data; Mmn = 16- or 24-bit addr or data; d = 8-bit two’s-complement displacement.
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
282
Table 169. Opcode Map—Second Opcode After 0DDh
Legend
Lower Nibble of 2nd Opcode
Upper
9
LD
SP,IX
Nibble
of Second
Opcode
Mnemonic
F
Second Operand
First Operand
Lower Nibble (Hex)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
LD
(IX+d),
BC
0
LD BC,
(IX+d)
ADD
IX,BC
1
2
3
LD DE,
(IX+d)
ADD
IX,DE
LD
(IX+d),
DE
LD
IX,
Mmn
LD IY,
(IX+d)
LD
(Mmn),
IX
INC
IX
INC
IXH
DEC
IXH
LD
LD HL,
IXH,n (IX+d)
ADD
IX,IX
LD
IX,
(Mmn)
DEC
IX
INC
IXL
DEC
IXL
LD
LD
IXL,n (IX+d),
HL
INC
DEC LD (IX LD IX,
(IX+d) (IX+d) +d),n (IX+d)
ADD
IX,SP
LD
LD
(IX+d), (IX+d),
IY
IX
4
5
LD
B,IXH B,IXL (IX+d)
LD LD LD D,
D,IXH D,IXL (IX+d)
LD LD LD H,
LD
LD B,
LD
LD
LD C,
C,IXH C,IXL (IX+d)
LD LD LD E,
E,IXH E,IXL (IX+d)
LD LD LD L,
6
7
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
IXH,B IXH,C IXH,D IXH,E IXH,IXH IXH,IXL (IX+d) IXH,A IXL,B IXL,C IXL,D IXL,E IXL,IXH IXL,IXL (IX+d) IXL,A
LD
LD
LD
LD
LD
LD
LD
(IX+d),A
LD
A,IXH A,IXL (IX+d)
ADC ADC ADC A,
A,IXH A,IXL (IX+d)
SBC SBC SBC A,
A,IXH A,IXL (IX+d)
XOR XOR XOR A,
A,IXH A,IXL (IX+d)
CP CP CP A,
A,IXH A,IXL (IX+d)
LD
LD A,
(IX+d),B(IX+d),C(IX+d),D(IX+d),E(IX+d),H(IX+d),L
8
ADD
ADD ADD A,
A,IXH A,IXL (IX+d)
9
SUB
A,IXH A,IXL (IX+d)
AND AND AND A,
A,IXH A,IXL (IX+d)
OR OR OR A,
SUB SUB A,
A
B
C
A,IXH A,IXL (IX+d)
Table
172
D
E
F
POP
IX
EX
(SP),IX
PUSH
IX
JP
(IX)
LD
SP,IX
Note: n = 8-bit data; Mmn = 16- or 24-bit addr or data; d = 8-bit two’s-complement displacement.
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
283
Table 170. Opcode Map—Second Opcode After 0EDh
Legend
Lower Nibble of 2nd Opcode
Upper
2
Nibble
of Second
Opcode
SBC
HL,BC
Mnemonic
4
First Operand
Second Operand
Lower Nibble (Hex)
0
IN0
B,(n)
1
2
3
4
TST
A,B
5
6
7
8
9
A
B
C
TST
A,C
D
E
F
LD
(HL),
BC
LD(HL),
DE
0
1
2
3
4
5
6
7
OUT0 LEA
(n),B
LEA
BC,
IY+d
LEA
DE,
IY+d
LD BC, IN0
(HL)
OUT0
BC,
IX+d
C,(n) (n),C
IN0
D,(n) (n),D
OUT0 LEA
TST
A,D
LD DE, IN0
(HL) E,(n)
OUT0
(n),E
TST
A,E
DE,
IX+d
IN0
OUT0 LEA HL LEA HL TST
A,H
LD HL, IN0
OUT0
(n),L
TST
A,L
LD
(HL),
HL
H,(n) (n),H ,IX+d ,IY+d
(HL)
L,(n)
LD IY, LEA IX LEA IY TST
LD IX,
(HL)
IN0
A,(n)
OUT0
(n),A
TST
A,A
LD
LD
(HL)
,IX+d ,IY+d A,(HL)
(HL),IY (HL),
IX
LD
R,A
IN
OUT
SBC LD NEG RETN IM 0
LD
I,A
IN
OUT
ADC
LD
MLT
BC
RETI
LD
B,(BC) (BC),B HL,BC (Mmn),
BC
IN
D,(BC) (BC),D HL,DE (Mmn), IY+d
DE
IBN
C,(C) (C),C HL,BC BC,
(Mmn)
OUT
SBC
LD LEA IX, LEA IY, IM 1
LD
A,I
IN
OUT
ADC
LD
MLT
DE
IM 2
LD
LD
A,R
IX+d
E,(C) (C),E HL,DE DE,
(Mmn)
OUT
SBC
LD
TST
PEA
IX+d
PEA
IY+d
RRD
IN
OUT
ADC
LD
HL,
(Mmn)
LD
SP,
(Mmn)
MLT
HL
RLD
H,(C) (BC),H HL,HL (Mmn), A,n
HL
L,(C) (C),L HL,HL
MB,A A,MB
SBC
HL,SP (Mmn),
SP
LD
TSTIO
n
SLP
IN
OUT
ADC
MLT STMIX RSMIX
SP
A,(C) (C),A HL,SP
8
9
INIM OTIM
INI2
INDM OTDM IND2
INDMR OTDMR IND2R
IND OUTD OUTD2
INIMR OTIMR INI2R
A
B
C
D
E
F
LDI
CPI
INI
OUTI OUTI2
OTIR OTI2R
LDD
CPD
LDIR CPIR
INIR
LDDR CPDR INDR OTDR OTD2R
INDRX OTDRX
INIRX OTIRX
LD
I,HL
LD
HL,I
Note: n = 8-bit data; Mmn = 16- or 24-bit addr or data; d = 8-bit two’s-complement displacement.
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
284
Table 171. Opcode Map—Second Opcode After 0FDh
Legend
Lower Nibble of 2nd Opcode
Upper
9
Nibble
of Second
Opcode
LD
SP,IY
Mnemonic
F
First Operand
Second Operand
Lower Nibble (Hex)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
LD BC,
(IY+d)
LD DE,
(IY+d)
LD HL,
ADD
IY,BC
ADD
IY,DE
ADD
IY,IY
LD (IY
+d),BC
LD (IY
+d),DE
LD (IY
1
2
LD
LD
INC
IY
INC
IYH
DEC
IYH
LD
LD
IY,
DEC
IY
INC
IYL
DEC
IYL
LD
IY,Mmn (Mmn),I
IYH,n (IY+d)
IYL,n +d),HL
Y
LD IX,
(IY+d)
(Mmn)
3
4
5
6
7
8
9
A
B
C
INC
DEC LD (IY LD IY,
ADD
IY,SP
LD (IY LD (IY
+d),IX +d),IY
LD C,
(IY+d) (IY+d) +d),n (IY+d)
LD LD LD B,
B,IYH B,IYL (IY+d)
LD LD LD D,
D,IYH D,IYL (IY+d)
LD LD LD H,
LD
LD
C,IYH C,IYL (IY+d)
LD LD LD E,
E,IYH E,IYL (IY+d)
LD LD LD L,
LD
LD
LD
LD
LD
LD
LD
LD
LD
LD
IYH,B IYH,C IYH,D IYH,E IYH,IYH IYH,IYL (IY+d) IYH,A IYL,B IYL,C IYL,D IYL,E IYL,IYH IYL,IYL (IY+d) IYL,A
LD (IY LD (IY LD (IY LD (IY LD (IY LD (IY
+d),B +d),C +d),D +d),E +d),H +d),L
LD (IY
+d),A
LD
A,IYH A,IYL (IY+d)
ADC ADC ADC A,
A,IYH A,IYL (IY+d)
SBC SBC SBC A,
A,IYH A,IYL (IY+d)
XOR XOR XOR A,
A,IYH A,IYL (IY+d)
CP CP CP A,
A,IYH A,IYL (IY+d)
LD
LD A,
ADD
ADD ADD A,
A,IYH A,IYL (IY+d)
SUB
A,IYH A,IYL (IY+d)
AND AND AND A,
A,IYH A,IYL (IY+d)
OR OR OR A,
SUB SUB A,
A,IYH A,IYL (IY+d)
Table
173
D
E
F
POP
IY
EX
(SP),IY
PUSH
IY
JP
(IY)
LD
SP,IY
Note: n = 8-bit data; Mmn = 16- or 24-bit addr or data; d = 8-bit two’s-complement displacement.
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
285
Table 172. Opcode Map—Fourth Byte After 0DDh, 0CBh, and dd
Legend
Lower Nibble of 4th Byte
Upper
Nibble
of Fourth
Byte
6
BIT
0,(IX+d)
Mnemonic
4
First Operand
Second Operand
Lower Nibble (Hex)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
RLC
(IX+d)
RL
RRC
(IX+d)
RR
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
(IX+d)
SLA
(IX+d)
(IX+d)
SRA
(IX+d)
SRL
(IX+d)
BIT 1,
(IX+d)
BIT 3,
(IX+d)
BIT 5,
(IX+d)
BIT 7,
(IX+d)
RES 1,
(IX+d)
RES 3,
(IX+d)
RES 5,
(IX+d)
RES 7,
(IX+d)
SET 1,
(IX+d)
SET 3,
(IX+d)
SET 5,
(IX+d)
SET 7,
(IX+d)
BIT 0,
(IX+d)
BIT 2,
(IX+d)
BIT 4,
(IX+d)
BIT 6,
(IX+d)
RES 0,
(IX+d)
RES 2,
(IX+d)
RES 4,
(IX+d)
RES 6,
(IX+d)
SET 0,
(IX+d)
SET 2,
(IX+d)
SET 4,
(IX+d)
SET 6,
(IX+d)
Note: d = 8-bit two’s-complement displacement
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
286
Table 173. Opcode Map—Fourth Byte After 0FDh, 0CBh, and dd
Legend
Lower Nibble of 4th Byte
6
Upper
Nibble
of Fourth
Byte
BIT
Mnemonic
4
0,(IY+d)
First Operand
Second Operand
Lower Nibble (Hex)
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
RLC
(IY+d)
RL
RRC
(IY+d)
RR
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
(IY+d)
SLA
(IY+d)
(IY+d)
SRA
(IY+d)
SRL
(IY+d)
BIT 1,
(IY+d)
BIT 3,
(IY+d)
BIT 5,
(IY+d)
BIT 7,
(IY+d)
RES 1,
(IY+d)
RES 3,
(IY+d)
RES 5,
(IY+d)
RES 7,
(IY+d)
SET 1,
(IY+d)
SET 3,
(IY+d)
SET 5,
(IY+d)
SET 7,
(IY+d)
BIT 0,
(IY+d)
BIT 2,
(IY+d)
BIT 4,
(IY+d)
BIT 6,
(IY+d)
RES 0,
(IY+d)
RES 2,
(IY+d)
RES 4,
(IY+d)
RES 6,
(IY+d)
SET 0,
(IY+d)
SET 2,
(IY+d)
SET 4,
(IY+d)
SET 6,
(IY+d)
Note: d = 8-bit two’s-complement displacement
PS019215-0910
eZ80® CPU Instruction Set
eZ80F91 MCU
Product Specification
287
Ethernet Media Access Controller
The Ethernet Media Access Controller (EMAC) is a full-function 10/100 Mbps media
access control module with a Media-Independent Interface (MII). When communicating
with an external PHY device, the eZ80F91 MCU uses the MII to gain access to the
Ethernet network.
Figure 59 displays the EMAC block diagram.
MDIO
TxDMA
MDC
TxD
TxFIFO
TxCLK
TxER
TxEN
COL
CRS
MII Interface
RxD
RxCLK
RxDV
RxD
RxD/CTRL
RxER
RxFIFO
Accept
CTRL
RxDMA
Reject
Figure 59. EMAC Block Diagram
For additional information about the Ethernet protocol and using it with the eZ80F91
MCU, refer to the IEEE 802.3 specification, 1998 edition, Section 22. The eZ80F91 MCU
supports the IEEE 802.3 protocol with the following exception:
Note:
The eZ80F91 MCU does not support the Giga Media Independent Interface (GMII)
referred to in the following sections of the IEEE 802.3 1998 version: section 22.1.5, sec-
tion 22.2.4, section 22.2.4.1.2, section 22.2.4.1.5, and section 22.2.4.1.6.
The EMAC is used for many different applications, including network interface, ethernet
switching, and test equipment designs. The EMAC includes the following blocks:
•
•
Central clock and reset module (not shown in the block diagram).
Host memory interface and transmit/receiver arbiter.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
288
•
•
•
FIFO buffer and DMA control blocks for transmit and receive.
802.3x media access control block.
MII interface management.
The media access control block implements 802.3x flow control functions for both trans-
mit and receive.
The MII management module provides a two-wire control/status path to the MII PHY.
Read and Write communication to and from registers within the PHY is accomplished via
the host interface.
MII PHY is a Physical Layer transceiver device; PHY does not refer to the eZ80F91 sys-
tem clock output pin, PHI.
Note:
The MII management module provides a two-wire control/status path to the MII. Read
and Write communication to and from registers within the PHY is accomplished via the
host interface.
EMAC Functional Description
The EMAC block implements memory, arbiter, and transmit and receive direct memory
access functions, and offers four communication modes: HALF-DUPLEX, FULL-
DUPLEX, NIBBLE, and ENDEC. In HALF-DUPLEX and FULL-DUPLEX modes,
throughput occurs at both 10 Mbps and 100 Mbps speeds. Throughput in ENDEC and
NIBBLE modes occurs at 10 Mbps. A brief description of these four modes are as follows:
10/100 Mbps HALF-DUPLEX Mode— In this mode, data are transferred only in one
direction at a time; that is, one can either transmit or receive, but both cannot occur
simultaneously.
10/100 Mbps FULL-DUPLEX Mode— In this mode, data are transmitted and received at
the same time.
10 Mbps ENDEC Mode— This mode affects the MII interface between the PHY and the
MAC. In ENDEC mode, the RxCLK and TxCLK clocks are bit clocks instead of the nor-
mal nibble clock. In NIBBLE mode, 4 bits are transferred on each clock. In ENDEC
mode, 1 bit is transferred per clock.
For more information on throughput, see EMAC and the System Clock on page 296.
Memory
EMAC memory is the shared Ethernet memory location of the Transmit and Receive buff-
ers. This memory is broken into two parts: the Tx buffer and the Rx buffer. The Transmit
Lower Boundary Pointer Register, EmacTLBP, is the register that holds the starting
address of the Tx buffer. The Boundary Pointer Register, EmacBP, points to the start of the
Rx buffer (end of Tx buffer + 1). The Receive High Boundary Pointer Register,
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
289
EmacRHBP, points to the end of the Rx buffer + 1. The Tx and Receive buffers are
divided into packet buffers of either 256, 128, 64, or 32 bytes. These buffer sizes are
selected by EmacBufSize register bits 7 and 6.
The EmacBlksLeft register contains the number of Receive packet buffers remaining in
the Rx buffer. This buffer is used for software flow control. If the Block_Level is nonzero
(bits 5:0 of the EmacBufSize register), hardware flow control is enabled. If in FULL-
DUPLEX mode, the EMAC transmits a pause control frame when the EmacBlksLeft reg-
ister is less than the Block_Level. In HALF-DUPLEX mode, the EMAC continually trans-
mits a nibble pattern of hexadecimal 5’s to jam the channel.
Four pointers are defined for reading and writing the Tx and Rx buffers. The Transmit
Write Pointer, TWP, is a software pointer that points to the next available packet buffer.
The TWP is reset to the value stored in EmacTLBP. The Transmit Read Pointer, TRP, is a
hardware pointer in the Transmit Direct Memory Access Register, TxDMA, that contains
the address of the next packet to be transmitted. It is automatically reset to the EmacTLBP.
The Receive Write Pointer, RWP, is a hardware pointer in the Receive Direct Memory
Access Register, RxDMA, which contains the storage address of the incoming packet. The
RWP pointer is automatically initialized to the Boundary Pointer registers. The Receive
Read Pointer, RRP, is a software pointer to where the next packet must be read from. The
RRP pointer must be initialized to the Boundary Pointer registers. For the hardware flow
control to function properly, the software must update the hardware RRP (EmacRrp)
pointer whenever the software version is updated. The RxDMA uses RWP and the RRP to
determine how many packet buffers remain in the Rx buffer.
Arbiter
The arbiter controls access to EMAC memory. It prioritizes the requests for memory
access between the CPU, the TxDMA, and the RxDMA. The TxDMA offers two levels of
priority: a high priority when the TxFIFO is less than half full and a Low priority when the
TxFIFO is more than half full. Similarly, the RxDMA offers two levels of priority: a high
priority when the RxFIFO is more than half full and a Low priority when the RxFIFO is
less than half full.
The arbiter determines resolution between the CPU, the RxDMA, and the TxDMA
requests to access EMAC memory. Post writing for CPU Writes results in Zero-Wait-state
write access timing when the CPU assumes the highest priority. CPU Reads require a min-
imum of 1 Wait state and takes more when the CPU does not hold the highest priority. The
CPU Read Wait state is not a user-controllable operation, because it is controlled by the
arbiter. The RxDMA and TxDMA requests are not allowed to occur back-to-back. There-
fore, the maximum throughput rate for the two Direct Memory Access (DMA) ports is 25
Mbps each (one byte every 2 clocks) when the system clock is running at 50MHz. The
rate is reduced to 20 MBps for a 40MHz system clock. The arbiter uses the internal WAIT
signal to add Wait states to CPU access when required. See Table 174 on page 290.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
290
Table 174. Arbiter Priority
Priority Device
Level
Serviced
Flags
0
1
2
3
4
RxDMA High RxFIFO > half full (FAF)
TxDMA High
TxFIFO < half full (FAE)
®
eZ80 CPU
RxDMA Low
TxDMA Low
RxFIFO < half full (FAE)
TxFIFO > half full (FAF)
TxDMA
The TxDMA module moves the next packet to be transmitted from EMAC memory into
the TxFIFO. Whenever the polling timer expires, the TxDMA reads the High status byte
from the Tx descriptor table pointed to by the Transmit Read Pointer, TRP. Polling contin-
ues until the High status Read reaches bit 7, when the Emac_Owns ownership semaphore,
bit 15 of the descriptor table (see Table 178 on page 295) is set to 1. The TxDMA then ini-
tializes the packet length counter with the size of the packet from descriptor table bytes 3
and 4. The TxDMA moves the data into the TxFIFO until the packet length counter down-
counts to zero. The TxDMA then waits for Transmission Complete signal to be asserted to
indicate that the packet is sent and that the Transmit status from the EMAC is valid. The
TxDMA updates the descriptor table status and resets the ownership semaphore, bit 15.
Finally, the Tx_DONE_STAT bit of the EMAC Interrupt Status Register is set to 1, the
address field, DMA_Address, is updated from the descriptor table next pointer, NP (see
Figure 62 on page 294). The High byte of the status is read to determine if the next packet
is ready to be transmitted.
While the TxDMA is filling the TxFIFO, it monitors two signals from the Transmit FIFO
State Machine (TxFifoSM) to detect error conditions and to determine if the packet is to
be retransmitted (TxDMA_Retry asserted) or the packet is aborted (TxDMA_Abort
asserted). If the packet is aborted, the TxDMA updates the descriptor status and moves to
the next packet. If the packet is to be retried, the DMA_Address is reset to the start of the
packet, the packet length counter is reloaded from the descriptor table, bytes 3 and 4, and
the packet is moved into the TxFIFO again. When an abort or retry event occurs, the
TxDMA asserts the appropriate signal to reset the TxFIFO Read and Write pointers which
clears out any data that is in the FIFO. The TxFifoSM negates the TxDMA_Abort or
TxDMA_Retry signal(s) or both when the TxFCWP signal is High. This handshaking
maintains synchronization between the TxDMA and the TxFifoSM.
RxDMA
The RxDMA reads the data from the RxFIFO and stores it in the EMAC memory Receive
buffer. When the end of the packet is detected, the RxDMA reads the next two bytes from
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
291
the RxFIFO and writes them into the Rx descriptor status LSB and MSB. The packet-
length counter is stored into the descriptor table’s Packet Length field, and the descriptor
table’s next pointer is written into the Rx descriptor table. Additionally, the
Rx_DONE_STAT bit in the EMAC Interrupt Status Register is set to 1.
Signal Termination
When the EMAC interface is not used, the MII signals must be terminated as listed in
Table 175. Terminated pins are either left unconnected (float) or tied to ground.
MDIO is controlled by the MDC output signal. When the EMAC is not being used, these
two pins are not driven. The RX_DV, RX_ER, and RXD[3:0] inputs are controlled by the
rising edge of the RX_CLK input signal. When RX_CLK is tied to Ground, these pins do
not affect the EMAC. The TX_EN, TX_ER, and TXD[3:0] outputs are controlled by the
rising edge of the TX_CLK input signal. When TX_CLK is tied to Ground, these pins do
not affect the EMAC. The CRS and COL input pins have no relationship to the clock, and
therefore must be placed into nonactive states and tied to Ground.
Table 175. MII Signal Termination When EMAC is Not Used
Termination
Signal
MDIO
Pin Type
Bidirectional
Output pin
Input pin
Direction
Float
MDC
Float
RX_DV
CRS
Float
Input pin
Ground
Ground
Float
RX_CLK
RX_ER
RXD[3:0]
COL
Input pin
Input pin
Input pins
Input pin
Float
Ground
Ground
Float
TX_CLK
TX_EN
TXD[3:0]
TX_ER
Input pin
Output pin
Output pins
Output pin
Float
Float
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
292
EMAC Interrupts
Eight different sources of interrupts from the EMAC are listed in Table 176.
Table 176. EMAC Interrupts
Interrupt
Description
EMAC System Interrupts
Transmit State Machine Error
Bit 7 (TxFSMERR_STAT) of the EMAC Interrupt Status Register
(EMAC_ISTAT). A Transmit State Machine Error must not occur.
However, if this bit is set, the entire transmitter module must be
reset.
MIIMGT Done
Bit 6 (MGTDONE_STAT) of the Interrupt Status Register
(EMAC_ISTAT). This bit is set when communicating to the PHY
over the MII during a Read or Write operation.
Receive Overrun
Bit 2 (Rx_OVR_STAT) of the Interrupt Status Register
(EMAC_ISTAT). If this bit is set, all incoming packets are ignored
until this bit is cleared by software.
EMAC Transmitter Interrupts
Transmit Control Frame
Transmit Control Frame = Bit 1 (Tx_CF_STAT) of the Interrupt
Status Register (EMAC_ISTAT). Denotes when control frame
transmission is complete.
Transmit Done
Bit 0 (Tx_DONE_STAT) of the Interrupt Status Register
(EMAC_ISTAT). Denotes when packet transmission is complete.
EMAC Receiver Interrupts
Receive Packet
Bit 5 (Rx_CF_STAT) of the Interrupt Status Register
(EMAC_ISTAT). Denotes when packet reception is complete.
Receive Pause Packet
Receive Done
Bit 4 (Rx_PCF_STAT) of the Interrupt Status Register
(EMAC_ISTAT). Denotes when pause packet reception is
complete.
Bit 3 (Rx_DONE_STAT) of the Interrupt Status Register
(EMAC_ISTAT). Denotes when packet reception is complete.
EMAC Shared Memory Organization
Internal Ethernet SRAM shares memory with the CPU. This memory is divided into the
Transmit buffer and the Receive buffer by defining three registers, as listed below.
•
•
Transmit Lower Boundary Pointer (TLBP)—this register points to the start of the
Transmit buffer in the internal Ethernet shared memory space.
Boundary Pointer (BP)—this register points to the start of the Receive buffer.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
293
•
Receive High Boundary Pointer (RHBP)—this register points to the end of the Receive
buffer + 1.
Figure 60 displays the internal Ethernet shared memory.
Upper Memory Address
RHBP
BP
Rx Buffer
Tx Buffer
TLBP
Lower Memory Address
Figure 60. Internal Ethernet Shared Memory
The Transmit and Receive buffers are subdivided into packet buffers of 32, 64, 128, or 256
bytes in size. The packet buffer size is set in bits 7 and 6 of the EmacBufSize register. An
Ethernet packet accommodate multiple packet buffers. First, however, a brief listing of the
contents of a typical Ethernet packet is in order. See Table 177.
Table 177. Ethernet Packet Contents
Byte Range
Bytes 0–5
Contents
MAC destination address.
MAC source address.
Length/Type field.
MAC Client Data.
Bytes 6–11
Bytes 12–13
Bytes 14–n
Bytes (n+1)–(n+4)
Frame Check Sequence.
At the start of each packet is a descriptor table that describes the packet. Each actual
Ethernet packet follows the descriptor table as displayed in Figure 61 on page 294.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
294
Offset
Ethernet
Packet
0007h
Descriptor
Table
TWP
0000h
Figure 61. Descriptor Table
For an official description of an Ethernet packet, refer to IEEE 802.3 specification, Figure
3-1.
Note:
The descriptor table contains three entries: the next pointer (NP), the packet size
(Pkt_Size), and the packet status (Stat), as displayed in Figure 62.
Offset
Stat
0005h
Pkt_Size
0003h
NP
TWP
0000h
Figure 62. Descriptor Table Entries
NP is a 24-bit pointer to the start of the next packet. Pkt_Size contains the number of bytes
of data in the Ethernet packet, including the four CRC bytes, but does not contain the
seven descriptor table bytes. Stat contains the status of the packet. Stat differs for Transmit
and Receive packets. See Table 178 on page 295 and Table 179 on page 295.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
295
Table 178. Transmit Descriptor Status
Bit
15
14
13
12
11
10
Name
Description
®
TxOwner
TxAbort
TxBPA
0 = Host (eZ80 ) owns, 1 = EMAC owns.
1 = Packet aborted (not transmitted).
1 = Back pressure applied.
TxHuge
TxLOOR
TxLCError
1 = Packet size is very large (Pkt_Size > EmacMaxf).
1 = Type/Length field is out of range (larger than 1518 bytes).
1 = Type/Length field is not a Type field and it does not match the
actual data byte length of the Ethernet packet. The data byte length is
the number of bytes of data in the Ethernet packet between the Type/
Length field and the FCS.
9
TxCrcError
1 = The packet contains an invalid FCS (CRC). This flag is set when
CRCEN = 0 and the last 4 bytes of the packet are not the valid FCS.
8
7
TxPktDeferred
TxXsDfr
1 = Packet is deferred.
1 = Packet is excessively deferred. (> 6071 nibble times in 100BaseT
or 24,287 bit times in 10BaseT).
6
5
TxFifoUnderRun
TxLateCol
1 = TxFIFO experiences underrun. Check the TxAbort bit to see if the
packet is aborted or retried.
1 = A late collision occurs. Collision is detected at a byte count >
EmacCfg2[5:0]. Collisions detected before the byte count reaches
EmacCfg2[5:0] are early collisions and retried.
4
TxMaxCol
1 = The maximum number of collisions occurs. #Collisions >
EmacCfg3[3:0]. These packets are aborted.
[3:0] TxNumberOfCollisions
This field contains the number of collisions that occur while transmitting
the packet.
Table 179. Receive Descriptor Status
Bit
15
14
13
Name
Description
RxOK
1 = Packet received intact.
1 = An odd number of nibbles is received.
1 = The CRC (FCS) is in error.
RxAlignError
RxCrcError
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
296
Table 179. Receive Descriptor Status (Continued)
Bit
Name
Description
12
RxLongEvent
1 = A Long or Dropped Event occurs. A Long Event is when a packet
over 50,000 bit times occurs. A Dropped Packet occurs if the minimum
interpacket gap is not met, the preamble is not pure, and the
EmacCfg3[PUREP] bit is set, or if a preamble over 11 bytes in length is
detected and the EmacCfg3[LONGP] bit is set to 1.
11
10
9
RxPCF
1 = The packet is a pause control frame.
1 = The packet is a control frame.
RxCF
RxMcPkt
RxBcPkt
RxVLAN
RxUOpCode
1 = The packet contains a multicast address.
1 = The packet contains a broadcast address.
1 = The packet is a VLAN packet.
8
7
6
1 = An unsupported opcode is indicated in the opcode field of the
Ethernet packet.
5
4
RxLOOR
1 = The Type/Length field is out of range (larger than 1518 bytes).
RxLCError
1 = Type/Length field is not a Type field and it does not match the
actual data byte length of the Ethernet packet. The data byte length is
the number of bytes of data in the Ethernet packet between the Type/
Length field and the FCS.
3
2
RxCodeV
RxCEvent
1 = A code violation is detected. The PHY asserts Rx error (RxER).
1 = A carrier event is previously seen. This event is defined as Rx error
RxER = 1, receive data valid (RxDV) = 0 and receive data (RxD) = Eh.
1
0
RxDvEvent
RxOVR
1 = A receive data (RxDV) event is previously seen. Indicates that the
last Receive event is not long enough to be a valid packet.
1 = A Receive overrun occurs in this packet. An overrun occurs when
all of the EMAC Receive buffers are in use and the Receive FIFO is full.
The hardware ignores all incoming packets until the EmacIStat
Register [Rx_Ovr] bit is cleared by the software. There is no indication
as to how many packets are ignored.
EMAC and the System Clock
Effective Ethernet throughput in any given system is dependent upon factors such as sys-
tem clock speed, network protocol overhead, application complexity, and network traffic
conditions at any given moment. The following information provides a general guideline
about the effects of system clock speed on Ethernet operation.
The eZ80F91 MCU's EMAC block performs a synchronous function that is designed to
operate over a wide range of system clock frequencies. To understand its maximum data
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
297
transfer capabilities at certain system operating frequencies, you must first understand the
internal data bus bandwidth that is required under ideal conditions.
For 10BaseT Ethernet connectivity, the data rate is 10 Mbps, which equates to 1.25 Mbps.
If the eZ80F91 MCU is operating in FULL-DUPLEX mode over 10BaseT, the data rate for
RX data and TX data is 1.25Mbps. Because raw data transfers at this rate consume a cer-
tain amount of CPU bandwidth, the CPU must support traffic from both directions as well
as operate at a minimum clock frequency of (1.25 + 1.25) * 2 = 5MHz while transferring
Ethernet packets to and from the physical layer.
Similarly, for 100BaseT Ethernet, the data rate is 100 Mbps, which equates to 12.5 Mbps.
If the eZ80F91 MCU is operating in FULL-DUPLEX mode over 100BaseT, the data rate
for RX data and TX data is 12.5Mbps. Because raw data transfers at this rate consume a
certain amount of CPU bandwidth, the CPU must support traffic from both directions as
well as operate at a minimum clock frequency of (12.5 + 12.5) x 2 = 50 MHz while trans-
ferring Ethernet packets to and from the physical layer. Consequently, 50 MHz is the min-
imum system clock speed that the eZ80® CPU requires to sustain EMAC data transfers
while not including any software overhead or additional eZ80 tasks.
The FIFO functionality of the EMAC operates at any frequency as long as the user appli-
cation avoids overrun and underrun errors via higher-level flow control. Actual applica-
tion requirements will dictate Ethernet modes of operation (FULL-DUPLEX, HALF-
DUPLEX, etc.). Because each user and application is different, it becomes your responsi-
bility to control the data flow with these parameters. Under ideal conditions, the system
clock will operate somewhere between 5 MHz and 50 MHz to handle the EMAC data
rates.
EMAC Operation in HALT Modes
When the CPU is in HALT mode, the eZ80F91 device’s EMAC block cannot be disabled
as other peripherals. Upon receipt of an Ethernet packet, a maskable Receive interrupt is
generated by the EMAC block, just as it would be in a non-halt mode. Accordingly, the
processor wakes up and continues with the user-defined application.
EMAC Registers
After a system reset, all EMAC registers are set to their default values. Any Writes to
unused registers or register bits are ignored and reads return a value of 0. For compatibil-
ity with future revisions, unused bits within a register must always be written with a value
of 0. Read/Write attributes, reset conditions, and bit descriptions of all of the EMAC reg-
isters are provided in this section.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
298
EMAC Test Register
The EMAC Test Register allows test functionality of the EMAC block. Available test
modes are defined for bits [6:0]. See Table 180.
Table 180. EMAC Test Register (EMAC_TEST = 0020h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write, R = Read Only.
Bit
Position
Value
Description
7
0
0
1
0
1
0
1
Reserved.
6
FIFO test mode disabled—Normal operation.
FIFO test mode enabled.
TEST_FIFO
5
Select the Receive FIFO when FIFO test mode is enabled.
Select the Transmit FIFO when FIFO test mode is enabled.
Normal operation.
TxRx_SEL
4
SSTC
Short Cut Slot Timer Counter. Slot time is shortened to
speed up simulation.
3
0
1
0
1
0
1
0
1
Normal operation.
SIMR
Simulation Reset.
2
Normal operation.
FRC_OVR_ERR
Force Overrun error in Receive FIFO.
Normal operation.
1
FRC_UND_ERR
Force Underrun error in Transmit FIFO.
Normal operation.
0
LPBK
EMAC Transmit interface is looped back into EMAC Receive
interface.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
299
EMAC Configuration Register 1
The EMAC Configuration Register 1 allows control of the padding, autodetection, cyclic
redundancy checking (CRC) control, full-duplex, field length checking, maximum packet
ignores, and proprietary header options. See Table 181.
Table 181. EMAC Configuration Register 1 (EMAC_CFG1 = 0021h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
7
0
No padding. Assume all frames presented to EMAC have
proper length.
PADEN
1
EMAC pads all short frames by adding zeroes to the end of the
data field. This bit is used in conjunction with ADPADN and
VLPAD.
6
0
1
Disable autodetection.
ADPADN
Enable frame detection by comparing the two bytes following
the source address with 0x8100 (VLAN Protocol ID) and pad
accordingly. This bit is ignored if PADEN is cleared to 0.
5
0
1
Do not pad all short frames.
VLPAD
EMAC pads all short frames to 64 bytes and append a valid
CRC. This bit is ignored if PADEN is cleared to 0.
4
0
1
0
1
0
1
Do not append CRC.
CRCEN
Append CRC to every frame regardless of padding options.
HALF-DUPLEX mode. CSMA/CD is enabled.
Enable FULL-DUPLEX mode. CSMA/CD is disabled.
Ignore the length field within Transmit/Receive frames.
3
FULLD
2
FLCHK
Both Transmit and Receive frame lengths are compared to the
length/type field. If the length/type field represents a length
then the frame length check is performed.
1
0
1
Limit the Receive frame-size to the number of bytes specified
in the MAXF[15:0] field.
HUGEN
Allow unlimited sized frames to be received. Ignore the
MAXF[15:0] field.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
300
Bit
Position
Value
Description
0
0
1
No proprietary header. Normal operation.
DCRCC
Four bytes of proprietary header, ignored by CRC, exists on
the front of IEEE 802.3 frames.
Table 182 lists the results of different settings for bits [7:4] of EMAC Configuration Reg-
ister 1.
Table 182. CRC/PAD Features of EMAC Configuration Register
ADPADN VLPADN PADEN CRCEN Result
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
No pad or CRC appended.
CRC appended.
Pad to 60 bytes if necessary; append CRC (min. size = 64).
Pad to 60 bytes if necessary; append CRC (min. size = 64).
No pad or CRC appended.
CRC appended.
Pad to 64 bytes if necessary, append CRC (min. size = 68).
Pad to 64 bytes if necessary, append CRC (min. size = 68).
No pad or CRC appended.
CRC appended.
If VLAN not detected, pad to 60, add CRC.
If VLAN detected, pad to 64, add CRC.
1
0
1
1
If VLAN not detected, pad to 60, add CRC.
If VLAN detected, pad to 64, add CRC.
1
1
1
1
1
1
0
0
1
0
1
0
No pad or CRC appended.
CRC appended.
If VLAN not detected, pad to 60, add CRC.
If VLAN detected, pad to 64, add CRC.
1
1
1
1
If VLAN not detected, pad to 60, add CRC.
If VLAN detected, pad to 64, add CRC.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
301
EMAC Configuration Register 2
The EMAC Configuration Register 2 controls the behavior of the back pressure and late
collision data from the Descriptor table. See Table 183.
Table 183. EMAC Configuration Register 2 (EMAC_CFG2 = 0022h)
Bit
7
6
5
4
3
2
1
0
0
0
1
1
0
1
1
1
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
7
0
Use normal back-off algorithm prior to transmitting packet. No
back pressure applied.
BPNB
1
After incidentally causing a collision during back pressure, the
EMAC immediately (that is, no back-off) retransmits the packet
without back-off, which reduces the chance of further collisions
and ensures that the Transmit packets are sent.
6
0
1
Enable exponential back-off.
NOBO
The EMAC immediately retransmits following a collision rather
than use the binary exponential backfill algorithm, as specified
in the IEEE 802.3 specification.
[5:0]
LCOL
00h–3Fh Sets the number of bytes after Start Frame Delimiter (SFD) for
which a late collision occurs. By default, all late collisions are
aborted.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
302
EMAC Configuration Register 3
The EMAC Configuration Register 3 controls preamble length and value, excessive defer-
ment, and the number of retransmission tries. See Table 184.
Table 184. EMAC Configuration Register 3 (EMAC_CFG3 = 0023h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
1
1
1
1
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
7
0
The EMAC allows any preamble length as per the IEEE 802.3
specification.*
LONGP
1
The EMAC only allows Receive packets that contain preamble
fields less than 12 bytes in length.*
6
0
1
No preamble error checking is performed.
PUREP
The EMAC verifies the content of the preamble to ensure that it
contains a value of 55h and that it is error-free. Packets
containing an errored preamble are discarded.
5
0
1
The EMAC aborts when the excessive deferral limit is reached.
XSDFR
The EMAC defers to the carrier indefinitely as per the IEEE
802.3 specification.
4
0
1
Disable 10 Mbps ENDEC mode.
Enable 10 Mbps ENDEC mode.
BITMD
[3:0]
RETRY
0h–Fh A programmable field specifying the number of retransmission
attempts following a collision before aborting the packet due to
excessive collisions.
Note: IEEE 802.3 specifies a minimum of 56 bits of preamble. A maximum number of bits is not de-
fined. For details, see the IEEE 802.3 Specification, Section 7.2.3.2.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
303
EMAC Configuration Register 4
The EMAC Configuration Register 4 controls pause control frame behavior, back
pressure, and receive frame acceptance. See Table 185.
Table 185. EMAC Configuration Register 4 (EMAC_CFG4 = 0024h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
Description
7
0
0
1
Reserved.
6
Do not transmit a pause control frame.
TPCF
Transmit pause control frame (FULL-DUPLEX mode). TPCF
continually sends pause control frames until negated.
5
0
1
Disable back pressure.
THDF
EMAC asserts back pressure on the link. Back pressure
causes preamble to be transmitted, raising carrier sense
(HALF-DUPLEX mode).
4
0
1
Only accept frames that meet preset criteria (that is, address,
CRC, length, etc.).
PARF
All frames are received regardless of address, CRC, length,
etc.
3
0
1
0
1
0
1
0
1
EMAC ignores received pause control frames.
EMAC acts upon pause control frames received.
PAUSE control frames are not allowed to be transmitted.
PAUSE control frames are allowed to be transmitted.
Do not force a pause condition.
RxFC
2
TxFC
1
TPAUSE
Force a pause condition while this bit is asserted.
EMAC receiver disabled.
0
RxEN
EMAC receiver enabled.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
304
EMAC Station Address Register
The EMAC Station Address register is used for two functions. In the address recogni-
tion logic for Receive frames, EMAC_STAD_0–EMAC_STAD_5 are matched against
the sixth byte Destination Address (DA) field of the Receive frame. EMAC_STAD_0 is
matched against the first byte of the Receive frame, and EMAC_STAD_5 is matched
against the sixth byte of the Receive frame. Bit 0 of EMAC_STAD_0 (STAD[40]) is
matched against the first bit (Unicast/Multicast bit) of the first byte of the Receive
frame. This bit ordering is used to logically map the PE-MACMII station address as
illustrated below.
EMAC_STAD0[7:0] contains STAD[47:40]
....
....
EMAC_STAD5[7:0] contains STAD[7:0]
The second function of the EMAC Station Address registers is to provide the Source
Address (SA) field of Transmit Pause frames when these frames are transmitted by the
EMAC. EMAC_STAD_0 provides the first byte of the 6 byte SA field and
EMAC_STAD_5 provides the final byte of the SA field in order of transmission. The LSB
is the first byte sent out. The EMAC Station Address register is listed in Table 186.
Table 186. EMAC Station Address Register (EMAC_STAD_0 = 0025h, EMAC_STAD_1 =
0026h, EMAC_STAD_2 = 0027h, EMAC_STAD_3 = 0028h, EMAC_STAD_4 = 0029h,
EMAC_STAD_5 = 002Ah)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
EMAC_STAD_0 Reset
EMAC_STAD_1 Reset
EMAC_STAD_2 Reset
EMAC_STAD_3 Reset
EMAC_STAD_4 Reset
EMAC_STAD_5 Reset
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
305
Bit
Position
Value
Description
[7:0]
EMAC_STAD_x
00h–FFh This 48-bit station address comprises {EMAC_STAD_5,
EMAC_STAD_4, EMAC_STAD_3, EMAC_STAD_2,
EMAC_STAD_1, EMAC_STAD_0}.
EMAC Transmit Pause Timer Value Register—Low and High Bytes
The Low and High bytes of the EMAC Transmit Pause Timer Value Register are inserted
into outgoing pause control frames. See Table 187 and Table 188.
Table 187. EMAC Transmit Pause Timer Value Register—Low Byte (EMAC_TPTV_L = 002Bh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_TPTV_L
00h–FFh The 16-bit value, {EMAC_TPTV_H, EMAC_TPTV_L}, is
inserted into outgoing pause control frames as the pause
timer value upon asserting TPCF.
Table 188. EMAC Transmit Pause Timer Value Register—High Byte (EMAC_TPTV_H = 002Ch)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_TPTV_H
00h–FFh The 16-bit value, {EMAC_TPTV_H, EMAC_TPTV_L}, is
inserted into outgoing pause control frames as the pause
timer value upon asserting TPCF.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
306
EMAC Interpacket Gap
EMAC Interpacket Gap Overview
Interpacket Gap (IPG) is measured between the last nibble of the frame check sequence
(FCS) and the first nibble of the preamble of the next packet. Three registers are available
to fine tune the IPG, the EMAC_IPGT, EMAC_IPGR1, and the EMAC_IPGR2. The first
register EMAC_IPGT determines the back-to-back Transmit IPG. The other two registers
determine the non-back-to-back IPG in two parts. Table 189 lists the values for the
EMAC_IPGT and the corresponding IPGs for both FULL-DUPLEX and HALF-DUPLEX
modes.
Table 189. EMAC_IPGT Back-to-Back Settings for Full- and Half-Duplex Modes
MII, RMII/SMII, PMD
(100 Mbps)
MII, RMII/SMII
(10 Mbps)
ENDEC Mode
(10 Mbps)
Clock Period = 40 ns
IPGT[6:0]
Clock Period = 400 ns
IPGT[6:0]
Clock Period = 100 ns
IPGT[6:0]
Half
Duplex
Full
Duplex
Interpacket
Half
Duplex
Full
Duplex
Interpacket
Half
Duplex
Full
Duplex
Interpacket
Gap
Gap
1.2 µs
4.4 µs
6.0 µs
7.5 µs
9.6 µs
14.0 µs
Gap
1.9 µs
2.7 µs
3.5 µs
6.7 µs
9.6 µs
13.0 µs
0Dh
0Bh
0Ch
10h
15h
20h
0.12µs
0.44 µs
0.60 µs
0.76 µs
0.96 µs
1.40 µs
00h
08h
0Ch
10h
15h
20h
10h
18h
20h
40h
5Dh
20h
*12h
12h
5Ah
Note: *The IEEE 802.3, 802.3(u) minimum values are shaded.
The equations for back-to-back Transmit IPG are determined by the following:
FULL-DUPLEX Mode (3 clocks + IPGT clocks) * clock period = IPG
HALF-DUPLEX Mode (6 clocks + IPGT clocks) * clock period = IPG
Table 190 on page 307 lists the IPGR2 settings for the non-back-to-back packets.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
307
Table 190. EMAC_IPGT Non-Back-to-Back Settings for Full- /Half-Duplex Modes
MII, RMII/SMII, PMD
(100 Mbps)
MII, RMII/SMII
(10 Mbps)
ENDEC Mode
(10 Mbps)
Clock Period = 40 ns
Clock Period = 400 ns
Clock Period = 100 ns
IPGR2[6:0]
Interpacket
Gap
IPGR2[6:0]
Interpacket
Gap
IPGR2[6:0]
Interpacket
Gap
00h
10h
*12h
20h
40h
7Fh
0.24 µs
0.88 µs
0.96 µs
1.52 µs
2.80 µs
5.32 µs
00h
10h
12h
20h
40h
7Fh
2.4 µs
8.8 µs
00h
10h
20h
40h
5Ah
7Fh
0.6 µs
2.2 µs
3.8 µs
7.0 µs
9.6 µs
13.3 µs
9.6 µs
15.2 µs
28.0 µs
53.2 µs
Note: *The IEEE 802.3, 802.3(u) minimum values are shaded.
A non-back-to-back Transmit IPG is determined by the following formula:
(6 clocks + IPGR2 clocks) * clock period = IPG
The difference in values between Table 189 on page 306 and Table 190 is due to the
asynchronous nature of the Carrier Sense (CRS). The CRS must undergo a 2-clock
synchronization before the internal Tx state machine detects it. This synchronization
equates to a 6-clock intrinsic delay between packets instead of the 3-clock intrinsic delay
in the back-to-back packet mode. More information covering this topic is found in the
IEEE 802.3/4.2.3.2.1 Carrier Deference section.
EMAC Interpacket Gap Register
The EMAC Interpacket Gap (IPG) is a programmable field representing the IPG between
back-to-back packets. It is the IPG parameter used in FULL-DUPLEX and HALF-
DUPLEX modes between back-to-back packets. Set this field to the appropriate number
of IPG bytes. The default setting of 15hrepresents the minimum IPG of 0.96 µs
(at 100 Mbps) or 9.6 s (at 10 Mbps). See Table 191.
Table 191. EMAC Interpacket Gap Register (EMAC_IPGT = 002Dh)
Bit
7
6
5
4
3
2
1
0
0
0
0
1
0
1
0
1
Reset
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
308
Bit
Position
Value
Description
7
0
Reserved.
[6:0]
00h–7Fh The number of bytes of IPG.
IPGT
EMAC Non-Back-To-Back IPG Register—Part 1
Part 1 of the EMAC non-back-to-back IPG Register is a programmable field representing
the optional carrier sense window referenced in IEEE 802.3/4.2.3.2.1 Carrier Deference. If
a carrier is detected during the timing of IPGR1, the EMAC defers to the carrier. If, how-
ever, the carrier becomes active after IPGR1, the EMAC continues timing for IPGR2 and
transmits, knowingly causing a collision. This collision acts to ensure fair access to the
medium. Its range of values is 00hto IPGR2. See Table 192. The default setting of 0Ch
represents the Carrier Sense Window Referencing depicted tin IEEE 802.3, Section
4.2.3.2.1.
Table 192. EMAC Non-Back-To-Back IPG Register—Part 1 (EMAC_IPGR1 = 002Eh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
1
1
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write
Bit
Position
Value
Description
7
0
Reserved.
[6:0]
IPGR 1
00h–
7Fh
This is a programmable field representing the optional carrier
sense window referenced in IEEE 802.3/4.2.3.2.1 Carrier
Deference.
EMAC Non-Back-To-Back IPG Register—Part 2
Part 2 of the EMAC non-back-to-back IPG Register is a programmable field representing
the non-back-to-back IPG. Its default is 12h, which represents the minimum IPG of
0.96 µs at 100 Mbps or 9.6 µs at 10 Mbps. See Table 193 on page 309.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
309
Table 193. EMAC Non-Back-To-Back IPG Register—Part 2 (EMAC_IPGR2 = 002Fh)
Bit
7
6
5
4
3
2
1
0
0
0
0
1
0
0
1
0
Reset
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
Description
7
0
Reserved.
[6:0]
IPGR2
00h–7Fh This bit range is a programmable field representing the non-
back-to-back interpacket gap.
EMAC Maximum Frame Length Register—Low and High Bytes
The 16-bit field resets to 0600h, which represents a maximum Receive frame of 1536
bytes. An untagged maximum size Ethernet frame (packet) is 1518 bytes. A tagged frame
adds four bytes for a total of 1522 bytes. If a shorter maximum length restriction is more
appropriate, program this field. See Table 194 and Table 195 on page 310.
The default value of 1536 bytes is large enough to cover the largest Ethernet packet, which
contains 14 bytes of Ethernet header, 1500 bytes of MAC client data, plus 4 bytes of CRC
for a total of 1518 maximum bytes. This value is also large enough to cover VLAN frames
with prepended headers up to 18 bytes.
Note:
VLAN frames have a proprietary header prepended to the Ethernet packet. Setting the
DCRCC bit in EMAC_CFG1 will exclude the first 4 bytes—the proprietary header—from
the CRC calculation. For VLAN packets, the maximum frame length is 1522, 4 more than
for normal Ethernet packets due to the 4 byte prepended header. Normal packets feature a
12 byte header before the MAC client data. For more information about this topic, refer to
Figure 3-1 of the IEEE 802.3 specification.
If a proprietary header is allowed, this field must be adjusted accordingly. For example, if
12 byte headers are prepended to frames, MAXF must be set to 1524 bytes to allow the
maximum VLAN tagged frame plus the 12 byte header. The default value of 1536 is large
enough to cover the largest Ethernet packet: 14 bytes of Ethernet header, 1500 bytes of
MAC client data, plus 4 bytes of CRC for a total of 1518 bytes maximum. It is also large
enough to cover VLAN packets with prepended headers up to 18 bytes. The following for-
mulas illustrate:
Ethernet Packet— Maximum frame size = normal Ethernet packet – 14 (Ethernet header)
+ 1500 (MAC client data) + 4 (CRC) = 1518 bytes
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
310
VLAN Packet— Maximum frame size = VLAN with 4 byte header – 4 (VLAN header) +
14 (Ethernet header) + 1500 MAC client data) + 4 (CRC) = 1522 bytes.
Table 194. EMAC Maximum Frame Length Register—Low Byte (EMAC_MAXF_L = 0030h
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_MAXF_L
00h–FFh These bits represent the Low byte of the 2 byte MAXF
value, {EMAC_MAXF_H, EMAC_MAXF_L}. Bit 7 is bit 7 of
the 16-bit value. Bit 0 is bit 0 (lsb) of the 16-bit value.
Table 195. EMAC Maximum Frame Length Register—High Byte (EMAC_MAXF_H = 0031h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
1
1
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
00h–
Description
These bits represent the High byte of the 2 byte MAXF
[7:0]
EMAC_MAXF_H FFh
value, {EMAC_MAXF_H, EMAC_MAXF_L}. Bit 7 is bit 15
(msb) of the 16-bit value. Bit 0 is bit 8 of the 16-bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
311
EMAC Address Filter Register
The EMAC Address Filter Register functions as a filter to control Promiscuous mode, and
multicast and broadcast messaging. See Table 196.
Table 196. EMAC Address Filter Register (EMAC_AFR = 0032h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
0h
Description
[7:4]
Reserved.
3
1
Enable Promiscuous Mode. Receive all incoming packets
regardless of station address. Disables station address
filtering.
PROM
0
1
Disable Promiscuous Mode.
2
MC
Accept any multicast message. A multicast packet is
determined by the first bit in the destination address. If the first
LSB is a 1, it is a group address and is globally or locally
administered depending on the 2nd bit. For more information,
see IEEE 802.3/3.2.3.
0
1
Do not accept multicast messages of any type.
1
Accept only qualified multicast (QMC) messages as
determined by the hash table.
QMC
0
1
Do not accept QMC messages.
0
BC
Accept broadcast messages. Broadcast messages have the
destination address set to FFFFFFFFFFFFh.
0
Do not accept broadcast messages.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
312
EMAC Hash Table Register
The EMAC Hash Table Register represents the 8x8 hash table matrix. This table is used as
an option to select between different multicast addresses. If a multicast address is
received, the first 6 bits of the CRC are decoded and added to a table that points to a single
bit within the hash table matrix. If the selected bit = 1, the multicast packet is accepted. If
the bit = 0, the multicast packet is rejected. See Table 197.
Table 197. EMAC Hash Table Register (EMAC_HTBL_0 = 0033h, EMAC_HTBL_1 = 0034h,
EMAC_HTBL_2 = 0035h, EMAC_HTBL_3 = 0036h, EMAC_HTBL_4 = 0037h, EMAC_HTBL_5
= 0038h, EMAC_HTBL_6 = 0039h, EMAC_HTBL_7 = 003Ah)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
EMAC_HTBL_0 Reset
EMAC_HTBL_1 Reset
EMAC_HTBL_2 Reset
EMAC_HTBL_3 Reset
EMAC_HTBL_4 Reset
EMAC_HTBL_5 Reset
EMAC_HTBL_6 Reset
EMAC_HTBL_7 Reset
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write
Bit
Position
Value
00h–
Description
[7:0]
This field is the hash table. The 64 bit hash table is
{EMAC_HTBL_7, EMAC_HTBL_6, EMAC_HTBL_5,
EMAC_HTBL_4, EMAC_HTBL_3, EMAC_HTBL_2,
EMAC_HTBL_1, EMAC_HTBL_0}.
EMAC_HTBL_x FFh
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
313
EMAC MII Management Register
The EMAC MII Management Register is used to control the external PHY attached to the
MII. See Table 198.
Table 198. EMAC MII Management Register (EMAC_MIIMGT = 003Bh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
7
1
Rising edge causes the CTLD control data to be transmitted to
external PHY if MII is not busy. This bit is self clearing.
LCTLD
0
1
No operation.
6
Rising edge causes status to be read from external PHY via
PRSD[15:0] bus if MII is not busy. This bit is self clearing.
RSTAT
0
1
No operation.
5
Scan PHY address increments upon SCAN cycle. The SCAN
bit must also be set for the PHY address to increment after
each scan. The scanning starts at the EMAC_FIAD and
increments up to 1Fh. It then returns to the EMAC_FIAD
address.
SCINC
0
1
Normal operation.
4
Perform continuous Read cycles via MII management. While in
SCAN mode, the EMAC_ISTAT[MGTDONE] bit is set when the
current PHY Read has completed. At this time, the
EMAC_PRSD register holds the Read data and the
EMAC_MIISTAT[4:0] holds the address of the PHY for which
the EMAC_PRSD data pertains.
SCAN
0
1
Normal operation.
3
Suppress the MDO preamble. MDO is management data
output, an internal signal driven from the MDIO pin.
SPRE
0
Normal preamble.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
314
Bit
Position
Value
Description
[2:0]
CLKS
Programmable divisor that produces MDC from SCLK. MDC is the
management data clock pin, which clocks MDIO data to and from the
PHY. Its frequency is SCLK divided by the MDC clock divider.
000
001
010
011
100
101
110
111
MDC = SCLK ÷ 4.
MDC = SCLK ÷ 4.
MDC = SCLK ÷ 6.
MDC = SCLK ÷ 8.
MDC = SCLK ÷ 10.
MDC = SCLK ÷ 14.
MDC = SCLK ÷ 20.
MDC = SCLK ÷ 28.
EMAC PHY Configuration Data Register—Low and High Byte
The Low and High bytes of the EMAC PHY Configuration Data Register represents the
configuration data written to the external PHY. The EMAC_CTLD_H and
EMAC_CTLD_L registers form a 16-bit register. These registers are loaded with data to
be sent via the MDIO pin to the PHY. The PHY is selected by setting the EMAC_FIAD.
The register inside the PHY is selected by setting EMAC_RGAD. See Table 199 and
Table 200 on page 315.
Table 199. EMAC PHY Configuration Data Register—Low Byte (EMAC_CTLD_L = 003Ch)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
00h–
Description
[7:0]
These bits represent the Low byte of the 2 byte PHY
configuration data value, {EMAC_CTLD_H,
EMAC_CTLD_L FFh
EMAC_CTLD_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit
0 (lsb) of the 16 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
315
Table 200. EMAC PHY Configuration Data Register—High Byte (EMAC_CTLD_H = 003Dh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
00h–
Description
[7:0]
These bits represent the High byte of the 2 byte PHY
configuration data value, {EMAC_CTLD_H,
EMAC_CTLD_H FFh
EMAC_CTLD_L}. Bit 7 is bit 15 (msb) of the 16 bit value. Bit
0 is bit 8 of the 16 bit value.
EMAC PHY Address Register
The EMAC PHY Address Register allows access to the external PHY registers. See
Table 201.
Table 201. EMAC PHY Address Register (EMAC_RGAD = 003Eh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
Description
[7:5]
000
Reserved.
[4:0]
RGAD
00h–
1Fh
Programmable 5 bit value which selects address within the
selected external PHY.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
316
EMAC PHY Unit Select Address Register
The EMAC PHY Unit Select Address Register allows the selection of multiple connected
external PHY devices. See Table 202.
Table 202. EMAC PHY Unit Select Address Register (EMAC_FIAD = 003Fh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
Description
[7:5]
000
Reserved.
[4:0]
00h–1Fh Programmable 5-bit value that selects an external PHY.
FIAD
EMAC Transmit Polling Timer Register
This register sets the Transmit Polling Period in increments of TPTMR = SYSCLK ÷ 256.
Whenever this register is written, the status of the Transmit Buffer Descriptor is checked
to determine if the EMAC owns the Transmit buffer. It then rechecks this status every
TPTMR (calculated by TPTMR x EMAC_PTMR[7:0]). The Transmit Polling Timer is
disabled if this register is set to 00h(which also disables the transmitting of packets). If a
transmission is in progress when EMAC_PTMR is set to 00h, the transmission will com-
plete. See Table 203.
Table 203. EMAC Transmit Polling Timer Register (EMAC_PTMR = 0040h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
00h–FFh The Transmit polling period.
EMAC_PTMR
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
317
EMAC Reset Control Register
The bit values in the EMAC Reset Control Register are not self-clearing bits. You are
responsible for controlling their state. See Table 204.
Table 204. EMAC Reset Control Register (EMAC_RST = 0041h)
Bit
7
6
5
4
3
2
1
0
0
0
1
0
0
0
0
0
Reset
R
R
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
00
Description
[7:6]
Reserved
5
1
Software Reset Active—resets Receive, Transmit, EMAC
Control and EMAC MII_MGT functions
SRST
0
1
0
1
0
1
0
1
0
1
0
Normal operation
4
Reset Transmit function
Normal operation
HRTFN
3
Reset Receive function
Normal operation
HRRFN
2
Reset EMAC Transmit Control function
Normal operation
HRTMC
1
Reset EMAC Receive Control function
Normal operation
HRRMC
0
Reset EMAC Management function
Normal operation
HRMGT
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
318
EMAC Transmit Lower Boundary Pointer Register—Low and High Bytes
The EMAC Transmit Lower Boundary Pointer is set to the start of the Transmit buffer in
EMAC shared memory. See Table 205 and Table 206.
Table 205. EMAC Transmit Lower Boundary Pointer Register—Low Byte (EMAC_TLBP_L = 0042h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R
R
R
R
R
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
00h–
Description
[7:0]
These bits represent the Low byte of the 2 byte Transmit
Lower Boundary Pointer value, {EMAC_TLBP_H,
EMAC_TLBP_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit 0
(lsb) of the 16 bit value.
EMAC_TLBP_L FFh
Table 206. EMAC Transmit Lower Boundary Pointer Register—High Byte (EMAC_TLBP_H
= 0043h)*
Bit
7
6
5
4
3
2
1
0
1
1
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
00h–
Description
[7:0]
These bits represent the High byte of the 2 byte Transmit
Lower Boundary Pointer value, {EMAC_TLBP_H,
EMAC_TLBP_H FFh
EMAC_TLBP_L}. Bit 7 is bit 15 (msb) of the 16 bit value. Bits
7:5 default to 000 on reset; bit 0 is bit 8 of the 16-bit value.
Note: *Bits 7:5 are not used by the EMAC; these bits return 000.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
319
EMAC Boundary Pointer Register—Low and High Bytes
The Boundary Pointer is set to the start of the Receive buffer (end of Transmit buffer +1)
in EMAC shared memory. This pointer is 24 bits and determined by {RAM_ADDR_U,
EMAC_BP_H, EMAC_BP_L}. The upper 3 bits of the EMAC_BP_H register are hard-
wired inside the eZ80F91 device to locate the base of EMAC shared memory. The last 5
bits of the EMAC_BP_L register value are hard-wired to keep the addressing aligned to
a 32 byte boundary. See Table 207 and Table 208.
Table 207. EMAC Boundary Pointer Register—Low Byte (EMAC_BP_L = 0044h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R
R
R
R
R
CPU Access
Note: R = Read Only, R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_BP_L
00h–FFh These bits represent the Low byte of the 3 byte EMAC
Boundary Pointer value, {EMAC_BP_U, EMAC_BP_H,
EMAC_BP_L}. Bit 7 is bit 7 of the 24 bit value. Bit 0 is bit 0 of
the 24 bit value.
Table 208. EMAC Boundary Pointer Register—High Byte (EMAC_BP_H = 0045h)
Bit
15:13
12:8
1
1
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only, R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_BP_H
00h–FFh These bits represent the High byte of the 3 byte EMAC
Boundary Pointer value, {EMAC_BP_U, EMAC_BP_H,
EMAC_BP_L}. Bit 7 is bit 15 of the 24 bit value. Bit 0 is bit 8 of
the 24 bit value.
EMAC Boundary Pointer Register—Upper Byte
The EMAC Boundary Pointer Register maps directly to the RAM_ADDR_U register
within the eZ80F91 device. This register value is Read Only. See Table 209 on page 320.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
320
Table 209. EMAC Boundary Pointer Register—Upper Byte (EMAC_BP_U = 0046h)
Bit
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
EMAC_BP_U
00h–FFh These bits represent the upper byte of the 3 byte EMAC
Boundary Pointer value, {EMAC_BP_U, EMAC_BP_H,
EMAC_BP_L}. Bit 7 is bit 23 of the 24 bit value. Bit 0 is bit 16 of
the 24 bit value.
EMAC Receive High Boundary Pointer Register—Low and High Bytes
The Receive High Boundary Pointer Register must be set to the end of the Receive buffer
+1 in EMAC shared memory. This RHBP uses the same RAM_ADDR_U as the
EMAC_BP_U pointer above. See Table 210 and Table 211 on page 321.
Table 210. EMAC Receive High Boundary Pointer Register—Low Byte (EMAC_RHBP_L = 0047h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R
R
R
R
R
CPU Access
Note: R = Read Only, R/W = Read/Write
Bit
Position
Value
Description
[7:0]
EMAC_RHBP_L
00h–E0h These bits represent the Low byte of the 2 byte EMAC
Receive High Boundary Pointer value, {EMAC_RHBP_H,
EMAC_RHBP_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit
0 (lsb) of the 16 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
321
Table 211. EMAC Receive High Boundary Pointer Register—High Byte (EMAC_RHBP_H = 0048h)
Bit
7
6
5
4
3
2
1
0
1
1
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only, R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_RHBP_H
00h–FFh These bits represent the High byte of the 2 byte EMAC
Receive High Boundary Pointer value, {EMAC_RHBP_H,
EMAC_RHBP_L}. Bit 7 is bit 15 (msb) of the 16 bit value. Bit
0 is bit 8 of the 16 bit value.
Note: *Bits 7:5 are not used by the EMAC; these bits return 000 upon reset.
EMAC Receive Read Pointer Register—Low and High Bytes
The Receive Read Pointer Register must be initialized to the EMAC_BP value (start of the
Receive buffer). This register points to where the next Receive packet is read from. The
EMAC_BP[12:5] is loaded into this register whenever the EMAC_RST [(HRRFN) is set
to 1. The RxDMA block uses the Emac_Rrp[12:5] to compare to EmacRwp[12:5] for
determining how many buffers remain. The result equates to the EmacBlksLeft register.
See Table 212 and Table 213 on page 322.
Table 212. EMAC Receive Read Pointer Register—Low Byte (EMAC_RRP_L = 0049h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R
R
R
R
R
CPU Access
Note: R = Read Only, R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_RRP_L
00h–FFh These bits represent the Low byte of the 2 byte EMAC
Receive Read Pointer value, {EMAC_RRP_H,
EMAC_RRP_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit 0
(lsb) of the 16 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
322
Table 213. EMAC Receive Read Pointer Register—High Byte (EMAC_RRP_H = 004Ah)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R = Read Only, R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_RRP_H
00h–FFh These bits represent the High byte of the 2-byte EMAC
Receive Read Pointer value, {EMAC_RRP_H,
EMAC_RRP_L}. Bit 7 is bit 15 (msb) of the 16-bit value. Bits
7:5 default to 000 on reset; bit 0 is bit 8 of the 16-bit value.
EMAC Buffer Size Register
The lower six bits of this register set the level at which the EMAC either transmits a pause
control frame or jams the Ethernet bus, depending on the mode selected. When each of
these bits contain a zero, this feature is disabled.
In FULL-DUPLEX mode, a Pause Control Frame is transmitted as a One-shot operation.
The software must free up a number of Rx buffers so that the number of buffers remaining,
EmacBlksLeft, is greater than TCPF_LEV.
In HALF-DUPLEX mode, the EMAC jams the Ethernet by sending a continuous stream
of hexadecimal 5s (5fh). When the software frees up the Rx buffers and the number of
buffers remaining, EmacBlksLeft, is greater than TCPF_LEV, the EMAC stops jamming.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
323
Table 214. EMAC Buffer Size Register (EMAC_BUFSZ = 004Bh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
00
Description
[7:6]
BUFSZ
Set EMAC Rx/Tx buffer size to 256 bytes.
Set EMAC Rx/Tx buffer size to 128 bytes.
Set EMAC Rx/Tx buffer size to 64 bytes.
Set EMAC Rx/Tx buffer size to 32 bytes.
01
10
11
[5:0]
TPCF_LEV
00h–3Fh Transmit Pause Control Frame level. 00h disables the
hardware generated transmit pause control frame.
EMAC Interrupt Enable Register
Enabling the Receive Overrun interrupt allows software to detect an overrun condition
as soon as it occurs. If this interrupt is not set, then an overrun cannot be detected until
the software processes the Receive packet with the overrun and checks the Receive sta-
tus in the Rx descriptor table. Because the receiver is disabled by an overrun error until
the Rx_OVR bit is cleared in the EMAC_ISTAT register, this packet is the final packet
in the Receive buffer. To re-enable the receiver before all of the Receive packets are
processed and the Receive buffer is empty, software enables this interrupt to detect the
overrun condition early. As it processes the Receive packets, it re-enables the receiver
when the number of free buffers is greater than the number of minimum buffers. See
Table 215 on page 324.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
324
Table 215. EMAC Interrupt Enable Register (EMAC_IEN = 004Ch)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
7
1
Enable Transmit State Machine Error Interrupt (system
interrupt).
TxFSMERR
0
Disable Transmit State Machine Error Interrupt (system
interrupt).
6
1
0
1
0
1
Enable MII Management. Done Interrupt (system Interrupt).
Disable MII Management. Done Interrupt (system Interrupt).
Enable Receive Control Frame Interrupt (Receive interrupt).
Disable Receive Control Frame Interrupt (Receive interrupt).
MGTDONE
5
Rx_CF
4
Enable Receive Pause Control Frame interrupt (Receive
interrupt).
Rx_PCF
0
Disable Receive Pause Control Frame interrupt (Receive
interrupt).
3
1
0
1
0
1
0
1
0
Enable Receive Done interrupt (Receive interrupt).
Disable Receive Done interrupt (Receive interrupt).
Enable Receive Overrun interrupt (System interrupt).
Disable Receive Overrun interrupt (System interrupt).
Enable Transmit Control Frame Interrupt (Transmit interrupt).
Disable Transmit Control Frame Interrupt (Transmit interrupt).
Enable Transmit Done interrupt (Transmit interrupt).
Disable Transmit Done Interrupt (Transmit interrupt).
Rx_DONE
2
Rx_OVR
1
Tx_CF
0
Tx_DONE
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
325
EMAC Interrupt Status Register
When a Receive overrun occurs, all incoming packets are ignored until the
Rx_OVR_STAT status bit is cleared by software. Consequently, software controls when
the receiver is re-enabled after an overrun. Enable the Rx_OVR interrupt to detect overrun
conditions when they occur. Clear this condition when the Rx buffers are freed to avoid
additional overrun errors. See Table 216.
Status bits are not self-clearing. Each status bit is cleared by writing a 1 into the selected
bit.
Note:
Table 216. EMAC Interrupt Status Register (EMAC_ISTAT = 004Dh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
7
1
An internal error occurs in the EMAC Transmit path. The
Transmit path must be reset to reset this error condition.
TxFSMERR_STAT
0
1
Normal operation—no Transmit state machine errors.
6
The MII Management interrupt has completed a Read
(RSTAT or SCAN) or a Write (LDCTLD) access to the
PHY.
MGTDONE_STAT
0
1
The MII Management interrupt does not occur.
5
Receive Control Frame interrupt (Receive Interrupt)
occurs.
Rx_CF_STAT
0
1
Receive Control Frame interrupt does not occur.
4
Receive Pause Control Frame interrupt (Receive
Interrupt) occurs.
Rx_PCF_STAT
0
Disable Receive Pause Control Frame interrupt (Receive
Interrupt) does not occur.
3
1
0
Receive Done interrupt (Receive Interrupt) occurs.
Rx_DONE_STAT
Disable Receive Done interrupt (Receive Interrupt) does
not occur.
2
1
0
Receive Overrun interrupt (System Interrupt) occurs.
Rx_OVR_STAT
Receive Overrun interrupt (System Interrupt) does not
occur.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
326
Bit
Position
Value
Description
1
1
Transmit Control Frame Interrupt (Transmit Interrupt)
occurs.
Tx_CF_STAT
0
Transmit Control Frame Interrupt (Transmit Interrupt)
does not occur.
0
1
0
Transmit Done interrupt (Transmit Interrupt) occurs.
Tx_DONE_STAT
Transmit Done interrupt (Transmit Interrupt) does not
occur.
EMAC PHY Read Status Data Register—Low and High Bytes
The PHY MII Management Data Register is where the data Read from the PHY is stored.
See Table 217 and Table 218 on page 327.
Table 217. EMAC PHY Read Status Data Register—Low Byte (EMAC_PRSD_L = 004Eh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
EMAC_PRSD_L
00h–FFh These bits represent the Low byte of the 2 byte EMAC PHY
Read Status Data value, {EMAC_PRSD_H,
EMAC_PRSD_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit
0 (lsb) of the 16 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
327
Table 218. EMAC PHY Read Status Data Register—High Byte (EMAC_PRSD_H = 004Fh)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
EMAC_PRSD_H
00h–FFh These bits represent the High byte of the 2-byte EMAC
PHY Read Status Data value, {EMAC_PRSD_H,
EMAC_PRSD_L}. Bit 7 is bit 15 (msb) of the 16-bit value.
Bit 0 is bit 8 of the 16-bit value.
EMAC MII Status Register
The EMAC MII Status Register is used to determine the current state of the external PHY
device. See Table 219.
Table 219. EMAC MII Status Register (EMAC_MIISTAT = 0050h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
7
1
MII management operation in progress—Busy. This status bit
goes busy whenever the LCTLD (PHY Write) or the RSTAT
(PHY Read) is set in the EMAC_MIIMGT register. It is
negated when the Write or Read operation to the PHY has
completed. In SCAN mode, the BUSY will be asserted until
the SCAN is disabled. Use the EmacIStat[MGTDONE]
interrupt status bit to determine when the data is valid.
BUSY
0
1
0
Not Busy.
6
Local copy of PHY Link fail bit.
PHY Link OK.
MIILF
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
328
5
1
0
MII Scan result is not valid Emac_PRSD is invalid
Emac_PRSD is valid.
NVALID
[4:0]
00h–1Fh Denotes PHY addressed in current scan cycle.
RDADR
EMAC Receive Write Pointer Register—Low Byte
The Read Only Receive-Write-Pointer register reports the current RxDMA Receive Write
pointer. This pointer gets initialized to EmacTLBP whenever Emac_RST bits SRST or
HRRTN are set. Because the size of the packet is limited to a minimum of 32 bytes, the
last five bits are always zero. See Table 220 and Table 221 on page 329.
Table 220. EMAC Receive Write Pointer Register—Low Byte (EMAC_RWP_L = 0051h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
EMAC_RWP_L
00h–
E0h
These bits represent the Low byte of the 2 byte EMAC
RxDMA Receive Write Pointer value, {EMAC_RWP_H,
EMAC_RWP_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit 0
(lsb) of the 16 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
329
EMAC Receive Write Pointer Register—High Byte
Because of the size of the EMAC’s 8 KB SRAM, the upper three bits of the EMAC
Receive Write Pointer Register are always zero.
Table 221. EMAC Receive Write Pointer Register—High Byte (EMAC_RWP_H = 0052h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
EMAC_RWP_H
00h–1Fh These bits represent the High byte of the 2 byte EMAC
RxDMA Receive Write Pointer value, {EMAC_RWP_H,
EMAC_RWP_L}. Bit 7 is bit 15 (msb) of the 16 bit value. Bit
0 is bit 8 of the 16 bit value.
EMAC Transmit Read Pointer Register—Low Byte
The Low byte of the Transmit Read Pointer register reports the current TxDMA Transmit
Read pointer.This pointer is initialized to EmacTLBP whenever Emac_RST bits SRST or
HRRTN are set. Because the size of the packet is limited to a minimum of 32 bytes, the
last five bits are always zero. See Table 222.
Table 222. EMAC Transmit Read Pointer Register—Low Byte (EMAC_TRP_L = 0053h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
EMAC_TRP_L
00h–E0h These bits represent the Low byte of the 2 byte EMAC
TxDMA Transmit Read Pointer value, {EMAC_TRP_H,
EMAC_TRP_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is bit 0
(lsb) of the 16 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
330
EMAC Transmit Read Pointer Register—High Byte
Because of the size of the EMAC’s 8 KB SRAM, the upper three bits of the EMAC Trans-
mit Read Pointer Register are always zero. See Table 223.
Table 223. EMAC Transmit Read Pointer Register—High Byte (EMAC_TRP_H = 0054h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
RO
RO
RO
RO
RO
RO
RO
RO
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_TRP_H
00h–1Fh These bits represent the High byte of the 2 byte EMAC
TxDMA Transmit Read Pointer value, {EMAC_TRP_H,
EMAC_TRP_L}. Bit 7 is bit 15 (msb) of the 16 bit value. Bit
0 is bit 8 of the 16 bit value.
EMAC Receive Blocks Left Register—Low and High Bytes
This register reports the number of buffers left in the Receive EMAC shared memory. The
hardware uses this information along with the block-level set in the EMAC_BUFSZ regis-
ter to determine when to transmit a pause control frame. Software uses this information to
determine when it must request that a pause control frame be transmitted (by setting bit 6
of the EMAC_CFG4 register). For the BlksLeft logic to operate properly, the Receive
buffer must contain at least one more packet buffer than the number of packet buffers
required for the largest packet. That is, one packet cannot fill the entire Receive buffer.
Otherwise, the BlksLeft will be in error. See Table 224 and Table 225 on page 331.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
331
Table 224. EMAC Receive Blocks Left Register—Low Byte (EMAC_BLKSLFT_L = 0055h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
00h–FFh These bits represent the Low byte of the 2 byte EMAC
Receive Blocks Left value, {EMAC_BLKSLFT_H,
EMAC_BLKSLFT_L}. Bit 7 is bit 7 of the 16 bit value. Bit
0 is bit 0 (lsb) of the 16 bit value.
EMAC_BLKSLFT_L
Table 225. EMAC Receive Blocks Left Register—High Byte (EMAC_BLKSLFT_H = 0056h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
[7:0]
00h–FFh These bits represent the High byte of the 2 byte EMAC
Receive Blocks Left value, {EMAC_BLKSLFT_H,
EMAC_BLKSLFT_L}. Bit 7 is bit 15 (msb) of the 16 bit
value. Bit 0 is bit 8 of the 16 bit value.
EMAC_BLKSLFT_H
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
332
EMAC FIFO Data Register—Low and High Bytes
The FIFO Read/Write Test Access Data Register allows writing and reading the FIFO
selected by the EMAC_TEST TxRx_SEL bit when the EMAC_TEST register
TEST_FIFO bit is set. See Table 226 and Table 227.
Table 226. EMAC FIFO Data Register—Low Byte (EMAC_FDATA_L = 0057h)
Bit
7
6
5
4
3
2
1
0
X
X
X
X
X
X
X
X
Reset
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
CPU Access
Note: R/W = Read/Write.
Bit
Position
Value
Description
[7:0]
EMAC_FDATA_L
00h–FFh These bits represent the Low byte of the 10 bit EMAC
FIFO data value, {EMAC_FDATA_H[1:0],
EMAC_FDATA_L}. Bit 7 is bit 7 of the 16 bit value. Bit 0 is
bit 0 (lsb) of the 10 bit value.
Table 227. EMAC FIFO Data Register—High Byte (EMAC_FDATA_H = 0058h)
Bit
7
6
5
4
3
2
1
0
0
0
0
0
0
0
X
X
Reset
R
R
R
R
R
R
R/W
R/W
CPU Access
Note: R = Read Only; R/W = Read/Write.
Bit
Position
Value
Description
[7:2]
00h
Reserved.
[1:0]
EMAC_FDATA_H
0h–3h These bits represent the upper two bits of the 10 bit EMAC
FIFO data value, {EMAC_FDATA_H[1:0],
EMAC_FDATA_L}. Bit 1 is bit 9 (msb) of the 16 bit value.
Bit 0 is bit 8 of the 10 bit value.
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
333
EMAC FIFO Flags Register
The FIFO Flags value is set in the EMAC hardware to half full, or 16 bytes. See Table 228.
Table 228. EMAC FIFO Flags Register (EMAC_FFLAGS = 0059h)
Bit
7
6
5
4
3
2
1
0
0
0
1
1
0
0
1
1
Reset
R
R
R
R
R
R
R
R
CPU Access
Note: R = Read Only.
Bit
Position
Value
Description
7
TFF
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
Transmit FIFO full
Transmit FIFO not full
Reserved
6
5
Transmit FIFO almost empty
Transmit FIFO not almost empty
Transmit FIFO empty
TFAE
4
TFE
Transmit FIFO not empty
Receive FIFO full
3
RFF
Receive FIFO not full
2
Receive FIFO almost full
Receive FIFO not almost full
Receive FIFO almost empty
Receive FIFO not almost empty
Receive FIFO empty
RFAF
1
RFAE
0
RFE
Receive FIFO not empty
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
334
PS019215-0910
Ethernet Media Access Controller
eZ80F91 MCU
Product Specification
335
On-Chip Oscillators
The eZ80F91 features two on-chip oscillators for use with an external crystal. The primary
oscillator generates the system clock for the internal CPU and the majority of the on-chip
peripherals. Alternatively, the XIN input pin also accepts a CMOS-level clock input signal.
If an external clock generator is used, the XOUT pin must be left unconnected. The second-
ary oscillator drives a 32 kHz crystal to generate the time-base for the Real-Time Clock.
Primary Crystal Oscillator Operation
Figure 63 on page 336 displays a recommended configuration for connection with an
external 50 MHz, 3rd-overtone, parallel-resonant crystal. Recommended crystal specifica-
tions are provided in Table 229 on page 336 and Table 230 on page 337. Printed circuit
board layout must add not more than 4 pF of stray capacitance to either the XIN or XOUT
pins. If oscillation does not occur, try removing C1 for testing and decreasing the value of
C2 by the estimated stray capacitance to decrease loading.
PS019215-0910
On-Chip Oscillators
eZ80F91 MCU
Product Specification
336
On-Chip Oscillator
XIN
XOUT
50 MHz Crystal
(Third Overtone)
R = 100 Kȍ
C1= 5 pF
(this value is not critical)
C2= 10-15 pF
L = 3.3 H ( 10%)
C3 = .01-0.1 F
Figure 63. Recommended Crystal Oscillator Configuration—50 MHz Operation
Table 229. Recommended Crystal Oscillator Specifications—1 MHz Operation
Frequency
Parameter
Frequency
Resonance
Mode
Dependent Value
Units
Comments
1
MHz
Parallel
Fundamental
750
Series Resistance (R )
Ohms
pF
Maximum
Maximum
S
Load Capacitance (C )
13
L
PS019215-0910
On-Chip Oscillators
eZ80F91 MCU
Product Specification
337
Table 229. Recommended Crystal Oscillator Specifications—1 MHz Operation
(Continued)
Frequency
Parameter
Dependent Value
Units
pF
Comments
Maximum
Maximum
Shunt Capacitance (C )
7
1
0
Drive Level
mW
Table 230. Recommended Crystal Oscillator Specifications—10 MHz Operation
Frequency
Parameter
Frequency
Resonance
Mode
Dependent Value
Units
Comments
10
MHz
Parallel
Fundamental
Series Resistance (R )
35
30
7
Ohms
pF
Maximum
Maximum
Maximum
Maximum
S
Load Capacitance (C )
L
Shunt Capacitance (C )
pF
0
Drive Level
1
mW
32 kHz Real-Time Clock Crystal Oscillator Operation
Figure 64 on page 338 displays a recommended configuration for connecting the Real-
Time Clock oscillator with an external 32 kHz, fundamental mode, parallel-resonant crys-
tal. The recommended crystal specifications are provided in Table 231on page 338. A
printed circuit board layout must not add more than 4 pF of stray capacitance to either the
RTC_XIN or RTC_XOUT pins. If oscillation does not occur, reduce the values of capaci-
tors C1 and C2 to decrease loading.
An on-chip MOS resistor sets the crystal drive current limit. This configuration does not
require an external bias resistor across the crystal. An on-chip MOS resistor provides the
biasing.
PS019215-0910
On-Chip Oscillators
eZ80F91 MCU
Product Specification
338
RTC_XIN
RTC_XOUT
32 kHz Crystal
(Fundamental Mode)
C1 = 10 pF
C2 = 10 pF
Figure 64. Recommended Crystal Oscillator Configuration—32 kHz Operation
Table 231. Recommended Crystal Oscillator Specifications—32 kHz Operation
Parameter
Frequency
Resonance
Mode
Value
Units
Comments
32
kHz
32768 Hz
Parallel
Fundamental
Series Resistance (R )
50
12.5
3
k
pF
Maximum
Maximum
Maximum
Maximum
S
Load Capacitance (C )
L
Shunt Capacitance (C )
pF
0
Drive Level
1
µW
PS019215-0910
On-Chip Oscillators
eZ80F91 MCU
Product Specification
339
Electrical Characteristics
Absolute Maximum Ratings
Stresses greater than those listed in Table 232 causes permanent damage to the device.
These ratings are stress ratings only. Operation of the device at any condition outside those
indicated in the operational sections of these specifications is not implied. Exposure to
absolute maximum rating conditions for extended periods affects device reliability. For
improved reliability, unused inputs must be tied to one of the supply voltages (VDD or
VSS).
Table 232. Absolute Maximum Ratings
Parameter
Minimum Maximum Units
Notes
Ambient temperature under bias (ºC)
Storage temperature (ºC)
–40
–65
+105
+150
+5.5
+3.6
830
230
230
+15
+8
ºC
C
1
Voltage on any pin with respect to V
–0.3
–0.3
V
2
SS
Voltage on V pin with respect to V
V
DD
SS
Total power dissipation
mW
mA
mA
µA
Maximum current out of V
SS
Maximum current into V
DD
Maximum current on input and/or inactive output pin
Maximum output current from active output pin
Flash memory Writes to Same Single Address
Flash Memory Data Retention
–15
–8
mA
—
—
2
3
4
100
—
Years
Cycles
Flash Memory Write/Erase Endurance
10,000
—
Notes
1. Operating temperature is specified in DC Characteristics.
2. This voltage applies to all pins except X and X
3. Before next erase operation.
4. Write cycles.
.
IN
OUT
DC Characteristics
Table 233 on page 340 lists the DC characteristics of the eZ80F91 device.
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
340
Table 233. DC Characteristics
TA =
TA =
0 ºC to 70 ºC
–40 ºC to 105 ºC
Symbol Parameter
Minimum Typ2 Maximum Minimum Typ2 Maximum Units Conditions
V
Supply Voltage
3.0
3.3
3.6
3.0
3.3
3.6
V
V
DD
VIL
Low Level
–0.3
0.3 x V
–0.3
0.3 x V
DD
DD
Input Voltage
VIH
VOL
VOH
VRTC
IIL
High Level
Input Voltage
0.7xV
5.5
0.4
0.7xV
5.5
0.4
V
V
DD
DD
Low Level
Output Voltage
V
= 3.0 V;
DD
IOL = 1 mA
High Level
Output Voltage
2.4
2.0
2.4
2.0
V
V
DD
IOH = –1 mA
= 3.0 V;
RTC Supply
Voltage
3.6
3.6
V
Input Leakage
Current
–10
–10
+10
–10
–10
+10
A
V
V
V
= 3.6 V;
DD
IN = V
or
DD
1
SS
ITL
Open-drain
+10
+10
A
V
= 3.6 V
DD
Leakage Current
ICCa
Active Current
26
52
40
80
mA @ 10 MHz
mA @ 20 MHz
mA @ 50 MHz
mA @ 10 MHz
mA @ 20 MHz
mA @ 50 MHz
137
15
190
20
ICCh
HALT Mode
Current
27
40
75
100
95
ICCs
SLEEP Mode
Current
2.5
2.5
20
10
2.5
A VBO_OFF=1
(VBO
disabled)
IRTC
RTC Supply
Current
2.5
10
A Supply current
into VRTC
1This condition excludes all pins with on-chip pull-ups when driven Low.
2Values in Typical column are for Vdd = 3.3 V and TA = 25 ºC.
POR and VBO Electrical Characteristics
Table 234 on page 341 lists the Power-On Reset and Voltage Brownout characteristics of
the eZ80F91 device.
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
341
Table 234. POR and VBO Electrical Characteristics
T = –40 ºC to 105 ºC
A
Symbol
Parameter
Minimum Typ Maximum Unit Conditions
V
V
V
T
VBO Voltage Threshold
POR Voltage Threshold
POR/VBO Hysteresis
2.45
2.55
30
2.65
2.75
100
2.90
2.95
120
100
V
V
V
V
= V
= V
VBO
POR
HYST
CC
CC
VBO
POR
mV
s
s
A
POR/VBO analog RESET duration
VBO pulse reject period
POR/VBO DC current consumption
40
ANA
T
I
10
40
VBO_MIN
50
POR_VBO
IS
POR/VBO DC SLEEP mode current
consumption
120
150
A VBO_OFF=0
POR_VBO
(VBO enabled)
VCC
V
ramp rate requirements to
0.1
100
V/ms
RAMP
CC
guarantee proper RESET occurs
Flash Memory Characteristics
Table 235 lists the Flash memory characteristics of the eZ80F91 device. For Flash
programming and erase timing information, see Flash Memory on page 97.
Table 235. Flash Memory Electrical Characteristics and Timing
V
= 3.0 V to 3.6 V;
DD
T = –40 ºC to 105 ºC
A
Symbol
Minimum
78
Typical
Maximum
Units
Notes
Flash Byte Read Cycle Time
—
—
ns
Current Consumption Under Various Operating Conditions
Figure 65 on page 342 displays the typical current consumption of the eZ80F91 device
versus Vdd while operating at 25 ºC, with zero Wait states, and with either a 10 MHz,
20 MHz, or 50 MHz system clock.
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
342
eZ80F91 Active Idd vs CLK Freq @ Vdd (25C)
180.00
160.00
140.00
120.00
100.00
80.00
60.00
40.00
20.00
0.00
10Mhz
20Mhz
50Mhz
Frequency (MHz)
Vdd=2.9V
Vdd=3.3V
Vdd=3.7V
Figure 65. ICC vs. System Clock Frequency During ACTIVE Mode
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
343
Figure 66 displays the typical current consumption of the eZ80F91 device versus system
clock frequency while operating in HALT mode.
eZ80F91 HALT Mode Idd vs CLK Freq @ Vdd (25C)
100.00
90.00
80.00
70.00
60.00
50.00
40.00
30.00
20.00
10.00
0.00
10Mhz
20Mhz
50Mhz
Fre que ncy (M Hz)
V dd=2.9V
V dd=3.3V
V dd=3.7V
Figure 66. ICC vs. System Clock Frequency During HALT Mode
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
344
Figure 67 displays the typical current consumption of the eZ80F91 device versus Vdd
while operating in SLEEP mode (units in microamps, 10-6A); all peripherals off, and VBO
disabled.
e Z80F91 S LEEP M ode Idd vs V dd (25C)
2.65
2.60
2.55
2.50
2.45
2.40
2.35
2.30
2.25
2.20
2.15
2.9
3.3
3.7
V d d (V )
Ic c s (V BO dis abled)
Figure 67. ICC vs. Vdd During SLEEP Mode
AC Characteristics
This section provides information about the AC characteristics and timing of the
eZ80F91 device. All AC timing information assumes a standard load of 50 pF on all
outputs. See Table 236.
Table 236. AC Characteristics
T =
T =
A
A
0 ºC to 70 ºC
–40 ºC to 105 ºC
Symbol Parameter
Minimum Maximum Minimum Maximum Units Conditions
T
T
T
System Clock
Cycle Time
20
1000
20
1000
ns
ns
ns
V
= 3.0–3.6 V
XIN
DD
System Clock
High Time
8
8
V
= 3.0–3.6 V;
= 20 ns
XINH
XINL
DD
T
CLK
System Clock
8
8
V
= 3.0–3.6 V;
DD
Low Time
T
= 20 ns
CLK
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
345
Table 236. AC Characteristics (Continued)
T =
T =
A
A
0 ºC to 70 ºC
–40 ºC to 105 ºC
Symbol Parameter
Minimum Maximum Minimum Maximum Units Conditions
T
System Clock
Rise Time
3
3
ns
ns
pF
V
= 3.0–3.6 V;
= 20 ns
XINR
DD
T
CLK
T
System Clock
Fall Time
3
3
V
= 3.0–3.6 V;
= 20 ns
XINF
DD
T
CLK
C
Input capacitance
10 typical
10 typical
IN
Table 237 lists simulated inductance, capacitance, and resistance results for the 144-pin
LQFP package at 100 MHz operating frequency.
Table 237. Typical 144-LQFP Package Electrical Characteristics
Lead
Inductance (nH)
6.430
Capacitance (pF) Resistance (mohm)
Longest
Shortest
1.100
1.070
62.9
52.6
4.230
Package vendor-supplied; 100 MHz operating frequency
Note:
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
346
External Memory Read Timing
Figure 68 and Table 238 display the timing for external memory reads.
TCLK
PHI
T1
T2
ADDR[23:0]
T3
T4
DATA[7:0]
(input)
T5
T6
CSx
T7
T9
T8
MREQ
RD
T10
Figure 68. External Memory Read Timing
Table 238. External Memory Read Timing
Delay (ns)
Minimum Maximum
Parameter Abbreviation
T
T
T
T
T
T
T
T
PHI Clock Rise to ADDR Valid Delay
PHI Clock Rise to ADDR Hold Time
—
8.5
—
1
2
3
4
5
6
7
8
1.0
0.5
0.5
2.6
0.0
2.6
1.0
DATA Valid to PHI Clock Rise Setup Time
PHI Clock Rise to DATA Hold Time
—
—
PHI Clock Rise to CSx Assertion Delay
PHI Clock Rise to CSx Deassertion Delay
PHI Clock Rise to MREQ Assertion Delay
PHI Clock Rise to MREQ Deassertion Delay
8.0
6.0
7.0
6.3
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
347
Table 238. External Memory Read Timing (Continued)
Parameter Abbreviation
Delay (ns)
Minimum Maximum
T
T
PHI Clock Rise to RD Assertion Delay
PHI Clock Rise to RD Deassertion Delay
2.7
1.0
7.0
6.3
9
10
External Memory Write Timing
Figure 69 and Table 239 on page 348 display the timing for external memory Writes.
TCLK
PHI
T2
T4
T1
ADDR[23:0]
T3
DATA[7:0]
(output)
T5
T6
CSx
T7
T8
MREQ
WR
T9
T10
Figure 69. External Memory Write Timing
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
348
Table 239. External Memory Write Timing
Parameter Abbreviation
Delay (ns)
Minimum Maximum
T
T
T
T
T
T
T
T
T
T
PHI Clock Rise to ADDR Valid Delay
PHI Clock Rise to ADDR Hold Time
PHI Clock Fall to DATA Valid
—
1
8.5
—
1
2
—
2.5
—
3
PHI Clock Rise to DATA Hold Time
PHI Clock Rise to CSx Assertion Delay
PHI Clock Rise to CSx Deassertion Delay
PHI Clock Rise to MREQ Assertion Delay
PHI Clock Rise to MREQ Deassertion Delay
PHI Clock Fall to WR Assertion Delay
PHI Clock Rise to WR Deassertion Delay*
WR Deassertion to ADDR Hold Time
WR Deassertion to DATA Hold Time
WR Deassertion to CSx Hold Time
WR Deassertion to MREQ Hold Time
1.0
2.3
0.0
2.3
2.3
—
4
10.8
6.0
7.0
6.5
1.0
5.0
—
5
6
7
8
9
0.0
0.4
0.5
1.2
0.5
10
—
—
—
*At the conclusion of a Write cycle, deassertion of WR always occurs before any change to
ADDR, DATA, CSx, or MREQ.
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
349
External I/O Read Timing
Figure 70 and Table 240 display the timing for external I/O reads. PHI clock rise/fall to
signal transition timing is independent of the particular bus mode employed (eZ80®,
Z80®, Intel, or Motorola).
TCLK
PHI
T1
T2
ADDR[23:0]
T3
T4
DATA[7:0]
(input)
T5
T6
CSx
T7
T9
T8
IORQ
RD
T10
Figure 70. External I/O Read Timing
Table 240. External I/O Read Timing
Delay (ns)
Minimum Maximum
Parameter Abbreviation
T
T
T
T
T
T
T
PHI Clock Rise to ADDR Valid Delay
PHI Clock Rise to ADDR Hold Time
DATA Valid to PHI Clock Rise Setup Time
PHI Clock Rise to DATA Hold Time
PHI Clock Rise to CSx Assertion Delay
PHI Clock Rise to CSx Deassertion Delay
PHI Clock Rise to IORQ Assertion Delay
—
7.3
—
1
2
3
4
5
6
7
1.0
0.5
0.0
2.0
0.0
2.6
—
—
8.5
6.0
7.0
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
350
Table 240. External I/O Read Timing (Continued)
Parameter Abbreviation
Delay (ns)
Minimum Maximum
T
T
T
PHI Clock Rise to IORQ Deassertion Delay
PHI Clock Rise to RD Assertion Delay
PHI Clock Rise to RD Deassertion Delay
1.0
2.7
0.5
6.3
7.0
6.3
8
9
10
External I/O Write Timing
Figure 71 and Table 241 on page 351 display the timing for external I/O Writes. PHI clock
rise/fall to signal transition timing is independent of the particular bus mode employed
(eZ80®, Z80®, Intel, or Motorola).
TCLK
PHI
T2
T4
T1
ADDR[23:0]
T3
DATA[7:0]
(output)
T5
T6
CSx
T7
T8
IORQ
WR
T9
T10
Figure 71. External I/O Write Timing
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
351
Table 241. External I/O Write Timing
Parameter Abbreviation
Delay (ns)
Min
—
Max
7.3
—
T
T
T
T
T
T
T
T
T
T
PHI Clock Rise to ADDR Valid Delay
PHI Clock Rise to ADDR Hold Time
PHI Clock Fall to DATA Valid
1
1.0
—
2
2.5
—
3
PHI Clock Rise to DATA Hold Time
PHI Clock Rise to CSx Assertion Delay
PHI Clock Rise to CSx Deassertion Delay
PHI Clock Rise to IORQ Assertion Delay
PHI Clock Rise to IORQ Deassertion Delay
PHI Clock Fall to WR Assertion Delay
PHI Clock Rise to WR Deassertion Delay*
WR Deassertion to ADDR Hold Time
WR Deassertion to DATA Hold Time
WR Deassertion to CSx Hold Time
WR Deassertion to IORQ Hold Time
1.0
2.3
1.0
2.4
1.0
—
4
10.8
6.0
7.0
6.3
1.0
5.0
—
5
6
7
8
9
0.0
0.4
0.5
1.2
0.5
10
—
—
—
*At the conclusion of a Write cycle, deassertion of WR always occurs before any change to ADDR,
DATA, CSx, or IORQ.
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
352
Wait State Timing for Read Operations
Figure 72 displays the extension of the memory access signals using a single Wait state for
a Read operation. This Wait state is generated by setting CS_WAIT to 001 in the Chip
Select Control Register.
TCLK
TWAIT
SCLK
ADDR[23:0]
DATA[7:0]
(output)
CSx
MREQ
RD
INSTRD
Figure 72. Wait State Timing for Read Operations
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
353
Wait State Timing for Write Operations
Figure 73 displays the extension of the memory access signals using a single Wait state for
a Write operation. This Wait state is generated by setting CS_WAIT to 001 in the Chip
Select Control Register.
TCLK
TWAIT
PHI
ADDR[23:0]
DATA[7:0]
(output)
CSx
MREQ
WR
Figure 73. Wait State Timing for Write Operations
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
354
General-Purpose Input/Output Port Input Sample Timing
Figure 74 displays timing of the GPIO input sampling. The input value on a GPIO port pin
is sampled on the rising edge of the system clock. The port value is then available to the
CPU on the second rising clock edge following the change of the port value.
TCLK
PHI
Port Value
Changes to 0
GPIO Pin
Input Value
GPIO Input
Data Latch
0 Latched
Into GPIO
Data Register
GPIO Data Register
Value 0 Read
by eZ80
GPIO Data
READ on Data Bus
Figure 74. Port Input Sample Timing
General-Purpose I/O Port Output Timing
Figure 75 and Table 242 on page 355 display timing information for GPIO port pins.
TCLK
PHI
Port Output
T1
T2
Figure 75. GPIO Port Output Timing
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
355
Table 242. GPIO Port Output Timing
Parameter Abbreviation
Delay (ns)
Minimum Maximum
T
T
PHI Clock Rise to Port Output Valid Delay
PHI Clock Rise to Port Output Hold Time
—
5
1
2
1.0
—
External Bus Acknowledge Timing
Table 243 lists information on the bus acknowledge timing.
Table 243. Bus Acknowledge Timing
Delay (ns)
Minimum Maximum
Parameter Abbreviation
T
T
PHI Clock Rise to BUSACK Assertion Delay
PHI Clock Rise to BUSACK Deassertion Delay
2.8
1.5
7.1
6.5
1
2
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
356
PS019215-0910
Electrical Characteristics
eZ80F91 MCU
Product Specification
357
Packaging
Figure 76 displays the 144-pin low-profile quad flat package (LQFP) for the eZ80F91
device.
HD
D
A
A2
A1
C
L
F
E
HE
DETAIL
A
C
L
LE
c
b
e
L
Figure 76. 144-Lead Plastic Low-Profile Quad Flat Package (LQFP)
PS019215-0910
Packaging
eZ80F91 MCU
Product Specification
358
Figure 77 displays the 144-pin chip array ball grid array (BGA) package for the eZ80F91
device.
Figure 77. 144-Lead Chip Array Ball Grid Array (BGA)
PS019215-0910
Packaging
eZ80F91 MCU
Product Specification
359
Ordering Information
Table 244 lists part name, a product specification index code, and a brief description of
each part. Order the eZ80F91 microcontroller from Zilog®, using the following part num-
bers. For more information on ordering, please consult your local Zilog sales office. The
Zilog website (www.zilog.com) lists all regional offices and provides additional eZ80F91
microcontroller product information.
Table 244. Ordering Information
Part PSI
Description
eZ80F91 eZ80F91AZ050SG*
eZ80F91AZ050EG*
144-pin LQFP, 256 KB Flash memory, 8 KB SRAM, 50 MHz,
Standard Temperature
144-pin LQFP, 256 KB Flash memory, 8 KB SRAM, 50 MHz,
Extended Temperature
eZ80F91NA050SG*
144-pin BGA, 256 KB Flash memory, 8 KB SRAM, 50 MHz,
Standard Temperature
eZ80F91NA050EG*
144-pin BGA, 256 KB Flash memory, 8 KB SRAM, 50 MHz,
Extended Temperature
eZ80F910200ZC0G
eZ80F910100KITG
eZ80F91 Acclaim! Development Kit
eZ80F91 Acclaim! Modular Development Kit
eZ80F9105050MODG Ethernet Module
eZ80F9105005MODG Mini Ethernet Module
ZUSBSC00100ZACG USB Smart Cable
ZENETSC0100ZACG Ethernet Smart Cable
*Denotes parts not recommended for new designs.
PS019215-0910
Ordering Information
eZ80F91 MCU
Product Specification
360
Part Number Description
Zilog® part numbers consists of number of components as described below:
eZ80 F91 AZ 050
S
C
Environmental Flow
C = Plastic Standard
G = Lead-Free
Temperature Range
S = Standard, 0 °C to 70 °C
E = Extended, –40 °C to +105 °C
Speed
0 = eZ80Acclaim!
50 = Speed
Package
AZ = LQFP (also called VQFP)
NA = BGA
Product Number
®
Zilog eZ80 CPU
Example: Part number eZ80F91AZ050SC is an eZ80F91 Acclaim! product in a LQFP
package, operating with a 50 MHz external clock frequency over a 0 ºC to +70 ºC temper-
ature range and built using the Plastic Standard environmental flow.
PS019215-0910
Ordering Information
eZ80F91 MCU
Product Specification
361
Address Bus 6, 7
Index
address bus 58, 68, 70, 71, 74, 75, 78, 81, 82,
85, 86, 161, 238, 239, 249, 255
address bus, 24-bit 27
Numerics
Addressing, I2C 223
ALARM 160, 174
ALARM bit flag 173
alarm condition 160, 161, 173, 174
AND/OR Gating of the PWM Outputs 148, 149
Arbiter, EMAC 289
100-pin LQFP package 4, 5
16-bit clock divisor value 182, 206
16-bit divisor count 182, 206
32 KHz Real-Time Clock Crystal Oscillator Opera-
tion 337
Arbitration, I2C 215
asynchronous communications protocol 175, 176
asynchronous communications protocol bits 176
asynchronous serial data 11, 14
A
AAK 217, 218, 220, 221, 222, 226, 227
Absolute Maximum Ratings 339
Absolute maximum ratings 339
AC Characteristics 344
ACK 213, 217, 218, 219, 220, 221, 223, 228
Acknowledge 213
Acknowledge, I2C 213
ADDR0 6
ADDR1 6
ADDR10 6
ADDR11 6
ADDR12 7
B
Basic Timer Operation 122
Basic Timer Register Set 130
Baud Rate Generator 181
Baud Rate Generator Functional Description 205
BCD 159, 173, 174
Binary Operation 161, 162, 163, 166, 167, 168,
169, 170, 171, 172
binary operation 159
binary-coded-decimal 159
ADDR13 7
Binary-Coded-Decimal Operation 161, 164, 165,
166, 167, 168, 169, 170, 171, 172
bit generation 175, 176
ADDR14 7
ADDR15 7
ADDR16 7
ADDR17 7
Block Diagram 2
Boot Block 25, 97, 107, 109
Boundary Scan Cell Functionality 260
Boundary Scan Instructions 264
Boundary-Scan Architecture 257
break detection 175, 185
ADDR18 7
ADDR19 7
ADDR2 6
ADDR20 7
ADDR21 7
ADDR22 7
Break Point Halting 126
break point trigger functions 257
BRG Control Registers 182
Bus Acknowledge Cycle 70
bus acknowledge cycle 6, 8, 9, 89, 90, 91, 94
bus acknowledge pin 70, 249
Bus Arbiter 89
ADDR23 7
ADDR3 6
ADDR4 6
ADDR5 6
ADDR6 6
ADDR7 6
Bus Arbitration Overview 211
Bus Clock Speed, I2C 230
ADDR8 6
ADDR9 6
PS019215-0910
Index
eZ80F91 MCU
Product Specification
362
Bus Mode Controller 70
clock polarity bit 204
bus mode state 71, 72, 75
Bus modes 70
bus modes 71, 84, 88
Bus Modes, Switching Between 84
Bus Requests During ZDI Debug Mode 238
bus timing 70
BUSACK 9, 70, 239, 249, 255, 355
BUSACK pin 89, 249, 255
BUSREQ 9, 70, 255
Clock Synchronization for Handshake 216
Clock Synchronization, I2C 214
Clocking Overview 211
COL 22
Complex triggers 257
CONTINUOUS mode 125
Continuous Mode 123, 126
continuous mode 121, 132, 138, 139
Control Transfers, UART 179
CPHA—see clock phase 202, 203, 208
CPOL—see clock polarity 203, 208
CRC 294, 295, 299, 300, 312
CRS 22, 307
BUSREQ pin 89, 239, 249, 255
Byte Format, I2C 213
C
CS0 7, 65, 66, 67, 68
CS1 7, 65, 66, 67, 68
CS2 7, 65, 67, 68
CS3 7, 65, 67, 68
CTS 191, 193
CTS0 12, 198
CTS1 15
Customer Feedback Form 375
C source-level debugging 231
capture flag 128
Carrier Sense 307
carrier sense 303
carrier sense window 308
Carrier Sense Window Referencing 308
Carrier Sense, MII 22
Chain Sequence and Length, JTAG Boundary Scan
260
Characteristics, electrical
D
Absolute maximum ratings 339
Charge Pump 265
DATA bus 78
Data Bus 8
charge pump 269
Charge Pump, PLL 266
data bus 70, 71, 73, 74, 75, 82, 88, 161, 238,
239, 249, 255
Chip Select Registers 85
Data Carrier Detect 13, 16, 193
Data Set Ready 13, 16, 193
Data Terminal Ready 12, 15, 191
Data Transfer Procedure with SPI configured as a
Slave 206
Data Transfer Procedure with SPI Configured as the
Master 205
data transfer, SPI 209
Data Transfers, UART 179
Data Validity, I2C 212
DATA0 8
Chip Select x Bus Mode Control Register 88
Chip Select x Control Register 87
Chip Select x Lower Bound Register 85
Chip Select x Upper Bound Register 86
Chip Select/Wait State Generator block 6
Chip Selects During Bus Request/Bus Acknowl-
edge Cycles 70
Clear to Send 12, 15, 193
CLK_MUX 269
clock divisor value, 16-bit 182, 206
clock initialization circuitry 258
Clock Peripheral Power-Down Registers 46
clock phase 202
DATA1 8
DATA2 8
DATA3 8
clock phase bit 204
DATA4 8
PS019215-0910
Index
eZ80F91 MCU
Product Specification
363
DATA5 8
EMAC Interpacket Gap 306
DATA6 8
DATA7 8
DC Characteristics 339
DCD 190, 193
DCD0 13, 198
DCD1 16
EMAC Interpacket Gap Overview 306
EMAC Interpacket Gap Register 307
EMAC Interrupt Enable Register 323
EMAC Interrupt Status Register 325
EMAC Interrupts 292
EMAC Maximum Frame Length Register—Low
and High Bytes 309
DCTS 193
DDCD 193
EMAC memory 288, 289
DDSR 193
EMAC MII Management Register 313
EMAC MII Status Register 327
EMAC Non-Back-To-Back IPG Register—Part 1
308
EMAC Non-Back-To-Back IPG Register—Part 2
308
EMAC PHY Address Register 315
EMAC PHY Configuration Data Register—Low
Byte 314
EMAC PHY Read Status Data Register—Low and
High Bytes 326
Divider, PLL 266
divisor count 206
divisor count, 16-bit 182
DSR 191, 193
DSR0 13, 198
DSR1 16
DTACK 81, 82
DTR 191, 193
DTR0 12, 198
DTR1 15
EMAC PHY Unit Select Address Register 316
EMAC RAM 93, 94, 95, 96
E
EMAC Receive Blocks Left Register—Low and
High Bytes 330
EC0 17, 127, 129, 132
EMAC Receive High Boundary Pointer Register—
Low and High Bytes 320
EMAC Receive Read Pointer Register—Low and
High Bytes 321
EMAC Receive Write Pointer Register—High Byte
329
EMAC Receive Write Pointer Register—Low Byte
328
EC1 22, 127, 129, 132
edge-selectable interrupts 55
Edge-Triggered Interrupts 54
EI, Op Code Map 280
EMAC 287
EMAC Address Filter Register 311
EMAC Boundary Pointer Register—Low and High
Bytes 319
EMAC Receiver Interrupts 292
EMAC Registers 297
EMAC Boundary Pointer Register—Upper Byte
319
EMAC Reset Control Register 317
EMAC Shared Memory Organization 292
EMAC Station Address Register 304
EMAC System Interrupts 292
EMAC Test Register 298
EMAC Transmit Lower Boundary Pointer Regis-
ter—Low and High Bytes 318
EMAC Transmit Pause Timer Value Register—
Low and High Bytes 305
EMAC Buffer Size Register 322
EMAC Configuration Register 1 299
EMAC Configuration Register 2 301
EMAC Configuration Register 3 302
EMAC Configuration Register 4 303
EMAC FIFO Data Register—Low and High Bytes
332
EMAC FIFO Flags Register 333
EMAC Functional Description 288
EMAC Hash Table Register 312
EMAC Transmit Polling Timer Register 316
PS019215-0910
Index
eZ80F91 MCU
Product Specification
364
EMAC Transmit Read Pointer Register—High
Byte 330
EMAC Transmit Read Pointer Register—Low Byte
329
EMAC Transmitter Interrupts 292
EMACMII module 287
Enabling and Disabling the WDT 116
Endec 199
FAST mode 211, 230
FCS 295, 296, 306
Features 1
Features, eZ80 CPU Core 39
FIFO mode 176, 179
Flash Address registers 100, 103, 110
Flash address registers 99
Flash Address Upper Byte Register 104
Flash Column Select Register 112
Flash Control Register 105
endec 195, 196, 198
ENDEC Mode 306
ENDEC mode 302
endec signal pins 198
endec, IrDA 47
Flash Control Registers 102
Flash controller 98, 99, 100, 106, 108
Flash controller clock 106
Erasing Flash Memory 101
Ethernet Media Access Controller 287
event count input 132
Flash Data Register 103
Flash Frequency Divider Register 106
Flash Interrupt Control Register 108
Flash Key Register 102
Event count mode 127
event count mode 128
Flash Memory 97
Event Counter 125, 127
event counter 127
Flash memory array 98, 109
Flash Memory Overview 98
Flash Page Select Register 109
Flash Program Control Register 112
Flash Row Select Register 111
Flash Write/Erase Protection Register 107
frame check sequence 306
framing error 175, 177, 185, 192
frequency divider 98, 106
full-duplex transmission 204
Functional Description, Infrared Encoder/Decoder
195
External Bus Acknowledge Timing 355
external bus master 89, 90
external bus request 70, 235, 239
External I/O Read Timing 349
External I/O Write Timing 350
External Memory Read Timing 346
External Memory Write Timing 347
external pull-down resistor 51
External Reset Input and Indicator 41
eZ80 Bus Mode 71
eZ80 bus mode 88
Functional Description, Serial Peripheral Interface
204
eZ80 CPU 8, 69, 70, 74, 81, 195, 241, 257
eZ80 Product ID Low and High Byte Registers 251
eZ80 Product ID Revision Register 252
eZ80 Webserver-i 2, 6, 8, 9, 19, 57, 58, 68, 115
eZ80 Webserver-i Block Diagram 3
eZ80Acclaim! Flash Microcontrollers 1, 98
eZ80F91 device 4, 5, 27, 340
eZ80F92 252
G
General-Purpose I/O Port Input Sample Timing
354
General-Purpose I/O Port Output Timing 354
General-Purpose Input/Output 49
GND 2
GPIO Control Registers 55
GPIO Interrupts 54
GPIO modes 50, 52
F
f 71, 74, 346
falling edge 147, 148, 150, 155
GPIO Operation 49
PS019215-0910
Index
eZ80F91 MCU
Product Specification
365
GPIO Overview 49
IEEE 802.3, 802.3(u) minimum values 306
GPIO port pins 41, 49, 55, 354
IEEE 802.3/4.2.3.2.1 Carrier Deference 307, 308
IEEE Standard 1149.1 257, 258
IEF1 59, 125, 253
H
IEF2 59
IFLG bit 211, 216, 219, 221, 222, 223, 226, 229
IM 0, Op Code Map 283
IM 1, Op Code Map 283
IM 2, Op Code Map 283
Information Page Characteristics 102
Infrared Encoder/Decoder 195
Infrared Encoder/Decoder Register 199
Infrared Encoder/Decoder Signal Pins 198
Input Capture 128
HALT 10, 253, 277
HALT instruction 45
HALT Mode 45
HALT mode 1, 46, 245, 253
HALT, Op-Code Map 280
HALT_SLP 10, 253, 260
Handshake 216
handshake 175, 177
hash table 311
INPUT capture mode 130
Input capture mode 128
input capture mode 127, 134
INSTRD 9
Instruction Store 4
0 Registers 249
Intel- 70
Intel Bus Mode 73
Intel Bus Mode (Separate Address and Data Buses)
74
I
I/O Chip Select Operation 68
I/O Chip Selects, External 27
I/O Read 99
I/O space 6, 8, 65, 68
I2C Acknowledge bit 226
I2C bus 211, 214, 215
I2C bus clock 211
I2C bus protocol 212
internal pull-up 50
Internal RC oscillator 115
internal RC oscillator 118
internal system clock 69
Interpacket Gap 306, 307
Interpacket gap 306
interpacket gap 296, 308
Interrupt Controller 57
interrupt enable 9
Interrupt Enable bit 225
interrupt enable bit 160, 178
Interrupt Enable Flag 253
interrupt enable flag 125
Interrupt Input 198
interrupt input 11, 12, 13, 14, 15, 16
Interrupt Priority 61, 63
interrupt priority 63
I2C Clock Control Register 229
I2C control bit 217, 218, 220
I2C Control Register 225
I2C Data Register 225
I2C Extended Slave Address Register 224
I2C Registers 223
I2C Software Reset Register 230
I2C Status Register 227
IC0 17, 127, 129, 134, 135, 139, 140, 141, 142,
152, 156
IC1 17, 127, 129, 134, 135, 139, 141, 152, 156
IC2 18, 127, 129, 134, 135, 139, 140, 141, 152,
156
IC3 18, 127, 129, 134, 135, 139, 141, 142, 152,
156
IEEE 1149.1 specification 259, 264
IEEE 802.3 311
IEEE 802.3 frames 300
interrupt priority levels 60
Interrupt Priority Registers 60
Interrupt request 133, 134
IEEE 802.3 specification 301, 302
PS019215-0910
Index
eZ80F91 MCU
Product Specification
366
interrupt request 54, 58, 108, 127
interrupt request signals 57
interrupt service routine 58, 59, 60
interrupt service routine, SPI 58
interrupt sources 152
interrupt vector 57, 58
interrupt vector address 59, 60
interrupt vector bus 58
L
least-significant byte 58
level-sensitive interrupt modes 52
level-sensitive interrupts 55, 198
Level-Triggered Interrupts 54
Line break detection 175
line status error 178
Line status interrupt 185
line status interrupt 177, 179, 180
Lock Detect 265
interrupt vector locations 58
interrupt vector table 58
interrupt, higher-priority 62, 186
interrupt, highest-priority 57, 58
interrupts, edge-selectable 55
interrupts, level-sensitive 55
Introduction to On-Chip Instrumentation 257
Introduction, Zilog Debug Interface 231
IORQ 8, 9, 68, 71, 74, 75, 78
IORQ Assertion Delay 349, 351
IORQ Deassertion Delay 350, 351
IORQ Hold Time 351
lock detect 267
lock detect sensitivity 269
Lock Detect, PLL 266
Loop Filter 265
loop filter 267, 273
Loop Filter, PLL 13, 266
loop mode 177
LOOP_FILT 259
Loopback Testing, Infrared Encoder/Decoder 198
low-byte vector 57
LSB 59, 60, 138, 229, 304, 311
Lsb 291
IR_RXD 196, 198, 199
IR_TxD modulation signal 11, 196, 198
IrDA Encoder/Decoder 198
IrDA encoder/decoder 11
IrDA endec 47
lsb 136, 138, 140, 141, 144, 157, 158, 216,
217, 218, 219, 220, 222, 310, 314, 318, 320,
321, 326, 328, 329
IrDA Receive Data 11
IrDA specifications 196
IrDA standard 195
IrDA standard baud rates 195
IrDA transceiver 198
IrDA Transmit Data 11
IrDA—see Infrared Data Association 195
IRQ 58
irq_en 205, 208
ISR 58
IVECT 57, 58, 59, 60
M
maskable interrupt 46, 57, 60, 62
Maskable Interrupts 57
Mass Erase 101
mass erase 107, 108, 112
MASS ERASE operation 102
Mass Erase operation 113
mass erase operation 101, 110
MASTER mode 203, 211, 226, 228, 229, 230
Master mode 222, 227
master mode 222
J
Master Mode Start bit 225
Master Mode Stop bit 226
MASTER mode, SPI 204
Master Receive 211, 219
Master Transmit 216
Jitter, Infrared Encoder/Decoder 198
JTAG Boundary Scan 259
JTAG interface 257, 264
JTAG mode selection 258
JTAG Test Mode 10
MASTER TRANSMIT mode 211
PS019215-0910
Index
eZ80F91 MCU
Product Specification
367
master_en bit 204
Multibyte I/O Write (Row Programming) 100
multicast address 296, 312
multicast packet 311, 312
multimaster conflict 204, 209
Multi-PWM Control Registers 153
Multi-PWM Mode 145
Multi-PWM Power-Trip Mode 152
Mux/CLK Sync 265
Master-In, Slave-Out 202
Master-Out, Slave-In 202
MAXF 299
MAXF—see Maximum Frame Length 309
Maximum Frame Length 309
MBIST 96
MBIST Control 96
MDC 24, 314
MUX/CLK Sync, PLL 266
MDIO 25
Memory and I/O Chip Selects 65
Memory Built-In Self-Test controllers 96
Memory Chip Select Example 66
Memory Chip Select Operation 65
Memory Chip Select Priority 66
Memory Read 99
Memory Request 8
memory space 65, 68
Memory Write 101
Memory, EMAC 288
N
NACK 213, 217, 218, 220, 221, 226, 228
New Instructions, eZ80 CPU Core 39
NMI 9, 39, 46, 57, 115, 116, 117
NMI_flag bit 117
nmi_out bit 116
Nonmaskable Interrupt 9, 39
Nonmaskable interrupt 278
nonmaskable interrupt 46, 57, 115, 116
nonoverlapping delay, PWM 148, 151
Not Acknowledge 213
MII 287, 292, 306, 313, 324, 325, 326, 327
MISO—see SPI Master In Slave Out 19, 202, 204
mode fault 209
Mode Fault error flag 202
Mode Fault flag 204
Mode Fault, SPI Flag 204
Modem Status 186, 193
Modem status 178
O
OC0 20, 127, 129, 133, 135, 143, 144, 145
OC1 20, 127, 129, 133, 135
OC2 20, 127, 129, 133, 135
OC3 21, 127, 129, 133, 135, 144, 145
OCI Activation 258
OCI clock pin 258
OCI Interface 258
On-Chip Instrumentation, Introduction to 257
on-chip pull-up 340, 359
On-chip RAM 65, 93, 94
Op Code maps 280
Op-Code Map 280
Open source I/O 50
Open-drain I/O 50
open-drain I/O 50
open-drain mode 50
Open-drain output 50
open-drain output 211
open-source mode 51
modem status 179, 180, 190
modem status interrupt 198
Modem status signal 12, 13, 15, 16
MODF 202, 204, 209
Module Reset, UART 179
MOSI—see SPI Master Out Slave In 19, 202, 203,
204
Motorola Bus Mode 80
Motorola-compatible 70
mpwm_en 146, 153
MREQ 8, 9, 65, 71, 74, 75, 78, 346, 348
MREQ Hold Time 348
MSB 58, 139
Msb 291
msb 109, 137, 139, 141, 142, 145, 157, 158,
213, 237, 310, 318, 327, 329, 330, 331
PS019215-0910
Index
eZ80F91 MCU
Product Specification
368
Open-source output 50
open-source output 11, 12, 13, 14, 15, 16, 17, 18,
19
PD2 12, 198
PD3 12
PD4 12
Operating Modes, I2C 216
Operation of the eZ80F91 Device during ZDI Break
Points 238
PD5 13
PD6 13
PD7 13, 198
Ordering Information 358
Output Compare 128
Output compare mode 143
output compare mode 127, 128, 130, 133
overrun condition, receiver 178
Overrun error 192
Phase Frequency Detector 265
Phase Frequency Detector, PLL 266
PHI 19, 261
PHI Clock output 48
PHY 22, 24, 28, 29, 292, 296, 314, 315, 325,
326, 327
overrun error 175, 177, 185
Overview, Phase-Locked Loop 265
PHY, MII 288, 313
Pin Characteristics 6
Pin Coverage, JTAG Boundary Scan 259
Pin Description 4
P
PLL Characteristics 272
PLL Control Register 0 269
PLL Control Register 1 270
PLL Divider Control Register—Low and High
Bytes 268
PLL Loop Filter 13
PLL Normal Operation 267
PLL Registers 268
PLL_VDD 268
PLL_VSS 268
Poll Mode Transfers 181
PA7 150
Packaging 357
Page Erase 101
page erase 112
Page Erase operation 113
page erase operation 101, 109
PAIR_EN 153, 154
parity error 177, 188, 192
Part Number Description 360
PB0 17
POP, Op Code Map 280, 282, 284
POR Voltage Threshold 341
POR voltage threshold 42
POR/VBO analog RESET duration 341
POR/VBO DC current consumption 341
POR/VBO Hysteresis 341
Port A 20, 21, 47, 49, 58, 62, 63, 145
Port x Alternate Register 1 56
Port x Alternate Register 2 56
Port x Data Direction Registers 55
Port x Data Registers 55
PB1 17
PB2 17
PB3 18
PB4 18
PB5 18
PB6 19
PB7 19
PC0 14, 20
PC1 14, 20
PC2 15, 20
PC3 15, 21
Potential Hazards of Enabling Bus Requests During
Debug Mode 239
Power connections 2
PC4 15, 21
PC5 16, 21
PC6 16, 22
Power Requirement to the Phase-Locked Loop
Function 268
Power-On Reset 41, 42, 340
PC7 16, 22
PD0 11, 198
PD1 11, 198
PS019215-0910
Index
eZ80F91 MCU
Product Specification
369
power-trip 153
PWM1 20, 21, 127, 129, 147, 149
Power-Trip Mode, Multi-PWM 152
power-trip, multi-PWM 152
Primary Crystal Oscillator Operation 335
Program Counter 41, 45, 46, 59, 97, 250, 251,
255
PWM1 falling edge end-of-count 148, 151
PWM1 rising edge end-of-count 148, 151
pwm1_en 153
PWM1FH 148
PWM1RH 157, 158
Program Counter, Starting 60
Programmable Reload Timers 121
Programming Flash Memory 99
Promiscuous Mode 311
PWM1RL 157, 158
PWM2 20, 22, 127, 129, 147
PWM2 falling edge end-of-count 148
PWM2 rising edge end-of-count 148
pwm2_en 153
PT_EN 153
pull-up resistor, external 51, 211
Pulse-Width Modulation Control Register 1 153
Pulse-Width Modulation Control Register 2 154
Pulse-Width Modulation Control Register 3 156
Pulse-Width Modulation Falling Edge—High Byte
158
PWM2RH 148
PWM3 21, 22, 127, 147
pwm3_en 153
PWMCNTRL1 146
PWMCNTRL2 148
PWMCNTRL3 152
Pulse-Width Modulation Falling Edge—Low Byte
158
Pulse-Width Modulation Rising Edge—High Byte
157
Pulse-Width Modulation Rising Edge—Low Byte
157
Q
QMC 311
qualified multicast messages 311
PUSH, Op Code Map 280, 282, 284
PWM delay feature 151
PWM edge transition values 148, 149
PWM generator 145, 146, 147, 148, 153
PWM generators 146
R
RAM 93
RAM Address Upper Byte Register 95
RAM Control Register 94
Random Access Memory 93
PWM Master Mode 148
PWM mode 121, 127, 130, 131, 134
PWM mode, Multi- 145, 146, 148, 149, 153
PWM nonoverlapping delay 148
PWM nonoverlapping delay time 151
PWM Nonoverlapping Output Pair Delays 150
PWM output pairs 148
PWM outputs 149, 150, 152
PWM Outputs, AND/OR Gating 148, 149
PWM outputs, inverted 147
PWM pairs 149
RD 8, 65, 68, 71, 74, 75, 78
RD Assertion Delay 347, 350
RD Deassertion Delay 347, 350
Reading Flash Memory 98
Reading the Current Count Value 122
Real-Time Clock 41, 45, 159, 160, 161, 173
Real-Time Clock Alarm 160
Real-Time Clock alarm 45
Real-Time Clock Alarm Control Register 173
Real-Time Clock Alarm Day-of-the-Week Register
172
Real-Time Clock Alarm Hours Register 171
Real-Time Clock Alarm Minutes Register 170
Real-Time Clock Alarm Seconds Register 169
Real-Time Clock Battery Backup 160
PWM power-trip state 152
PWM signals 145
PWM trip levels 156
PWM waveform 149
PWM0 150
PS019215-0910
Index
eZ80F91 MCU
Product Specification
370
Real-Time Clock Century Register 168
Real-Time Clock Control Register 173
Real-Time Clock Day-of-the-Month Register 165
Real-Time Clock Day-of-the-Week Register 164
Real-Time Clock Hours Register 163
Real-Time Clock Minutes Register 162
Real-Time Clock Month Register 166
Real-Time Clock Oscillator and Source Selection
160
Real-Time Clock Overview 159
Real-Time Clock Recommended Operation 160
Real-Time Clock Registers 161
Real-Time Clock Seconds Register 161
Real-Time Clock signal 128
Real-Time Clock source 115, 118, 125
Real-Time Clock Year Register 167
Receive, Infrared Encoder/Decoder 196
Recommended Usage of the Baud Rate Generator
181
RTC_XOUT 10
RTS 191, 193, 198
RTS0 12
RTS1 15
RX_CLK 24
Rx_CLK 23
Rx_DV 24
Rx_ER 23
RxD0 11, 24
RxD1 14, 24
RxD2 24
RxD3 24
RxDMA 290
S
Schmitt Trigger 9
Schmitt trigger 9
Schmitt Trigger Input 9, 11, 14, 15, 17, 18, 25
Schmitt-trigger input buffers 49
SCK 18, 202
Register Set for Capture in Timer 1 130
Register Set for Capture/Compare/PWM in Timer 3
130
SCK Idle State 203
Request to Send 12, 15, 191
RESET 9, 41, 42, 45, 46, 50, 65, 93, 94, 105,
107, 115, 116, 161, 164, 165, 166, 167, 168,
169, 170, 171, 172, 173, 174, 181, 182, 199,
205, 206, 243, 245, 258, 260, 341
Reset controller 41, 42
RESET event 41, 49
RESET mode timer 41, 42
RESET Or NMI Generation 116
Reset States 66
RESET_OUT 260
Resetting the I2C Registers 223
RI 177, 191, 193
RI0 13, 198
RI1 16, 51
Ring Indicator 13, 16, 193
rising edge 147, 148, 150, 155
rst_flag bit 116
RTC Oscillator Input 128
RTC Supply Voltage 340
RTC_VDD 10
SCK pin 204, 208
SCK Receive Edge 203
SCK signal 204
SCK Transmit Edge 203
SCL 19, 211, 212, 213, 229
SCL line 214, 216
SCLK 41, 150, 265, 314
SClk 266
Sclk 267
SCLK periods 155
SDA 19, 211, 212, 213, 222
SDA line 215
see system reset 8
serial bus, SPI 209, 210
Serial Clock 211
Serial Clock, I2C 19
Serial Clock, SPI 18, 202
Serial Data 211
serial data 202
Serial Data, I2C 19
Serial Peripheral Interface 1, 47, 58, 62, 201,
202, 204
RTC_XIN 10
PS019215-0910
Index
eZ80F91 MCU
Product Specification
371
Serial Peripheral Interface flag 209, 210
Serial Peripheral Interface Functional Description
204
Setting Timer Duration 122
Single Pass Mode 123
SPIF status bit—see Serial Peripheral Interface flag
209
SPIF—see Serial Peripheral Interface flag 204,
209
SRA 279
single pass mode 121, 124, 132
Single-Byte I/O Write 99
SLA 218, 220, 224, 279
SLA, Op Code Map 285, 286
SLA, Op Code map 281
SLAVE mode 211, 225, 228
slave mode 222, 223, 224
SLAVE mode, SPI 204
Slave Receive 211, 222
Slave Select 202
Slave Transmit 211, 221
Slave Transmit mode 226
slave transmit mode 221, 222
SLEEP Mode 45
SLEEP mode 173, 245, 253
sleep-mode recovery 173
sleep-mode recovery reset 174
Software break point instruction 257
Specialty Timer Modes 126
SPI Baud Rate Generator 205
SPI Baud Rate Generator Registers—Low Byte and
High Byte 206
SRA, Op Code Map 281, 285
SRAM 1, 104, 231, 329, 359
SRAM, internal Ethernet 292
SS—see Slave Select 17, 202, 203, 204, 206,
208
STA 225
standard mode 211
Standard VHDL Package STD_1149_1_2001 260
START and STOP Conditions 212
START condition 212, 215, 216, 218, 219, 221,
222, 223, 225, 227, 228, 229, 230
start condition 213
Start Condition, ZDI 233
Starting Program Counter 59, 60
STOP condition 212, 213, 215, 219, 221, 222,
226, 227, 229, 230
Supply Voltage 340
supply voltage 2, 42, 50, 211, 267, 339
Switching Between Bus Modes 84
System clock 47, 48, 115
system clock 41, 45, 51, 54, 118, 125, 127, 132,
150, 181, 205, 229, 230, 238, 258, 266, 289,
354
system clock cycle 75, 78, 122
System Clock Cycle Time 344
system clock cycles 9, 68, 71, 72, 75, 78, 82,
116, 258
SPI Control Register 208
SPI Data Rate 205
SPI Flag 204
SPI interrupt service routine 58
SPI Master device 206
SPI master device 19
System clock divider 132
SPI MASTER mode 204
SPI mode 17
SPI Receive Buffer Register 210
SPI Registers 206
System Clock Fall Time 345
System Clock Frequency 122, 181, 205
system clock frequency 99, 101, 105, 106, 232
System Clock High Time 344
system clock jitter 127
SPI serial bus 209
SPI Serial Clock 18
SPI Signals 202
SPI slave device 19
SPI SLAVE mode 204
System Clock Low Time 344
System Clock Oscillator Input 14
System Clock Oscillator Output 13
system clock period 258
SPI Status Register 205, 209
SPI Transmit Shift Register 205, 206, 209
system clock periods 151
System Clock Rise Time 345
PS019215-0910
Index
eZ80F91 MCU
Product Specification
372
system clock rising edge 181, 205
System Clock Source 269
Timer Output Compare Value Register—High Byte
145
System clock source 270
system clock source 269
Timer Output Compare Value Register—Low Byte
144
system clock, high-frequency 205
system clock, internal 69
system RESET 41, 162, 163
system reset 160, 183, 267, 297
Timer Port Pin Allocation 129
Timer Registers 130
Timer Reload Register—High Byte 139
Timer Reload Register—Low Byte 138
TMS 258, 259
TOUT0 21, 129
T
TOUT1 21, 129
Trace buffer memory 257
Trace history buffer 257
Transferring Data 213
transmit shift register 176, 185, 188, 191
Transmit Shift Register, SPI 204, 205, 206, 209,
210
Transmit, Infrared Encoder/Decoder 196
trigger-level detection logic 176
TRIGOUT 258, 260
tristate 152
TRSTN 258, 259
Tx_CLK 23
Tx_EN 23
Tx_ER 23
TxD0 11, 23
TxD1 14, 23
TxD2 23
TxD3 22
T2 clock 151
T2 end-of-count 151
T23CLKCN 151
TAP 264
TAP Reset 258
TCK 233, 258, 259, 264
TDI 258, 259, 260
TDO 258, 259, 260
TERI 193
Test Access Port 257
Test Access Port instruction 264
Test Access Port state register 258
Test Mode 258
Time-Out Period Selection 116
Timer Control Register 132
Timer Data Register—High Byte 137
Timer Data Register—Low Byte 136
Timer Input Capture Control Register 139
Timer Input Capture Value A Register—High Byte
141
TxDMA 290
Timer Input Capture Value A Register—Low Byte
140
U
Timer Input Capture Value B Register—High Byte
142
UART Baud Rate Generator Register—Low and
High Bytes 182
Timer Input Capture Value B Register—Low Byte
141
Timer Input Source Selection 125
Timer Interrupt Enable Register 133
Timer Interrupt Identification Register 135
Timer Interrupts 124
UART FIFO Control Register 187
UART Functional Description 176
UART Functions 176
UART Interrupt Enable Register 184
UART Interrupt Identification Register 186
UART Interrupts 178
Timer Output 125
Timer Output Compare Control Register 1 142
Timer Output Compare Control Register 2 143
UART Line Control Register 188
UART Line Status Register 191
UART Modem Control 177
PS019215-0910
Index
eZ80F91 MCU
Product Specification
373
UART Modem Control Register 190
UART Modem Status Interrupt 179
UART Modem Status Register 193
UART Receive Buffer Register 184
UART Receiver 177
UART Receiver Interrupts 178
UART Recommended Usage 179
UART Registers 183
Wait States 68
Watchdog Timer 1, 45, 115, 116, 238
Watchdog Timer Control Register 117
Watchdog Timer Operation 116
Watchdog Timer Registers 117
Watchdog Timer Reset Register 119
Watchdog Timer time-out 41, 45, 46
wcOl 209
UART Scratch Pad Register 194
UART Transmit Holding Register 183
UART Transmitter 176
UART Transmitter Interrupt 178
Universal Asynchronous Receiver/Transmitter 175
Usage, JTAG Boundary Scan 264
WCOL—see Write Collision 204, 205
WDT 41, 45, 115, 116, 117
WDT clock source 115, 116, 118
WDT oscillator 117
WDT time-out 115, 116, 117, 119
WDT time-out period 116, 118
WP 25
WP pin 97, 107, 108, 109
WR 8, 65, 68, 71, 75, 78, 348, 351
Write Collision 205
write collision 204
write collision, SPI 209
V
VBO 41, 42, 340
VBO pulse reject period 341
VBO Voltage Threshold 341
VCC 2, 42, 341
VCC ramp rate 341
VCO 266, 273
vco 273
X
XIN input pin 335
VLAN tagged frame 309
Voltage Brown-Out 340
Voltage Brown-Out Reset 42
Voltage Controlled Oscillator 265
Voltage Controlled Oscillator, PLL 266
voltage signal, high 100
voltage, input 266
XOUT output pin 335
Z
Z80- 70
Z80 Bus Mode 71
ZCL 233, 236, 243
ZDA 233, 243, 258
voltage, peak-to-peak 273
voltage, supply 2, 50, 211, 267, 339, 340
ZDI 231, 232, 257
ZDI Address Match Registers 241
ZDI Block Read 238
ZDI Block Write 236
ZDI Break Control Register 242
ZDI Bus Control Register 249
ZDI Bus Status Register 255
ZDI Clock and Data Conventions 233
ZDI clock pin 233
W
WAIT 1, 9, 75, 78, 81, 82
WAIT condition 112
WAIT Input Signal 69
WAIT pin, external 71
WAIT state 72, 78, 352, 353
Wait State Timing for Read Operations 352
Wait State Timing for Write Operations 353
WAIT states 58, 75, 78, 87, 239
ZDI data pin 233
ZDI debug control 257
ZDI Master Control Register 245
PS019215-0910
Index
eZ80F91 MCU
Product Specification
374
ZDI Read Memory Register 255
ZDI Read Operations 237
ZDI Read Register Low, High, and Upper 254
ZDI Read/Write Control Register 247
ZDI Read-Only Registers 240
ZDI Register Addressing 235
ZDI Register Definitions 241
ZDI Single-Bit Byte Separator 234
ZDI Single-Byte Read 237
ZDI Single-Byte Write 236
ZDI Start Condition 233
ZDI Status Register 253
ZDI Write Data Registers 246
ZDI Write Memory Register 250
ZDI Write Only Registers 239
ZDI Write Operations 236
ZDI_BUS_STAT 239, 241, 255
ZDI_BUSACK_EN 238
ZDI_BUSAcK_En 255
ZDI-Supported Protocol 232
ZDS II 231
Zilog Debug Interface 231, 257
Zilog Developer Studio II 231
PS019215-0910
Index
eZ80F91 MCU
Product Specification
375
Customer Support
For answers to technical questions about the product, documentation, or any other issues
with Zilog’s offerings, visit Zilog’s Knowledge Base at http://www.zilog.com/kb.
For any comments, detail technical questions, or reporting problems, visit Zilog’s Techni-
cal Support at http://support.zilog.com.
PS019215-0910
Customer Support
相关型号:
EZ80F91AZA50EG
IC 8-BIT, FLASH, 50 MHz, MICROCONTROLLER, PQFP144, LEAD FREE, LQFP-144, Microcontroller
ZILOG
EZ80F91AZA50SG
IC 8-BIT, FLASH, 50 MHz, MICROCONTROLLER, PQFP144, LEAD FREE, LQFP-144, Microcontroller
ZILOG
EZ80F91NAA50EG
IC 8-BIT, FLASH, 50 MHz, MICROCONTROLLER, PBGA144, LEAD FREE, BGA-144, Microcontroller
ZILOG
EZ80F91NAA50SG
IC 8-BIT, FLASH, 50 MHz, MICROCONTROLLER, PBGA144, LEAD FREE, BGA-144, Microcontroller
ZILOG
©2020 ICPDF网 联系我们和版权申明