High-Performance 8-Bit Microcontrollers
Z8 Encore! XP® F1680
Series
Product Specification
PS025016-1013
PRELIMINARY
Copyright ©2013 Zilog®, Inc. All rights reserved.
www.zilog.com
Z8 Encore! XP® F1680 Series
Product Specification
ii
Warning: DO NOT USE THIS PRODUCT IN LIFE SUPPORT SYSTEMS.
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
©2013 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.
Z8, Z8 Encore!, Z8 Encore! XP and Z8 Encore! MC are trademarks or registered trademarks of Zilog, Inc.
All other product or service names are the property of their respective owners.
PS025016-1013
PRELIMINARY
Z8 Encore! XP® F1680 Series
Product Specification
iii
Revision History
Each instance in the Revision History table below reflects a change to this document from
its previous version. For more details, click the appropriate links in the table.
Revision
Level
Description
Page
Oct
2013
16
Added a clarification as to when the TOUT timer is
available for use.
106
Dec
2012
15
Added Timer Clock Source footnote to the TxCTS2
Register.
117
Nov
2012
14
In the Multi-Channel Timer chapter, corrected/
clarified instances of the TInA–TInD and TOutA–
TOutD to T4CHA–T4CHD GPIO pins to more
accurately address their relationship to TIN.
120
Oct
2011
13
Revised Flash Sector Protect Register descriptions
per CR 13212; revised Packaging chapter.
274, 371
May
2011
12
Correction to Trim Bit Address 0001h Register per
CR 13091.
283
Oct
2010
11
Comparator 1 Control Register (CMP1) address
formerly showed F90h; now corrected to F91h.
258
Sep
2010
10
Removed references to LSBF bit in Master-In/Slave- 199, 207
Out, Master-Out/Slave-In and SPI Master Operation
sections.
Aug
2010
09
Changed the frequency for the Internal Precision RC 316
Oscillator from 1.3842 to 1.3824 in Table 168 per CR
12961.
Jun
2008
08
Updated Trim Option Bits at 0005H (TVREF).
287
Mar
2008
07
Updated Operation of the On-Chip Debugger
Interface and Ordering Information sections. Added
Target OCD Connector Interface.
296
Date
PS025016-1013
PRELIMINARY
Revision History
Z8 Encore! XP® F1680 Series
Product Specification
iv
Date
PS025016-1013
Revision
Level
Description
Page
Oct
2007
06
Updated Trim Bit Address Description, Trim Bit
Address 0007H, Trim Bit Address 0008H, DC
Characteristics, Supply Current Characteristics, VDD
Versus Maximum System Clock Frequency,
Watchdog Timer Electrical Characteristics and
Timing, Analog-to-Digital Converter Electrical
Characteristics and Timing, Comparator Electrical
Characteristics, Low Power Operational Amplifier
Characteristics, IPO Electrical Characteristics and
Low Voltage Detect Electrical Characteristics. Added
Figure 73.
282, 288, 288,
350, 352, 356,
357, 359, 360,
361
Sep
2007
05
Updated Supply Current Characteristics.
352
Aug
2007
04
Changed description of Z8F16800144ZCOG to Z8
Encore! XP Dual 44-pin F1680 Series Development
Kit. Updated electrical characteristics in Table 189,
Table 190, Table 192, Table 193, Table 195, Table
196. Removed VBO_Trim section and table.
350, 352, 358,
359, 360, 374
PRELIMINARY
Revision History
Z8 Encore! XP® F1680 Series
Product Specification
v
Table of Contents
Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .iii
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xviii
Chapter 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1. Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Part Selection Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. An Overview of the eZ8 CPU and its Peripherals . . . . . . . . . . . . . . . . . . . . . .
1.4.1. General-Purpose Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2. Flash Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.3. Non-Volatile Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.4. Internal Precision Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.5. Crystal Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.6. Secondary Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.7. 10-Bit Analog-to-Digital Converter . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.8. Low-Power Operational Amplifier . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.9. Analog Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.10. Temperature Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.11. Low-Voltage Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.12. Enhanced SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.13. UART with LIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.14. Master/Slave I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.15. Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.16. Multi-Channel Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.17. Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.18. Reset Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.19. On-Chip Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.20. Direct LED Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Acronyms and Expansions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 2. Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1. Available Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Pin Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Pin Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PS025016-1013
PRELIMINARY
1
1
2
3
4
4
4
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
8
10
10
10
14
17
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
vi
Chapter 3. Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1. Register File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Program Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Data Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Flash Information Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
19
20
21
21
Chapter 4. Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
PS025016-1013
Chapter 5. Reset, Stop Mode Recovery and Low-Voltage Detection . . . . . . . . . . . . . .
5.1. Reset Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Reset Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1. Power-On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2. Voltage Brown-Out Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3. Watchdog Timer Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4. External Reset Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.5. External Reset Indicator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.6. On-Chip Debugger Initiated Reset . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Stop Mode Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1. Stop Mode Recovery Using Watchdog Timer Time-Out . . . . . . . . .
5.3.2. Stop Mode Recovery Using Timer Interrupt . . . . . . . . . . . . . . . . . .
5.3.3. Stop Mode Recovery Using Comparator Interrupt . . . . . . . . . . . . . .
5.3.4. Stop Mode Recovery Using GPIO Port Pin Transition . . . . . . . . . .
5.3.5. Stop Mode Recovery Using External RESET Pin . . . . . . . . . . . . . .
5.4. Low-Voltage Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5. Reset Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
31
33
34
35
36
37
37
37
37
38
38
39
39
39
39
40
Chapter 6. Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1. STOP Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. HALT Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3. Peripheral-Level Power Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Power Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
43
43
44
Chapter 7. General-Purpose Input/Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1. GPIO Port Availability by Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3. GPIO Alternate Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4. Direct LED Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5. Shared Reset Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6. Crystal Oscillator Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.7. 32 kHz Secondary Oscillator Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
46
47
47
48
48
48
48
PRELIMINARY
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
vii
7.8.
7.9.
7.10.
7.11.
5 V Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
External Clock Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GPIO Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GPIO Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.1. Port A–E Address Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.2. Port A–E Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.3. Port A–E Data Direction Subregisters . . . . . . . . . . . . . . . . . . . . . . .
7.11.4. Port A–E Alternate Function Subregisters . . . . . . . . . . . . . . . . . . . .
7.11.5. Port A–E Output Control Subregisters . . . . . . . . . . . . . . . . . . . . . . .
7.11.6. Port A–E High Drive Enable Subregisters . . . . . . . . . . . . . . . . . . . .
7.11.7. Port A–E Stop Mode Recovery Source Enable Subregisters . . . . . .
7.11.8. Port A–E Pull-up Enable Subregisters . . . . . . . . . . . . . . . . . . . . . . .
7.11.9. Port A–E Alternate Function Set 1 Subregisters . . . . . . . . . . . . . . .
7.11.10.Port A–E Alternate Function Set 2 Subregisters . . . . . . . . . . . . . . .
7.11.11.Port A–E Input Data Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.12.Port A–E Output Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.13.LED Drive Enable Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.11.14.LED Drive Level Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
49
58
58
59
60
60
61
62
62
63
63
64
64
65
66
66
67
Chapter 8. Interrupt Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1. Interrupt Vector Listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1. Master Interrupt Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.2. Interrupt Vectors and Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.3. Interrupt Assertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.4. Software Interrupt Assertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4. Interrupt Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.1. Interrupt Request 0 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.2. Interrupt Request 1 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.3. Interrupt Request 2 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.4. IRQ0 Enable High and Low Bit Registers . . . . . . . . . . . . . . . . . . . .
8.4.5. IRQ1 Enable High and Low Bit Registers . . . . . . . . . . . . . . . . . . . .
8.4.6. IRQ2 Enable High and Low Bit Registers . . . . . . . . . . . . . . . . . . . .
8.4.7. Interrupt Edge Select Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.8. Shared Interrupt Select Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.4.9. Interrupt Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
68
70
70
70
71
71
72
72
73
74
75
76
77
79
82
82
83
Chapter 9. Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
9.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
PS025016-1013
PRELIMINARY
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
viii
9.3.
9.2.1. Timer Clock Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9.2.2. Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.2.3. Timer Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.2.4. Reading the Timer Count Values . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.2.5. Timer Output Signal Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.2.6. Timer Noise Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9.2.7. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Timer Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
9.3.1. Timer 0–2 High and Low Byte Registers . . . . . . . . . . . . . . . . . . . . 109
9.3.2. Timer Reload High and Low Byte Registers . . . . . . . . . . . . . . . . . 109
9.3.3. Timer 0–2 PWM0 High and Low Byte Registers . . . . . . . . . . . . . . 110
9.3.4. Timer 0–2 PWM1 High and Low Byte Registers . . . . . . . . . . . . . . 111
9.3.5. Timer 0–2 Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
9.3.6. Timer 0–2 Status Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.3.7. Timer 0–2 Noise Filter Control Register . . . . . . . . . . . . . . . . . . . . 119
Chapter 10. Multi-Channel Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Timer Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.1. Multi-Channel Timer Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.2. Clock Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.3. Multi-Channel Timer Clock Prescaler . . . . . . . . . . . . . . . . . . . . . .
10.2.4. Multi-Channel Timer Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.5. Multi-Channel Timer Mode Control . . . . . . . . . . . . . . . . . . . . . . . .
10.2.6. Count Modulo Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.7. Count Up/Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3. Capture/Compare Channel Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.1. One-Shot Compare Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.2. Continuous Compare Operation . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.3. PWM Output Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.4. Capture Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4. Multi-Channel Timer Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4.1. Timer Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.4.2. Capture/Compare Channel Interrupt . . . . . . . . . . . . . . . . . . . . . . . .
10.5. Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.1. Operation in HALT Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.2. Operation in STOP Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.5.3. Power Reduction During Operation . . . . . . . . . . . . . . . . . . . . . . . .
10.6. Multi-Channel Timer Applications Examples . . . . . . . . . . . . . . . . . . . . . . .
10.6.1. PWM Programmable Deadband Generation . . . . . . . . . . . . . . . . .
10.6.2. Multiple Timer Intervals Generation . . . . . . . . . . . . . . . . . . . . . . .
PS025016-1013
PRELIMINARY
120
120
121
121
121
122
122
122
122
123
124
124
124
125
125
125
125
125
126
126
126
126
126
126
127
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
ix
PS025016-1013
10.7. Multi-Channel Timer Control Register Definitions . . . . . . . . . . . . . . . . . . .
10.7.1. Multi-Channel Timer Address Map . . . . . . . . . . . . . . . . . . . . . . . .
10.7.2. Multi-Channel Timer High and Low Byte Registers . . . . . . . . . . .
10.7.3. Multi-Channel Timer Reload High and Low Byte Registers . . . . .
10.7.4. Multi-Channel Timer Subaddress Register . . . . . . . . . . . . . . . . . . .
10.7.5. Multi-Channel Timer Subregister x (0, 1, or 2) . . . . . . . . . . . . . . .
10.7.6. Multi-Channel Timer Control 0, Control 1 Registers . . . . . . . . . . .
10.7.7. Multi-Channel Timer Channel Status 0 and Status 1 Registers . . .
10.7.8. Multi-Channel Timer Channel-y Control Registers . . . . . . . . . . . .
10.7.9. Multi-Channel Timer Channel-y High and Low Byte Registers . .
128
128
130
130
131
132
132
135
137
139
Chapter 11. Watchdog Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1.1. Watchdog Timer Refresh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.1.2. Watchdog Timer Time-Out Response . . . . . . . . . . . . . . . . . . . . . .
11.1.3. Watchdog Timer Reload Unlock Sequence . . . . . . . . . . . . . . . . . .
11.2. Watchdog Timer Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.2.1. Watchdog Timer Reload High and Low Byte Registers . . . . . . . .
140
140
141
141
142
142
143
Chapter 12. LIN-UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1. LIN-UART Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.1. Data Format for Standard UART Modes . . . . . . . . . . . . . . . . . . . .
12.1.2. Transmitting Data using the Polled Method . . . . . . . . . . . . . . . . . .
12.1.3. Transmitting Data Using Interrupt-Driven Method . . . . . . . . . . . .
12.1.4. Receiving Data Using Polled Method . . . . . . . . . . . . . . . . . . . . . .
12.1.5. Receiving Data Using the Interrupt-Driven Method . . . . . . . . . . .
12.1.6. Clear To Send Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.7. External Driver Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.8. LIN-UART Special Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.9. MULTIPROCESSOR Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.10.LIN Protocol Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.11.LIN-UART Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.1.12.LIN-UART Baud Rate Generator . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2. Noise Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.2.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3. LIN-UART Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.1. LIN-UART Transmit Data Register . . . . . . . . . . . . . . . . . . . . . . . .
12.3.2. LIN-UART Receive Data Register . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.3. LIN-UART Status 0 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.4. LIN-UART Mode Select and Status Register . . . . . . . . . . . . . . . . .
144
144
145
146
147
148
149
150
150
151
151
153
157
160
160
161
161
163
163
164
165
168
PRELIMINARY
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
x
12.3.5. LIN-UART Control 0 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.6. LIN-UART Control 1 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.7. Noise Filter Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.8. LIN Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.3.9. LIN-UART Address Compare Register . . . . . . . . . . . . . . . . . . . . .
12.3.10.LIN-UART Baud Rate High and Low Byte Registers . . . . . . . . . .
170
171
174
175
177
177
Chapter 13. Infrared Encoder/Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2.1. Transmitting IrDA Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2.2. Receiving IrDA Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3. Infrared Encoder/Decoder Control Register Definitions . . . . . . . . . . . . . . .
182
182
182
183
184
185
Chapter 14. Analog-to-Digital Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2.1. ADC Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2.2. ADC Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2.3. Reference Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.2.4. Internal Voltage Reference Generator . . . . . . . . . . . . . . . . . . . . . .
14.2.5. Calibration and Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3. ADC Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.1. ADC Control Register 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.2. ADC Raw Data High Byte Register . . . . . . . . . . . . . . . . . . . . . . . .
14.3.3. ADC Data High Byte Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.4. ADC Data Low Bits Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.5. Sample Settling Time Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.6. Sample Time Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14.3.7. ADC Clock Prescale Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
186
186
186
187
188
188
189
189
189
189
191
191
192
193
194
195
Chapter 15. Low-Power Operational Amplifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Chapter 16. Enhanced Serial Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2. ESPI Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2.1. Master-In/Slave-Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2.2. Master-Out/Slave-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2.3. Serial Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.2.4. Slave Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3.1. Throughput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PS025016-1013
PRELIMINARY
197
197
199
199
199
199
200
200
201
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
xi
16.3.2. ESPI Clock Phase and Polarity Control . . . . . . . . . . . . . . . . . . . . .
16.3.3. Slave Select Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3.4. SPI Protocol Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3.5. Error Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3.6. ESPI Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.3.7. ESPI Baud Rate Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4. ESPI Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.1. ESPI Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.2. ESPI Transmit Data Command and Receive Data Buffer Control
Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.3. ESPI Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.4. ESPI Mode Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.5. ESPI Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.6. ESPI State Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16.4.7. ESPI Baud Rate High and Low Byte Registers . . . . . . . . . . . . . . .
201
203
207
210
211
212
213
213
Chapter 17. I2C Master/Slave Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.1.1. I2C Master/Slave Controller Registers . . . . . . . . . . . . . . . . . . . . . .
17.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2.1. SDA and SCL Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2.2. I2C Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2.3. Start and Stop Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2.4. Software Control of I2C Transactions . . . . . . . . . . . . . . . . . . . . . .
17.2.5. Master Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.2.6. Slave Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3. I2C Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.1. I2C Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.2. I2C Interrupt Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.3. I2C Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.4. I2C Baud Rate High and Low Byte Registers . . . . . . . . . . . . . . . .
17.3.5. I2C State Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.6. I2C Mode Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17.3.7. I2C Slave Address Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
223
223
224
225
225
226
228
228
228
236
243
243
245
247
248
250
253
255
Chapter 18. Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.2. Comparator Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . .
18.2.1. Comparator 0 Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18.2.2. Comparator 1 Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . .
256
256
257
257
258
214
215
217
219
220
221
Chapter 19. Temperature Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
PS025016-1013
PRELIMINARY
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
xii
19.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
19.1.1. Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Chapter 20. Flash Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.1. Flash Information Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2.1. Flash Operation Timing Using Flash Frequency Registers . . . . . .
20.2.2. Flash Code Protection Against External Access . . . . . . . . . . . . . . .
20.2.3. Flash Code Protection Against Accidental Program and Erasure .
20.2.4. Byte Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2.5. Page Erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2.6. Mass Erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2.7. Flash Controller Bypass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.2.8. Flash Controller Behavior in Debug Mode . . . . . . . . . . . . . . . . . . .
20.3. Flash Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.1. Flash Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.2. Flash Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.3. Flash Page Select Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.4. Flash Sector Protect Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20.3.5. Flash Frequency High and Low Byte Registers . . . . . . . . . . . . . . .
262
262
265
267
267
267
269
270
270
270
271
271
271
272
273
274
274
Chapter 21. Flash Option Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.1.1. Option Bit Configuration by Reset . . . . . . . . . . . . . . . . . . . . . . . . .
21.1.2. Option Bit Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.2. Flash Option Bit Control Register Definitions . . . . . . . . . . . . . . . . . . . . . .
21.2.1. User Option Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.2.2. Trim Bit Data Option Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.2.3. Trim Bit Address Option Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.2.4. Trim Bit Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21.2.5. Zilog Calibration Option Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
276
276
276
277
278
278
281
281
282
289
Chapter 22. Nonvolatile Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.2. NVDS Code Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.2.1. Byte Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.2.2. Byte Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.2.3. Power Failure Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22.2.4. Optimizing NVDS Memory Usage for Execution Speed . . . . . . . .
290
290
290
291
291
292
293
Chapter 23. On-Chip Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
23.1. Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
PS025016-1013
PRELIMINARY
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
xiii
23.2. Operation of the On-Chip Debugger Interface . . . . . . . . . . . . . . . . . . . . . .
23.2.1. DEBUG Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.2. OCD Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.3. OCD Autobaud Detector/Generator . . . . . . . . . . . . . . . . . . . . . . . .
23.2.4. High Speed Synchronous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.5. OCD Serial Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.6. Automatic Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.7. Transmit Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.8. Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.2.9. OCDCNTR Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.3. On-Chip Debugger Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.4. On-Chip Debugger Control Register Definitions . . . . . . . . . . . . . . . . . . . .
23.4.1. OCD Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.4.2. OCD Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.4.3. Line Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23.4.4. Baud Reload Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
295
297
298
298
299
300
301
301
301
302
303
309
310
312
313
314
Chapter 24. Oscillator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.1.1. System Clock Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.1.2. Clock Failure Detection and Recovery . . . . . . . . . . . . . . . . . . . . . .
24.2. Peripheral Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.3. Oscillator Control Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.3.1. Oscillator Control 0 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24.3.2. Oscillator Control1 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
315
315
315
317
318
318
318
320
Chapter 25. Crystal Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25.1. Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25.2. Main Crystal Oscillator Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25.3. Main Oscillator Operation with External RC Network . . . . . . . . . . . . . . . .
25.4. Secondary Crystal Oscillator Operation . . . . . . . . . . . . . . . . . . . . . . . . . . .
321
321
322
323
325
Chapter 26. Internal Precision Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
26.1. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Chapter 27. eZ8 CPU Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27.1. Assembly Language Programming Introduction . . . . . . . . . . . . . . . . . . . . .
27.2. Assembly Language Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27.3. eZ8 CPU Instruction Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27.4. eZ8 CPU Instruction Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27.5. eZ8 CPU Instruction Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PS025016-1013
PRELIMINARY
328
328
329
330
331
336
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
xiv
Chapter 28. Op Code Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Chapter 29. Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.1. Absolute Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.2. DC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.3. AC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.4. On-Chip Peripheral AC and DC Electrical Characteristics . . . . . . . . . . . . .
29.4.1. General Purpose I/O Port Input Data Sample Timing . . . . . . . . . .
29.4.2. General Purpose I/O Port Output Timing . . . . . . . . . . . . . . . . . . . .
29.4.3. On-Chip Debugger Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29.4.4. UART Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
349
349
350
357
358
366
367
368
369
Chapter 30. Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
Chapter 31. Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
31.1. Part Number Suffix Designations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
PS025016-1013
PRELIMINARY
Table of Contents
Z8 Encore! XP® F1680 Series
Product Specification
xv
List of Figures
Figure 1.
F1680 Series MCU Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 2.
Z8F2480, Z8F1680 and Z8F0880 in 20-Pin SOIC, SSOP or PDIP
Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figure 3.
Z8F2480, Z8F1680 and Z8F0880 in 28-Pin SOIC, SSOP or PDIP
Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figure 4.
Z8F2480, Z8F1680 and Z8F0880 in 40-Pin Dual Inline Package (PDIP) . 12
Figure 5.
Z8F2480, Z8F1680 and Z8F0880 in 44-Pin Low-Profile Quad Flat
Package (LQFP) or Quad Flat No Lead (QFN) . . . . . . . . . . . . . . . . . . . . . . 13
Figure 6.
Power-On Reset Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figure 7.
Power-On Reset Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Figure 8.
Voltage Brown-Out Reset Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Figure 9.
GPIO Port Pin Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Figure 10. Interrupt Controller Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Figure 11. Timer Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Figure 12. Noise Filter System Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Figure 13. Noise Filter Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Figure 14. Multi-Channel Timer Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Figure 15. Count Modulo Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Figure 16. Count Up/Down Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Figure 17. Count Up/Down Mode with PWM Channel Outputs and Deadband . . . . 127
Figure 18. Count Max Mode with Channel Compare . . . . . . . . . . . . . . . . . . . . . . . . . 128
Figure 19. LIN-UART Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Figure 20. LIN-UART Asynchronous Data Format without Parity . . . . . . . . . . . . . . 146
Figure 21. LIN-UART Asynchronous Data Format with Parity . . . . . . . . . . . . . . . . . 146
Figure 22. LIN-UART Driver Enable Signal Timing with One Stop Bit and Parity . 151
Figure 23. LIN-UART Asynchronous MULTIPROCESSOR Mode Data Format . . 152
Figure 24. LIN-UART Receiver Interrupt Service Routine Flow . . . . . . . . . . . . . . . 159
Figure 25. Noise Filter System Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Figure 26. Noise Filter Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
PS025016-1013
PRELIMINARY
List of Figures
Z8 Encore! XP® F1680 Series
Product Specification
xvi
Figure 27. Infrared Data Communication System Block Diagram . . . . . . . . . . . . . . 182
Figure 28. Infrared Data Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Figure 29. IrDA Data Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Figure 30. Analog-to-Digital Converter Block Diagram . . . . . . . . . . . . . . . . . . . . . . 187
Figure 31. ADC Timing Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Figure 32. ADC Convert Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Figure 33. ESPI Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Figure 34. ESPI Timing when PHASE = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Figure 35. ESPI Timing when PHASE = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Figure 36. SPI Mode (SSMD = 00) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Figure 37. Synchronous Frame Sync Pulse mode (SSMD = 10) . . . . . . . . . . . . . . . . 206
Figure 38. Synchronous Message Framing Mode (SSMD = 11), Multiple Frames . . 207
Figure 39. ESPI Configured as an SPI Master in a Single Master, Single Slave
System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Figure 40. ESPI Configured as an SPI Master in a Single Master, Multiple Slave
System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Figure 41. ESPI Configured as an SPI Slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Figure 42. I2C Controller Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Figure 43. Data Transfer Format—Master Write Transaction with a 7-Bit Address . 230
Figure 44. Data Transfer Format—Master Write Transaction with a 10-Bit Address 231
Figure 45. Data Transfer Format—Master Read Transaction with a 7-Bit Address . 233
Figure 46. Data Transfer Format—Master Read Transaction with a 10-Bit Address 234
Figure 47. Data Transfer Format—Slave Receive Transaction with 7-Bit Address . . 238
Figure 48. Data Transfer Format—Slave Receive Transaction with 10-Bit Address . 239
Figure 49. Data Transfer Format—Slave Transmit Transaction with 7-bit Address . 240
Figure 50. Data Transfer Format—Slave Transmit Transaction with 10-Bit Address 242
Figure 51. 8 KB Flash Memory Arrangement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Figure 52. 16 KB Flash Memory Arrangement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Figure 53. 24 KB Flash Memory Arrangement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Figure 54. Flowchart: Flash Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Figure 55. On-Chip Debugger Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
PS025016-1013
PRELIMINARY
List of Figures
Z8 Encore! XP® F1680 Series
Product Specification
xvii
Figure 56. Target OCD Connector Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Figure 57. Interfacing the On-Chip Debugger’s DBG Pin with an RS-232 Interface,
#1 of 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Figure 58. Interfacing the On-Chip Debugger’s DBG Pin with an RS-232 Interface,
#2 of 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Figure 59. OCD Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Figure 60. Synchronous Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Figure 61. Start Bit Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Figure 62. Recommended 20 MHz Crystal Oscillator Configuration . . . . . . . . . . . . . 322
Figure 63. Connecting the On-Chip Oscillator to an External RC Network . . . . . . . . 323
Figure 64. Typical RC Oscillator Frequency as a Function of External Capacitance 324
Figure 65. Recommended 32 kHz Crystal Oscillator Configuration . . . . . . . . . . . . . . 325
Figure 66. Op Code Map Cell Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Figure 67. First Op Code Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Figure 68. Second Op Code Map after 1Fh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Figure 69. Typical Active Flash Mode Supply Current (1–20 MHz) . . . . . . . . . . . . . 353
Figure 70. Typical Active PRAM Mode Supply Current (1–20 MHz) . . . . . . . . . . . . 354
Figure 71. Typical Active Flash Mode Supply Current (32–900 kHz) . . . . . . . . . . . . 354
Figure 72. Typical Active PRAM Mode Supply Current (32–900 kHz) . . . . . . . . . . . 355
Figure 73. STOP Mode Current Consumption as a Function of VDD with
Temperature as a Parameter; all Peripherals Disabled . . . . . . . . . . . . . . . 356
Figure 74. VDD Versus Maximum System Clock Frequency . . . . . . . . . . . . . . . . . . 357
Figure 75. Port Input Sample Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Figure 76. GPIO Port Output Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Figure 77. On-Chip Debugger Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Figure 78. UART Timing With CTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Figure 79. UART Timing Without CTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
PS025016-1013
PRELIMINARY
List of Figures
Z8 Encore! XP® F1680 Series
Product Specification
xviii
List of Tables
PS025016-1013
Table 1.
Z8 Encore! XP F1680 Series Part Selection Guide . . . . . . . . . . . . . . . . . . . . 2
Table 2.
F1680 Series MCU Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Table 3.
Z8 Encore! XP F1680 Series Package Options . . . . . . . . . . . . . . . . . . . . . . 10
Table 4.
Signal Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Table 5.
Pin Characteristics (20-, 28-, 40- and 44-pin Devices). . . . . . . . . . . . . . . . . 17
Table 6.
F1680 Series MCU Program Memory Maps . . . . . . . . . . . . . . . . . . . . . . . . 20
Table 7.
F1680 Series MCU Flash Memory Information Area Map . . . . . . . . . . . . . 22
Table 8.
Register File Address Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Table 9.
Reset and Stop Mode Recovery Characteristics and Latency . . . . . . . . . . . 32
Table 10.
Reset Sources and Resulting Reset Type . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Table 11.
Stop Mode Recovery Sources and Resulting Action . . . . . . . . . . . . . . . . . . 38
Table 12.
Reset Status Register (RSTSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table 13.
Reset Status Per Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 14.
Power Control Register 0 (PWRCTL0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 15.
Setup Condition for LVD and VBO Circuits in Different Operation Modes 45
Table 16.
Port Availability by Device and Package Type . . . . . . . . . . . . . . . . . . . . . . 46
Table 17.
Port Alternate Function Mapping, 20-Pin Parts1,2. . . . . . . . . . . . . . . . . . . . 49
Table 18.
Port Alternate Function Mapping, 28-Pin Parts1,2. . . . . . . . . . . . . . . . . . . . 51
Table 19.
Port Alternate Function Mapping, 40-/44-Pin Parts1,2 . . . . . . . . . . . . . . . . 54
Table 20.
GPIO Port Registers and Subregisters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Table 21.
Port A–E GPIO Address Registers (PxADDR) . . . . . . . . . . . . . . . . . . . . . . 59
Table 22.
Port A–E Control Registers (PxCTL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Table 23.
Port A–E Data Direction Subregisters (PxDD) . . . . . . . . . . . . . . . . . . . . . . 60
Table 24.
Port A–E Alternate Function Subregisters (PxAF). . . . . . . . . . . . . . . . . . . . 61
Table 25.
Port A–E Output Control Subregisters (PxOC) . . . . . . . . . . . . . . . . . . . . . . 62
Table 26.
Port A–E High Drive Enable Subregisters (PxHDE) . . . . . . . . . . . . . . . . . . 62
Table 27.
Port A–E Stop Mode Recovery Source Enable Subregisters (PxSMRE). . . 63
Table 28.
Port A–E Pull-Up Enable Subregisters (PxPUE) . . . . . . . . . . . . . . . . . . . . . 63
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xix
PS025016-1013
Table 29.
Port A–E Alternate Function Set 1 Subregisters (PxAFS1) . . . . . . . . . . . . . 64
Table 30.
Port A–E Alternate Function Set 2 Subregisters (PxAFS2) . . . . . . . . . . . . . 65
Table 31.
Port A–E Input Data Registers (PxIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Table 32.
Port A–E Output Data Register (PxOUT) . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Table 33.
LED Drive Enable (LEDEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Table 34.
LED Drive Level High Bit Register (LEDLVLH) . . . . . . . . . . . . . . . . . . . . 67
Table 35.
LED Drive Level Low Bit Register (LEDLVLL) . . . . . . . . . . . . . . . . . . . . 67
Table 36.
Trap and Interrupt Vectors in Order of Priority . . . . . . . . . . . . . . . . . . . . . . 69
Table 37.
Interrupt Request 0 Register (IRQ0). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Table 38.
Interrupt Request 1 Register (IRQ1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Table 39.
Interrupt Request 2 Register (IRQ2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Table 40.
IRQ0 Enable and Priority Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Table 41.
IRQ0 Enable High Bit Register (IRQ0ENH) . . . . . . . . . . . . . . . . . . . . . . . . 76
Table 42.
IRQ0 Enable Low Bit Register (IRQ0ENL). . . . . . . . . . . . . . . . . . . . . . . . . 77
Table 43.
IRQ1 Enable and Priority Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Table 44.
IRQ1 Enable High Bit Register (IRQ1ENH) . . . . . . . . . . . . . . . . . . . . . . . . 78
Table 45.
IRQ2 Enable and Priority Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Table 46.
IRQ1 Enable Low Bit Register (IRQ1ENL). . . . . . . . . . . . . . . . . . . . . . . . . 79
Table 47.
IRQ2 Enable High Bit Register (IRQ2ENH) . . . . . . . . . . . . . . . . . . . . . . . . 80
Table 48.
IRQ2 Enable Low Bit Register (IRQ2ENL). . . . . . . . . . . . . . . . . . . . . . . . . 81
Table 49.
Interrupt Edge Select Register (IRQES). . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Table 50.
Shared Interrupt Select Register (IRQSS) . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Table 51.
Interrupt Control Register (IRQCTL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Table 52.
Timer Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Table 53.
TRIGGERED ONE-SHOT Mode Initialization Example . . . . . . . . . . . . . . 89
Table 54.
DEMODULATION Mode Initialization Example . . . . . . . . . . . . . . . . . . . 105
Table 55.
Timer 0–2 High Byte Register (TxH). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Table 56.
Timer 0–2 Low Byte Register (TxL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Table 57.
Timer 0–2 Reload High Byte Register (TxRH) . . . . . . . . . . . . . . . . . . . . . 110
Table 58.
Timer 0–2 Reload Low Byte Register (TxRL). . . . . . . . . . . . . . . . . . . . . . 110
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xx
PS025016-1013
Table 59.
Timer 0–2 PWM0 High Byte Register (TxPWM0h) . . . . . . . . . . . . . . . . . 110
Table 60.
Timer 0-2 PWM1 High Byte Register (TxPWM1h) . . . . . . . . . . . . . . . . . 111
Table 61.
Timer 0–2 PWM1 Low Byte Register (TxPWM1L) . . . . . . . . . . . . . . . . . 111
Table 62.
Timer 0–2 PWM0 Low Byte Register (TxPWM0L) . . . . . . . . . . . . . . . . . 111
Table 63.
Timer 0–2 Control 0 Register (TxCTL0) . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Table 64.
Timer 0–2 Control 1 Register (TxCTL1) . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Table 65.
Timer 0–2 Control 2 Register (TxCTL2) . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Table 66.
Timer 0–2 Status Register (TxSTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Table 67.
Timer 0–2 Noise Filter Control Register (TxNFC) . . . . . . . . . . . . . . . . . . 119
Table 68.
Timer Count Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Table 69.
Multi-Channel Timer Address Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Table 70.
Multi-Channel Timer High and Low Byte Registers (MCTH, MCTL) . . . 130
Table 71.
Multi-Channel Timer Reload High and Low Byte Registers
(MCTRH, MCTRL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Table 72.
Multi-Channel Timer Subaddress Register (MCTSA) . . . . . . . . . . . . . . . . 132
Table 73.
Multi-Channel Timer Subregister x (MCTSRx). . . . . . . . . . . . . . . . . . . . . 132
Table 74.
Multi-Channel Timer Control 0 Register (MCTCTL0) . . . . . . . . . . . . . . . 132
Table 75.
Multi-Channel Timer Control 1 Register (MCTCTL1) . . . . . . . . . . . . . . . 134
Table 76.
Multi-Channel Timer Channel Status 0 Register (MCTCHS0) . . . . . . . . . 135
Table 77.
Multi-Channel Timer Channel Status 1 Register (MCTCHS1) . . . . . . . . . 136
Table 78.
Multi-Channel Timer Channel Control Register (MCTCHyCTL). . . . . . . 137
Table 79.
Multi-Channel Timer Channel-y High Byte Registers (MCTCHyH)* . . . 139
Table 80.
Watchdog Timer Approximate Time-Out Delays . . . . . . . . . . . . . . . . . . . 141
Table 81.
Watchdog Timer Reload High Byte Register (WDTH = FF2h). . . . . . . . . 143
Table 82.
Watchdog Timer Reload Low Byte Register . . . . . . . . . . . . . . . . . . . . . . . 143
Table 83.
LIN-UART Transmit Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Table 84.
LIN-UART Receive Data Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Table 85.
LIN-UART Status 0 Register—Standard UART Mode
(U0STAT0 = F41h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Table 86.
LIN-UART Status 0 Register—LIN Mode (U0STAT0 = F41h) . . . . . . . . 166
Table 87.
LIN-UART Mode Select and Status Register (U0MDSTAT = F44h) . . . . 168
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xxi
Table 88.
Mode Status Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Table 89.
LIN-UART Control 0 Register (U0CTL0 = F42h) . . . . . . . . . . . . . . . . . . 170
Table 90.
Multiprocessor Control Register (U0CTL1 = F43h with MSEL = 000b) . 172
Table 91.
Noise Filter Control Register (U0CTL1 = F43h with MSEL = 001b) . . . . 174
Table 92.
LIN Control Register (U0CTL1 = F43h with MSEL = 010b) . . . . . . . . . . 175
Table 93.
LIN-UART Address Compare Register (U0ADDR = F45h) . . . . . . . . . . . 177
Table 94.
LIN-UART Baud Rate High Byte Register (U0BRH = F46h). . . . . . . . . . 177
Table 95.
LIN-UART Baud Rate Low Byte Register (U0BRL = F47h) . . . . . . . . . . 178
Table 96.
LIN-UART Baud Rates, 20.0 MHz System Clock . . . . . . . . . . . . . . . . . . . 179
Table 97.
LIN-UART Baud Rates, 10.0 MHz System Clock . . . . . . . . . . . . . . . . . . . 179
Table 98.
LIN-UART Baud Rates, 5.5296 MHz System Clock . . . . . . . . . . . . . . . . . 180
Table 99.
LIN-UART Baud Rates, 3.579545 MHz System Clock . . . . . . . . . . . . . . . 180
Table 100. LIN-UART Baud Rates, 1.8432 MHz System Clock . . . . . . . . . . . . . . . . 181
Table 101. ADC Control Register 0 (ADCCTL0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Table 102. ADC Raw Data High Byte Register (ADCRD_H). . . . . . . . . . . . . . . . . . . 191
Table 103. ADC Data High Byte Register (ADCD_H) . . . . . . . . . . . . . . . . . . . . . . . . 191
Table 104. ADC Data Low Bits Register (ADCD_L) . . . . . . . . . . . . . . . . . . . . . . . . . 192
Table 105. Sample Settling Time (ADCSST). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Table 106. Sample Time (ADCST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Table 107. ADC Clock Prescale Register (ADCCP) . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Table 108. ESPI Clock Phase (PHASE) and Clock Polarity (CLKPOL) Operation . . 201
Table 109. ESPI Data Register (ESPIDATA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Table 110. ESPI Transmit Data Command and Receive Data Buffer Control Register
(ESPITDCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Table 111. ESPI Control Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Table 112. ESPI Mode Register (ESPIMODE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Table 113. ESPI Status Register (ESPISTAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Table 114. ESPI State Register (ESPISTATE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Table 115. ESPISTATE Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Table 116. ESPI Baud Rate High Byte Register (ESPIBRH) . . . . . . . . . . . . . . . . . . . 222
Table 117. ESPI Baud Rate Low Byte Register (ESPIBRL) . . . . . . . . . . . . . . . . . . . . 222
PS025016-1013
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xxii
Table 118. I2C Master/Slave Controller Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Table 119. I2C Data Register (I2CDATA = F50h) . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Table 120. I2C Interrupt Status Register (I2CISTAT = F51h). . . . . . . . . . . . . . . . . . . 245
Table 121. I2C Control Register (I2CCTL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Table 122. I2C Baud Rate High Byte Register (I2CBRH = 53h). . . . . . . . . . . . . . . . . 248
Table 123. I2C Baud Rate Low Byte Register (I2CBRL = F54h) . . . . . . . . . . . . . . . . 249
Table 124. I2C State Register (I2CSTATE)—Description when DIAG = 1 . . . . . . . . 250
Table 125. I2C State Register (I2CSTATE)—Description when DIAG = 0 . . . . . . . . 251
Table 126. I2CSTATE_L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Table 127. I2CSTATE_H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Table 128. I2C Mode Register (I2C Mode = F56h) . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Table 129. I2C Slave Address Register (I2CSLVAD = 57h). . . . . . . . . . . . . . . . . . . . 255
Table 130. Comparator 0 Control Register (CMP0). . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Table 131. Comparator 1 Control Register (CMP1). . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Table 132. Z8 Encore! XP F1680 Series Flash Memory Configurations. . . . . . . . . . . 262
Table 133. Flash Code Protection Using the Flash Option Bit. . . . . . . . . . . . . . . . . . . 268
Table 134. Flash Control Register (FCTL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Table 135. Flash Status Register (FSTAT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Table 136. Flash Page Select Register (FPS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Table 137. Flash Sector Protect Register (FPROT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Table 138. Flash Frequency High Byte Register (FFREQH) . . . . . . . . . . . . . . . . . . . . 275
Table 139. Flash Frequency Low Byte Register (FFREQL) . . . . . . . . . . . . . . . . . . . . 275
Table 140. Flash Option Bits at Program Memory Address 0000h . . . . . . . . . . . . . . . 278
Table 141. Flash Option Bits at Program Memory Address 0001h . . . . . . . . . . . . . . . 280
Table 142. Trim Bit Data Register (TRMDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Table 143. Trim Bit Address Register (TRMADR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Table 144. Trim Bit Address Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Table 145. Trim Bit Address Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Table 146. Trim Option Bits at Address 0000h (TTEMP0) . . . . . . . . . . . . . . . . . . . . . 282
Table 147. Trim Option Bits at 0001h (TTEMP1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
PS025016-1013
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xxiii
Table 148. Trim Option Bits at 0002h (TIPO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Table 149. Trim Option Bits at Address 0003h (TLVD_VBO) . . . . . . . . . . . . . . . . . . 284
Table 150. LVD_Trim Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Table 151. Trim Option Bits at 0004h (TCOMP_ADC) . . . . . . . . . . . . . . . . . . . . . . . 286
Table 152. Truth Table of HYS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Table 153. Trim Option Bits at 0005h (TVREF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Table 154. Trim Option Bits at 0006h (TBG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Table 155. Trim Option Bits at 0007h (TFilter0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Table 156. Trim Option Bits at 0008h (TFilter1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Table 157. Temperature Sensor Calibration High Byte at FE60h (TEMPCALH). . . . 289
Table 158. Temperature Sensor Calibration Low Byte at FE61h (TEMPCALL) . . . . 289
Table 159. Write Status Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Table 160. Read Status Byte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Table 161. NVDS Read Time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Table 162. OCD Baud-Rate Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Table 163. On-Chip Debugger Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Table 164. OCD Control Register (OCDCTL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Table 165. OCD Status Register (OCDSTAT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Table 166. OCD Line Control Register (OCDLCR) . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Table 167. Baud Reload Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Table 168. Oscillator Configuration and Selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Table 169. Peripheral Clock Source and Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Table 170. Oscillator Control 0 Register (OSCCTL0) . . . . . . . . . . . . . . . . . . . . . . . . . 319
Table 171. Oscillator Control 1 Register (OSCCTL1) . . . . . . . . . . . . . . . . . . . . . . . . . 320
Table 172. Recommended Crystal Oscillator Specifications . . . . . . . . . . . . . . . . . . . . 323
Table 173. Recommended Crystal Oscillator Specifications . . . . . . . . . . . . . . . . . . . . 326
Table 174. Assembly Language Syntax Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Table 175. Assembly Language Syntax Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Table 176. Notational Shorthand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Table 177. Additional Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
PS025016-1013
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xxiv
Table 178. Arithmetic Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Table 179. Bit Manipulation Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Table 180. Block Transfer Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Table 181. CPU Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Table 182. Logical Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Table 183. Load Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Table 184. Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Table 185. Rotate and Shift Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Table 186. eZ8 CPU Instruction Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Table 187. Op Code Map Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Table 188. Absolute Maximum Ratings* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Table 189. DC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Table 190. Supply Current Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Table 191. AC Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Table 192. Power-On Reset and Voltage Brown-Out Electrical Characteristics
and Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Table 193. Flash Memory Electrical Characteristics and Timing . . . . . . . . . . . . . . . . 359
Table 194. Watchdog Timer Electrical Characteristics and Timing. . . . . . . . . . . . . . . 359
Table 195. Non-Volatile Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Table 196. Analog-to-Digital Converter Electrical Characteristics and Timing . . . . . 360
Table 197. Comparator Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Table 198. Temperature Sensor Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . 361
Table 199. Low Power Operational Amplifier Characteristics . . . . . . . . . . . . . . . . . . 362
Table 200. IPO Electrical Characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Table 201. Low Voltage Detect Electrical Characteristics. . . . . . . . . . . . . . . . . . . . . . 363
Table 202. Crystal Oscillator Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Table 203. Low Power 32 kHz Secondary Oscillator Characteristics . . . . . . . . . . . . . 365
Table 204. GPIO Port Input Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Table 205. GPIO Port Output Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Table 206. On-Chip Debugger Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Table 207. UART Timing with CTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
PS025016-1013
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
xxv
Table 208. UART Timing Without CTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Table 209. Ordering Information for the Z8 Encore! XP F1680 Series of MCUs . . . . 372
Table 210. Package and Pin Count Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
PS025016-1013
PRELIMINARY
List of Tables
Z8 Encore! XP® F1680 Series
Product Specification
1
Chapter 1. Overview
Zilog’s F1680 Series of MCUs is based on Zilog’s advanced 8-bit eZ8 CPU core. This
microcontroller, a member of the Z8 Encore! XP® product line, is optimized for lowpower applications and supports 1.8 V to 3.6 V of low-voltage operation with extremely
low Active, Halt and Stop Mode currents, plus it offers a wide assortment of speed and
low-power options. In addition, the feature-rich analog and digital peripherals of the Z8
Encore! XP F1680 Series of MCUs makes them suitable for a variety of applications
including safety and security, utility metering, digital power supervisory, hand-held electronic devices and general motor control applications.
For simplicity, the remainder of this document refers to the entire Z8 Encore! XP F1680
Series of MCUs as the F1680 Series MCU.
1.1.
Features
Key features of the F1680 Series MCU include:
PS025016-1013
•
•
•
•
•
•
•
•
•
•
20 MHz eZ8 CPU core
•
Infrared Data Association (IrDA)-compliant infrared encoders/decoders, integrated
with UARTs
•
•
•
•
Enhanced Serial Peripheral Interface (SPI) controller (except 20-pin packages)
8 KB, 16 KB, or 24 KB Flash memory with in-circuit programming capability
1 KB or 2 KB Register RAM
1 KB Program RAM for program code shadowing and data storage (optional)
128 B or 256 B Non-Volatile Data Storage (NVDS)
Up to 8-Channel, 10-bit Analog-to-Digital Converter (ADC)
On-chip Temperature Sensor
Up to two on-chip analog comparators (20-pin and 28-pin packages contain only one)
On-chip Low-Power Operational Amplifier (LPO)
Two full-duplex 9-bit UART ports with the support of Local Interconnect
Network (LIN) protocol (20-pin and 28-pin packages contain only one)
I2C controller which supports Master/Slave modes
Three enhanced 16-bit Timers with Capture, Compare and PWM capability
Additional two basic 16-bit timers with interrupt (shared as UART Baud Rate Generator)
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
2
1.2.
•
Optional 16-bit Multi-Channel Timer which supports four Capture/Compare/PWM
modules (44-pin packages only)
•
•
•
•
•
•
•
•
•
Watchdog Timer (WDT) with dedicated internal RC oscillator
•
•
•
•
Crystal oscillator with three power settings and external RC network option
17 to 37 General-Purpose Input/Output (GPIO) pins depending upon package
Up to 8 direct LED drives with programmable drive current capability
Up to 31 interrupt sources with up to 24 interrupt vectors
On-Chip Debugger (OCD)
Power-On Reset (POR) and Voltage Brown-Out (VBO) protection
Built-in Low-Voltage Detection (LVD) with programmable voltage threshold
32 kHz secondary oscillator for Timers
Internal Precision Oscillator (IPO) with output frequency in the range of 43.2 kHz to
11.0592 MHz
Wide operation voltage range: 1.8 V–3.6 V
20-, 28-, 40- and 44-pin packages
0° C to +70° C (standard) and –40° C to +105° C (extended) operating temperature
ranges
Part Selection Guide
Table 1 displays basic features and package styles available for each of the F1680 Series
MCUs.
Table 1. Z8 Encore! XP F1680 Series Part Selection Guide
Part
Number
Flash RAM Program NVDS
(KB) (B) RAM (B) (B)
I/O
ADC
Inputs SPI I2C UARTs Packages
Z8F2480
24
2048
1024
—
17–37
7–8
0–1
1
1–2
20-, 28-, 40- and 44-pin
Z8F1680
16
2048
1024
256
17–37
7–8
0–1
1
1–2
20-, 28-, 40- and 44-pin
Z8F0880
8
1024
1024
128
17–37
7–8
0–1
1
1–2
20-, 28-, 40- and 44-pin
PS025016-1013
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
3
1.3.
Block Diagram
Figure 1 displays the architecture of the F1680 Series MCU.
WDT with RC
Oscillator
POR/VBO
Reset Control
Low-Power
32 kHz Secondary
Oscillator
Low-Voltage
Detector
Multichannel
Timer
Enhanced SPI
Internal Precision/
Crystal Oscillator
I2C Master/Slave
eZ8
20 MHz
CPU
8 Channel
10-Bit A/D
Converter
On-Chip
Debugger
3 x 16-Bit
Timer/PWM
Temperature
Sensor
Program RAM
1 KB x 8
Low-power
Operational
Amplifier
Register File
2 KB x 8
NVDS
256 B x 8
2 UARTs
with LIN and IrDA
Flash
Program
Memory
24 KB x 8
Interrupt
Controller
2 Analog
Comparators
Port A
Port B
Port C
Port D
Port E
Figure 1. F1680 Series MCU Block Diagram
PS025016-1013
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
4
1.4.
An Overview of the eZ8 CPU and its Peripherals
Zilog’s eZ8 CPU, latest 8-bit CPU meets the continuing demand for faster and more codeefficient microcontrollers. It executes a superset of the original Z8® instruction set. The
eZ8 CPU features include:
•
Direct register-to-register architecture allows each register to function as an
accumulator, improving execution time and decreasing the required program memory
•
Software stack allows greater depth in subroutine calls and interrupts more than
hardware stacks
•
•
•
Compatible with existing Z8 code
•
•
Pipelined instruction fetch and execution
•
•
•
•
New instructions support 12-bit linear addressing of the register file
Expanded internal Register File allows access up to 4 KB
New instructions improve execution efficiency for code developed using higher-level
programming languages including C
New instructions for improved performance including BIT, BSWAP, BTJ, CPC, LDC,
LDCI, LEA, MULT and SRL
Up to 10 MIPS operation
C-Compiler friendly
2 to 9 clock cycles per instruction
For more details about eZ8 CPU, refer to the eZ8 CPU Core User Manual (UM0128),
available for download at www.zilog.com.
1.4.1. General-Purpose Input/Output
The F1680 MCU features 17 to 37 port pins (Ports A–E) for general purpose input/output
(GPIO) pins. The number of GPIO pins available is a function of package. Each pin is
individually programmable.
1.4.2. Flash Controller
The Flash Controller is used to program and erase Flash memory. The Flash Controller
supports protection against accidental program and erasure.
PS025016-1013
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
5
1.4.3. Non-Volatile Data Storage
Non-Volatile Data Storage (NVDS) is a hybrid hardware/software scheme to implement
byte-programmable data memory and is capable of over 100,000 write cycles.
1.4.4. Internal Precision Oscillator
The internal precision oscillator (IPO) is a trimmable clock source which requires no
external components. You can select IPO frequency from one of eight frequencies
(43.2 kHz to 11.0592 MHz) and is available with factory-trimmed calibration data.
1.4.5. Crystal Oscillator
The crystal oscillator circuit provides highly accurate clock frequencies using an external
crystal, ceramic resonator, or RC network.
1.4.6. Secondary Oscillator
The secondary oscillator is a low-power oscillator, which is optimized for use with a
32 kHz watch crystal. It can be used as timer/counter clock source in any mode.
1.4.7. 10-Bit Analog-to-Digital Converter
The Analog-to-Digital Converter (ADC) converts an analog input signal to a 10-bit binary
number. The ADC supports up to eight analog input sources multiplexed with GPIO ports.
1.4.8. Low-Power Operational Amplifier
The low-power operational amplifier (LPO) is a general-purpose operational amplifier primarily targeted for current sense applications. The LPO output can be internally routed to
the ADC or externally to a pin.
1.4.9. Analog Comparator
The analog comparator compares the signal at an input pin with either an internal programmable voltage reference or a second-input pin. The comparator output is used to
either drive an output pin or to generate an interrupt.
PS025016-1013
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
6
1.4.10. Temperature Sensor
The temperature sensor produces an analog output proportional to the device temperature.
This signal is sent either to the ADC or to the analog comparator.
1.4.11. Low-Voltage Detector
The low-voltage detector generates an interrupt when the supply voltage drops below a
user-programmable level.
1.4.12. Enhanced SPI
The enhanced SPI is a full-duplex, buffered, synchronous character-oriented channel
which supports a four-wire interface.
1.4.13. UART with LIN
A full-duplex 9-bit UART provides serial, asynchronous communication and supports the
local interconnect network (LIN) serial communications protocol. The UART supports 8bit and 9-bit data modes, selectable parity and an efficient bus transceiver Driver Enable
signal for controlling a multi-transceiver bus, such as RS-485. The LIN bus is a cost-efficient, single-master, multiple-slave organization which supports speed up to 20 KBits.
1.4.14. Master/Slave I2C
The inter-integrated circuit (I2C) controller makes the F1680 Series MCU compatible with
the I2C protocol. The I2C controller consists of two bidirectional bus lines:
1. Serial data (SDA) line
2. Serial clock (SCL) line
It also supports Master, Slave and Multi-Master Operations
1.4.15. Timers
Three enhanced 16-bit reloadable timers are used for timing/counting events or motor control operations. These timers provide a 16-bit programmable reload counter and operate in
ONE-SHOT, CONTINUOUS, GATED, CAPTURE, CAPTURE RESTART, COMPARE,
CAPTURE and COMPARE, PWM SINGLE OUTPUT, PWM DUAL OUTPUT, TRIGGERED ONE-SHOT and DEMODULATION modes. In addition to these three enhanced
16-bit timers, there are two basic 16-bit timers with interrupt function. The two timers are
PS025016-1013
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
7
used as Baud Rate Generator (BRG) when UART is enabled and configured as basic 16bit timers when UART is disabled.
1.4.16. Multi-Channel Timer
The multi-channel timer has a 16-bit up/down counter and a 4-channel Capture/Compare/
PWM channel array. This timer enables the support of multiple synchronous Capture/
Compare/PWM channels based on a single timer.
1.4.17. Interrupt Controller
The Z8 Encore! XP F1680 Series products support up to thirty-one interrupt sources with
twenty-four interrupt vectors. These interrupts consist of up to fifteen internal peripheral
interrupts and up to sixteen GPIO pin interrupts. The interrupts have three levels of programmable-interrupt priority.
1.4.18. Reset Controller
The F1680 Series MCU is reset using the RESET pin, POR, WDT time-out, STOP Mode
exit, or VBO warning signal. The RESET pin is bidirectional, that is, it functions as reset
source as well as a reset indicator.
1.4.19. On-Chip Debugger
The F1680 Series MCU features an integrated OCD. The OCD provides a rich-set of
debugging capabilities, such as reading and writing registers, programming Flash memory,
setting breakpoints and executing code. The OCD uses one single-pin interface for communication with an external host.
1.4.20. Direct LED Drive
The Port C pins also provide a current synchronized output capable of driving an LED
without requiring any external resistor. Up to eight LEDs are driven with individually programmable drive current level from 3 mA to 20 mA.
PS025016-1013
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
8
1.5.
Acronyms and Expansions
This document uses the acronyms and expansions listed in Table 2.
Table 2. F1680 Series MCU Acronyms
PS025016-1013
Abbreviations/
Acronyms
Expansions
ADC
Analog-to-Digital Converter
NVDS
Non-Volatile Data Storage
LPO
Low-Power Operational Amplifier
LIN
Local Interconnect Network
SPI
Serial Peripheral Interface
ESPI
Enhanced Serial Peripheral Interface
WDT
Watchdog Timer
GPIO
General-Purpose Input/Output
OCD
On-Chip Debugger
POR
Power-On Reset
LVD
Low-Voltage Detection
VBO
Voltage Brown-Out
IPO
Internal Precision Oscillator
UART
Universal Asynchronous Receiver/Transmitter
IrDA
Infrared Data Association
I2C
Inter-integrated circuit
PDIP
Plastic Dual Inline Package
SOIC
Small Outline Integrated Circuit
SSOP
Small Shrink Outline Package
QFN
Quad Flat No Lead
LQFP
Low-Profile Quad Flat Package
PRAM
Program RAM
PC
Program counter
IRQ
Interrupt request
ISR
Interrupt service routine
MSB
Most-significant byte
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
9
Table 2. F1680 Series MCU Acronyms (Continued)
Abbreviations/
Acronyms
Expansions
LSB
Least-significant byte
PWM
Pulse-Width Modulation
CI
Channel Interrupt
TI
Timer Interrupt
Endec
Encoder/Decoder
2
PS025016-1013
I S
Inter IC Sound
TDM
Time division multiplexing
TTL
Transistor-Transistor Logic
SAR
Successive Approximation Register
PRELIMINARY
Overview
Z8 Encore! XP® F1680 Series
Product Specification
10
Chapter 2. Pin Description
The F1680 Series MCU is available in a variety of package styles and pin configurations.
This chapter describes the signals and available pin configurations for each of the package
styles. For information about the physical package specifications, see the Packaging
chapter on page 371.
2.1.
Available Packages
Table 3 lists the package styles available for each device in the Z8 Encore! XP F1680
Series product line.
Table 3. Z8 Encore! XP F1680 Series Package Options
Part Number
ADC
20-pin
PDIP
20-pin
SOIC
20-pin
SSOP
28-pin
PDIP
28-pin
SOIC
28-pin
SSOP
40-pin
PDIP
44-pin
QFN
44-pin
LQFP
Z8F2480
Yes
X
X
X
X
X
X
X
X
X
Z8F1680
Yes
X
X
X
X
X
X
X
X
X
Z8F0880
Yes
X
X
X
X
X
X
X
X
X
2.2.
Pin Configurations
Figures 2 through 5 display the pin configurations of all the packages available in the
F1680 Series MCU. For description of the signals, see Table 4 on page 14.
At reset, all port pins default to an input state. In addition, any alternate functionality is not
enabled, so the pins function as general-purpose input ports until programmed otherwise.
At power up, the Port D0 pin defaults to the RESET alternate function.
The pin configurations listed are preliminary and subject to change based on
manufacturing limitations.
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
11
PB1/ANA1/AMPINN
PB2/ANA2/AMPINP
PB3/CLKIN/ANA3
VDD
PA0/T0IN/T0OUT/XIN
PA1/T0OUT/XOUT
VSS
PA2/DE0/X2IN
PA3/CTS0/X2OUT
PA4/RXD0/IRRX0/T2IN/T2OUT
20
19
18
17
16
15
14
13
12
11
1
2
3
4
5
6
7
8
9
10
PB0/ANA0/AMPOUT
PC3/C0OUT/LED
PC2/ANA6/LED/VREF
PC1/ANA5/C0INN/LED
PC0/ANA4/C0INP/LED
DBG
RESET/PD0
PA7/T1OUT/SDA
PA6/T1IN/T1OUT/SCL
PA5/TXD0/IRTX0/T2OUT
Figure 2. Z8F2480, Z8F1680 and Z8F0880 in 20-Pin SOIC, SSOP or PDIP Packages
PB2/ANA2/AMPINP
PB4/ANA7
PB5/VREF
PB3/CLKIN/ANA3
AVDD
VDD
PA0/T0IN/T0OUT/XIN
PA1/T0OUT/XOUT
VSS
AVSS
PA2/DE0/X2IN
PA3/CTS0/X2OUT
PA4/RXD0/IRRX0
PA5/TXD0/IRTX0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
PB1/ANA1/AMPINN
PB0/ANA0/AMPOUT
PC3/C0OUT/LED
PC2/ANA6/LED/SS
PC1/ANA5/C0INN/LED/MISO
PC0/ANA4/C0INP/LED
DBG
RESET/PD0
PC7/LED/T2OUT
PC6/LED/T2IN/T2OUT
PA7/T1OUT/SDA
PC5/LED/SCK
PC4/LED/MOSI
PA6/T1IN/T1OUT/SCL
Figure 3. Z8F2480, Z8F1680 and Z8F0880 in 28-Pin SOIC, SSOP or PDIP Packages
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
12
PB1/AMPINN/ANA1
1
40
PB4/ANA7
PB5/VREF
PB3/CLKIN/ANA3
PD2/C1INP
PC3/MISO/LED
PC2/ANA6/SS/LED
5
35
PE0
AVDD
VDD
PA0/T0IN/T0OUT/XIN
PA1/T0OUT/XOUT
PD3/CTS1/C1OUT
DBG
10
30
PD0/RESET
VDD
PE1/SCL
PE2/SDA
PC7/T2OUT/LED
PC6/T2IN/T2OUT/LED
15
25
PD4/RXD1/IRRX1
PA7/T1OUT
PC5/SCK/LED
PA3/CTS0/X2OUT
PD6/DE1
PA4/RXD0/IRRX0
PA5/TXD0/IRTX0
PC1/ANA5/C0INN/LED
PC0/ANA4/C0INP/LED
VSS
VSS
AVSS
PD7/C0OUT
PA2/DE0/X2IN
PB0/AMPOUT/ANA0
PD1/C1INN
PB2/AMPINP/ANA2
PC4/MOSI/LED
20
21
PA6/T1IN/T1OUT
PD5/TXD1/IRTX1
Figure 4. Z8F2480, Z8F1680 and Z8F0880 in 40-Pin Dual Inline Package (PDIP)
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
PE6/T4CHD
33
34
PC2/SS/ANA6/LED
PD2/C1INP
PC3/MISO/LED
PB2/AMPINP/ANA2
PB1/AMPINN/ANA1
PB0/AMPOUT/ANA0
PD1/C1INN
PB5/VREF
PB4/ANA7
PE5/T4CHC
PB3/CLKIN/ANA3
13
23
22
28
PC0/ANA4/C0INP/LED
PE0/T4IN
AVDD
VDD
PA0/T0IN/T0OUT/XIN
PA1/T0OUT/XOUT
VSS
PE4/T4CHB
VSS
39
17
PD3/CTS1/C1OUT
DBG
PD0/RESET
AVSS
PE1/SCL
PE2/SDA
VDD
1
12
11
PC7/T2OUT/LED
PC6/T2IN/T2OUT/LED
PD4/RXD1/IRRX1
PC4/MOSI/LED
PC5/SCK/LED
PA7/T1OUT
PD5/TXD1/IRTX1
PA6/T1IN/T1OUT
PA5/TXD0/IRTX0
6
PD6/DE1
PA4/RXD0/IRRX0
44
PA2/DE0/X2IN
PA3/CTS0/X2OUT
PE3/T4CHA
PD7/C0OUT
PC1/ANA5/C0INN/LED
Figure 5. Z8F2480, Z8F1680 and Z8F0880 in 44-Pin Low-Profile Quad Flat Package (LQFP) or Quad
Flat No Lead (QFN)
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
14
2.3.
Signal Descriptions
Table 4 describes the signals for each block on the F1680 Series MCU. To determine the
signals available for specific package styles, see the Pin Configurations chapter on page
10.
Table 4. Signal Descriptions
Signal Mnemonic I/O
Description
General-Purpose I/O Ports A–E
PA[7:0]
I/O
Port A: These pins are used for general-purpose I/O.
PB[5:0]
I/O
Port B: These pins are used for GPIO.
PC[7:0]
I/O
Port C: These pins are used for GPIO.
PD[7:0]
I/O
Port D: These pins are used for GPIO. PD0 is output only.
PE[6:0]
I/O
Port E: These pins are used for GPIO.
LIN-UART Controllers
TXD0/TXD1
O
Transmit Data 0–1: These signals are the transmit output from the UART0/1
and IrDA0/1.
RXD0/RXD1
I
Receive Data 0–1: These signals are the receive input for the UART0/1 and
IrDA0/1.
CTS0/CTS1
I
Clear To Send 0–1: These signals are the flow control input for the UART0/1.
DE0/DE1
O
Driver Enable 0–1: These signals allow automatic control of external RS-485
drivers. These signals are approximately the inverse of the TXE (Transmit
Empty) bit in the UART Status 0/1 register. The DE0/1 signal can be used to
ensure the external RS-485 driver is enabled when data is transmitted by the
UART0/1.
SCL
I/O
I2C Serial Clock: The I2C Master supplies this signal. If the F1680 Series
MCU is the I2C Master, this pin is an output. If it is the I2C slave, this pin is an
input. When the GPIO pin is configured as an alternate function to enable the
SCL function, this pin is open-drain.
SDA
I/O
Serial Data: This open-drain pin transfers data between the I2C and an
external I2C Master/Slave. When the GPIO pin is configured as an alternate
function to enable the SDA function, this pin is open-drain.
I/O
Slave Select: This signal can be an output or an input. If the F1680 Series
MCU is the SPI master, this pin can be configured as the Slave Select output.
If it is the SPI slave, this pin is the input slave select.
I2C Controller
ESPI Controller
SS
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
15
Table 4. Signal Descriptions (Continued)
Signal Mnemonic I/O
Description
SCK
I/O
SPI Serial Clock: The SPI master supplies this signal. If the F1680 Series
MCU is the SPI master, this pin is an output. If it is the SPI slave, this pin is an
input.
MOSI
I/O
Master Out Slave In: This signal is the data output from the SPI master
device and the data input to the SPI slave device.
MISO
I/O
Master In Slave Out: This pin is the data input to the SPI master device and
the data output from the SPI slave device.
T0OUT/T1OUT/
T2OUT
O
Timer Output 0–2: These signals are output from the timers.
T0OUT/T1OUT/
T2OUT
O
Timer Complement Output 0–2: These signals are output from the timers in
PWM DUAL OUTPUT Mode.
T0IN/T1IN/T2IN
I
Timer Input 0–2: These signals are used as the capture, gating and counter
inputs. The T0IN/T1IN/T2IN signal is multiplexed with T0OUT/T1OUT/
T2OUT signals.
Timers
Multi-Channel Timers
TACHA, TACHB,
TACHC, TACHD
I/O
Multi-channel timer Input/Output: These signals function as Capture input or
Compare output for channels CHA, CHB, CHC and CHD.
T4IN
I
Multi-channel Timer clock input: This signal allows external input to serve as
the clock source for the Multi-channel timer.
C0INP/C0INN,
C1INP/C1INN
I
Comparator Inputs: These signals are positive and negative inputs to the
comparator 0 and comparator 1.
C0OUT/C1OUT
O
Comparator Outputs: These are the output from the comparator 0 and the
comparator 1.
ANA[7:0]
I
Analog Port: These signals are used as inputs to the ADC. The ANA0, ANA1
and ANA2 pins can also access the inputs and outputs of the integrated LowPower Operational Amplifier.
VREF
I/O
ADC reference voltage input.
Comparators
Analog
Low-Power Operational Amplifier
AMPINP/AMPINN
I
Low-Power Operational Amplifier Inputs: If enabled, these pins drive the
positive and negative amplifier inputs respectively.
AMPOUT
O
Low-Power Operational Amplifier Output: If enabled, this pin is driven by the
on-chip low-power operational amplifier.
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
16
Table 4. Signal Descriptions (Continued)
Signal Mnemonic I/O
Description
Oscillators
XIN
I
External Crystal Input: The input pin to the crystal oscillator. A crystal can be
connected between the pin and the XOUT pin to form the oscillator. In
addition, this pin is used with external RC networks or external clock drivers
to provide the system clock.
XOUT
O
External Crystal Output: This pin is the output of the crystal oscillator. A
crystal can be connected between it and the XIN pin to form the oscillator.
X2IN
I
Watch Crystal Input: The input pin to the low-power 32 kHz oscillator. A watch
crystal can be connected between the X2IN and the X2OUT pin to form the
oscillator.
X2OUT
O
Watch Crystal Output: This pin is the output from the low power 32 kHz
oscillator. A watch crystal can be connected between the X2IN and the
X2OUT pin to form the oscillator.
I
Clock Input Signal: This pin can be used to input a TTL-level signal to be
used as the system clock.
O
Direct LED Drive Capability: All Port C pins have the capability to drive an
LED without any other external components. These pins have programmable
drive strengths set by the GPIO block.
I/O
Debug: This signal is the control and data input and output of the On-Chip
Debugger.
Caution: The DBG pin is open-drain and requires an external pull-up resistor
to ensure proper operation.
I/O
RESET: Generates a Reset when asserted (driven Low). Also serves as a
Reset indicator; the Z8 Encore! XP forces this pin Low when in Reset. This
pin is open-drain and features an enabled internal pull-up resistor.
Clock Input
CLKIN
LED Drivers
LED
On-Chip Debugger
DBG
Reset
RESET
Power Supply
VDD
I
Digital Power Supply.
AVDD
I
Analog Power Supply.
VSS
I
Digital Ground.
AVSS
I
Analog Ground.
Note: The AVDD and AVSS signals are available only in 28-pin, 40-pin and 44-pin packages.
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
17
2.4.
Pin Characteristics
Table 5 provides detailed information about the characteristics of each pin available on the
F1680 Series MCU 20-, 28-, 40- and 44-pin devices. Data provided in Table 5 is sorted
alphabetically by the pin symbol mnemonic.
Table 5. Pin Characteristics (20-, 28-, 40- and 44-pin Devices)
Active
Low or
Symbol
Reset
Active
Mnemonic Direction Direction High
Internal
Tristate Pull-up or
Output Pull-down
Schmitt
Trigger Open Drain 5 V
Input
Output
Tolerance
AVDD
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
AVSS
N/A
N/A
N/A
N/A
N/A
N/A
N/A
NA
DBG
I/O
I
N/A
Yes
Yes
Yes
Yes
No
PA[7:0]
I/O
I
N/A
Yes
Programmable Yes
pull-up
Yes,
Yes, 5 V
programmab tolerant
le
inputs
unless pullups are
enabled
PB[5:0]
I/O
I
N/A
Yes
Programmable Yes
pull-up
Yes,
Yes, 5 V
programmab tolerant
le
inputs
unless pullups are
enabled
PC[7:0]
I/O
I
N/A
Yes
Programmable Yes
pull-up
Yes,
Yes, 5 V
programmab tolerant
inputs
le
unless pullups are
enabled
PD[7:1]
I/O
I
N/A
Yes
Programmable Yes
pull-up
Yes,
Yes, 5 V
programmab tolerant
le
inputs
unless pullups are
enabled
PS025016-1013
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
18
Table 5. Pin Characteristics (20-, 28-, 40- and 44-pin Devices) (Continued)
Active
Low or
Symbol
Reset
Active
Mnemonic Direction Direction High
Yes
Schmitt
Trigger Open Drain 5 V
Input
Output
Tolerance
PE[6:0]
I/O
I
RESET/
PD0
I/O
I/O
(defaults
to
RESET)
VDD
N/A
N/A
N/A
N/A
N/A
N/A
VSS
N/A
N/A
N/A
N/A
N/A
N/A
PS025016-1013
N/A
Internal
Tristate Pull-up or
Output Pull-down
Programmable Yes
pull-up
Yes,
Yes, 5 V
programmab tolerant
le
inputs
unless pullups are
enabled
Low (in Yes (PD0 Programmable Yes
RESET
only) for PD0; always
mode)
On for RESET
Programmab Yes, 5 V
le for PD0; tolerant
always On inputs
for RESET unless pullups are
enabled
PRELIMINARY
Pin Description
Z8 Encore! XP® F1680 Series
Product Specification
19
Chapter 3. Address Space
The eZ8 CPU can access the following three distinct address spaces:
•
The Register File contains addresses for general-purpose registers, eZ8 CPU, peripherals and GPIO port control registers
•
The Program Memory contains addresses for all memory locations having executable
code and/or data
•
The Data Memory contains addresses for all memory locations that contain data only
These three address spaces are covered briefly in the following sections. For more details
about the eZ8 CPU and its address space, refer to the eZ8 CPU Core User Manual
(UM0128), available for download at www.zilog.com.
3.1.
Register File
The Register File address space in the Z8 Encore!® MCU is 4 KB (4096 bytes). The
Register File is composed of two sections: control registers and general-purpose registers.
When instructions are executed, registers defined as sources are read and registers defined
as destinations are written. The architecture of the eZ8 CPU allows all general-purpose
registers to function as accumulators, address pointers, index registers, stack areas, or
scratch pad memory.
The upper 256 bytes of the 4 KB Register File address space are reserved for control of the
eZ8 CPU, on-chip peripherals and the input/output ports. These registers are located at
addresses F00h to FFFh. Some of the addresses within the 256 B control register sections
are reserved (that is, unavailable). Reading from a reserved Register File address returns
an undefined value. Zilog does not recommend writing to the reserved Register File
addresses because doing so can produce unpredictable results.
The on-chip Register RAM always begins at address 000h in the Register File address
space. The F1680 Series MCU contains 1 KB or 2 KB of on-chip Register RAM. Reading
from Register File addresses outside the available RAM addresses (and not within the
control register address space) returns an undefined value. Writing to these Register File
addresses produces no effect.
In addition, the F1680 Series MCU contains 1 KB of on-chip Program RAM. Normally it
is used as Program RAM and is present in the Program Memory address space (see the
Program Memory section on page 20). However, it can also be used as additional Register
RAM present in the Register File address space 800h–BFFh (1 KB Program RAM, 2 KB
Register RAM), or 400h–7FFh (1 KB Program RAM, 1 KB Register RAM), if you do not
PS025016-1013
PRELIMINARY
Address Space
Z8 Encore! XP® F1680 Series
Product Specification
20
need to use this on-chip Program RAM to shadow Interrupt Service Routines (ISR). For
details, see the PRAM_M section on page 278.
3.2.
Program Memory
The eZ8 CPU supports 64 KB of Program Memory address space. The F1680 Series MCU
contains 8 KB to 24 KB of on-chip Flash memory in the Program Memory address space,
depending on the device.
In addition, the F1680 Series MCU contains up to 1 KB of on-chip Program RAM. The
Program RAM is mapped in the Program Memory address space beyond the on-chip Flash
memory. The Program RAM is entirely under user control and is meant to store interrupt
service routines of high-frequency interrupts. Since interrupts bring the CPU out of lowpower mode, it is important to ensure that interrupts that occur very often use as low a
current as possible. For battery operated systems, Program RAM based handling of highfrequency interrupts provides power savings by keeping the Flash block disabled.
Program RAM (PRAM) is optimized for low-current operation and can be easily bootstrapped with interrupt code at power up.
Reading from Program Memory addresses present outside the available Flash memory and
PRAM addresses returns FFh. Writing to these unimplemented Program Memory
addresses produces no effect. Table 6 describes the Program Memory maps for the F1680
Series MCU.
Table 6. F1680 Series MCU Program Memory Maps
Program Memory
Address (Hex)
Function
Z8F2480 Device
0000–0001
Flash option bits
0002–0003
Reset vector
0004–0005
WDT interrupt vector
0006–0007
Illegal instruction trap
0008–0037
Interrupt vectors*
0038–003D
Oscillator fail traps*
003E–5FFF
Program Flash
E000–E3FF
1 KB PRAM
Note: *See Table 36 on page 69 for a list of interrupt vectors and traps.
PS025016-1013
PRELIMINARY
Address Space
Z8 Encore! XP® F1680 Series
Product Specification
21
Table 6. F1680 Series MCU Program Memory Maps (Continued)
Program Memory
Address (Hex)
Function
Z8F1680 Device
0000–0001
Flash option bits
0002–0003
Reset vector
0004–0005
WDT interrupt vector
0006–0007
Illegal instruction trap
0008–0037
Interrupt vectors*
0038–003D
Oscillator fail traps*
003E–3FFF
Program Flash
E000–E3FF
1 KB PRAM
Z8F0880 Device
0000–0001
Flash option bits
0002–0003
Reset vector
0004–0005
WDT interrupt vector
0006–0007
Illegal instruction trap
0008–0037
Interrupt vectors*
0038–003D
Oscillator fail traps*
003E–1FFF
Program Flash
E000–E3FF
1 KB PRAM
Note: *See Table 36 on page 69 for a list of interrupt vectors and traps.
3.3.
Data Memory
The F1680 Series MCU does not use the eZ8 CPU’s 64 KB Data Memory address space.
3.4.
Flash Information Area
Table 7 describes the F1680 Series MCU Flash Information Area. This 512-byte
Information Area is accessed by setting bit 7 of the Flash Page Select Register to 1. When
access is enabled, the Flash Information Area is mapped into the Program Memory and
overlays the 512bytes at addresses FE00h to FFFFh. When the Information Area access is
enabled, all reads from these Program Memory addresses return the Information Area data
rather than the Program Memory data. Access to the Flash Information Area is read-only.
PS025016-1013
PRELIMINARY
Address Space
Z8 Encore! XP® F1680 Series
Product Specification
22
Table 7. F1680 Series MCU Flash Memory Information Area Map
Program Memory Address (Hex)
Function
FE00–FE3F
Zilog option bits
FE40–FE53
Part Number:
20-character ASCII alphanumeric code
Left-justified and filled with Fh
FE54–FE5F
Reserved
FE60–FE7F
Zilog calibration data (only use the first two
bytes FE60 and FE61)
FE80–FFFF
Reserved
PS025016-1013
PRELIMINARY
Address Space
Z8 Encore! XP® F1680 Series
Product Specification
23
Chapter 4. Register Map
Table 8 provides an address map to the register file contained in all Z8 Encore! XP F1680
Series devices. Not all devices and package styles in this product series support the ADC,
nor all of the GPIO ports. Therefore, consider the registers for unimplemented peripherals
to be reserved.
Table 8. Register File Address Map
Address (Hex)
Register Description
Mnemonic
Reset (Hex)1 Page #
General Purpose RAM
Z8F2480 Device
000–7FF
General-Purpose Register File RAM
—
XX
800–EFF
Reserved2
—
XX
000–7FF
General-Purpose Register File RAM
—
XX
800–EFF
Reserved2
—
XX
000–3FF
General-Purpose Register File RAM
—
XX
400–EFF
Reserved2
—
XX
Z8F1680 Device
Z8F0880 Device
Special Purpose Registers
Timer 0
F00
Timer 0 High Byte
T0h
00
109
F01
Timer 0 Low Byte
T0L
01
109
F02
Timer 0 Reload High Byte
T0RH
FF
110
F03
Timer 0 Reload Low Byte
T0RL
FF
110
F04
Timer 0 PWM0 High Byte
T0PWM0h
00
110
F05
Timer 0 PWM0 Low Byte
T0PWM0L
00
111
F06
Timer 0 Control 0
T0CTL0
00
112
F07
Timer 0 Control 1
T0CTL1
00
113
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
24
Table 8. Register File Address Map (Continued)
Reset (Hex)1 Page #
Address (Hex)
Register Description
Mnemonic
F20
Timer 0 PWM1 High Byte
T0PWM1h
00
111
F21
Timer 0 PWM1 Low Byte
T0PWM1L
00
111
F22
Timer 0 Control 2
T0CTL2
00
117
F23
Timer 0 Status
T0STA
00
118
F2C
Timer 0 Noise Filter Control
T0NFC
00
119
Timer 1
F08
Timer 1 High Byte
T1h
00
109
F09
Timer 1 Low Byte
T1L
01
109
F0A
Timer 1 Reload High Byte
T1RH
FF
110
F0B
Timer 1 Reload Low Byte
T1RL
FF
110
F0C
Timer 1 PWM0 High Byte
T1PWM0h
00
110
F0D
Timer 1 PWM0 Low Byte
T1PWM0L
00
111
F0E
Timer 1 Control 0
T1CTL0
00
112
F0F
Timer 1 Control 1
T1CTL1
00
113
F24
Timer 1 PWM1 High Byte
T1PWM1h
00
111
F25
Timer 1 PWM1 Low Byte
T1PWM1L
00
111
F26
Timer 1 Control 2
T1CTL2
00
117
F27
Timer 1 Status
T1STA
00
118
F2D
Timer 1 Noise Filter Control
T1NFC
00
119
Timer 2
F10
Timer 2 High Byte
T2h
00
109
F11
Timer 2 Low Byte
T2L
01
110
F12
Timer 2 Reload High Byte
T2RH
FF
110
F13
Timer 2 Reload Low Byte
T2RL
FF
110
F14
Timer 2 PWM0 High Byte
T2PWM0h
00
110
F15
Timer 2 PWM0 Low Byte
T2PWM0L
00
111
F16
Timer 2 Control 0
T2CTL0
00
112
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
25
Table 8. Register File Address Map (Continued)
Address (Hex)
Register Description
F17
Timer 2 Control 1
F28
Mnemonic
Reset (Hex)1 Page #
T2CTL1
00
113
Timer 2 PWM1 High Byte
T2PWM1h
00
111
F29
Timer 2 PWM1 Low Byte
T2PWM1L
00
111
F2A
Timer 2 Control 2
T2CTL2
00
117
F2B
Timer 2 Status
T2STA
00
118
F2E
Timer 2 Noise Filter Control
T2NFC
00
119
F2F–F3F
Reserved
—
XX
LIN UART0 Transmit Data
U0TXD
XX
163
LIN UART0 Receive Data
U0RXD
XX
164
LIN UART0 Status 0—Standard UART Mode
U0STAT0
0000011Xb
165
LIN UART0 Status 0—LIN Mode
U0STAT0
00000110b
166
F42
LIN UART0 Control 0
U0CTL0
00
170
F43
LIN UART0 Control 1—Multiprocessor Control
U0CTL1
00
172
LIN UART0 Control 1—Noise Filter Control
U0CTL1
00
174
LIN UART0 Control 1—LIN Control
U0CTL1
00
175
F44
LIN UART0 Mode Select and Status
U0MDSTAT
00
168
F45
UART0 Address Compare
U0ADDR
00
177
F46
UART0 Baud Rate High Byte
U0BRH
FF
177
F47
UART0 Baud Rate Low Byte
U0BRL
FF
178
LIN UART1 Transmit Data
U1TXD
XX
163
LIN UART1 Receive Data
U1RXD
XX
164
LIN UART1 Status 0—Standard UART Mode
U1STAT0
0000011Xb
165
LIN UART1 Status 0—LIN Mode
U1STAT0
00000110b
166
LIN UART1 Control 0
U1CTL0
00
170
LIN UART 0
F40
F41
LIN UART 1
F48
F49
F4A
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
26
Table 8. Register File Address Map (Continued)
Mnemonic
Reset (Hex)1 Page #
Address (Hex)
Register Description
F4B
LIN UART1 Control 1—Multiprocessor Control
U1CTL1
00
172
LIN UART1 Control 1—Noise Filter Control
U1CTL1
00
174
LIN UART1 Control 1—LIN Control
U1CTL1
00
175
F4C
LIN UART1 Mode Select and Status
U1MDSTAT
00
168
F4D
UART1 Address Compare
U1ADDR
00
177
F4E
UART1 Baud Rate High Byte
U1BRH
FF
177
F4F
UART1 Baud Rate Low Byte
U1BRL
FF
178
I2CDATA
00
244
I2CISTAT
80
245
I2C
F50
I2C Data
2
F51
I C Interrupt Status
F52
I2C Control
I2CCTL
00
247
F53
I2C
Baud Rate High Byte
I2CBRH
FF
248
F54
2
I C Baud Rate Low Byte
I2CBRL
FF
249
2
F55
I C State
I2CSTATE
02
251
F56
I2C Mode
I2CMODE
00
252
I2CSLVAD
00
255
—
XX
2
F57
I C Slave Address
F58-F5F
Reserved
Enhanced Serial Peripheral Interface (ESPI)
F60
ESPI Data
ESPIDATA
XX
214
F61
ESPI Transmit Data Command
ESPITDCR
00
214
F62
ESPI Control
ESPICTL
00
215
F63
ESPI Mode
ESPIMODE
00
217
F64
ESPI Status
ESPISTAT
01
219
F65
ESPI State
ESPISTATE
00
220
F66
ESPI Baud Rate High Byte
ESPIBRH
FF
220
F67
ESPI Baud Rate Low Byte
ESPIBRL
FF
220
F68–F6F
Reserved
—
XX
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
27
Table 8. Register File Address Map (Continued)
Address (Hex)
Register Description
Mnemonic
Reset (Hex)1 Page #
Analog-to-Digital Converter (ADC)
F70
ADC Control 0
ADCCTL0
00
189
F71
ADC Raw Data High Byte
ADCRD_H
80
191
F72
ADC Data High Byte
ADCD_H
XX
191
F73
ADC Data Low Bits
ADCD_L
XX
192
F74
ADC Sample Settling Time
ADCSST
FF
193
F75
Sample Time
ADCST
XX
194
F76
ADC Clock Prescale Register
ADCCP
00
195
F77–F7F
Reserved
—
XX
PWRCTL0
80
—
XX
LEDEN
00
66
Low-Power Control
F80
Power Control 0
F81
Reserved
44
LED Controller
F82
LED Drive Enable
F83
LED Drive Level High Bit
LEDLVLH
00
67
F84
LED Drive Level Low Bit
LEDLVLL
00
67
F85
Reserved
—
XX
Oscillator Control
F86
Oscillator Control 0
OSCCTL0
A0
319
F87
Oscillator Control 1
OSCCTL1
00
320
F88–F8F
Reserved
Comparator 0 Control
CMP0
14
257
F91
Comparator 1 Control
CMP1
14
258
F92–F9F
Reserved
—
XX
Comparator 0
F90
Comparator 1
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
28
Table 8. Register File Address Map (Continued)
Address (Hex)
Register Description
Mnemonic
Reset (Hex)1 Page #
Multi-Channel Timer
FA0
MCT High Byte
MCTH
00
130
FA1
MCT Low Byte
MCTL
00
130
FA2
MCT Reload High Byte
MCTRH
FF
131
FA3
MCT Reload Low Byte
MCTRL
FF
131
FA4
MCT Subaddress
MCTSA
XX
132
FA5
MCT Subregister 0
MCTSR0
XX
132
FA6
MCT Subregister 1
MCTSR1
XX
132
FA7
MCT Subregister 2
MCTSR2
XX
132
FA8–FBF
Reserved
—
XX
IRQ0
00
73
Interrupt Controller
FC0
Interrupt Request 0
FC1
IRQ0 Enable High Bit
IRQ0ENH
00
76
FC2
IRQ0 Enable Low Bit
IRQ0ENL
00
77
FC3
Interrupt Request 1
IRQ1
00
74
FC4
IRQ1 Enable High Bit
IRQ1ENH
00
78
FC5
IRQ1 Enable Low Bit
IRQ1ENL
00
79
FC6
Interrupt Request 2
IRQ2
00
75
FC7
IRQ2 Enable High Bit
IRQ2ENH
00
80
FC8
IRQ2 Enable Low Bit
IRQ2ENL
00
81
FC9–FCC
Reserved
—
XX
FCD
Interrupt Edge Select
IRQES
00
82
FCE
Shared Interrupt Select
IRQSS
00
82
FCF
Interrupt Control
IRQCTL
00
83
FD0
Port A Address
PAADDR
00
58
FD1
Port A Control
PACTL
00
60
GPIO Port A
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
29
Table 8. Register File Address Map (Continued)
Address (Hex)
Register Description
FD2
Port A Input Data
FD3
Port A Output Data
Mnemonic
Reset (Hex)1 Page #
PAIN
XX
60
PAOUT
00
60
GPIO Port B
FD4
Port B Address
PBADDR
00
58
FD5
Port B Control
PBCTL
00
60
FD6
Port B Input Data
PBIN
XX
60
FD7
Port B Output Data
PBOUT
00
60
GPIO Port C
FD8
Port C Address
PCADDR
00
58
FD9
Port C Control
PCCTL
00
60
FDA
Port C Input Data
PCIN
XX
60
FDB
Port C Output Data
PCOUT
00
60
GPIO Port D
FDC
Port D Address
PDADDR
00
58
FDD
Port D Control
PDCTL
00
60
FDE
Port D Input Data
PDIN
XX
60
FDF
Port D Output Data
PDOUT
00
60
GPIO Port E
FE0
Port E Address
PEADDR
00
58
FE1
Port E Control
PECTL
00
60
FE2
Port E Input Data
PEIN
XX
60
FE3
Port E Output Data
PEOUT
00
60
FE4–FEF
Reserved
—
XX
RSTSTAT
XX
—
XX
Reset
FF0
Reset Status
FF1
Reserved
40
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
30
Table 8. Register File Address Map (Continued)
Address (Hex)
Register Description
Mnemonic
Reset (Hex)1 Page #
Watchdog Timer
FF2
Watchdog Timer Reload High Byte
WDTH
FF
143
FF3
Watchdog Timer Reload Low Byte
WDTL
FF
143
FF4–FF5
Reserved
—
XX
TRMADR
00
281
TRMDR
XX
281
Flash Control
FCTL
00
272
Flash Status
FSTAT
00
272
FPS
00
273
FPROT
00
274
Trim Bit Control
FF6
Trim Bit Address
FF7
Trim Data
Flash Memory Controller
FF8
FF9
Flash Page Select
Flash Sector Protect
FFA
Flash Programming Frequency High Byte
FFREQH
00
275
FFB
Flash Programming Frequency Low Byte
FFREQL
00
275
refer to
the eZ8
CPU
Core
User
Manual
(UM0128)
eZ8 CPU
FFC
Flags
—
XX
FFD
Register Pointer
RP
XX
FFE
Stack Pointer High Byte
SPH
XX
FFF
Stack Pointer Low Byte
SPL
XX
Notes:
1. XX=Undefined.
2. The Reserved space can be configured as General-Purpose Register File RAM depending on the user option bits
(see the User Option Bits chapter on page 277) and the on-chip PRAM size (see the Ordering Information chapter
on page 372). If the PRAM is programmed as General-Purpose Register File RAM on Reserved space, the starting address always begins immediately after the end of General-Purpose Register File RAM.
PS025016-1013
PRELIMINARY
Register Map
Z8 Encore! XP® F1680 Series
Product Specification
31
Chapter 5. Reset, Stop Mode Recovery
and Low-Voltage Detection
The Reset Controller within the F1680 Series MCU controls Reset and Stop Mode
Recovery operations and provides indication of low-voltage supply conditions. During the
operation, the following events cause a Reset:
•
•
•
Power-On Reset (POR)
•
External RESET pin assertion (when the alternate RESET function is enabled by the
GPIO register)
•
On-Chip Debugger initiated Reset (OCDCTL[0] set to 1)
Voltage Brown-Out (VBO) protection
Watchdog Timer (WDT) time-out (when configured by the WDT_RES Flash option bit
to initiate a Reset)
When the device is in STOP Mode, a Stop Mode Recovery is initiated by each of the
following:
•
•
•
Watchdog Timer time-out
GPIO Port input pin transition on an enabled Stop Mode Recovery source
Interrupt from a timer or comparator enabled for STOP Mode operation
The low-voltage detection circuitry on the device features the following:
•
•
5.1.
The low-voltage detection threshold level is user-defined
It generates an interrupt when the supply voltage drops below a user-defined level
Reset Types
The F1680 Series MCU provides various types of Reset operation. Stop Mode Recovery is
considered a form of Reset. Table 9 lists the types of Reset and their operating characteristics. The System Reset is longer, if the external crystal oscillator is enabled by the Flash
option bits allowing additional time for oscillator start-up.
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
32
Table 9. Reset and Stop Mode Recovery Characteristics and Latency
Reset Characteristics and Latency
Reset Type
Control Registers
eZ8 CPU
System Reset
(non-POR Reset)
Reset (as applicable) Reset
68 Internal Precision Oscillator Cycles after
IPO starts up
System Reset
(POR Reset)
Reset (as applicable) Reset
68 Internal Precision Oscillator Cycles +
50 ms Wait time
System Reset with
Crystal Oscillator
Enabled
Reset (as applicable) Reset
568–10068 Internal Precision Oscillator
Cycles after IPO starts up; see Table 141
on page 280 for a description of the
EXTLTMG user option bit.
Stop Mode Recovery
Unaffected, except
RSTSTAT and
OSCCTL registers
4 Internal Precision Oscillator Cycles after
IPO starts up
Reset
Reset Latency (Delay)
During a System Reset or Stop Mode Recovery, the Internal Precision Oscillator (IPO)
requires 4 µs to start up. When the reset type is a System Reset, the F1680 Series MCU is
held in Reset for 68 IPO cycles. If the crystal oscillator is enabled in Flash option bits, the
Reset period is increased to 568–10068 IPO cycles. For more details, see Table 141 on
page 280 for a description of the EXTLTMG user option bit. When the reset type is a Stop
Mode Recovery, the F1680 Series MCU goes to NORMAL Mode immediately after 4
IPO cycles. The total Stop Mode Recovey delay is less than 6 µs. When a Reset occurs due
to a VBO condition, this delay is measured from the time the supply voltage first exceeds
the VBO level (discussed later in this chapter). When a Reset occurs due to a POR
condition, this delay is measured from the time that the supply voltage first exceeds the
POR level. If the external pin reset remains asserted at the end of the Reset period, the
device remains in reset until the pin is deasserted.
Note:
After a Stop Mode Recovery, the external crystal oscillator is unstable. Use software to
wait until it is stable before you can use it as main clock.
At the beginning of Reset, all GPIO pins are configured as inputs with pull-up resistor
disabled, except PD0 that is shared with the Reset pin. On Reset, the Port D0 pin is
configured as a bidirectional open-drain Reset. The pin is internally driven Low during
port reset, after which the user code can reconfigure this pin as a general-purpose output.
During Reset, the eZ8 CPU and on-chip peripherals are idle; however, the on-chip crystal
oscillator and WDT oscillator continue to function.
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
33
On Reset, control registers within the Register File that have a defined Reset value are
loaded with their Reset values. Other control registers (including the Stack Pointer,
Register Pointer and Flags) and general-purpose RAM are not initialized and undefined
following Reset. The eZ8 CPU fetches the Reset vector at Program Memory addresses
0002h and 0003h and loads that value into the Program Counter. Program execution
begins at the Reset vector address.
Because the control registers are reinitialized by a System Reset, the system clock after
reset is always the 11 MHz IPO. User software must reconfigure the oscillator control
block such that the correct system clock source is enabled and selected.
5.2.
Reset Sources
Table 10 lists the possible sources of a System Reset.
Table 10. Reset Sources and Resulting Reset Type
Operating Mode
Reset Source
Special Conditions
NORMAL or
HALT Mode
Power-On Reset
Reset delay begins after supply voltage
exceeds POR level
Voltage Brown-Out
Reset delay begins after supply voltage
exceeds VBO level
Watchdog Timer time-out
when configured for Reset
None
RESET pin assertion
All reset pulses less than three system clocks
in width are ignored, see the Electrical
Characteristics chapter on page 349.
On-Chip Debugger initiated Reset System Reset, except the OCD is unaffected
(OCDCTL[0] set to 1)
by reset
STOP Mode
PS025016-1013
Power-On Reset
Reset delay begins after supply voltage
exceeds POR level
Voltage Brown-Out
Reset delay begins after supply voltage
exceeds VBO level
RESET pin assertion
All reset pulses less than the specified analog
delay is ignored, see the Electrical
Characteristics chapter on page 349.
DBG pin driven Low
None
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
34
5.2.1. Power-On Reset
Each device in the Z8 Encore! XP F1680 Series contains an internal Power-On Reset
(POR) circuit. The POR circuit monitors the supply voltage and holds the whole device in
the Reset state until the supply voltage reaches a safe circuit operating level when the
device is powered on.
After power on, the POR circuit keeps idle until the supply voltage drops below VTH
voltage. Figure 7 on page 35 displays this POR timing.
After the F1680 Series MCU exits the POR state, the eZ8 CPU fetches the Reset vector.
Following this POR, the POR/VBO status bit in the Reset Status Register is set to 1.
For the POR threshold voltage (VPOR) and POR start voltage VTH , see the Electrical
Characteristics chapter on page 349.
VDD = 3.3 V
VPOR
VDD = 0.0V
Program
Execution
VTH
Internal Precision
Oscillator
Crystal
Oscillator
Oscillator
Start-up
Internal RESET
signal
50 ms
Delay
POR
counter delay
optional XTAL
counter delay
Internal POR
Reset
Notes
1. Not to Scale.
2. Internal Reset and POR Reset are active Low.
undefined
Figure 6. Power-On Reset Operation
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
35
V
VCC
VCC(min)
VPOR
POR
POR
No POR
VTH
t(POR_DELAY)
t(POR_DELAY)
POR
Reset
Figure 7. Power-On Reset Timing
5.2.2. Voltage Brown-Out Reset
The F1680 Series MCU provides a VBO Reset feature for low-voltage protection. The
VBO circuit has a preset threshold voltage (VVBO) with a hysteresis of VHYS. The VBO
circuit will monitor the power supply voltage if the VBO is enabled. When VBO Reset
circuit detects the power supply voltage falls below the threshold voltage VVBO, the VBO
resets the device by pulling the POR Reset from 1 to 0. The VBO will hold the POR Reset
until the power supply voltage goes above the VVBO + (VVBO + VHYS) and then the VBO
Reset is released. The device progresses through a full System Reset sequence, just like
power-on case. Following this System Reset sequence, the POR/VBO status bit in the
Reset Status (RSTSTAT) register is set to 1. Figure 8 on page 36 displays VBO Reset
operation.
For VBO threshold voltages (VVBO) and VBO hysteresis (VHYS), see the Electrical Characteristics chapter on page 349.
The VBO circuit is either enabled or disabled during STOP Mode. VBO circuit operation
is controlled by both the VBO_AO Flash option bit and the Power Control Register bit4.
For more details, see the Flash Option Bits chapter on page 276 and the Power Control
Register Definitions section on page 44.
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
36
VDD = 3.3 V
VDD = 3.3 V
VVBO+
VVBO
Program
Execution
Voltage
Brown-Out
Program
Execution
WDT Clock
System Clock
Internal Reset
Signal
POR
counter delay
Internal VBO
Reset
VBO delay: pulse rejection
Note: Not to Scale
Figure 8. Voltage Brown-Out Reset Operation
5.2.3. Watchdog Timer Reset
If the device is operating in NORMAL or STOP modes, the WDT initiates a System Reset
at time-out if the WDT_RES Flash option bit is programmed to 1 (which is the
unprogrammed state of the WDT_RES Flash option bit). If the bit is programmed to 0, it
configures the WDT to cause an interrupt, not a System Reset at time-out. The WDT
status bit in the Reset Status Register is set to signify that the reset was initiated by the
WDT.
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
37
5.2.4. External Reset Input
The RESET pin has a Schmitt-triggered input and an internal pull-up resistor. When the
RESET pin is asserted for a minimum of four system clock cycles, the device progresses
through the System Reset sequence. Because of the possible asynchronicity of the system
clock and reset signals, the required reset duration can be as short as three clock periods
and as long as four. A reset pulse three clock cycles in duration might trigger a Reset; a
pulse four cycles in duration always triggers a Reset.
While the RESET input pin is asserted Low, the F1680 Series MCU remains in the Reset
state. If the RESET pin is held Low beyond the System Reset time-out, the device exits the
Reset state on the system clock rising edge following RESET pin deassertion. Following a
System Reset initiated by the external RESET pin, the EXT status bit in the RSTSTAT
Register is set to 1.
5.2.5. External Reset Indicator
During System Reset or when enabled by the GPIO logic (see the Port A–E Control Registers section on page 60), the RESET pin functions as an open-drain (active Low) reset
mode indicator in addition to the input functionality. This Reset output feature allows the
F1680 Series MCU to reset other components to which it is connected, even if that reset is
caused by internal sources such as POR, VBO, or WDT events.
After an internal Reset event occurs, the internal circuitry begins driving the RESET pin
Low. The RESET pin is held Low by the internal circuitry until the appropriate delay
listed in Table 9 on page 32 has elapsed.
5.2.6. On-Chip Debugger Initiated Reset
A POR can be initiated using the OCD by setting the RST bit in the OCD Control Register. The OCD block is not reset, but the rest of the chip goes through a normal System
Reset. The RST bit automatically clears during the system reset. Following the System
Reset the POR bit in the WDT Control Register is set.
5.3.
Stop Mode Recovery
STOP Mode is entered by execution of a stop instruction by the eZ8 CPU. For detailed
STOP Mode information, see the Low-Power Modes section on page 42. During Stop
Mode Recovery, the CPU is held in reset for 4 IPO cycles.
Stop Mode Recovery does not affect On-chip registers other than the Reset Status
(RSTSTAT) register and the Oscillator Control Register (OSCCTL). After any Stop Mode
Recovery, the IPO is enabled and selected as the system clock. If another system clock
source is required or IPO disabling is required, the Stop Mode Recovery code must
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
38
reconfigure the oscillator control block such that the correct system clock source is
enabled and selected.
The eZ8 CPU fetches the Reset vector at Program Memory addresses 0002h and 0003h
and loads that value into the Program Counter. Program execution begins at the Reset
vector address. Following Stop Mode Recovery, the stop bit in the Reset Status Register is
set to 1. Table 11 lists the Stop Mode Recovery sources and resulting actions. The text
following provides more detailed information about each of the Stop Mode Recovery
sources.
Table 11. Stop Mode Recovery Sources and Resulting Action
Operating
Mode
STOP Mode
Stop Mode Recovery Source
Action
Watchdog Timer time-out when configured Stop Mode Recovery
for Reset
Watchdog Timer time-out when configured Stop Mode Recovery followed by interrupt
for interrupt
(if interrupts are enabled)
Interrupt from Timer enabled for STOP
Mode operation
Stop Mode Recovery followed by interrupt
(if interrupts are enabled)
Interrupt from Comparator enabled for
STOP Mode operation
Stop Mode Recovery followed by interrupt
(if interrupts are enabled)
Data transition on any GPIO port pin
enabled as a Stop Mode Recovery source
Stop Mode Recovery
Assertion of external RESET Pin
System Reset
Debug Pin driven Low
System Reset
5.3.1. Stop Mode Recovery Using Watchdog Timer Time-Out
If the WDT times out during STOP Mode, the device undergoes a Stop Mode Recovery
sequence. In the Reset Status Register, the WDT and stop bits are set to 1. If the WDT is
configured to generate an interrupt on time-out and the F1680 Series MCU is configured
to respond to interrupts. The eZ8 CPU services the WDT interrupt request following the
normal Stop Mode Recovery sequence.
5.3.2. Stop Mode Recovery Using Timer Interrupt
If a Timer with 32K crystal enabled for STOP Mode operation interrupts during STOP
Mode, the device undergoes a Stop Mode Recovery sequence. In the Reset Status Register,
the stop bit is set to 1. If the F1680 Series MCU is configured to respond to interrupts, the
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
39
eZ8 CPU services the Timer interrupt request following the normal Stop Mode Recovery
sequence.
5.3.3. Stop Mode Recovery Using Comparator Interrupt
If Comparator enabled for STOP Mode operation interrupts during STOP Mode, the
device undergoes a Stop Mode Recovery sequence. In the Reset Status Register, the stop
bit is set to 1. If the F1680 Series MCU is configured to respond to interrupts, the eZ8
CPU services the comparator interrupt request following the normal Stop Mode Recovery
sequence.
5.3.4. Stop Mode Recovery Using GPIO Port Pin Transition
Each of the GPIO port pins can be configured as a Stop Mode Recovery input source. On
any GPIO pin enabled as a Stop Mode Recovery source, a change in the input pin value
(from High to Low or from Low to High) initiates Stop Mode Recovery. In the Reset Status Register, the stop bit is set to 1.
Caution: In STOP Mode, the GPIO Port Input Data registers (PxIN) are disabled. The Port Input
Data registers record the Port transition only if the signal stays on the Port pin until the
end of the Stop Mode Recovery delay. As a result, short pulses on the Port pin can initiate Stop Mode Recovery without being written to the Port Input Data Register or without initiating an interrupt (if enabled for that pin).
5.3.5. Stop Mode Recovery Using External RESET Pin
When the F1680 Series MCU is in STOP Mode and the external RESET pin is driven
Low, a System Reset occurs. Because of a glitch filter operating on the RESET pin, the
Low pulse must be greater than the minimum width specified, or it is ignored. For details,
see the Electrical Characteristics chapter on page 349.
5.4.
Low-Voltage Detection
In addition to the VBO Reset described earlier, it is also possible to generate an interrupt
when the supply voltage drops below a user-selected value. For more details about the
available Low-Voltage Detection (LVD) threshold levels, see the Trim Option Bits at
Address 0000H (TTEMP0) section on page 282.
When the supply voltage drops below the LVD threshold, the LVD bit of the RSTSTAT
Register is set to 1. This bit remains 1 until the low-voltage condition elapses. Reading or
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
40
writing this bit does not clear it. The LVD circuit can also generate an interrupt when
enabled (see the Interrupt Vectors and Priority section on page 71). The LVD is not
latched, so enabling the interrupt is the only way to guarantee detection of a transient lowvoltage event.
The LVD circuit is either enabled or disabled by the Power Control Register bit 4. For
more details, see the Power Control Register Definitions section on page 44.
5.5.
Reset Register Definitions
The following sections define the Reset registers.
5.5.0.1. Reset Status Register
The Reset Status (RSTSTAT) Register, shown in Table 12, is a read-only register that indicates the source of the most recent Reset event, Stop Mode Recovery event and/or WDT
time-out. Reading this register resets the upper 4 bits to 0.
This register shares its address with the Reset Status Register, which is write-only.
Table 12. Reset Status Register (RSTSTAT)
Bits
7
6
5
4
Field
POR/VBO
STOP
WDT
EXT
See Table 13
Reset
R
R/W
R
R
3
2
1
Reserved
0
LVD
0
0
0
0
0
R
R
R
R
R
FF0h
Address
Bit
Description
[7]
POR/VBO
Power-On initiated VBO Reset or general VBO Reset Indicator
If this bit is set to 1, a POR or VBO Reset event occurs. This bit is reset to 0, if a WDT timeout or Stop Mode Recovery occurs. This bit is also reset to 0 when the register is read.
[6]
STOP
Stop Mode Recovery Indicator
If this bit is set to 1, a Stop Mode Recovery occurs. If the STOP and WDT bits are both set
to 1, the Stop Mode Recovery occurs because of a WDT time-out. If the stop bit is 1 and the
WDT bit is 0, the Stop Mode Recovery is not caused by a WDT time-out. This bit is reset by
Power-On Reset or WDT time-out that occurred while not in STOP Mode. Reading this
register also resets this bit.
[5]
WDT
Watchdog Timer time-out Indicator
If this bit is set to 1, a WDT time-out occurs. A POR resets this pin. A Stop Mode Recovery
from a change in an input pin also resets this bit. Reading this register resets this bit. This
Read must occur before clearing the WDT interrupt.
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
41
Bit
Description (Continued)
[4]
EXT
External Reset Indicator
If this bit is set to 1, a Reset initiated by the external RESET pin occurs. A POR or a Stop
Mode Recovery from a change in an input pin resets this bit. Reading this register resets
this bit.
[3:1]
Reserved; must be 0.
[0]
LVD
Low-Voltage Detection Indicator
If this bit is set to 1 the current state of the supply voltage is below the low-voltage detection
threshold. This value is not latched but is a real-time indicator of the supply voltage level.
Table 13. Reset Status Per Event
Reset or Stop Mode Recovery Event
POR
STOP
WDT
EXT
Power-On Reset or VBO Reset
1
0
0
0
Reset using RESET pin assertion
0
0
0
1
Reset using Watchdog Timer time-out
0
0
1
0
Reset using the On-Chip Debugger (OCTCTL[1] set to 1)
1
0
0
0
Reset from STOP Mode using DBG Pin driven Low
1
0
0
0
Stop Mode Recovery using GPIO pin transition
0
1
0
0
Stop Mode Recovery using Watchdog Timer time-out
0
1
1
0
PS025016-1013
PRELIMINARY
Reset, Stop Mode Recovery and Low-Voltage
Z8 Encore! XP® F1680 Series
Product Specification
42
Chapter 6. Low-Power Modes
The Z8 Encore! XP F1680 Series products have power-saving features. The highest level
of power reduction is provided by the STOP Mode. The next lower level of power reduction is provided by the HALT Mode.
Further power savings can be implemented by disabling individual peripheral blocks
while in NORMAL Mode.
6.1.
STOP Mode
Executing the eZ8 CPU’s Stop instruction places the device into STOP Mode. In STOP
Mode, the operating characteristics are:
PS025016-1013
•
Primary crystal oscillator and internal precision oscillator are stopped; XIN and XOUT
(if previously enabled) are disabled and PA0/PA1 reverts to the states programmed by
the GPIO registers
•
•
•
•
System clock is stopped
•
•
•
If enabled, the Watchdog Timer (WDT) logic continues operating
•
If enabled for operation in STOP Mode by the associated Flash option bit, the VBO
protection circuit continues operating; the low-voltage detection circuit continues to
operate if enabled by the Power Control Register
•
Low-Power Operational Amplifier and comparator continue to operate if enabled by
the Power Control Register
•
All other on-chip peripherals are idle
eZ8 CPU is stopped
Program counter (PC) stops incrementing
Watchdog Timer’s internal RC oscillator continues operating if enabled by the Oscillator Control Register
If enabled, the 32 kHz secondary oscillator continues operating
If enabled for operation in STOP Mode, the Timer logic continues to operate with
32 kHz secondary oscillator as the Timer clock source
PRELIMINARY
Low-Power Modes
Z8 Encore! XP® F1680 Series
Product Specification
43
To minimize current in STOP Mode, all GPIO pins which are configured as digital inputs
must be driven to one of the supply rails (VDD or GND). The device is brought out of
STOP Mode using Stop Mode Recovery. For more details about Stop Mode Recovery, see
the Reset, Stop Mode Recovery and Low-Voltage Detection chapter on page 31.
6.2.
HALT Mode
Executing the eZ8 CPU’s HALT instruction places the device into HALT Mode. In HALT
Mode, the operating characteristics are:
•
•
•
•
•
•
•
•
Primary oscillator is enabled and continues to operate
System clock is enabled and continues to operate
eZ8 CPU is stopped
Program counter (PC) stops incrementing
WDT’s internal RC oscillator continues to operate
If enabled, the WDT continues to operate
If enabled, the 32 kHz secondary oscillator for Timers continues to operate
All other on-chip peripherals continue to operate
The eZ8 CPU can be brought out of HALT Mode by any of the following operations:
•
•
•
•
•
Interrupt
Watchdog Timer time-out (Interrupt or Reset)
Power-On Reset
Voltage Brown-Out Reset
External RESET pin assertion
To minimize current in HALT Mode, all GPIO pins which are configured as inputs must
be driven to one of the supply rails (VDD or GND).
6.3.
Peripheral-Level Power Control
In addition to the STOP and HALT modes, it is possible to disable each peripheral on each
of the Z8 Encore! XP F1680 Series devices. Disabling a given peripheral minimizes its
power consumption.
PS025016-1013
PRELIMINARY
Low-Power Modes
Z8 Encore! XP® F1680 Series
Product Specification
44
6.4.
Power Control Register Definitions
The following sections describe the power control registers.
6.4.0.1. Power Control Register 0
Each bit of the following registers disables a peripheral block, either by gating its system
clock input or by removing power from the block.
The default state of the low-power operational amplifier is OFF. To use the low-power
operational amplifier, clear the TRAM bit by turning it ON. Clearing this bit might interfere with normal ADC measurements on ANA0 (the LPO output). This bit enables the
amplifier even in STOP Mode. If the amplifier is not required in STOP Mode, disable it.
Failure to perform this results in STOP Mode currents greater than specified.
This register is only reset during a POR sequence; other system reset events do not affect it.
Note:
Table 14. Power Control Register 0 (PWRCTL0)
Bits
7
Field
TRAM
Reset
1
0
R/W
R/W
R/W
6
5
4
3
2
1
0
LVD/VBO
TEMP
Reserved
COMP0
COMP1
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
Reserved
Address
F80h
Bit
Description
[7]
TRAM
Low-Power Operational Amplifier Disable
0 = Low-Power Operational Amplifier is enabled (this applies even in STOP Mode).
1 = Low-Power Operational Amplifier is disabled.
[6:5]
Reserved; must be 0.
[4]
Low-Voltage Detection/Voltage Brown-Out Detector Disable
LVD/VBO 0 = LVD/VBO Enabled.
1 = LVD/VBO Disabled.
The LVD and VBO circuits are enabled or disabled separately to minimize power consumption
in low-power modes. The LVD is controlled by the LVD/VBO bit only in all modes. The VBO is
set by the LVD/VBO bit and the VBO_AO bit of Flash Option bit at Program Memory Address
0000h. Table 15 on page 45 lists the setup condition for LVD and VBO circuits in different
operation modes.
[3]
TEMP
Temperature Sensor Disable
0 = Temperature Sensor Enabled.
1 = Temperature Sensor Disabled.
PS025016-1013
PRELIMINARY
Low-Power Modes
Z8 Encore! XP® F1680 Series
Product Specification
45
Bit
Description
[2]
Reserved; must be 0.
[1]
COMP0
Comparator 0 Disable
0 = Comparator 0 is Enabled (this applies even in STOP Mode).
1 = Comparator 0 is Disabled.
[0]
COMP1
Comparator 1 Disable
0 = Comparator 1 is Enabled (this applies even in STOP Mode).
1 = Comparator 1 is Disabled.
Table 15. Setup Condition for LVD and VBO Circuits in Different Operation Modes
LVD/VBO Bit Setup1
Operation Mode
VBO_AO
Bit Setup
VBO_AO="1" or
enabled2
VBO_AO="0" or
disabled3
LVD/VBO Bit = "0" or enabled
LVD/VBO Bit = "1" or disabled
ACTIVE/HALT Mode STOP Mode ACTIVE/HALT Mode STOP Mode
LVD "ON"
LVD "OFF"
VBO "ON"
VBO "ON"
LVD "ON"
LVD "OFF"
VBO "ON"
VBO "OFF"
VBO "OFF"
VBO "OFF"
Notes:
1. The LVD can be turned ON or OFF by the LVD/VBO bit in any mode.
2. When VBO_AO Bit is enabled, VBO is always ON for all modes no matter the setting of LVD/VBO Bit.
3. When VBO_AO Bit is disabled, VBO circuit is always OFF in STOP Mode no matter the setting of LVD/VBO Bit.
And VBO can be turned On or OFF by the LVD/VBO Bit in ACTIVE and HALT modes.
PS025016-1013
PRELIMINARY
Low-Power Modes
Z8 Encore! XP® F1680 Series
Product Specification
46
Chapter 7. General-Purpose Input/Output
The Z8 Encore! XP F1680 Series product supports a maximum of 37 port pins (Ports A–
E) for general-purpose input/output (GPIO) operations. Each port contains control and
data registers. The GPIO control registers determine data direction, open-drain, output
drive current, programmable pull-ups, Stop Mode Recovery functionality and alternate pin
functions. Each port pin is individually programmable. In addition, the Port C pins are
capable of direct LED drive at programmable drive strengths.
7.1.
GPIO Port Availability by Device
Table 16 lists the port pins available with each device and package type.
Table 16. Port Availability by Device and Package Type
10-bit
ADC
SPI
20-pin
PDIP
SOIC
SSOP
7
0
[7:0]
[3:0]
[3:0]
[0]
—
17
28-pin
PDIP
SOIC
SSOP
8
1
[7:0]
[5:0]
[7:0]
[0]
—
23
Z8F2480PM, Z8F1680PM, 40-pin
Z8F0880PM
PDIP
8
1
[7:0]
[5:0]
[7:0]
[7:0]
[2:0]
33
Z8F2480AN, Z8F2480QN; 44-pin
Z8F1680AN, Z8F1680QN; LQFP
Z8F0880AN, Z8F0880QN QFN
8
1
[7:0]
[5:0]
[7:0]
[7:0]
[6:0]
37
Devices
Package
Z8F2480PH, Z8F2480hH
Z8F2480SH;
Z8F1680PH, Z8F1680hH
Z8F1680SH;
Z8F0880PH, Z8F0880hH
Z8F0880SH
Z8F2480PJ, Z8F2480SJ
Z8F2480hJ;
Z8F1680PJ, Z8F1680SJ
Z8F1680hJ;
Z8F0880PJ, Z8F0880SJ
Z8F0880hJ
PS025016-1013
Port A Port B Port C Port D Port E
PRELIMINARY
Total
I/O
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
47
7.2.
Architecture
Figure 9 displays a simplified block diagram of a GPIO port pin and does not illustrate the
ability to accommodate alternate functions and variable port current drive strength.
Port Input
Data Register
Q
D
Schmitt-Trigger
Q
D
System
Clock
VDD
Port Output Control
Port Output
Data Register
DATA
Bus
D
Q
Port
Pin
System
Clock
Port Data Direction
GND
Figure 9. GPIO Port Pin Block Diagram
7.3.
GPIO Alternate Functions
Many GPIO port pins are used for GPIO and to access the on-chip peripheral functions
like the timers and serial-communication devices. The Port A–E Alternate Function subregisters configure these pins for either GPIO or alternate function operation. When a pin
is configured for alternate function, control of port-pin direction (input/output) is passed
from Port A–E Data Direction registers to the alternate functions assigned to this pin.
Tables 17 through 19 list the alternate functions possible with each port pin for every
package. The alternate function associated at a pin is defined through alternate function
sets subregisters AFS1 and AFS2.
The crystal oscillator and the 32 kHz secondary oscillator functionalities are not controlled
by the GPIO block. When the crystal oscillator or the 32 kHz secondary oscillator is
enabled in the oscillator control block, the GPIO functionality of PA0 and PA1, or PA2 and
PA3, is overridden. In such a case, those pins function as input and output for the crystal
oscillator.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
48
7.4.
Direct LED Drive
The Port C pins provide a current synchronized output capable of driving an LED without
requiring an external resistor. The output synchronizes current at programmable levels of
3 mA, 7 mA, 13 mA and 20 mA. This mode is enabled through the Alternate Function subregister AFS1 and is programmable through the LED control registers. For proper function, the LED anode must be connected to VDD and the cathode to the GPIO pin.
Using all Port C pins in LED drive mode with maximum current can result in excessive
total current. For the maximum total current for the applicable package, see the Electrical
Characteristics chapter on page 349.
7.5.
Shared Reset Pin
On all the devices, the Port D0 pin shares function with a bidirectional reset pin. Unlike all
other I/O pins, this pin does not default to GPIO pin on power-up. This pin acts as a bidirectional input/open-drain output reset with an internal pull-up until user software reconfigures it as GPIO PD0. The Port D0 pin is output-only when in GPIO Mode, and must be
configured as an output. PD0 supports the High Drive feature but not the Stop Mode
Recovery feature.
7.6.
Crystal Oscillator Override
For systems using the crystal oscillator, PA0 and PA1 is used to connect the crystal. When
the main crystal oscillator is enabled (see the Oscillator Control1 Register section on page
320), the GPIO settings are overridden and PA0 and PA1 is disabled.
7.7.
32 kHz Secondary Oscillator Override
For systems using a 32 kHz secondary oscillator, PA2 and PA3 is used to connect a watch
crystal. When the 32 kHz secondary oscillator is enabled (see the Oscillator Control1 Register section on page 320), the GPIO settings are overridden and PA2 and PA3 is disabled.
7.8.
5 V Tolerance
All GPIO pins, including those that share functionality with an ADC, crystal or comparator signals are 5 V-tolerant and can handle inputs higher than VDD even with the pull-ups
enabled.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
49
7.9.
External Clock Setup
For systems using an external TTL drive, PB3 is the clock source for 20-pin, 28-pin, 40pin and 44-pin devices. In this case, configure PB3 for alternate function CLKIN. Write to
the Oscillator Control Register (see page 320) such that the external oscillator is selected
as the system clock.
Table 17. Port Alternate Function Mapping, 20-Pin Parts1,2
Port
Pin
Mnemonic
Alternate Function Description
Port A
PA0
T0IN/T0OUT
Timer 0 Input/Timer 0 Output
Complement
Reserved
PA1
T0OUT
DE0
Timer 0 Output
CTS0
UART 0 Driver Enable
PA5
PA6
PA7
AFS1[2]: 0
AFS1[2]: 1
UART 0 Clear to Send
Reserved
PA4
AFS1[1]: 0
AFS1[1]: 1
Reserved
PA3
AFS1[0]: 0
AFS1[0]: 1
Reserved
PA2
Alternate Function
Set Register AFS1
AFS1[3]: 0
AFS1[3]: 1
RXD0/IRRX0
UART 0/IrDA 0 Receive Data
AFS1[4]: 0
T2IN/T2OUT
Timer 2 Input/Timer 2 Output
Complement
AFS1[4]: 1
TXD0/IRTX0
UART 0/IrDA 0 Transmit Data
AFS1[5]: 0
T2OUT
Timer 2 Output
AFS1[5]: 1
T1IN/T1OUT
Timer 1 Input/Timer 1 Output
Complement
AFS1[6]: 0
SCL
I2C Serial Clock
AFS1[6]: 1
T1OUT
Timer 1 Output
AFS1[7]: 0
SDA
2
I C Serial Data
AFS1[7]: 1
Notes:
1. Because there are at most two choices of alternate functions for some pins in Port A, the Alternate Function Set
Register (AFS2) is implemented but not used to select the function. The alternate function selection must also
be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D pin, the Alternate Function Set registers are not
implemented for Port D. Enabling the alternate function selections automatically enables the associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
50
Table 17. Port Alternate Function Mapping, 20-Pin Parts1,2 (Continued)
Port
Pin
Mnemonic
Port B
PB0
Reserved
ANA0/AMPOUT
PB1
PB3
Port C
PC0
PC3
Port D
PD0
AFS1[0]: 1
AFS1[1]: 0
ADC Analog Input/LPO Input (N)
AFS1[1]: 1
AFS1[2]: 0
ANA2/AMPINP
ADC Analog Input/LPO Input (P)
AFS1[2]: 1
CLKIN
External Clock Input
AFS1[3]: 0
ANA3
ADC Analog Input
AFS1[3]: 1
Reserved
AFS1[0]: 0
ADC or Comparator 0 Input (P), or LED
drive
Reserved
ANA5/C0INN/LED
PC2
ADC Analog Input/LPO Output
Reserved
ANA4/C0INP/LED
PC1
AFS1[0]: 0
Reserved
ANA1/AMPINN
PB2
Alternate Function
Set Register AFS1
Alternate Function Description
AFS1[0]: 1
AFS1[1]: 0
ADC or Comparator 0 Input (N), or LED
drive
Reserved
AFS1[1]: 1
AFS1[2]: 0
VREF/ANA6/LED
Voltage Reference or ADC Analog Input
or LED Drive
AFS1[2]: 1
C0OUT
Comparator 0 Output
AFS1[3]: 0
LED
LED drive
AFS1[3]: 1
RESET
External Reset
N/A
Notes:
1. Because there are at most two choices of alternate functions for some pins in Port A, the Alternate Function Set
Register (AFS2) is implemented but not used to select the function. The alternate function selection must also
be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D pin, the Alternate Function Set registers are not
implemented for Port D. Enabling the alternate function selections automatically enables the associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
51
Table 18. Port Alternate Function Mapping, 28-Pin Parts1,2
Port
Pin
Mnemonic
Alternate Function Description
Alternate Function
Set Register AFS1
Port A
PA0
T0IN/T0OUT
Timer 0 Input/Timer 0 Output Complement
AFS1[0]: 0
Reserved
PA1
T0OUT
AFS1[0]: 1
Timer 0 Output
AFS1[1]: 0
Reserved
PA2
DE0
AFS1[1]: 1
UART 0 Driver Enable
AFS1[2]: 0
Reserved
PA3
CTS0
AFS1[2]: 1
UART 0 Clear to Send
AFS1[3]: 0
Reserved
PA4
RXD0/IRRX0
AFS1[3]: 1
UART 0/IrDA 0 Receive Data
AFS1[4]: 0
Reserved
PA5
TXD0/IRTX0
AFS1[4]: 1
UART 0/IrDA 0 Transmit Data
AFS1[5]: 0
Reserved
PA6
PA7
AFS1[5]: 1
T1IN/T1OUT
Timer 1 Input/Timer 1 Output Complement
AFS1[6]: 0
SCL
I2C Serial Clock
AFS1[6]: 1
T1OUT
Timer 1 Output
AFS1[7]: 0
SDA
2
I C Serial Data
AFS1[7]: 1
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A and B, the Alternate Function Set Register (AFS2) is implemented but not used to select the function. The alternate function selection
must also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
52
Table 18. Port Alternate Function Mapping, 28-Pin Parts1,2 (Continued)
Port
Pin
Mnemonic
Port B
PB0
Reserved
ANA0/AMPOUT
PB1
PB3
PB4
ADC Analog Input/LPO Output
AFS1[0]: 1
AFS1[1]: 0
ADC Analog Input/LPO Input (N)
Reserved
AFS1[1]: 1
AFS1[2]: 0
ANA2/AMPINP
ADC Analog Input/LPO Input (P)
AFS1[2]: 1
CLKIN
External Clock Input
AFS1[3]: 0
ANA3
ADC Analog Input
AFS1[3]: 1
Reserved
ANA7
PB5
Alternate Function
Set Register AFS1
AFS1[0]: 0
Reserved
ANA1/AMPINN
PB2
Alternate Function Description
AFS1[4]: 0
ADC Analog Input
Reserved
VREF
AFS1[4]: 1
AFS1[5]: 0
Voltage Reference
AFS1[5]: 1
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A and B, the Alternate Function Set Register (AFS2) is implemented but not used to select the function. The alternate function selection
must also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
53
Table 18. Port Alternate Function Mapping, 28-Pin Parts1,2 (Continued)
Alternate Function
Set Register AFS1
Port
Pin
Mnemonic
Port C
PC0
Reserved
AFS1[0]: 0
ANA4/C0INP/LED ADC or Comparator 0 Input (P), or LED
drive
AFS1[0]: 1
MISO
AFS1[1]: 0
PC1
Alternate Function Description
SPI Master In/Slave Out
ANA5/C0INN/LED ADC or Comparator 0 Input (N), or LED
Drive
PC2
PC3
PC4
PC5
PC6
PC7
Port D
PD0
AFS1[1]: 1
SS
SPI Slave Select
AFS1[2]: 0
ANA6/LED
ADC Analog Input or LED Drive
AFS1[2]: 1
C0OUT
Comparator 0 Output
AFS1[3]: 0
LED
LED drive
AFS1[3]: 1
MOSI
SPI Master Out/Slave In
AFS1[4]: 0
LED
LED Drive
AFS1[4]: 1
SCK
SPI Serial Clock
AFS1[5]: 0
LED
LED Drive
AFS1[5]: 1
T2IN/T2OUT
Timer 2 Input/Timer 2 Output Complement
AFS1[6]: 0
LED
LED Drive
AFS1[6]: 1
T2OUT
Timer 2 Output
AFS1[7]: 0
LED
LED Drive
AFS1[7]: 1
RESET
External Reset
N/A
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A and B, the Alternate Function Set Register (AFS2) is implemented but not used to select the function. The alternate function selection
must also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
54
Table 19. Port Alternate Function Mapping, 40-/44-Pin Parts1,2
Port
Pin
Mnemonic
Alternate Function Description
Alternate
Function Set
Register AFS1
Port A
PA0
T0IN/T0OUT
Timer 0 Input/Timer 0 Output Complement
AFS1[0]: 0
Reserved
PA1
T0OUT
AFS1[0]: 1
Timer 0 Output
AFS1[1]: 0
Reserved
PA2
DE0
AFS1[1]: 1
UART 0 Driver Enable
AFS1[2]: 0
Reserved
PA3
CTS0
AFS1[2]: 1
UART 0 Clear to Send
AFS1[3]: 0
Reserved
PA4
RXD0/IRRX0
AFS1[3]: 1
UART 0/IrDA 0 Receive Data
AFS1[4]: 0
AFS1[4]: 1
PA5
TXD0/IRTX0
UART 0/IrDA 0 Transmit Data
AFS1[5]: 0
AFS1[5]: 1
PA6
T1IN/T1OUT
Timer 1 Input/Timer 1 Output Complement
Reserved
PA7
T1OUT
AFS1[6]: 0
AFS1[6]: 1
Timer 1 Output
Reserved
AFS1[7]: 0
AFS1[7]: 1
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A–C, the Alternate Function
Set Register (AFS2) is implemented but not used to select the function. The alternate function selection must
also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
3. This timer function is only available in the 44-pin package; its alternate functions are reserved in the 40-pin package.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
55
Table 19. Port Alternate Function Mapping, 40-/44-Pin Parts1,2 (Continued)
Port
Pin
Mnemonic
Port B
PB0
Reserved
ANA0/AMPOUT
PB1
PB3
PB4
ADC Analog Input/LPO Output
AFS1[0]: 1
AFS1[1]: 0
ADC Analog Input/LPO Input (N)
Reserved
AFS1[1]: 1
AFS1[2]: 0
ANA2/AMPINP
ADC Analog Input/LPO Input (P)
AFS1[2]: 1
CLKIN
External Clock Input
AFS1[3]: 0
ANA3
ADC Analog Input
AFS1[3]: 1
Reserved
ANA7
PB5
AFS1[0]: 0
Reserved
ANA1/AMPINN
PB2
Alternate Function Description
Alternate
Function Set
Register AFS1
AFS1[4]: 0
ADC Analog Input
Reserved
VREF
AFS1[4]: 1
AFS1[5]: 0
Voltage Reference
AFS1[5]: 1
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A–C, the Alternate Function
Set Register (AFS2) is implemented but not used to select the function. The alternate function selection must
also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
3. This timer function is only available in the 44-pin package; its alternate functions are reserved in the 40-pin package.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
56
Table 19. Port Alternate Function Mapping, 40-/44-Pin Parts1,2 (Continued)
Port
Pin
Mnemonic
Port C
PC0
Reserved
ANA4/C0INP/LED
PC1
PC2
PC3
PC4
PC5
PC6
PC7
Alternate
Function Set
Register AFS1
Alternate Function Description
AFS1[0]: 0
ADC or Comparator 0 Input (P), or LED
drive
Reserved
AFS1[0]: 1
AFS1[1]: 0
ANA5/C0INN/LED
ADC or Comparator 0 Input (N), or LED
Drive
AFS1[1]: 1
SS
SPI Slave Select
AFS1[2]: 0
ANA6/LED
ADC Analog Input or LED Drive
AFS1[2]: 1
MISO
SPI Master In Slave Out
AFS1[3]: 0
LED
LED drive
AFS1[3]: 1
MOSI
SPI Master Out Slave In
AFS1[4]: 0
LED
LED Drive
AFS1[4]: 1
SCK
SPI Serial Clock
AFS1[5]: 0
LED
LED Drive
AFS1[5]: 1
T2IN/T2OUT
Timer 2 Input/Timer2 Output Complement
AFS1[6]: 0
LED
LED Drive
AFS1[6]: 1
T2OUT
Timer 2 Output
AFS1[7]: 0
LED
LED Drive
AFS1[7]: 1
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A–C, the Alternate Function
Set Register (AFS2) is implemented but not used to select the function. The alternate function selection must
also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
3. This timer function is only available in the 44-pin package; its alternate functions are reserved in the 40-pin package.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
57
Table 19. Port Alternate Function Mapping, 40-/44-Pin Parts1,2 (Continued)
Port
Pin
Mnemonic
Alternate Function Description
Alternate
Function Set
Register AFS1
Port D
PD0
RESET
External Reset
N/A
PD1
C1INN
Comparator 1 Input (N)
PD2
C1INP
Comparator 1 Input (P)
PD3
CTS1/C1OUT
UART 1 Clear to Send or Comparator 1
Output
PD4
RXD1/IRRX1
UART 1/IrDA 1 Receive Data
PD5
TXD1/IRTX1
UART 1/IrDA 1 Transmit Data
PD6
DE1
UART 1 Driver Enable
PD7
C0OUT
Comparator 0 Output
PE0
T4IN3
Port E
N/A
Reserved
PE1
SCL
I2C Serial Clock
Reserved
PE2
SDA
I2C Serial Data
Reserved
PE3
T4CHA3
Reserved
PE4
T4CHB3
Reserved
PE5
T4CHC3
Reserved
PE6
T4CHD3
Reserved
Notes:
1. Because there are at most two choices of alternate functions for some pins in Ports A–C, the Alternate Function
Set Register (AFS2) is implemented but not used to select the function. The alternate function selection must
also be enabled, as described in the Port A–E Alternate Function Subregisters section on page 61.
2. Because there is only one alternate function for each Port D and Port E pin, the Alternate Function Set registers
are not implemented for Ports D and E. Enabling the alternate function selections automatically enables the
associated alternate function, as described in the Port A–E Alternate Function Subregisters section on page 61.
3. This timer function is only available in the 44-pin package; its alternate functions are reserved in the 40-pin package.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
58
7.10. GPIO Interrupts
Many of the GPIO port pins can be used as interrupt sources. Some port pins can be configured to generate an interrupt request on either the rising edge or falling edge of the pininput signal. Other port-pin interrupt sources generate an interrupt when any edge occurs
(both rising and falling). For more details about interrupts using the GPIO pins, see the
Interrupt Controller chapter on page 68.
7.11. GPIO Control Register Definitions
Four registers for each port provide access to GPIO control, input data and output data.
Table 20 lists these port registers. Use Port A–E Address and Control registers together to
provide access to subregisters for port configuration and control.
Table 20. GPIO Port Registers and Subregisters
Port Register Mnemonic
Port Register Name
PxADDR
Port A–E Address Register (Selects subregisters)
PxCTL
Port A–E Control Register (Provides access to subregisters)
PxIN
Port A–E Input Data Register
PxOUT
Port A–E Output Data Register
Port Subregister Mnemonic
Port Register Name
PxDD
Data Direction
PxAF
Alternate Function
PxOC
Output Control (Open-Drain)
PxHDE
High Drive Enable
PxSMRE
Stop Mode Recovery Source Enable
PxPUE
Pull-up Enable
PxAFS1
Alternate Function Set 1
PxAFS2
Alternate Function Set 2
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
59
7.11.1. Port A–E Address Registers
The Port A–E address registers select the GPIO Port functionality accessible through the
Port A–E Control registers. The Port A–E Address and Control registers combine to provide access to all GPIO Port controls, see Table 21.
Table 21. Port A–E GPIO Address Registers (PxADDR)
Bits
7
6
5
4
3
Field
PADDR[7:0]
Reset
00h
R/W
R/W
R/W
R/W
Address
R/W
R/W
2
1
0
R/W
R/W
R/W
FD0h, FD4h, FD8h, FDCh, FE0h
Bit
Description
[7:0]
PADDR
Port Address
The Port Address selects one of the subregisters accessible through the Port Control Register.
PADDR[7:0] Port Control Subregister Accessible using the Port A–E Control Registers
00h
No function. Provides some protection against accidental port reconfiguration.
01h
Data Direction.
02h
Alternate Function.
03h
Output Control (Open-Drain).
04h
High Drive Enable.
05h
Stop Mode Recovery Source Enable.
06h
Pull-up Enable.
07h
Alternate Function Set 1.
08h
Alternate Function Set 2.
09h–FFh
No function.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
60
7.11.2. Port A–E Control Registers
The Port A–E Control registers set the GPIO port operation. The value in the corresponding Port A–E Address register determines which subregister is read from or written to by a
Port A–E Control Register transaction, see Table 22.
Table 22. Port A–E Control Registers (PxCTL)
Bits
7
6
5
4
Field
PCTL
Reset
00h
R/W
R/W
R/W
R/W
Address
R/W
3
2
1
0
R/W
R/W
R/W
R/W
FD1h, FD5h, FD9h, FDDh, FE1h
Bit
Description
[7:0]
PCTL
Port Control
The Port Control Register provides access to all subregisters that configure the GPIO Port
operation.
7.11.3. Port A–E Data Direction Subregisters
The Port A–E Data Direction subregister is accessed through the Port A–E Control Register by writing 01h to the Port A–E Address register, as indicated in Table 23.
Table 23. Port A–E Data Direction Subregisters (PxDD)
Bits
7
6
5
4
3
2
1
0
Field
DD7
DD6
DD5
DD4
DD3
DD2
DD1
DD0
Reset
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
If 01h in Port A–E Address Register, accessible through the Port A–E Control Register.
Bit
Description
[7:0]
DD
Data Direction
These bits control the direction of the associated port pin. Port Alternate Function operation
overrides the Data Direction register setting.
0 = Output. Data in the Port A–E Output Data Register is driven onto the port pin.
1 = Input. The port pin is sampled and the value written into the Port A–E Input Data Register.
The output driver is tristated.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
61
7.11.4. Port A–E Alternate Function Subregisters
The Port A–E Alternate Function Subregister, shown in Table 24, is accessed through the
Port A–E Control Register by writing 02h to the Port A–E Address Register. The Port A–
E Alternate Function subregisters enable the alternate function selection on the pins; if disabled, the pins function as GPIO. If enabled, select one of the four alternate functions
using Alternate Function Set Subregisters 1 and 2 as described in the Port A–E Alternate
Function Set 1 Subregisters section on page 64 and the Port A–E Alternate Function Set 2
Subregisters section on page 64. To determine the alternate function associated with each
port pin, see the GPIO Alternate Functions section on page 47.
Caution: Do not enable alternate functions for GPIO port pins for which there is no associated
alternate function. Failure to follow this guideline results in unpredictable operation.
Table 24. Port A–E Alternate Function Subregisters (PxAF)
Bits
7
6
5
4
3
2
1
0
Field
AF7
AF6
AF5
AF4
AF3
AF2
AF1
AF0
Reset
00h (Ports A–C); 01h (Port D); 00h (Port E);
R/W
R/W
Address
If 02h in Port A–D Address Register, accessible through the Port A–E Control Register.
Bit
Description
[7:0]
AF
Port Alternate Function enabled
0 = The port pin is in NORMAL Mode and the DDx bit in the Port A–E Data Direction
subregister determines the direction of the pin.
1 = The alternate function selected through Alternate Function set subregisters are enabled.
Port-pin operation is controlled by the alternate function.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
62
7.11.5. Port A–E Output Control Subregisters
The Port A–E Output Control Subregister, shown in Table 25, is accessed through the Port
A–E Control Register by writing 03h to the Port A–E Address Register. Setting the bits in
the Port A–E Output Control subregisters to 1 configures the specified port pins for opendrain operation. These subregisters affect the pins directly and, as a result, alternate functions are also affected.
Table 25. Port A–E Output Control Subregisters (PxOC)
Bits
7
6
5
4
3
2
1
0
Field
POC7
POC6
POC5
POC4
POC3
POC2
POC1
POC0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Bit
[7:0]
POC
If 03h in Port A–E Address Register, accessible through the Port A–E Control Register
Description
Port Output Control
These bits function independently of the alternate function bit and always disable the drains if
set to 1.
0 = The drains are enabled for any output mode (unless overridden by the alternate function).
1 = The drain of the associated pin is disabled (open-drain mode).
7.11.6. Port A–E High Drive Enable Subregisters
The Port A–E High Drive Enable Subregister, shown in Table 26, is accessed through the
Port A–E Control Register by writing 04h to the Port A–E Address Register. Setting the
bits in the Port A–E High Drive Enable subregisters to 1 configures the specified port pins
for high-current output drive operation. The Port A–E High Drive Enable Subregister
affects the pins directly and, as a result, alternate functions are also affected.
Table 26. Port A–E High Drive Enable Subregisters (PxHDE)
Bits
7
6
5
4
3
2
1
0
Field
PHDE7
PHDE6
PHDE5
PHDE4
PHDE3
PHDE2
PHDE1
PHDE0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Bit
[7:0]
PHDE
If 04h in Port A–E Address Register, accessible through the Port A–E Control Register
Description
Port High Drive Enabled
0 = The Port pin is configured for standard output current drive.
1 = The Port pin is configured for high output current drive.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
63
7.11.7. Port A–E Stop Mode Recovery Source Enable
Subregisters
The Port A–E Stop Mode Recovery Source Enable Subregister, shown in Table 27, is
accessed through the Port A–E Control Register by writing 05h to the Port A–E Address
Register. Setting the bits in the Port A–E Stop Mode Recovery Source Enable subregisters
to 1 configures the specified port pins as Stop Mode Recovery sources. During STOP
Mode, any logic transition on a port pin enabled as a Stop Mode Recovery source initiates
Stop Mode Recovery.
Table 27. Port A–E Stop Mode Recovery Source Enable Subregisters (PxSMRE)
Bits
7
6
5
4
3
2
1
0
Field
PSMRE7
PSMRE6
PSMRE5
PSMRE4
PSMRE3
PSMRE2
PSMRE1
PSMRE0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
If 05h in Port A–E Address Register, accessible through the Port A–E Control Register.
Bit
[7:0]
PSMRE
Description
Port Stop Mode Recovery Source Enabled
0 = The Port pin is not configured as a Stop Mode Recovery source. Transitions on this pin
during STOP Mode do not initiate Stop Mode Recovery.
1 = The Port pin is configured as a Stop Mode Recovery source. Any logic transition on this pin
during STOP Mode initiates Stop Mode Recovery.
7.11.8. Port A–E Pull-up Enable Subregisters
The Port A–E Pull-up Enable Subregister, shown in Table 28, is accessed through the Port
A–E Control Register by writing 06h to the Port A–E Address Register. Setting the bits in
the Port A–E Pull-up Enable subregisters enables a weak internal resistive pull-up on the
specified port pins.
Table 28. Port A–E Pull-Up Enable Subregisters (PxPUE)
Bits
7
6
5
4
3
2
1
0
Field
PPUE7
PPUE6
PPUE5
PPUE4
PPUE3
PPUE2
PPUE1
PPUE0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
If 06h in Port A–E Address Register, accessible through the Port A–E Control Register.
Bit
[7:0]
PPUE
Description
Port Pull-up Enabled
0 = The weak pull-up on the Port pin is disabled.
1 = The weak pull-up on the Port pin is enabled.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
64
7.11.9. Port A–E Alternate Function Set 1 Subregisters
The Port A–E Alternate Function Set1 Subregister, shown in Table 29, is accessed through
the Port A–E Control Register by writing 07h to the Port A–E Address Register. The
Alternate Function Set 1 subregisters select the alternate function available at a port pin.
Alternate Functions selected by setting or clearing bits of this register are defined in the
GPIO Alternate Functions section on page 47.
Alternate function selection on the port pins must also be enabled as described in the Port
A–E Alternate Function Subregisters section on page 61.
Note:
Table 29. Port A–E Alternate Function Set 1 Subregisters (PxAFS1)
Bits
7
6
5
4
3
2
1
0
Field
PAFS17
PAFS16
PAFS15
PAFS14
PAFS13
PAFS12
PAFS11
PAFS10
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
If 07h in Port A–E Address Register, accessible through the Port A–E Control Register
Bit
Description
[7:0]
PAFS1
Port Alternate Function Set 1
0 = Port Alternate Function selected, as defined in the GPIO Alternate Functions section on
page 47.
1 = Port Alternate Function selected, as defined in the GPIO Alternate Functions section on
page 47.
7.11.10. Port A–E Alternate Function Set 2 Subregisters
The Port A–E Alternate Function Set 2 Subregister, shown in Table 30, is accessed
through the Port A–E Control Register by writing 08h to the Port A–E Address Register.
The Alternate Function Set 2 subregisters select the alternate function available at a port
pin. Alternate Functions selected by setting or clearing bits of this register are defined in
the GPIO Alternate Functions section on page 47.
Note:
PS025016-1013
Alternate function selection on port pins must also be enabled as described in the Port A–
E Alternate Function Subregisters section on page 61.
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
65
Table 30. Port A–E Alternate Function Set 2 Subregisters (PxAFS2)
Bits
7
6
5
4
3
2
1
0
Field
PAFS27
PAFS26
PAFS25
PAFS24
PAFS23
PAFS22
PAFS21
PAFS20
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
If 08h in Port A–E Address Register, accessible through the Port A–E Control Register
Bit
Description
[7:0]
PAFS2
Port Alternate Function Set 2
0 = Port Alternate Function selected as defined in the GPIO Alternate Functions section on
page 47.
1 = Port Alternate Function selected as defined the GPIO Alternate Functions section on page
47.
7.11.11. Port A–E Input Data Registers
Reading from the Port A–E Input Data registers, shown in Table 31, returns the sampled
values from the corresponding port pins. The Port A–E Input Data registers are read-only.
The value returned for any unused ports is 0. Unused ports include those missing on the 8pin and 28-pin packages, as well as those missing on the ADC-enabled 28-pin packages.
Table 31. Port A–E Input Data Registers (PxIN)
Bits
7
6
5
4
3
2
1
0
Field
PIN7
PIN6
PIN5
PIN4
PIN3
PIN2
PIN1
PIN0
Reset
X
X
X
X
X
X
X
X
R/W
R
R
R
R
R
R
R
R
Address
FD2h, FD6h, FDAh, FDEh, FE2h
Bit
Description
[7:0]
PIN
Port Input Data
Sampled data from the corresponding port pin input.
0 = Input data is logical 0 (Low).
1 = Input data is logical 1 (High).
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
66
7.11.12. Port A–E Output Data Register
The Port A–E Output Data Register, shown in Table 32, controls the output data to the
pins.
Table 32. Port A–E Output Data Register (PxOUT)
Bits
7
6
5
4
3
2
1
0
Field
POUT7
POUT6
POUT5
POUT4
POUT3
POUT2
POUT1
POUT0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FD3h, FD7h, FDBh, FDFh, FE3h
Bit
Description
[7:0]
POUT
Port Output Data
These bits contain the data to be driven to the port pins. The values are only driven if the
corresponding pin is configured as an output and the pin is not configured for Alternate
Function operation.
0 = Drive a logical 0 (Low).
1 = Drive a logical 1 (High). High value is not driven if the drain has been disabled by setting
the corresponding Port Output Control Register bit to 1.
7.11.13. LED Drive Enable Register
The LED Drive Enable Register, shown in Table 33, activates the controlled current drive.
The Port C pin must first be enabled by setting the Alternate Function Register to select
the LED function.
Table 33. LED Drive Enable (LEDEN)
Bits
7
6
5
Field
3
2
1
0
LEDEN[7:0]
Reset
R/W
4
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F82h
Bit
Description
[7:0]
LEDEN
LED Drive Enable
These bits determine which Port C pins are connected to an internal current sink.
0 = Tristate the Port C pin.
1 = Connect controlled current synch to Port C pin.
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
67
7.11.14. LED Drive Level Registers
Two LED Drive Level registers consist of the LED Drive Level High Bit Register
(LEDLVLH[7:0]) and the LED Drive Level Low Bit Register (LEDLVLL[7:0]), as shown
in Tables 34 and 35. Two control bits, LEDLVLH[x] and LEDLVLL[x], are used to select
one of four programmable current drive levels for each associated Port C[x] pin. Each Port
C pin is individually programmable.
Table 34. LED Drive Level High Bit Register (LEDLVLH)
Bits
7
6
5
4
Field
2
1
0
LEDLVLH
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F83h
Table 35. LED Drive Level Low Bit Register (LEDLVLL)
Bits
7
6
5
4
Field
2
1
0
LEDLVLL
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F84h
Bit
Description
[7:0]
LEDLVLH,
LEDLVLL
LED Drive Level High Bit
LED Drive Level Low Bit
These bits are used to set the LED drive current. {LEDLVLH[x], LEDLVLL[x]}, in which
x=Port C[0] to Port C[7]. Select one of the following four programmable current drive levels
for each Port C pin.
00 = 3 mA
01 = 7 mA
10 = 13 mA
11 = 20 mA
PS025016-1013
PRELIMINARY
General-Purpose Input/Output
Z8 Encore! XP® F1680 Series
Product Specification
68
Chapter 8. Interrupt Controller
The interrupt controller on the Z8 Encore! XP F1680 Series products prioritizes the
interrupt requests from the on-chip peripherals and the GPIO port pins. The interrupt
controller includes the following features:
•
Thirty-one interrupt sources using twenty-four unique interrupt vectors
– 16 GPIO port pin interrupt sources (seven interrupt vectors are shared; see Table
36)
– 15 on-chip peripheral interrupt sources (three interrupt vectors are shared; see
Table 36)
•
Flexible GPIO interrupts
– Twelve selectable rising and falling edge GPIO interrupts
– Four dual-edge interrupts
•
•
Three levels of individually programmable interrupt priority
WDT can be configured to generate an interrupt
Interrupt requests (IRQs) allow peripheral devices to suspend CPU operation in an orderly
manner and force the CPU to start an interrupt service routine (ISR). Usually this interrupt
service routine is involved with the exchange of data, status information, or control
information between the CPU and the interrupting peripheral. When the service routine is
completed, the CPU returns to the operation from which it was interrupted.
The eZ8 CPU supports both vectored and polled interrupt handling. For polled interrupts,
the interrupt controller has no effect on operation. For more information about interrupt
servicing by the eZ8 CPU, refer to the eZ8 CPU Core User Manual (UM0128), available
on www.zilog.com.
8.1.
Interrupt Vector Listing
Table 36 lists all of the interrupts available in order of priority. The interrupt vector is
stored with the most-significant byte (MSB) at the even Program Memory address and the
least-significant byte (LSB) at the following odd Program Memory address.
Note:
PS025016-1013
Some port interrupts are not available on the 20-pin and 28-pin packages. The ADC interrupt is unavailable on devices not containing an ADC.
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
69
Table 36. Trap and Interrupt Vectors in Order of Priority
Program Memory
Priority* Vector Address
Interrupt or Trap Source
Highest
0002h
Reset (not an interrupt)
0004h
Watchdog Timer (see the Watchdog Timer chapter on page 140)
003Ah
Primary Oscillator Fail Trap (not an interrupt)
003Ch
Watchdog Timer Oscillator Fail Trap (not an interrupt)
0006h
Illegal Instruction Trap (not an interrupt)
0008h
Timer 2
000Ah
Timer 1
000Ch
Timer 0
000Eh
UART 0 receiver
0010h
UART 0 transmitter
0012h
I 2C
0014h
SPI
0016h
ADC
0018h
Port A7, selectable rising or falling input edge or LVD (see the Reset,
Stop Mode Recovery and Low-Voltage Detection chapter on page 31)
001Ah
Port A6, selectable rising or falling input edge or Comparator 0 Output
001Ch
Port A5, selectable rising or falling input edge or Comparator 1 Output
001Eh
Port A4 or Port D4, selectable rising or falling input edge
0020h
Port A3 or Port D3, selectable rising or falling input edge
0022h
Port A2 or Port D2, selectable rising or falling input edge
0024h
Port A1 or Port D1, selectable rising or falling input edge
0026h
Port A0, selectable rising or falling input edge
0028h
Reserved
002Ah
Multi-channel Timer
002Ch
UART 1 receiver
002Eh
UART 1 transmitter
0030h
Port C3, both input edges
0032h
Port C2, both input edges
0034h
Port C1, both input edges
0036h
Port C0, both input edges
0038h
Reserved
Lowest
Note: *The order of priority is only meaningful when considering identical interrupt levels. This priority varies depending on different interrupt level settings. See the Interrupt Vectors and Priority section on page 71 for details.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
70
8.2.
Architecture
Figure 10 displays the interrupt controller block diagram.
High
Priority
Internal Interrupts
Interrupt Request Latches and Control
Port Interrupts
Vector
Medium
Priority
Priority
Mux
IRQ Request
Low
Priority
Figure 10. Interrupt Controller Block Diagram
8.3.
Operation
This section describes the operational aspects of the following functions.
Master Interrupt Enable: see page 70
Interrupt Vectors and Priority: see page 71
Interrupt Assertion: see page 71
Software Interrupt Assertion: see page 72
8.3.1. Master Interrupt Enable
The master interrupt enable bit (IRQE) in the Interrupt Control Register globally enables
and disables interrupts. Interrupts are globally enabled by any of the following actions:
•
•
PS025016-1013
Execution of an Enable Interrupt (EI) instruction
Execution of an Interrupt Return (IRET) instruction
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
71
•
Writing 1 to the IRQE bit in the interrupt control register
Interrupts are globally disabled by any of the following actions:
•
•
•
•
•
•
•
•
Execution of a Disable Interrupt (DI) instruction
eZ8 CPU acknowledgement of an interrupt service request from the interrupt controller
Writing 0 to the IRQE bit in the interrupt control register
Reset
Execution of a Trap instruction
Illegal Instruction Trap
Primary Oscillator Fail Trap
Watchdog Oscillator Fail Trap
8.3.2. Interrupt Vectors and Priority
The interrupt controller supports three levels of interrupt priority. Level 3 is the highest
priority, Level 2 is the second highest priority and Level 1 is the lowest priority. If all the
interrupts are enabled with identical interrupt priority (for example, all as Level 2
interrupts), the interrupt priority is assigned from highest to lowest as specified in Table 36
on page 69. Level 3 interrupts are always assigned higher priority than Level 2 interrupts
which, in turn, always are assigned higher priority than Level 1 interrupts. Within each
interrupt priority level (Level 1, Level 2, or Level 3), priority is assigned as specified in
Table 36. Reset, Watchdog Timer interrupt (if enabled), Primary Oscillator Fail Trap,
Watchdog Timer Oscillator Fail Trap and Illegal Instruction Trap always have highest
(Level 3) priority.
8.3.3. Interrupt Assertion
Interrupt sources assert their interrupt requests for only a single-system clock period (single-pulse). When the interrupt request is acknowledged by the eZ8 CPU, the corresponding bit in the Interrupt Request Register is cleared until the next interrupt occurs. Writing a
0 to the corresponding bit in the Interrupt Request Register likewise clears the interrupt
request.
Caution: Zilog recommends not using a coding style that clears bits in the Interrupt Request registers. All incoming interrupts received between execution of the first LDX command
and the final LDX command are lost. See Example 1, which follows.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
72
Example 1. A poor coding style that can result in lost interrupt requests:
LDX r0, IRQ0
AND r0, MASK
LDX IRQ0, r0
To avoid missing interrupts, use the coding style in Example 2 to clear bits in the Interrupt
Request 0 Register:
Example 2. A good coding style that avoids lost interrupt requests:
ANDX IRQ0, MASK
8.3.4. Software Interrupt Assertion
Program code can generate interrupts directly. Writing a 1 to the correct bit in the Interrupt
Request Register triggers an interrupt (assuming that the interrupt is enabled). When the
interrupt request is acknowledged by the eZ8 CPU, the bit in the Interrupt Request
Register is automatically cleared to 0.
Caution: Zilog recommends not using a coding style to generate software interrupts by setting bits
in the Interrupt Request registers. All incoming interrupts received between execution of
the first LDX command and the final LDX command are lost. See Example 3, which follows.
Example 3. A poor coding style that can result in lost interrupt requests:
LDX r0, IRQ0
OR r0, MASK
LDX IRQ0, r0
To avoid missing interrupts, use the coding style in Example 4 to set bits in the Interrupt
Request registers:
Example 4. A good coding style that avoids lost interrupt requests:
ORX IRQ0, MASK
8.4.
Interrupt Control Register Definitions
For all interrupts other than the Watchdog Timer interrupt, the Primary Oscillator Fail
Trap and the Watchdog Oscillator Fail Trap, the Interrupt Control registers enable
individual interrupts, set interrupt priorities and indicate interrupt requests.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
73
8.4.1. Interrupt Request 0 Register
The Interrupt Request 0 (IRQ0) Register, shown in Table 37, stores the interrupt requests
for both vectored and polled interrupts. When a request is presented to the interrupt
controller, the corresponding bit in the IRQ0 register becomes 1. If interrupts are globally
enabled (vectored interrupts), the interrupt controller passes an interrupt request to the eZ8
CPU. If interrupts are globally disabled (polled interrupts), the eZ8 CPU can read the
Interrupt Request 0 register to determine if any interrupt requests are pending.
Table 37. Interrupt Request 0 Register (IRQ0)
Bits
7
6
5
4
3
2
1
0
Field
T2I
T1I
T0I
U0RXI
U0TXI
I2CI
SPII
ADCI
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC0h
Bit
Description
[7]
T2I
Timer 2 Interrupt Request
0 = No interrupt request is pending for Timer 2.
1 = An interrupt request from Timer 2 is awaiting service.
[6]
T1I
Timer 1 Interrupt Request
0 = No interrupt request is pending for Timer 1.
1 = An interrupt request from Timer 1 is awaiting service.
[5]
T0I
Timer 0 Interrupt Request
0 = No interrupt request is pending for Timer 0.
1 = An interrupt request from Timer 0 is awaiting service.
[4]
U0RXI
UART 0 Receiver Interrupt Request
0 = No interrupt request is pending for the UART 0 receiver.
1 = An interrupt request from the UART 0 receiver is awaiting service.
[3]
U0TXI
UART 0 Transmitter Interrupt Request
0 = No interrupt request is pending for the UART 0 transmitter.
1 = An interrupt request from the UART 0 transmitter is awaiting service.
[2]
I2CI
I2C Interrupt Request
0 = No interrupt request is pending for the I2C.
1 = An interrupt request from I2C is awaiting service.
[1]
SPII
SPI Interrupt Request
0 = No interrupt request is pending for the SPI.
1 = An interrupt request from the SPI is awaiting service.
[0]
ADCI
ADC Interrupt Request
0 = No interrupt request is pending for the ADC.
1 = An interrupt request from the ADC is awaiting service.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
74
8.4.2. Interrupt Request 1 Register
The Interrupt Request 1 (IRQ1) Register, shown in Table 38, stores interrupt requests for
both vectored and polled interrupts. When a request is presented to the interrupt controller,
the corresponding bit in the IRQ1 register becomes a 1. If interrupts are globally enabled
(vectored interrupts), the interrupt controller passes an interrupt request to the eZ8 CPU. If
interrupts are globally disabled (polled interrupts), the eZ8 CPU can read the Interrupt
Request 1 register to determine if any interrupt requests are pending.
Table 38. Interrupt Request 1 Register (IRQ1)
Bits
7
6
5
4
3
2
1
0
Field
PA7VI
PA6CI
PA5CI
PAD4I
PAD3I
PAD2I
PAD1I
PA0I
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC3h
Bit
Description
[7]
PA7VI
Port A7 or LVD Interrupt Request
0 = No interrupt request is pending for GPIO Port A7 or LVD.
1 = An interrupt request from GPIO Port A7 or LVD.
[6]
PA6CI
Port A6 or Comparator 0 Interrupt Request
0 = No interrupt request is pending for GPIO Port A6 or Comparator 0.
1 = An interrupt request from GPIO Port A6 or Comparator 0.
[5]
PA5CI
Port A5 or Comparator 1 Interrupt Request
0 = No interrupt request is pending for GPIO Port A5 or Comparator 1.
1 = An interrupt request from GPIO Port A5 or Comparator 1.
[4:1]
PADxI
Port A or Port D Pin x Interrupt Request
0 = No interrupt request is pending for GPIO Port A or Port D pin x.
1 = An interrupt request from GPIO Port A or Port D pin x is awaiting service; x indicates the
specific GPIO port pin number (1–4).
[0]
PA0I
Port A Pin 0 Interrupt Request
0 = No interrupt request is pending for GPIO Port A0.
1 = An interrupt request from GPIO Port A0 is awaiting service.
For interrupt source select description, see the Shared Interrupt Select Register section on
page 82.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
75
8.4.3. Interrupt Request 2 Register
The Interrupt Request 2 (IRQ2) Register, shown in Table 39, stores interrupt requests for
both vectored and polled interrupts. When a request is presented to the interrupt controller,
the corresponding bit in the IRQ2 Register becomes 1. If interrupts are globally enabled
(vectored interrupts), the interrupt controller passes an interrupt request to the eZ8 CPU. If
interrupts are globally disabled (polled interrupts), the eZ8 CPU can read the Interrupt
Request 2 register to determine if any interrupt requests are pending.
Table 39. Interrupt Request 2 Register (IRQ2)
Bits
7
6
5
4
3
2
1
0
Field
Reserved
MCTI
U1RXI
U1TXI
PC3I
PC2I
PC1I
PC0I
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC6h
Bit
Description
[7]
Reserved; must be 0.
[6]
MCTI
Multi-channel timer Interrupt Request
0 = No interrupt request is pending for multi-channel timer.
1 = An interrupt request from multi-channel timer is awaiting service.
[5]
U1RXI
UART 1 Receiver Interrupt Request
0 = No interrupt request is pending for the UART 1 receiver.
1 = An interrupt request from the UART 1 receiver is awaiting service.
[4]
U1TXI
UART 1 Transmitter Interrupt Request
0 = No interrupt request is pending for the UART 1 transmitter.
1 = An interrupt request from the UART 1 transmitter is awaiting service.
[3:0]
PCxI
Port C Pin x Interrupt Request
0 = No interrupt request is pending for GPIO Port C pin x.
1 = An interrupt request from GPIO Port C pin x is awaiting service; x indicates the specific
GPIO Port C pin number (0–3).
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
76
8.4.4. IRQ0 Enable High and Low Bit Registers
Table 40 describes the priority control for IRQ0. The IRQ0 Enable High and Low Bit
registers, shown in Tables 41 and 42, form a priority-encoded enabling for interrupts in the
Interrupt Request 0 Register. Priority is generated by setting bits in each register.
Table 40. IRQ0 Enable and Priority Encoding
IRQ0ENH[x]
IRQ0ENL[x]
Priority
Description
0
0
Disabled
Disabled
0
1
Level 1
Low
1
0
Level 2
Nominal
1
1
Level 3
High
Note: x indicates the register bits from 0–7.
Table 41. IRQ0 Enable High Bit Register (IRQ0ENH)
Bits
7
6
5
4
3
2
1
0
Field
T2ENH
T1ENH
T0ENH
U0RENH
U0TENH
I2CENH
SPIENH
ADCENH
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC1h
Bit
Description
[7]
T2ENH
Timer 2 Interrupt Request Enable High Bit
[6]
T1ENH
Timer 1 Interrupt Request Enable High Bit
[5]
T0ENH
Timer 0 Interrupt Request Enable High Bit
[4]
UART 0 Receive Interrupt Request Enable High Bit
U0RENH
[3]
UART 0 Transmit Interrupt Request Enable High Bit
U0TENH
[2]
I2CENH
I2C Interrupt Request Enable High Bit
[1]
SPIENH
SPI Interrupt Request Enable High Bit
[0]
ADC Interrupt Request Enable High Bit
ADCENH
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
77
Table 42. IRQ0 Enable Low Bit Register (IRQ0ENL)
Bits
7
6
5
4
3
2
1
0
Field
T2ENL
T1ENL
T0ENL
U0RENL
U0TENL
I2CENL
SPIENL
ADCENL
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC2h
Bit
Description
[7]
T2ENL
Timer 2 Interrupt Request Enable Low Bit
[6]
T1ENL
Timer 1 Interrupt Request Enable Low Bit
[5]
T0ENL
Timer 0 Interrupt Request Enable Low Bit
[4]
UART 0 Receive Interrupt Request Enable Low Bit
U0RENL
[3]
UART 0 Transmit Interrupt Request Enable Low Bit
U0TENL
[2]
I2CENL
I2C Interrupt Request Enable Low Bit
[1]
SPIENL
SPI Interrupt Request Enable Low Bit
[0]
ADC Interrupt Request Enable Low Bit
ADCENL
8.4.5. IRQ1 Enable High and Low Bit Registers
Table 43 lists the priority control for IRQ1. The IRQ1 Enable High and Low Bit registers,
shown in Tables 44 and 45) form a priority-encoded enabling for interrupts in the Interrupt
Request 1 Register. Priority is generated by setting bits in each register.
Table 43. IRQ1 Enable and Priority Encoding
IRQ1ENH[x]
IRQ1ENL[x]
Priority
Description
0
0
Disabled
Disabled
0
1
Level 1
Low
1
0
Level 2
Nominal
1
1
Level 3
High
Note: An x indicates the register bits from 0–7.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
78
Table 44. IRQ1 Enable High Bit Register (IRQ1ENH)
Bits
Field
7
Reset
R/W
6
5
4
3
2
1
0
PA7VENH PA6C0ENH PA5C1ENH PAD4ENH PAD3ENH PAD2ENH PAD1ENH PA0ENH
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC4h
Bit
Description
[7]
PA7VENH
Port A Bit[7] or LVD Interrupt Request Enable High Bit.
[6]
Port A Bit[6] or Comparator 0 Interrupt Request Enable High Bit.
PA6C0ENH
[5]
Port A Bit[5] or Comparator 1 Interrupt Request Enable High Bit.
PA5C1ENH
[4:1]
PADxENH
Port A or Port D Bit[x] (x=1, 2, 3, 4) Interrupt Request Enable High Bit.
[0]
PA0ENH
Port A Bit[0] Interrupt Request Enable High Bit. See the Shared Interrupt Select Register
(IRQSS) on page 82 to determine a selection of either Port A or Port D as the interrupt
source.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
79
Table 45. IRQ1 Enable Low Bit Register (IRQ1ENL)
Bits
Field
7
5
4
3
2
1
0
PA7VENL PA6C0ENL PA5C1ENL PAD4ENL PAD3ENL PAD2ENL PAD1ENL
Reset
R/W
6
PA0ENL
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC5h
Bit
Description
[7]
PA7VENL
Port A Bit[7] or LVD Interrupt Request Enable Low Bit.
[6]
Port A Bit[6] or Comparator 0 Interrupt Request Enable Low Bit.
PA6C0ENL
[5]
Port A Bit[5] or Comparator 1 Interrupt Request Enable Low Bit.
PA5C1ENL
[4:1]
PADxENL
Port A or Port D Bit[x] (x=1, 2, 3, 4) Interrupt Request Enable Low Bit.
[0]
PA0ENL
Port A Bit[0] Interrupt Request Enable Low Bit.
8.4.6. IRQ2 Enable High and Low Bit Registers
Table 46 describes the priority control for IRQ2. The IRQ2 Enable High and Low Bit
registers, shown in Tables 47 and 48 form a priority-encoded enabling for interrupts in the
Interrupt Request 2 Register. Priority is generated by setting bits in each register.
Table 46. IRQ2 Enable and Priority Encoding
IRQ2ENH[x] IRQ2ENL[x]
Priority
Description
0
0
Disabled
Disabled
0
1
Level 1
Low
1
0
Level 2
Nominal
1
1
Level 3
High
Note: An x indicates the register bits from 0–7.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
80
Table 47. IRQ2 Enable High Bit Register (IRQ2ENH)
Bits
Field
7
Reserved MCTENH
5
4
3
2
1
0
U1RENH
U1TENH
C3ENH
C2ENH
C1ENH
C0ENH
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Reset
R/W
6
Address
FC7h
Bit
Description
[7]
Reserved; must be 0.
[6]
Multi-Channel Timer Interrupt Request Enable High Bit
MCTENH
[5]
UART1 Receive Interrupt Request Enable High Bit
U1RENH
[4]
UART1 Transmit Interrupt Request Enable High Bit
U1TENH
[3]
C3ENH
Port C3 Interrupt Request Enable High Bit
[2]
C2ENH
Port C2 Interrupt Request Enable High Bit
[1]
C1ENH
Port C1 Interrupt Request Enable High Bit
[0]
C0ENH
Port C0 Interrupt Request Enable High Bit
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
81
Table 48. IRQ2 Enable Low Bit Register (IRQ2ENL)
Bits
7
6
5
4
3
2
1
0
Field
Reserved
MCTENL
U1RENL
U1TENL
C3ENL
C2ENL
C1ENL
C0ENL
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FC8h
Bit
Description
[7]
Reserved; must be 0.
[6]
Multi-Channel Timer Interrupt Request Enable Low Bit (MCTENL)
MCTENL
[5]
UART1 Receive Interrupt Request Enable Low Bit (U1RENL)
U1RENL
[4]
UART1 Transmit Interrupt Request Enable Low Bit (U1TENL)
U1TENL
[3]
C3ENL
Port C3 Interrupt Request Enable Low Bit (C3ENL)
[2]
C2ENL
Port C2 Interrupt Request Enable Low Bit (C2ENL)
[1]
C1ENL
Port C1 Interrupt Request Enable Low Bit (C1ENL)
[0]
C0ENL
Port C0 Interrupt Request Enable Low Bit (C0ENL)
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
82
8.4.7. Interrupt Edge Select Register
The Interrupt Edge Select (IRQES) Register, shown in Table 49, determines whether an
interrupt is generated for the rising edge or falling edge on the selected GPIO Port A or
Port D input pin.
Table 49. Interrupt Edge Select Register (IRQES)
Bits
7
6
5
4
3
2
1
0
Field
IES7
IES6
IES5
IES4
IES3
IES2
IES1
IES0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FCDh
Bit
Description
[7:0]
IESx
Interrupt Edge Select x
0 = An interrupt request is generated on the falling edge of the PAx input or PDx input.
1 = An interrupt request is generated on the rising edge of the PAx input or PDx input; x
indicates the specific GPIO port pin number (0–7).
8.4.8. Shared Interrupt Select Register
The Shared Interrupt Select (IRQSS) Register, shown in Table 50, determines the source
of the PADxS interrupts. The Shared Interrupt Select Register selects between Port A and
alternate sources for the individual interrupts.
Table 50. Shared Interrupt Select Register (IRQSS)
Bits
7
6
5
4
3
2
1
0
Field
PA7VS
PA6CS
PA5CS
PAD4S
PAD3S
PAD2S
PAD1S
Reserved
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FCEh
Bit
Description
[7]
PA7VS
PA7/LVD Selection
0 = PA7 is used for the interrupt for PA7VS interrupt request.
1 = The LVD is used for the interrupt for PA7VS interrupt request.
[6]
PA6CS
PA6/Comparator 0 Selection
0 = PA6 is used for the interrupt for PA6CS interrupt request.
1 = The Comparator 0 is used for the interrupt for PA6CS interrupt request.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
83
Bit
Description
[5]
PA5CS
PA5/Comparator 1 Selection
0 = PA5 is used for the interrupt for PA5CS interrupt request.
1 = The Comparator 1 is used for the interrupt for PA5CS interrupt request.
[4:1]
PADxS
PAx/PDx Selection
0 = PAx is used for the interrupt for PAx/PDx interrupt request
1 = PDx is used for the interrupt for PAx/PDx interrupt request; an x indicates the specific
GPIO port pin number (1–4).
[0]
Reserved; must be 0.
8.4.9. Interrupt Control Register
The Interrupt Control (IRQCTL) Register, shown in Table 51, contains the master enable
bit for all interrupts.
Table 51. Interrupt Control Register (IRQCTL)
Bits
7
Field
IRQE
Reset
R/W
6
5
4
0
0
0
0
R/W
R
R
R
3
2
1
0
0
0
0
0
R
R
R
R
Reserved
Address
FCFh
Bit
Description
[7]
IRQE
Interrupt Request Enable
This bit is set to 1 by executing an Enable Interrupts (EI) or IRET (Interrupt Return) instruction,
or by a direct register write of a 1 to this bit. It is reset to 0 by executing a DI instruction, eZ8
CPU acknowledgement of an interrupt request, a Reset, or by a direct register write of a 0 to
this bit.
0 = Interrupts are disabled.
1 = Interrupts are enabled.
[6:0]
Reserved; must be 0.
PS025016-1013
PRELIMINARY
Interrupt Controller
Z8 Encore! XP® F1680 Series
Product Specification
84
Chapter 9. Timers
The Z8 Encore! XP F1680 Series products contain three 16-bit reloadable timers that can
be used for timing, event counting, or generation of pulse-width modulated signals. The
timers’ features include:
•
•
•
•
•
•
16-bit reload counter
•
•
•
•
Timer output pin
Programmable prescaler with prescale values ranging from 1 to 128
PWM output generation
Capture and compare capability
Two independent capture/compare channels which reference the common timer
External input pin for timer input, clock gating, or capture signal. External input pin
signal frequency is limited to a maximum of one-fourth the timer clock frequency
Timer interrupt
Noise Filter on Timer input signal
Operation in any mode with 32 kHz secondary oscillator
In addition to the timers described in this chapter, the Baud Rate Generator (BRG) of
unused UART peripheral can also be used to provide basic timing functionality. For more
information about using the Baud Rate Generator as additional timers, see the LIN-UART
chapter on page 144.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
85
9.1.
Architecture
Figure 11 displays the architecture of the timers.
Timer Block
Block
Control
16-bit
Reload Register
Peripheral
Clock
System
Clock
Timer
Input
Compare
Timer
Control
Data
Bus
Gate
Input
Capture
Input
Two 16-bit
PWM/Compare
Timer
Interrupt
TOUT
TOUT
Compare
16-bit Counter
with Prescaler
Interrupt,
PWM,
and
Timer Output
Control
Figure 11. Timer Block Diagram
9.2.
Operation
The timers are 16-bit up-counters. Minimum time-out delay is set by loading the value
0001h into the Timer Reload High and Low Byte registers and setting the prescale value
to 1. Maximum time-out delay is set by loading the value 0000h into the Timer Reload
High and Low Byte registers and setting the prescale value to 128. If the Timer reaches
FFFFh, the timer rolls over to 0000h and continues counting.
9.2.1. Timer Clock Source
The timer clock source can come from either the peripheral clock or the system clock.
Peripheral clock is based on a low frequency/low power 32 kHz secondary oscillator that
can be used with external watch crystal. Peripheral clock source is only available for
driving Timer and Noise Filter operation. It is not supported for other peripherals.
For timer operation in STOP Mode, peripheral clock must be selected as the clock source.
Peripheral clock can be selected as source for both ACTIVE and STOP Mode operation.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
86
System clock is only for operation in ACTIVE and HALT modes. System clock is
software selectable in Oscillator Control Module as external high-frequency crystal or
internal precision oscillator. The TCLKS field in the Timer Control 2 Register selects the
timer clock source.
Caution: When the timer is operating on a peripheral clock, the timer clock is asynchronous to
the CPU clock. To ensure error-free operation, disable the timer before modifying its operation (also include changing the timer clock source). Therefore, any write to the timer
control registers cannot be performed when the timer is enabled and a peripheral clock
is used.
When the timer uses a peripheral clock and the timer is enabled, any read from TxH or
TxL is not recommended, because the results can be unpredictable. Disable the timer first,
then read it. If the timer works in the CAPTURE, CAPTURE/COMPARE, CAPTURE
RESTART or DEMODULATION modes, any read from TxPWM0h, TxPWM0L,
TxPWM1h, TxPWM1L or TxSTAT must be performed after a capture interrupt occurs;
otherwise, results can be unpredictable. The INPCAP bit of the Timer Control 0 Register
is the same as these PWM registers. When the timer uses the main clock, you can write/
read all timer registers at any time.
9.2.2. Low-Power Modes
Timers can operate in both HALT Mode and STOP Mode.
9.2.2.1. Operation in HALT Mode
When the eZ8 CPU enters HALT Mode, the timer will continue to operate if enabled. To
minimize current in HALT Mode, the timer can be disabled by clearing the TEN control
bit. The noise filter, if enabled, will also continue to operate in HALT Mode and rejects
any noise on the timer input pin.
9.2.2.2. Operation in STOP Mode
When the eZ8 CPU enters STOP Mode, the timer continues to operate if enabled and
peripheral clock is chosen as the clock source. In STOP Mode, the timer interrupt (if
enabled) automatically initiates a Stop Mode Recovery and generates an interrupt request.
In the Reset Status Register, the stop bit is set to 1. Also, timer interrupt request bit in
Interrupt Request 0 register is set. Following completion of the Stop Mode Recovery, if
interrupts are enabled, the CPU responds to the interrupt request by fetching the timer
interrupt vector. The noise filter, if enabled, will also continue to operate in STOP Mode
and rejects any noise on the timer input pin.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
87
If system clock is chosen as the clock source, the timer ceases to operate as a system clock
and is put into STOP Mode. In this case the registers are not reset and operation will
resume after Stop Mode Recovery occurs.
9.2.2.3. Power Reduction During Operation
Removal of the TEN bit will inhibit clocking of the entire timer block. The CPU can still
read/write registers when the enable bit(s) are taken out.
9.2.3. Timer Operating Modes
The timers can be configured to operate in the following modes, each of which is
described in this section where indicated in Table 52.
Table 52. Timer Operating Modes
Page
Number
Mode
TRIGGERED ONE-SHOT Mode
88
CONTINUOUS Mode
90
COUNTER Mode
91
COMPARATOR COUNTER Mode
92
PWM SINGLE OUTPUT Mode
93
PWM DUAL Output Mode
95
CAPTURE Mode
97
CAPTURE RESTART Mode
98
COMPARE Mode
100
GATED Mode
100
CAPTURE/COMPARE Mode
102
DEMODULATION Mode
103
9.2.3.1. ONE-SHOT Mode
In ONE-SHOT Mode, the timer counts up to the 16-bit reload value stored in the Timer
Reload High and Low Byte registers. The Timer counts timer clocks up to the 16-bit
reload value. Upon reaching the reload value, the timer generates an interrupt, and the
count value in the Timer High and Low Byte registers is reset to 0001h. Then, the timer is
automatically disabled and stops counting.
Additionally, if the Timer Output alternate function is enabled, the Timer Output pin
changes state for one clock cycle (from Low to High or from High to Low) upon timer
reload. If it is appropriate to have the Timer Output make a permanent state change on
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
88
One-Shot time-out. First set the TPOL bit in the Timer Control 1 Register to the start value
before beginning ONE-SHOT Mode. Then, after starting the timer, set TPOL to the opposite bit value.
Observe the following steps to configure a timer for ONE-SHOT Mode and to initiate the
count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for ONE-SHOT Mode
– Set the prescale value
– If using the Timer Output alternate function, set the initial output level (High or
Low)
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value.
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers.
7. If using the Timer Output function, configure the associated GPIO port pin for the
Timer Output alternate function.
8. Write to the Timer Control 1 Register to enable the timer and initiate counting.
In ONE-SHOT Mode, the timer clock always provides the timer input. The timer period is
calculated using the following equation:
Value - Start Value xPrescale
ONE-SHOT Mode Time-Out Period (s) = Reload
------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
9.2.3.2. TRIGGERED ONE-SHOT Mode
In TRIGGERED ONE-SHOT Mode, the timer operates in the following sequence:
1. The Timer idles until a trigger is received. The Timer trigger is taken from the GPIO
port pin timer input alternate function. The TPOL bit in the Timer Control 1 Register
selects whether the trigger occurs on the rising edge or the falling edge of the timer
input signal.
2. Following the trigger event, the Timer counts timer clocks up to the 16-bit reload
value stored in the Timer Reload High and Low Byte registers.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
89
3. Upon reaching the reload value, the timer outputs a pulse on the Timer Output pin,
generates an interrupt and resets the count value in the Timer High and Low Byte registers to 0001h. The period of the output pulse is a single timer clock. The TPOL bit
also sets the polarity of the output pulse.
4. The Timer now idles until the next trigger event.
In TRIGGERED ONE-SHOT Mode, the timer clock always provides the timer input. The
timer period is shown in the following equation:
Reload Value - Start Value Prescale
Triggered ONE-SHOT Mode Time-Out Period (s) = -----------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
Table 53 provides an example initialization sequence for configuring Timer 0 in TRIGGERED ONE-SHOT Mode and initiating operation.
Table 53. TRIGGERED ONE-SHOT Mode Initialization Example
Register
Value
Comment
T0CTL0
E0h
T0CTL1
03h
T0CTL2
01h
TMODE[3:0] = 1011B selects TRIGGERED ONE-SHOT Mode.
TICONFIG[1:0] = 11B enables interrupts on Timer reload only.
CSC = 0 selects the Timer Input (Trigger) from the GPIO pin.
PWMD[2:0] = 000B has no effect.
INPCAP = 0 has no effect.
TEN = 0 disables the timer.
TPOL = 0 enables triggering on rising edge of Timer. Input and sets Timer
Out signal to 0.
PRES[2:0] = 000B sets prescaler to divide by 1.
TCLKS = 1 sets 32 kHz peripheral clock as the Timer clock source.
T0h
00h
T0L
01h
T0RH
ABh
T0RL
CDh
PAADDR
02h
Selects Port A Alternate Function control register.
PACTL[1:0]
11b
PACTL[0] enables Timer 0 Input Alternate function.
PACTL[1] enables Timer 0 Output Alternate function.
IRQ0ENH[5]
0B
Disables the Timer 0 interrupt.
IRQ0ENL[5]
0B
PS025016-1013
Timer starting value = 0001h.
Timer reload value = ABCDh.
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
90
Table 53. TRIGGERED ONE-SHOT Mode Initialization Example (Continued)
Register
Value
Comment
T0CTL1
83h
TEN = 1 enables the timer. All other bits remain in their appropriate settings.
Note: After receiving the input trigger, Timer 0 will:
1. Count ABCDh timer clocks.
2. Upon Timer 0 reload, generate single clock cycle active High output pulse on Timer 0 Output pin.
3. Wait for next input trigger event.
9.2.3.3. CONTINUOUS Mode
In CONTINUOUS Mode, the timer counts up to the 16-bit reload value stored in the
Timer Reload High and Low Byte registers. The Timer counts timer clocks up to the 16bit reload value. Upon reaching the reload value, the timer generates an interrupt, the
count value in the Timer High and Low Byte registers is reset to 0001h and counting
resumes. Also, if the Timer Output alternate function is enabled, the Timer Output pin
changes state (from Low to High or High to Low) on timer reload.
Observe the following steps to configure a timer for CONTINUOUS Mode and initiate the
count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for CONTINUOUS Mode
– Set the prescale value
– If using the Timer Output Alternate Function, set the initial output level (High or
Low)
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt-configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value (usually
0001h). This value only affects the first pass in CONTINUOUS Mode. After the first
timer reload in CONTINUOUS Mode, counting always begins at the reset value of
0001h.
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. If appropriate, enable the timer interrupt and set the timer interrupt priority by writing
to the relevant interrupt registers.
7. If using the Timer Output function, configure the associated GPIO port pin for the
Timer Output alternate function.
8. Write to the Timer Control 1 Register to enable the timer and initiate counting.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
91
In CONTINUOUS Mode, the timer clock always provides the timer input. The timer
period is calculated using the following equation:
Reload Value Prescale
CONTINUOUS Mode Time-Out Period (s) = --------------------------------------------------------------------Timer Clock Frequency (Hz)
If an initial starting value other than 0001h is loaded into the Timer High and Low Byte
registers, the ONE-SHOT Mode equation must be used to determine the first time-out
period.
9.2.3.4. COUNTER Mode
In COUNTER Mode, the timer counts input transitions from a GPIO port pin. The timer
input is taken from the GPIO port pin Timer Input alternate function. The TPOL bit in the
Timer Control 1 Register selects whether the count occurs on the rising edge or the falling
edge of the Timer Input signal. In COUNTER Mode, the prescaler is disabled.
Caution: The input frequency of the Timer Input signal must not exceed one-fourth the timer
clock frequency.
Upon reaching the reload value stored in the Timer Reload High and Low Byte registers,
the timer generates an interrupt, the count value in the Timer High and Low Byte registers
is reset to 0001h and counting resumes. Also, if the Timer Output alternate function is
enabled, the Timer Output pin changes state (from Low to High or High to Low) at timer
reload.
Observe the following steps to configure a timer for COUNTER Mode and initiate the
count:
1. Write to the Timer Control 1 Register to:
– Disable the timer.
– Configure the timer for COUNTER Mode.
– Select either the rising edge or falling edge of the Timer Input signal for the count.
This also sets the initial logic level (High or Low) for the Timer Output Alternate
Function. However, the Timer Output function is not required to be enabled.
2. Write to the Timer Control 2 Register to choose the timer clock source.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
92
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value. This
value only affects the first pass in COUNTER Mode. After the first timer reload in
COUNTER Mode, counting always begins at the reset value of 0001h. Generally, in
COUNTER Mode the Timer High and Low Byte registers must be written with the
value 0001h.
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers.
7. Configure the associated GPIO port pin for the Timer Input alternate function.
8. When using the Timer Output function, configure the associated GPIO port pin for the
Timer Output alternate function.
9. Write to the Timer Control 1 Register to enable the timer.
In COUNTER Mode, the number of Timer Input transitions since the timer start is calculated using the following equation:
COUNTER Mode Timer Input Transitions = Current Count Value - Start Value
9.2.3.5. COMPARATOR COUNTER Mode
In COMPARATOR COUNTER Mode, the timer counts output transitions from an analog
comparator output. The assignment of a comparator to a timer is based on the TIMTRG
bits in the CMP0 and CMP1 registers. The TPOL bit in the Timer Control 1 Register
selects whether the count occurs on the rising edge or the falling edge of the comparator
output signal. In COMPARATOR COUNTER Mode, the prescaler is disabled.
Caution: The frequency of the comparator output signal must not exceed one-fourth the timer
clock frequency.
Upon reaching the reload value stored in the Timer Reload High and Low Byte registers,
the timer generates an interrupt, the count value in the Timer High and Low Byte registers
is reset to 0001h and counting resumes. Also, if the Timer Output alternate function is
enabled, the Timer Output pin changes state (from Low to High or High to Low) at timer
reload.
Observe the following steps to configure a timer for COMPARATOR COUNTER Mode
and initiate the count:
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
93
1. Write to the Timer Control 1 Register to:
– Disable the timer.
– Configure the timer for COMPARATOR COUNTER Mode.
– Select either the rising edge or falling edge of the comparator output signal for the
count. This also sets the initial logic level (High or Low) for the Timer Output
alternate function. The Timer Output function does not have to be enabled.
2. Write to the appropriate comparator control register (COMP0 or COMP1) to set the
TIMTRG bits that map the comparator to the timer.
3. Write to the Timer Control 2 Register to choose the timer clock source.
4. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
5. Write to the Timer High and Low Byte registers to set the starting count value. This
value only affects the first pass in COMPARATOR COUNTER Mode. After the first
timer reload in COMPARATOR COUNTER Mode, counting always begins at the
reset value of 0001h. Generally, in COMPARATOR COUNTER Mode the Timer
High and Low Byte registers must be written with the value 0001h.
6. Write to the Timer Reload High and Low Byte registers to set the reload value.
7. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers.
8. If using the Timer Output function, configure the associated GPIO port pin for the
Timer Output alternate function.
9. Write to the Timer Control 1 Register to enable the timer.
In COMPARATOR COUNTER Mode, the number of comparator output transitions since
the timer start is calculated using the following equation:
Comparator Output Transitions = Current Count Value - Start Value
9.2.3.6. PWM SINGLE OUTPUT Mode
In PWM SINGLE OUTPUT Mode, the timer outputs a Pulse Width Modulator output signal through a GPIO port pin. The Timer counts timer clocks up to the 16-bit reload value.
The timer first counts up to the 16-bit PWM match value stored in the Timer PWM0 High
and Low Byte registers. When the timer count value matches the PWM value, the Timer
Output toggles. The timer continues counting until it reaches the reload value stored in the
Timer Reload High and Low Byte registers. Upon reaching the reload value, the timer
generates an interrupt, the count value in the Timer High and Low Byte registers is reset to
0001h and counting resumes.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
94
If the TPOL bit in the Timer Control 1 Register is set to 1, the Timer Output signal begins
as High (1) and then transitions to Low (0) when the timer value matches the PWM value.
The Timer Output signal returns to High (1) after the timer reaches the reload value and is
reset to 0001h.
If the TPOL bit in the Timer Control 1 Register is set to 0, the Timer Output signal begins
as Low (0) and then transitions to High (1) when the timer value matches the PWM value.
The Timer Output signal returns to Low (0) after the timer reaches the reload value and is
reset to 0001h.
Observe the following steps to configure a timer for PWM SINGLE OUTPUT Mode and
initiate PWM operation:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for PWM mode
– Set the prescale value
– Set the initial logic level (High or Low) and PWM High/Low transition for the
Timer Output Alternate Function
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value (typically 0001h). This value only affects the first pass in PWM mode. After the first timer
reset in PWM mode, counting always begins at the reset value of 0001h.
5. Write to the Timer PWM0 High and Low Byte registers to set the PWM value.
6. Write to the Timer Reload High and Low Byte registers to set the reload value (PWM
period). The reload value must be greater than the PWM value.
7. If appropriate, enable the timer interrupt and set the timer interrupt priority by writing
to the relevant interrupt registers.
8. Configure the associated GPIO port pin for the Timer Output alternate function.
9. Write to the Timer Control 1 Register to enable the timer and initiate counting.
The PWM period is calculated using the following equation:
If an initial starting value other than 0001h is loaded into the Timer High and Low Byte
registers, the ONE-SHOT Mode equation must be used to determine the first PWM timeout period.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
95
Reload Value Prescale
PWM Period (s) = --------------------------------------------------------------------Timer Clock Frequency (Hz)
If TPOL is set to 0, the ratio of the PWM output High time to the total period is calculated
using the following equation:
Reload Value - PWM Value
PWM Output High Time Ratio (%) = -------------------------------------------------------------------- 100
Reload Value
If TPOL is set to 1, the ratio of the PWM output High time to the total period is calculated
using the following equation:
PWM Value
PWM Output High Time Ratio (%) = -------------------------------- 100
Reload Value
9.2.3.7. PWM DUAL Output Mode
In PWM DUAL OUTPUT Mode, the timer outputs a Pulse Width Modulator output signal
and also its complement through two GPIO port pins. The timer first counts up to the 16bit PWM match value stored in the Timer PWM0 High and Low Byte registers. When the
timer count value matches the PWM value, the Timer Outputs (TOUT and TOUT) toggle.
The timer continues counting until it reaches the reload value stored in the Timer Reload
High and Low Byte registers. Upon reaching the reload value, the timer generates an interrupt, the count value in the Timer High and Low Byte registers is reset to 0001h and
TOUT and TOUT toggles again and counting resumes.
If the TPOL bit in the Timer Control 1 Register is set to 1, the Timer Output signal begins
as High (1) and then transitions to Low (0) when the timer value matches the PWM value.
The Timer Output signal returns to High (1) after the timer reaches the reload value and is
reset to 0001h.
If the TPOL bit in the Timer Control 1 Register is set to 0, the Timer Output signal begins
as Low (0) and then transitions to High (1) when the timer value matches the PWM value.
The Timer Output signal returns to Low (0) after the timer reaches the reload value and is
reset to 0001h.
The timer also generates a second PWM output signal, Timer Output Complement
(TOUT). TOUT is the complement of the Timer Output PWM signal (TOUT). A
programmable deadband delay can be configured to set a time delay (0 to 128 timer clock
cycles) when one PWM output transitions from High to Low and the other PWM output
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
96
transitions from a Low to High. This configuration ensures a time gap between the
removal of one PWM output and the assertion of its complement.
Observe the following steps to configure a timer for PWM DUAL OUTPUT Mode and
initiate the PWM operation:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for PWM DUAL OUTPUT Mode. Setting the mode also
involves writing to TMODE[3] bit in the TxCTL0 Register
– Set the prescale value
– Set the initial logic level (High or Low) and PWM High/Low transition for the
Timer Output Alternate Function
2. Write to the Timer High and Low Byte registers to set the starting count value (typically 0001h). This value only affects the first pass in PWM mode. After the first timer
reset in PWM mode, counting always begins at the reset value of 0001h.
3. Write to the Timer PWM0 High and Low Byte registers to set the PWM value.
4. Write to the Timer Control 0 Register:
– To set the PWM deadband delay value
– To choose the timer clock source
5. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
6. Write to the Timer Reload High and Low Byte registers to set the reload value (PWM
period). The reload value must be greater than the PWM value.
7. If appropriate, enable the timer interrupt and set the timer interrupt priority by writing
to the relevant interrupt registers.
8. Configure the associated GPIO port pin for the Timer Output and Timer Output Complement alternate functions.
9. Write to the Timer Control 1 Register to enable the timer and initiate counting.
The PWM period is calculated using the following equation:
If an initial starting value other than 0001h is loaded into the Timer High and Low Byte
registers, the ONE-SHOT Mode equation must be used to determine the first PWM timeout period.
If TPOL is set to 0, the ratio of the PWM output High time to the total period is calculated
using the following equation:
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
97
Reload Value Prescale
PWM Period (s) = ----------------------------------------------------------------------Timer Clock Frequency (Hz)
Reload Value - PWM Value
PWM Output High Time Ratio (%) = -------------------------------------------------------------------- 100
Reload Value
If TPOL is set to 1, the ratio of the PWM output High time to the total period is calculated
using the following equation:
PWM Value
PWM Output High Time Ratio (%) = -------------------------------- 100
Reload Value
9.2.3.8. CAPTURE Mode
In CAPTURE Mode, the current timer count value is recorded when the appropriate external Timer Input transition occurs. The Capture count value is written to the Timer PWM0
High and Low Byte registers. The Timer counts timer clocks up to the 16-bit reload value.
The TPOL bit in the Timer Control 1 Register determines if the Capture occurs on a rising
edge or a falling edge of the Timer Input signal. When the Capture event occurs, an interrupt is generated and the timer continues counting. The INPCAP bit in Timer Control 0
Register is set to indicate the timer interrupt is due to an input capture event.
The timer continues counting up to the 16-bit reload value stored in the Timer Reload
High and Low Byte registers. Upon reaching the reload value, the timer generates an
interrupt and continues counting. The INPCAP bit in Timer Control 0 Register is cleared
to indicate the timer interrupt is not due to an input capture event.
Observe the following steps to configure a timer for CAPTURE Mode and initiate the
count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for CAPTURE Mode
– Set the prescale value
– Set the Capture edge (rising or falling) for the Timer Input
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
98
4. Write to the Timer High and Low Byte registers to set the starting count value (typically 0001h).
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. Clear the Timer PWM High and Low Byte registers to 0000h. This allows user software to determine if interrupts were generated by either a capture event or a reload. If
the PWM High and Low Byte registers still contain 0000h after the interrupt, then the
interrupt was generated by a Reload.
7. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers. By default, the timer interrupt will be generated for
both input capture and reload events. If required, configure the timer interrupt to be
generated only at the input capture event or the reload event by setting TICONFIG
field of the Timer Control 0 Register.
8. Configure the associated GPIO port pin for the Timer Input alternate function.
9. Write to the Timer Control 1 Register to enable the timer and initiate counting.
In CAPTURE Mode, the elapsed time from timer start to Capture event can be calculated
using the following equation:
Capture Value - Start Value Prescale
Capture Elapsed Time (s) = -------------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
9.2.3.9. CAPTURE RESTART Mode
In CAPTURE RESTART Mode, the current timer count value is recorded when the
appropriate external Timer Input transition occurs. The Capture count value is written to
the Timer PWM High and Low Byte registers. The Timer counts timer clocks up to the 16bit reload value. The TPOL bit in the Timer Control 1 Register determines if the Capture
occurs on a rising edge or a falling edge of the Timer Input signal. When the Capture event
occurs, an interrupt is generated and the count value in the Timer High and Low Byte
registers is reset to 0001h and counting resumes. The INPCAP bit in Timer Control 0
Register is set to indicate the timer interrupt is due to an input capture event.
If no Capture event occurs, the timer counts up to the 16-bit Compare value stored in the
Timer Reload High and Low Byte registers. Upon reaching the reload value, the timer
generates an interrupt, the count value in the Timer High and Low Byte registers is reset to
0001h and counting resumes. The INPCAP bit in Timer Control 0 Register is cleared to
indicate the timer interrupt is not due to an input capture event.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
99
Observe the following steps to configure a timer for CAPTURE RESTART Mode and initiate the count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for CAPTURE RESTART Mode. Setting the mode also
involves writing to TMODE[3] bit in the TxCTL0 Register
– Set the prescale value
– Set the Capture edge (rising or falling) for the Timer Input
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value (typically 0001h).
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. Clear the Timer PWM High and Low Byte registers to 0000h. This allows user software to determine if interrupts are generated by either a Capture Event or a Reload. If
the PWM High and Low Byte registers still contain 0000h after the interrupt, then the
interrupt is generated by a Reload.
7. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers. By default, the timer interrupt will be generated for
both input capture and reload events. If required, configure the timer interrupt to be
generated only at the Input Capture event or the reload event by setting TICONFIG
field of the Timer Control 0 Register.
8. Configure the associated GPIO port pin for the Timer Input alternate function.
9. Write to the Timer Control 1 Register to enable the timer and initiate counting.
In CAPTURE Mode, the elapsed time from Timer start to Capture event can be calculated
using the following equation:
Capture Value - Start Value Prescale
Capture Elapsed Time (s) = -------------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
100
9.2.3.10. COMPARE Mode
In COMPARE Mode, the timer counts up to the 16-bit maximum Compare value stored in
the Timer Reload High and Low Byte registers. The Timer counts timer clocks up to a 16bit reload value. Upon reaching the Compare value, the timer generates an interrupt and
counting continues (the timer value is not reset to 0001h). Also, if the Timer Output
alternate function is enabled, the Timer Output pin changes state (from Low to High or
from High to Low) on Compare.
If the Timer reaches FFFFh, the timer rolls over to 0000h and continue counting.
Observe the following steps to configure a timer for COMPARE Mode and initiate the
count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for COMPARE Mode
– Set the prescale valu.
– Set the initial logic level (High or Low) for the Timer Output alternate function, if
required
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value.
5. Write to the Timer Reload High and Low Byte registers to set the Compare value.
6. If appropriate, enable the timer interrupt and set the timer interrupt priority by writing
to the relevant interrupt registers.
7. When using the Timer Output function, configure the associated GPIO port pin for the
Timer Output alternate function.
8. Write to the Timer Control 1 Register to enable the timer and initiate counting.
In COMPARE Mode, the timer clock always provides the timer input. The Compare time
is calculated using the following equation:
9.2.3.11. GATED Mode
In GATED Mode, the timer counts only when the Timer Input signal is in its active state
(asserted) as determined by the TPOL bit in the Timer Control 1 Register. When the Timer
Input signal is asserted, counting begins. A Timer Interrupt is generated when the Timer
Input signal is deasserted or a timer reload occurs. To determine if a Timer Input signal
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
101
Compare Value - Start Value Prescale
COMPARE Mode Time (s) = ----------------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
generated the interrupt, read the associated GPIO input value and compare to the value
stored in the TPOL bit.
The timer counts up to the 16-bit reload value stored in the Timer Reload High and Low
Byte registers. The timer input is the timer clock. When reaching the reload value, the
timer generates an interrupt, the count value in the Timer High and Low Byte registers is
reset to 0001h and counting resumes (assuming the Timer Input signal is still asserted).
Also, if the Timer Output alternate function is enabled, the Timer Output pin changes state
(from Low to High or from High to Low) at timer reset.
Observe the following steps to configure a timer for GATED Mode and initiate the count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for GATED Mode
– Set the prescale value
2. Write to the Timer Control 2 Register to choose the timer clock source.
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value. This
value only affects the first pass in GATED Mode. After the first timer reset in GATED
Mode, counting always begins at the reset value of 0001h.
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers. By default, the timer interrupt will be generated for
both input deassertion and reload events. If required, configure the timer interrupt to
be generated only at the Input Deassertion event or the Reload event by setting
TICONFIG field of the Timer Control 0 Register.
7. Configure the associated GPIO port pin for the Timer Input alternate function.
8. Write to the Timer Control 1 Register to enable the timer.
9. Assert the Timer Input signal to initiate the counting.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
102
9.2.3.12. CAPTURE/COMPARE Mode
In CAPTURE/COMPARE Mode, the timer begins counting on the first external Timer
Input transition. The appropriate transition (rising edge or falling edge) is set by the TPOL
bit in the Timer Control 1 Register. The Timer counts timer clocks up to the 16-bit reload
value.
Every subsequent appropriate transition (after the first) of the Timer Input signal captures
the current count value. The Capture value is written to the Timer PWM0 High and Low
Byte registers. When the Capture event occurs, an interrupt is generated, the count value
in the Timer High and Low Byte registers is reset to 0001h and counting resumes. The
INPCAP bit in Timer Control 0 Register is set to indicate the timer interrupt is due to an
input capture event.
If no Capture event occurs, the timer counts up to the 16-bit Compare value stored in the
Timer Reload High and Low Byte registers. Upon reaching the Compare value, the timer
generates an interrupt, the count value in the Timer High and Low Byte registers is reset to
0001h and counting resumes. The INPCAP bit in Timer Control 0 Register is cleared to
indicate the timer interrupt is not due to an input capture event.
Observe the following steps to configure a timer for CAPTURE/COMPARE Mode and
initiate the count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
– Configure the timer for CAPTURE/COMPARE Mode
– Set the prescale value
– Set the Capture edge (rising or falling) for the Timer Input
2. Write to the Timer High and Low Byte registers to set the starting count value (typically 0001h).
3. Write to the Timer Control 2 Register to choose the timer clock source.
4. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
5. Write to the Timer Reload High and Low Byte registers to set the Compare value.
6. If required, enable the timer interrupt and set the timer-interrupt priority by writing to
the relevant interrupt registers. By default, the timer interrupt will be generated for
both input capture and reload events. If required, configure the timer interrupt to be
generated only at the input Capture event or the Reload event by setting TICONFIG
field of the Timer Control 0 Register.
7. Configure the associated GPIO port pin for the Timer Input alternate function.
8. Write to the Timer Control 1 Register to enable the timer.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
103
9. Counting begins on the first transition of the Timer Input signal. No interrupt is generated by this first edge.
In CAPTURE/COMPARE Mode, the elapsed time from timer start to Capture event is calculated using the following equation:
Capture Value - Start Value Prescale
Capture Elapsed Time (s) = -------------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
9.2.3.13. DEMODULATION Mode
In DEMODULATION Mode, the timer begins counting on the first external Timer Input
transition. The appropriate transition (rising edge or falling edge or both) is set by the
TPOL bit in the Timer Control 1 Register and TPOLHI bit in the Timer Control 2 Register.
The Timer counts timer clocks up to the 16-bit reload value.
Every subsequent appropriate transition (after the first) of the Timer Input signal captures
the current count value. The Capture value is written to the Timer PWM0 High and Low
Byte registers for rising input edges of the timer input signal. For falling edges the capture
count value is written to the Timer PWM1 High and Low Byte registers. The TPOL bit in
the Timer Control 1 Register determines if the Capture occurs on a rising edge or a falling
edge of the Timer Input signal. If the TPOLHI bit in the Timer Control 2 Register is set, a
Capture is executed on both the rising and falling edges of the input signal.
Whenever the Capture event occurs, an interrupt is generated and the timer continues
counting. The corresponding event flag bit in the Timer Status Register, PWMxEF, is set
to indicate that the timer interrupt is due to an input Capture event.
The timer counts up to the 16-bit Compare value stored in the Timer Reload High and
Low Byte registers. Upon reaching the reload value, the timer generates an interrupt, the
count value in the Timer High and Low Byte registers is reset to 0001h, and counting
resumes. The RTOEF event flag bit in the Timer Status Register is set to indicate that the
timer interrupt is due to a Reload event. Software can use this bit to determine if a Reload
occurred prior to a Capture.
Observe the following steps to configure a timer for DEMODULATION Mode and initiate
the count:
1. Write to the Timer Control 1 Register to:
– Disable the timer
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
104
–
–
–
Configure the timer for DEMODULATION Mode. Setting the mode also involves
writing to the TMODEHI bit in the TxCTL0 Register
Set the prescale value
Set the TPOL bit to set the Capture edge (rising or falling) for the Timer Input.
This setting applies only if the TPOLHI bit in the TxCTL2 Register is not set
2. Write to the Timer Control 2 Register to:
– Choose the timer clock source
– Set the TPOLHI bit if the Capture is required on both edges of the input signal
3. Write to the Timer Control 0 Register to set the timer interrupt configuration field
TICONFIG.
4. Write to the Timer High and Low Byte registers to set the starting count value (typically 0001h).
5. Write to the Timer Reload High and Low Byte registers to set the reload value.
6. Clear the Timer TxPWM0 and TxPWM1 High and Low Byte registers to 0000h.
7. If required, enable the noise filter and set the noise filter control by writing to the relevant bits in the Noise Filter Control Register.
8. If required, enable the timer interrupt and set the timer interrupt priority by writing to
the relevant interrupt registers. By default, the timer interrupt will be generated for
both input capture and reload events. If required, configure the timer interrupt to be
generated only at the input Capture event or the Reload event by setting TICONFIG
field of the Timer Control 0 Register.
9. Configure the associated GPIO port pin for the Timer Input alternate function.
10. Write to the Timer Control 1 Register to enable the timer. Counting will start on the
occurrence of the first external input transition.
In DEMODULATION Mode, the elapsed time from timer start to Capture event can be
calculated using the following equation:
Capture Value - Start Value Prescale
Capture Elapsed Time (s) = -------------------------------------------------------------------------------------------------Timer Clock Frequency (Hz)
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
105
Table 54 provides an example initialization sequence for configuring Timer 0 in DEMODULATION Mode and initiating operation.
Table 54. DEMODULATION Mode Initialization Example
Register
Value
Comment
T0CTL0
C0h
T0CTL1
04h
T0CTL2
11h
TMODE[3:0] = 1100B selects DEMODULATION Mode.
TICONFIG[1:0] = 10B enables interrupt only on Capture events.
CSC = 0 selects the Timer Input from the GPIO pin.
PWMD[2:0] = 000B has no effect.
INPCAP = 0 has no effect.
TEN = 0 disables the timer.
PRES[2:0] = 000B sets prescaler to divide by 1.
TPOLHI,TPOL = 10 enables trigger and Capture on both rising and falling
edges of Timer Input.
TCLKS = 1 enables 32 kHz peripheral clock as timer clock source
T0h
00h
T0L
01h
T0RH
ABh
T0RL
CDh
T0PWM0h
00h
T0PWM0L
00h
T0PWM1h
00h
T0PWM1h
00h
T0NFC
C0h
NFEN = 1 enables noise filter
NFCTL = 100B enables 8-bit up/down counter
PAADDR
02h
Selects Port A Alternate Function control register.
PACTL[1:0]
11B
PACTL[0] enables Timer 0 Input alternate function.
PACTL[1] enables Timer 0 Output alternate function.
IRQ0ENH[5]
0B
Disables the Timer 0 interrupt.
IRQ0ENL[5]
0B
T0CTL1
84h
Timer starting value = 0001h.
Timer reload value = ABCDh
Initial PWM0 value = 0000h
Initial PWM1 value = 0000h
TEN = 1 enables the timer. All other bits remain in their appropriate settings.
Notes:
Notes: After receiving the input trigger (rising or falling edge), Timer 0 will:
1. Start counting on the timer clock.
2. Upon receiving a Timer 0 Input rising edge, save the Capture value in the T0PWM0 registers, generate an interrupt, and continue to count.
3. Upon receiving a Timer 0 Input falling edge, save the Capture value in the T0PWM1 registers, generate an interrupt, and continue to count.
4. After the timer count to ABCD clocks, set the reload event flag and reset the Timer count to the start value.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
106
9.2.4. Reading the Timer Count Values
The current count value in the timers can be read while counting (enabled). This capability
has no effect on timer operation. When the timer is enabled and the Timer High Byte
register is read, the contents of the Timer Low Byte Register are placed in a holding
register. A subsequent read from the Timer Low Byte Register returns the value in the
holding register. This operation allows accurate reads of the full 16-bit timer count value
while enabled. When the timers are not enabled, a read from the Timer Low Byte Register
returns the actual value in the counter.
9.2.5. Timer Output Signal Operation
The Timer Output is a GPIO port pin alternate function. Generally, the Timer Output is
toggled every time the counter is reloaded. The complement of the Timer Output is only
available in Dual PWM Mode.
9.2.6. Timer Noise Filter
A Noise Filter circuit is included which filters noise on a Timer Input signal before the
data is sampled by the block.
The Noise Filter has the following features:
•
•
Synchronizes the receive input data to the Timer Clock
•
NFCTL (Noise Filter Control) input selects the width of the up/down saturating counter
digital filter. The available widths range from 4 bits to 11 bits
•
•
The digital filter output has hysteresis
•
Available for operation in STOP Mode
NFEN (Noise Filter Enable) input selects whether the Noise Filter is bypassed
(NFEN=0) or included (NFEN=1) in the receive data path
Provides an active Low saturated state output (FiltSatB) which is used as an indication
of the presence of noise
9.2.7. Architecture
Figure 12 displays how the Noise Filter is integrated with the Timer.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
107
Timer
Clock
TxIN
TxIN
NEF
Timer
GPIO
Noise Filter
NFEN, NFCTL
TxOUT
TxOUT
Figure 12. Noise Filter System Block Diagram
9.2.7.1. Operation
Figure 13 displays the operation of the Noise Filter with and without noise. The Noise
Filter in this example is a 2-bit up/down counter which saturates at 00 and 11. A 2-bit
counter is described for convenience; the operation of wider counters is similar. The
output of the filter switches from 1 to 0 when the counter counts down from 01 to 00 and
switches from 0 to 1 when the counter counts up from 10 to 11. The Noise Filter delays
the receive data by three timer clock cycles.
The NEF output signal is checked when the filtered TxIN input signal is sampled. The Timer
samples the filtered TxIN input near the center of the bit time. The NEF signal must be
sampled at the same time to detect whether there is noise near the center of the bit time. The
presence of noise (NEF = 1 at the center of the bit time) does not mean that the sampled data
is incorrect; rather, it is intended to be an indicator of the level of noise in the network.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
108
Timer
Clock
Input
TxIN (ideal)
Data Bit = 0
Data Bit = 1
Clean TxIN
example
Noise Filter 3 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3
Up/Dn Cntr
Noise Filter
Output
nominal filter delay
Input
TxIN (noisy)
Data Bit = 0
Data Bit = 1
Noise Filter
Up/Dn Cntr 3 3 2 1 0 0 0 0 0 0 1 2 1 0 0 0 0 0 1 0 1 2 3 3 3 3 2 3 3 3 3 3 3 3
Noise TxIN
example
Noise Filter
Output
NEF
output
Figure 13. Noise Filter Operation
9.3.
Timer Control Register Definitions
This section defines the features of the following Timer Control registers.
Timer 0–2 High and Low Byte Registers: see page 109
Timer Reload High and Low Byte Registers: see page 109
Timer 0–2 PWM0 High and Low Byte Registers: see page 110
Timer 0–2 PWM1 High and Low Byte Registers: see page 111
Timer 0–2 Control Registers: see page 112
Timer 0–2 Status Registers: see page 118
Timer 0–2 Noise Filter Control Register: see page 119
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
109
9.3.1. Timer 0–2 High and Low Byte Registers
The Timer 0–2 High and Low Byte (TxH and TxL) registers, shown in Tables 55 and 56,
contain the current 16-bit timer count value. When the timer is enabled, a read from TxH
causes the value in TxL to be stored in a temporary holding register. A read from TxL
always returns this temporary register when the timers are enabled. When the timer is
disabled, reading from the TxL reads the register directly.
Writing to the Timer High and Low Byte registers when the timer is enabled is not
recommended. There are no temporary holding registers available for write operations;
therefore simultaneous 16-bit writes are not possible. If either the Timer High or Low Byte
registers are written during counting, the 8-bit written value is placed in the counter (High
or Low Byte) at the next clock edge. The counter continues counting from the new value.
Table 55. Timer 0–2 High Byte Register (TxH)
Bit
7
6
5
4
Field
2
1
0
TH
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F00h, F08h, F10h
Table 56. Timer 0–2 Low Byte Register (TxL)
Bit
7
6
5
4
Field
2
1
0
TL
Reset
R/W
3
0
0
0
0
0
0
0
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F01h, F09h, F11h
Bit
Description
[7:0]
TH, TL
Timer High and Low Bytes
These 2 bytes, {TH[7:0], TL[7:0]}, contain the current 16-bit timer count value.
9.3.2. Timer Reload High and Low Byte Registers
The Timer 0–2 Reload High and Low Byte (TxRH and TxRL) registers, shown in
Tables 57 and 58, store a 16-bit reload value, {TRH[7:0], TRL[7:0]}. Values written to the
Timer Reload High Byte Register are stored in a temporary holding register. When a write
to the Timer Reload Low Byte Register occurs, this temporary holding register value is
written to the Timer High Byte Register. This operation allows simultaneous updates of
the 16-bit timer reload value.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
110
In COMPARE Mode, the Timer Reload High and Low Byte registers store the 16-bit
Compare value.
Table 57. Timer 0–2 Reload High Byte Register (TxRH)
Bit
7
6
5
4
Field
2
1
0
TRH
Reset
R/W
3
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F02h, F0Ah, F12h
Table 58. Timer 0–2 Reload Low Byte Register (TxRL)
Bit
7
6
5
4
Field
2
1
0
TRL
Reset
R/W
3
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F03h, F0Bh, F13h
Bit
Description
[7:0]
TRH,
TRL
Timer Reload Register High and Low
These two bytes form the 16-bit reload value, {TRH[7:0], TRL[7:0]}. This value is used to set
the maximum count value which initiates a timer reload to 0001h. In COMPARE Mode, these
two bytes form the 16-bit Compare value.
9.3.3. Timer 0–2 PWM0 High and Low Byte Registers
The Timer 0–2 PWM0 High and Low Byte (TxPWM0h and TxPWM0L) registers, shown
in Tables 59 and 60, are used for Pulse Width Modulator (PWM) operations. These
registers also store the Capture values for the CAPTURE, CAPTURE/COMPARE and
DEMODULATION Modes. When the timer is enabled, writes to these registers are
buffered, and loading of the registers is delayed until a timer reload to 0001h occurs –
that is, unless PWM0UE = 1.
Table 59. Timer 0–2 PWM0 High Byte Register (TxPWM0h)
Bit
7
6
5
4
Field
2
1
0
PWM0h
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
PS025016-1013
F04h, F0Ch, F14h
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
111
Table 60. Timer 0–2 PWM0 Low Byte Register (TxPWM0L)
Bit
7
6
5
4
Field
1
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
Address
Bit
2
PWM0L
Reset
R/W
3
F05h, F0Dh, F15h
Description
[7:0]
Pulse Width Modulator 0 High and Low Bytes
PWM0h, These two bytes, {PWM0h[7:0], PWM0L[7:0]}, form a 16-bit value that is compared to the
PWM0L current 16-bit timer count. When a match occurs, the PWM output changes state. The PWM
output value is set by the TPOL bit in the Timer Control 1 Register (TxCTL1).
The TxPWM0h and TxPWM0L registers also store the 16-bit captured timer value when
operating in CAPTURE, CAPTURE/COMPARE and DEMODULATION Modes.
9.3.4. Timer 0–2 PWM1 High and Low Byte Registers
The Timer 0–2 PWM1 High and Low Byte (TxPWM1h and TxPWM1L) registers, shown
in Tables 61 and 62, store Capture values for DEMODULATION Mode.
Table 61. Timer 0-2 PWM1 High Byte Register (TxPWM1h)
Bit
7
6
5
4
Field
2
1
0
PWM1h
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F20h, F24h, F28h
Table 62. Timer 0–2 PWM1 Low Byte Register (TxPWM1L)
Bit
7
6
5
4
Field
1
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
Address
Bit
2
PWM1L
Reset
R/W
3
F21h, F25h, F29h
Description
[7:0]
Pulse Width Modulator 1 High and Low Bytes
PWM1h, These two bytes, {PWM1h[7:0], PWM1L[7:0]}, store the 16-bit captured timer value for
PWM1L DEMODULATION Mode.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
112
9.3.5. Timer 0–2 Control Registers
The Timer Control registers are described in Tables 63 through 65.
9.3.5.1. Timer 0–2 Control 0 Register
The Timer 0–2 Control 0 (TxCTL0) register together with TxCTL1 register determines
the timer operating mode. It also includes a programmable PWM deadband delay, two bits
to configure timer interrupt definition and a status bit to identify if the last timer interrupt
is due to an input capture event.
Table 63. Timer 0–2 Control 0 Register (TxCTL0)
Bit
7
6
5
3
1
PWMD
0
TMODE[3]
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
CSC
2
Field
R/W
TICONFIG
4
INPCAP
F06h, F0Eh, F16h
Bit
Description
[7]
TMODE[3]
Timer Mode High Bit
This bit, along with the TMODE[2:0] field in the TxCTL1 Register, determines the operating
mode of the timer. This bit is the most significant bit of the timer mode selection value. For
more details, see the description of the Timer 0–2 Control 1 Register (TxCTL1) on
page 113.
[6:5]
TICONFIG
Timer Interrupt Configuration
This field configures timer interrupt definition.
0x = Timer Interrupt occurs on all defined Reload, Compare and Input Events.
10 = Timer Interrupt only on defined Input Capture/Deassertion Events.
11 = Timer Interrupt only on defined Reload/Compare Events.
[4]
CSC
Cascade Timers
0 = Timer Input signal comes from the pin.
1 = For Timer 0, Input signal is connected to Timer 2 output.
For Timer 1, Input signal is connected to Timer 0 output.
For Timer 2, Input signal is connected to Timer 1 output.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
113
Bit
Description (Continued)
[3:1]
PWMD
PWM Delay Value
This field is a programmable delay to control the number of timer clock cycles time delay
before the Timer Output and the Timer Output Complement is forced to their active state.
000 = No delay
001 = 2 cycles delay
010 = 4 cycles delay
011 = 8 cycles delay
100 = 16 cycles delay
101 = 32 cycles delay
110 = 64 cycles delay
111 = 128 cycles delay
[0]
INPCAP
Input Capture Event
This bit indicates if the last timer interrupt is due to a Timer Input Capture Event.
0 = Previous timer interrupt is not a result of Timer Input Capture Event.
1 = Previous timer interrupt is a result of Timer Input Capture Event.
9.3.5.2. Timer 0–2 Control 1 Register
The Timer 0–2 Control 1 (TxCTL1) registers enable and disable the timers, set the prescaler value and determine the timer operating mode. See Table 64.
Table 64. Timer 0–2 Control 1 Register (TxCTL1)
Bit
7
6
Field
TEN
TPOL
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
5
4
3
2
PRES
Address
1
0
TMODE
F07h, F0Fh, F17h
Bit
Description
[7]
TEN
Timer Enable
0 = Timer is disabled.
1 = Timer enabled to count.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
114
Bit
Description (Continued)
[6]
TPOL
Timer Input/Output Polarity
Operation of this field is a function of the current operating modes of the timer.
ONE-SHOT Mode
When the timer is disabled, the Timer Output signal is set to the value of this bit. When the
timer is enabled, the Timer Output signal is complemented upon timer reload.
CONTINUOUS Mode
When the timer is disabled, the Timer Output signal is set to the value of this bit. When the
timer is enabled, the Timer Output signal is complemented upon timer reload.
COUNTER Mode
When the timer is disabled, the Timer Output signal is set to the value of this bit. When the
timer is enabled, the Timer Output signal is complemented upon timer reload.
0 = Count occurs on the rising edge of the Timer Input signal.
1 = Count occurs on the falling edge of the Timer Input signal.
PWM SINGLE OUTPUT Mode
0 = Timer Output is forced Low (0) when the timer is disabled. When enabled, the Timer
Output is forced High (1) on PWM count match and forced Low (0) on Reload.
1 = Timer Output is forced High (1) when the timer is disabled. When enabled, the Timer
Output is forced Low (0) on PWM count match and forced High (1) on Reload.
CAPTURE Mode
0 = Count is captured on the rising edge of the Timer Input signal.
1 = Count is captured on the falling edge of the Timer Input signal.
COMPARE Mode
When the timer is disabled, the Timer Output signal is set to the value of this bit. When the
timer is enabled, the Timer Output signal is complemented on timer reload.
GATED Mode
0 = Timer counts when the Timer Input signal is High (1) and interrupts are generated on the
falling edge of the Timer Input.
1 = Timer counts when the Timer Input signal is Low (0) and interrupts are generated on the
rising edge of the Timer Input.
CAPTURE/COMPARE Mode
0 = Counting is started on the first rising edge of the Timer Input signal. The current count is
captured on subsequent rising edges of the Timer Input signal.
1 = Counting is started on the first falling edge of the Timer Input signal. The current count is
captured on subsequent falling edges of the Timer Input signal.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
115
Bit
Description (Continued)
[6] (cont’d)
PWM DUAL OUTPUT Mode
0 = Timer Output is forced Low (0) and Timer Output Complement is forced High (1) when
the timer is disabled. When enabled, the Timer Output is forced High (1) upon PWM
count match and forced Low (0) upon Reload. When enabled, the Timer Output
Complement is forced Low (0) upon PWM count match and forced High (1) upon
Reload. The PWMD field in Timer Control 0 Register is a programmable delay to control
the number of cycles time delay before the Timer Output and the Timer Output
Complement is forced to High (1).
1 = Timer Output is forced High (1) and Timer Output Complement is forced Low (0) when
the timer is disabled. When enabled, the Timer Output is forced Low (0) upon PWM
count match and forced High (1) upon Reload. When enabled, the Timer Output
Complement is forced High (1) upon PWM count match and forced Low (0) upon
Reload. The PWMD field in Timer Control 0 Register is a programmable delay to control
the number of cycles time delay before the Timer Output and the Timer Output
Complement is forced to Low (0).
CAPTURE RESTART Mode
0 = Count is captured on the rising edge of the Timer Input signal.
1 = Count is captured on the falling edge of the Timer Input signal.
COMPARATOR COUNTER Mode
When the timer is disabled, the Timer Output signal is set to the value of this bit. When the
timer is enabled, the Timer Output signal is complemented upon timer reload.
TRIGGERED ONE-SHOT Mode
0 = Timer counting is triggered on the rising edge of the Timer Input signal.
1 = Timer counting is triggered on the falling edge of the Timer Input signal.
DEMODULATION Mode
0 = Timer counting is triggered on the rising edge of the Timer Input signal. The current
count is captured into PWM0 High and Low byte registers on subsequent rising edges of
the Timer Input signal.
1 = Timer counting is triggered on the falling edge of the Timer Input signal. The current
count is captured into PWM1 High and Low byte registers on subsequent falling edges
of the Timer Input signal.
The above functionality applies only if TPOLHI bit in Timer Control 2 Register is 0. If
TPOLHI bit is 1 then timer counting is triggered on any edge of the Timer Input signal and
the current count is captured on both edges. The current count is captured into PWM0
registers on rising edges and PWM1 registers on falling edges of the Timer Input signal.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
116
Bit
Description (Continued)
[5:3]
PRES
Prescale Value
The timer input clock is divided by 2PRES, where PRES can be set from 0 to 7. The
prescaler is reset each time the Timer is disabled. This insures proper clock division each
time the Timer is restarted.
000 = Divide by 1
001 = Divide by 2
010 = Divide by 4
011 = Divide by 8
100 = Divide by 16
101 = Divide by 32
110 = Divide by 64
111 = Divide by 128
[2:0]
Timer Mode
TMODE[2:0] This field, along with the TMODE[3] bit in the TxCTL0 Register, determines the operating
mode of the timer. TMODE[3:0] selects among the following modes:
0000 = ONE-SHOT Mode
0001 = CONTINUOUS Mode
0010 = COUNTER Mode
0011 = PWM SINGLE OUTPUT Mode
0100 = CAPTURE Mode
0101 = COMPARE Mode
0110 = GATED Mode
0111 = CAPTURE/COMPARE Mode
1000 = PWM DUAL OUTPUT Mode
1001 = CAPTURE RESTART Mode
1010 = COMPARATOR COUNTER Mode
1011 = TRIGGERED ONE-SHOT Mode
1100 = DEMODULATION Mode
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
117
9.3.5.3. Timer 0–2 Control 2 Register
The Timer 0–2 Control 2 (TxCTL2) registers allow selection of timer clock source and
control of timer input polarity in DEMODULATION Mode. See Table 65.
Table 65. Timer 0–2 Control 2 Register (TxCTL2)
Bit
7
Field
Reserved
Reset
R/W
6
5
4
PWM0UE
TPOLHI
3
2
1
Reserved
0
TCLKS*
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F22h, F26h, F2Ah
Bit
Description
[7:6]
Reserved; must be 0.
[5]
PWM0 Update Enable
PWM0UE This bit determines whether writes to the PWM0 High and Low Byte registers are buffered
when TEN = 1. Writes to these registers are not buffered when TEN = 0, regardless of the
value of this bit.
0 = Writes to the Channel High and Low Byte registers are buffered when TEN = 1 and only
take affect on a timer reload to 0001h.
1 = Writes to the Channel High and Low Byte registers are not buffered when TEN = 1.
[4]
TPOLHI
Timer Input/Output Polarity High Bit
This bit determines if timer count is triggered and captured on both edges of the input signal.
This applies only to DEMODULATION Mode.
0 = Count is captured only on one edge in DEMODULATION Mode. In this case, edge polarity
is determined by TPOL bit in the TxCTL1 Register.
1 = Count is triggered on any edge and captured on both rising and falling edges of the Timer
Input signal in DEMODULATION Mode.
[3:1]
Reserved; must be 0.
[0]
TCLKS
Timer Clock Source
0 = System Clock.
1 = Peripheral Clock.*
Note: *Before selecting the peripheral clock as the timer clock source, the peripheral clock must be enabled and oscillating.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
118
9.3.6. Timer 0–2 Status Registers
The Timer 0–2 Status (TxSTAT) indicates PWM capture/compare event occurrence, overrun errors, noise event occurrence and reload time-out status.
Table 66. Timer 0–2 Status Register (TxSTAT)
Bit
7
6
5
4
1
0
NEF
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
RTOEF
2
Field
R/W
Reserved PWM1EO PWM0EO
3
Reserved PWM1EF PWM0EF
F23h, F27h, F2Bh
Bit
Description
[7]
NEF
Noise Event Flag
This status is applicable only if the Timer Noise Filter is enabled. The NEF bit will be asserted
if digital noise is detected on the Timer input (TxIN) line when the data is being sampled
(center of bit time). If this bit is set, it does not mean that the timer input data is corrupted
(though it can be in extreme cases), just that one or more Noise Filter data samples near the
center of the bit time did not match the average data value.
[6]
Reserved; must be 0.
[5:4]
PWM x Event Overrun
PWMxEO This bit indicates that an overrun error has occurred. An overrun occurs when a new capture/
compare event occurs before the previous PWMxEF bit is cleared. Clearing the associated
PWMxEF bit in the TxSTAT register clears this bit.
0 = No Overrun
1 = Capture/Compare Event Flag Overrun
[3]
RTOEF
Reload Time-Out Event Flag
This flag is set if timer counts up to the reload value and is reset to 0001h. Software can use
this bit to determine if a reload occurred prior to a capture. It can also determine if timer
interrupt is due to a reload event.
0 = No Reload Time-Out event occurred
1 = A Reload Time-Out event occurred
[2]
Reserved; must be 0.
[1:0]
PWM x Event Flag
PWMxEF This bit indicates if a capture/compare event occurred for this PWM channel. Software can use
this bit to determine the PWM channel responsible for generating the timer interrupt. This
event flag is cleared by writing a 1 to the bit. These bits will be set when an event occurs
independent of the setting of the timer interrupt enable bit.
0 = No Capture/Compare Event occurred for this PWM channel
1 = A Capture/Compare Event occurred for this PWM channel
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
119
9.3.7. Timer 0–2 Noise Filter Control Register
The Timer 0–2 Noise Filter Control Register (TxNFC) enables and disables the Timer
Noise Filter and sets the noise filter control.
Table 67. Timer 0–2 Noise Filter Control Register (TxNFC)
Bit
7
Field
NFEN
Reset
0
R/W
6
5
4
3
2
NFCTL
0
R/W
Address
0
1
0
0
0
Reserved
0
0
R/W
0
R
F2Ch, F2Dh, F2Eh
Bit
Description
[7]
NFEN
Noise Filter Enable
0 = Noise Filter is disabled.
1 = Noise Filter is enabled. Receive data is preprocessed by the noise filter.
[6:4]
NFCTL
Noise Filter Control
This field controls the delay and noise rejection characteristics of the Noise Filter. The wider
the counter the more delay that is introduced by the filter and the wider the noise event that will
be filtered.
000 = 2-bit up/down counter
001 = 3-bit up/down counter
010 = 4-bit up/down counter
011 = 5-bit up/down counter
100 = 6-bit up/down counter
101 = 7-bit up/down counter
110 = 8-bit up/down counter
111 = 9-bit up/down counter
[3:0]
Reserved; must be 0.
PS025016-1013
PRELIMINARY
Timers
Z8 Encore! XP® F1680 Series
Product Specification
120
Chapter 10. Multi-Channel Timer
The Multi-Channel timer, offered on all 44-pin F1680 Series parts, features a 16-bit up/
down counter and a 4-channel Capture/Compare/PWM channel array. This timer enables
the support of multiple synchronous Capture/Compare/PWM channels based on a single
timer. The Multi-Channel Timer also includes the following features:
•
•
•
•
•
16-bit up/down timer counter with programmable prescale
Selectable clock source (system clock or external input pin)
Count Modulo and Count up/down COUNTER Modes
Four independent capture/compare channels which reference the common timer
Channel modes:
– ONE-SHOT COMPARE Mode
– CONTINUOUS COMPARE Mode
– PWM OUTPUT COMPARE Mode
– CAPTURE Mode
10.1. Architecture
Figure 14 displays the Multi-Channel Timer architecture.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
121
Data
Bus
Timer and Channel
Control
Block
Control
16-Bit
Reload Register
System Clock
16-Bit Counter
with Prescaler
Timer
Input
(TIN)
A
Timer Channel B
C
Inputs
D
(T4CHA – T4CHD)
Gate
Input
Four16-Bit PWM
Capture Compare
Channels
C
O
M
P
A
R
E
C
O
M
P
A
R
E
Interrupt,
PWM,
and
Timer
Output
Control
Timer
Interrupt
A
B
Timer Channel
Outputs
C
D
(T4CHA – T4CHD)
Figure 14. Multi-Channel Timer Block Diagram
10.2. Timer Operation
This section discusses the key features of the Multi-Channel Timer, including its counter,
clock source, prescaler and counting modes.
10.2.1. Multi-Channel Timer Counter
The Multi-Channel Timer is based around a 16-bit up/down counter. The counter,
depending on the TIMER mode counts up or down with each rising edge of the clock
signal. Timer Counter registers MCTH and MCTL can be read/written by software.
10.2.2. Clock Source
The Multi-Channel Timer clock source can come from either the system clock or the
alternate function TIN pin when the system clock is the clock source; the alternate function
TIN input pin can perform a clock gating function. The TCLKS field in the MCTCTL0
Register selects the timer clock source. When using the TIN pin, the associated GPIO pin,
T4CH, must be configured as an input. The TIN frequency cannot exceed one-fourth the
system clock frequency.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
122
10.2.3. Multi-Channel Timer Clock Prescaler
The prescaler allows the system clock signal to be decreased by factors of 1, 2, 4, 8, 16,
32, 64 or 128. The PRES[2:0] bit field in the MCTCTL1 Register controls prescaler
operation. The PRES field is buffered for the prescale value to change only on a MultiChannel Timer end-of-cycle count. The prescaler has no effect when the TIN is selected as
the clock source.
10.2.4. Multi-Channel Timer Start
The Multi-Channel Timer starts counting when the TEN bit in the MCTCTL1 Register is
set and the clock source is active. In Count Modulo or Count Up/Down mode, the timer
counting can be stopped without disabling the timer by setting the Reload Register to 0.
The timer will then stop when the counter next reaches 0. Writing a nonzero value to the
Reload Register restarts the timer counting.
10.2.5. Multi-Channel Timer Mode Control
The Multi-Channel Timer supports two modes of operation: Count Modulo and Count up/
down. The operating mode is selected with the TMODE[1:0] field in the MCTCTL1
Register. The timer modes are described below in Table 68.
Table 68. Timer Count Modes
TMODE
Timer Mode
Description
00
Count Modulo
Timer counts up to Reload Register value. Then it is reset to 0000h and
counting resumes.
01
Reserved
10
Count Up/Down
11
Reserved
Timer counts up to Reload and then counts down to 0000h. The Count up/
down cycle continues.
10.2.6. Count Modulo Mode
In the Count Modulo Mode, the Timer counts up to the Reload Register value (max value
= FFFFh). Then it is reset to 0000h and counting resumes. As shown in Figure 15, the
counting cycle continues with Reload + 1 as the period. A timer count interrupt request is
generated when the timer count resets from Reload to 0000h. If Count Modulo is selected
when the timer count is greater than Reload, the timer immediately restarts counting from
zero.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
123
FFFFh
Reload
0h
Figure 15. Count Modulo Mode
10.2.7. Count Up/Down Mode
In the Count Up/Down mode, the timer counts up to the Reload Register value and then
counts down to 0000h. As shown in Figures 16, the counting cycle continues with twice
the reload value as the period. A timer count interrupt is generated when the timer count
decrements to zero.
Reload
0h
Figure 16. Count Up/Down Mode
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
124
10.3. Capture/Compare Channel Operation
The Multi-Channel timer supports four Capture/Compare channels: CHA, CHB, CHC and
CHD. Each channel has the following features:
•
A 16-bit Capture/Compare Register (MCTCHyH and MCTCHyL registers) used to
capture input event times or to generate time intervals. Any user software update of the
Capture/Compare Register value when the timer is running takes effect only at the end
of the counting cycle, not immediately. The end of the counting cycle is when the counter transitions from the reload value to 0 (count modulo mode) or from 1 to 0 (count up/
down mode).
•
A dedicated bidirectional pin (T4CHA, T4CHB, T4CHC, or T4CHD) that can be configured for the input capture function or to generate an output compare match or oneshot pulse.
Each channel is configured to operate in ONE-SHOT COMPARE, CONTINUOUS
COMPARE, PWM OUTPUT, or INPUT CAPTURE mode.
10.3.1. One-Shot Compare Operation
In a ONE-SHOT COMPARE operation, a channel interrupt is generated when the channel
compare value matches the timer count. The channel event flag (CHyEF) is set in the
Channel Status 1 Register (MCTCHS1) to identify the responsible channel. The channel is
then automatically disabled. The timer continues counting according to the programmed
mode. If the timer channel output alternate function is enabled, the channel output pin
(T4CHA, T4CHB, T4CHC, or T4CHD) changes state for one system clock cycle upon
match (i.e., from Low to High, then back to Low or High to Low, then back to High as
determined by the CHPOL bit).
10.3.2. Continuous Compare Operation
In a CONTINUOUS COMPARE operation, a channel interrupt is generated when the
channel compare value matches the timer count. The channel event flag (CHyEF) is set in
the Channel Status 1 Register (MCTCHS1) and the channel remains enabled. The timer
continues counting according to the programmed mode. If the channel output alternate
function is enabled, the channel output pin (T4CHA, T4CHB, T4CHC, or T4CHD)
changes state upon match (i.e., from Low to High then back to Low; or High to Low then
back to High, as determined by the CHPOL bit).
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
125
10.3.3. PWM Output Operation
In a PWM OUTPUT operation, the timer generates a PWM output signal on the channel
output pin (T4CHA, T4CHB, T4CHC, or T4CHD). The channel output toggles whenever
the timer count matches the channel compare value (defined in the MCTCHyH and
MCTCHyL registers). In addition, a channel interrupt is generated and the channel event
flag is set in the status register. The timer continues counting according to its programmed
mode.
The channel output signal begins with the output value = CHPOL and then transitions to
CHPOL when timer value matches the PWM value. If timer mode is Count Modulo, the
channel output signal returns to output = CHPOL when timer reaches the reload value and
is reset. If timer mode is Count up/down, channel output signal returns to output =
CHPOL when the timer count matches the PWM value again (when counting down).
10.3.4. Capture Operation
In a CAPTURE operation, the current timer count is recorded when the selected transition
occurs on T4CHA, T4CHB, T4CHC or T4CHD. The Capture count value is written to the
Channel High and Low Byte registers. In addition, a channel interrupt is generated and the
channel event flag (CHyEF) is set in the Channel Status Register. The CHPOL bit in the
Channel Control Register determines if the Capture occurs on a rising edge or a falling
edge of the Channel Input signal. The timer continues counting according to the programmed mode.
10.4. Multi-Channel Timer Interrupts
The Multi-Channel Timer provides a single interrupt which has five possible sources.
These sources are the internal timer and the four channel inputs (T4CHA, T4CHB,
T4CHC, T4CHD).
10.4.1. Timer Interrupt
If enabled by the TCIEN bit of the MCTCTL0 Register, the timer interrupt will be generated when the timer completes a count cycle. This occurs during transition from counter =
reload register value to counter = 0 in count modulo mode and occurs during transition
from counter = 1 to counter = 0 in count up/down mode.
10.4.2. Capture/Compare Channel Interrupt
A channel interrupt is generated whenever there is a successful Capture/Compare Event
on the Timer Channel and the associated CHIEN bit is set.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
126
10.5. Low-Power Modes
The Z8 Encore! XP F1680 Series of MCUs contains power-saving features. The highest
level of power reduction is provided by STOP Mode. The next level of power reduction is
provided by HALT Mode.
10.5.1. Operation in HALT Mode
When the eZ8 CPU is operating in HALT Mode, the Multi-Channel Timer will continue to
operate if enabled. To minimize current in HALT Mode, the Multi-Channel Timer must be
disabled by clearing the TEN control bit.
10.5.2. Operation in STOP Mode
When the eZ8 CPU is operating in STOP Mode, the Multi-Channel Timer ceases to
operate because the system clock has stopped. The registers are not reset and operation
will resume after Stop Mode Recovery occurs.
10.5.3. Power Reduction During Operation
Deassertion of the TEN bit will inhibit clocking of the entire Multi-Channel Timer block.
Deassertion of the CHEN bit of individual channels will inhibit clocking of channelspecific logic to minimize power consumption of unused channels. The CPU can still read
and write to the registers when the enable bit(s) are deasserted.
10.6. Multi-Channel Timer Applications Examples
This section provides two brief examples that describe how the the F1680 Series multichannel timer can be used in your application.
10.6.1. PWM Programmable Deadband Generation
The count up/down mode supports motor control applications that require dead time
between output signals. Figure 17 displays dead time generation between two channels
operating in count up/down mode.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
127
FFFFh
Reload
MCTCH0
MCTCH1
0h
Dead Time
TCH0 Output
TCH1 Output
CI
CI
CI
CI
CI
TI
CI
CI
CI
Channel Interrupts (CI)
TI Timer Interrupts (TI)
Figure 17. Count Up/Down Mode with PWM Channel Outputs and Deadband
10.6.2. Multiple Timer Intervals Generation
Figure 18 shows a timing diagram featuring two constant time intervals, T0 and T1. The
timer is in Count Modulo Mode with reload = FFFFh. Channels 0 and 1 are set up for
CONTINUOUS COMPARE operation. After every channel compare interrupt, the
channel Capture/Compare registers are updated in the interrupt service routine by adding a
constant equal to the time interval required. This operation requires that the Channel
Update Enable (CHUE) bit must be set in channels 0 and 1 so that writes to the Capture/
Compare registers take affect immediately.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
128
FFFFh
0h
t0
t0
t0
t1
t1
t0
t1
Figure 18. Count Max Mode with Channel Compare
10.7. Multi-Channel Timer Control Register Definitions
This section defines the features of the following Multi-Channel Timer Control registers.
Multi-Channel Timer High and Low Byte Registers: see page 130
Multi-Channel Timer Reload High and Low Byte Registers: see page 130
Multi-Channel Timer Subaddress Register: see page 131
Multi-Channel Timer Subregister x (0, 1, or 2): see page 132
Multi-Channel Timer Control 0, Control 1 Registers: see page 132
Multi-Channel Timer Channel Status 0 and Status 1 Registers: see page 135
Multi-Channel Timer Channel-y Control Registers: see page 137
Multi-Channel Timer Channel-y High and Low Byte Registers: see page 139
10.7.1. Multi-Channel Timer Address Map
Table 69 defines the byte address offsets for the Multi-channel Timer registers. For saving
address space, a subaddress is used for the Timer Control 0, Timer Control 1, Channel
Status 0, Channel Status 1, Channel-y Control, and Channel-y High and Low byte
registers. Only the Timer High and Low Byte registers and the Reload High and Low Byte
registers can be directly accessed.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
129
While writing a subregister, first write the subaddress to Timer Subaddress Register, then
write data to subregister0, subregister1, or subregister2. A read is the same as a write.
Table 69. Multi-Channel Timer Address Map
Address/Subaddress
Register/Subregister Name
Direct Access Register
FA0
Timer (Counter) High
FA1
Timer (Counter) Low
FA2
Timer Reload High
FA3
Timer Reload Low
FA4
Timer Subaddress
FA5
Subregister 0
FA6
Subregister 1
FA7
Subregister 2
Subregister 0
0
Timer Control 0
1
Channel Status 0
2
Channel A Capture/Compare High
3
Channel B Capture/Compare High
4
Channel C Capture/Compare High
5
Channel D Capture/Compare High
Subregister 1
0
Timer Control 1
1
Channel Status 1
2
Channel A Capture/Compare Low
3
Channel B Capture/Compare Low
4
Channel C Capture/Compare Low
5
Channel D Capture/Compare Low
Subregister 2
PS025016-1013
0
Reserved
1
Reserved
2
Channel A Control
3
Channel B Control
4
Channel C Control
5
Channel D Control
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
130
10.7.2. Multi-Channel Timer High and Low Byte Registers
The High and Low Byte (MCTH and MCTL) registers, shown in Table 70, contain the
current 16-bit Multi-Channel Timer count value.
Zilog does not recommend writing to the Multi-Channel Timer High and Low Byte
registers while the Multi-Channel Timer is enabled. If either or both of the Multi-Channel
Timer High or Low Byte registers are written during counting, the 8-bit written value is
placed in the counter (High and/or Low byte) at the next system clock edge. The counter
continues counting from the new value.
Table 70. Multi-Channel Timer High and Low Byte Registers (MCTH, MCTL)
Bit
7
6
5
4
Field
1
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
3
2
1
0
Address
FA0h
Bit
7
6
5
4
Field
MCTL
Reset
R/W
2
MCTH
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FA1h
Bit
Description
[7:0]
MCTH,
MCTL
Multi-Channel Timer High and Low Byte
These bytes contain the current 16-bit Multi-Channel Timer count value, {MCTH[7:0],
MCTL[7:0]}.
When the Multi-Channel Timer is enabled, a read from MCTH causes the value in MCTL
to be stored in a temporary holding register. A read from MCTL returns this temporary
register when the Multi-Channel Timer is enabled. When the Multi-Channel Timer is disabled, reads from MCTL read the register directory. The Multi-Channel Timer High and
Low Byte registers are not reset when TEN = 0.
10.7.3. Multi-Channel Timer Reload High and Low Byte
Registers
The Multi-Channel Timer Reload High and Low Byte (MCTRH and MCTRL) registerss,
shown in Table 71, store a 16-bit reload value, {MCTRH[7:0], MCTRL[7:0]}. When TEN
= 0, writes to this address update the register on the next clock cycle. When TEN = 1,
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
131
writes to this register are buffered and transferred into the register when the counter
reaches the end of the count cycle.
Prescaler Reload Value + 1
Modulo Mode Period = ---------------------------------------------------------------------------------------f MCTclk
2 Prescaler Reload Value
Up Down Mode Period = ----------------------------------------------------------------------------------f MCTclk
Table 71. Multi-Channel Timer Reload High and Low Byte Registers (MCTRH, MCTRL)
Bit
7
6
5
4
Field
0
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
3
2
1
0
FA2h
Bit
7
6
5
4
Field
MCTRL
Reset
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Bit
1
1
Address
R/W
2
MCTRH
Reset
R/W
3
FA3h
Description
[7:0]
Multi-Channel Timer Reload Register High and Low
MCTRH, These two bytes form the 16-bit reload value, {MCTRH[7:0], MCTRL[7:0]}. This value sets the
MCTRL Multi-Channel Timer period in Modulo and Up/Down Count modes.
The value written to the MCTRH is stored in a temporary holding register. When a write
to the MCTRL occurs, the temporary holding register value is written to the MCTRH.
This operation allows simultaneous updates of the 16-bit Multi-Channel Timer reload
value.
10.7.4. Multi-Channel Timer Subaddress Register
The Multi-Channel Timer Subaddress Register stores 3-bit subaddresses for subregisters.
These three bits are from MCTSAR[2:0], all other bits are reserved. When accessing subregister (writing or reading), set MCTSA right value first, then access subregister by writing or reading Subregisters 0, 1, or 2.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
132
Table 72. Multi-Channel Timer Subaddress Register (MCTSA)
Bit
7
6
5
4
Field
2
1
0
MCTSA
Reset
R/W
3
X
X
X
X
X
X
X
X
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FA4h
10.7.5. Multi-Channel Timer Subregister x (0, 1, or 2)
The Multi-Channel Timer subregisters 0, 1 or 2 store the 8-bit data write to subregister or
8-bit data read from subregister. The Multi-Channel Timer Subaddress Register selects the
subregister to be written to or read from.
Table 73. Multi-Channel Timer Subregister x (MCTSRx)
Bit
7
6
5
4
Field
2
1
0
MCTSRx
Reset
R/W
3
X
X
X
X
X
X
X
X
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FA5h, FA6h, FA7h
10.7.6. Multi-Channel Timer Control 0, Control 1 Registers
The Multi-Channel Timer Control registers (MCTCTL0, MCTCTL1) control MultiChannel Timer operation. Writes to the PRES field of the MCTCTL1 Register are
buffered when TEN = 1 and will not take effect until the next end of the cycle count
occurs.
Table 74. Multi-Channel Timer Control 0 Register (MCTCTL0)
Bit
7
6
5
Field
TCTST
CHST
TCIEN
Reset
0
0
0
0
0
0
0
0
R/W
R
R/W
R
R
R/W
R/W
R/W
R/W
Address
4
3
2
Reserved Reserved
1
0
TCLKS
See note.
Note: If a 00h is in the Subaddress Register, it is accessible through Subregister 0.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
133
Bit
Description
[7]
TCTST
Timer Count Status
This bit indicates if a timer count cycle is complete and is cleared by writing 1 to the bit and is
cleared when TEN = 0.
0 = Timer count cycle is not complete.
1 = Timer count cycle is complete.
[6]
CHST
Channel Status
This bit indicates if a channel Capture/Compare event occurred. This bit is the logical OR of
the CHyEF bits in the MCTCHS1 register. This bit is cleared when TEN=0.
0 = No channel capture/compare event has occurred.
1 = A channel capture/compare event has occurred. One or more of the CHDEF, CHCEF,
CHBEF and CHAEF bits in the MCTCHS1 register are set.
[5]
TCIEN
Timer Count Interrupt Enable
This bit enables generation of timer count interrupt. A timer count interrupt is generated
whenever the timer completes a count cycle: counting up to Reload Register value or counting
down to zero depending on whether the TIMER mode is Count Modulo or Count up/down.
0 = Timer Count Interrupt is disabled.
1 = Timer Count Interrupt is enabled.
[4:3]
Reserved; must be 0.
2:0
TCLKS
Timer Clock Source
000 = System Clock (Prescaling enabled)
001 = Reserved
010 = System Clock gated by active High Timer Input signal (Prescaling enabled).
011 = System Clock gated by active Low Timer Input signal (Prescaling enabled).
100 = Timer I/O pin input rising edge (Prescaler disabled).
101 = Timer I/O pin input falling edge (Prescaler disabled).
110 = Reserved.
111 = Reserved.
Note:
PS025016-1013
The input frequency of the Timer Input Signal must not exceed one-fourth the system
clock frequency.
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
134
Table 75. Multi-Channel Timer Control 1 Register (MCTCTL1)
Bit
7
6
Field
TEN
Reserved
Reset
0
0
0
0
0
0
0
0
R/W
R
R/W
R/W
R/W
R
R/W
R/W
R/W
Address
5
4
3
PRES
2
1
Reserved
0
TMODE
See note.
Note: If a 00h is in the Subaddress Register, it is accessible through Subregister 1.
Bit
Description
[7]
TEN
Timer Enable
0 = Timer is disabled and the counter is reset.
1 = Timer is enabled to count.
[6]
Reserved; must be 0.
[5:3]
PRES
Prescale Value
The system clock is divided by 2PRES, where PRES can be set from 0 to 7. The prescaling
operation is not applied when the alternate function input pin is selected as the timer clock
source.
000 = Divide by 1
001 = Divide by 2
010 = Divide by 4
011 = Divide by 8
100 = Divide by 16
101 = Divide by 32
110 = Divide by 64
111 = Divide by 128
[2]
Reserved; must be 0.
[1:0]
TMODE
Timer Mode
00 = Count Modulo: Timer Counts up to Reload Register value. Then it is reset to 0000h and
counting up resumes.
01 = Reserved.
10 = Count up/down: Timer Counts up to Reload and then counts down to 0000h. The count
up and count down cycle continues.
11 = Reserved.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
135
10.7.7. Multi-Channel Timer Channel Status 0 and Status 1
Registers
The Multi-Channel Timer Channel Status 0 and Status 1 registers (MCTCHS0,
MCTCHS1) indicate channel overruns and channel capture/compare events.
Table 76. Multi-Channel Timer Channel Status 0 Register (MCTCHS0)
Bit
7
6
Field
5
4
Reserved
3
2
1
0
CHDEO
CHCEO
CHBEO
CHAEO
Reset
0
0
0
0
0
0
0
0
R/W
R
R
R
R
R
R
R
R
Address
See note.
Note: If a 01h is in the Subaddress Register, it is accessible through Subregister 0.
Bit
Description
[7:4]
Reserved; must be 0.
[3:0]
CHyEO
Channel y Event Flag Overrun
This bit indicates that an overrun error has occurred. An overrun occurs when a new Capture/
Compare event occurs before the previous CHyEF bit is cleared. Clearing the associated
CHyEF bit in the MCTCHS1 register clears this bit. This bit is cleared when TEN=0 (TEN is the
MSB of MCTCTL1).
0 = No Overrun.
1 = Capture/Compare Event Flag Overrun
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
136
Table 77. Multi-Channel Timer Channel Status 1 Register (MCTCHS1)
Bit
7
6
Field
5
4
Reserved
3
2
1
0
CHDEF
CHCEF
CHBEF
CHAEF
Reset
0
0
0
0
0
0
0
0
R/W
R
R
R
R
R/W
R/W
R/W
R/W
Address
See note.
Note: If a 01h is in the Subaddress Register, it is accessible through Subregister 1.
Bit
Description
[7:4]
Reserved; must be 0.
[3:0]
CHyEF
Channel y Event Flag
This bit indicates if a Capture/Compare event occurred for this channel. Software can use this
bit to determine the channel(s) responsible for generating the Multi-Channel Timer channel
interrupt. This event flag is cleared by writing a 1 to the bit. These bits will be set when an
event occurs independent of the setting of the CHIEN bit. This bit is cleared when TEN=0 (TEN
is the MSB of MCTCTL1).
0 = No Capture/Compare Event occurred for this channel.
1 = A Capture/Compare Event occurred for this channel.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
137
10.7.8. Multi-Channel Timer Channel-y Control Registers
Each channel has a control register to enable the channel, select the input/output polarity,
enable channel interrupts and select the channel mode of operation.
Table 78. Multi-Channel Timer Channel Control Register (MCTCHyCTL)1
Bit
7
6
5
4
3
Field
CHEN
CHPOL
CHIEN
CHUE
Reserved
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R
R/W
R/W
R/W
R/W
Address
2
1
0
CHOP
See note 2.
Notes:
1. y = A, B, C, D.
2. If 02h, 03h, 04h and 05h are in the Subaddress Register, they are accessible through Subregister 2.
Bit
Description
[7]
CHEN
Channel Enable
0 = Channel is disabled.
1 = Channel is enabled.
[6]
CHPOL
Channel Input/Output Polarity
Operation of this bit is a function of the current operating method of the channel.
ONE-SHOT Operation
When the channel is disabled, the Channel Output signal is set to the value of this bit. When
the channel is enabled, the Channel Output signal toggles for one system clock on reaching
the Channel Capture/Compare Register value.
CONTINUOUS COMPARE Operation
When the channel is disabled, the Channel Output signal is set to the value of this bit. When
the channel is enabled, the Channel Output signal toggles (from Low to High or High to Low)
on reaching the Channel Capture/Compare Register value.
PWM OUTPUT Operation
0 = Channel Output is forced Low when the channel is disabled. When enabled, the Channel
Output is forced High on Channel Capture/Compare Register value match and forced Low
on reaching the Timer Reload Register value (modulo mode) or counting down through the
channel Capture/Compare register value (count up/down mode).
1 = Channel Output is forced Low when the channel is disabled. When enabled, the Channel
Output is forced High on Channel Capture/Compare Register value match and forced Low
on reaching the Timer Reload Register value (modulo mode) or counting down through the
channel Capture/Compare register value (count up/down mode).
CAPTURE Operation
0 = Count is captured on the rising edge of the Channel Input signal.
1 = Count is captured on the falling edge of the Channel Input signal.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
138
Bit
Description (Continued)
[5]
CHIEN
Channel Interrupt Enable
This bit enables generation of channel interrupt. A channel interrupt is generated whenever
there is a capture/compare event on the Timer Channel.
0 = Channel interrupt is disabled.
1 = Channel interrupt is enabled.
[4]
CHUE
Channel Update Enable
This bit determines whether writes to the Channel High and Low Byte registers are buffered
when TEN = 1. Writes to these registers are not buffered when TEN = 0 regardless of the value
of this bit.
0 = Writes to the Channel High and Low Byte registers are buffered when TEN = 1 and only
take affect on the next end of cycle count.
1 = Writes to the Channel High and Low Byte registers are not buffered when TEN = 1.
[3]
Reserved; must be 0.
[2:0]
CHOP
Channel Operation Method
This field determines the operating mode of the channel. For a detailed description of the
operating modes, see Count Up/Down Mode on page 123.
000 = One-Shot Compare operation.
001 = Continuous Compare operation.
010 = PWM Output operation.
011 = Capture operation.
100 – 111 = Reserved.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
139
10.7.9. Multi-Channel Timer Channel-y High and Low Byte
Registers
Each channel has a 16-bit capture/compare register defined here as the Channel-y High
and Low Byte registers. When the timer is enabled, writes to these registers are buffered
and loading of the registers is delayed until the next timer end count, unless CHUE = 1.
Table 79. Multi-Channel Timer Channel-y High Byte Registers (MCTCHyH)*
Bit
7
6
5
4
Field
2
1
0
CHyH
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
See note.
Note: If 02h, 03h, 04h and 05h are in the Subaddress Register, they are accessible through Subregister 0.
Bit
7
6
5
4
Field
2
1
0
CHyL
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Note: If 02h, 03h, 04h and 05h are in the Subaddress Register, they are accessible through Subregister 1.
Bit
Description
[7:0]
CHyH,
CHyL
Multi-Channel Timer Channel-y High and Low Bytes
During a compare operation, these two bytes, {CHyH[7:0], CHyL[7:0]}, form a 16-bit value that
is compared to the current 16-bit timer count. When a match occurs, the Channel Output
changes state. The Channel Output value is set by the TPOL bit in the Channel-y Control
subregister. During a capture operation, the current Timer Count is recorded in these two bytes
when the appropriate Channel Input transition occurs.
Note: *y = A, B, C, D.
PS025016-1013
PRELIMINARY
Multi-Channel Timer
Z8 Encore! XP® F1680 Series
Product Specification
140
Chapter 11. Watchdog Timer
The Watchdog Timer (WDT) function helps protect against corrupted or unreliable software and other system-level problems that can place the Z8 Encore! XP F1680 Series
MCU into unsuitable operating states. The WDT includes the following features:
•
•
•
On-chip RC oscillator
A selectable time-out response: Reset or System Exception
16-bit programmable time-out value
11.1. Operation
The WDT is a retriggerable one-shot timer that resets or interrupts the Z8 Encore! XP
F1680 Series when the WDT reaches its terminal count. The WDT uses its own dedicated
on-chip RC oscillator as its clock source. The WDT has only two modes of operation—
ON and OFF. After it is enabled, the WDT always counts and must be refreshed to prevent
a time-out. An enable can be performed by executing the WDT instruction or by writing
the WDT_AO option bit. When cleared to 0, the WDT_AO bit enables the WDT to
operate continuously, even if a WDT instruction has not been executed.
To minimize power consumption, the RC oscillator can be disabled. The RC oscillator is
disabled by clearing the WDTEN bit in the Oscillator Control 0 Register (OSCCTL0)1. If
the RC oscillator is disabled, the WDT will not operate.
The WDT is a 16-bit reloadable downcounter that uses two 8-bit registers in the eZ8 CPU
register space to set the reload value. The nominal WDT time-out period is calculated
using the following equation:
WDT Reload Value
WDT Time– Out Period ms = ------------------------------------------------------10
In the above equation, the WDT reload value is computed using {WDTH[7:0],
WDTL[7:0]} and the typical Watchdog Timer RC Oscillator frequency is 10 kHz. Users
must consider system requirements when selecting the time-out delay. Table 80 indicates
the approximate time-out delays for the default and maximum WDT reload values.
1. For details about this register, see Table 170 on page 319.
PS025016-1013
PRELIMINARY
Watchdog Timer
Z8 Encore! XP® F1680 Series
Product Specification
141
Table 80. Watchdog Timer Approximate Time-Out Delays
Approximate Time-Out Delay
(with 10 kHz Typical WDT Oscillator Frequency)
WDT Reload
Value
(Hex)
WDT Reload
Value (Decimal)
Typical
Description
0400
1024
102 ms
Reset default value time-out delay.
FFFF
65,536
6.55 s
Maximum time-out delay.
11.1.1. Watchdog Timer Refresh
When first enabled, the WDT is loaded with the value in the WDT Reload registers. The
WDT then counts down to 0000h unless a WDT instruction is executed by the eZ8 CPU.
Execution of the WDT instruction causes the downcounter to be reloaded with the WDT
reload value stored in the WDT Reload registers. Counting resumes following the reload
operation.
When the eZ8 CPU is operating in DEBUG Mode (through the OCD), the WDT is continuously refreshed to prevent unnecessary WDT time-outs.
11.1.2. Watchdog Timer Time-Out Response
The WDT times out when the counter reaches 0000h. A time-out of the WDT generates
either a system exception or a Reset. The WDT_RES option bit determines the time-out
response of the WDT. For information about programming the WDT_RES option bit, see
the Flash Option Bits section on page 276.
11.1.2.1. WDT System Exception in Normal Operation
If it is configured to generate a system exception when a time-out occurs, the WDT issues
an exception request to the interrupt controller. The eZ8 CPU responds to the request by
fetching the System Exception vector and executing code from the vector address. After
time-out and system exception generation, the WDT is reloaded automatically and continues counting.
11.1.2.2. WDT System Exception in STOP Mode
The WDT automatically initiates a Stop Mode Recovery and generates a system exception
request if configured to generate a system exception when a time-out occurs and the CPU
is in STOP Mode. Both the WDT status bit and the stop bit in the Reset Status Register are
set to 1 following a WDT time-out in STOP Mode.
Upon completion of the Stop Mode Recovery, the eZ8 CPU responds to the system exception request by fetching the System Exception vector and executing code from the vector
address.
PS025016-1013
PRELIMINARY
Watchdog Timer
Z8 Encore! XP® F1680 Series
Product Specification
142
11.1.2.3. WDT Reset in Normal Operation
The WDT forces the device into the Reset state if it is configured to generate a Reset when
a time-out occurs; the WDT status bit is set to 1 (for details, see the Reset Status Register
section on page 40). For more information about Reset and the WDT status bit, see the
Reset, Stop Mode Recovery and Low-Voltage Detection section on page 31. Following a
Reset sequence, the WDT Counter is initialized with its reset value.
11.1.2.4. WDT Reset in STOP Mode
If enabled in STOP Mode and configured to generate a Reset when a time-out occurs and
the device is in STOP Mode, the WDT initiates a Stop Mode Recovery. Both the WDT
status bit and the stop bit in the Reset Status Register (RSTSTAT) are set to 1 following a
WDT time-out in STOP Mode. For more information, see the Reset, Stop Mode Recovery
and Low-Voltage Detection section on page 31.
11.1.3. Watchdog Timer Reload Unlock Sequence
Writing the unlock sequence to the Watchdog Timer Reload High (WDTH) Register
address unlocks the two Watchdog Timer Reload registers (WDTH and WDTL) to allow
changes to the time-out period. These write operations to the WDTH Register address
produce no effect on the bits in the WDTH Register. The locking mechanism prevents
unwarranted writes to the Reload registers. The following sequence is required to unlock
the Watchdog Timer Reload registers (WDTH and WDTL) for write access.
1. Write 55h to the Watchdog Timer Reload High Register (WDTH).
2. Write AAh to the Watchdog Timer Reload High Register (WDTH).
3. Write the appropriate value to the Watchdog Timer Reload High Register (WDTH).
4. Write the appropriate value to the Watchdog Timer Reload Low Register (WDTL).
After this write occurs, the Watchdog Timer Reload registers are again locked.
All steps of the WDT Reload Unlock sequence must be written in the sequence defined
above. The values in these WDT Reload registers are loaded into the counter every time a
WDT instruction is executed.
11.2. Watchdog Timer Register Definitions
The two Watchdog Timer Reload registers (WDTH and WDTL) are described in the
following tables.
PS025016-1013
PRELIMINARY
Watchdog Timer
Z8 Encore! XP® F1680 Series
Product Specification
143
11.2.1. Watchdog Timer Reload High and Low Byte
Registers
The Watchdog Timer Reload High and Low Byte (WDTH, WDTL) registers, shown in
Tables 81 and 82, form the 16-bit reload value that is loaded into the Watchdog Timer
when a WDT instruction executes; this 16-bit reload value is {WDTH[7:0], WDTL[7:0]}.
Writing to these registers following the unlock sequence sets the appropriate reload value.
Reading from these registers returns the current WDT count value.
Table 81. Watchdog Timer Reload High Byte Register (WDTH = FF2h)
Bit
7
6
5
4
Field
2
1
0
WDTH
Reset
R/W
3
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FF2h
Table 82. Watchdog Timer Reload Low Byte Register
Bit
7
6
5
4
Field
3
2
1
0
WDTL
Reset
R/W
(WDTL = FF3h)
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
FF3h
Bit
Description
[7:0]
WDTH,
WDTL
Watchdog Timer Reload High and Low Bytes
WDTH: The WDT Reload High Byte is the most significant byte, or bits [15:8] of the 16-bit WDT
reload value.
WDTL: The WDT Reload Low Byte is the least significant byte, or bits [7:0] of the 16-bit WDT
reload value.
PS025016-1013
PRELIMINARY
Watchdog Timer
Z8 Encore! XP® F1680 Series
Product Specification
144
Chapter 12. LIN-UART
The Local Interconnect Network Universal Asynchronous Receiver/Transmitter (LINUART) is a full-duplex communication channel capable of handling asynchronous data
transfers in standard UART applications and providing LIN protocol support. The LINUART is a superset of the standard Z8 Encore!® UART, providing all its standard features,
LIN protocol support and a digital noise filter.
LIN-UART includes the following features:
•
•
•
•
8-bit asynchronous data transfer
•
•
•
Separate transmit and receive interrupts
•
•
Driver Enable output for external bus transceivers
•
Configuring digital-noise filter on Receive Data line
Selectable even- and odd-parity generation and checking
Option of 1 or 2 stop bits
Selectable MULTIPROCESSOR (9-bit) Mode with three configurable interrupt
schemes
Framing, parity, overrun and break detection
16-bit baud rate generator (BRG) which can function as a general purpose timer with
interrupt
LIN protocol support for both MASTER and SLAVE modes:
– Break generation and detection
– Selectable Slave Autobaud
– Check Tx versus Rx data when sending
12.1. LIN-UART Architecture
The LIN-UART consists of three primary functional blocks: transmitter, receiver and
baud-rate generator. The LIN-UART’s transmitter and receiver function independently but
use the same baud rate and data format. The basic UART operation is enhanced by the
Noise Filter and IrDA blocks. Figure 19 displays the LIN-UART architecture.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
145
Figure 19. LIN-UART Block Diagram
12.1.1. Data Format for Standard UART Modes
The LIN-UART always transmits and receives data in an 8-bit data format with the least
significant bit first. An even-or-odd parity bit or multiprocessor address/data bit can be
optionally added to the data stream. Each character begins with an active Low start bit and
ends with either 1 or 2 active High stop bits. Figures 20 and 21 display the asynchronous
data format employed by the LIN-UART without parity and with parity, respectively.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
146
Figure 20. LIN-UART Asynchronous Data Format without Parity
Figure 21. LIN-UART Asynchronous Data Format with Parity
12.1.2. Transmitting Data using the Polled Method
Observe the following steps to transmit data using the polled-operating method:
1. Write to the LIN-UART Baud Rate High and Low Byte registers to set the appropriate
baud rate.
2. Enable the LIN-UART pin functions by configuring the associated GPIO port pins for
alternate-function operation.
3. If MULTIPROCESSOR Mode is appropriate, write to the LIN-UART Control 1 Register to enable MULTIPROCESSOR (9-bit) Mode functions.
4. Set the MULTIPROCESSOR Mode Select bit (MPEN) to enable MULTIPROCESSOR Mode.
5. Write to the LIN-UART Control 0 Register to:
a. Set the Transmit Enable bit (TEN) to enable the LIN-UART for data transmission.
b. If parity is appropriate and MULTIPROCESSOR Mode is not enabled, set the parity enable bit (PEN) and select either even-or-odd parity (PSEL).
c. Set or clear the CTSE bit to enable or disable control from the remote receiver
using the CTS pin.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
147
6. Check the TDRE bit in the LIN-UART Status 0 Register to determine if the Transmit
Data Register is empty (indicated by a 1); if empty, continue to Step 7. If the Transmit
Data Register is full (indicated by a 0), continue to monitor the TDRE bit until the
Transmit Data Register becomes available to receive new data.
7. If operating in MULTIPROCESSOR Mode, write to the LIN-UART Control 1 Register to select the outgoing address bit.
– Set the Multiprocessor Bit Transmitter (MPBT) if sending an address byte; clear it
if sending a data byte.
8. Write the data byte to the LIN-UART Transmit Data Register. The transmitter automatically transfers the data to the Transmit Shift Register and transmits the data.
9. If appropriate – and if MULTIPROCESSOR Mode is enabled – changes can be made
to the Multiprocessor Bit Transmitter (MPBT) value.
10. To transmit additional bytes, return to Step 5.
12.1.3. Transmitting Data Using Interrupt-Driven Method
The LIN-UART Transmitter interrupt indicates the availability of the Transmit Data
Register to accept new data for transmission. Observe the following steps to configure the
LIN-UART for interrupt-driven data transmission:
1. Write to the LIN-UART Baud Rate High and Low Byte registers to set the appropriate
baud rate.
2. Enable the LIN-UART pin functions by configuring the associated GPIO port pins for
alternate function operation.
3. Execute a DI instruction to disable interrupts.
4. Write to the interrupt control registers to enable the LIN-UART Transmitter interrupt
and set the appropriate priority.
5. If MULTIPROCESSOR Mode is appropriate, write to the LIN-UART Control 1 Register to enable MULTIPROCESSOR (9-bit) Mode functions.
6. Set the MULTIPROCESSOR Mode Select bit (MPEN) to enable MULTIPROCESSOR Mode.
7. Write to the LIN-UART Control 0 Register to:
a. Set the transmit enable bit (TEN) to enable the LIN-UART for data transmission.
b. If MULTIPROCESSOR Mode is not enabled, then enable parity if appropriate
and select either even or odd parity.
c. Set or clear the CTSE bit to enable or disable control from the remote receiver via
the CTS pin.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
148
8. Execute an EI instruction to enable interrupts.
The LIN-UART is now configured for interrupt-driven data transmission. Because the
LIN-UART Transmit Data Register is empty, an interrupt is generated immediately. When
the LIN-UART Transmit interrupt is detected and there is transmit data ready to send, the
associated interrupt service routine (ISR) performs the following:
1. If in MULTIPROCESSOR Mode, writes to the LIN-UART Control 1 Register to
select the outgoing address bit:
– Sets the Multiprocessor Bit Transmitter (MPBT) if sending an address byte, clears
it if sending a data byte.
2. Writes the data byte to the LIN-UART Transmit Data Register. The transmitter automatically transfers the data to the Transmit Shift Register and transmits the data.
3. Executes the IRET instruction to return from the interrupt-service routine and wait for
the Transmit Data Register to again become empty.
If a transmit interrupt occurs and there is no transmit data ready to send, the interrupt service routine executes the IRET instruction. When the application does have data to transmit, software can set the appropriate interrupt request bit in the Interrupt Controller to
initiate a new transmit interrupt. Another alternative would be for the software to write the
data to the Transmit Data Register instead of invoking the interrupt service routine.
12.1.4. Receiving Data Using Polled Method
Observe the following steps to configure the LIN-UART for polled data reception:
1. Write to the LIN-UART Baud Rate High and Low Byte registers to set the appropriate
baud rate.
2. Enable the LIN-UART pin functions by configuring the associated GPIO port pins for
alternate function operation.
3. If MULTIPROCESSOR Mode is appropriate, write to the LIN-UART Control 1 Register to enable MULTIPROCESSOR (9-bit) Mode functions.
4. Write to the LIN-UART Control 0 Register to:
a. Set the Receive Enable bit (REN) to enable the LIN-UART for data reception.
b. If MULTIPROCESSOR Mode is not enabled, then enable parity (if appropriate),
and select either even or odd parity.
5. Check the RDA bit in the LIN-UART Status 0 Register to determine if the Receive
Data Register contains a valid data byte (indicated by a 1). If RDA is set to 1 to indicate available data, continue to Step 6. If the Receive Data Register is empty (indicated by a 0), continue to monitor the RDA bit that is awaiting reception of the valid
data.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
149
6. Read data from the LIN-UART Receive Data Register. If operating in MULTIPROCESSOR (9-bit) Mode, further actions may be required depending on the MULTIPROCESSOR Mode bits MPMD[1:0].
7. Return to Step 5 to receive additional data.
12.1.5. Receiving Data Using the Interrupt-Driven Method
The LIN-UART Receiver interrupt indicates the availability of new data (as well as error
conditions). Observe the following steps to configure the LIN-UART receiver for
interrupt-driven operation:
1. Write to the LIN-UART Baud Rate High and Low Byte registers to set the appropriate
baud rate.
2. Enable the LIN-UART pin functions by configuring the associated GPIO port pins for
alternate function operation.
3. Execute a DI instruction to disable interrupts.
4. Write to the Interrupt Control registers to enable the LIN-UART Receiver interrupt
and set the appropriate priority.
5. Clear the LIN-UART Receiver interrupt in the applicable Interrupt Request Register.
6. Write to the LIN-UART Control 1 Register to enable MULTIPROCESSOR (9-bit)
Mode functions, if appropriate.
a. Set the MULTIPROCESSOR Mode Select bit (MPEN) to enable MULTIPROCESSOR Mode.
b. Set the MULTIPROCESSOR Mode Bits, MPMD[1:0] to select the appropriate
address matching scheme.
c. Configure the LIN-UART to interrupt on received data and errors or errors only
(interrupt on errors only is unlikely to be useful for Z8 Encore! devices without a
DMA block).
7. Write the device address to the Address Compare Register (automatic MULTIPROCESSOR Modes only).
8. Write to the LIN-UART Control 0 Register to:
a. Set the receive enable bit (REN) to enable the LIN-UART for data reception.
b. If MULTIPROCESSOR Mode is not enabled, then enable parity (if appropriate)
and select either even or odd parity.
9. Execute an EI instruction to enable interrupts.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
150
The LIN-UART is now configured for interrupt-driven data reception. When the LINUART Receiver interrupt is detected, the associated ISR performs the following:
1. Checks the LIN-UART Status 0 Register to determine the source of the interrupt-error,
break, or received data.
2. If the interrupt is due to data available, read the data from the LIN-UART Receive
Data Register. If operating in MULTIPROCESSOR (9-bit) Mode, further actions may
be required depending on the MULTIPROCESSOR Mode bits MPMD[1:0].
3. Execute the IRET instruction to return from the ISR and await more data.
12.1.6. Clear To Send Operation
The Clear To Send (CTS) pin, if enabled by the CTSE bit of the LIN-UART Control 0
Register performs flow control on the outgoing transmit data stream. The Clear To Send
(CTS) input pin is sampled one system clock before any new character transmission
begins. To delay transmission of the next data character, an external receiver must reduce
CTS at least one system clock cycle before a new data transmission begins. For multiple
character transmissions, this operation is typically performed during the stop bit
transmission. If CTS stops in the middle of a character transmission, the current character
is sent completely.
12.1.7. External Driver Enable
The LIN-UART provides a Driver Enable (DE) signal for off-chip bus transceivers. This
feature reduces the software overhead associated using a GPIO pin to control the transceiver when communicating on a multitransceiver bus, such as RS-485.
Driver Enable is a programmable polarity signal which envelopes the entire transmitted
data frame including parity and stop bits as illustrated in Figure 22. The Driver Enable
signal asserts when a byte is written to the LIN-UART Transmit Data Register. The Driver
Enable signal asserts at least one bit period and no greater than two bit periods before the
start bit is transmitted. This allows a set-up time to enable the transceiver. The Driver
Enable signal deasserts one system clock period after the last stop bit is transmitted. This
system clock delay allows both time for data to clear the transceiver before disabling it, as
well as the ability to determine if another character follows the current character. In the
event of back-to-back characters (new data must be written to the Transmit Data Register
before the previous character is completely transmitted) the DE signal is not deasserted
between characters. The DEPOL bit in the LIN-UART Control Register 1 sets the polarity
of the Driver Enable signal.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
151
Figure 22. LIN-UART Driver Enable Signal Timing with One Stop Bit and Parity
The Driver Enable to start bit set-up time is calculated as follows:
1
Baud Rate (Hz)
≤
DE to Start Bit Set-up Time(s)
≤
2
Baud Rate (Hz)
12.1.8. LIN-UART Special Modes
The special modes of the LIN-UART are:
•
•
MULTIPROCESSOR Mode
LIN Mode
The LIN-UART features a common control register (Control 0) that has a unique register
address and several mode-specific control registers (Multiprocessor Control, Noise Filter
Control and LIN Control) that share a common register address (Control 1). When the
Control 1 address is read or written, the MSEL[2:0] (Mode Select) field of the Mode
Select and Status Register determines which physical register is accessed. Similarly, there
are mode-specific status registers, one of which is returned when the Status 0 Register is
read depending on the MSEL field.
12.1.9. MULTIPROCESSOR Mode
The LIN-UART features a MULTIPROCESSOR (9-bit) Mode that uses an extra (9th) bit
for selective communication when a number of processors share a common UART bus. In
MULTIPROCESSOR Mode (also referred to as 9-bit mode), the multiprocessor bit (MP)
is transmitted immediately following the 8 bits of data and immediately preceding the stop
bit(s) as displayed in Figure 23.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
152
Figure 23. LIN-UART Asynchronous MULTIPROCESSOR Mode Data Format
In MULTIPROCESSOR (9-bit) Mode, the Parity bit location (9th bit) becomes the
Multiprocessor control bit. The LIN-UART Control 1 and Status 1 registers provide MULTIPROCESSOR (9-bit) Mode control and status information. If an automatic address
matching scheme is enabled, the LIN-UART Address Compare register holds the network
address of the device.
12.1.9.1. MULTIPROCESSOR Mode Receive Interrupts
When MULTIPROCESSOR (9-bit) Mode is enabled, the LIN-UART processes only
frames addressed to it. To determine whether a frame of data is addressed to the LINUART can be made in hardware, software or a combination of the two, depending on the
multiprocessor configuration bits. In general, the address compare feature reduces the load
on the CPU, because it is not required to access the LIN-UART when it receives data
directed to other devices on the multinode network. The following three MULTIPROCESSOR Modes are available in hardware:
•
•
•
Interrupt on all address bytes
Interrupt on matched address bytes and correctly framed data bytes
Interrupt only on correctly framed data bytes
These modes are selected with MPMD[1:0] in the LIN-UART Control 1 Register. For all
MULTIPROCESSOR Modes, bit MPEN of the LIN-UART Control 1 Register must be set
to 1.
The first scheme is enabled by writing 01b to MPMD[1:0]. In this mode, all incoming
address bytes cause an interrupt, while data bytes never cause an interrupt. The interrupt
service routine checks the address byte which triggered the interrupt. If it matches the
LIN-UART address, the software clears MPMD[0]. At this point, each new incoming byte
interrupts the CPU. The software determines the end of the frame and checks for it by
reading the MPRX bit of the LIN-UART Status 1 Register for each incoming byte. If
MPRX = 1, a new frame begins. If the address of this new frame is different from the LINUART’s address, then MPMD[0] must be set to 1 by software, causing the LIN-UART
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
153
interrupts to go inactive until the next address byte. If the new frame’s address matches the
LIN-UART’s, then the data in the new frame is also processed.
The second scheme is enabled by setting MPMD[1:0] to 10B and writing the LIN-UART’s
address into the LIN-UART Address Compare Register. This mode introduces more
hardware control, interrupting only on frames that match the LIN-UART’s address. When
an incoming address byte does not match the LIN-UART’s address, it is ignored. All
successive data bytes in this frame are also ignored. When a matching address byte occurs,
an interrupt is issued and further interrupts occur on each successive data byte. The first
data byte in the frame has NEWFRM=1 in the LIN-UART Status 1 Register. When the
next address byte occurs, the hardware compares it to the LIN-UART’s address. If there is
a match, the interrupt occurs and the NEWFRM bit is set to the first byte of the new frame.
If there is no match, the LIN-UART ignores all incoming bytes until the next address
match.
The third scheme is enabled by setting MPMD[1:0] to 11B and by writing the LINUART’s address into the LIN-UART Address Compare Register. This mode is identical to
the second scheme, except that there are no interrupts on address bytes. The first data byte
of each frame remains accompanied by a NEWFRM assertion.
12.1.10. LIN Protocol Mode
The Local Interconnect Network (LIN) protocol as supported by the LIN-UART module is
defined in rev 2.0 of the LIN Specification Package. The LIN protocol specification
covers all aspects of transferring information between LIN Master and Slave devices using
message frames including error detection and recovery, SLEEP Mode and wake-up from
SLEEP Mode. The LIN-UART hardware in LIN mode provides character transfers to
support the LIN protocol including break transmission and detection, wake-up
transmission and detection and slave autobauding. Part of the error detection of the LIN
protocol is for both master and slave devices to monitor their receive data when
transmitting. If the receive and transmit data streams do not match, the LIN-UART asserts
the PLE bit (physical layer error bit in Status 0 Register). The message frame time-out
aspect of the protocol depends on software requiring the use of an additional general
purpose timer. The LIN mode of the LIN-UART does not provide any hardware support
for computing/verifying the checksum field or verifying the contents of the identifier field.
These fields are treated as data and are not interpreted by hardware. The checksum
calculation/verification can easily be implemented in software via the ADC (Add with
Carry) instruction.
The LIN bus contains a single Master and one or more Slaves. The LIN master is
responsible for transmitting the message frame header which consists of the Break, Synch
and Identifier fields. Either the master or one of the slaves transmits the associated
response section of the message which consists of data characters followed by a checksum
character.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
154
In LIN mode, the interrupts defined for normal UART operation still apply with the
following changes:
•
A Parity Error (the PE bit in the Status 0 Register) is redefined as the Physical Layer
Error (PLE) bit. The PLE bit indicates that receive data does not match transmit data
when the LIN-UART is transmitting. This definition applies to both Master and Slave
operating modes.
•
The Break Detect interrupt (BRKD bit in Status 0 Register) indicates when a Break is
detected by the slave (break condition for at least 11 bit times). Software can use this
interrupt to start a timer checking for message frame time-out. The duration of the
break can be read in the RxBreakLength[3:0] field of the Mode Select and Status Register.
•
The Break Detect interrupt (BRKD bit in Status 0 Register) indicates when a wake-up
message has been received, if the LIN-UART is in LIN SLEEP state.
•
In LIN SLAVE Mode, if the BRG counter overflows while measuring the autobaud period (from the start bit to the beginning of bit 7 of the autobaud character), an Overrun
Error is indicated (OE bit in the Status 0 Register). In this case, software sets the LINSTATE field back to 10b, where the slave ignores the current message and waits for
the next break. The Baud Reload High and Low registers are not updated by hardware
if this autobaud error occurs. The OE bit is also set if a data overrun error occurs.
12.1.10.1. LIN System Clock Requirements
The LIN Master provides the timing reference for the LIN network and is required to have
a clock source with a tolerance of ±0.5%. A slave with autobaud capability is required to
have a baud clock matching the master oscillator within ±14%. The slave nodes autobaud
to lock onto the master timing reference with an accuracy of ±2%. If a slave does not
contain autobaud capability, it must include a baud clock which deviates from the masters
by not more than ±1.5%. These accuracy requirements must include the effects such as
voltage and temperature drift during operation.
Before sending/receiving messages, the Baud Reload High/Low registers must be
initialized. Unlike standard UART modes, the Baud Reload High/Low registers must be
loaded with the baud interval rather than 1/16 of the baud interval.
In order to autobaud with the required accuracy, the LIN SLAVE system clock must be at
least 100 times the baud rate.
12.1.10.2. LIN Mode Initialization and Operation
The LIN protocol mode is selected by setting either the LIN Master (LMST) or LIN
SLAVE (LSLV) and optionally (for the LIN SLAVE) the Autobaud Enable (ABEN) bits
in the LIN Control Register. To access the LIN Control Register, the Mode Select (MSEL)
field of the LIN-UART Mode Select/Status Register must be equal to 010B. The LIN-
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
155
UART Control 0 Register must be initialized with TEN = 1, REN = 1 and all other bits =
0.
In addition to the LMST, LSLV and ABEN bits in the LIN Control Register, a
LinState[1:0] field exists which defines the current state of the LIN logic. This field is
initially set by software. In the LIN SLAVE Mode, the LinState field is updated by
hardware as the slave moves through the Wait For Break, AutoBaud and Active states.
12.1.10.3. LIN MASTER Mode Operation
LIN MASTER Mode is selected by setting LMST = 1, LSLV = 0, ABEN = 0 and LinState[1:0] = 11B. If the LIN bus protocol indicates the bus is required go into the LIN
SLEEP state, the LinState[1:0] bits must be set to 00B by software.
The break is the first part of the message frame transmitted by the master, consisting of at
least 13 bit periods of logical zero on the LIN bus. During initialization of the LIN master,
the duration (in bit times) of the break is written to the TxBreakLength field of the LIN
Control Register. The transmission of the break is performed by setting the SBRK bit in
the Control 0 Register. The LIN-UART starts the break after the SBRK bit is set and any
character transmission currently underway has completed. The SBRK bit is deasserted by
hardware until the break is completed.
If it is necessary to generate a break longer than 15 bit times, the SBRK bit can be used in
normal UART mode where software times the duration of the break.
The Synch character is transmitted by writing a 55h to the Transmit Data Register (TDRE
must = 1 before writing). The Synch character is not transmitted by the hardware until the
break is complete.
The identifier character is transmitted by writing the appropriate value to the Transmit
Data Register (TDRE must = 1 before writing).
If the master is sending the response portion of the message, these data and checksum
characters are written to the Transmit Data Register when the TDRE bit asserts. If the
Transmit Data Register is written after TDRE asserts, but before TXE asserts, the
hardware inserts one or two stop bits between each character as determined by the stop bit
in the Control 0 Register. Additional idle time occurs between characters, if TXE asserts
before the next character is written.
If the selected slave is sending the response portion of the frame to the master, each
receive byte will be signalled by the receive data interrupt (RDA bit will be set in the Status 0 Register). If the selected slave is sending the response to a different slave, the master
can ignore the response characters by deasserting the REN bit in the Control 0 Register
until the frame time slot is completed.
12.1.10.4. LIN SLEEP Mode
While the LIN bus is in the sleep state, the CPU can either be in low power STOP Mode,
in HALT Mode, or in normal operational state. Any device on the LIN bus can issue a
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
156
Wake-up message if it requires the master to initiate a LIN message frame. Following the
Wake-up message, the master wakes up and initiates a new message. A Wake-up message
is accomplished by pulling the bus Low for at least 250 µs but less than 5 ms. Transmitting a 00h character is one way to transmit the Wake-up message.
If the CPU is in STOP Mode, the LIN-UART is not active and the Wake-up message must
be detected by a GPIO edge detect Stop Mode Recovery. The duration of the Stop Mode
Recovery sequence can preclude making an accurate measurement of the Wake-up message duration.
If the CPU is in HALT or OPERATIONAL mode, the LIN-UART (if enabled) times the
duration of the Wake-up and provides an interrupt following the end of the break sequence
if the duration is ≥ 3 bit times. The total duration of the Wake-up message in bit times can
be obtained by reading the RxBreakLength field in the Mode Select and Status register.
After a Wake-up message has been detected, the LIN-UART can be placed (by software)
either into LIN Master or LIN Slave Wait for Break states as appropriate. If the break
duration exceeds 15 bit times, the RxBreakLength field contains the value Fh. If the LINUART is disabled, Wake-up message is detected via a port pin interrupt and timed by software. If the device is in STOP Mode, the High to Low transition on the port pin will bring
the device out of STOP Mode.
The LIN Sleep state is selected by software setting LinState[1:0] = 00. The decision to
move from an active state to sleep state is based on the LIN messages as interpreted by
software.
12.1.10.5. LIN Slave Operation
LIN SLAVE Mode is selected by setting LMST = 0, LSLV = 1, ABEN = 1 or 0 and
LinState[1:0] = 01b (Wait for Break state). The LIN slave detects the start of a new
message by the break which appears to the Slave as a break of at least 11 bit times in
duration. The LIN-UART detects the break and generates an interrupt to the CPU. The
duration of the break is observable in the RxBreakLength field of the Mode Select and
Status register. A break of less than 11 bit times in duration does not generate a break
interrupt when the LIN-UART is in Wait for Break state. If the break duration exceeds 15
bit times, the RxBreakLength field contains the value Fh.
Following the break, the LIN-UART hardware automatically transits to the Autobaud
state, where it autobauds by timing the duration of the first 8 bit times of the Synch
character as defined in the LIN standard. The duration of the autobaud period is measured
by the BRG Counter which will update every 8th system clock cycle between the start bit
and the beginning of bit 7 of the autobaud sequence. At the end of the autobaud period, the
duration measured by the BRG counter (auto baud period divided by 8) is automatically
transferred to the Baud Reload High and Low registers if the ABEN bit of the LIN control
register is set. If the BRG Counter overflows before reaching the start of bit 7 in the
autobaud sequence the Autobaud Overrun Error interrupt occurs, the OE bit in the Status 0
Register is set and the Baud Reload registers are not updated. To autobaud within 2% of
the master’s baud rate, the slave system clock must be a minimum of 100 times the baud
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
157
rate. To avoid an autobaud overrun error, the system clock must not be greater than 219
times the baud rate (16 bit counter following 3-bit prescaler when counting the 8 bit times
of the Autobaud sequence).
Following the Synch character, the LIN-UART hardware transits to the Active state, in
which the identifier character is received and the characters of the response section of the
message are sent or received. The slave remains in this Active state until a break is
received or software forces a state change. After it is in an Active state (i.e., autobaud has
completed), a break of 10 or more bit times is recognized and causes a transition to the
Autobaud state.
If the identifier character indicates that this slave device is not participating in the
message, software sets the LinState[1:0] = 01b (Wait for Break state) to ignore the rest of
the message. No further receive interrupts will occur until the next break.
12.1.11. LIN-UART Interrupts
The LIN-UART features separate interrupts for the transmitter and receiver. In addition,
when the LIN-UART primary functionality is disabled, the Baud Rate Generator can also
function as a basic timer with interrupt capability.
12.1.11.1. Transmitter Interrupts
The transmitter generates a single interrupt when the Transmit Data Register Empty bit
(TDRE) is set to 1. This indicates that the transmitter is ready to accept new data for
transmission. The TDRE interrupt occurs when the transmitter is initially enabled and
after the Transmit Shift Register has shifted out the first bit of a character. At this point,
the Transmit Data Register can be written with the next character to send. This provides 7
bit periods of latency to load the Transmit Data Register before the Transmit Shift Register
completes shifting the current character. Writing to the LIN-UART Transmit Data Register
clears the TDRE bit to 0.
12.1.11.2. Receiver Interrupts
The receiver generates an interrupt when any one of the following occurs:
•
PS025016-1013
A data byte has been received and is available in the LIN-UART Receive Data Register. This interrupt can be disabled independent of the other receiver interrupt sources
via the RDAIRQ bit (this feature is useful in devices which support DMA). The received data interrupt occurs after the receive character has been placed in the Receive
Data Register. Software must respond to this received data available condition before
the next character is completely received to avoid an overrun error.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
158
Note: In MULTIPROCESSOR Mode (MPEN=1), the receive-data interrupts are dependent on
the multiprocessor configuration and the most recent address byte.
•
•
•
•
A break is received
A Receive Data Overrun or LIN Slave Autobaud Overrun Error is detected
A Data Framing Error is detected
A Parity Error is detected (physical layer error in LIN mode)
12.1.11.3. LIN-UART Overrun Errors
When an overrun error condition occurs, the LIN-UART prevents overwriting of the valid
data currently in the Receive Data Register. The Break Detect and Overrun status bits are
not displayed until after the valid data has been read.
After the valid data has been read, the OE bit of the Status 0 register is updated to indicate
the overrun condition (and Break Detect, if applicable). The RDA bit is set to 1 to indicate
that the Receive Data Register contains a data byte. However, because the overrun error
occurred, this byte cannot contain valid data and must be ignored. The BRKD bit indicates
if the overrun is caused by a break condition on the line. After reading the status byte indicating an overrun error, the Receive Data Register must be read again to clear the error bits
in the LIN-UART Status 0 Register.
In LIN mode, an Overrun Error is signalled for receive-data overruns as described above
and in the LIN Slave if the BRG Counter overflows during the autobaud sequence (the
ATB bit will also be set in this case). There is no data associated with the autobaud overflow interrupt; however the Receive Data Register must be read to clear the OE bit. In this
case, software must write a 10B to the LinState field, forcing the LIN slave back to a Wait
for Break state.
12.1.11.4. LIN-UART Data- and Error-Handling Procedure
Figures 24 displays the recommended procedure for use in LIN-UART receiver interrupt
service routines.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
159
Figure 24. LIN-UART Receiver Interrupt Service Routine Flow
12.1.11.5. Baud Rate Generator Interrupts
If the BRGCTL bit of the Multiprocessor Control Register (LIN-UART Control 1 Register
with MSEL = 000b) is set and the REN bit of the Control 0 Register is 0. The LIN-UART
Receiver interrupt asserts when the LIN-UART Baud Rate Generator reloads. This action
allows the Baud Rate Generator to function as an additional counter, if the LIN-UART
receiver functionality is not employed. The transmitter can be enabled in this mode.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
160
12.1.12. LIN-UART Baud Rate Generator
The LIN-UART Baud Rate Generator creates a lower frequency baud rate clock for data
transmission. The input to the Baud Rate Generator is the system clock. The LIN-UART
Baud Rate High and Low Byte registers combine to create a 16-bit baud rate divisor value
(BRG[15:0]) that sets the data-transmission rate (baud rate) of the LIN-UART. The LINUART data rate for normal UART operation is calculated using the following equation:
System Clock Frequency (Hz)
UART Data Rate (bits/s)
=
16 x UART Baud Rate Divisor Value
The LIN-UART data rate for LIN mode UART operation is calculated using the following
equation:
System Clock Frequency (Hz)
UART Data Rate (bits/s)
=
UART Baud Rate Divisor Value
When the LIN-UART is disabled, the BRG functions as a basic 16-bit timer with interrupt
on time-out. To configure the BRG as a timer with interrupt on time-out, follow the procedure below:
1. Disable the LIN-UART receiver by clearing the REN bit in the LIN-UART Control 0
Register to 0 (i.e., the TEN bit can be asserted; transmit activity can occur).
2. Load the appropriate 16-bit count value into the LIN-UART Baud Rate High and Low
Byte registers.
3. Enable the BRG timer function and the associated interrupt by setting the BRGCTL
bit in the LIN-UART Control 1 Register to 1.
12.2. Noise Filter
A noise filter circuit is included which filters noise on a digital input signal (such as UART
Receive Data) before the data is sampled by the block. This noise filter is likely to be a
requirement for protocols with a noisy environment.
The noise filter contains the following features:
•
•
PS025016-1013
Synchronizes the receive input data to the System Clock
Noise Filter Enable (NFEN) input selects whether the noise filter is bypassed (NFEN
= 0) or included (NFEN = 1) in the receive data path
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
161
•
Noise Filter Control (NFCTL[2:0]) input selects the width of the up/down saturating
counter digital filter; the available width ranges from 4 to 11 bits
•
•
The digital filter output features hysteresis
Provides an active low Saturated State output (FiltSatB) which is used as an indication
of the presence of noise
12.2.1. Architecture
Figure 25 displays how the noise filter is integrated with the LIN-UART on a LIN
network.
Figure 25. Noise Filter System Block Diagram
12.2.2. Operation
Figure 26 displays the operation of the noise filter both with and without noise. The noise
filter in this example is a 2-bit up/down counter which saturates at 00b and 11b. A 2-bit
counter is shown for convenience, the operation of wider counters is similar. The output of
the filter switches from 1 to 0, when the counter counts down from 01b to 00b; and
switches from 0 to 1, when the counter counts up from 10b to 11b. The noise filter delays
the receive data by three System Clock cycles.
The FiltSatB signal is checked when the filtered RxD is sampled in the center of the bit
time. The presence of noise (FiltSatB = 1 at center of bit time) does not mean that the
sampled data is incorrect, but just that the filter is not in its ‘saturated’ state of all 1s or all
0s. If FiltSatB = 1 then RxD is sampled during a receive character, the NE bit in the
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
162
ModeStatus[4:0] field is set. By observing this bit, an indication of the level of noise in the
network can be obtained.
Figure 26. Noise Filter Operation
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
163
12.3. LIN-UART Control Register Definitions
The LIN-UART control registers support the LIN-UART, the associated Infrared Encoder/
Decoder and the noise filter. For more information about the infrared operation, see the
Infrared Encoder/Decoder section on page 182.
12.3.1. LIN-UART Transmit Data Register
Data bytes written to the LIN-UART Transmit Data Register, shown in Table 83, are
shifted out on the TxD pin. The write-only LIN-UART Transmit Data Register shares a
Register File address with the read-only LIN-UART Receive Data Register.
Table 83. LIN-UART Transmit Data Register (U0TXD = F40h)
Bit
7
6
5
4
Field
3
2
1
0
TxD
Reset
X
X
X
X
X
X
X
X
R/W
W
W
W
W
W
W
W
W
Address
F40h, F48h
Note: W = Write; X = undefined.
Bit
Description
[7:0]
TxD
Transmit Data
LIN–UART transmitter data byte to be shifted out through the TxD pin.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
164
12.3.2. LIN-UART Receive Data Register
Data bytes received through the RxD pin are stored in the LIN-UART Receive Data
Register as shown in Table 84. The read-only LIN-UART Receive Data Register shares a
Register File address with the write-only LIN-UART Transmit Data Register.
Table 84. LIN-UART Receive Data Register (U0RXD = F40h)
Bit
7
6
5
4
Field
3
2
1
0
RxD
Reset
X
X
X
X
X
X
X
X
R/W
R
R
R
R
R
R
R
R
Address
F40h, F48h
Note: R = Read.
Bit
Description
[7:0]
RxD
Receive Data
LIN–UART receiver data byte from the RxD pin.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
165
12.3.3. LIN-UART Status 0 Register
The LIN-UART Status 0 Register identifies the current LIN-UART operating
configuration and status. Table 85 describes the Status 0 Register for standard UART
mode. Table 86 describes the Status 0 Register for LIN mode.
Table 85. LIN-UART Status 0 Register—Standard UART Mode (U0STAT0 = F41h)
Bit
7
6
5
4
3
2
1
0
Field
RDA
PE
OE
FE
BRKD
TDRE
TXE
CTS
Reset
0
0
0
0
0
1
1
X
R/W
R
R
R
R
R
R
R
R
Address
F41h, F49h
Note: R = Read; X = undefined.
Bit
Description
[7]
RDA
Receive Data Available
This bit indicates that the LIN-UART Receive Data Register has received data. Reading the
LIN-UART Receive Data Register clears this bit.
0 = The LIN-UART Receive Data Register is empty.
1 = There is a byte in the LIN-UART Receive Data Register.
[6]
PE
Parity Error
This bit indicates that a parity error has occurred. Reading the Receive Data Register clears
this bit.
0 = No parity error occurred.
1 = A parity error occurred.
[5]
OE
Overrun Error
This bit indicates that an overrun error has occurred. An overrun occurs when new data is
received and the Receive Data Register is not read. Reading the Receive Data Register clears
this bit.
0 = No overrun error occurred.
1 = An overrun error occurred.
[4]
FE
Framing Error
This bit indicates that a framing error (no stop bit following data reception) was detected.
Reading the Receive Data Register clears this bit.
0 = No framing error occurred.
1 = A framing error occurred.
[3]
BRKD
Break Detect
This bit indicates that a break occurred. If the data bits, parity/multiprocessor bit and stop bit(s)
are all zeros then this bit is set to 1. Reading the Receive Data Register clears this bit.
0 = No break occurred.
1 = A break occurred.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
166
Bit
Description (Continued)
[2]
TDRE
Transmitter Data Register Empty
This bit indicates that the Transmit Data Register is empty and ready for additional data.
Writing to the Transmit Data Register resets this bit.
0 = Do not write to the Transmit Data Register.
1 = The Transmit Data Register is ready to receive an additional byte for transmission.
[1]
TXE
Transmitter Empty
This bit indicates that the Transmit Shift Register is empty and character transmission is
finished.
0 = Data is currently transmitting.
1 = Transmission is complete.
[0]
CTS
Clear to Send Signal
When this bit is read it returns the level of the CTS signal. If LBEN = 1, the CTS input signal is
replaced by the internal Receive Data Available signal to provide flow control in loopback
mode. CTS only affects transmission if the CTSE bit = 1.
Table 86. LIN-UART Status 0 Register—LIN Mode (U0STAT0 = F41h)
Bit
7
6
5
4
3
2
1
0
Field
RDA
PLE
OE
FE
BRKD
TDRE
TXE
ATB
Reset
0
0
0
0
0
1
1
0
R/W
R
R
R
R
R
R
R
R
Address
F41h, F49h
Note: R = Read.
Bit
Description
[7]
RDA
Receive Data Available
This bit indicates that the Receive Data Register has received data. Reading the Receive Data
Register clears this bit.
0 = The Receive Data Register is empty.
1 = There is a byte in the Receive Data Register.
[6]
PLE
Physical Layer Error
This bit indicates that transmit and receive data do not match when a LIN slave or master is
transmitting. This could be by a fault in the physical layer or multiple devices driving the bus
simultaneously. Reading the Status 0 Register or the Receive Data Register clears this bit.
0 = Transmit and Receive data match.
1 = Transmit and Receive data do not match.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
167
Bit
Description (Continued)
[5]
OE
Receive Data and Autobaud Overrun Error
This bit is set just as in normal UART operation if a receive data overrun error occurs. This bit
is also set during LIN Slave autobaud if the BRG counter overflows before the end of the
autobaud sequence. This indicates that the receive activity is not an autobaud character or the
master baud rate is too slow. The ATB status bit will also be set in this case. This bit is cleared
by reading the Receive Data Register.
0 = No autobaud or data overrun error occurred.
1 = An autobaud or data overrun error occurred.
[4]
FE
Framing Error
This bit indicates that a framing error (no stop bit following data reception) is detected. Reading
the Receive Data Register clears this bit.
0 = No framing error occurred.
1 = A framing error occurred.
[3]
BRKD
Break Detect
This bit is set in LIN mode if:
• It is in Lin Sleep state and a break of at least 4 bit times occurred (Wake-up event) or
• It is in Slave Wait Break state and a break of at least 11 bit times occurred (Break event) or
• It is in Slave Active state and a break of at least 10 bit times occurs. Reading the Status 0
Register or the Receive Data Register clears this bit.
0 = No LIN break occurred.
1 = LIN break occurred.
[2]
TDRE
Transmitter Data Register Empty
This bit indicates that the Transmit Data Register is empty and ready for additional data.
Writing to the Transmit Data Register resets this bit.
0 = Do not write to the Transmit Data Register.
1 = The Transmit Data Register is ready to receive an additional byte for transmission.
[1]
TXE
Transmitter Empty
This bit indicates that the Transmit Shift Register is empty and character transmission is
completed.
0 = Data is currently transmitting.
1 = Transmission is complete.
[0]
ATB
LIN Slave Autobaud Complete
This bit is set in LIN SLAVE Mode when an autobaud character is received. If the ABIEN bit is
set in the LIN Control Register, then a receive interrupt is generated when this bit is set.
Reading the Status 0 Register clears this bit. This bit will be 0 in LIN MASTER Mode.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
168
12.3.4. LIN-UART Mode Select and Status Register
The LIN-UART Mode Select and Status Register, shown in Table 87, contains mode select
and status bits.
Table 87. LIN-UART Mode Select and Status Register (U0MDSTAT = F44h)
Bit
7
Field
5
4
3
MSEL
Reset
R/W
6
2
1
0
MODE STATUS
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R
R
R
R
R
Address
F44h, F4Ch
Note: R = Read; R/W = Read/Write.
Bit
Description
[7:5]
MSEL
Mode Select
This read/write field determines which control register is accessed when performing a write or
read to the UART Control 1 Register address. This field also determines which status is
returned in the Mode Status field when reading this register.
000 = Multiprocessor and normal UART control/status
001 = Noise filter control/status
010 = LIN protocol control/status
011 = Reserved
100 = Reserved
101 = Reserved
110 = Reserved
111 = LIN-UART hardware revision (allows hardware revision to be read in the Mode Status
field.
[4:0]
Mode Status
This read-only field returns status corresponding to one of four modes selected by MSEL.
These four modes are described in Table 88 on page 169.
MSEL[2:0]=000, MULTIPROCESSOR Mode status = {0,0,0,NEWFRM, MPRX}
MSEL[2:0]=001, Noise filter status = {NE,0,0,0,0}
MSEL[2:0]=010, LIN mode status = {NE, RxBreakLength}
MSEL[2:0]=011, Reserved; must be 00000
MSEL[2:0]=100, Reserved; must be 00000
MSEL[2:0]=101, Reserved; must be 00000
MSEL[2:0]=110, Reserved; must be 00000
MSEL[2:0]=111, LIN-UART hardware revision
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
169
Table 88. Mode Status Fields
MULTIPROCESSOR
Mode Status Field
NEWFRM
Status bit denoting the start of a new frame. Reading the LIN-UART Receive
Data Register resets this bit to 0.
0 = The current byte is not the first data byte of a new frame.
1 = The current byte is the first data byte of a new frame.
Multiprocessor Receive (MPRX)
Returns the value of the last multiprocessor bit received. Reading from the LINUART Receive Data Register resets this bit to 0.
Digital Noise Filter
Mode Status Field
Noise Event (NE); MSEL = 001b
This bit is asserted if digital noise is detected on the receive data line when the
data is sampled (center of bit-time). If this bit is set, it does not mean that the
receive data is corrupted (though it can be in extreme cases), means that one or
more of the noise filter data samples near the center of the bit-time did not match
the average data value.
LIN Mode Status Field Noise Event (NE); MSEL = 010b
This bit is asserted if some noise level is detected on the receive data line when
the data is sampled (center of bit-time). If this bit is set, it does not indicate that
the receive data is corrupt (though it can be in extreme cases), means that one or
more of the 16x data samples near the center of the bit-time did not match the
average data value.
RxBreakLength
LIN mode received break length. This field can be read following a break (LIN
Wake-up or Break) so that the software can determine the measured duration of
the break. If the break exceeds 15 bit times the value saturates at 1111b.
Hardware Revision
Mode Status Field
PS025016-1013
Noise Event (NE); MSEL = 111b
This field indicates the hardware revision of the LIN-UART block.
00_xxx LIN UART hardware revision.
01_xxx Reserved.
10_xxx Reserved.
11_xxx Reserved.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
170
12.3.5. LIN-UART Control 0 Register
The LIN-UART Control 0 Register, shown in Table 89, configures the basic properties of
LIN-UART’s transmit and receive operations. A more detailed discussion of each bit
follows the table.
Table 89. LIN-UART Control 0 Register (U0CTL0 = F42h)
Bit
7
6
5
4
3
2
1
0
Field
TEN
REN
CTSE
PEN
PSEL
SBRK
STOP
LBEN
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F42h, F4Ah
Note: R/W = Read/Write.
Bit
Description
[7]
TEN
Transmit Enable
This bit enables or disables the transmitter. The enable is also controlled by the CTS signal
and the CTSE bit. If the CTS signal is Low and the CTSE bit is 1, the transmitter is enabled.
0 = Transmitter disabled.
1 = Transmitter enabled.
[6]
REN
Receive Enable
This bit enables or disables the receiver.
0 = Receiver disabled.
1 = Receiver enabled.
[5]
CTSE
Clear To Send Enable
0 = The CTS signal has no effect on the transmitter.
1 = The LIN-UART recognizes the CTS signal as an enable control for the transmitter.
[4]
PEN
Parity Enable
This bit enables or disables parity. Even or odd is determined by the PSEL bit.
0 = Parity is disabled. This bit is overridden by the MPEN bit.
1 = The transmitter sends data with an additional parity bit and the receiver receives an
additional parity bit.
[3]
PSEL
Parity Select
0 = Even parity is sent as an additional parity bit for the transmitter/receiver.
1 = Odd parity is sent as an additional parity bit for the transmitter/receiver.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
171
Bit
Description (Continued)
[2]
SBRK
Send Break
This bit pauses or breaks data transmission. Sending a break interrupts any transmission in
progress, so ensure that the transmitter has completed sending data before setting this bit. In
standard UART mode, the duration of the break is determined by how long the software leaves
this bit asserted. Also the duration of any required stop bits following the break must be timed
by software before writing a new byte to be transmitted to the Transmit Data Register. In LIN
mode, the master sends a Break character by asserting SBRK. The duration of the break is
timed by hardware and the SBRK bit is deasserted by hardware when the Break is completed.
The duration of the Break is determined by the TxBreakLength field of the LIN Control
Register. One or two stop bits are automatically provided by the hardware in LIN mode as
defined by the stop bit.
0 = No break is sent.
1 = The output of the transmitter is 0.
[1]
STOP
Stop Bit Select
0 = The transmitter sends one stop bit.
1 = The transmitter sends two stop bits.
[0]
LBEN
Loop Back Enable
0 = Normal operation.
1 = All transmitted data is looped back to the receiver within the IrDA module.
12.3.6. LIN-UART Control 1 Registers
Multiple registers, shown in Tables 90 and 91, are accessible by a single bus address. The
register selected is determined by the Mode Select (MSEL) field. These registers provide
additional control over LIN-UART operation.
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
172
12.3.6.1. Multiprocessor Control Register
When MSEL = 000b, the Multiprocessor Control Register, shown in Table 90, provides
control for UART MULTIPROCESSOR Mode, IRDA Mode and Baud Rate Timer Mode
as well as other features that can apply to multiple modes.
Table 90. Multiprocessor Control Register (U0CTL1 = F43h with MSEL = 000b)
Bit
7
6
5
4
3
2
1
0
Field
MPMD1
MPEN
MPMD0
MPBT
DEPOL
BRGCTL
RDAIRQ
IREN
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F43h, F4Bh
Note: R/W = Read/Write.
Bit Position
Value Description
[7,5]
MPMD[1:0]
MULTIPROCESSOR (9-bit) Mode
[6]
MPEN
[4]
MPBT
[3]
DEPOL
PS025016-1013
00
The LIN-UART generates an interrupt request on all data and address bytes.
01
The LIN-UART generates an interrupt request only on received address bytes.
10
The LIN-UART generates an interrupt request when a received address byte
matches the value stored in the Address Compare Register and on all
successive data bytes until an address mismatch occurs.
11
The LIN-UART generates an interrupt request on all received data bytes for
which the most recent address byte matched the value in the Address
Compare Register.
Multiprocessor Enable
This bit is used to enable MULTIPROCESSOR (9-bit) Mode.
0
Disable MULTIPROCESSOR (9-bit) Mode.
1
Enable MULTIPROCESSOR (9-bit) Mode.
Multiprocessor Bit Transmit
This bit is applicable only when MULTIPROCESSOR (9-bit) Mode is enabled.
0
Send a 0 in the multiprocessor bit location of the data stream (9th bit).
1
Send a 1 in the multiprocessor bit location of the data stream (9th bit).
Driver Enable Polarity
0
DE signal is active High.
1
DE signal is active Low.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
173
Bit Position
Value Description (Continued)
[2]
BRGCTL
Baud Rate Generator Control
This bit causes different LIN-UART behavior depending on whether the LIN-UART
receiver is enabled (REN = 1 in the LIN-UART Control 0 Register). When the LINUART receiver is not enabled, this bit determines whether the Baud Rate Generator
issues interrupts. When the LIN-UART receiver is enabled, this bit allows Reads from
the baud rate registers to return the BRG count value instead of the reload value.
Baud Rate Generator Control when the LIN-UART receiver is not enabled:
0
BRG is disabled. Reads from the Baud Rate High and Low Byte registers
return the BRG reload value.
1
BRG is enabled and counting. The Baud Rate Generator generates a receive
interrupt when it counts down to 0. Reads from the Baud Rate High and Low
Byte registers return the current BRG count value.
Baud Rate Generator Control when the LIN-UART receiver is enabled:
[1]
RDAIRQ
[0]
IREN
PS025016-1013
0
Reads from the Baud Rate High and Low Byte registers return the BRG reload
value.
1
Reads from the Baud Rate High and Low Byte registers return the current
BRG count value. Unlike the timers, there is no mechanism to latch the High
Byte when the Low Byte is read.
Receive Data Interrupt
0
Received data and receiver errors generates an interrupt request to the
Interrupt controller.
1
Received data does not generate an interrupt request to the Interrupt
controller. Only receiver errors generate an interrupt request.
Loop Back Enable
0
Infrared Encoder/Decoder is disabled. LIN-UART operates normally.
1
Infrared Encoder/Decoder is enabled. The LIN-UART transmits and receives
data through the Infrared Encoder/Decoder.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
174
12.3.7. Noise Filter Control Register
When MSEL = 001b, the Noise Filter Control Register, shown in Table 91, provides control for the digital noise filter.
Table 91. Noise Filter Control Register (U0CTL1 = F43h with MSEL = 001b)
Bit
7
6
5
4
3
2
0
Field
NFEN
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R
R
R
R
R/W
NFCTL
1
—
Address
F43h, F4Bh
Note: R = Read; R/W = Read/Write.
Bit Position
Value Description
[7]
NFEN
Noise Filter Enable
[6:4]
NFCTL
[3:0]
Reserved
PS025016-1013
0
Noise filter is disabled.
1
Noise filter is enabled. Receive data is preprocessed by the noise filter.
Noise Filter Control
This field controls the delay and noise rejection characteristics of the noise filter. The
wider the counter is, the more delay is introduced by the filter and the wider the noise
event is filtered.
000
4-bit up/down counter.
001
5-bit up/down counter.
010
6-bit up/down counter.
011
7-bit up/down counter.
100
8-bit up/down counter.
101
9-bit up/down counter.
110
10-bit up/down counter.
111
11-bit up/down counter.
—
Reserved; must be 0000.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
175
12.3.8. LIN Control Register
When MSEL = 010b, the LIN Control Register provides control for the LIN mode of
operation.
Table 92. LIN Control Register (U0CTL1 = F43h with MSEL = 010b)
Bit
7
6
5
4
Field
LMST
LSLV
ABEN
ABIEN
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
3
2
LinState[1:0]
1
0
TxBreakLength
F43h, F4Bh
Note: R/W = Read/Write.
Bit Position
Value Description
[7]
LMST
LIN MASTER Mode
[6]
LSLV
[5]
ABEN
[4]
ABIEN
PS025016-1013
0
LIN MASTER Mode not selected.
1
LIN MASTER Mode selected (if MPEN, PEN, LSLV = 0).
LIN SLAVE Mode
0
LIN SLAVE Mode not selected.
1
LIN SLAVE Mode selected (if MPEN, PEN, LMST = 0).
Autobaud Enable
0
Autobaud not enabled.
1
Autobaud enabled, if in LIN SLAVE Mode.
Autobaud Interrupt Enable
0
Interrupt following autobaud does not occur.
1
Interrupt following autobaud enabled, if in LIN SLAVE Mode. When the
autobaud character is received, a receive interrupt is generated and the ATB
bit is set in the Status0 Register.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
176
Bit Position
Value Description (Continued)
[3:2]
LINSTATE[1:0]
LIN State Machine
The LinState is controlled by both hardware and software. Software can force a state
change at any time if necessary. In normal operation, software moves the state in and
out of Sleep state. For a LIN slave, software changes the state from Sleep to Wait for
Break, after which hardware cycles through the Wait for Break, Autobaud and Active
states. Software changes the state from one of the active states to Sleep state, if the
LIN bus goes into Sleep mode. For a LIN master, software changes the state from
Sleep to Active, where it remains until the software sets it back to the Sleep state. After
configuration, software does not alter the LinState field during operation.
[1:0]
TxBreakLength
PS025016-1013
00
Sleep state (either LMST or LSLV can be set).
01
Wait for Break state (only valid for LSLV = 1).
10
Autobaud state (only valid for LSLV = 1).
11
Active state (either LMST or LSLV can be set).
TxBreakLength
Used in LIN mode by the master to control the duration of the transmitted break.
00
13 bit times.
01
14 bit times.
10
15 bit times.
11
16 bit times.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
177
12.3.9. LIN-UART Address Compare Register
The LIN-UART Address Compare Register, shown in Table 93, stores the multinode
network address of the LIN-UART. When the MPMD[1] bit of the LIN-UART Control
Register 0 is set, all incoming address bytes are compared to the value stored in this
Address Compare Register. Receive interrupts and RDA assertions only occur in the event
of a match.
Table 93. LIN-UART Address Compare Register (U0ADDR = F45h)
Bit
7
6
5
Field
3
2
1
0
COMP_ADDR
Reset
R/W
4
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F45h, F4Dh
Note: R/W = Read/Write.
Bit Position
Value Description
[7:0]
COMP_ADDR
—
Compare Address
This 8-bit value is compared to the incoming address bytes.
12.3.10. LIN-UART Baud Rate High and Low Byte Registers
The LIN-UART Baud Rate High and Low Byte registers, shown in Tables 94 and 95)
combine to create a 16-bit baud rate divisor value (BRG[15:0]) that sets the data
transmission rate (baud rate) of the LIN-UART.
Table 94. LIN-UART Baud Rate High Byte Register (U0BRH = F46h)
Bit
7
6
5
4
Field
2
1
0
BRH
Reset
R/W
3
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F46h, F4Eh
Note: R/W = Read/Write.
Bit Position
Value Description
[7:0]
BRH
—
PS025016-1013
Baud Rate High
These bits set the High byte of the baud rate divisor value.
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
178
Table 95. LIN-UART Baud Rate Low Byte Register (U0BRL = F47h)
Bit
7
6
5
4
Field
3
2
1
0
BRL
Reset
R/W
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F47h, F4Fh
Note: R/W = Read/Write.
Bit Position
Value Description
[7:0]
BRL
—
Baud Rate Low
These bits set the Low Byte of the baud rate divisor value.
The LIN-UART data rate is calculated using the following equation for standard UART
modes. For the LIN protocol, the Baud Rate registers must be programmed with the baud
period rather than 1/16th of the baud period.
Note: The UART must be disabled when updating the Baud Rate registers because the High and
Low registers must be written independently.
The LIN-UART data rate is calculated using the following equation for standard UART
operation:
UART Data Rate (bits/s)
=
System Clock Frequency (Hz)
16 x UART Baud Rate Divisor Value
The LIN-UART data rate is calculated using the following equation for LIN mode UART
operation:
UART Data Rate (bits/s)
= System Clock Frequency (Hz)
UART Baud Rate Divisor Value
For a given LIN-UART data rate, the integer baud rate divisor value is calculated using the
following equation for standard UART operation:
System Clock Frequency (Hz)
UART Baud Rate Divisor Value (BRG) = Round -------------------------------------------------------------------------------
16xUART Data Rate (bits/s)
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
179
For a given LIN-UART data rate, the integer baud rate divisor value is calculated using the
following equation for LIN mode UART operation:
System Clock Frequency (Hz)
UART Baud Rate Divisor Value (BRG) = Round -------------------------------------------------------------------------------
UART Data Rate (bits/s)
The baud rate error relative to the appropriate baud rate is calculated using the following
equation:
ot
Actual Data Rate – Desired Data Rate
UART Baud Rate Error (%) = 100 ----------------------------------------------------------------------------------------------------
Desired Data Rate
For reliable communication, the LIN-UART baud rate error must never exceed 5 percent.
Tables 96 through 100 provide error data for popular baud rates and commonly-used crystal oscillator frequencies for normal UART modes of operation.
Table 96. LIN-UART Baud Rates, 20.0 MHz System Clock
Applicable
Rate (kHz)
BRG
Divisor Actual Rate
(Decimal)
(kHz)
Error (%)
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
1250.0
1
1250.0
0.00
9.60
130
9.62
0.16
625.0
2
625.0
0.00
4.80
260
4.81
0.16
250.0
5
250.0
0.00
2.40
521
2.399
–0.03
115.2
11
113.64
–1.19
1.20
1042
1.199
–0.03
57.6
22
56.82
–1.36
0.60
2083
0.60
0.02
38.4
33
37.88
–1.36
0.30
4167
0.299
–0.01
19.2
65
19.23
0.16
Table 97. LIN-UART Baud Rates, 10.0 MHz System Clock
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
1250.0
N/A
N/A
N/A
9.60
65
9.62
0.16
625.0
1
625.0
0.00
4.80
130
4.81
0.16
250.0
3
208.33
–16.67
2.40
260
2.40
–0.03
115.2
5
125.0
8.51
1.20
521
1.20
–0.03
57.6
11
56.8
–1.36
0.60
1042
0.60
–0.03
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
180
Table 97. LIN-UART Baud Rates, 10.0 MHz System Clock (Continued)
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
38.4
16
39.1
1.73
19.2
33
18.9
0.16
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
0.30
2083
0.30
0.2
Table 98. LIN-UART Baud Rates, 5.5296 MHz System Clock
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
BRG
Applicable Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error (%)
1250.0
N/A
N/A
N/A
9.60
36
9.60
0.00
625.0
N/A
N/A
N/A
4.80
72
4.80
0.00
250.0
1
345.6
38.24
2.40
144
2.40
0.00
115.2
3
115.2
0.00
1.20
288
1.20
0.00
57.6
6
57.6
0.00
0.60
576
0.60
0.00
38.4
9
38.4
0.00
0.30
1152
0.30
0.00
19.2
18
19.2
0.00
Table 99. LIN-UART Baud Rates, 3.579545 MHz System Clock
BRG
Applicable
Divisor Actual Rate
(kHz)
Error (%)
Rate (kHz) (Decimal)
BRG
Divisor Actual Rate
Applicable
Rate (kHz) (Decimal)
(kHz)
Error (%)
1250.0
N/A
N/A
N/A
9.60
23
9.73
1.32
625.0
N/A
N/A
N/A
4.80
47
4.76
–0.83
250.0
1
223.72
–10.51
2.40
93
2.41
0.23
115.2
2
111.9
–2.90
1.20
186
1.20
0.23
57.6
4
55.9
–2.90
0.60
373
0.60
–0.04
38.4
6
37.3
–2.90
0.30
746
0.30
–0.04
19.2
12
18.6
–2.90
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
181
Table 100. LIN-UART Baud Rates, 1.8432 MHz System Clock
BRG
Applicable
Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error(%)
BRG
Applicable
Divisor Actual Rate
Rate (kHz) (Decimal)
(kHz)
Error(%)
1250.0
N/A
N/A
N/A
9.60
12
9.60
0.00
625.0
N/A
N/A
N/A
4.80
24
4.80
0.00
250.0
N/A
N/A
N/A
2.40
48
2.40
0.00
115.2
1
115.2
0.00
1.20
96
1.20
0.00
57.6
2
57.6
0.00
0.60
192
0.60
0.00
38.4
3
38.4
0.00
0.30
384
0.30
0.00
19.2
6
19.2
0.00
PS025016-1013
PRELIMINARY
LIN-UART
Z8 Encore! XP® F1680 Series
Product Specification
182
Chapter 13. Infrared Encoder/Decoder
The Z8 Encore! XP F1680 Series products contain a fully-functional, high-performance
UART to infrared encoder/decoder (endec). The infrared endec is integrated with an onchip UART to allow easy communication between the Z8 Encore! and IrDA Physical
Layer Specification and version 1.3-compliant infrared transceivers. Infrared
communication provides secure, reliable, low-cost, point-to-point communication
between PCs, PDAs, cell phones, printers and other infrared enabled devices.
13.1. Architecture
Figure 27 displays the architecture of the infrared endec.
System
Clock
Infrared
Transceiver
RxD
RXD
RXD
TxD
UART
Baud Rate
Clock
Interrupt
I/O
Signal Address
Infrared
Encoder/Decoder
(endec)
TXD
TXD
Data
Figure 27. Infrared Data Communication System Block Diagram
13.2. Operation
When the infrared endec is enabled, the transmit data from the associated on-chip UART
is encoded as digital signals in accordance with the IrDA standard and output to the
infrared transceiver through the TXD pin. Likewise, data received from the infrared
transceiver is passed to the infrared endec through the RXD pin, decoded by the infrared
PS025016-1013
PRELIMINARY
Infrared Encoder/Decoder
Z8 Encore! XP® F1680 Series
Product Specification
183
endec and passed to the UART. Communication is half-duplex, that is, simultaneous data
transmission and reception is not allowed.
The baud rate is set by the UART’s Baud Rate Generator and supports IrDA standard baud
rates from 9600 baud to 115.2 KBaud. Higher baud rates are possible, but do not meet
IrDA specifications. The UART must be enabled to use the infrared endec. The infrared
endec data rate is calculated using the following equation:
System Clock Frequency Hz
Infrared Data Rate bits s = -----------------------------------------------------------------------------------------------------16 UART Baud Rate Divisor Value
13.2.1. Transmitting IrDA Data
The data to be transmitted using the infrared transceiver is first sent to the UART. The
UART’s transmit signal (TXD) and baud rate clock are used by the IrDA to generate the
modulation signal (IR_TXD) that drives the infrared transceiver. Each UART/infrared
data bit is 16 clocks wide. If the data to be transmitted is 1, the IR_TXD signal remains
Low for the full 16-clock period. If the data to be transmitted is 0, the transmitter first
outputs a 7-clock Low period, followed by a 3-clock High pulse. Finally, a 6-clock Low
pulse is the output to complete the full 16 clock data period. Figure 28 displays IrDA data
transmission. When the infrared endec is enabled, the UART’s TXD signal is internal to
the Z8 Encore! XP F1680 Series products while the IR_TXD signal is the output through
the TXD pin.
16-clock
period
Baud Rate
Clock
UART’s
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 28. Infrared Data Transmission
PS025016-1013
PRELIMINARY
Infrared Encoder/Decoder
Z8 Encore! XP® F1680 Series
Product Specification
184
13.2.2. Receiving IrDA Data
Data received from the infrared transceiver using the IR_RXD signal through the RXD pin
is decoded by the infrared endec and passed to the UART. The UART’s baud rate clock is
used by the infrared endec to generate the demodulated signal (RXD) that drives the
UART. Each UART/infrared data bit is 16 clocks wide. Figure 29 displays data reception.
When the infrared endec is enabled, the UART’s RXD signal is internal to the Z8 Encore!
XP F1680 Series products while the IR_RXD signal is received through the RXD pin.
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
min. 1.4 µs
pulse
UART’s
RXD
Start Bit = 0
8-clock
delay
16-clock
period
Data Bit 0 = 1
Data Bit 1 = 0
16-clock
period
16-clock
period
Data Bit 2 = 1
Data Bit 3 = 1
16-clock
period
Figure 29. IrDA Data Reception
Caution: The system clock frequency must be at least 1.0 MHz to ensure proper reception of the
1.4 µs minimum width pulses allowed by the IrDA standard.
13.2.2.1. Endec Receiver Synchronization
The IrDA receiver uses a local baud rate clock counter (0 to 15 clock periods) to generate
an input stream for the UART and to create a sampling window for detection of incoming
pulses. The generated UART input (UART RXD) is delayed by 8 baud rate clock periods
with respect to the incoming IrDA data stream. When a falling edge in the input data
stream is detected, the endec counter is reset. When the count reaches a value of 8, the
UART RXD value is updated to reflect the value of the decoded data. When the count
reaches 12 baud clock periods, the sampling window for the next incoming pulse opens.
PS025016-1013
PRELIMINARY
Infrared Encoder/Decoder
Z8 Encore! XP® F1680 Series
Product Specification
185
The window remains open until the count again reaches 8 (in other words, 24 baud clock
periods since the previous pulse is detected), giving the endec a sampling window of
minus 4 baud rate clocks to plus 8 baud rate clocks around the expected time of an
incoming pulse. If an incoming pulse is detected inside this window this process is
repeated. If the incoming data is a logical 1 (no pulse), the endec returns to the initial state
and waits for the next falling edge. As each falling edge is detected, the endec clock
counter is reset, resynchronizing the endec to the incoming signal, allowing the endec to
tolerate jitter and baud rate errors in the incoming datastream. Resynchronizing the endec
does not alter the operation of the UART, which ultimately receives the data. The UART is
only synchronized to the incoming data stream when a start bit is received.
13.3. Infrared Encoder/Decoder Control Register
Definitions
All infrared endec configuration and status information is set by the UART control
registers as defined beginning on page 163.
Caution: To prevent spurious signals during IrDA data transmission, set the IREN bit in the
UART Control 1 Register to 1 to enable the infrared encoder/decoder before enabling
the GPIO Port alternate function for the corresponding pin of UART. See Tables 17
through 19 on pages 49–54 for details.
PS025016-1013
PRELIMINARY
Infrared Encoder/Decoder
Z8 Encore! XP® F1680 Series
Product Specification
186
Chapter 14. Analog-to-Digital Converter
The Z8 Encore! includes an eight-channel Successive Approximation Register Analog-toDigital converter (SAR ADC). The ADC converts an analog input signal to a 10-bit binary
number. The features of the ADC include:
•
•
•
•
•
•
•
Eight analog input sources multiplexed with general-purpose I/O ports
Fast conversion time, less than 4.9 µs
Programmable timing controls
Interrupt on conversion complete
Internal 1.6 V voltage reference generator
Internal reference voltage available externally
Ability to supply external reference voltage
14.1. Architecture
The ADC architecture, shown in Figure 30, consists of an 8-input multiplexer, sampleand-hold amplifier and 10-bit SAR ADC. The ADC digitizes the signal on a selected
channel and stores the digitized data in the ADC data registers. In environments with high
electrical noise, an external RC filter must be added at the input pins to reduce highfrequency noise.
14.2. Operation
The ADC converts the analog input, ANAX, to a 10-bit digital representation. The
equation for calculating the digital value is calculated by:
ADC Output = 1024 ANA x V REF
Assuming zero gain and offset errors, any voltage outside the ADC input limits of AVSS
and VREF returns all 0s or 1s, respectively.
A new conversion can be initiated by software write to the ADC Control Register’s start
bit. Initiating a new conversion stops any conversion currently in progress and begins a
new conversion. To avoid disrupting a conversion already in progress, this start bit can be
read to indicate ADC operation status (busy or available).
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
187
REFEN
Sel 28 Package
VR2
Internal Voltage
Reference Generator
VREF
RBUF
Analog Input
Multiplexer
Analog-to-Digital
Converter
ANA0
ANA1
Reference Input
Data
Output
10
BUSY
ANA2
ANA3
Analog Input
Sample-and-Hold
Amplifier
ANA4
ANA5
ANA6
ANA7
ADCLK
ANAIN[2:0]
ADCEN
SAMPLE/HOLD
START
Figure 30. Analog-to-Digital Converter Block Diagram
14.2.1. ADC Timing
Each ADC measurement consists of 3 phases:
1. Input sampling (programmable, minimum of 1.8 µs).
2. Sample-and-hold amplifier settling (programmable, minimum of 0.5 µs).
3. Conversion is 13 ADCLK cycles.
Figure 31 displays the timing of an ADC conversion.
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
188
conversion period
START
1.8 µs min
sample period
Programmable
settling period
SAMPLE/HOLD
13-clock
convert period
BUSY
Figure 31. ADC Timing Diagram
14.2.2. ADC Interrupt
convertbit7
convertbit6
convertbit5
convertbit4
convertbit3
4
5
6
7
8
9
store in register
convertbit8
3
convertbit0
convertbitmsb
2
convertbit1
sync
1
convertbit2
sync
The ADC can generate an interrupt request when a conversion is completed. An interrupt
request that is pending when the ADC is disabled is not automatically cleared. See Figure 32.
10
11
12
13
14
15
16
17
ADC Clock
BUSY
13 clocks
convert period
Figure 32. ADC Convert Timing
14.2.3. Reference Buffer
The reference buffer, RBUF, supplies the reference voltage for the ADC. When enabled,
the internal voltage reference generator supplies the ADC and this voltage is available on
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
189
the VREF pin. When RBUF is disabled, the ADC must have the reference voltage supplied
externally through the VREF pin. RBUF is controlled by the REFEN bit in the ADC Control
Register.
14.2.4. Internal Voltage Reference Generator
The Internal Voltage Reference Generator provides the voltage, VR2, for the RBUF. VR2
is 1.6 V.
14.2.5. Calibration and Compensation
You can calibrate and store the values into Flash, or the user code can perform a manual
offset calibration. There is no provision for manual gain calibration.
14.3. ADC Control Register Definitions
The registers that control analog-to-digital conversion functions are defined in this section.
14.3.1. ADC Control Register 0
The ADC Control Register 0, shown in Table 101, initiates the A/D conversion and
provides ADC status information.
Table 101. ADC Control Register 0 (ADCCTL0)
Bits
7
6
5
4
Field
START
INTREF_SEL
REFEN
ADCEN
Reset
0
0
0
0
0
0
0
0
R/W1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
3
2
1
ANAIN[3:0]
F70h
Bit Position
Value
(H)
Description
[7]
START
0
ADC Start/Busy
Writing a 0 has no effect.
Reading a 0 indicates the ADC is available to begin a conversion.
1
Writing a 1 starts a conversion.
Reading a 1 indicates that a conversion is currently in progress.
0
Select 1.6 V as internal reference.
1
Select AVDD as internal reference.
[6]
INTREF_SEL
PS025016-1013
0
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
190
Bit Position
Value
(H)
Description (Continued)
[5]
REFEN
0
Select external reference.
1
Select internal reference.
[4]
ADCEN
0
ADC is disabled.
1
ADC is enabled for normal use. This bit cannot change with bit 7 (start) at the
same time.
[3:0]
ANAIN
0000
Analog Input Select
ANA0 input is selected for analog-to-digital conversion.
0001
ANA1 input is selected for analog-to-digital conversion.
0010
ANA2 input is selected for analog-to-digital conversion.
0011
ANA3 input is selected for analog-to-digital conversion.
0100
ANA4 input is selected for analog-to-digital conversion.
0101
ANA5 input is selected for analog-to-digital conversion.
0110
ANA6 input is selected for analog-to-digital conversion.
0111
ANA7 input is selected for analog-to-digital conversion.
1000
Hold LPO input nodes (ANA1 and ANA2) to ground.
1001
Temperature Sensor.
1100
Temperature Sensor output to ANA3 PAD.
1101
vbg_chop signal output to ANA3 PAD.
Others Reserved.
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
191
14.3.2. ADC Raw Data High Byte Register
The ADC Raw Data High Byte Register, shown in Table 102, contains the upper 8 bits of
raw data from the ADC output. Access to the ADC Raw Data High Byte register is readonly. This register is used for test only.
Table 102. ADC Raw Data High Byte Register (ADCRD_H)
Bits
7
6
5
4
3
Field
ADCRDh
Reset
X
R/W
R
Address
2
1
0
F71h
Value
(H)
Description
Bit Position
[7:0]
00–FF ADC Raw Data High Byte
The data in this register is the raw data coming from the SAR Block. It will
change as the conversion is in progress. This register is used for testing only.
14.3.3. ADC Data High Byte Register
The ADC Data High Byte Register, shown in Table 103, contains the upper eight bits of
the ADC output. Access to the ADC Data High Byte Register is read-only. Reading the
ADC Data High Byte Register latches data in the ADC Low Bits Register.
Table 103. ADC Data High Byte Register (ADCD_H)
Bits
7
6
5
4
3
Field
ADCDh
Reset
X
R/W
R
Address
Bit Position
[7:0]
PS025016-1013
2
1
0
F72h
Value
(H)
Description
00–FF ADC High Byte
The last conversion output is held in the data registers until the next ADC
conversion has completed.
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
192
14.3.4. ADC Data Low Bits Register
The ADC Data Low Bits Register, shown in Table 104, contains the lower bits of the ADC
output as well as an overflow status bit. Access to the ADC Data Low Bits Register is
read-only. Reading the ADC Data High Byte Register latches data in the ADC Low Bits
Register.
Table 104. ADC Data Low Bits Register (ADCD_L)
Bits
7
6
5
4
3
2
Field
ADCDL
Reserved
Reset
X
X
R/W
R
R
Address
1
0
F73h
Bit Position
Value Description
(H)
[7:6]
ADCDL
00–
11b
ADC Low Bit
These bits are the 2 least significant bits of the 10-bit ADC output; they are
undefined after a Reset. The Low bits are latched into this register whenever
the ADC Data High Byte register is read.
[5:0]
0
Reserved; must be 0.
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
193
14.3.5. Sample Settling Time Register
The Sample Settling Time Register, shown in Table 105, is used to program the length of
time from the SAMPLE/HOLD signal to the start signal, when the conversion can begin.
The number of clock cycles required for settling will vary from system to system
depending on the system clock period used. The system designer should program this
register to contain the number of clocks required to meet a 0.5 µs minimum settling time.
Table 105. Sample Settling Time (ADCSST)
Bits
7
6
5
Field
Reserved
Reset
0
R/W
R
4
3
2
1
0
1
1
SST
1
1
R/W
Address
F74h
Bit Position
Value Description
(H)
[7:4]
0
Reserved; must be 0.
[3:0]
SST
0–F
Sample settling time in number of system clock periods to meet 0.5 µs
minimum.
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
194
14.3.6. Sample Time Register
The Sample Time Register, shown in Table 106, is used to program the length of active
time for the sample after a conversion begins by setting the start bit in the ADC Control
Register or initiated by the PWM. The number of system clock cycles required for sample
time varies from system to system, depending on the clock period used. The system
designer should program this register to contain the number of system clocks required to
meet a 1.8 µs minimum sample time.
Table 106. Sample Time (ADCST)
Bits
7
6
Field
Reserved
Reset
0
R/W
5
4
3
2
1
0
1
1
1
ST
1
1
1
R/W
R/W
Address
F75h
Bit Position Value (H)
Description
[7:6]
0
Reserved; must be 0.
[5:0]
ST
00–3F
Sample Hold time in number of system clock periods to meet 1.8 µs minimum.
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
195
14.3.7. ADC Clock Prescale Register
The ADC Clock Prescale Register, shown in Table 107, is used to provide a divided system clock to the ADC. When this register is programmed with 0h, the System Clock is
used for the ADC Clock. DIV16 maintains the highest priority, DIV2 has the lowest priority.
Table 107. ADC Clock Prescale Register (ADCCP)
Bits
7
6
5
4
3
2
1
0
Field
Reserved
DIV16
DIV8
DIV4
DIV2
Reset
0
0
0
0
0
R/W
R/W
Address
F76h
Bit
Description
[7:4]
Reserved; must be 0.
[3]
DIV16
Divide by 16
0 = Clock is not divided.
1 = System Clock is divided by 16 for ADC Clock.
[2]
DIV8
Divide by 8
0 = Clock is not divided.
1 = System Clock is divided by 8 for ADC Clock.
[1]
DIV4
Divide by 4
0 = Clock is not divided.
1 = System Clock is divided by 4 for ADC Clock.
[0]
DIV2
Divide by 2
0 = Clock is not divided.
1 = System Clock is divided by 2 for ADC Clock.
Caution: The maximum ADC clock at 2.7 V–3.6 V is 5 MHz. The maximum ADC clock at 1.8 V–
2.7 V is 2.5 MHz. Set the Prescale Register correctly according to the different system
clocks. See the ADC Clock Prescale Register for details.
PS025016-1013
PRELIMINARY
Analog-to-Digital Converter
Z8 Encore! XP® F1680 Series
Product Specification
196
Chapter 15. Low-Power Operational
Amplifier
The low-power operational amplifier is a standard operational amplifier designed for
current measurements. Each of the three ports of the amplifier is accessible from the
package pins. The inverting input is commonly used to connect to the current source. The
output node connects an external feedback network to the inverting input. The noninverting output is required to apply a nonzero bias point. In a standard single-supply
system, this bias point must be substantially above ground to measure positive input
currents. The noninverting input can also be used for offset correction.
Note:
This amplifier is a voltage gain operational amplifier. Its transimpedance nature is determined by the feedback network.
The low-power operational amplifier contains only one pin configuration; ANA0 is the
output/feedback node, ANA1 is the inverting input and ANA2 is the noninverting input.
To use the low-power operational amplifier, it must be enabled in the Power Control Register Definitions, discussed on page 44. The default state of the low-power operational
amplifier is OFF. To use the low-power operational amplifier, the TRAM bit must be
cleared, turning it ON (see Power Control Register 0 on page 44). When making normal
ADC (i.e., not transimpedance) measurements on ANA0, the TRAM bit must be OFF.
Turning the TRAM bit ON interferes with normal ADC measurements. Finally, this bit
enables the amplifier even in STOP Mode. If the amplifier is not required in STOP Mode,
disable it. Failing to perform this results in STOP Mode currents greater than specified.
As with other ADC measurements, any pins used for analog purposes must be configured
as in the GPIO registers (see the Port A–E Alternate Function Subregisters on page 61).
Standard transimpedance measurements are made on ANA0 as selected by the
ANAIN[3:0] bits of the ADC Control Register 0, discussed on page 189. It is also possible
to make single-ended measurements on ANA1 and ANA2 when the amplifier is enabled
which is often useful for determining offset conditions.
PS025016-1013
PRELIMINARY
Low-Power Operational Amplifier
Z8 Encore! XP® F1680 Series
Product Specification
197
Chapter 16. Enhanced Serial Peripheral
Interface
The Enhanced Serial Peripheral Interface (ESPI) supports the Serial Peripheral Interface
(SPI) and other synchronous serial interface modes, such as Inter-IC Sound (I2S) and time
division multiplexing (TDM). ESPI includes the following features:
•
•
•
•
Full-duplex, synchronous, character-oriented communication
•
SLAVE Mode transfer rates up to a maximum of one-eighth the system clock
frequency
•
•
•
Error detection
Four-wire interface (SS, SCK, MOSI and MISO)
Data Shift Register is buffered to enable high throughput
MASTER Mode transfer rates up to a maximum of one-half the system clock
frequency
Dedicated Programmable Baud Rate Generator
Data transfer control via polling, interrupt
16.1. Architecture
The ESPI is a full-duplex, synchronous, character-oriented channel that supports a fourwire interface (serial clock, transmit data, receive data and slave select). The ESPI block
consists of a shift register, data buffer register, a Baud Rate (clock) Generator, control/
status registers and a control state machine. Transmit and receive transfers are in synch as
there is a single shift register for both transmitting and receiving data. Figure 33 displays a
diagram of the ESPI block.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
198
Peripheral Bus
Interrupt
ESPI Control
Register
ESPI Status
Register
ESPI BRH
Register
ESPI Mode
Register
ESPI State
Register
ESPI BRL
Register
ESPI State
Machine
Baud
Rate
Generator
Interrupt
count = 1
Data Register
SCK
Logic
Shift Register
0
1
2
3
4
5
6
7
data_out
SS out
SCK
in
SS in
MISO
in
MOSI
in
Pin Direction
Control
MISO
out
SCK
out
MOSI
out
GPIO Logic and Port Pins
SS
MISO
MOSI
SCK
Figure 33. ESPI Block Diagram
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
199
16.2. ESPI Signals
The four ESPI signals are:
•
•
•
•
Master-In/Slave-Out (MISO)
Master-Out/Slave-In (MOSI)
Serial Clock (SCK)
Slave Select (SS)
The following paragraphs discuss these signals as they operate in both MASTER and
SLAVE modes.
16.2.1. 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. Data is transferred most significant bit first. The MISO pin of
a Slave device is placed in a high-impedance state if the Slave is not selected. When the
ESPI is not enabled, this signal is in a high-impedance state. The direction of this pin is
controlled by the MMEN bit of the ESPI Control Register.
16.2.2. 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. Data is transferred most significant bit first. When the ESPI is
not enabled, this signal is in a high-impedance state. The direction of this pin is controlled
by the MMEN bit of the ESPI Control Register.
16.2.3. Serial Clock
The Serial Clock (SCK) synchronizes data movement both in and out of the Shift Register
via the MOSI and MISO pins. In MASTER Mode (MMEN = 1), the ESPI’s Baud Rate
Generator creates the serial clock and drives it out on its SCK pin to the slave devices. In
SLAVE Mode, the SCK pin is an input. Slave devices ignore the SCK signal, unless their
SS pin is asserted.
The Master and Slave are each capable of exchanging a character of data during a
sequence of NUMBITS clock cycles (see Table 112 on page 217). In both Master and
Slave ESPI devices, data is shifted on one edge of the SCK and is sampled on the opposite
edge where data is stable. SCK phase and polarity is determined by the PHASE and
CLKPOL bits in the ESPI Control Register.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
200
16.2.4. Slave Select
The Slave Select signal is a bidirectional framing signal with several modes of operation
to support SPI and other synchronous serial interface protocols. The Slave Select mode is
selected by the SSMD field of the ESPI Mode Register. The direction of the SS signal is
controlled by the SSIO bit of the ESPI Mode Register. The SS signal is an input on slave
devices and is an output on the active Master device. Slave devices ignore transactions on
the bus unless their Slave Select input is asserted. In SPI MASTER Mode, additional
GPIO pins are required to provide Slave Selects if there is more than one slave device.
16.3. Operation
During a transfer, data is sent and received simultaneously by both the Master and Slave
devices. Separate signals are required for transmit data, receive data and the serial clock.
When a transfer occurs, a multi-bit (typically 8-bit) character is shifted out one data pin
and a multi-bit character is simultaneously shifted in on second data pin. An 8-bit shift
register in the Master and an 8-bit shift register in the Slave are connected as a circular
buffer. The ESPI Shift Register is buffered to support back-to-back character transfers in
high-performance applications.
A transaction is initiated when the Data Register is written in the Master device. The value
from the Data Register is transferred into the Shift Register and the SPI transaction begins.
At the end of each character transfer, if the next transmit value has been written to the Data
Register, the data and shift register values are swapped, which places the new transmit
data into the Shift Register and the Shift Register contents (receive data) into the Data
Register. At that point the Receive Data Register Not Empty signal is asserted (RDRNE
bit set in the Status Register). After software reads the receive data from the Data Register,
the Transmit Data Register Empty signal is asserted (TDRE bit set in the Status Register)
to request the next transmit byte. To support back-to-back transfers without an intervening
pause, the receive and transmit interrupts must be serviced when the current character is
being transferred.
The Master sources the Serial Clock (SCK) and Slave Select signal (SS) during the
transfer.
Internal data movement (by software) to/from the ESPI block is controlled by the
Transmit Data Register Empty (TDRE) and Receive Data Register Not Empty (RDRNE)
signals. These signals are read-only bits in the ESPI Status Register. When either the
TDRE or RDRNE bits assert, an interrupt is sent to the interrupt controller. In many cases
the software application is only moving information in one direction. In this case either the
TDRE or RDRNE interrupts can be disabled to minimize software overhead.
Unidirectional data transfer is supported by setting the ESPIEN1,0 bits in the Control
Register to 10 or 01.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
201
16.3.1. Throughput
In MASTER Mode, the maximum SCK rate supported is one-half the system clock
frequency. This rate is achieved by programming the value 0001h into the Baud Rate
High/Low register pair. Though each character will be transferred at this rate it is unlikely
that software interrupt routines could keep up with this rate. In SPI mode the transfer will
automatically pause between characters until the current receive character is read and the
next transmit data value is written.
In SLAVE Mode, the transfer rate is controlled by the Master. As long as the TDRE and
RDRNE interrupt are serviced before the next character transfer completes, the Slave will
keep up with the Master. In SLAVE Mode the baud rate must be restricted to a maximum
of one-eighth of the system clock frequency to allow for synchronization of the SCK input
to the internal system clock.
16.3.2. ESPI Clock Phase and Polarity Control
The ESPI supports four combinations of serial clock phase and polarity using two bits in
the ESPI Control Register. The clock polarity bit, CLKPOL, selects an active High or
active Low clock and has no effect on the transfer format. Table 108 lists the ESPI Clock
Phase and Polarity Operation parameters. The clock phase bit, PHASE, selects one of two
fundamentally different transfer formats. The data is output a half-cycle before the receive
clock edge which provides a half cycle of setup and hold time.
Table 108. ESPI Clock Phase (PHASE) and Clock Polarity (CLKPOL) Operation
PHASE
CLKPOL
SCK Transmit Edge
SCK Receive Edge
SCK Idle State
0
0
Falling
Rising
Low
0
1
Rising
Falling
High
1
0
Rising
Falling
Low
1
1
Falling
Rising
High
16.3.2.1. Transfer Format when Phase Equals Zero
Figure 34 displays the timing diagram for an SPI type transfer, in which PHASE = 0. For
SPI transfers the clock only toggles during the character transfer. The two SCK
waveforms show polarity with CLKPOL = 0 and CLKPOL = 1. The diagram can be
interpreted as either a Master or Slave timing diagram because the SCK Master-In/SlaveOut (MISO) and Master-Out/Slave-In (MOSI) pins are directly connected between the
Master and the Slave.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
202
SCK
(CLKPOL = 0)
SCK
(CLKPOL = 1)
MOSI
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
MISO
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
Input Sample Time
SS
Figure 34. ESPI Timing when PHASE = 0
16.3.2.2. Transfer Format When Phase Equals One
Figure 35 displays a timing diagram for an SPI type transfer in which PHASE is one. For
SPI transfers the clock only toggles during the character transfer. Two waveforms are
depicted for SCK, one for CLKPOL = 0 and another for CLKPOL = 1.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
203
SCK
(CLKPOL = 0)
SCK
(CLKPOL = 1)
MOSI
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
MISO
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
Input Sample Time
SS
Figure 35. ESPI Timing when PHASE = 1
16.3.3. Slave Select Modes of Operation
This section describes the different modes of data transfer supported by the ESPI block.
The mode is selected by the Slave Select Mode (SSMD) field of the Mode Register.
16.3.3.1. SPI Mode
This mode is selected by setting the SSMD field of the Mode Register to 00. In this mode
software controls the assertion of the SS signal directly via the SSV bit of the SPI
Transmit Data Command register. Software can be used to control an SPI mode
transaction. Prior to or simultaneously with writing the first transmit data byte; software
sets the SSV bit. Software sets the SSV bit either by performing a byte write to the
Transmit Data Command register prior to writing the first transmit character to the Data
Register or by performing a word write to the Data Register address which loads the first
transmit character and simultaneously sets the SSV bit. SS will remain asserted when one
or more characters are transferred. There are two mechanisms for deasserting SS at the
end of the transaction. One method used by software is to set the TEOF bit of the Transmit
Data Command register, when the last TDRE interrupt is being serviced (set TEOF before
or simultaneously with writing the last data byte). After the last bit of the last character is
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
204
transmitted, the hardware will automatically deassert the SSV and TEOF bits. The second
method is for software to directly clear the SSV bit after the transaction completes. If
software clears the SSV bit directly it is not necessary for software to also set the TEOF bit
on the last transmit byte. After writing the last transmit byte, the end of the transaction can
be detected by waiting for the last RDRNE interrupt or monitoring the TFST bit in the
ESPI Status Register.
The transmit underrun and receive overrun errors will not occur in an SPI mode Master. If
the RDRNE and TDRE requests have not been serviced before the current byte transfer
completes, SCLK will be paused until the Data Register is read and written. The transmit
underrun and receive overrun errors will occur in a Slave if the Slave’s software does not
keep up with the Master data rate. In this case the Shift Register in the Slave will be loaded
with all 1s.
In the SPI mode, the SCK is active only for the data transfer with one SCK period per bit
transferred. If the SPI bus has multiple Slaves, the Slave Select lines to all or all but one of
the Slaves must be controlled independently by software using GPIO pins. Figure 36 displays multiple character transfer in SPI mode.
Note:
PS025016-1013
When character n is transferred via the Shift Register, software responds to the receive
request for character n-1 and the transmit request for character n+1.
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
205
SCK (SSMD = 00,
PHASE = 0,
CLKPOL = 0,
SSPO = 0)
MOSI, MISO
Data Register
Shift Register
Bit0
Bit7
Tx n
Rx n-1
Tx/Rx n-1
Bit6
Bit1
empty
Bit0
Bit7
Rx n
Tx n+1
Tx/Rx n
Bit 6
empty
Tx/Rx n+1
TDRE
RDRNE
ESPI Interrupt
Figure 36. SPI Mode (SSMD = 00)
16.3.3.2. Synchronous Frame Sync Pulse Mode
This mode is selected by setting the SSMD field of the Mode Register to 10. This mode is
typically used for continuous transfer of fixed length frames where the frames are
delineated by a pulse of duration one SCK period. The SSV bit in the ESPI Transmit Data
Command register does not control the SS pin directly in this mode. SSV must be set
before or in sync with the first transmit data byte being written. The SS signal will assert 1
SCK cycle before the first data bit and will stop after 1 SCK period. SCK is active from
the initial assertion of SS until the transaction end due to lack of transmit data.
The transaction is terminated by the Master when it no longer has data to send. If TDRE=1
at the end of a character, the SS output will remain detached and SCK stops after the last
bit is transferred. The TUND bit (transmit underrun) will assert in this case. After the
transaction has completed, hardware will clear the SSV bit. Figure 37 displays a frame
with synchronous frame sync pulse mode.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
206
SCK (SSMD = 10,
PHASE = 0,
CLKPOL = 0,
SSPO = 1)
MOSI, MISO
Bit7
Bit6
Bit1
Bit0
Bit7
Bit 6
SS
SSV
Figure 37. Synchronous Frame Sync Pulse mode (SSMD = 10)
16.3.3.3. Synchronous Framing with SS Mode
This mode is selected by setting the SSMD field of the Mode Register to 11. Figure 38
displays synchronous message framing mode with SS alternating between consecutive
frames. A frame consists of a fixed number of data bytes as defined by software. An
example of this mode is the Inter-IC Sound (I2S) protocol which is used to transfer left/
right channel audio data. The SSV indicates whether the corresponding bytes are left or
right channel data. The SSV value must be updated when servicing the TDRE interrupt/
request for the first byte in a left or write channel frame. This can be accomplished by
performing a word write when writing the first byte of the audio word, which will update
both the ESPI Data and Transmit Data Command words or by doing a byte write to update
SSV followed by a byte Write to the Data Register. The SS signal will lead the data by one
SCK period.
The transaction is terminated when the Master has no more data to transmit. After the last
bit is transferred, SCLK will stop and SS and SSV will return to their default states. A
transmit underrun error will occur at this point.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
207
SCK (SSMD = 11,
PHASE = 0,
CLKPOL = 0)
SS
MOSI, MISO
Bit7
Bit0
Bit7
frame n
Bit0
Bit 7
frame n + 1
Figure 38. Synchronous Message Framing Mode (SSMD = 11), Multiple Frames
16.3.4. SPI Protocol Configuration
This section describes in detail how to configure the ESPI block for the SPI protocol. In
the SPI protocol the Master sources the SCK and asserts Slave Select signals to one or
more Slaves. The Slave Select signals are typically active Low.
16.3.4.1. SPI Master Operation
The ESPI block is configured for MASTER Mode operation by setting the MMEN bit = 1
in the ESPICTL register. The SSMD field of the ESPI Mode Register is set to 00 for SPI
protocol mode. The PHASE, CLKPOL and WOR bits in the ESPICTL register and the
NUMBITS field in the ESPI Mode Register must be set to be consistent with the Slave SPI
devices. Typically for an SPI Master, SSIO = 1 and SSPO = 0.
The appropriate GPIO pins are configured for the ESPI alternate function on the MOSI,
MISO and SCK pins. Typically the GPIO for the ESPI SS pin is configured in an alternate
function mode as well though the software can use any GPIO pin(s) to drive one or more
Slave select lines. If the ESPI SS signal is not used to drive a Slave select the SSIO bit
should still be set to 1 in a single Master system. Figures 39 and 40 display a block
diagram of the the ESPI configured as an SPI Master.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
208
ESPI Master
To Slave’s SS Pin
From Slave
To Slave
To Slave
SS
MISO
8-bit Shift Register
Bit 0
Bit 7
MOSI
Baud Rate
Generator
SCK
Figure 39. ESPI Configured as an SPI Master in a Single Master, Single Slave System
ESPI Master
To Slave #2s SS Pin
GPIO
To Slave #1s SS Pin
GPIO
8-bit Shift Register
From Slaves
MISO
To Slaves
To Slaves
Bit 0
Bit 7
MOSI
SCK
Baud Rate
Generator
Figure 40. ESPI Configured as an SPI Master in a Single Master, Multiple Slave System
16.3.4.2. Multi-Master SPI Operation
In a Multi-Master SPI system, all SCK pins are tied together, all MOSI pins are tied
together and all MISO pins are tied together. All SPI pins must be configured in opendrain mode to prevent bus contention. At any time, only one SPI device is configured as
the Master and all other devices on the bus are configured as slaves. The Master asserts the
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
209
SS pin on the selected slave. Then, the active Master drives the clock and transmits data on
the SCK and MOSI pins to the SCK and MOSI pins on the Slave (including those Slaves
which are not enabled). The enabled slave drives data out its MISO pin to the MISO Master pin.
When the ESPI is configured as a Master in a Multi-Master SPI system, the SS pin must
be configured as an input. The SS input signal on a device configured as a Master should
remain High. If the SS signal on the active Master goes Low (indicating another Master is
accessing this device as a Slave), a Collision error flag is set in the ESPI Status Register.
The Slave select outputs on a Master in a Multi-Master system must come from GPIO
pins.
16.3.4.3. SPI Slave Operation
The ESPI block is configured for SLAVE Mode operation by setting the MMEN bit = 0 in
the ESPICTL register and setting the SSIO bit = 0 in the ESPIMODE register. The SSMD
field of the ESPI Mode Register is set to 00 for SPI protocol mode. The PHASE, CLKPOL
and WOR bits in the ESPICTL register and the NUMBITS field in the ESPIMODE register must be set to be consistent with the other SPI devices. Typically for an SPI Slave,
SSPO = 0.
If the Slave has data to send to the Master, the data must be written to the Data Register
before the transaction starts (first edge of SCK when SS is asserted). If the Data Register is
not written prior to the Slave transaction, the MISO pin outputs all 1s.
Due to the delay resulting from synchronization of the SS and SCK input signals to the
internal system clock, the maximum SCK baud rate that can be supported in SLAVE
Mode is the system clock frequency divided by 4. This rate is controlled by the SPI Master. Figure 41 displays the ESPI configuration in SPI SLAVE Mode.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
210
SPI Slave
From Master
To Master
From Master
From Master
SS
8-bit Shift Register
MISO
Bit 7
Bit 0
MOSI
SCK
Figure 41. ESPI Configured as an SPI Slave
16.3.5. Error Detection
Error events detected by the ESPI block are described in this section. Error events generate an ESPI interrupt and set a bit in the ESPI Status Register. The error bits of the ESPI
Status Register are Read/Write 1 to clear.
16.3.5.1. Transmit Underrun
A transmit underrun error occurs for a Master with SSMD = 10 or 11 when a character
transfer completes and TDRE = 1. In these modes when a transmit underrun occurs the
transfer will be aborted (SCK will halt and SSV will be deasserted). For a Master in SPI
mode (SSMD = 00), a transmit underrun is not signaled since SCK will pause and wait for
the Data Register to be written.
In SLAVE Mode, a transmit underrun error occurs if TDRE = 1 at the start of a transfer.
When a transmit underrun occurs in SLAVE Mode, ESPI will transmit a character of all
1s.
A transmit underrun sets the TUND bit in the ESPI Status Register to 1. Writing a 1 to
TUND clears this error flag.
16.3.5.2. Mode Fault (Multi-Master Collision)
A mode fault indicates when more than one Master is trying to communicate simultaneously (a Multi-Master collision) in SPI mode. The mode fault is detected when the enabled
Master’s SS input pin is asserted. For this to happen the Control and Mode registers must
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
211
be configured with MMEN = 1, SSIO = 0 (SS is an input) and SS input = 0. A mode fault
sets the COL bit in the ESPI Status Register to 1. Writing a 1 to COL clears this error flag.
16.3.5.3. Receive Overrun
A receive overrun error occurs when a transfer completes and the RDRNE bit is still set
from the previous transfer. A receive overrun sets the ROVR bit in the ESPI Status Register to 1. Writing a 1 to ROVR clears this error flag. The Receive Data Register is not overwritten and will contain the data from the transfer which initially set the RDRNE bit.
Subsequent received data is lost until the RDRNE bit is cleared.
In SPI MASTER Mode, a receive overrun will not occur. Instead, the SCK will be paused
until software responds to the previous RDRNE/TDRE requests.
16.3.5.4. SLAVE Mode Abort
In SLAVE Mode, if the SS pin deasserts before all bits in a character have been transferred, the transaction is aborted. When this condition occurs the ABT bit is set in the
ESPI Status Register. A Slave abort error resets the Slave control logic to idle state.
A Slave abort error is also asserted in SLAVE Mode, if BRGCTL = 1 and a baud rate
generator time-out occurs. When BRGCTL = 1 in SLAVE Mode, the baud rate generator
functions as a Watchdog Timer monitoring the SCK signal. The BRG counter is reloaded
every time a transition on SCK occurs while SS is asserted. The Baud Rate Reload
registers must be programmed with a value longer than the expected time between the SS
assertion and the first SCK edge, between SCK transitions while SS is asserted and
between the last SCK edge and SS deassertion. A time-out indicates the Master is stalled
or disabled. Writing a 1 to ABT clears this error flag.
16.3.6. ESPI Interrupts
ESPI has a single interrupt output which is asserted when any of the TDRE, TUND, COL,
ABT, ROVR or RDRNE bits are set in the ESPI Status Register. The interrupt is a pulse
which is generated when any one of the source bits initially sets. The TDRE and RDRNE
interrupts can be enabled/disabled via the Data Interrupt Request Enable (DIRQE) bit of
the ESPI Control Register.
A transmit interrupt is asserted by the TDRE status bit when the ESPI block is enabled and
the DIRQE bit is set. The TDRE bit in the Status register is cleared automatically when the
Data Register is written or the ESPI block is disabled. After the Data Register is loaded
into the Shift Register to start a new transfer, the TDRE bit will be set again, causing a
new transmit interrupt. In SLAVE Mode, if information is being received but not transmitted the transmit interrupts can be eliminated by selecting Receive Only mode (ESPIEN1,0
= 01). A Master cannot operate in Receive Only mode since a write to the ESPI (Transmit)
Data Register is still required to initiate the transfer of a character even if information is
being received but not transmitted by the software application.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
212
A receive interrupt is generated by the RDRNE status bit when the ESPI block is enabled,
the DIRQE bit is set and a character transfer completes. At the end of the character
transfer, the contents of the Shift Register are transferred into the Data Register, causing
the RDRNE bit to assert. The RDRNE bit is cleared when the Data Buffer is read as
empty. If information is being transmitted but not received by the software application, the
receive interrupt can be eliminated by selecting Transmit Only mode (ESPIEN1,0 = 10) in
either MASTER or SLAVE modes. When information is being sent and received under
interrupt control, RDRNE and TDRE will both assert simultaneously at the end of a
character transfer. Since the new receive data is in the Data Register, the receive interrupt
must be serviced before the transmit interrupt.
ESPI error interrupts occur if any of the TUND, COL, ABT and ROVR bits in the ESPI
Status Register are set. These bits are cleared by writing a 1. If the ESPI is disabled
(ESPIEN1, 0 = 00), an ESPI interrupt can be generated by a Baud Rate Generator timeout. This timer function must be enabled by setting the BRGCTL bit in the ESPICTL
register. This timer interrupt does not set any of the bits of the ESPI Status Register.
16.3.7. ESPI Baud Rate Generator
In ESPI MASTER Mode, the Baud Rate Generator creates a lower frequency serial clock
(SCK) for data transmission synchronization between the Master and the external Slave.
The input to the Baud Rate Generator is the system clock. The ESPI Baud Rate High and
Low Byte registers combine to form a 16-bit reload value, BRG[15:0], for the ESPI Baud
Rate Generator. The ESPI baud rate is calculated using the following equation:
System Clock Frequency Hz
SPI Baud Rate bits § s = -----------------------------------------------------------------------------------------2 BRG[15:0]
Minimum baud rate is obtained by setting BRG[15:0] to 0000h for a clock divisor value
of (2 x 65536 = 131072).
When the ESPI is disabled, the Baud Rate Generator can function as a basic 16-bit timer
with interrupt on time-out. Observe the following steps to configure the Baud Rate Generator as a timer with interrupt on time-out:
1. Disable the ESPI by clearing the ESPIEN1,0 bits in the ESPI Control Register.
2. Load the appropriate 16-bit count value into the ESPI Baud Rate High and Low Byte
registers.
3. Enable the Baud Rate Generator timer function and associated interrupt by setting the
BRGCTL bit in the ESPI Control Register to 1.
When configured as a general purpose timer, the SPI BRG interrupt interval is calculated
using the following equation:
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
213
SPI BRG Interrupt Interval (s) = System Clock Period (s) BRG[15:0]
16.4. ESPI Control Register Definitions
This section defines the features of the following ESPI Control registers.
ESPI Data Register: see page 213
ESPI Transmit Data Command and Receive Data Buffer Control Register: see page 214
ESPI Control Register: see page 215
ESPI Mode Register: see page 217
ESPI Status Register: see page 219
ESPI State Register: see page 220
ESPI Baud Rate High and Low Byte Registers: see page 221
16.4.1. ESPI Data Register
The ESPI Data Register, shown in Table 109, addresses both the outgoing Transmit Data
Register and the incoming Receive Data Register. Reads from the ESPI Data Register
return the contents of the Receive Data Register. The Receive Data Register is updated
with the contents of the Shift Register at the end of each transfer. Writes to the ESPI Data
Register load the Transmit Data Register unless TDRE = 0. Data is shifted out starting
with bit 7. The last bit received resides in bit position 0.
With the ESPI configured as a Master, writing a data byte to this register initiates the data
transmission. With the ESPI configured as a Slave, writing a data byte to this register
loads the Shift Register in preparation for the next data transfer with the external Master.
In either the MASTER or SLAVE modes, if TDRE = 0, writes to this register are ignored.
When the character length is less than 8 bits (as set by the NUMBITS field in the ESPI
Mode Register), the transmit character must be left justified in the ESPI Data Register. A
received character of less than 8 bits is right justified (last bit received is in bit position 0).
For example, if the ESPI is configured for 4-bit characters, the transmit characters must be
written to ESPIDATA[7:4] and the received characters are read from ESPIDATA[3:0].
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
214
Table 109. ESPI Data Register (ESPIDATA)
Bits
7
6
5
4
Field
2
1
0
DATA
Reset
R/W
3
X
X
X
X
X
X
X
X
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F60h
Bit
Description
[7:0]
DATA
Data
Transmit and/or receive data. Writes to the ESPIDATA register load the Shift Register. Reads
from the ESPIDATA register return the value of the Receive Data Register.
16.4.2. ESPI Transmit Data Command and Receive Data
Buffer Control Register
The ESPI Transmit Data Command and Receive Data Buffer Control Register, shown in
Table 110, provides control of the SS pin when it is configured as an output (MASTER
Mode), clear receive data buffer function and flag. The CRDR, TEOF and SSV bits can be
controlled by a bus write to this register.
Table 110. ESPI Transmit Data Command and Receive Data Buffer Control Register (ESPITDCR)
Bits
7
Field
CRDR
RDFLAG
Reset
0
00
0
0
R/W
R
R
R
R/W
Address
6
5
4
3
2
1
0
TEOF
SSV
0
0
0
R
R/W
R/W
Reserved
F61h
Bit
Description
[7]
CRDR
Clear Receive Data Register
Writing 1 to this bit is used to clear all data in receive data buffer.
[6:5]
Receive Data Buffer Flag
RDFLAG This bit is used to indicate how many bytes stored in receive buffer.
00 = 0 or 4 bytes (see RDRNE in the ESPI Status Register).
01 = 1 byte.
02 = 2 bytes.
03 = 3 bytes.
[4:2]
Reserved
These bits are reserved and must be programmed to 000.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
215
Bit
Description
[1]
TEOF
Transmit End of Frame
This bit is used in MASTER Mode to indicate that the data in the Transmit Data Register is the
last byte of the transfer or frame. When the last byte has been sent SS (and SSV) will change
state and TEOF will automatically clear.
0 = The data in the Transmit Data Register is not the last character in the message.
1 = The data in the Transmit Data Register is the last character in the message.
[0]
SSV
Slave Select Value
When SSIO = 1, writes to this register will control the value output on the SS pin. For more
details, see the SSMD field of the ESPI Mode Register on page 217.
16.4.3. ESPI Control Register
The ESPI Control Register, shown in Table 111, configures the ESPI for transmit and
receive operations.
Table 111. ESPI Control Register
Bits
7
6
5
4
3
2
1
0
Field
DIRQE
ESPIEN1
BRGCTL
PHASE
CLKPOL
WOR
MMEN
ESPIEN0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F62h
Bit
Description
[7]
DIRQE
Data Interrupt Request Enable
This bit is used to disable or enable data (TDRE and RDRNE) interrupts. Disabling the data
interrupts is needed to control data transfer by polling. Error interrupts are not disabled. To
block all ESPI interrupt sources, clear the ESPI interrupt enable bit in the Interrupt Controller.
0 = TDRE and RDRNE assertions do not cause an interrupt. Use this setting if controlling data
transfer by software polling of TDRE and RDRNE. The TUND, COL, ABT and ROVR bits
will cause an interrupt.
1 = TDRE and RDRNE assertions will cause an interrupt. TUND, COL, ABT and ROVR will
also cause interrupts. Use this setting when controlling data transfer via interrupt handlers.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
216
Bit
Description (Continued)
[6,0]
ESPI Enable and Direction Control
ESPIEN1, 00 = The ESPI block is disabled. BRG can be used as a general-purpose timer by setting
ESPIEN0
BRGCTL = 1.
01 = Receive Only Mode. Use this setting in SLAVE Mode if software application is receiving
data but not sending. TDRE will not assert. Transmitted data will be all 1s. Not valid in
MASTER Mode since Master must source data to drive the transfer.
10 = Transmit Only Mode
Use this setting in MASTER or SLAVE Mode when the software application is sending
data but not receiving. RDRNE will not assert.
11 = Transmit/Receive Mode
Use this setting if the software application is both sending and receiving information. Both
TDRE and RDRNE will be active.
[5]
Baud Rate Generator Control
BRGCTL The function of this bit depends upon ESPIEN1,0. When ESPIEN1,0 = 00, this bit allows
enabling the BRG to provide periodic interrupts.
If the ESPI is disabled
0 = The Baud Rate Generator timer function is disabled. Reading the Baud Rate High and Low
registers returns the BRG reload value.
1 = The Baud Rate Generator timer function and time-out interrupt is enabled. Reading the
Baud Rate High and Low registers returns the BRG Counter value.
If the ESPI is enabled
0 = Reading the Baud Rate High and Low registers returns the BRG reload value. If MMEN =
1, the BRG is enabled to generate SCK. If MMEN = 0, the BRG is disabled.
1 = Reading the Baud Rate High and Low registers returns the BRG Counter value. If MMEN =
1, the BRG is enabled to generate SCK. If MMEN = 0 the BRG is enabled to provide a
Slave SCK time-out. See the SLAVE Mode Abort error description on page 211.
Caution: If reading the counter one byte at a time while the BRG is counting keep in mind that
the values will not be in sync. Zilog recommends reading the counter using (2-byte) word
reads.
[4]
PHASE
Phase Select
Sets the phase relationship of the data to the clock. For more information about operation of
the PHASE bit, see the ESPI Clock Phase and Polarity Control section on page 201.
[3]
Clock Polarity
CLKPOL 0 = SCK idles Low (0).
1 = SCK idles High (1).
[2]
WOR
Wire-OR (Open-Drain) Mode Enabled
0 = ESPI signal pins not configured for open-drain.
1 = All four ESPI signal pins (SCK, SS, MISO and MOSI) configured for open-drain function.
This setting is typically used for multi-Master and/or Multi-Slave configurations.
[1]
MMEN
ESPI MASTER Mode Enable
This bit controls the data I/O pin selection and SCK direction.
0 = Data out on MISO, data in on MOSI (used in SPI SLAVE Mode), SCK is an input.
1 = Data out on MOSI, data in on MISO (used in SPI MASTER Mode), SCK is an output.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
217
16.4.4. ESPI Mode Register
The ESPI Mode Register, shown in Table 112, configures the character bit width and
mode of the ESPI I/O pins.
Table 112. ESPI Mode Register (ESPIMODE)
Bits
7
6
5
4
3
2
0
SSIO
SSPO
Field
SSMD
Reset
000
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
NUMBITS[2:0]
1
F63h
Bit
Description
[7:5]
SSMD
Slave Select Mode
This field selects the behavior of SS as a framing signal. For a detailed description of
these modes, see Slave Select on page 200.
000 = SPI Mode
When SSIO = 1, the SS pin is driven directly from the SSV bit in the Transmit Data
Command Register. The Master software should set SSV (or a GPIO output if the SS pin
is not connected to the appropriate Slave) to the asserted state prior to or on the same
clock cycle that the Transmit Data Register is written with the initial byte. At the end of a
frame (after the last RDRNE event), SSV will be automatically deasserted by hardware.
In this mode, SCK is active only for data transfer (one clock cycle per bit transferred).
001 = Loopback Mode
When ESPI is configured as Master (MMEN = 1), the outputs are deasserted and data is
looped from Shift Register Out to Shift Register In. When ESPI is configured as a Slave
(MMEN = 0) and SS in asserts, MISO (Slave output) is tied to MOSI (Slave input) to
provide an asynchronous remote loop back (echo) function.
010 = I2S Mode (Synchronous Framing with SSV)
In this mode, the value from SSV will be output by the Master on the SS pin with one SCK
period before the data and will remain in that state until the start of the next frame.
Typically this mode is used to send back to back frames with SS alternating on each
frame. A frame boundary is indicated in the Master when SSV changes. A frame
boundary is detected in the Slave by SS changing state. The SS framing signal will lead
the frame by one SCK period. In this mode SCK will run continuously, starting with the
initial SS assertion. Frames will run back-to-back as long as software continues to
provide data. An example of this mode is the I2S protocol (Inter IC Sound) which is used
to carry left and right channel audio data with the SS signal indicating which channel is
being sent. In SLAVE Mode, the change in state of SS (Low to High or High to Low)
triggers the start of a transaction on the next SCK cycle.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
218
Bit
Description (Continued)
[4:2]
Number of Data Bits Per Character to Transfer
NUMBITS[2:0] This field contains the number of bits to shift for each character transfer. For information
about valid bit positions when the character length is less than 8 bits, see the description
of the ESPI Data Register on page 213.
000 = 8 bits
001 = 1 bit
010 = 2 bits
011 = 3 bits
100 = 4 bits
101 = 5 bits
110 = 6 bits
111 = 7 bits
[1]
SSIO
Slave Select I/O
This bit controls the direction of the SS pin. In single MASTER Mode, SSIO is set to 1
unless a separate GPIO pin is being used to provide the SS output function. In the SPI
Slave or multi-Master configuration, SSIO is set to 0.
0 = SS pin configured as an input (SPI SLAVE and MULTI-MASTER modes).
1 = SS pin configured as an output (SPI SINGLE MASTER Mode).
[0]
SSPO
Slave Select Polarity
This bit controls the polarity of the SS pin.
0 = SS is active Low. (SSV = 1 corresponds to SS = 0).
1 = SS is active High. (SSV = 1 corresponds to SS = 1).
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
219
16.4.5. ESPI Status Register
The ESPI Status Register, shown in Table 113, indicates the current state of the ESPI. All
bits revert to their Reset state if the ESPI is disabled.
Table 113. ESPI Status Register (ESPISTAT)
Bits
7
6
5
4
3
2
1
0
Field
TDRE
TUND
COL
ABT
ROVR
RDRNE
TFST
SLAS
Reset
1
0
0
0
0
0
0
1
R/W
R
R/W*
R/W*
R/W*
R/W*
R
R
R
Address
F64h
Note: R/W* = Read access. Write a 1 to clear the bit to 0.
Bit
Description
[7]
TDRE
Transmit Data Register Empty
0 = Transmit Data Register is full or ESPI is disabled.
1 = Transmit Data Register is empty. A write to the ESPI (Transmit) Data Register clears this bit.
[6]
TUND
Transmit Underrun
0 = A Transmit Underrun error has not occurred.
1 = A Transmit Underrun error has occurred.
[5]
COL
Collision
0 = A multi-Master collision (mode fault) has not occurred.
1 = A multi-Master collision (mode fault) has occurred.
[4]
ABT
SLAVE Mode Transaction Abort
This bit is set if the ESPI is configured in SLAVE Mode, a transaction is occurring and SS
deasserts before all bits of a character have been transferred as defined by the NUMBITS field
of the ESPIMODE register. This bit can also be set in SLAVE Mode by an SCK monitor timeout (MMEN = 0, BRGCTL = 1).
0 = A SLAVE Mode transaction abort has not occurred.
1 = A SLAVE Mode transaction abort has occurred.
[3]
ROVR
Receive Overrun
0 = A Receive Overrun error has not occurred.
1 = A Receive Overrun error has occurred.
[2]
RDRNE
Receive Data Register Not Empty
0 = Receive Data Register is empty.
1 = Receive Data Register is not empty.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
220
Bit
Description (Continued)
[1]
TFST
Transfer Status
0 = No data transfer is currently in progress.
1 = Data transfer is currently in progress.
[0]
SLAS
Slave Select
Reading this bit returns the current value of the SS pin.
0 = The SS pin input is Low.
1 = The SS pin input is High.
16.4.6. ESPI State Register
The ESPI State Register, shown in Table 114, lets you observe the ESPI clock, data and
internal state.
Table 114. ESPI State Register (ESPISTATE)
Bits
7
6
Field
SCKI
SDI
ESPISTATE
Reset
0
0
0
R/W
R
R
R
Address
5
4
3
2
1
0
F65h
Bit
Description
[7]
SCKI
Serial Clock Input
This bit reflects the state of the serial clock pin.
0 = The SCK input pin is Low.
1 = The SCK input pin is High.
[6]
SDI
Serial Data Input
This bit reflects the state of the serial data input (MOSI or MISO depending on the MMEN
bit).
0 = The serial data input pin is Low.
1 = The serial data input pin is High.
[5:0]
ESPISTATE
ESPI State Machine
Indicates the current state of the internal ESPI State Machine. This information is
intended for manufacturing test purposes. The state values may change in future
hardware revisions and are not intended to be used by a software driver.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
221
Table 115 defines the valid ESPI states.
Table 115. ESPISTATE Values
ESPISTATE Value
Description
00_0000
Idle
00_0001
Slave Wait For SCK
01_0001
Master Ready
10_1110
Bit 7 Receive
10_1111
Bit 7 Transmit
10_1100
Bit 6 Receive
10_1101
Bit 6 Transmit
10_1010
Bit 5 Receive
10_1011
Bit 5 Transmit
10_1000
Bit 4 Receive
10_1001
Bit 4 Transmit
10_0110
Bit 3 Receive
10_0111
Bit 3 Transmit
10_0100
Bit 2 Receive
10_0101
Bit 2 Transmit
10_0010
Bit 1 Receive
10_0011
Bit 1 Transmit
10_0000
Bit 0 Receive
10_0001
Bit 0 Transmit
16.4.7. ESPI Baud Rate High and Low Byte Registers
The ESPI Baud Rate High and Low Byte registers, shown in Tables 116 and 117, combine
to form a 16-bit reload value, BRG[15:0], for the ESPI Baud Rate Generator. The ESPI
baud rate is calculated using the following equation:
System Clock Frequency Hz
SPI Baud Rate bits § s = -------------------------------------------------------------------------------2 BRG[15:0]
The minimum baud rate is obtained by setting BRG[15:0] to 0000h for a clock divisor
value of (2 x 65536 = 131072).
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
222
Table 116. ESPI Baud Rate High Byte Register (ESPIBRH)
Bits
7
6
5
4
Field
2
1
0
BRH
Reset
R/W
3
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F66h
Bit
Description
[7:0]
BRH
ESPI Baud Rate High Byte
The most significant byte, BRG[15:8], of the ESPI Baud Rate Generator’s reload value.
Table 117. ESPI Baud Rate Low Byte Register (ESPIBRL)
Bits
7
6
5
4
Field
2
1
0
BRL
Reset
R/W
3
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/w
Address
F67h
Bit
Description
[7:0]
BRL
ESPI Baud Rate Low Byte
The least significant byte, BRG[7:0], of the ESPI Baud Rate Generator’s reload value.
PS025016-1013
PRELIMINARY
Enhanced Serial Peripheral Interface
Z8 Encore! XP® F1680 Series
Product Specification
223
Chapter 17. I2C Master/Slave Controller
The I2C Master/Slave Controller ensures that the Z8 Encore! XP F1680 Series devices are
bus-compatible with the I2C protocol. The I2C bus consists of the serial data signal (SDA)
and a serial clock signal (SCL) bidirectional lines. The features of I2C controller include:
•
•
•
•
•
•
•
•
•
Operates in MASTER/SLAVE or SLAVE ONLY modes
Supports arbitration in a multimaster environment (MASTER/SLAVE Mode)
Supports data rates up to 400 Kbps
7-bit or 10-bit slave address recognition (interrupt only on address match)
Optional general call address recognition
Optional digital filter on receive SDA, SCL lines
Optional interactive receive mode allows software interpretation of each received address and/or data byte before acknowledging
Unrestricted number of data bytes per transfer
Baud Rate Generator can be used as a general-purpose timer with an interrupt, if the
I2C controller is disabled
17.1. Architecture
Figure 42 displays the architecture of the I2C controller.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
224
SDA
SCL
Shift
SHIFT
Load
I2CDATA
Baud Rate Generator
I2CBRH
I2CBRL
Tx/Rx State Machine
I2CISTAT
I2CCTL
I2CMODE
I2CSLVAD
I2C Interrupt
I2CSTATE
Register Bus
Figure 42. I2C Controller Block Diagram
17.1.1. I2C Master/Slave Controller Registers
Table 118 summarizes the I2C Master/Slave controller’s software-accessible registers.
Table 118. I2C Master/Slave Controller Registers
Name
Abbreviation
Description
I C Data
I2CDATA
Transmit/Receive Data Register.
I2C
I2CISTAT
Interrupt status register.
I2CCTL
Control Register—basic control functions.
2
Interrupt Status
2
I C Control
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
225
Table 118. I2C Master/Slave Controller Registers (Continued)
Name
Abbreviation
Description
I C Baud Rate High
I2CBRH
High byte of baud rate generator initialization value.
I2C
2
I2CBRL
Low byte of baud rate generator initialization value.
2
Baud Rate Low
I2CSTATE
State register.
2
I C Mode
I2CMODE
Selects MASTER or SLAVE modes, 7-bit or 10-bit addressing;
configure address recognition, define slave address bits [9:8].
I2C Slave Address
I2CSLVAD
Defines slave address bits [7:0].
I C State
17.2. Operation
The I2C Master/Slave Controller operates in MASTER/SLAVE Mode, SLAVE ONLY
Mode, or with master arbitration. In MASTER/SLAVE Mode, it can be used as the only
Master on the bus or as one of the several masters on the bus, with arbitration. In a MultiMaster environment, the controller switches from MASTER to SLAVE Mode on losing
arbitration.
Though slave operation is fully supported in MASTER/SLAVE Mode, if a device is
intended to operate only as a slave, then SLAVE ONLY mode can be selected. In SLAVE
ONLY mode, the device will not initiate a transaction, even if the software inadvertently
sets the start bit.
17.2.1. SDA and SCL Signals
The I2C circuit sends all addresses, Data and Acknowledge signals over the SDA line,
with most-significant bit first. SCL is the clock for the I2C bus. When the SDA and SCL
pin alternate functions are selected for their respective GPIO ports, the pins are automatically configured for open-drain operation.
The Master is responsible for driving the SCL clock signal. During the Low period of the
clock, a slave can hold the SCL signal Low to suspend the transaction if it is not ready to
proceed. The Master releases the clock at the end of the Low period and notices that the
clock remains Low instead of returning to a High level. When the slave releases the clock,
the I2C master continues the transaction. All data is transferred in bytes; there is no limit to
the amount of data transferred in one operation. When transmitting address, data, or an
Acknowledge, the SDA signal changes in the middle of the Low period of SCL. When
receiving address, Data, or an Acknowledge; the SDA signal is sampled in the middle of
the High period of SCL.
A low-pass digital filter can be applied to the SDA and SCL receive signals by setting the
Filter Enable (FILTEN) bit in the I2C Control Register. When the filter is enabled, any
glitch that is less than a system clock period in width will be rejected. This filter should be
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
226
enabled when running in I2C FAST Mode (400 Kbps) and can also be used at lower data
rates.
17.2.2. I2C Interrupts
The I2C controller contains multiple interrupt sources that are combined into one interrupt
request signal to the interrupt controller. If the I2C controller is enabled, the source of the
interrupt is determined by which bits are set in the I2CISTAT Register. If the I2C controller is disabled, the BRG controller is used to generate general-purpose timer interrupts.
Each interrupt source, other than the baud rate generator interrupt, features an associated
bit in the I2CISTAT Register that clears automatically when software reads the register or
performs another task, such as reading/writing the Data Register.
17.2.2.1. Transmit Interrupts
Transmit interrupts (TDRE bit = 1 in I2CISTAT) occur under the following conditions,
both of which must be true:
•
•
The Transmit Data Register is empty and the TXI bit = 1 in the I2C Control Register.
The I2C controller is enabled with one of the following elements:
– The first bit of a 10-bit address is shifted out.
– The first bit of the final byte of an address is shifted out and the RD bit is
deasserted.
– The first bit of a data byte is shifted out.
Writing to the I2C Data Register always clears the TRDE bit to 0.
17.2.2.2. Receive Interrupts
Receive interrupts (RDRF bit = 1 in I2CISTAT) occur when a byte of data has been
received by the I2C controller. The RDRF bit is cleared by reading from the I2C Data
Register. If the RDRF interrupt is not serviced prior to the completion of the next Receive
byte, the I2C controller holds SCL Low during the final data bit of the next byte until
RDRF is cleared, to prevent receive overruns. A receive interrupt does not occur when a
Slave receives an address byte or for data bytes following a slave address that do not
match. An exception is if the Interactive Receive Mode (IRM ) bit is set in the I2CMODE
Register, in which case Receive interrupts occur for all Receive address and data bytes in
SLAVE Mode.
17.2.2.3. Slave Address Match Interrupts
Slave address match interrupts (SAM bit = 1 in I2CISTAT) occur when the I2C controller
is in SLAVE Mode and an address received matches the unique slave address. The
General Call Address (0000_0000) and STARTBYTE (0000_0001) are recognized if the
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
227
GCE bit = 1 in the I2CMODE Register. The software checks the RD bit in the I2CISTAT
Register to determine if the transaction is a Read or Write transaction. The General Call
Address and STARTBYTE address are also distinguished by the RD bit. The General Call
Address (GCA) bit of the I2CISTAT Register indicates whether the address match
occurred on the unique slave address or the General Call/STARTBYTE address. The SAM
bit clears automatically when the I2CISTAT Register is read.
If configured via the MODE[1:0] field of the I2C Mode Register for 7-bit slave
addressing, the most significant 7 bits of the first byte of the transaction are compared
against the SLA[6:0] bits of the Slave Address Register. If configured for 10-bit slave
addressing, the first byte of the transaction is compared against {11110,SLA[9:8], R/W}
and the second byte is compared against SLA[7:0].
17.2.2.4. Arbitration Lost Interrupts
Arbitration Lost interrupts (ARBLST bit = 1 in I2CISTAT) occur when the I2C controller
is in MASTER Mode and loses arbitration (outputs 1 on SDA and receives 0 on SDA).
The I2C controller switches to SLAVE Mode when this instance occurs. This bit clears
automatically when the I2CISTAT Register is read.
17.2.2.5. Stop/Restart Interrupts
A Stop/Restart event interrupt (SPRS bit = 1 in I2CISTAT) occurs when the I2C controller
is operating in SLAVE Mode and a stop or restart condition is received, indicating the end
of the transaction. The RSTR bit in the I2C State Register indicates whether the bit is set
due to a stop or restart condition. When a restart occurs, a new transaction by the same
master is expected to follow. This bit is cleared automatically when the I2CISTAT Register is read. The Stop/Restart interrupt occurs only on a selected (address match) slave.
17.2.2.6. Not Acknowledge Interrupts
Not Acknowledge interrupts (NCKI bit = 1 in I2CISTAT) occur in MASTER Mode when
Not Acknowledge is received or sent by the I2C controller and the start or stop bit is not
set in the I2C Control Register. In MASTER Mode, the Not Acknowledge interrupt clears
by setting the start or stop bit. When this interrupt occurs in MASTER Mode, the I2C
controller waits until it is cleared before performing any action. In SLAVE Mode, the Not
Acknowledge interrupt occurs when a Not Acknowledge is received in response to data
sent. The NCKI bit clears in SLAVE Mode when software reads the I2CISTAT Register.
17.2.2.7. General Purpose Timer Interrupt from Baud Rate Generator
If the I2C controller is disabled (IEN bit in the I2CCTL Register = 0) and the BIRQ bit in
the I2CCTL Register = 1, an interrupt is generated when the baud rate generator (BRG)
counts down to 1. The baud rate generator reloads and continues counting, providing a
periodic interrupt. None of the bits in the I2CISTAT Register are set, allowing the BRG in
the I2C Controller to be used as a general-purpose timer when the I2C Controller is
disabled.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
228
17.2.3. Start and Stop Conditions
The Master generates the start and stop conditions to start or end a transaction. To start a
transaction, the I2C controller generates a start condition by pulling the SDA signal Low
while SCL is High. To complete a transaction, the I2C controller generates a stop
condition by creating a Low-to-High transition of the SDA signal while the SCL signal is
High. These start and stop events occur when the start and stop bits in the I2C Control
Register are written by software to begin or end a transaction. Any byte transfer currently
under way including the Acknowledge phase finishes before the start or stop condition
occurs.
17.2.4. Software Control of I2C Transactions
The I2C controller is configured via the I2C Control and I2C Mode registers. The
MODE[1:0] field of the I2C Mode Register allows the configuration of the I2C controller
for MASTER/SLAVE or SLAVE ONLY mode and configures the slave for 7-bit or 10-bit
addressing recognition.
MASTER/SLAVE Mode can be used for:
•
•
•
MASTER ONLY operation in a Single Master/One or More Slave I2C system
MASTER/SLAVE in a Multimaster/multislave I2C system
SLAVE ONLY operation in an I2C system
In SLAVE ONLY mode, the start bit of the I2C Control Register is ignored (software cannot initiate a master transaction by accident) and operation to SLAVE ONLY Mode is
restricted thereby preventing accidental operation in MASTER Mode. The software controls I2C transactions by enabling the I2C controller interrupt in the interrupt controller or
by polling the I2C Status Register.
To use interrupts, the I2C interrupt must be enabled in the interrupt controller and followed
by executing an EI instruction. The TXI bit in the I2C Control Register must be set to
enable transmit interrupts. An I2C interrupt service routine then checks the I2C Status
Register to determine the cause of the interrupt.
To control transactions by polling, the TDRE, RDRF, SAM, ARBLST, SPRS and NCKI
interrupt bits in the I2C Status Register should be polled. The TDRE bit asserts regardless
of the state of the TXI bit.
17.2.5. Master Transactions
The following sections describe Master Read and Write transactions to both 7-bit and 10bit slaves.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
229
17.2.5.1. Master Arbitration
If a Master loses arbitration during the address byte it releases the SDA line, switches to
SLAVE Mode and monitors the address to determine if it is selected as a Slave. If a Master loses arbitration during the transmission of a data byte, it releases the SDA line and
waits for the next stop or start condition.
The Master detects a loss of arbitration when a 1 is transmitted but a 0 is received from the
bus in the same bit-time. This loss occurs if more than one Master is simultaneously
accessing the bus. Loss of arbitration occurs during the address phase (two or more
Masters accessing different slaves) or during the data phase, when the masters are
attempting to Write different data to the same Slave.
When a Master loses arbitration, the software is informed by means of the Arbitration Lost
interrupt. The software can repeat the same transaction at a later time.
A special case can occur when a Slave transaction starts just before the software attempts
to start a new master transaction by setting the start bit. In this case, the state machine
enters its Slave states before the start bit is set and as a result the I2C controller will not
arbitrate. If a Slave address match occurs and the I2C controller receives/transmits data,
the start bit is cleared and an Arbitration Lost interrupt is asserted. The software can
minimize the chance of this instance occurring by checking the busy bit in the I2CSTATE
Register before initiating a Master transaction. If a slave address match does not occur, the
Arbitration Lost interrupt will not occur and the start bit will not be cleared. The I2C
controller will initiate the master transaction after the I2C bus is no longer busy.
17.2.5.2. Master Address-Only Transactions
It is sometimes preferable to perform an address-only transaction to determine if a
particular slave device is able to respond. This transaction can be performed by
monitoring the ACKV bit in the I2CSTATE Register after the address has been written to
the I2CDATA Register and the start bit has been set. After the ACKV bit is set, the ACK
bit in the I2CSTATE Register determines if the slave is able to communicate. The stop bit
must be set in the I2CCTL Register to terminate the transaction without transferring data.
For a 10-bit slave address, if the first address byte is acknowledged, the second address
byte should also be sent to determine if the preferred Slave is responding.
Another approach is to set both the stop and start bits (for sending a 7-bit address). After
both bits have been cleared (7-bit address has been sent and transaction is complete), the
ACK bit can be read to determine if the Slave has acknowledged. For a 10-bit Slave, set
the stop bit after the second TDRE interrupt (which indicates that the second address byte
is being sent).
17.2.5.3. Master Transaction Diagrams
In the following transaction diagrams, the shaded regions indicate the data that is
transferred from the Master to the Slave and the unshaded regions indicate the data that is
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
230
transferred from the Slave to the Master. The transaction field labels are defined as
follows:
S
Start
W
Write
A
Acknowledge
A
Not Acknowledge
P
Stop
17.2.5.4. Master Write Transaction with a 7-Bit Address
Figure 43 displays the data transfer format from a Master to a 7-bit addressed slave.
S
Slave
Address
W=0
A
Data
A
Data
A
Data
A/A
P/S
Figure 43. Data Transfer Format—Master Write Transaction with a 7-Bit Address
Observe the following steps for a Master transmit operation to a 7-bit addressed slave:
1. The software initializes the MODE field in the I2C Mode Register for MASTER/
SLAVE Mode with either a 7-bit or 10-bit slave address. The MODE field selects the
address width for this mode when addressed as a slave (but not for the remote slave).
The software asserts the IEN bit in the I2C Control Register.
2. The software asserts the TXI bit of the I2C Control Register to enable transmit
interrupts.
3. The I2C interrupt asserts, because the I2C Data Register is empty.
4. The software responds to the TDRE bit by writing a 7-bit slave address plus the Write
bit (which is cleared to 0) to the I2C Data Register.
5. The software sets the start bit of the I2C Control Register.
6. The I2C controller sends a start condition to the I2C slave.
7. The I2C controller loads the I2C Shift Register with the contents of the I2C Data
Register.
8. After one bit of the address has been shifted out by the SDA signal, the transmit
interrupt asserts.
9. The software responds by writing the transmit data into the I2C Data Register.
10. The I2C controller shifts the remainder of the address and the Write bit out via the
SDA signal.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
231
11. The I2C slave sends an Acknowledge (by pulling the SDA signal Low) during the next
High period of SCL. The I2C controller sets the ACK bit in the I2C Status Register.
If the slave does not acknowledge the address byte, the I2C controller sets the NCKI
bit in the I2C Status Register, sets the ACKV bit and clears the ACK bit in the I2C
State Register. The software responds to the Not Acknowledge interrupt by setting the
stop bit and clearing the TXI bit. The I2C controller flushes the Transmit Data Register, sends a stop condition on the bus and clears the stop and NCKI bits. The transaction is complete and the following steps can be ignored.
12. The I2C controller loads the contents of the I2C Shift Register with the contents of the
I2C Data Register.
13. The I2C controller shifts the data out via the SDA signal. After the first bit is sent, the
transmit interrupt asserts.
14. If more bytes remain to be sent, return to Step 9.
15. When there is no more data to be sent, the software responds by setting the stop bit of
the I2C Control Register (or the start bit to initiate a new transaction).
16. If no additional transaction is queued by the master, the software can clear the TXI bit
of the I2C Control Register.
17. The I2C controller completes transmission of the data on the SDA signal.
18. The I2C controller sends a stop condition to the I2C bus.
Note: If the slave terminates the transaction early by responding with a Not Acknowledge during
the transfer, the I2C controller asserts the NCKI interrupt and halts. The software must terminate the transaction by setting either the stop bit (end transaction) or the start bit (end
this transaction, start a new one). In this case, it is not necessary for software to set the
FLUSH bit of the I2CCTL Register to flush the data that was previously written but not
transmitted. The I2C controller hardware automatically flushes transmit data in the not
acknowledge case.
17.2.5.5. Master Write Transaction with a 10-Bit Address
Figure 44 displays the data transfer format from a Master to a 10-bit addressed slave.
S
Slave Address
1st Byte
W=0
A
Slave Address
2nd Byte
A
Data
A
Data
A/A
F/S
Figure 44. Data Transfer Format—Master Write Transaction with a 10-Bit Address
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
232
The first 7 bits transmitted in the first byte are 11110XX. The 2 XX bits are the two most
significant bits of the 10-bit address. The lowest bit of the first byte transferred is the
Read/Write control bit (which is cleared to 0). The transmit operation is performed in the
same manner as 7-bit addressing.
Observe the following steps for a master transmit operation to a 10-bit addressed slave:
1. The software initializes the MODE field in the I2C Mode Register for MASTER/
SLAVE Mode with 7- or 10-bit addressing (the I2C bus protocol allows the mixing of
slave address types). The MODE field selects the address width for this mode when
addressed as a slave (but not for the remote slave). The software asserts the IEN bit in
the I2C Control Register.
2. The software asserts the TXI bit of the I2C Control Register to enable transmit interrupts.
3. The I2C interrupt asserts because the I2C Data Register is empty.
4. The software responds to the TDRE interrupt by writing the first Slave Address byte
(11110xx0). The least-significant bit must be 0 for the write operation.
5. The software asserts the start bit of the I2C Control Register.
6. The I2C controller sends a start condition to the I2C Slave.
7. The I2C controller loads the I2C Shift Register with the contents of the I2C Data Register.
8. After one bit of the address is shifted out by the SDA signal, the transmit interrupt
asserts.
9. The software responds by writing the second byte of address into the contents of the
I2C Data Register.
10. The I2C controller shifts the remainder of the first byte of the address and the Write bit
out via the SDA signal.
11. The I2C slave sends an Acknowledge by pulling the SDA signal Low during the next
High period of SCL. The I2C controller sets the ACK bit in the I2C Status Register.
If the slave does not acknowledge the first address byte, the I2C controller sets the
NCKI bit in the I2C Status Register, sets the ACKV bit and clears the ACK bit in the
I2C State Register. The software responds to the Not Acknowledge interrupt by setting
the stop bit and clearing the TXI bit. The I2C controller flushes the second address
byte from the Data Register, sends a stop condition on the bus and clears the stop and
NCKI bits. The transaction is complete and the following steps can be ignored.
12. The I2C controller loads the I2C Shift Register with the contents of the I2C Data
Register (2nd address byte).
13. The I2C controller shifts the second address byte out via the SDA signal. After the
first bit has been sent, the transmit interrupt asserts.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
233
14. The software responds by writing the data to be written out to the I2C Control
Register.
15. The I2C controller shifts out the remainder of the second byte of the slave address (or
ensuring data bytes, if looping) via the SDA signal.
16. The I2C slave sends an Acknowledge by pulling the SDA signal Low during the next
High period of SCL. The I2C controller sets the ACK bit in the I2C Status Register. If
the slave does not acknowledge, see the second paragraph of Step 11.
17. The I2C controller shifts the data out by the SDA signal. After the first bit is sent, the
transmit interrupt asserts.
18. If more bytes remain to be sent, return to Step 14.
19. The software responds by asserting the stop bit of the I2C Control Register.
20. The I2C controller completes transmission of the data on the SDA signal.
21. The I2C controller sends a stop condition to the I2C bus.
Note: If the slave responds with a Not Acknowledge during the transfer, the I2C controller
asserts the NCKI bit, sets the ACKV bit, clears the ACK bit in the I2C State Register and
halts. The software terminates the transaction by setting either the stop bit (end transaction) or the start bit (end this transaction, start a new one). The Transmit Data Register is
flushed automatically.
17.2.5.6. Master Read Transaction with a 7-Bit Address
Figure 45 displays the data transfer format for a Read operation to a 7-bit addressed slave.
S
Slave Address
R=1
A
Data
A
Data
A
P/S
Figure 45. Data Transfer Format—Master Read Transaction with a 7-Bit Address
Observe the following steps for a Master Read operation to a 7-bit addressed slave:
1. The software initializes the MODE field in the I2C Mode Register for MASTER/
SLAVE Mode with 7- or 10-bit addressing (the I2C bus protocol allows the mixing of
slave address types). The MODE field selects the address width for this mode when
addressed as a slave (but not for the remote slave). The software asserts the IEN bit in
the I2C Control Register.
2. The software writes the I2C Data Register with a 7-bit slave address, plus the Read bit
(which is set to 1).
3. The software asserts the start bit of the I2C Control Register.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
234
4. If this operation is a single-byte transfer, the software asserts the NAK bit of the I2C
Control Register so that after the first byte of data has been read by the I2C controller,
a Not Acknowledge instruction is sent to the I2C slave.
5. The I2C controller sends a start condition.
6. The I2C controller sends the address and Read bit out via the SDA signal.
7. The I2C slave acknowledges the address by pulling the SDA signal Low during the
next High period of SCL.
If the slave does not acknowledge the address byte, the I2C controller sets the NCKI
bit in the I2C Status Register, sets the ACKV bit and clears the ACK bit in the I2C
State Register. The software responds to the Not Acknowledge interrupt by setting the
stop bit and clearing the TXI bit. The I2C controller flushes the Transmit Data Register, sends a stop condition on the bus and clears the stop and NCKI bits. The transaction is complete and the following steps can be ignored.
8. The I2C controller shifts in the first byte of data from the I2C slave on the SDA signal.
9. The I2C controller asserts the receive interrupt.
10. The software responds by reading the I2C Data Register. If the next data byte is to be
the final byte, the software must set the NAK bit of the I2C Control Register.
11. The I2C controller sends a Not Acknowledge to the I2C slave if the next byte is the
final byte; otherwise, it sends an Acknowledge.
12. If there are more bytes to transfer, the I2C controller returns to Step 7.
13. A NAK interrupt (NCKI bit in I2CISTAT) is generated by the I2C controller.
14. The software responds by setting the stop bit of the I2C Control Register.
15. A stop condition is sent to the I2C slave.
17.2.5.7. Master Read Transaction with a 10-Bit Address
Figure 46 displays the read transaction format for a 10-bit addressed Slave.
S
Slave Address
Slave Address
Slave Address
W=0 A
R=1
A S
1st Byte
2nd Byte
1st Byte
A
Data
A
Data
A P
Figure 46. Data Transfer Format—Master Read Transaction with a 10-Bit Address
The first 7 bits transmitted in the first byte are 11110XX. The two XX bits are the two
most-significant bits of the 10-bit address. The lowest bit of the first byte transferred is the
write control bit.
Observe the following data transfer procedure for a Read operation to a 10-bit addressed
slave:
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
235
1. The software initializes the MODE field in the I2C Mode Register for MASTER/
SLAVE Mode with 7- or 10-bit addressing (the I2C bus protocol allows the mixing of
slave address types). The MODE field selects the address width for this mode when
addressed as a slave (but not for the remote slave). The software asserts the IEN bit in
the I2C Control Register.
2. The software writes 11110b, followed by the two most-significant address bits and a
0 (write) to the I2C Data Register.
3. The software asserts the start bit of the I2C Control Register.
4. The I2C controller sends a start condition.
5. The I2C controller loads the I2C Shift Register with the contents of the I2C Data
Register.
6. After the first bit has been shifted out, a transmit interrupt is asserted.
7. The software responds by writing the least significant eight bits of address to the I2C
Data Register.
8. The I2C controller completes shifting of the first address byte.
9. The I2C slave sends an Acknowledge by pulling the SDA signal Low during the next
High period of SCL.
If the slave does not acknowledge the address byte, the I2C controller sets the NCKI
bit in the I2C Status Register, sets the ACKV bit and clears the ACK bit in the I2C
State Register. The software responds to the Not Acknowledge interrupt by setting the
stop bit and clearing the TXI bit. The I2C controller flushes the Transmit Data
Register, sends the stop condition on the bus and clears the stop and NCKI bits. The
transaction is complete and the following steps can be ignored.
10. The I2C controller loads the I2C Shift Register with the contents of the I2C Data
Register (the lower byte of the 10-bit address).
11. The I2C controller shifts out the next eight bits of the address. After the first bit shifts,
the I2C controller generates a transmit interrupt.
12. The software responds by setting the start bit of the I2C Control Register to generate a
repeated start condition.
13. The software writes 11110b, followed by the 2-bit slave address and a 1 (Read) to the
I2C Data Register.
14. If the user chooses to read only one byte, the software responds by setting the NAK bit
of the I2C Control Register.
15. After the I2C controller shifts out the address bits listed in Step 9 (the second address
transfer), the I2C slave sends an Acknowledge by pulling the SDA signal Low during
the next High period of SCL.
If the slave does not acknowledge the address byte, the I2C controller sets the NCKI
bit in the I2C Status Register, sets the ACKV bit and clears the ACK bit in the I2C
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
236
State Register. The software responds to the Not Acknowledge interrupt by setting the
stop bit and clearing the TXI bit. The I2C controller flushes the Transmit Data
Register, sends the stop condition on the bus and clears the stop and NCKI bits. The
transaction is complete and the following steps can be ignored.
16. The I2C controller sends a repeated start condition.
17. The I2C controller loads the I2C Shift Register with the contents of the I2C Data
Register (the third address transfer).
18. The I2C controller sends 11110b, followed by the two most-significant bits of the
slave read address and a 1 (Read).
19. The I2C slave sends an Acknowledge by pulling the SDA signal Low during the next
High period of SCL.
20. The I2C controller shifts in a byte of data from the slave.
21. The I2C controller asserts the Receive interrupt.
22. The software responds by reading the I2C Data Register. If the next data byte is to be
the final byte, the software must set the NAK bit of the I2C Control Register.
23. The I2C controller sends an Acknowledge or Not Acknowledge to the I2C Slave,
based on the value of the NAK bit.
24. If there are more bytes to transfer, the I2C controller returns to Step 18.
25. The I2C controller generates a NAK interrupt (the NCKI bit in the I2CISTAT
Register).
26. The software responds by setting the stop bit of the I2C Control Register.
27. A stop condition is sent to the I2C Slave.
17.2.6. Slave Transactions
The following sections describe Read and Write transactions to the I2C controller
configured for 7-bit and 10-bit Slave modes.
17.2.6.1. Slave Address Recognition
The following two slave address recognition options are supported; a description of each
follows.
•
•
Slave 7-Bit Address Recognition Mode
Slave 10-Bit Address Recognition Mode
Slave 7-Bit Address Recognition Mode. If IRM = 0 during the address phase and the
controller is configured for MASTER/SLAVE or SLAVE 7-bit address mode, the
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
237
hardware detects a match to the 7-bit slave address defined in the I2CSLVAD Register and
generates the slave address match interrupt (the SAM bit = 1 in the I2CISTAT Register).
The I2C controller automatically responds during the Acknowledge phase with the value
in the NAK bit of the I2CCTL Register.
Slave 10-Bit Address Recognition Mode. If IRM = 0 during the address phase and the
controller is configured for MASTER/SLAVE or SLAVE 10-bit address mode, the
hardware detects a match to the 10-bit slave address defined in the I2CMODE and
I2CSLVAD registers and generates the slave address match interrupt (the SAM bit = 1 in
the I2CISTAT Register). The I2C controller automatically responds during the
Acknowledge phase with the value in the NAK bit of the I2CCTL Register.
17.2.6.2. General Call and Start Byte Address Recognition
If GCE = 1 and IRM = 0 during the address phase and the controller is configured for
MASTER/SLAVE or SLAVE in either 7- or 10-bit address modes, the hardware detects a
match to the General Call Address or the start byte and generates the slave address match
interrupt. A General Call Address is a 7-bit address of all 0’s with the R/W bit = 0. A start
byte is a 7-bit address of all 0’s with the R/W bit = 1. The SAM and GCA bits are set in the
I2CISTAT Register. The RD bit in the I2CISTAT Register distinguishes a General Call
Address from a start byte which is cleared to 0 for a General Call Address). For a General
Call Address, the I2C controller automatically responds during the address acknowledge
phase with the value in the NAK bit of the I2CCTL Register. If the software is set to process the data bytes associated with the GCA bit, the IRM bit can optionally be set following the SAM interrupt to allow the software to examine each received data byte before
deciding to set or clear the NAK bit. A start byte will not be acknowledged—a requirement of the I2C specification.
17.2.6.3. Software Address Recognition
To disable hardware address recognition, the IRM bit must be set to 1 prior to the
reception of the address byte(s). When IRM = 1, each received byte generates a receive
interrupt (RDRF = 1 in the I2CISTAT Register). The software must examine each byte and
determine whether to set or clear the NAK bit. The slave holds SCL Low during the
Acknowledge phase until the software responds by writing to the I2CCTL Register. The
value written to the NAK bit is used by the controller to drive the I2C bus, then releasing
the SCL. The SAM and GCA bits are not set when IRM = 1 during the address phase, but
the RD bit is updated based on the first address byte.
17.2.6.4. Slave Transaction Diagrams
In the following transaction diagrams, the shaded regions indicate data transferred from
the Master to the Slave and the unshaded regions indicate the data transferred from the
Slave to the Master. The transaction field labels are defined as follows:
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
238
S
Start
W
Write
A
Acknowledge
A
Not Acknowledge
P
Stop
17.2.6.5. Slave Receive Transaction with 7-Bit Address
The data transfer format for writing data from a Master to a Slave in 7-bit address mode is
displayed in Figure 47. The procedure that follows describes the I2C Master/Slave Controller operating as a slave in 7-bit addressing mode and receiving data from the bus master.
S
Slave Address
W=0
A
Data
A
Data
A
Data
A/A
P/S
Figure 47. Data Transfer Format—Slave Receive Transaction with 7-Bit Address
1. The software configures the controller for operation as a slave in 7-bit addressing
mode, as follows:
a. Initialize the MODE field in the I2C Mode Register for either SLAVE ONLY
mode or MASTER/SLAVE Mode with 7-bit addressing.
b. Optionally set the GCE bit.
c. Initialize the SLA[6:0] bits in the I2C Slave Address Register.
d. Set IEN = 1 in the I2C Control Register. Set NAK = 0 in the I2C Control Register.
2. The bus master initiates a transfer, sending the address byte. In SLAVE Mode, the I2C
controller recognizes its own address and detects that R/W bit = 0 (written from the
master to the slave). The I2C controller acknowledges indicating it is available to
accept the transaction. The SAM bit in the I2CISTAT Register is set to 1, causing an
interrupt. The RD bit in the I2CISTAT Register is cleared to 0, indicating a Write to
the slave. The I2C controller holds the SCL signal Low waiting for the software to
load the first data byte.
3. The software responds to the interrupt by reading the I2CISTAT Register (which
clears the SAM bit). After seeing the SAM bit to 1, the software checks the RD bit.
Because RD = 0, no immediate action is required until the first byte of data is
received. If software is only able to accept a single byte, it sets the NAK bit in the
I2CCTL Register at this time.
4. The Master detects the Acknowledge and sends the byte of data.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
239
5. The I2C controller receives the data byte and responds with Acknowledge or Not
Acknowledge depending on the state of the NAK bit in the I2CCTL Register. The I2C
controller generates the receive data interrupt by setting the RDRF bit in the
I2CISTAT Register.
6. The software responds by reading the I2CISTAT Register, finding the RDRF bit = 1
and reading the I2CDATA Register clearing the RDRF bit. If software can accept only
one more data byte it sets the NAK bit in the I2CCTL Register.
7. The master and slave loops through Step 4 to Step 6 until the master detects a Not
Acknowledge instruction or runs out of data to send.
8. The master sends the stop or restart signal on the bus. Either of these signals can cause
the I2C controller to assert a stop interrupt (the stop bit = 1 in the I2CISTAT Register).
Because the slave received data from the master, the software takes no action in
response to the stop interrupt other than reading the I2CISTAT Register to clear the
stop bit in the I2CISTAT Register.
17.2.6.6. Slave Receive Transaction with 10-Bit Address
The data transfer format for writing data from a master to a slave with 10-bit addressing is
displayed in Figure 48. The procedure that follows describes the I2C Master/Slave Controller operating as a slave in 10-bit addressing mode and receiving data from the bus master.
s
S
Slave Address
1st Byte
W=0
A
Slave Address
2nd Byte
A
Data
A
Data
A/A
P/S
Figure 48. Data Transfer Format—Slave Receive Transaction with 10-Bit Address
1. The software configures the controller for operation as a slave in 10-bit addressing
mode, as follows:
a. Initialize the MODE field in the I2CMODE Register for either SLAVE ONLY
mode or MASTER/SLAVE Mode with 10-bit addressing.
b. Optionally set the GCE bit.
c. Initialize the SLA[7:0] bits in the I2CSLVAD Register and the SLA[9:8] bits in
the I2CMODE Register.
d. Set IEN = 1 in the I2CCTL Register. Set NAK = 0 in the I2C Control Register.
2. The Master initiates a transfer, sending the first address byte. The I2C controller recognizes the start of a 10-bit address with a match to SLA[9:8] and detects R/W bit = 0
(a Write from the master to the slave). The I2C controller acknowledges, indicating it
is available to accept the transaction.
3. The Master sends the second address byte. The SLAVE Mode I2C controller detects
an address match between the second address byte and SLA[7:0]. The SAM bit in the
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
240
I2CISTAT Register is set to 1, thereby causing an interrupt. The RD bit is cleared to 0,
indicating a Write to the slave. The I2C controller acknowledges, indicating it is
available to accept the data.
4. The software responds to the interrupt by reading the I2CISTAT Register, which clears
the SAM bit. Because RD = 0, no immediate action is taken by the software until the
first byte of data is received. If the software is only able to accept a single byte, it sets
the NAK bit in the I2CCTL Register.
5. The Master detects the Acknowledge and sends the first byte of data.
6. The I2C controller receives the first byte and responds with Acknowledge or Not
Acknowledge, depending on the state of the NAK bit in the I2CCTL Register. The I2C
controller generates the receive data interrupt by setting the RDRF bit in the
I2CISTAT Register.
7. The software responds by reading the I2CISTAT Register, finding the RDRF bit = 1
and then reading the I2CDATA Register, which clears the RDRF bit. If the software
can accept only one more data byte, it sets the NAK bit in the I2CCTL Register.
8. The Master and Slave loops through Step 5 to Step 7 until the Master detects a Not
Acknowledge instruction or runs out of data to send.
9. The Master sends the stop or restart signal on the bus. Either of these signals can cause
the I2C controller to assert the stop interrupt (the stop bit = 1 in the I2CISTAT Register). Because the slave received data from the master, the software takes no action in
response to the STOP interrupt other than reading the I2CISTAT Register to clear the
stop bit.
17.2.6.7. Slave Transmit Transaction With 7-bit Address
The data transfer format for a master reading data from a slave in 7-bit address mode is
displayed in Figure 49. The procedure that follows describes the I2C Master/Slave Controller operating as a slave in 7-bit addressing mode and transmitting data to the bus master.
S
Slave Address
R=1
A
Data
A
Data
A
P/S
Figure 49. Data Transfer Format—Slave Transmit Transaction with 7-bit Address
1. The software configures the controller for operation as a slave in 7-bit addressing
mode, as follows:
a. Initialize the MODE field in the I2C Mode Register for either SLAVE ONLY
mode or MASTER/SLAVE Mode with 7-bit addressing.
b. Optionally set the GCE bit.
c. Initialize the SLA[6:0] bits in the I2C Slave Address Register.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
241
d. Set IEN = 1 in the I2C Control Register. Set NAK = 0 in the I2C Control Register.
2. The Master initiates a transfer by sending the address byte. The SLAVE Mode I2C
controller finds an address match and detects that the R/W bit = 1 (read by the master
from the slave). The I2C controller acknowledges, indicating that it is ready to accept
the transaction. The SAM bit in the I2CISTAT Register is set to 1, causing an
interrupt. The RD bit is set to 1, indicating a Read from the slave.
3. The software responds to the interrupt by reading the I2CISTAT Register, thereby
clearing the SAM bit. Because RD = 1, the software responds by loading the first data
byte into the I2CDATA Register. The software sets the TXI bit in the I2CCTL
Register to enable transmit interrupts. When the master initiates the data transfer, the
I2C controller holds SCL Low until the software has written the first data byte to the
I2CDATA Register.
4. SCL is released and the first data byte is shifted out.
5. After the first bit of the first data byte has been transferred, the I2C controller sets the
TDRE bit, which asserts the transmit data interrupt.
6. The software responds to the transmit data interrupt (TDRE = 1) by loading the next
data byte into the I2CDATA Register, which clears TDRE.
7. After the data byte has been received by the master, the master transmits an
Acknowledge instruction (or Not Acknowledge instruction if this byte is the final data
byte).
8. The bus cycles through Step 5 to Step 7 until the final byte has been transferred. If the
software has not yet loaded the next data byte when the master brings SCL Low to
transfer the most significant data bit, the slave I2C controller holds SCL Low until the
Data Register has been written. When a Not Acknowledge instruction is received by
the slave, the I2C controller sets the NCKI bit in the I2CISTAT Register causing the
Not Acknowledge interrupt to be generated.
9. The software responds to the Not Acknowledge interrupt by clearing the TXI bit in the
I2CCTL Register and by asserting the FLUSH bit of the I2CCTL Register to empty
the Data Register.
10. When the Master has completed the final acknowledge cycle, it asserts a stop or restart
condition on the bus.
11. The Slave I2C controller asserts the stop/restart interrupt (set SPRS bit in I2CISTAT
Register).
12. The software responds to the stop/restart interrupt by reading the I2CISTAT Register,
which clears the SPRS bit.
17.2.6.8. Slave Transmit Transaction With 10-Bit Address
The data transfer format for a master reading data from a slave with 10-bit addressing is
displayed in Figure 50. The following procedure describes the I2C Master/Slave Controller operating as a slave in 10-bit addressing mode, transmitting data to the bus master.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
242
S
Slave Address
Slave Address
A
W=0 A
1st Byte
2nd Byte
S
Slave Address
R=1 A
1st Byte
Data
A
Data
A
P
Figure 50. Data Transfer Format—Slave Transmit Transaction with 10-Bit Address
1. The software configures the controller for operation as a slave in 10-bit addressing
mode.
a. Initialize the MODE field in the I2C Mode Register for either SLAVE ONLY
mode or MASTER/SLAVE Mode with 10-bit addressing.
b. Optionally set the GCE bit.
c. Initialize the SLA[7:0] bits in the I2CSLVAD Register and SLA[9:8] in the I2C
MODE Register.
d. Set IEN = 1 and NAK = 0 in the I2C Control Register.
2. The Master initiates a transfer by sending the first address byte. The SLAVE Mode
I2C controller recognizes the start of a 10-bit address with a match to SLA[9:8] and
detects R/W bit = 0 (a Write from the master to the slave). The I2C controller
acknowledges indicating it is available to accept the transaction.
3. The Master sends the second address byte. The SLAVE Mode I2C controller compares
the second address byte with the value in SLA[7:0]. If there is a match, the SAM bit in
the I2CISTAT Register is set = 1, causing a slave address match interrupt. The RD bit
is set = 0, indicating a write to the slave. If a match occurs, the I2C controller acknowledges on the I2C bus, indicating it is available to accept the data.
4. The software responds to the slave address match interrupt by reading the I2CISTAT
Register, which clears the SAM bit. Because the RD bit = 0, no further action is
required.
5. The Master sees the Acknowledge and sends a restart instruction, followed by the first
address byte with R/W set to 1. The SLAVE Mode I2C controller recognizes the
restart instruction followed by the first address byte with a match to SLA[9:8] and
detects R/W = 1 (the master reads from the slave). The slave I2C controller sets the
SAM bit in the I2CISTAT Register which causes the slave address match interrupt.
The RD bit is set = 1. The SLAVE Mode I2C controller acknowledges on the bus.
6. The software responds to the interrupt by reading the I2CISTAT Register clearing the
SAM bit. The software loads the initial data byte into the I2CDATA Register and sets
the TXI bit in the I2CCTL Register.
7. The Master starts the data transfer by asserting SCL Low. After the I2C controller has
data available to transmit, the SCL is released and the master proceeds to shift the first
data byte.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
243
8. After the first bit of the first data byte has been transferred, the I2C controller sets the
TDRE bit which asserts the transmit data interrupt.
9. The software responds to the transmit data interrupt by loading the next data byte into
the I2CDATA Register.
10. The I2C Master shifts in the remainder of the data byte. The Master transmits the
Acknowledge (or Not Acknowledge, if this byte is the final data byte).
11. The bus cycles through Step 7 to Step 10 until the final byte is transferred. If the software has not yet loaded the next data byte when the master brings SCL Low to transfer the most significant data bit, the slave I2C controller holds SCL Low until the Data
Register is written.
When a Not Acknowledge is received by the slave, the I2C controller sets the NCKI
bit in the I2CISTAT Register, causing the NAK interrupt to be generated.
12. The software responds to the NAK interrupt by clearing the TXI bit in the I2CCTL
Register and by asserting the FLUSH bit of the I2CCTL Register.
13. When the Master has completed the Acknowledge cycle of the last transfer, it asserts a
stop or restart condition on the bus.
14. The Slave I2C controller asserts the stop/restart interrupt (sets the SPRS bit in the
I2CISTAT Register).
15. The software responds to the stop interrupt by reading the I2CISTAT Register and
clearing the SPRS bit.
17.3. I2C Control Register Definitions
This section defines the features of the following I2C Control registers.
I2C Data Register: see page 243
I2C Interrupt Status Register: see page 245
I2C Interrupt Status Register: see page 245
I2C Baud Rate High and Low Byte Registers: see page 248
I2C State Register: see page 250
I2C Mode Register: see page 253
I2C Slave Address Register: see page 255
17.3.1. I2C Data Register
The I2C Data Register listed in Table 119 contains the data that is to be loaded into the
Shift Register to transmit onto the I2C bus. This register also contains data that is loaded
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
244
from the Shift Register after it is received from the I2C bus. The I2C Shift Register is not
accessible in the Register File address space, but is used only to buffer incoming and outgoing data.
Writes by the software to the I2CDATA Register are blocked if a slave Write transaction is
underway (the I2C controller is in SLAVE Mode and data is being received).
Table 119. I2C Data Register (I2CDATA = F50h)
Bits
7
6
5
4
3
2
1
0
Field
Data 7
Data 6
Data 5
Data 4
Data 3
Data 2
Data 1
Data 0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F50h
Bit Position
Value Description
[7:0]
DATA
—
PS025016-1013
I2C Data Byte
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
245
17.3.2. I2C Interrupt Status Register
The read-only I2C Interrupt Status Register, shown in Table 120, indicates the cause of any
current I2C interrupt and provides status of the I2C controller. When an interrupt occurs,
one or more of the TDRE, RDRF, SAM, ARBLST, SPRS or NCKI bits is set. The GCA
and RD bits do not generate an interrupt but rather provide status associated with the SAM
bit interrupt.
Table 120. I2C Interrupt Status Register (I2CISTAT = F51h)
Bits
7
6
5
4
3
2
1
0
Field
TDRE
RDRF
SAM
GCA
RD
ARBLST
SPRS
NCKI
Reset
1
0
0
0
0
0
0
0
R/W
R
R
R
R
R
R
R
R
Address
F51h
Bit
Description
[7]
TDRE
Transmit Data Register Empty
When the I2C controller is enabled, this bit is 1 when the I2C Data Register is empty. When set,
this bit causes the I2C controller to generate an interrupt, except when the I2C controller is
shifting in data during the reception of a byte or when shifting an address and the RD bit is set.
This bit clears by writing to the I2CDATA Register.
[6]
RDRF
Receive Data Register Full
This bit is set = 1 when the I2C controller is enabled and the I2C controller has received a byte
of data. When asserted, this bit causes the I2C controller to generate an interrupt. This bit
clears by reading the I2CDATA Register.
[5]
SAM
Slave Address Match
This bit is set = 1 if the I2C controller is enabled in SLAVE Mode and an address is received
that matches the unique slave address or General Call Address (if enabled by the GCE bit in
the I2C Mode Register). In 10-bit addressing mode, this bit is not set until a match is achieved
on both address bytes. When this bit is set, the RD and GCA bits are also valid. This bit clears
by reading the I2CISTAT Register.
[4]
GCA
General Call Address
This bit is set in SLAVE Mode when the General Call Address or Start byte is recognized (in
either 7 or 10 bit SLAVE Mode). The GCE bit in the I2C Mode Register must be set to enable
recognition of the General Call Address and Start byte. This bit clears when IEN = 0 and is
updated following the first address byte of each SLAVE Mode transaction. A General Call
Address is distinguished from a Start byte by the value of the RD bit (RD = 0 for General Call
Address, 1 for Start byte).
[3]
RD
Read
This bit indicates the direction of transfer of the data. It is set when the Master is reading data
from the Slave. This bit matches the least-significant bit of the address byte after the start
condition occurs (for both MASTER and SLAVE modes). This bit clears when IEN = 0 and is
updated following the first address byte of each transaction.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
246
Bit
Description (Continued)
[2]
Arbitration Lost
ARBLST This bit is set when the I2C controller is enabled in MASTER Mode and loses arbitration
(outputs a 1 on SDA and receives a 0 on SDA). The ARBLST bit clears when the I2CISTAT
Register is read.
[1]
SPRS
Stop/Restart Condition Interrupt
This bit is set when the I2C controller is enabled in SLAVE Mode and detects a stop or restart
condition during a transaction directed to this slave. This bit clears when the I2CISTAT
Register is read. Read the RSTR bit of the I2CSTATE Register to determine whether the
interrupt was caused by a stop or restart condition.
[0]
NCKI
NAK Interrupt
In MASTER Mode, this bit is set when a Not Acknowledge condition is received or sent and
neither the start nor the stop bit is active. In MASTER Mode, this bit can only be cleared by
setting the start or stop bits. In SLAVE Mode, this bit is set when a Not Acknowledge condition
is received (Master reading data from Slave), indicating the master is finished reading. A stop
or restart condition follows. In SLAVE Mode this bit clears when the I2CISTAT Register is read.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
247
17.3.3. I2C Control Register
The I2C Control Register, shown in Table 121, enables and configures I2C operation.
The R/W1 bit can be set (written to 1) when IEN = 1, but cannot be cleared (written to 0).
Note:
Table 121. I2C Control Register (I2CCTL)
Bits
7
6
5
4
3
2
1
0
Field
IEN
START
STOP
BIRQ
TXI
NAK
FLUSH
FILTEN
Reset
0
0
0
0
0
0
0
0
R/W
R/W1
R/W1
R/W
R/W
R/W1
W
R/W
R/W
Address
F52h
Bit
Description
[7]
IEN
I2C Enable
This bit enables the I2C controller.
[6]
START
Send Start Condition
When set, this bit causes the I2C controller (when configured as the master) to send a start
condition. After it is asserted, this bit is cleared by the I2C controller after it sends the start
condition or by deasserting the IEN bit. If this bit is 1, it cannot be cleared by writing to the bit.
After this bit is set, a start condition is sent if there is data in the I2CDATA or I2C Shift Register.
If there is no data in one of these registers, the I2C controller waits until data is loaded. If this
bit is set while the I2C controller is shifting out data, it generates a restart condition after the
byte shifts and the Acknowledge phase completes. If the stop bit is also set, it waits until the
stop condition is sent before the start condition. If start is set while a SLAVE Mode transaction
is underway to this device, the start bit will be cleared and ARBLST bit in the Interrupt Status
Register will be set.
[5]
STOP
Send Stop Condition
When set, this bit causes the I2C controller (when configured as the master) to send the stop
condition after the byte in the I2C Shift Register has completed transmission or after a byte is
received in a receive operation. When set, this bit is reset by the I2C controller after a stop
condition has been sent or by deasserting the IEN bit. If this bit is 1, it cannot be cleared to 0 by
writing to the register. If stop is set while a SLAVE Mode transaction is underway, the stop bit is
cleared by hardware.
[4]
BIRQ
Baud Rate Generator Interrupt Request
This bit is ignored when the I2C controller is enabled. If this bit is set = 1 when the I2C controller
is disabled (IEN = 0), the baud rate generator is used as an additional timer causing an
interrupt to occur every time the baud rate generator counts down to one. The baud rate
generator runs continuously in this mode, generating periodic interrupts.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
248
Bit
Description (Continued)
[3]
TXI
Enable TDRE Interrupts
This bit enables interrupts when the I2C Data Register is empty.
[2]
NAK
Send NAK
Setting this bit sends a Not Acknowledge condition after the next byte of data has been
received. It is automatically deasserted after the Not Acknowledge is sent or the IEN bit is
cleared. If this bit is 1, it cannot be cleared to 0 by writing to the register.
[1]
FLUSH
Flush Data
Setting this bit clears the I2C Data Register and sets the TDRE bit to 1. This bit allows flushing
of the I2C Data Register when an NAK condition is received after the next data byte is written
to the I2C Data Register. Reading this bit always returns 0.
[0]
FILTEN
I2C Signal Filter Enable
Setting this bit enables low-pass digital filters on the SDA and SCL input signals. This function
provides the spike suppression filter required in I2C Fast Mode. These filters reject any input
pulse with periods less than a full system clock cycle. The filters introduce a 3-system clock
cycle latency on the inputs.
17.3.4. I2C Baud Rate High and Low Byte Registers
The I2C Baud Rate High and Low Byte registers, shown in Tables 122 and 123, combine
to form a 16-bit reload value, BRG[15:0], for the I2C Baud Rate Generator. The I2C baud
rate is calculated using the following equation.
I2C Baud Rate (bits/s) =
System Clock Frequency (Hz)
4 x BRG[15:0]
Note: If BRG = 0000h, use 10000h in the equation.
Table 122. I2C Baud Rate High Byte Register (I2CBRH = 53h)
Bits
7
6
5
4
Field
2
1
0
BRH
Reset
R/W
3
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
F53h
Bit Position
Value
[7:0]
BRH
I2C Baud Rate High Byte
The most significant byte, BRG[15:8], of the I2C Baud Rate Generator’s reload value.
PS025016-1013
Description
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
249
Note: If the DIAG bit in the I2C Mode Register is set to 1, a read of the I2CBRH Register returns
the current value of the I2C Baud Rate Counter[15:8].
Table 123. I2C Baud Rate Low Byte Register (I2CBRL = F54h)
Bits
7
6
5
4
Field
3
2
1
0
BRL
Reset
R/W
1
1
1
1
1
1
1
1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Bit Position
F54h
Value
Description
2
[7:0]
BRL
I C Baud Rate Low Byte
The least significant byte, BRG[7:0], of the I2C Baud Rate Generator’s reload value.
Note: If the DIAG bit in the I2C Mode Register is set to 1, a read of the I2CBRL Register returns
the current value of the I2C Baud Rate Counter[7:0].
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
250
17.3.5. I2C State Register
The read-only I2C State Register, shown in Table 124, provides information about the state
of the I2C bus and the I2C bus controller. When the DIAG bit of the I2C Mode Register is
cleared, this register provides information about the internal state of the I2C controller and
I2C bus; see Table 126.
When the DIAG bit of the I2C Mode Register is set, this register returns the value of the
I2C controller state machine.
Table 124. I2C State Register (I2CSTATE)—Description when DIAG = 1
Bits
7
Field
6
5
4
3
I2CSTATE_H
2
1
0
I2CSTATE_L
Reset
0
0
0
0
0
0
0
0
R/W
R
R
R
R
R
R
R
R
Address
F55h
Bit
Description
[7:4]
I2CSTATE_H
I2C State
This field defines the current state of the I2C controller. It is the most significant nibble of
the internal state machine. Table 126 defines the states for this field.
[3:0]
I2CSTATE_L
Least Significant Nibble of the I2C State Machine
This field defines the substates for the states defined by I2CSTATE_H. Table 127 defines
the values for this field.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
251
Table 125. I2C State Register (I2CSTATE)—Description when DIAG = 0
Bits
7
6
5
4
3
2
1
0
Field
ACKV
ACK
AS
DS
10B
RSTR
SCLOUT
BUSY
Reset
0
0
0
0
0
0
1
0
R/W
R
R
R
R
R
R
R
R
Address
F55h
Bit
Description
[7]
ACKV
ACK Valid
This bit is set, if sending data (Master or Slave) and the ACK bit in this register is valid for the
byte just transmitted. This bit can be monitored if it is appropriate for software to verify the ACK
value before writing the next byte to be sent. To operate in this mode, the Data Register must
not be written when TDRE asserts; instead, the software waits for ACKV to assert. This bit
clears when transmission of the next byte begins or the transaction is ended by a stop or
restart condition.
[6]
ACK
Acknowledge
This bit indicates the status of the Acknowledge for the last byte transmitted or received. This
bit is set for an Acknowledge and cleared for a Not Acknowledge condition.
[5]
AS
Address State
This bit is active High while the address is being transferred on the I2C bus.
[4]
DS
Data State
This bit is active High while the data is being transferred on the I2C bus.
[3]
10B
10B
This bit indicates whether a 7-bit or 10-bit address is being transmitted when operating as a
Master. After the start bit is set, if the five most-significant bits of the address are 11110B, this
bit is set. When set, it is Reset after the address has been sent.
[2]
RSTR
RESTART
This bit is updated each time a stop or restart interrupt occurs (SPRS bit set in I2CISTAT
Register).
0 = Stop condition.
1 = Restart condition.
[1]
Serial Clock Output
SCLOUT Current value of Serial Clock being output onto the bus. The actual values of the SCL and SDA
signals on the I2C bus can be observed via the GPIO Input Register.
[0]
BUSY
I2C Bus Busy
0 = No activity on the I2C Bus.
1 = A transaction is underway on the I2C bus.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
252
Table 126. I2CSTATE_H
State
Encoding
State Name
State Description
0000
Idle
I2C bus is idle or I2C controller is disabled.
0001
Slave Start
I2C controller has received a start condition.
0010
Slave Bystander
Address did not match; ignore remainder of transaction.
0011
Slave Wait
Waiting for stop or restart condition after sending a Not
Acknowledge instruction.
0100
Master Stop2
Master completing stop condition (SCL = 1, SDA = 1).
0101
Master Start/Restart
MASTER Mode sending start condition (SCL = 1, SDA = 0).
0110
Master Stop1
Master initiating stop condition (SCL = 1, SDA = 0).
0111
Master Wait
Master received a Not Acknowledge instruction, waiting for
software to assert stop or start control bits.
1000
Slave Transmit Data
Nine substates, one for each data bit and one for the Acknowledge.
1001
Slave Receive Data
Nine substates, one for each data bit and one for the Acknowledge.
1010
Slave Receive Addr1
Slave receiving first address byte (7- and 10-bit addressing) Nine
substates, one for each address bit and one for the Acknowledge.
1011
Slave Receive Addr2
Slave Receiving second address byte (10-bit addressing) nine
substates, one for each address bit and one for the Acknowledge.
1100
Master Transmit Data
Nine substates, one for each data bit and one for the Acknowledge.
1101
Master Receive Data
Nine substates, one for each data bit and one for the Acknowledge.
1110
Master Transmit Addr1 Master sending first address byte (7- and 10-bit addressing) nine
substates, one for each address bit and one for the Acknowledge.
1111
Master Transmit Addr2 Master sending second address byte (10-bit addressing) nine
substates, one for each address bit and one for the Acknowledge.
Table 127. I2CSTATE_L
State
I2CSTATE_H
Substate
I2CSTATE_L
Substate Name
State Description
0000–0100
0000
—
There are no substates for these I2CSTATE_H
values.
0110–0111
0000
—
There are no substates for these I2CSTATE_H
values.
0101
0000
Master Start
Initiating a new transaction
0001
Master Restart
Master is ending one transaction and starting a
new one without letting the bus go idle.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
253
Table 127. I2CSTATE_L (Continued)
State
I2CSTATE_H
Substate
I2CSTATE_L
Substate Name
State Description
1000–1111
0111
Send/Receive bit 7
Sending/Receiving most significant bit.
0110
Send/Receive bit 6
0101
Send/Receive bit 5
0100
Send/Receive bit 4
0011
Send/Receive bit 3
0010
Send/Receive bit 2
0001
Send/Receive bit 1
0000
Send/Receive bit 0
Sending/Receiving least significant bit.
1000
Send/Receive
Acknowledge
Sending/Receiving Acknowledge.
17.3.6. I2C Mode Register
The I2C Mode Register, shown in Table 128, provides control over master versus slave
operating mode, slave address and diagnostic modes.
Table 128. I2C Mode Register (I2C Mode = F56h)
Bits
7
Field
Reserved
Reset
R/W
6
5
4
3
MODE[1:0]
IRM
GCE
SLA[9:8]
DIAG
0
0
0
0
0
0
R
R/W
R/W
R/W
R/W
R/W
Address
2
1
0
F56h
Bit
Description
[7]
Reserved; must be 0.
[6:5]
MODE[1:0]
Selects the I2C Controller Operational Mode
00 = MASTER/SLAVE capable (supports multi-master arbitration) with 7-bit Slave address.
01 = MASTER/SLAVE capable (supports multi-master arbitration) with 10-bit slave address.
10 = Slave Only capable with 7-bit address.
11 = Slave Only capable with 10-bit address.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
254
Bit
Description (Continued)
[4]
IRM
Interactive Receive Mode
Valid in SLAVE Mode when software needs to interpret each received byte before
acknowledging. This bit is useful for processing the data bytes following a General Call
Address or if software wants to disable hardware address recognition.
0 = Acknowledge occurs automatically and is determined by the value of the NAK bit of the
I2CCTL Register.
1 = A receive interrupt is generated for each byte received (address or data). The SCL is
held Low during the Acknowledge cycle until software writes to the I2CCTL Register.
The value written to the NAK bit of the I2CCTL Register is output on SDA. This value
allows software to Acknowledge or Not Acknowledge after interpreting the associated
address/data byte.
[3]
GCE
General Call Address Enable
Enables reception of messages beginning with the General Call Address or start byte.
0 = Do not accept a message with the General Call Address or start byte.
1 = Do accept a message with the General Call Address or start byte. When an address
match occurs, the GCA and RD bits in the I2C Status Register indicates whether the
address matched the General Call Address/start byte or not. Following the General Call
Address byte, the software can set the IRM bit that allows software to examine the
following data byte(s) before acknowledging.
[2:1]
SLA[9:8]
Slave Address Bits 9 and 8
Initialize with the appropriate slave address value when using 10-bit slave addressing.
These bits are ignored when using 7-bit slave addressing.
[0]
DIAG
Diagnostic Mode
Selects read back value of the Baud Rate Reload and State registers.
0 = Reading the Baud Rate registers returns the Baud Rate register values. Reading the
State register returns I2C controller state information.
1 = Reading the Baud Rate registers returns the current value of the baud rate counter.
Reading the State register returns additional state information.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
255
17.3.7. I2C Slave Address Register
The I2C Slave Address Register, shown in Table 129, provides control over the lower
order address bits used in 7 and 10 bit slave address recognition.
Table 129. I2C Slave Address Register (I2CSLVAD = 57h)
Bits
7
6
5
4
3
Field
SLA[7:0]
Reset
00h
R/W
R/W
Address
F57h
Bit
2
1
0
Description
[7:0]
Slave Address Bits
SLA[7:0] Initialize with the appropriate Slave address value. When using 7-bit Slave addressing,
SLA[9:7] are ignored.
PS025016-1013
PRELIMINARY
I2C Master/Slave Controller
Z8 Encore! XP® F1680 Series
Product Specification
256
Chapter 18. Comparator
The Z8 Encore! XP F1680 Series devices feature two same general purpose comparators
that compares two analog input signals. For each comparator, a GPIO (C0INP/C1INP) pin
provides the positive comparator input, the negative input (C0INN/C1INN) can be taken
from either an external GPIO pin or an internal reference. The output of each comparator
is available as an interrupt source or can be routed to an external pin using the GPIO multiplex. Features for each comparator include:
•
•
•
•
•
•
Two inputs which are connected using the GPIO multiplex (MUX)
One input can be connected to a programmable internal reference
One input can be connected to the on-chip temperature sensor
Output can trigger timer counting
Output can be either an interrupt source or an output to an external pin
Operation in STOP Mode
18.1. Operation
One of the comparator inputs can be connected to an internal reference which is a userselectable reference that is user-programmable with 200 mV resolution.
The comparator can be powered down to save supply current or to continue to operate in
STOP Mode. For details, see the Power Control Register 0 section on page 44. In STOP
Mode, the comparator interrupt (if enabled) automatically initiates a Stop Mode Recovery
and generates an interrupt request. In the Reset Status Register (see page 40), the stop bit is
set to 1. Also, the Comparator request bit in the Interrupt Request 1 Register (see page 74)
is set. Following completion of the Stop Mode Recovery, and if interrupts are enabled, the
CPU responds to the interrupt request by fetching the comparator interrupt vector.
Caution: Because of the propagation delay of the comparator, spurious interrupts can result after
enabling the comparator. Zilog recommends not enabling the comparator without first
disabling interrupts, then waiting for the comparator output to settle.
The following code example shows how to safely enable the comparator:
di
ldx CMP0,r0
nop
PS025016-1013
PRELIMINARY
Comparator
Z8 Encore! XP® F1680 Series
Product Specification
257
nop
; wait for output to settle
ldx IRQ0,#0 ; clear any spurious interrupts pending
ei
18.2. Comparator Control Register Definitions
This section defines the features of the following Comparator Control registers.
Comparator 0 Control Register: see page 257
Comparator 1 Control Register: see page 258
18.2.1. Comparator 0 Control Register
The Comparator 0 Control Register (CMP0), shown in Table 130, configures the
Comparator 0 inputs and sets the value of the internal voltage reference.
Table 130. Comparator 0 Control Register (CMP0)
Bits
7
6
Field
INPSEL
INNSEL
Reset
0
0
0
1
0
1
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
5
4
3
2
1
REFLVL
0
TIMTRG
F90h
Bit
Description
[7]
INPSEL
Signal Select for Positive Input
0 = GPIO pin used as positive comparator 0 input.
1 = Temperature sensor used as positive comparator 0 input.
[6]
INNSEL
Signal Select for Negative Input
0 = Internal reference disabled, GPIO pin used as negative comparator 0 input.
1 = Internal reference enabled as negative comparator 0 input.
PS025016-1013
PRELIMINARY
Comparator
Z8 Encore! XP® F1680 Series
Product Specification
258
Bit
Description (Continued)
[5:2]
REFLVL
Comparator 0 Internal Reference Voltage Level
This reference is independent of the ADC voltage reference.
0000 = 0.0 V
0001 = 0.2 V
0010 = 0.4 V
0011 = 0.6 V
0100 = 0.8 V
0101 = 1.0 V (Default)
0110 = 1.2 V
0111 = 1.4 V
1000 = 1.6 V
1001 = 1.8 V
1010–1111 = Reserved
[1:0]
Timer Trigger (COMPARATOR COUNTER MODE)
TIMTRG 00 = Disable Timer Trigger.
01 = Comparator 0 output works as Timer 0 Trigger.
10 = Comparator 0 output works as Timer 1 Trigger.
11 = Comparator 0 output works as Timer 2 Trigger.
18.2.2. Comparator 1 Control Register
The Comparator 1 Control Register (CMP1), shown in Table 131, configures the comparator 1 inputs and sets the value of the internal voltage reference.
Table 131. Comparator 1 Control Register (CMP1)
Bits
7
6
Field
INPSEL
INNSEL
Reset
0
0
0
1
0
1
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
5
4
3
2
1
REFLVL
0
TIMTRG
F91h
Bit
Description
[7]
INPSEL
Signal Select for Positive Input
0 = GPIO pin used as positive comparator 1 input.
1 = Temperature sensor used as positive comparator 1 input.
[6]
INNSEL
Signal Select for Negative Input
0 = Internal reference disabled, GPIO pin used as negative comparator 1 input.
1 = Internal reference enabled as negative comparator 1 input.
PS025016-1013
PRELIMINARY
Comparator
Z8 Encore! XP® F1680 Series
Product Specification
259
Bit
Description (Continued)
[5:2]
REFLVL
Comparator 1 Internal Reference Voltage Level
This reference is independent of the ADC voltage reference.
0000 = 0.0 V
0001 = 0.2 V
0010 = 0.4 V
0011 = 0.6 V
0100 = 0.8 V
0101 = 1.0 V (Default)
0110 = 1.2 V
0111 = 1.4 V
1000 = 1.6 V
1001 = 1.8 V
1010–1111 = Reserved
[1:0]
Timer Trigger (Comparator Counter Mode)
TIMTRG Enable/disable timer operation.
00 = Disable Timer Trigger.
01 = Comparator 1 output works as Timer 0 Trigger.
10 = Comparator 1 output works as Timer 1 Trigger.
11 = Comparator 1 output works as Timer 2 Trigger.
PS025016-1013
PRELIMINARY
Comparator
Z8 Encore! XP® F1680 Series
Product Specification
260
Chapter 19. Temperature Sensor
The on-chip Temperature Sensor allows you to measure temperature on the die to an accuracy of roughly ±7° C over a range of –40° C to +105° C. Over a reduced range, the accuracy is significantly better. This block is a moderately accurate temperature sensor for
low-power applications where high accuracy is not required. Uncalibrated accuracy is significantly worse, therefore the temperature sensor is not recommended for untrimmed use:
•
•
•
•
On-chip temperature sensor
±7° C full-range accuracy for calibrated version
±1.5° C accuracy over the range of 20° C to 30° C
Flash recalibration capability
19.1. Operation
The on-chip temperature sensor is a Proportional To Absolute Temperature (PTAT) topology which provides for zero-point calibration. A pair of Flash option bytes contain the calibration data. The temperature sensor can be disabled by a bit in the Power Control
Register 0 (see page 44) to reduce power consumption.
The temperature sensor can be directly read by the ADC to determine the absolute value of
its output. The temperature sensor output is also available as an input to the comparator for
threshold type measurement determination. The accuracy of the sensor when used with the
comparator is substantially less than when measured by the ADC. Maximum accuracy can
be obtained by customer retrimming the sensor using an external reference and a high-precision external reference in the target application.
During normal operation, the die undergoes heating that will cause a mismatch between
the ambient temperature and that measured by the sensor. For best results, the XP device
should be placed into STOP Mode for sufficient time such that the die and ambient temperatures converge (this time will be dependent on the thermal design of the system). The
temperature sensor should be measured immediately after recovery from STOP Mode.
The following two equations define the relationship between the ADC reading and the die
temperature. In each equation, T is the temperature in degrees Celsius, and ADC is the 10bit compensated ADC value.
Equation #1. If bit 2 of TEMPCALH calibration option byte is 0, then:
T = (25/128) * (ADC + {TEMPCALH_bit1, TEMPCALH_bit0, TEMPCALL}) – 77
Equation #2. If bit 2 of TEMPCALH calibration option byte is 1, then:
T = (25/128) * (ADC – {TEMPCALH_bit1, TEMPCALH_bit0, TEMPCALL}) –77
PS025016-1013
PRELIMINARY
Temperature Sensor
Z8 Encore! XP® F1680 Series
Product Specification
261
In these two equations, TEMPCALH and TEMPCALL are a pair of Flash option bits containing the calibration data. For more details, see the discussion of TEMPCALH and
TEMPCALL in the Flash Option Bits chapter on page 276.
Note: The equations above are temporary test results of the Z8F1680 MCU, version A. The coefficient in the formula may change according to results from tests of version B.
19.1.1. Calibration
The temperature sensor undergoes calibration during the manufacturing process and is
maximally accurate only at 30° C. Accuracy decreases as measured temperatures move
further from the calibration point.
Because this sensor is an on-chip sensor, Zilog recommends that the user accounts for the
difference between ambient and die temperatures when inferring ambient temperature
conditions.
PS025016-1013
PRELIMINARY
Temperature Sensor
Z8 Encore! XP® F1680 Series
Product Specification
262
Chapter 20. Flash Memory
The products in the Z8 Encore! XP F1680 Series feature either 24 KB (24576 bytes),
16 KB (16384 bytes) and 8 KB (8192 bytes) of nonvolatile Flash memory with read/write/
erase capability. The Flash memory can be programmed and erased in-circuit by either
user code or through the On-Chip Debugger.
The Flash memory array is arranged in pages with 512 bytes per page. The 512 byte page
is the minimum Flash block size that can be erased. Each page is divided into 4 rows of
128 bytes.
For program/data protection, Flash memory is also divided into sectors. In the Z8 Encore!
XP F1680 Series, Flash memory is divided into 8 sectors which can be protected from
programming and erase operation on a per sector basis.
The first 2 bytes of the Flash program memory are used as Flash option bits. For more
information about their operation, see the Flash Option Bits chapter on page 276.
Table 132 lists the Flash memory configuration for each device in the Z8 Encore! XP
F1680 Series.
Table 132. Z8 Encore! XP F1680 Series Flash Memory Configurations
Part Number
Flash Size in Flash
KB (Bytes) Pages
Program Memory
Addresses
Flash Sector
Size (bytes)
Number of
Sectors
Pages per
Sector
Z8F2480
24 (24576)
48
0000h–5FFFh
3072
8
6
Z8F1680
16 (16384)
32
0000h–3FFFh
2048
8
4
Z8F0880
8 (8192)
16
0000h–1FFFh
1024
8
2
20.1. Flash Information Area
The Flash Information Area is separate from Program Memory and is mapped to the
address range FE00h to FFFFh. Not all these addresses are user-accessible. Factory trim
values for the analog peripherals are stored in the Flash Information Area, and so are factory calibration data for the Temperature Sensor. Figures 51 through 53 display the Flash
memory arrangement.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
263
8KB Flash
Program Memory
Addresses
1FFFh
Page 15
Page 14
Sector 7
1C00h
Page 13
1BFFh
Page 12
Sector 6
Page 11
1800h
Page 10
17FFh
1FFFh
1DFFh
1BFFh
19FFh
17FFh
15FFh
13FFh
Sector 5
1400h
13FFh
0C00h
0BFFh
Sector 2
0800h
07FFh
Page 3
Sector 1
0400h
Page 2
03FFh
Page 1
Sector 0
Page 0
0000h
07FFh
05FFh
03FFh
01FFh
0000h
Figure 51. 8 KB Flash Memory Arrangement
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
264
16KB Flash
Program Memory
Addresses
3FFFh
Page 31
3FFFh
Page 30
Sector 7
3800h
Page 29
37FFh
Page 28
Sector 6
Page 27
3000h
Page 26
2FFFh
Sector 5
Page 25
2800h
27FFh
Page 24
39FFh
37FFh
35FFh
33FFh
31FFh
2FFFh
Page 7
Page 6
1800h
17FFh
Page 5
Sector 2
0FFFh
0DFFh
0BFFh
Page 4
1000h
0FFFh
Page 3
Sector 1
0800h
Page 2
07FFh
Page 1
Sector 0
Page 0
0000h
05FFh
03FFh
01FFh
0000h
Figure 52. 16 KB Flash Memory Arrangement
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
265
24KB Flash
Program Memory
Addresses
5FFFh
Page 47
5FFFh
Page 46
Sector 7
5400h
Page 45
53FFh
Page 44
Sector 6
Page 43
4800h
Page 42
47FFh
Sector 5
Page 41
3C00h
3BFFh
Page 40
59FFh
57FFh
55FFh
53FFh
51FFh
4FFFh
2400h
23FFh
Page 5
Sector 2
0BFFh
Page 4
1800h
17FFh
Page 3
Sector 1
0C00h
Page 2
0BFFh
Page 1
Sector 0
Page 0
0000h
05FFh
03FFh
01FFh
0000h
Figure 53. 24 KB Flash Memory Arrangement
20.2. Operation
The Flash Controller programs and erases Flash memory. The Flash Controller provides
the proper Flash controls and timing for byte programming, Page Erase and Mass Erase of
Flash memory.
The Flash Controller contains several protection mechanisms to prevent accidental
programming or erasure. These mechanisms operate on the page, sector and full-memory
levels.
The Flow Chart in Figure 54 displays basic Flash Controller operation. The sections that
follow provide details about the various operations (Lock, Unlock, Byte Programming,
Page Protect, Page Unprotect, Page Select Page Erase and Mass Erase) shown in
Figure 54.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
266
Reset
Lock State 0
Write Page
Select Register
Write FCTL
No
73h
Yes
Lock State 1
Write FCTL
Writes to Page Select
Register in Lock State 1
result in a return to
Lock State 0
No
8Ch
Yes
Write Page
Select Register
No
Page Select
values match?
Yes
Yes
Page in
Protected Sector?
Byte Program
Write FCTL
No
Page
Unlocked
Program/Erase
Enabled
95h
Yes
Page Erase
No
Figure 54. Flowchart: Flash Controller Operation
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
267
20.2.1. Flash Operation Timing Using Flash Frequency
Registers
Before performing either a program or erase operation on Flash memory, you must first
configure the Flash frequency High and Low Byte registers. The Flash frequency registers
allow programming and erasing of the Flash with system clock frequencies ranging from
32 kHz (32768 Hz) through 20 MHz.
The Flash frequency High and Low Byte registers combine to form a 16-bit value,
FFREQ, to control timing for flash program and erase operations. The 16-bit binary Flash
frequency value must contain the system clock frequency (in kHz). This value is calculated using the following equation:
System Clock Frequency (Hz)
FFREQ[15:0] = ------------------------------------------------------------------------------1000
Caution: Flash programming and erasure are not supported for system clock frequencies below
32 kHz (32768 Hz) or above 20 MHz. The Flash Frequency High and Low Byte registers
must be loaded with the correct value to ensure operation of the Z8 Encore! XP F1680
Series devices.
20.2.2. Flash Code Protection Against External Access
The user code contained within Flash memory can be protected against external access
with the On-Chip Debugger. Programming the FRP Flash option bit prevents reading of
the user code with the On-Chip Debugger. For more details, see the Flash Option Bits
chapter on page 276 and the On-Chip Debugger chapter on page 294.
20.2.3. Flash Code Protection Against Accidental Program
and Erasure
The Z8 Encore! XP F1680 Series provides several levels of protection against accidental
program and erasure of the contents of Flash memory. This protection is provided by a
combination of the Flash Option bits, the register locking mechanism, the page select
redundancy and the sector level protection control of the Flash Controller.
20.2.3.1. Flash Code Protection Using the Flash Option Bits
The FWP Flash option bit provides Flash Program Memory protection as listed in Table
133. For more details, see the Flash Option Bits chapter on page 276.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
268
Table 133. Flash Code Protection Using the Flash Option Bit
FWP
Flash Code Protection Description
0
Programming and erasing disabled for all of Flash Program Memory. In user code programming,
Page Erase and Mass Erase are all disabled. Mass Erase is available through the On-Chip
Debugger.
1
Programming, Page Erase and Mass Erase are enabled for all of Flash Program Memory.
20.2.3.2. Flash Code Protection Using the Flash Controller
At Reset, the Flash Controller locks to prevent accidental program or erasure of the contents of Flash memory. Follow the steps below to unlock the Flash Controller from user
code:
1. Write the Page Select Register with the target page.
2. Write the first unlock command 73h to the Flash Control Register.
3. Write the second unlock command 8Ch to the Flash Control Register.
4. Rewrite the Page Select Register with the same page previously stored there.
If the two Page Select writes do not match, the controller reverts to a locked state. If the
two writes match, the selected page becomes active. For details, see the flowchart in
Figure 54 on page 266.
Note:
Byte Programming, Page Erase and Mass Erase will not be allowed if the FWP bit is
cleared or if the page resides in a protected block.
After unlocking a specific page, Byte Programing or Page Erase can be performed. At the
conclusion of a Page Erase, the Flash Controller is automatically locked. To lock the Flash
Controller after Byte Programming, write to the Flash Control Register with any value
other than the Page Erase or Mass Erase comands.
20.2.3.3. Sector Based Flash Protection
The final protection mechanism is implemented on a per-sector basis. The Flash memories
of Z8 Encore! devices are divided into a maximum number of 8 sectors. A sector is 1/8 of
the total size of Flash memory unless this value is smaller than the page size, in which case
the sector and page sizes are equal. On the Z8 Encore! XP F1680 Series devices, the sector
size is 3 KB, 2 KB or 1 KB depending on available on-chip Flash size of 24 KB, 16 KB and
8 KB.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
269
The Flash Sector Protect Register can be configured to prevent sectors from being programmed or erased. After a sector is protected, it cannot be unprotected by user code. The
Flash Sector Protect Register is cleared after reset and any previously written protection
values is lost. User code must write this register in their initialization routine if they want
to enable sector protection.
The Flash Sector Protect Register shares its Register File address with the Page Select
Register. The Flash Sector Protect Register is accessed by writing the Flash Control Register with 5Eh. After the Flash Sector Protect Register is selected, it can be accessed at the
Page Select Register address. When user code writes the Flash Sector Protect Register,
bits can only be set to 1. Thus, sectors can be protected, but not unprotected, via register
write operations. Writing a value other than 5Eh to the Flash Control Register deselects
the Flash Sector Protect Register and reenables access to the Page Select Register. code:
1. Write 00h to the Flash Control Register to reset the Flash Controller.
2. Write 5Eh to the Flash Control Register to select the Flash Sector Protect Register.
3. Read and/or write the Flash Sector Protect Register which is now at Register File
address FF9h.
4. Write 00h to the Flash Control Register to return the Flash Controller to its reset state.
The Sector Protect Register is initialized to 0 on Reset, putting each sector into an unprotected state. When a bit in the Sector Protect Register is written to 1, the corresponding
sector can no longer be written or erased. After a bit of the Sector Protect Register has
been set, it can not be cleared except by a System Reset.
20.2.4. Byte Programming
Flash memory is enabled for byte programming on the active page after unlocking the
Flash Controller. Erase the address(es) to be programmed using either the Page Erase or
Mass Erase command prior to performing byte programming. An erased Flash byte
contains all 1s (FFh). The programming operation can only be used to change bits from 1
to 0. To change a Flash bit (or multiple bits) from 0 to 1 requires execution of either the
Page Erase or Mass Erase command.
Byte programming can be accomplished using the On-Chip Debugger’s Write Memory
command or eZ8 CPU execution of the LDC or LDCI instructions. For a description of the
LDC and LDCI instructions, refer to the eZ8 CPU Core User Manual (UM0128), available
for download at www.zilog.com. While the Flash Controller programs the contents of
Flash memory, the eZ8 CPU idles but the system clock and on-chip peripherals continue
to operate.
After a byte is written, the page remains unlocked, allowing for subsequent writes to other
bytes on the same page. To exit programming mode and lock Flash memory, write any
value to the Flash Control Register except the Mass Erase or Page Erase commands.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
270
Caution: The byte at each Flash memory address cannot be programmed (any bits written to 0)
more than twice before an erase cycle occurs.
20.2.5. Page Erase
The Flash memory can be erased one page (512 bytes) at a time. Page-erasing Flash
memory sets all bytes in that page to the value FFh. The Flash Page Select register
identifies the page to be erased. Only a page residing in an unprotected sector can be
erased. With the Flash Controller unlocked, writing the value 95h to the Flash Control
Register initiates the Page Erase operation on the active page. While the Flash Controller
executes the Page Erase operation, the eZ8 CPU idles but the system clock and on-chip
peripherals continue to operate. The eZ8 CPU resumes operation after the Page Erase
operation completes. If the Page Erase operation is performed using the OCD, poll the
Flash Status register to determine when the Page Erase operation is complete. When the
Page Erase is complete, the Flash Controller returns to its locked state.
20.2.6. Mass Erase
Flash memory can also be mass-erased using the Flash Controller, but only by using the
On-Chip Debugger. Mass-erasing Flash memory sets all bytes to the value FFh. With the
Flash Controller unlocked, writing the value 63h to the Flash Control Register initiates the
Mass Erase operation. While the Flash Controller executes the Mass Erase operation, the
eZ8 CPU idles but the system clock and on-chip peripherals continue to operate. Using the
On-Chip Debugger, poll the Flash Status register to determine when the Mass Erase
operation is complete. When the Mass Erase is complete, the Flash Controller returns to its
locked state.
20.2.7. Flash Controller Bypass
The Flash Controller can be bypassed and the control signals for Flash memory are
brought out to the GPIO pins. Bypassing the Flash Controller allows faster row
programming algorithms by controlling these Flash programming signals directly.
Row programming is recommended for gang programming applications and large-volume
customers who do not require in-circuit initial programming of Flash memory. Mass Erase
and Page Erase operations are also supported when the Flash Controller is bypassed.
For more information about bypassing the Flash Controller, please contact Zilog Technical
Support.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
271
20.2.8. Flash Controller Behavior in Debug Mode
The following changes in behavior of the Flash Controller occur when the Flash Controller is accessed using the On-Chip Debugger:
•
•
•
•
•
The Flash Write Protect option bit is ignored
•
•
The Page Select register can be written when the Flash Controller is unlocked
The Flash Sector Protect register is ignored for programming and erase operations
Programming operations are not limited to the page selected in the Page Select Register
Bits in the Flash Sector Protect register can be written to 1 or 0
The second write of the Page Select register to unlock the Flash Controller is not necessary
The Mass Erase command is enabled through the Flash Control Register
Caution: For security reasons, the Flash controller allows only a single page to be opened for
write/erase. When writing multiple Flash pages, the Flash controller must go through
the unlock sequence again to select another page.
20.3. Flash Control Register Definitions
This section defines the features of the following Flash Control registers.
Flash Control Register: see page 271
Flash Status Register: see page 272
Flash Page Select Register: see page 273
Flash Sector Protect Register: see page 274
Flash Frequency High and Low Byte Registers: see page 274
20.3.1. Flash Control Register
The Flash Controller must be unlocked using the Flash Control Register (see Table 134)
before programming or erasing Flash memory. The Flash Controller is unlocked by
writing to the Flash Page Select Register, then 73h 8Ch, sequentially, to the Flash Control
Register, and finally again to the Flash Page Select Register with the same value as the
previous write. When the Flash Controller is unlocked, Mass Erase or Page Erase can be
initiated by writing the appropriate command to the FCTL. Erase applies only to the active
page selected in the Flash Page Select Register. Mass Erase is enabled only through the
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
272
On-Chip Debugger. Writing an invalid value or an invalid sequence returns the Flash
Controller to its locked state. The write-only Flash Control Register shares its Register
File address with the read-only Flash Status Register.
Table 134. Flash Control Register (FCTL)
Bits
7
6
5
4
Field
3
2
1
0
FCMD
Reset
0
0
0
0
0
0
0
0
R/W
W
W
W
W
W
W
W
W
Address
FF8h
Bit
Description
[7:0]
FCMD
Flash Command
73h = First unlock command.
8Ch = Second unlock command.
95h = Page Erase command (must be third command in sequence to initiate Page Erase).
63h = Mass Erase command (must be third command in sequence to initiate Mass Erase).
5Eh = Enable Flash Sector Protect Register Access
20.3.2. Flash Status Register
The Flash Status register (Table 135) indicates the current state of the Flash Controller.
This register can be read at any time. The read-only Flash Status Register shares its Register File address with the write-only Flash Control Register.
Table 135. Flash Status Register (FSTAT)
Bits
7
Field
6
5
4
3
Program_status
2
1
0
FSTAT
Reset
0
0
0
0
0
0
0
0
R/W
R
R
R
R
R
R
R
R
Address
Bit
FF8h
Description
[7:6]
Indicate the fail or success after Flash Write/Erase
Program_ 00 = Success.
status
10 = Success.
11 = Fail due to low power.
01 = Reserved.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
273
Bit
Description (Continued)
[5:0]
FSTAT
Flash Controller Status
000000 = Flash Controller locked.
000001 = First unlock command received (73h written).
000010 = Second unlock command received (8Ch written).
000011 = Flash Controller unlocked.
000100 = Sector protect register selected.
001xxx = Program operation in progress.
010xxx = Page erase operation in progress.
100xxx = Mass erase operation in progress.
20.3.3. Flash Page Select Register
The Flash Page Select Register, shown in Table 136, shares address space with the Flash
Sector Protect Register. Unless the Flash controller was last written with 5Eh, writes to
this address target the Flash Page Select Register.
The register is used to select one of the Flash memory pages to be programmed or erased.
Each Flash Page contains 512 bytes of Flash memory. During a Page Erase operation, all
Flash memory having addresses with the most significant 7 bits provided by FPS[6:0] are
chosen for program/erase operation.
Table 136. Flash Page Select Register (FPS)
Bits
7
Field
INFO_EN
Reset
0
0
0
0
R/W
R/W
R/W
R/W
R/W
Address
Bit
6
5
4
3
2
1
0
0
0
0
0
R/W
R/W
R/W
R/W
PAGE
FF9h
Description
[7]
Information Area Enable
INFO_EN 0 = Information Area is not selected.
1 = Information Area is selected. The Information Area is mapped into the Program Memory
address space at addresses FE00h through FFFFh.
[6:0]
PAGE
Page Select
This 7-bit field identifies the Flash memory page for Page Erase and page unlocking. Program
Memory address[15:9] = PAGE[6:0].
• On Z8F2480 devices, the upper 1 bit must always be 0.
• On Z8F1680 devices, the upper 2 bits must always be 0.
• On Z8F0880 devices, the upper 3 bits must always be 0.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
274
20.3.4. Flash Sector Protect Register
The Flash Sector Protect Register is shared with the Flash Page Select Register. When the
Flash Control Register (see page 271) is written with 5Eh, the next write to this address
targets the Flash Sector Protect Register. In all other cases, it targets the Flash Page Select
Register.
This register selects one of the eight available Flash memory sectors to be protected. The
reset state of each Sector Protect bit is an unprotected state. After a sector is protected by
setting its corresponding register bit, it can only be unprotected (the register bit can only
be cleared) by a System Reset. Please refer to Table 132 on page 262 and to Figures 51
through 53 to review how Flash memory is arranged by sector.
Table 137. Flash Sector Protect Register (FPROT)
Bits
7
6
5
4
3
2
1
0
Field
SPROT7
SPROT6
SPROT5
SPROT4
SPROT3
SPROT2
SPROT1
SPROT0
Reset
0
0
0
0
0
0
0
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Bit
FF9h
Description
[7:0]
Sector Protection
SPROTx • On Z8F2480 devices, each bit corresponds to a 3 KB Flash sector.
• On Z8F1680 devices, each bit corresponds to a 2 KB Flash sector.
• On Z8F0880 devices, each bit corresponds to a 1 KB Flash sector.
20.3.5. Flash Frequency High and Low Byte Registers
The Flash Frequency High and Low Byte registers, shown in Tables 138 and 139, combine to form a 16-bit value, FFREQ, to control timing for Flash program and erase operations. The 16-bit binary Flash Frequency value must contain the system clock frequency
(in kHz) and is calculated using the following equation:
System Clock Frequency
FFREQ[15:0] = FFREQH[7:0],FFREQL[7:0] = -----------------------------------------------------------------1000
Caution: Flash programming and erasure is not supported for system clock frequencies below
32 kHz or above 20 MHz. The Flash Frequency High and Low Byte registers must be
loaded with the correct values to ensure proper operation of the device.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
275
Table 138. Flash Frequency High Byte Register (FFREQH)
Bits
7
6
5
4
Field
1
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
1
0
Address
Bit
2
FFREQH
Reset
R/W
3
FFAh
Description
[7:0]
Flash Frequency High Byte
FFREQH High byte of the 16-bit Flash Frequency value.
Table 139. Flash Frequency Low Byte Register (FFREQL)
Bits
7
6
5
4
3
Field
FFREQL
Reset
0
R/W
R/W
Address
FFBh
Bit
2
Description
[7:0]
Flash Frequency Low Byte
FFREQL Low byte of the 16-bit Flash Frequency value.
PS025016-1013
PRELIMINARY
Flash Memory
Z8 Encore! XP® F1680 Series
Product Specification
276
Chapter 21. Flash Option Bits
Programmable Flash option bits allow user configuration of certain aspects of Z8 Encore!
XP F1680 Series MCU operation. The feature configuration data is stored in Flash program memory and are read during Reset. The features available for control through the
Flash option bits include:
•
•
•
•
Watchdog Timer time-out response selection–interrupt or System Reset
•
VBO configuration-always enabled or disabled during STOP Mode to reduce STOP
Mode power consumption
•
•
LVD voltage threshold selection
•
Factory trimming information for the IPO and Temperature Sensor
Watchdog Timer enabled at Reset
The ability to prevent unwanted read access to user code in Program Memory
The ability to prevent accidental programming and erasure of all or a portion of the user
code in Program Memory
Oscillator mode selection for high, medium and low-power crystal oscillators or an external RC oscillator
21.1. Operation
This section describes the types of option bits and their configuration in the Option Configuration registers.
21.1.1. Option Bit Configuration by Reset
Each time the Flash option bits are programmed or erased, the device must be Reset for
the change to take effect. During any Reset operation (System Reset or Stop Mode Recovery), the Flash option bits are automatically read from Flash Program Memory and written
to the Option Configuration registers. These Option Configuration registers control operation of the devices within the Z8 Encore! XP F1680 Series MCU. Option bit control is
established before the device exits Reset and the eZ8 CPU begins code execution. The
Option Configuration registers are not part of the Register File and are not accessible for
read or write access.
PS025016-1013
PRELIMINARY
Flash Option Bits
Z8 Encore! XP® F1680 Series
Product Specification
277
21.1.2. Option Bit Types
This section describes the User, Trim and Calibration option bit types.
21.1.2.1.
User Option Bits
The user option bits are contained in the first two bytes of Program Memory. User access
to these bits has been provided because these locations contain application-specific device
configurations. The information contained here is lost when page 0 of the Program Memory is erased.
21.1.2.2.
Trim Option Bits
The trim option bits are contained in the Flash memory information page. These bits are
factory programmed values required to optimize the operation of onboard analog circuitry
and cannot be permanently altered by the user. Program Memory can be erased without
endangering these values. It is possible to alter working values of these bits by accessing
the Trim Bit Address and Data registers, but these working values are lost after a power
loss.
There are 32 bytes of trim data. To modify one of these values the user code must first
write a value between 00h and 1Fh into the Trim Bit Address Register. The next write to
the Trim Bit Data Register changes the working value of the target trim data byte.
Reading the trim data requires the user code to write a value between 00h and 1Fh into the
Trim Bit Address Register. The next read from the Trim Bit Data Register returns the
working value of the target trim data byte.
Note:
The trim address ranges from information address 20-3F only. The remainder of the
information page is not accessible via the trim bit address and data registers.
21.1.2.3.
Calibration Option Bits
The calibration option bits are also contained in the information page. These bits are factory programmed values intended for use in software correcting the device’s analog performance. To read these values, the user code must employ the LDC instruction to access
the information area of the address space as defined in the Flash Information Area section
on page 21.
The following code example shows how to read the calibration data from the Flash Information Area.
; get value at info address 60 (FE60h)
ldx FPS, #%80 ; enable access to flash info page
ld R0, #%FE
PS025016-1013
PRELIMINARY
Flash Option Bits
Z8 Encore! XP® F1680 Series
Product Specification
278
ld R1, #%60
ldc R2, @RR0 ; R2 now contains the calibration value
21.2. Flash Option Bit Control Register Definitions
This section defines the features of the following Flash Option Bit Control registers.
User Option Bits: see page 278
Trim Bit Data Option Bits: see page 281
Trim Bit Address Option Bits: see page 281
Trim Bit Address Space: see page 282
Zilog Calibration Option Bits: see page 289
21.2.1. User Option Bits
The first two bytes of Flash program memory, at addresses 0000h and 0001h, are
reserved for the user-programmable Flash option bits, as shown in Tables 140 and 141.
Table 140. Flash Option Bits at Program Memory Address 0000h
Bits
Field
7
6
WDT_RES WDT_AO
Reset
R/W
5
4
OSC_SEL[1:0]
3
2
1
0
VBO_AO
FRP
PRAM_M
FWP
U
U
U
U
U
U
U
U
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Address
Program Memory 0000h
Note: U = Unchanged by Reset. R/W = Read/Write.
Bit
Description
[7]
WDT_RES
Watchdog Timer Reset
0 = Watchdog Timer time-out generates an interrupt request. Interrupts must be globally
enabled for the eZ8 CPU to acknowledge the interrupt request.
1 = Watchdog Timer time-out causes a System Reset. This setting is the default for
unprogrammed (erased) Flash.
[6]
WDT_AO
Watchdog Timer Always ON
0 = Watchdog Timer is automatically enabled upon application of system power.
Watchdog Timer cannot be disabled.
1 = Watchdog Timer is enabled upon execution of the WDT instruction. After it is
enabled, the Watchdog Timer can only be disabled by a Reset or Stop Mode
Recovery. This setting is the default for unprogrammed (erased) Flash.
PS025016-1013
PRELIMINARY
Flash Option Bits
Z8 Encore! XP® F1680 Series
Product Specification
279
Bit
Description (Continued)
[5:4]
Oscillator Mode Selection
OSC_SEL[1:0] 00 = On-chip oscillator configured for use with external RC networks or external clock
input (