MC68HC908AP16CB
MC68HC908AP16CB
MC68HC908AP16CB
MC68HC908AP64
MC68HC908AP32
MC68HC908AP16
MC68HC908AP8
Data Sheet
M68HC08
Microcontrollers
MC68HC908AP64/D
Rev. 2.5
10/2003
MOTOROLA.COM/SEMICONDUCTORS
MC68HC908AP64
MC68HC908AP32
MC68HC908AP16
MC68HC908AP8
Data Sheet
To provide the most up-to-date information, the revision of our
documents on the World Wide Web will be the most current. Your printed
copy may be an earlier revision. To verify you have the latest information
available, refer to:
http://motorola.com/semiconductors/
The following revision history table summarizes changes contained in
this document. For your convenience, the page number designators
have been linked to the appropriate location.
Motorola and the Stylized M Logo are registered trademarks of Motorola, Inc.
DigitalDNA is a trademark of Motorola, Inc.
This product incorporates SuperFlash technology licensed from SST.
Data Sheet
3
Revision History
Date
Revision
Level
Page
Number(s)
Description
Added MC68HC908AP16/AP8 information throughout.
October 2003
August 2003
July 2003
May 2003
Data Sheet
2.5
2.4
2.3
2.2
167
421
417, 421
30
67
125
168193
207
415
101
Updated electricals.
415
MOTOROLA
List of Sections
Data Sheet
5
List of Sections
Data Sheet
MOTOROLA
Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3
1.4
Pin Assignment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.5
1.6
1.7
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2
2.3
2.4
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2
4.3
Data Sheet
7
4.5
4.6
4.7
FLASH Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
4.7.1
FLASH Block Protect Register . . . . . . . . . . . . . . . . . . . . . . . 62
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2
5.3
5.4
5.5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.3
CPU Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3.1
Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.3.2
Index Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.3.3
Stack Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.3.4
Program Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.3.5
Condition Code Register . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
6.4
6.5
Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.5.1
Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
6.5.2
Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
Data Sheet
6.6
6.7
6.8
Opcode Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
MC68HC908AP Family Rev. 2.5
MOTOROLA
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7.2
Clock Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.2.1
CGM Reference Clock Selection . . . . . . . . . . . . . . . . . . . . . 93
7.2.2
TBM Reference Clock Selection . . . . . . . . . . . . . . . . . . . . . 94
7.3
Internal Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.4
RC Oscillator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.5
X-tal Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.6
I/O Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.6.1
Crystal Amplifier Input Pin (OSC1). . . . . . . . . . . . . . . . . . . . 97
7.6.2
Crystal Amplifier Output Pin (OSC2) . . . . . . . . . . . . . . . . . . 98
7.6.3
Oscillator Enable Signal (SIMOSCEN). . . . . . . . . . . . . . . . . 98
7.6.4
CGM Oscillator Clock (CGMXCLK) . . . . . . . . . . . . . . . . . . . 98
7.6.5
CGM Reference Clock (CGMRCLK) . . . . . . . . . . . . . . . . . . 98
7.6.6
Oscillator Clock to Time Base Module (OSCCLK) . . . . . . . . 98
7.7
Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.7.1
Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
7.7.2
Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
7.8
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.3
Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
8.3.1
Oscillator Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.3.2
Phase-Locked Loop Circuit (PLL) . . . . . . . . . . . . . . . . . . . 105
8.3.3
PLL Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
8.3.4
Acquisition and Tracking Modes . . . . . . . . . . . . . . . . . . . . 107
8.3.5
Manual and Automatic PLL Bandwidth Modes. . . . . . . . . . 107
8.3.6
Programming the PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.3.7
Special Programming Exceptions . . . . . . . . . . . . . . . . . . . 113
8.3.8
Base Clock Selector Circuit . . . . . . . . . . . . . . . . . . . . . . . . 113
Data Sheet
9
8.4
I/O Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.4.1
External Filter Capacitor Pin (CGMXFC) . . . . . . . . . . . . . . 115
8.4.2
PLL Analog Power Pin (VDDA) . . . . . . . . . . . . . . . . . . . . . . 115
8.4.3
PLL Analog Ground Pin (VSSA) . . . . . . . . . . . . . . . . . . . . . 115
8.4.4
Oscillator Output Frequency Signal (CGMXCLK) . . . . . . . 115
8.4.5
CGM Reference Clock (CGMRCLK) . . . . . . . . . . . . . . . . . 115
8.4.6
CGM VCO Clock Output (CGMVCLK) . . . . . . . . . . . . . . . . 116
8.4.7
CGM Base Clock Output (CGMOUT). . . . . . . . . . . . . . . . . 116
8.4.8
CGM CPU Interrupt (CGMINT) . . . . . . . . . . . . . . . . . . . . . 116
8.5
CGM Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.5.1
PLL Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.5.2
PLL Bandwidth Control Register . . . . . . . . . . . . . . . . . . . .119
8.5.3
PLL Multiplier Select Registers . . . . . . . . . . . . . . . . . . . . . 121
8.5.4
PLL VCO Range Select Register . . . . . . . . . . . . . . . . . . . .122
8.5.5
PLL Reference Divider Select Register . . . . . . . . . . . . . . . 123
8.6
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
8.7
Special Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.7.1
Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
8.7.2
Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
8.7.3
CGM During Break Interrupts. . . . . . . . . . . . . . . . . . . . . . . 125
8.8
Acquisition/Lock Time Specifications . . . . . . . . . . . . . . . . . . . 126
8.8.1
Acquisition/Lock Time Definitions. . . . . . . . . . . . . . . . . . . .126
8.8.2
Parametric Influences on Reaction Time . . . . . . . . . . . . . . 126
8.8.3
Choosing a Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
9.2
SIM Bus Clock Control and Generation . . . . . . . . . . . . . . . . . 131
9.2.1
Bus Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.2.2
Clock Start-up from POR or LVI Reset. . . . . . . . . . . . . . . . 132
9.2.3
Clocks in Stop Mode and Wait Mode . . . . . . . . . . . . . . . . . 133
9.3
Reset and System Initialization. . . . . . . . . . . . . . . . . . . . . . . . 133
9.3.1
External Pin Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Data Sheet
10
MOTOROLA
9.3.2
9.3.2.1
9.3.2.2
9.3.2.3
9.3.2.4
9.3.2.5
9.3.2.6
9.4
SIM Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
9.4.1
SIM Counter During Power-On Reset . . . . . . . . . . . . . . . . 138
9.4.2
SIM Counter During Stop Mode Recovery . . . . . . . . . . . . . 138
9.4.3
SIM Counter and Reset States. . . . . . . . . . . . . . . . . . . . . . 138
9.5
Exception Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
9.5.1
Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.5.1.1
Hardware Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.5.1.2
SWI Instruction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.5.1.3
Interrupt Status Registers . . . . . . . . . . . . . . . . . . . . . . .142
9.5.1.4
Interrupt Status Register 1 . . . . . . . . . . . . . . . . . . . . . . . 142
9.5.1.5
Interrupt Status Register 2 . . . . . . . . . . . . . . . . . . . . . . . 144
9.5.1.6
Interrupt Status Register 3 . . . . . . . . . . . . . . . . . . . . . . . 144
9.5.2
Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.5.3
Break Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
9.5.4
Status Flag Protection in Break Mode . . . . . . . . . . . . . . . . 145
9.6
Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
9.6.1
Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
9.6.2
Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
9.7
SIM Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
9.7.1
SIM Break Status Register . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.7.2
SIM Reset Status Register . . . . . . . . . . . . . . . . . . . . . . . . 150
9.7.3
SIM Break Flag Control Register . . . . . . . . . . . . . . . . . . . .151
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
10.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
10.3
Data Sheet
11
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11.3
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
Data Sheet
12
MOTOROLA
11.7
11.8
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
12.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
12.3
12.4
12.5
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
13.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
13.3
Data Sheet
13
13.4.2.6
Transmitter Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . .220
13.4.3 Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
13.4.3.1
Character Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
13.4.3.2
Character Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
13.4.3.3
Data Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.4.3.4
Framing Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
13.4.3.5
Baud Rate Tolerance . . . . . . . . . . . . . . . . . . . . . . . . . . .225
13.4.3.6
Receiver Wakeup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
13.4.3.7
Receiver Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
13.4.3.8
Error Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
13.5 Low-Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
13.5.1 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
13.5.2 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
13.6
Data Sheet
14.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
14.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
14.3
14.4
14.5
14
MOTOROLA
14.5.1
14.5.2
Data Sheet
15
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
15.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
15.3
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305
15.9
16
MOTOROLA
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
16.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
16.3
16.4
Data Sheet
17
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
17.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Data Sheet
18
MOTOROLA
18.2.2
18.2.3
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
19.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
19.3
19.4
19.5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
20.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
20.3
Data Sheet
19
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
21.2
21.5
Interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399
21.6
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
22.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
20
MOTOROLA
22.3.4
22.3.5
22.4
22.5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
23.2
Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
24.2
24.3
24.4
24.5
Data Sheet
21
24.7
24.8
24.9
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
25.2
25.3
25.4
Data Sheet
26.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
26.2
22
MOTOROLA
1.1 Introduction
The MC68HC908AP64 is a member of the low-cost, high-performance
M68HC08 Family of 8-bit microcontroller units (MCUs). The M68HC08
Family is based on the customer-specified integrated circuit (CSIC)
design strategy. All MCUs in the family use the enhanced M68HC08
central processor unit (CPU08) and are available with a variety of
modules, memory sizes and types, and package types.
Table 1-1. Summary of Device Variations
Device
RAM Size
(bytes)
MC68HC908AP64
2,048
62,368
MC68HC908AP32
2,048
32,768
MC68HC908AP16
1,024
16,384
MC68HC908AP8
1,024
8,192
1.2 Features
Features of the MC68HC908AP64 include the following:
Data Sheet
23
On-chip RAM
Timebase module
Data Sheet
24
MOTOROLA
48-pin low quad flat pack (LQFP), 44-pin quad flat pack (QFP),
and 42-pin shrink dual-in-line package (SDIP)
Data Sheet
25
PORTA
PTA7/ADC7
PTA6/ADC6
PTA5/ADC5
PTA4/ADC4
PTA3/ADC3
PTA2/ADC2
PTA1/ADC1
PTA0/ADC0
PORTB
PTB7/T2CH1
PTB6/T2CH0
PTB5/T1CH1
PTB4/T1CH0
PTB3/RxD
PTB2/TxD
PTB1/SCL
PTB0/SDA
PORTC
PTC7/SCRxD
PTC6/SCTxD
PTC5/SPSCK
PTC4/SS
PTC3/MOSI
PTC2/MISO
PTC1 #
PTC0/IRQ2 **#
PORTD
INTERNAL BUS
PTD7/KBI7 ***
PTD6/KBI6 ***
PTD5/KBI5 ***
PTD4/KBI4 ***
PTD3/KBI3 ***
PTD2/KBI2 ***
PTD1/KBI1 ***
PTD0/KBI0 ***
M68HC08 CPU
ARITHMETIC/LOGIC
UNIT (ALU)
10-BIT ANALOG-TO-DIGITAL
CONVERTER MODULE
DDRA
CPU
REGISTERS
TIMEBASE
MODULE
DDRB
SERIAL COMMUNICATIONS
INTERFACE MODULE 1
INTERNAL OSCILLATOR
X-TAL OSCILLATOR
CGMXFC
PHASE-LOCKED LOOP
* RST
SYSTEM INTEGRATION
MODULE
* IRQ1
** IRQ2
VDD
VDDA
VSS
VSSA
SERIAL PERIPHERAL
INTERFACE MODULE
COMPUTER OPERATING
PROPERLY MODULE
KEYBOARD INTERRUPT
MODULE
POWER-ON RESET
MODULE
LOW-VOLTAGE INHIBIT
MODULE
VREG
VREFH
VREFL
SERIAL COMMUNICATIONS
INTERFACE MODULE 2
(WITH INFRARED
MODULATOR/DEMODULATOR)
EXTERNAL INTERRUPT
MODULE
POWER
ADC REFERENCE
DDRC
OSC2
DDRD
OSC1
RC OSCILLATOR
DEVICE
USER RAM
(bytes)
USER FLASH
(bytes)
MC68HC908AP64
2,048
62,368
MC68HC908AP32
2,048
32,768
MC68HC908AP16
1,024
16,384
MC68HC908AP8
1,024
8,192
26
MOTOROLA
PTD0/KBI0
PTD1/KBI1
PTD2/KBI2
VDDA
VSSA
PTD3/KBI3
PTD4/KBI4
PTD5/KBI5
PTD6/KBI6
46
45
44
43
42
41
40
39
38
37 PTD7/KBI7
PTB7/T2CH1
36 VREFH
NC
VSS
30
PTA1/ADC1
PTB4/T1CH0
29
PTA2/ADC2
IRQ1
28
PTA3/ADC3
PTB3/RxD
10
27
PTA4/ADC4
RST
11
26
PTA5/ADC5
25 PTA6/ADC6
NC 24
PTB1/SCL 13
PTB2/TxD 12
23
31
PTA7/ADC7
22
OSC2
PTC0/IRQ2
PTA0/ADC0
21
32
PTC1
20
OSC1
PTC2/MISO
NC
19
33
PTC3/MOSI
18
VDD
PTC4/SS
NC
17
34
PTC5/SPSCK
16
PTB5/T1CH1
PTC6/SCTxD
VREFL
15
35
PTC7/SCRxD
14
VREG
PTB0/SDA
PTB6/T2CH0 1
47
48 CGMXFC
NC: No connection
Data Sheet
27
PTD0/KBI0
PTD1/KBI1
PTD2/KBI2
VDDA
VSSA
PTD3/KBI3
PTD4/KBI4
PTD5/KBI5
42
41
40
39
38
37
36
35
34 PTD6/KBI6
PTB7/T2CH1
33 PTD7/KBI7
28
PTA2/ADC2
VSS
27
PTA3/ADC3
PTB4/T1CH0
26
PTA4/ADC4
IRQ1
25
PTA5/ADC5
10
24
PTA6/ADC6
PTB2/TxD 12
RST 11
23 PTA7/ADC7
PTC0/IRQ2 22
PTB3/RxD
21
OSC2
PTC1
PTA1/ADC1
20
29
PTC2/MISO
19
OSC1
PTC3/MOSI
PTA0/ADC0
18
30
PTC4/SS
17
VDD
PTC5/SPSCK
VREFL
16
31
PTC6/SCTxD
15
PTB5/T1CH1
PTC7/SCRxD
VREFH
14
32
PTB0/SDA
13
VREG
PTB1/SCL
PTB6/T2CH0 1
43
44 CGMXFC
General Description
Data Sheet
28
MOTOROLA
General Description
Pin Assignment
PTD2/KBI2
42
VDDA
PTD1/KBI1
41
VSSA
PTD0/KBI0
40
PTD3/KBI3
PTB7/T2CH1
39
PTD4/KBI4
CGMXFC
38
PTD5/KBI5
PTB6/T2CH0
37
PTD6/KBI6
VREG
36
PTD7/KBI7
PTB5/T1CH1
35
VREFH
VDD
34
VREFL
OSC1
10
33
PTA0/ADC0
OSC2
11
32
PTA1/ADC1
VSS
12
31
PTA2/ADC2
PTB4/T1CH0
13
30
PTA3/ADC3
IRQ1
14
29
PTA4/ADC4
PTB3/RxD
15
28
PTA5/ADC5
RST
16
27
PTA6/ADC6
PTB2/TxD
17
26
PTA7/ADC7
PTB1/SCL
18
25
PTC2/MISO
PTB0/SDA
19
24
PTC3/MOSI
PTC7/SCRxD
20
23
PTC4/SS
PTC6/SCTxD
21
22
PTC5/SPSCK
Internal connection
PTC0/IRQ2
Unconnected
PTC1
Unconnected
Data Sheet
29
PIN NAME
PIN DESCRIPTION
IN/OUT
VOLTAGE
LEVEL
In
4.5 to 5.5
or
2.7 to 3.3
Out
0V
In
VDD
Out
VSS
VDD
Power supply.
VSS
VDDA
VSSA
VREFH
In
VDDA
VREFL
Out
VSSA
VREG
Out
2.5V(1)
RST
In
VDD
In
VDD
In
VDD to VTST
In
VREG
Out
VREG
Out
VREG
Out
VREG
In/Out
Analog
In/Out
VDD
In
VREFH
Out
VDD
IRQ1
OSC1
OSC2
CGMXFC
PTA0/ADC0
:
PTA7/ADC7
Data Sheet
30
MOTOROLA
IN/OUT
VOLTAGE
LEVEL
In/Out
VDD
In/Out
VDD
In/Out
VDD
Out
VDD
In
VDD
In/Out
VDD
In/Out
VDD
In/Out
VDD
In/Out
VDD
8-bit general purpose I/O port; PTC6 and PTC7 are open
drain when configured as output.
In/Out
VDD
In
VDD
PTC2/MISO
In
VDD
PTC3/MOSI
Out
VDD
In
VDD
In/Out
VDD
Out
VDD
In
VDD
In/Out
VDD
In
VDD
PIN NAME
PTB0/SDA
PTB1/SCL
PTB2/TxD
PTB3/RxD
PTB4/T1CH0
PTB5/T1CH1
PTB6/T2CH0
PTB7/T2CH1
PTC0/IRQ2
PTC1
PTC4/SS
PTC4 as SS of SPI.
PTC5/SPSCK
PTC6/SCTxD
PTC7/SCRxD
PTD0/KBI0
:
PTD7/KBI7
Notes:
1. See Section 24. Electrical Specifications for VREG tolerance.
Data Sheet
31
MCU
VSS
VDD
C1(a)
0.1 F
VDD
VSSA
VDDA
C1(b)
0.1 F
C2(a)
C2(b)
VDD
Data Sheet
32
MOTOROLA
MCU
VREG
VSS
CVREGBYPASS
100 nF
Data Sheet
33
General Description
Data Sheet
34
MOTOROLA
2.1 Introduction
The CPU08 can address 64k-bytes of memory space. The memory map,
shown in Figure 2-1, includes:
Data Sheet
35
Most of the control, status, and data registers are in the zero page area
of $0000$005F. Additional I/O registers have these addresses:
$FE02; Reserved
$FE07; Reserved
$FE0A; Reserved
$FE0B; Reserved
Data registers are shown in Figure 2-2. Table 2-1 is a list of vector
locations.
Data Sheet
36
MOTOROLA
$0000
$005F
$0060
$085F
$0860
I/O Registers
96 Bytes
MC68HC908AP32
RAM
2,048 Bytes
(MC68HC908AP64)
RAM
2,048 Bytes
MC68HC908AP16
$0060
$085F
$0860
RAM
1,024 Bytes
Unimplemented
1,024 Bytes
FLASH Memory
62,368 Bytes
(MC68HC908AP64)
$885F
$8860
Unimplemented
29,600 Bytes
RAM
1,024 Bytes
Unimplemented
1,024 Bytes
FLASH Memory
8,192 Bytes
$0060
$045F
$0860
$285F
$2860
$485F
$4860
Unimplemented
45,984 Bytes
$FBFF
$FC00
$FDFF
$FE00
$FE01
$FE02
$FE03
$FE04
$FE05
$FE06
$FE07
$FE08
$FE09
$FE0A
$FE0B
$FE0C
$FE0D
$FE0E
$FE0F
$FE10
$FFCE
$FFCF
$FFD0
$FFFF
$0060
$045F
$0860
FLASH Memory
16,384 Bytes
FLASH Memory
32,768 Bytes
MC68HC908AP8
Unimplemented
54,176 Bytes
$FBFF
$FBFF
$FBFF
Monitor ROM 2
512 Bytes
SIM Break Status Register
SIM Reset Status Register
Reserved
SIM Break Flag Control Register
Interrupt Status Register 1
Interrupt Status Register 2
Interrupt Status Register 3
Reserved
FLASH Control Register
FLASH Block Protect Register
Reserved
Reserved
Break Address Register High
Break Address Register Low
Break Status and Control Register
LVI Status Register
Monitor ROM 1
447 Bytes
Mask Option Register
FLASH Vectors
48 Bytes
Data Sheet
37
Addr.
Register Name
$0000
Read:
Port A Data Register
Write:
(PTA)
Reset:
Read:
Port B Data Register
Write:
(PTB)
Reset:
$0001
Read:
Port C Data Register
Write:
(PTC)
Reset:
$0002
Read:
Port D Data Register
Write:
(PTD)
Reset:
$0003
$0004
$0005
$0006
$0007
Bit 7
Bit 0
PTA7
PTA6
PTA5
PTA4
PTA3
PTA2
PTA1
PTA0
PTB2
PTB1
PTB0
PTC2
PTC1
PTC0
PTD2
PTD1
PTD0
Unaffected by reset
PTB7
PTB6
PTB5
PTB4
PTB3
Unaffected by reset
PTC7
PTC6
PTC5
PTC4
PTC3
Unaffected by reset
PTD7
PTD6
PTD5
PTD4
PTD3
Unaffected by reset
Read:
DDRA7
Data Direction Register A
Write:
(DDRA)
Reset:
0
Read:
DDRB7
Data Direction Register B
Write:
(DDRB)
Reset:
0
Read:
DDRC7
Data Direction Register C
Write:
(DDRC)
Reset:
0
Read:
DDRD7
Data Direction Register D
Write:
(DDRD)
Reset:
0
DDRA6
DDRA5
DDRA4
DDRA3
DDRA2
DDRA1
DDRA0
DDRB6
DDRB5
DDRB4
DDRB3
DDRB2
DDRB1
DDRB0
DDRC6
DDRC5
DDRC4
DDRC3
DDRC2
DDRC1
DDRC0
DDRD6
DDRD5
DDRD4
DDRD3
DDRD2
DDRD1
DDRD0
= Unimplemented
Read:
$0008
Unimplemented
Write:
Reset:
Read:
$0009
Unimplemented Write:
Reset:
U = Unaffected
X = Indeterminate
= Reserved
Data Sheet
38
MOTOROLA
Addr.
Register Name
Bit 7
Bit 0
LEDA7
LEDA6
LEDA5
LEDA4
LEDA3
LEDA2
LEDA1
LEDA0
SPRIE
SPMSTR
CPOL
CPHA
SPWOM
SPE
SPTIE
OVRF
MODF
SPTE
MODFEN
SPR1
SPR0
Read:
$000A
Unimplemented Write:
Reset:
Read:
Unimplemented Write:
$000B
Reset:
Read:
Port-A LED Control
Register Write:
(LEDA)
Reset:
$000C
Read:
$000D
Unimplemented Write:
Reset:
Read:
$000E
Unimplemented Write:
Reset:
Read:
$000F
Unimplemented Write:
Reset:
$0010
$0011
Read:
SPI Control Register
Write:
(SPCR)
Reset:
Read:
SPI Status and Control
Register Write:
(SPSCR)
Reset:
Read:
SPI Data Register
Write:
(SPDR)
Reset:
$0012
$0013
SPRF
R7
R6
R5
R4
R3
R2
R1
R0
T7
T6
T5
T4
T3
T2
T1
T0
Unaffected by reset
Read:
LOOPS
SCI Control Register 1
Write:
(SCC1)
Reset:
0
U = Unaffected
ERRIE
ENSCI
TXINV
WAKE
ILTY
PEN
PTY
= Unimplemented
X = Indeterminate
= Reserved
Data Sheet
39
Addr.
$0014
$0015
$0016
$0017
Register Name
Read:
SCI Control Register 2
Write:
(SCC2)
Reset:
Bit 0
SCTIE
TCIE
SCRIE
ILIE
TE
RE
RWU
SBK
T8
DMARE
DMATE
ORIE
NEIE
FEIE
PEIE
Read:
SCI Status Register 1
Write:
(SCS1)
Reset:
SCTE
TC
SCRF
IDLE
OR
NF
FE
PE
Read:
SCI Status Register 2
Write:
(SCS2)
Reset:
BKF
RPF
Read:
SCI Data Register
Write:
(SCDR)
Reset:
R7
R6
R5
R4
R3
R2
R1
R0
T7
T6
T5
T4
T3
T2
T1
T0
Read:
SCI Baud Rate Register
Write:
(SCBR)
Reset:
0
0
Unaffected by reset
Read:
Keyboard Status and
Control Register Write:
(KBSCR)
Reset:
SCP1
SCP0
SCR2
SCR1
SCR0
KEYF
IMASK
MODE
ACK
Read:
Keyboard Interrupt
Enable Register Write:
(KBIER)
Reset:
$001B
$001D
R8
$001A
$001C
Read:
SCI Control Register 3
Write:
(SCC3)
Reset:
$0018
$0019
Bit 7
Read:
IRQ2 Status and Control
Register Write:
(INTSCR2)
Reset:
KBIE7
KBIE6
KBIE5
KBIE4
KBIE3
KBIE2
KBIE1
KBIE0
IRQ2F
IMASK2
MODE2
SCIBDSRC
= Unimplemented
Read: STOP_
Configuration Register 2
Write: ICLKDIS
(CONFIG2)
Reset:
0
PUC0ENB
0
STOP_
RCLKEN
0
ACK2
0
STOP_
OSCCLK1 OSCCLK0
XCLKEN
0
X = Indeterminate
= Reserved
40
MOTOROLA
Addr.
$001E
$001F
Register Name
Read:
IRQ1 Status and Control
Register Write:
(INTSCR1)
Reset:
Bit 7
Bit 0
IRQ1F
IMASK1
MODE1
SSREC
STOP
COPD
PS2
PS1
PS0
ACK1
0
Read:
COPRS
Configuration Register 1
Write:
(CONFIG1)
Reset:
0
TOIE
TSTOP
$0020
$0021
$0022
$0023
$0024
$0025
Read:
Timer 1 Status and
Control Register Write:
(T1SC)
Reset:
TOF
Read:
Timer 1 Counter
Register High Write:
(T1CNTH)
Reset:
Bit 15
14
13
12
11
10
Bit 8
Read:
Timer 1 Counter
Register Low Write:
(T1CNTL)
Reset:
Bit 7
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Bit 7
Bit 0
CH0IE
MS0B
MS0A
ELS0B
ELS0A
TOV0
CH0MAX
Bit 15
14
13
12
11
10
Bit 8
Bit 0
Read:
Timer 1 Counter Modulo
Register High Write:
(T1MODH)
Reset:
Read:
Timer 1 Counter Modulo
Register Low Write:
(T1MODL)
Reset:
Read:
Timer 1 Channel 0 Status
and Control Register Write:
(T1SC0)
Reset:
$0026
$0027
Read:
Timer 1 Channel 0
Register High Write:
(T1CH0H)
Reset:
Read:
Timer 1 Channel 0
Register Low Write:
(T1CH0L)
Reset:
U = Unaffected
CH0F
0
TRST
= Unimplemented
= Reserved
Data Sheet
41
Addr.
$0028
Register Name
Read:
Timer 1 Channel 1 Status
and Control Register Write:
(T1SC1)
Reset:
Read:
Timer 1 Channel 1
Register High Write:
(T1CH1H)
Reset:
$0029
Read:
Timer 1 Channel 1
Register Low Write:
(T1CH1L)
Reset:
$002A
$002B
$002C
$002D
$002E
$002F
$0030
Bit 7
CH1IE
5
0
Bit 0
MS1A
ELS1B
ELS1A
TOV1
CH1MAX
Bit 15
14
13
12
11
10
Bit 8
Bit 0
PS2
PS1
PS0
Read:
Timer 2 Status and
Control Register Write:
(T2SC)
Reset:
TOF
TOIE
TSTOP
Read:
Timer 2 Counter
Register High Write:
(T2CNTH)
Reset:
Bit 15
14
13
12
11
10
Bit 8
Read:
Timer 2 Counter
Register Low Write:
(T2CNTL)
Reset:
Bit 7
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Bit 7
Bit 0
CH0IE
MS0B
MS0A
ELS0B
ELS0A
TOV0
CH0MAX
Bit 15
14
13
12
11
10
Bit 8
Read:
Timer 2 Counter Modulo
Register High Write:
(T2MODH)
Reset:
Read:
Timer 2 Counter Modulo
Register Low Write:
(T2MODL)
Reset:
Read:
Timer 2 Channel 0 Status
and Control Register Write:
(T2SC0)
Reset:
$0031
CH1F
Read:
Timer 2 Channel 0
Register High Write:
(T2CH0H)
Reset:
U = Unaffected
CH0F
0
TRST
= Unimplemented
= Reserved
Data Sheet
42
MOTOROLA
Addr.
Register Name
Read:
Timer 2 Channel 0
Register Low Write:
(T2CH0L)
Reset:
$0032
$0033
Read:
Timer 2 Channel 1 Status
and Control Register Write:
(T2SC1)
Reset:
Read:
Timer 2 Channel 1
Register High Write:
(T2CH1H)
Reset:
$0034
Read:
Timer 2 Channel 1
Register Low Write:
(T2CH1L)
Reset:
$0035
$0036
$0037
$0038
$0039
$003A
$003B
Read:
PLL Control Register
Write:
(PCTL)
Reset:
Read:
PLL Bandwidth Control
Register Write:
(PBWC)
Reset:
Read:
PLL Multiplier Select
Register High Write:
(PMSH)
Reset:
Read:
PLL Multiplier Select
Register Low Write:
(PMSL)
Reset:
Read:
PLL VCO Range Select
Register Write:
(PMRS)
Reset:
Read:
PLL Reference Divider
Select Register Write:
(PMDS)
Reset:
U = Unaffected
Bit 7
Bit 0
Bit 7
Bit 0
CH1IE
MS1A
ELS1B
ELS1A
TOV1
CH1MAX
Bit 15
14
13
12
11
10
Bit 8
Bit 0
PLLF
0
LOCK
PLLON
BCS
PRE1
PRE0
VPR1
VPR0
MUL11
MUL10
MUL9
MUL8
ACQ
MUL7
MUL6
MUL5
MUL4
MUL3
MUL2
MUL1
MUL0
VRS7
VRS6
VRS5
VRS4
VRS3
VRS2
VRS1
VRS0
RDS3
RDS2
RDS1
RDS0
= Unimplemented
X = Indeterminate
= Reserved
Data Sheet
43
Addr.
Register Name
Bit 7
Bit 0
WAKE
ILTY
PEN
PTY
Read:
$003C
Unimplemented Write:
Reset:
Read:
Unimplemented Write:
$003D
Reset:
Read:
Unimplemented Write:
$003E
Reset:
Read:
$003F
Unimplemented Write:
Reset:
$0040
$0041
$0042
$0043
$0044
Read:
LOOPS
IRSCI Control Register 1
Write:
(IRSCC1)
Reset:
0
Read:
IRSCI Control Register 2
Write:
(IRSCC2)
Reset:
ENSCI
SCTIE
TCIE
SCRIE
ILIE
TE
RE
RWU
SBK
T8
DMARE
DMATE
ORIE
NEIE
FEIE
PEIE
Read:
IRSCI Control Register 3
Write:
(IRSCC3)
Reset:
R8
Read:
IRSCI Status Register 1
Write:
(IRSCS1)
Reset:
SCTE
TC
SCRF
IDLE
OR
NF
FE
PE
BKF
RPF
Read:
IRSCI Status Register 2
Write:
(IRSCS2)
Reset:
$0045
Read:
IRSCI Data Register
Write:
(IRSCDR)
Reset:
U = Unaffected
R7
R6
R5
R4
R3
R2
R1
R0
T7
T6
T5
T4
T3
T2
T1
T0
Unaffected by reset
X = Indeterminate
= Unimplemented
= Reserved
Data Sheet
44
MOTOROLA
Addr.
Register Name
Bit 7
Read:
IRSCI Baud Rate Register
$0046
Write:
(IRSCBR)
Reset:
$0047
$0048
Read:
IRSCI Infrared Control
Register Write:
(IRSCIRCR)
Reset:
$004A
Read:
MMIIC Control Register 1
Write:
(MMCR1)
Reset:
$004D
Bit 0
SCP1
SCP0
SCR2
SCR1
SCR0
TNP1
TNP0
IREN
MMAD6
MMAD5
MMAD4
MMAD3
MMAD2
MMEN
MMIEN
MMTXAK
REPSEN
MMCRCBYTE
MMAST
MMRW
0
R
0
MMAD1 MMEXTAD
0
0
MMCLRBB
$004C
$004B
$0049
CKS
Read:
MMIIC Data Transmit
MMTD7
Register Write:
(MMDTR)
Reset:
0
Read: MMRD7
MMIIC Data Receive
Register Write:
(MMDRR)
Reset:
0
0
MMBB
MMTXIF MMATCH
0
MMCRCEF
Unaffected
0
0
MMTD6
MMTD5
MMTD4
MMTD3
MMTD2
MMTD1
MMTD0
MMRD6
MMRD5
MMRD4
MMRD3
MMRD2
MMRD1
MMRD0
MMIIC CRC Data Register Read: MMCRCD7 MMCRCD6 MMCRCD5 MMCRCD4 MMCRCD3 MMCRCD2 MMCRCD1 MMCRCD0
(MMCRDR) Write:
$004E
$004F
Reset:
Read:
MMIIC Frequency Divider
Register Write:
(MMFDR)
Reset:
U = Unaffected
X = Indeterminate
MMBR2
MMBR1
MMBR0
= Unimplemented
= Reserved
Data Sheet
45
Addr.
Register Name
Read:
Reserved Write:
$0050
Bit 7
Bit 0
TBR2
TBR1
TBR0
TBIE
TBON
AIEN
ADCO
ADCH4
ADCH3
ADCH2
ADCH1
ADCH0
ADIV2
ADIV1
ADIV0
ADICLK
MODE1
MODE0
ADx
ADx
ADx
ADx
ADx
ADx
ADx
ADx
= Unimplemented
Reset:
Timebase Control Read:
Register
Write:
(TBCR)
Reset:
$0051
TBIF
0
TACK
Read:
Unimplemented Write:
$0052
Reset:
Read:
Unimplemented Write:
$0053
Reset:
Read:
Unimplemented Write:
$0054
Reset:
Read:
Unimplemented Write:
$0055
Reset:
Read:
$0056
Unimplemented Write:
Reset:
$0057
Read:
ADC Status and Control
Register Write:
(ADSCR)
Reset:
$0058
Read:
ADC Clock Control
Register Write:
(ADICLK)
Reset:
Read:
ADC Data Register High 0
$0059
Write:
(ADRH0)
Reset:
U = Unaffected
COCO
X = Indeterminate
= Reserved
Data Sheet
46
MOTOROLA
Addr.
$005A
Register Name
ADC Data Register Low 0 Read:
(ADRL0) Write:
Reset:
$005B
Reset:
$005C ADC Data Register Low 2 Read:
(ADRL2) Write:
Reset:
$005D
$005E
Read:
ADC Auto-scan Control
Register Write:
(ADASCR)
Reset:
Bit 7
Bit 0
ADx
ADx
ADx
ADx
ADx
ADx
ADx
ADx
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AUTO1
AUTO0
ASCAN
Read:
$005F
Unimplemented Write:
Reset:
Read:
SIM Break Status Register
$FE00
Write:
(SBSR)
Reset:
SBSW
Note
0
Reserved Write:
POR
PIN
COP
ILOP
ILAD
MODRST
LVI
= Unimplemented
Reset:
U = Unaffected
X = Indeterminate
= Reserved
Data Sheet
47
Addr.
$FE03
Register Name
Read:
SIM Break Flag Control
Register Write:
(SBFCR)
Reset:
Bit 7
Bit 0
BCFE
Read:
Interrupt Status Register 1
$FE04
Write:
(INT1)
Reset:
IF6
IF5
IF4
IF3
IF2
IF1
Read:
Interrupt Status Register 2
$FE05
Write:
(INT2)
Reset:
IF14
IF13
IF12
IF11
IF10
IF9
IF8
IF7
Read:
Interrupt Status Register 3
$FE06
Write:
(INT3)
Reset:
IF21
IF20
IF19
IF18
IF17
IF16
IF15
HVEN
MASS
ERASE
PGM
BPR7
BPR6
BPR5
BPR4
BPR3
BPR2
BPR1
BPR0
Bit 15
14
13
12
11
10
Bit 8
= Unimplemented
Read:
Reserved Write:
$FE07
Reset:
$FE08
Read:
FLASH Control Register
Write:
(FLCR)
Reset:
$FE09
Read:
FLASH Block Protect
Register Write:
(FLBPR)
Reset:
Read:
$FE0A
Reserved Write:
Reset:
Read:
$FE0B
Reserved Write:
Reset:
$FE0C
Read:
Break Address
Register High Write:
(BRKH)
Reset:
U = Unaffected
X = Indeterminate
= Reserved
Data Sheet
48
MOTOROLA
Addr.
Register Name
Read:
Break Address
Register Low Write:
(BRKL)
Reset:
$FE0D
$FE0E
Reset:
Break Status and Control
Register Read:
(BRKSCR)
Write:
Bit 0
Bit 7
Bit 0
BRKE
BRKA
Read:
OSCSEL1 OSCSEL0
Mask Option Register
# Write:
(MOR)
Erased:
1
1
Reset:
$FFFF
Reset: LVIOUT
LVI Status Register
Read:
(LVISR)
Write:
0
$FE0F
$FFCF
Bit 7
Read:
COP Control Register
Write:
(COPCTL)
Reset:
X = Indeterminate
= Unimplemented
= Reserved
Data Sheet
49
INT Flag
Lowest
Address
Vector
$FFD0
Reserved
$FFD1
Reserved
$FFD2
$FFD3
$FFD4
$FFD5
$FFD6
$FFD7
$FFD8
$FFD9
$FFDA
$FFDB
$FFDC
$FFDD
$FFDE
$FFDF
$FFE0
$FFE1
$FFE2
$FFE3
$FFE4
$FFE5
$FFE6
$FFE7
$FFE8
$FFE9
$FFEA
$FFEB
IF21
IF20
IF19
IF18
IF17
IF16
IF15
IF14
IF13
IF12
IF11
IF10
IF9
Data Sheet
50
MOTOROLA
INT Flag
Address
Vector
$FFEC
$FFED
$FFEE
$FFEF
$FFF0
$FFF1
$FFF2
$FFF3
$FFF4
$FFF5
$FFF6
$FFF7
$FFF8
$FFF9
$FFFA
$FFFB
$FFFC
$FFFD
$FFFE
$FFFF
IF8
IF7
IF6
IF5
IF4
IF3
IF2
IF1
Highest
Data Sheet
51
Memory Map
Data Sheet
52
MOTOROLA
3.1 Introduction
NOTE:
For correct operation, the stack pointer must point only to RAM
locations.
Within page zero are 160 bytes of RAM. Because the location of the
stack RAM is programmable, all page zero RAM locations can be used
for I/O control and user data or code. When the stack pointer is moved
from its reset location at $00FF, direct addressing mode instructions can
access efficiently all page zero RAM locations. Page zero RAM,
therefore, provides ideal locations for frequently accessed global
variables.
Before processing an interrupt, the CPU uses five bytes of the stack to
save the contents of the CPU registers.
NOTE:
NOTE:
Be careful when using nested subroutines. The CPU may overwrite data
in the RAM during a subroutine or during the interrupt stacking
operation.
Data Sheet
53
Data Sheet
54
MOTOROLA
4.1 Introduction
This section describes the operation of the embedded FLASH memory.
This memory can be read, programmed, and erased from a single
external supply. The program and erase operations are enabled through
the use of an internal charge pump.
Addr.
$FE08
$FE09
Device
MC68HC908AP64
62,368
$0860$FBFF
MC68HC908AP32
32,768
$0860$885F
MC68HC908AP16
16,384
$0860$485F
MC68HC908AP8
8,192
$0860$285F
Register Name
Read:
FLASH Control Register
Write:
(FLCR)
Reset:
Read:
FLASH Block Protect
Register Write:
(FLBPR)
Reset:
Bit 7
Bit 0
HVEN
MASS
ERASE
PGM
BPR7
BPR6
BPR5
BPR4
BPR3
BPR2
BPR1
BPR0
= Unimplemented
Data Sheet
55
NOTE:
Data Sheet
56
MOTOROLA
Read:
$FE08
Bit 7
Bit 0
HVEN
MASS
ERASE
PGM
Write:
Reset:
Data Sheet
57
1. Set the ERASE bit and clear the MASS bit in the FLASH control
register.
2. Write any data to any FLASH location within the page address
range desired.
3. Wait for a time, tnvs (5 s).
4. Set the HVEN bit.
5. Wait for a time terase (20 ms).
6. Clear the ERASE bit.
7. Wait for a time, tnvh (5 s).
8. Clear the HVEN bit.
9. After time, trcv (1 s), the memory can be accessed in read mode
again.
NOTE:
Data Sheet
58
MOTOROLA
NOTE:
Data Sheet
59
1. Set the PGM bit. This configures the memory for program
operation and enables the latching of address and data for
programming.
2. Write any data to any FLASH location within the address range of
the row to be programmed.
3. Wait for a time, tnvs (5 s).
4. Set the HVEN bit.
5. Wait for a time, tpgs (10 s).
6. Write data to the FLASH location to be programmed.
7. Wait for time, tprog (20 s to 40 s).
8. Repeat steps 6 and 7 until all bytes within the row are
programmed.
9. Clear the PGM bit.
10. Wait for time, tnvh (5 s).
11. Clear the HVEN bit.
12. After time, trcv (1 s), the memory can be accessed in read mode
again.
This program sequence is repeated throughout the memory until all data
is programmed.
Data Sheet
NOTE:
The time between each FLASH address change (step 6 to step 6), or the
time between the last FLASH addressed programmed to clearing the
PGM bit (step 6 to step 9), must not exceed the maximum programming
time, tprog max.
NOTE:
60
MOTOROLA
Completed
programming
this row?
NOTE:
The time between each FLASH address change (step 6 to step 6), or
the time between the last FLASH address programmed
to clearing PGM bit (step 6 to step 9)
must not exceed the maximum programming
time, tPROG max.
10
11
12
End of Programming
Data Sheet
61
NOTE:
The mask option register ($FFCF) and the 48 bytes of user interrupt
vectors ($FFD0$FFFF) are always protected, regardless of the value in
the FLASH block protect register. A mass erase is required to erase
these locations.
$FE09
Bit 7
Bit 0
BPR7
BPR6
BPR5
BPR4
BPR3
BPR2
BPR1
BPR0
Read:
Write:
Reset:
0 0 0 0 0 0 0 0 0
BPR[7:1]
Data Sheet
62
MOTOROLA
Protected Range
$00 to $09
$0A or $0B
(0000 101x)
$0A00 to $FFFF
$0C or $0D
(0000 110x)
$0C00 to $FFFF
and so on...
$FA or $FB
(1111 1101x)
$FA00 to $FFFF
$FFCF to $FFFF
$FF
Notes:
1. Except for the mask option register ($FFCF) and
the 48-byte user vectors ($FFD0$FFFF). These FLASH locations are always protected.
Data Sheet
63
FLASH Memory
Data Sheet
64
MOTOROLA
LVI on VREG
STOP instruction
The mask option register selects one of the following oscillator options:
Internal oscillator
RC oscillator
Crystal oscillator
Data Sheet
65
Addr.
$001D
Register Name
Bit 7
Read: STOP_
Configuration Register 2
ICLKDIS
(CONFIG2) Write:
Reset:
$001F
$FFCF
Read:
COPRS
Configuration Register 1
Write:
(CONFIG1)
Reset:
0
6
STOP_
RCLKEN
0
Bit 0
SCIBDSRC
SSREC
STOP
COPD
STOP_
OSCCLK1 OSCCLK0
XCLKEN
0
Read:
Mask-Option-Register
OSCSEL1 OSCSEL0
(MOR)# Write:
Erased:
= Reserved
The configuration registers can be written once after each reset. All of
the configuration register bits are cleared during reset. Since the various
options affect the operation of the MCU, it is recommended that these
registers be written immediately after reset. The configuration registers
are located at $001D and $001F. The configuration registers may be
read at anytime.
NOTE:
Data Sheet
The CONFIG registers are not in the FLASH memory but are special
registers containing one-time writable latches after each reset. Upon a
reset, the CONFIG registers default to predetermined settings as shown
in Figure 5-2 and Figure 5-3.
66
MOTOROLA
The mask option register (MOR) is used for selecting one of the three
clock options for the MCU. The MOR is a byte located in FLASH
memory, and is written to by a FLASH programming routine.
$001F
Bit 7
Bit 0
SSREC
STOP
COPD
Read:
COPRS
Write:
Reset:
NOTE:
Data Sheet
67
NOTE:
NOTE:
Exiting stop mode by pulling reset will result in the long stop recovery.
If using an external crystal oscillator, do not set the SSREC bit.
When the LVI is disabled in stop mode (LVISTOP=0), the system
stabilization time for long stop recovery (4096 ICLK cycles) gives a delay
longer than the LVIs turn-on time. There is no period where the MCU is
not protected from a low power condition. However, when using the
short stop recovery configuration option, the 32 ICLK delay is less than
the LVIs turn-on time and there exists a period in start-up where the LVI
is not protecting the MCU.
STOP STOP Instruction Enable Bit
STOP enables the STOP instruction.
1 = STOP instruction enabled
0 = STOP instruction treated as illegal opcode
Data Sheet
68
MOTOROLA
Address:
$001D
Bit 7
Read:
STOP_
ICLKDIS
Write:
Reset:
6
STOP_
RCLKEN
0
STOP_
OSCCLK1 OSCCLK0
XCLKEN
0
Bit 0
SCIBDSRC
Data Sheet
69
OSCCLK0
RC oscillator (RCCLK)
Not used
Data Sheet
70
MOTOROLA
$FFCF
Bit 7
Bit 0
Read:
OSCSEL1 OSCSEL0
Write:
Reset:
Erased:
Unaffected by reset
1
= Reserved
OSCSEL0
CGMXCLK
OSC2 pin
ICLK
fBUS
RCCLK
fBUS
X-TAL
Inverting
output of
XTAL
NOTE:
Comments
Not used
Data Sheet
71
Data Sheet
72
MOTOROLA
6.1 Introduction
The M68HC08 CPU (central processor unit) is an enhanced and fully
object-code-compatible version of the M68HC05 CPU. The CPU08
Reference Manual (Motorola document order number CPU08RM/AD)
contains a description of the CPU instruction set, addressing modes,
and architecture.
6.2 Features
Feature of the CPU include:
16 addressing modes
Data Sheet
73
ACCUMULATOR (A)
0
15
H
15
0
STACK POINTER (SP)
15
0
PROGRAM COUNTER (PC)
7
0
V 1 1 H I N Z C
CARRY/BORROW FLAG
ZERO FLAG
NEGATIVE FLAG
INTERRUPT MASK
HALF-CARRY FLAG
TWOS COMPLEMENT OVERFLOW FLAG
6.3.1 Accumulator
The accumulator is a general-purpose 8-bit register. The CPU uses the
accumulator to hold operands and the results of arithmetic/logic
operations.
Bit 7
Bit 0
Read:
Write:
Reset:
Unaffected by reset
Data Sheet
74
MOTOROLA
The index register can serve also as a temporary data storage location.
Bit
15
14
13
12
11
10
Bit
0
Read:
Write:
Reset:
X = Indeterminate
14
13
12
11
10
Bit
0
Read:
Write:
Reset:
Data Sheet
75
The program counter is a 16-bit register that contains the address of the
next instruction or operand to be fetched.
Normally, the program counter automatically increments to the next
sequential memory location every time an instruction or operand is
fetched. Jump, branch, and interrupt operations load the program
counter with an address other than that of the next sequential location.
During reset, the program counter is loaded with the reset vector
address located at $FFFE and $FFFF. The vector address is the
address of the first instruction to be executed after exiting the reset state.
Bit
15
14
13
12
11
10
Bit
0
Read:
Write:
Reset:
Data Sheet
76
MOTOROLA
Bit 0
Read:
Write:
Reset:
X = Indeterminate
Data Sheet
77
NOTE:
Data Sheet
78
MOTOROLA
C Carry/Borrow Flag
Data Sheet
79
After exiting stop mode, the CPU clock begins running after the oscillator
stabilization delay.
Data Sheet
80
MOTOROLA
V H I N Z C
ADC #opr
ADC opr
ADC opr
ADC opr,X
ADC opr,X
ADC ,X
ADC opr,SP
ADC opr,SP
IMM
DIR
EXT
IX2
R R R R R
IX1
IX
SP1
SP2
A9
B9
C9
D9
E9
F9
9EE9
9ED9
ii
dd
hh ll
ee ff
ff
IMM
DIR
EXT
IX2
R R R R R
IX1
IX
SP1
SP2
AB
BB
CB
DB
EB
FB
9EEB
9EDB
ii
dd
hh ll
ee ff
ff
ff
ee ff
A7
ii
IMM
AF
ii
IMM
DIR
EXT
IX2
0 R R
IX1
IX
SP1
SP2
A4
B4
C4
D4
E4
F4
9EE4
9ED4
ii
dd
hh ll
ee ff
ff
2
3
4
4
3
2
4
5
DIR
INH
INH
R R R R
IX1
IX
SP1
38
48
58
68
78
9E68
dd
DIR
INH
INH
R R R R
IX1
IX
SP1
37
47
57
67
77
9E67
dd
ff
4
1
1
4
3
5
REL
24
rr
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
11
13
15
17
19
1B
1D
1F
dd
dd
dd
dd
dd
dd
dd
dd
4
4
4
4
4
4
4
4
AIS #opr
SP (SP) + (16 M)
IMM
AIX #opr
AND #opr
AND opr
AND opr
AND opr,X
AND opr,X
AND ,X
AND opr,SP
AND opr,SP
ASL opr
ASLA
ASLX
ASL opr,X
ASL ,X
ASL opr,SP
Logical AND
ASR opr
ASRA
ASRX
ASR opr,X
ASR opr,X
ASR opr,SP
BCC rel
BCLR n, opr
0
b7
b0
C
b7
b0
Mn 0
Clear Bit n in M
2
3
4
4
3
2
4
5
2
3
4
4
3
2
4
5
ADD #opr
ADD opr
ADD opr
ADD opr,X
ADD opr,X
ADD ,X
ADD opr,SP
ADD opr,SP
A (A) + (M)
ff
ee ff
Cycles
Effect on
CCR
Description
Operand
Operation
Opcode
Source
Form
Address
Mode
ff
ee ff
ff
ff
ff
4
1
1
4
3
5
Data Sheet
81
Effect on
CCR
V H I N Z C
Cycles
Description
Operand
Operation
Opcode
Source
Form
Address
Mode
BCS rel
REL
25
rr
BEQ rel
Branch if Equal
REL
27
rr
BGE opr
PC (PC) + 2 + rel ? (N V) = 0
REL
90
rr
BGT opr
92
rr
BHCC rel
REL
28
rr
BHCS rel
REL
29
rr
BHI rel
Branch if Higher
REL
22
rr
BHS rel
REL
24
rr
BIH rel
REL
2F
rr
BIL rel
REL
2E
rr
IMM
DIR
EXT
IX2
0 R R
IX1
IX
SP1
SP2
A5
B5
C5
D5
E5
F5
9EE5
9ED5
ii
dd
hh ll
ee ff
ff
ff
ee ff
2
3
4
4
3
2
4
5
BIT #opr
BIT opr
BIT opr
BIT opr,X
BIT opr,X
BIT ,X
BIT opr,SP
BIT opr,SP
Bit Test
BLE opr
REL
93
rr
BLO rel
REL
25
rr
BLS rel
REL
23
rr
BLT opr
PC (PC) + 2 + rel ? (N V) =1
REL
91
rr
BMC rel
REL
2C
rr
BMI rel
Branch if Minus
REL
2B
rr
BMS rel
REL
2D
rr
BNE rel
REL
26
rr
BPL rel
Branch if Plus
REL
2A
rr
BRA rel
Branch Always
PC (PC) + 2 + rel
REL
20
rr
Data Sheet
82
MOTOROLA
Cycles
Effect on
CCR
Opcode
Operation
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
R
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
01
03
05
07
09
0B
0D
0F
dd rr
dd rr
dd rr
dd rr
dd rr
dd rr
dd rr
dd rr
5
5
5
5
5
5
5
5
REL
21
rr
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
R
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
00
02
04
06
08
0A
0C
0E
dd rr
dd rr
dd rr
dd rr
dd rr
dd rr
dd rr
dd rr
5
5
5
5
5
5
5
5
Mn 1
DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)
10
12
14
16
18
1A
1C
1E
dd
dd
dd
dd
dd
dd
dd
dd
4
4
4
4
4
4
4
4
REL
AD
rr
dd rr
ii rr
ii rr
ff rr
rr
ff rr
5
4
4
5
4
6
Description
V H I N Z C
BRN rel
PC (PC) + 2
Branch Never
BSET n,opr
Set Bit n in M
BSR rel
Branch to Subroutine
CBEQ opr,rel
CBEQA #opr,rel
CBEQX #opr,rel
Compare and Branch if Equal
CBEQ opr,X+,rel
CBEQ X+,rel
CBEQ opr,SP,rel
Address
Mode
Source
Form
DIR
PC (PC) + 3 + rel ? (A) (M) = $00
IMM
PC (PC) + 3 + rel ? (A) (M) = $00
IMM
PC (PC) + 3 + rel ? (X) (M) = $00
IX1+
PC (PC) + 3 + rel ? (A) (M) = $00
IX+
PC (PC) + 2 + rel ? (A) (M) = $00
SP1
PC (PC) + 4 + rel ? (A) (M) = $00
31
41
51
61
71
9E61
CLC
C0
0 INH
98
CLI
I0
0 INH
9A
M $00
A $00
X $00
H $00
M $00
M $00
M $00
DIR
INH
INH
0 0 1 INH
IX1
IX
SP1
3F
4F
5F
8C
6F
7F
9E6F
CLR opr
CLRA
CLRX
CLRH
CLR opr,X
CLR ,X
CLR opr,SP
Clear
dd
ff
ff
3
1
1
1
3
2
4
Data Sheet
83
Effect on
CCR
V H I N Z C
CMP #opr
CMP opr
CMP opr
CMP opr,X
CMP opr,X
CMP ,X
CMP opr,SP
CMP opr,SP
Compare A with M
(A) (M)
COM opr
COMA
COMX
COM opr,X
COM ,X
COM opr,SP
CPHX #opr
CPHX opr
CPX #opr
CPX opr
CPX opr
CPX ,X
CPX opr,X
CPX opr,X
CPX opr,SP
CPX opr,SP
Compare X with M
DAA
Decimal Adjust A
IMM
DIR
EXT
IX2
R R R R
IX1
IX
SP1
SP2
A1
B1
C1
D1
E1
F1
9EE1
9ED1
ii
dd
hh ll
ee ff
ff
DIR
INH
INH
0 R R 1
IX1
IX
SP1
33
43
53
63
73
9E63
dd
ff
ee ff
Cycles
Description
Operand
Operation
Opcode
Source
Form
Address
Mode
2
3
4
4
3
2
4
5
ff
4
1
1
4
3
5
65
75
ii ii+1
dd
3
4
IMM
DIR
EXT
IX2
R R R R
IX1
IX
SP1
SP2
A3
B3
C3
D3
E3
F3
9EE3
9ED3
ii
dd
hh ll
ee ff
ff
2
3
4
4
3
2
4
5
U R R R INH
72
DIR
INH
INH
IX1
IX
SP1
3B
4B
5B
6B
7B
9E6B
dd rr
rr
rr
ff rr
rr
ff rr
5
3
3
5
4
6
M (M) 1
A (A) 1
X (X) 1
M (M) 1
M (M) 1
M (M) 1
DIR
INH
INH
R R R
IX1
IX
SP1
3A
4A
5A
6A
7A
9E6A
dd
4
1
1
4
3
5
A (H:A)/(X)
H Remainder
R R INH
52
A (A M)
IMM
DIR
EXT
IX2
0 R R
IX1
IX
SP1
SP2
A8
B8
C8
D8
E8
F8
9EE8
9ED8
(H:X) (M:M + 1)
(X) (M)
(A)10
R R R R
IMM
DIR
ff
ff
ee ff
DBNZ opr,rel
DBNZA rel
Decrement and Branch if Not Zero
DBNZX rel
DBNZ opr,X,rel
DBNZ X,rel
DBNZ opr,SP,rel
DEC opr
DECA
DECX
DEC opr,X
DEC ,X
DEC opr,SP
Decrement
DIV
Divide
EOR #opr
EOR opr
EOR opr
EOR opr,X
EOR opr,X
EOR ,X
EOR opr,SP
EOR opr,SP
Data Sheet
Exclusive OR M with A
ff
ff
7
ii
dd
hh ll
ee ff
ff
ff
ee ff
2
3
4
4
3
2
4
5
84
MOTOROLA
V H I N Z C
INC opr
INCA
INCX
INC opr,X
INC ,X
INC opr,SP
JMP opr
JMP opr
JMP opr,X
JMP opr,X
JMP ,X
JSR opr
JSR opr
JSR opr,X
JSR opr,X
JSR ,X
Load A from M
LDHX #opr
LDHX opr
LSL opr
LSLA
LSLX
LSL opr,X
LSL ,X
LSL opr,SP
LSR opr
LSRA
LSRX
LSR opr,X
LSR ,X
LSR opr,SP
DIR
INH
INH
R R R
IX1
IX
SP1
3C
4C
5C
6C
7C
9E6C
PC Jump Address
DIR
EXT
IX2
IX1
IX
BC
CC
DC
EC
FC
dd
hh ll
ee ff
ff
2
3
4
3
2
PC (PC) + n (n = 1, 2, or 3)
Push (PCL); SP (SP) 1
Push (PCH); SP (SP) 1
PC Unconditional Address
DIR
EXT
IX2
IX1
IX
BD
CD
DD
ED
FD
dd
hh ll
ee ff
ff
4
5
6
5
4
A (M)
IMM
DIR
EXT
IX2
0 R R
IX1
IX
SP1
SP2
A6
B6
C6
D6
E6
F6
9EE6
9ED6
ii
dd
hh ll
ee ff
ff
ff
ee ff
2
3
4
4
3
2
4
5
ii jj
dd
3
4
2
3
4
4
3
2
4
5
Jump
LDA #opr
LDA opr
LDA opr
LDA opr,X
LDA opr,X
LDA ,X
LDA opr,SP
LDA opr,SP
LDX #opr
LDX opr
LDX opr
LDX opr,X
LDX opr,X
LDX ,X
LDX opr,SP
LDX opr,SP
M (M) + 1
A (A) + 1
X (X) + 1
M (M) + 1
M (M) + 1
M (M) + 1
Increment
Jump to Subroutine
H:X (M:M + 1)
0 R R
X (M)
Load X from M
0
b7
b0
Cycles
Effect on
CCR
Description
Operand
Operation
Opcode
Source
Form
Address
Mode
C
b7
b0
IMM
DIR
45
55
dd
ff
ff
IMM
DIR
EXT
IX2
0 R R
IX1
IX
SP1
SP2
AE
BE
CE
DE
EE
FE
9EEE
9EDE
ii
dd
hh ll
ee ff
ff
DIR
INH
INH
R R R R
IX1
IX
SP1
38
48
58
68
78
9E68
dd
DIR
INH
INH
R 0 R R
IX1
IX
SP1
34
44
54
64
74
9E64
dd
ff
ee ff
ff
ff
ff
ff
4
1
1
4
3
5
4
1
1
4
3
5
4
1
1
4
3
5
Data Sheet
85
Operand
Cycles
Effect on
CCR
DD
DIX+
0 R R
IMD
IX+D
4E
5E
6E
7E
dd dd
dd
ii dd
dd
5
4
4
4
0 0 INH
42
DIR
INH
INH
R R R R
IX1
IX
SP1
30
40
50
60
70
9E60
Operation
Description
V H I N Z C
MOV opr,opr
MOV opr,X+
MOV #opr,opr
MOV X+,opr
Move
MUL
Unsigned multiply
(M)Destination (M)Source
H:X (H:X) + 1 (IX+D, DIX+)
Address
Mode
Source
Form
5
dd
4
1
1
4
3
5
NEG opr
NEGA
NEGX
NEG opr,X
NEG ,X
NEG opr,SP
NOP
No Operation
None
INH
9D
NSA
Nibble Swap A
A (A[3:0]:A[7:4])
INH
62
A (A) | (M)
IMM
DIR
EXT
IX2
0 R R
IX1
IX
SP1
SP2
AA
BA
CA
DA
EA
FA
9EEA
9EDA
ff
ff
ORA #opr
ORA opr
ORA opr
ORA opr,X
ORA opr,X
ORA ,X
ORA opr,SP
ORA opr,SP
Inclusive OR A and M
PSHA
INH
87
PSHH
INH
8B
PSHX
INH
89
PULA
INH
86
PULH
INH
8A
PULX
INH
88
39
49
59
69
79
9E69
dd
DIR
INH
INH
R R R R
IX1
IX
SP1
DIR
INH
INH
R R R R
IX1
IX
SP1
36
46
56
66
76
9E66
dd
INH
9C
ROL opr
ROLA
ROLX
ROL opr,X
ROL ,X
ROL opr,SP
b7
ROR opr
RORA
RORX
ROR opr,X
ROR ,X
ROR opr,SP
RSP
Data Sheet
b0
C
b7
b0
SP $FF
ii
dd
hh ll
ee ff
ff
ff
ee ff
ff
ff
ff
ff
2
3
4
4
3
2
4
5
4
1
1
4
3
5
4
1
1
4
3
5
1
86
MOTOROLA
Effect on
CCR
V H I N Z C
RTI
RTS
Cycles
Description
Operand
Operation
Opcode
Source
Form
Address
Mode
R R R R R R INH
80
SP SP + 1; Pull (PCH)
SP SP + 1; Pull (PCL)
INH
81
IMM
DIR
EXT
IX2
R R R R
IX1
IX
SP1
SP2
A2
B2
C2
D2
E2
F2
9EE2
9ED2
ii
dd
hh ll
ee ff
ff
2
3
4
4
3
2
4
5
SBC #opr
SBC opr
SBC opr
SBC opr,X
SBC opr,X
SBC ,X
SBC opr,SP
SBC opr,SP
SEC
C1
1 INH
99
SEI
I1
1 INH
9B
M (A)
DIR
EXT
IX2
0 R R IX1
IX
SP1
SP2
B7
C7
D7
E7
F7
9EE7
9ED7
(M:M + 1) (H:X)
0 R R DIR
35
I 0; Stop Oscillator
0 INH
8E
M (X)
DIR
EXT
IX2
0 R R IX1
IX
SP1
SP2
BF
CF
DF
EF
FF
9EEF
9EDF
dd
hh ll
ee ff
ff
IMM
DIR
EXT
IX2
R R R R
IX1
IX
SP1
SP2
A0
B0
C0
D0
E0
F0
9EE0
9ED0
ii
dd
hh ll
ee ff
ff
STA opr
STA opr
STA opr,X
STA opr,X
STA ,X
STA opr,SP
STA opr,SP
Store A in M
STHX opr
Store H:X in M
STOP
STX opr
STX opr
STX opr,X
STX opr,X
STX ,X
STX opr,SP
STX opr,SP
SUB #opr
SUB opr
SUB opr
SUB opr,X
SUB opr,X
SUB ,X
SUB opr,SP
SUB opr,SP
Store X in M
A (A) (M)
Subtract
ff
ee ff
ff
ee ff
3
4
4
3
2
4
5
dd
dd
hh ll
ee ff
ff
ff
ee ff
ff
ee ff
3
4
4
3
2
4
5
2
3
4
4
3
2
4
5
Data Sheet
87
V H I N Z C
Cycles
Effect on
CCR
Description
Operand
Operation
Opcode
Source
Form
Address
Mode
SWI
Software Interrupt
TAP
Transfer A to CCR
CCR (A)
R R R R R R INH
84
TAX
Transfer A to X
X (A)
INH
97
TPA
Transfer CCR to A
A (CCR)
INH
85
DIR
INH
INH
0 R R
IX1
IX
SP1
3D
4D
5D
6D
7D
9E6D
H:X (SP) + 1
INH
95
A (X)
INH
9F
(SP) (H:X) 1
INH
94
TST opr
TSTA
TSTX
TST opr,X
TST ,X
TST opr,SP
TSX
Transfer SP to H:X
TXA
Transfer X to A
TXS
Transfer H:X to SP
A
C
CCR
dd
dd rr
DD
DIR
DIX+
ee ff
EXT
ff
H
H
hh ll
I
ii
IMD
IMM
INH
IX
IX+
IX+D
IX1
IX1+
IX2
M
N
Accumulator
Carry/borrow bit
Condition code register
Direct address of operand
Direct address of operand and relative offset of branch instruction
Direct to direct addressing mode
Direct addressing mode
Direct to indexed with post increment addressing mode
High and low bytes of offset in indexed, 16-bit offset addressing
Extended addressing mode
Offset byte in indexed, 8-bit offset addressing
Half-carry bit
Index register high byte
High and low bytes of operand address in extended addressing
Interrupt mask
Immediate operand byte
Immediate source to direct destination addressing mode
Immediate addressing mode
Inherent addressing mode
Indexed, no offset addressing mode
Indexed, no offset, post increment addressing mode
Indexed with post increment to direct addressing mode
Indexed, 8-bit offset addressing mode
Indexed, 8-bit offset, post increment addressing mode
Indexed, 16-bit offset addressing mode
Memory location
Negative bit
Data Sheet
n
opr
PC
PCH
PCL
REL
rel
rr
SP1
SP2
SP
U
V
X
Z
&
|
()
( )
#
?
:
R
1 INH
83
dd
ff
ff
3
1
1
3
2
4
Any bit
Operand (one or two bytes)
Program counter
Program counter high byte
Program counter low byte
Relative addressing mode
Relative program counter offset byte
Relative program counter offset byte
Stack pointer, 8-bit offset addressing mode
Stack pointer 16-bit offset addressing mode
Stack pointer
Undefined
Overflow bit
Index register low byte
Zero bit
Logical AND
Logical OR
Logical EXCLUSIVE OR
Contents of
Negation (twos complement)
Immediate value
Sign extend
Loaded with
If
Concatenated with
Set or cleared
Not affected
88
MOTOROLA
MOTOROLA
5
BRSET0
3 DIR
5
BRCLR0
3 DIR
5
BRSET1
3 DIR
5
BRCLR1
3 DIR
5
BRSET2
3 DIR
5
BRCLR2
3 DIR
5
BRSET3
3 DIR
5
BRCLR3
3 DIR
5
BRSET4
3 DIR
5
BRCLR4
3 DIR
5
BRSET5
3 DIR
5
BRCLR5
3 DIR
5
BRSET6
3 DIR
5
BRCLR6
3 DIR
5
BRSET7
3 DIR
5
BRCLR7
3 DIR
4
BSET0
2 DIR
4
BCLR0
2 DIR
4
BSET1
2 DIR
4
BCLR1
2 DIR
4
BSET2
2 DIR
4
BCLR2
2 DIR
4
BSET3
2 DIR
4
BCLR3
2 DIR
4
BSET4
2 DIR
4
BCLR4
2 DIR
4
BSET5
2 DIR
4
BCLR5
2 DIR
4
BSET6
2 DIR
4
BCLR6
2 DIR
4
BSET7
2 DIR
4
BCLR7
2 DIR
1
3
BRA
2 REL
3
BRN
2 REL
3
BHI
2 REL
3
BLS
2 REL
3
BCC
2 REL
3
BCS
2 REL
3
BNE
2 REL
3
BEQ
2 REL
3
BHCC
2 REL
3
BHCS
2 REL
3
BPL
2 REL
3
BMI
2 REL
3
BMC
2 REL
3
BMS
2 REL
3
BIL
2 REL
3
BIH
2 REL
Branch
REL
4
INH
1
NEGX
1 INH
4
CBEQX
3 IMM
7
DIV
1 INH
1
COMX
1 INH
1
LSRX
1 INH
4
LDHX
2 DIR
1
RORX
1 INH
1
ASRX
1 INH
1
LSLX
1 INH
1
ROLX
1 INH
1
DECX
1 INH
3
DBNZX
2 INH
1
INCX
1 INH
1
TSTX
1 INH
4
MOV
2 DIX+
1
CLRX
1 INH
5
4
NEG
2
IX1
5
CBEQ
3 IX1+
3
NSA
1 INH
4
COM
2 IX1
4
LSR
2 IX1
3
CPHX
3 IMM
4
ROR
2 IX1
4
ASR
2 IX1
4
LSL
2 IX1
4
ROL
2 IX1
4
DEC
2 IX1
5
DBNZ
3 IX1
4
INC
2 IX1
3
TST
2 IX1
4
MOV
3 IMD
3
CLR
2 IX1
IX
9
7
3
RTI
BGE
1 INH 2 REL
4
3
RTS
BLT
1 INH 2 REL
3
BGT
2 REL
9
3
SWI
BLE
1 INH 2 REL
2
2
TAP
TXS
1 INH 1 INH
1
2
TPA
TSX
1 INH 1 INH
2
PULA
1 INH
2
1
PSHA
TAX
1 INH 1 INH
2
1
PULX
CLC
1 INH 1 INH
2
1
PSHX
SEC
1 INH 1 INH
2
2
PULH
CLI
1 INH 1 INH
2
2
PSHH
SEI
1 INH 1 INH
1
1
CLRH
RSP
1 INH 1 INH
1
NOP
1 INH
1
STOP
*
1 INH
1
1
WAIT
TXA
1 INH 1 INH
Control
INH
INH
B
DIR
MSB
LSB
3
SUB
2 DIR
3
CMP
2 DIR
3
SBC
2 DIR
3
CPX
2 DIR
3
AND
2 DIR
3
BIT
2 DIR
3
LDA
2 DIR
3
STA
2 DIR
3
EOR
2 DIR
3
ADC
2 DIR
3
ORA
2 DIR
3
ADD
2 DIR
2
JMP
2 DIR
4
4
BSR
JSR
2 REL 2 DIR
2
3
LDX
LDX
2 IMM 2 DIR
2
3
AIX
STX
2 IMM 2 DIR
2
SUB
2 IMM
2
CMP
2 IMM
2
SBC
2 IMM
2
CPX
2 IMM
2
AND
2 IMM
2
BIT
2 IMM
2
LDA
2 IMM
2
AIS
2 IMM
2
EOR
2 IMM
2
ADC
2 IMM
2
ORA
2 IMM
2
ADD
2 IMM
IMM
5
3
NEG
NEG
3 SP1 1 IX
6
4
CBEQ
CBEQ
4 SP1 2 IX+
2
DAA
1 INH
5
3
COM
COM
3 SP1 1 IX
5
3
LSR
LSR
3 SP1 1 IX
4
CPHX
2 DIR
5
3
ROR
ROR
3 SP1 1 IX
5
3
ASR
ASR
3 SP1 1 IX
5
3
LSL
LSL
3 SP1 1 IX
5
3
ROL
ROL
3 SP1 1 IX
5
3
DEC
DEC
3 SP1 1 IX
6
4
DBNZ
DBNZ
4 SP1 2 IX
5
3
INC
INC
3 SP1 1 IX
4
2
TST
TST
3 SP1 1 IX
4
MOV
2 IX+D
4
2
CLR
CLR
3 SP1 1 IX
9E6
SP1
4
1
NEG
NEGA
2 DIR 1 INH
5
4
CBEQ CBEQA
3 DIR 3 IMM
5
MUL
1 INH
4
1
COM
COMA
2 DIR 1 INH
4
1
LSR
LSRA
2 DIR 1 INH
4
3
STHX
LDHX
2 DIR 3 IMM
4
1
ROR
RORA
2 DIR 1 INH
4
1
ASR
ASRA
2 DIR 1 INH
4
1
LSL
LSLA
2 DIR 1 INH
4
1
ROL
ROLA
2 DIR 1 INH
4
1
DEC
DECA
2 DIR 1 INH
5
3
DBNZ DBNZA
3 DIR 2 INH
4
1
INC
INCA
2 DIR 1 INH
3
1
TST
TSTA
2 DIR 1 INH
5
MOV
3 DD
3
1
CLR
CLRA
2 DIR 1 INH
DIR
INH Inherent
REL Relative
IMM Immediate
IX
Indexed, No Offset
DIR Direct
IX1 Indexed, 8-Bit Offset
EXT Extended
IX2 Indexed, 16-Bit Offset
DD Direct-Direct
IMD Immediate-Direct
IX+D Indexed-Direct DIX+ Direct-Indexed
*Pre-byte for stack pointer indexed instructions
LSB
MSB
Bit Manipulation
DIR
DIR
E
3
SUB
2 IX1
3
CMP
2 IX1
3
SBC
2 IX1
3
CPX
2 IX1
3
AND
2 IX1
3
BIT
2 IX1
3
LDA
2 IX1
3
STA
2 IX1
3
EOR
2 IX1
3
ADC
2 IX1
3
ORA
2 IX1
3
ADD
2 IX1
3
JMP
2 IX1
5
JSR
2 IX1
5
3
LDX
LDX
4 SP2 2 IX1
5
3
STX
STX
4 SP2 2 IX1
5
SUB
4 SP2
5
CMP
4 SP2
5
SBC
4 SP2
5
CPX
4 SP2
5
AND
4 SP2
5
BIT
4 SP2
5
LDA
4 SP2
5
STA
4 SP2
5
EOR
4 SP2
5
ADC
4 SP2
5
ORA
4 SP2
5
ADD
4 SP2
9ED
IX1
IX
2
SUB
1 IX
2
CMP
1 IX
2
SBC
1 IX
2
CPX
1 IX
2
AND
1 IX
2
BIT
1 IX
2
LDA
1 IX
2
STA
1 IX
2
EOR
1 IX
2
ADC
1 IX
2
ORA
1 IX
2
ADD
1 IX
2
JMP
1 IX
4
JSR
1 IX
4
2
LDX
LDX
3 SP1 1 IX
4
2
STX
STX
3 SP1 1 IX
4
SUB
3 SP1
4
CMP
3 SP1
4
SBC
3 SP1
4
CPX
3 SP1
4
AND
3 SP1
4
BIT
3 SP1
4
LDA
3 SP1
4
STA
3 SP1
4
EOR
3 SP1
4
ADC
3 SP1
4
ORA
3 SP1
4
ADD
3 SP1
9EE
SP1
4
SUB
3 IX2
4
CMP
3 IX2
4
SBC
3 IX2
4
CPX
3 IX2
4
AND
3 IX2
4
BIT
3 IX2
4
LDA
3 IX2
4
STA
3 IX2
4
EOR
3 IX2
4
ADC
3 IX2
4
ORA
3 IX2
4
ADD
3 IX2
4
JMP
3 IX2
6
JSR
3 IX2
4
LDX
3 IX2
4
STX
3 IX2
Register/Memory
IX2
SP2
5
Cycles
BRSET0 Opcode Mnemonic
3 DIR Number of Bytes / Addressing Mode
4
SUB
3 EXT
4
CMP
3 EXT
4
SBC
3 EXT
4
CPX
3 EXT
4
AND
3 EXT
4
BIT
3 EXT
4
LDA
3 EXT
4
STA
3 EXT
4
EOR
3 EXT
4
ADC
3 EXT
4
ORA
3 EXT
4
ADD
3 EXT
3
JMP
3 EXT
5
JSR
3 EXT
4
LDX
3 EXT
4
STX
3 EXT
EXT
Data Sheet
89
Data Sheet
90
MOTOROLA
7.1 Introduction
Internal oscillator
RC oscillator
The reference clock for the CGM and other MCU sub-systems is
selected by programming the mask option register located at $FFCF.
The reference clock for the timebase module (TBM) is selected by the
two bits, OSCCLK1 and OSCCLK0, in the CONFIG2 register.
The internal oscillator runs continuously after a POR or reset, and is
always available. The RC and crystal oscillator cannot run concurrently;
one is disabled while the other is selected; because the RC and x-tal
circuits share the same OSC1 pin.
NOTE:
Data Sheet
91
To TBM
CGMRCLK
OSCCLK
MOR
CONFIG2
OSCSEL1
OSCCLK1
MUX
MUX
OSCSEL0
OSCCLK0
X
RC
RC
To SIM
(and COP)
XCLK
ICLK
RCCLK
X-TAL OSCILLATOR
RC OSCILLATOR
INTERNAL OSCILLATOR
BUS CLOCK
OSC1
From SIM
OSC2
Data Sheet
92
MOTOROLA
$FFCF
Bit 7
Bit 0
Read:
OSCSEL1 OSCSEL0
Write:
Reset:
Erased:
Unaffected by reset
1
= Reserved
OSCSEL0
CGMXCLK
OSC2 Pin
Comments
ICLK
fBUS
RCCLK
fBUS
XCLK
Inverting
output of
X-TAL
Not used
Data Sheet
93
$001D
Bit 7
Read:
STOP_
ICLKDIS
Write:
Reset:
6
STOP_
RCLKEN
0
STOP_
OSCCLK1 OSCCLK0
XCLKEN
0
Bit 0
SCIBDSRC
NOTE:
OSCCLK1
OSCCLK0
RC oscillator (RCCLK)
Not used
Data Sheet
94
MOTOROLA
From SIM
SIMOSCEN
ICLK
From SIM
BUS CLOCK
CONFIG2
STOP_ICLKDIS
EN
INTERNAL OSCILLATOR
MCU
OSC2
7.4 RC Oscillator
The RC oscillator circuit is designed for use with an external resistor and
a capacitor.
In its typical configuration, the RC oscillator requires two external
components, one R and one C. Component values should have a
tolerance of 1% or less, to obtain a clock source with less than 10%
tolerance. The oscillator configuration uses two components:
CEXT
REXT
Data Sheet
95
From SIM
SIMOSCEN
RCCLK
From SIM
BUS CLOCK
CONFIG2
EN
STOP_RCLKEN
RC OSCILLATOR
MCU
OSC1
OSC2
REXT
CEXT
Data Sheet
Crystal, X1 (32.768kHz)
Fixed capacitor, C1
Feedback resistor, RB
96
MOTOROLA
From SIM
SIMOSCEN
XCLK
CONFIG2
STOP_XCLKEN
MCU
OSC1
OSC2
RB
RS
X1
See Section 24. for component value requirements.
C1
32.768kHz
C2
Data Sheet
97
Data Sheet
98
MOTOROLA
Data Sheet
99
Oscillator (OSC)
Data Sheet
100
MOTOROLA
8.1 Introduction
This section describes the clock generator module (CGM). The CGM
generates the base clock signal, CGMOUT, which is based on either the
oscillator clock divided by two or the divided phase-locked loop (PLL)
clock, CGMPCLK, divided by two. CGMOUT is the clock from which the
SIM derives the system clocks, including the bus clock, which is at a
frequency of CGMOUT2.
The PLL is a frequency generator designed for use with a low frequency
crystal (typically 32.768kHz) to generate a base frequency and dividing
to a maximum bus frequency of 8MHz.
8.2 Features
Features of the CGM include:
Data Sheet
101
Data Sheet
102
MOTOROLA
OSC2
OSC1
ICLK
INTERNAL OSCILLATOR
OSCCLK
RC OSCILLATOR
OSCSEL[1:0]
CGMXCLK
MUX
To ADC
CGMRCLK
CRYSTAL OSCILLATOR
OSCCLK[1:0]
SIMOSCEN
From SIM
PHASE-LOCKED LOOP (PLL)
CGMRDV
CGMRCLK
REFERENCE
DIVIDER
R
RDS[3:0]
VDDA
CGMXFC
CGMOUT
CLOCK
SELECT
CIRCUIT
BCS
B S*
*WHEN S = 1,
CGMOUT = B
VSSA
To SIM
SIMDIV2
From SIM
VPR[1:0]
VRS[7:0]
L
PHASE
DETECTOR
2E
CGMPCLK
VOLTAGE
CONTROLLED
OSCILLATOR
LOOP
FILTER
PLL ANALOG
AUTOMATIC
MODE
CONTROL
LOCK
DETECTOR
LOCK
AUTO
MUL[11:0]
PLLIE
CGMINT
To SIM
PLLF
PRE[1:0]
N
CGMVDV
ACQ
INTERRUPT
CONTROL
2P
FREQUENCY
DIVIDER
FREQUENCY
DIVIDER
CGMVCLK
Data Sheet
103
Addr.
Register Name
Bit 7
Read:
$0036
$0037
Read:
PLL Bandwidth Control
Register Write:
(PBWC)
Reset:
Read:
PLL Multiplier Select
Register High Write:
(PMSH)
Reset:
$0038
Read:
PLL Multiplier Select
Register Low Write:
(PMSL)
Reset:
$0039
$003A
$003B
Read:
PLL VCO Range Select
Register Write:
(PMRS)
Reset:
Read:
PLL Reference Divider
Select Register Write:
(PMDS)
Reset:
Bit 0
PLLON
BCS
PRE1
PRE0
VPR1
VPR0
PLLF
PLLIE
0
0
LOCK
AUTO
ACQ
MUL11
MUL10
MUL9
MUL8
MUL7
MUL6
MUL5
MUL4
MUL3
MUL2
MUL1
MUL0
VRS7
VRS6
VRS5
VRS4
VRS3
VRS2
VRS1
VRS0
0
RDS3
RDS2
RDS1
RDS0
= Unimplemented
= Reserved
NOTES:
1. When AUTO = 0, PLLIE is forced clear and is read-only.
2. When AUTO = 0, PLLF and LOCK read as clear.
3. When AUTO = 1, ACQ is read-only.
4. When PLLON = 0 or VRS7:VRS0 = $0, BCS is forced clear and is read-only.
5. When PLLON = 1, the PLL programming register is read-only.
6. When BCS = 1, PLLON is forced set and is read-only.
Data Sheet
104
MOTOROLA
Reference divider
Frequency pre-scaler
Phase detector
Loop filter
Lock detector
Data Sheet
105
106
MOTOROLA
Data Sheet
107
The ACQ bit is set when the VCO frequency is within a certain
tolerance and is cleared when the VCO frequency is out of a
certain tolerance. (See 8.8 Acquisition/Lock Time
Specifications for more information.)
The LOCK bit is set when the VCO frequency is within a certain
tolerance and is cleared when the VCO frequency is out of a
certain tolerance. (See 8.8 Acquisition/Lock Time
Specifications for more information.)
The PLL also may operate in manual mode (AUTO = 0). Manual mode
is used by systems that do not require an indicator of the lock condition
for proper operation. Such systems typically operate well below
fBUSMAX.
Data Sheet
108
MOTOROLA
ACQ is a writable control bit that controls the mode of the filter.
Before turning on the PLL in manual mode, the ACQ bit must be
clear.
Software must wait a given time, tAL, after entering tracking mode
before selecting the PLL as the clock source to CGMOUT
(BCS = 1).
NOTE:
The round function in the following equations means that the real
number should be rounded to the nearest integer number.
1. Choose the desired bus frequency, fBUSDES, or the desired VCO
frequency, fVCLKDES; and then solve for the other.
The relationship between fBUS and fVCLK is governed by the
equation:
P
f VCLK = 2 f CGMPCLK = 2 4
fBUS
Data Sheet
109
2 N
f VCLK = ----------- ( f RCLK )
R
3. Calculate N:
R f VCLKDES
N = round -------------------------------------
P
f
RCLK 2
2 N
f VCLK = ----------- ( f RCLK )
R
f BUS =
Data Sheet
VCLK
---------P
2 4
110
MOTOROLA
NOM
f VRS = ( L 2 )f NOM
f NOM 2
f VRS f VCLK -------------------------2
NOTE:
Data Sheet
111
NOTE:
The values for P, E, N, L, and R can only be programmed when the PLL
is off (PLLON = 0).
Table 8-1 provides numeric examples (numbers are in hexadecimal
notation):
Table 8-1. Numeric Examples
Data Sheet
CGMVCLK
CGMPCLK
fBUS
fRCLK
8.0 MHz
8.0 MHz
2.0 MHz
32.768 kHz
F5
40
9.8304 MHz
9.8304 MHz
2.4576 MHz
32.768 kHz
12C
27
10.0 MHz
10.0 MHz
2.5 MHz
32.768 kHz
132
28
16 MHz
16 MHz
4.0 MHz
32.768 kHz
1E9
40
19.6608 MHz
19.6608 MHz
4.9152 MHz
32.768 kHz
258
27
20 MHz
20 MHz
5.0 MHz
32.768 kHz
263
28
29.4912 MHz
29.4912 MHz
7.3728 MHz
32.768 kHz
384
3B
32 MHz
32 MHz
8.0 MHz
32.768 kHz
3D1
40
32 MHz
16 MHz
4.0 MHz
32.768 kHz
1E9
40
32 MHz
8 MHz
2.0 MHz
32.768 kHz
F5
40
32 MHz
4 MHz
1.0 MHz
32.768 kHz
7B
40
112
MOTOROLA
A 0 value for L disables the PLL and prevents its selection as the
source for the base clock.
Data Sheet
113
Filter network
Care should be taken with PCB routing in order to minimize signal cross
talk and noise. (See 8.8 Acquisition/Lock Time Specifications for
routing information, filter network and its effects on PLL performance.)
MCU
VSSA
CGMXFC
VDDA
VDD
1 k
CBYP
0.1 F
10 nF
0.22 F
Note: Filter network in box can be replaced with a 0.47F capacitor, but will degrade stability.
Data Sheet
114
MOTOROLA
NOTE:
NOTE:
Route VDDA carefully for maximum noise immunity and place bypass
capacitors as close as possible to the package.
NOTE:
Route VSSA carefully for maximum noise immunity and place bypass
capacitors as close as possible to the package.
Data Sheet
115
Data Sheet
116
MOTOROLA
$0036
Bit 7
Read:
Bit 0
PLLON
BCS
PRE1
PRE0
VPR1
VPR0
PLLF
PLLIE
Write:
Reset:
= Unimplemented
NOTE:
Data Sheet
117
NOTE:
PLLON and BCS have built-in protection that prevents the base clock
selector circuit from selecting the VCO clock as the source of the base
clock if the PLL is off. Therefore, PLLON cannot be cleared when BCS
is set, and BCS cannot be set when PLLON is clear. If the PLL is off
(PLLON = 0), selecting CGMPCLK requires two writes to the PLL control
register. (See 8.3.8 Base Clock Selector Circuit.)
PRE1 and PRE0 Prescaler Program Bits
These read/write bits control a prescaler that selects the prescaler
power-of-two multiplier, P. (See 8.3.3 PLL Circuits and 8.3.6
Programming the PLL.) PRE1 and PRE0 cannot be written when
the PLLON bit is set. Reset clears these bits.
These prescaler bits affects the relationship between the VCO clock
and the final system bus clock.
Data Sheet
118
MOTOROLA
Prescaler Multiplier
00
01
10
11
VCO Power-of-Two
Range Multiplier
00
01
10
Data Sheet
119
Address:
$0037
Bit 7
Read:
LOCK
AUTO
Bit 0
ACQ
Write:
Reset:
= Unimplemented
0
R
= Reserved
Data Sheet
120
MOTOROLA
Read:
$0038
Bit 7
Bit 0
MUL11
MUL10
MUL9
MUL8
Write:
Reset:
= Unimplemented
$0039
Bit 7
Bit 0
MUL7
MUL6
MUL5
MUL4
MUL3
MUL2
MUL1
MUL0
Read:
Write:
Reset:
NOTE:
The multiplier select bits have built-in protection such that they cannot
be written when the PLL is on (PLLON = 1).
Data Sheet
121
$003A
Bit 7
Bit 0
VRS7
VRS6
VRS5
VRS4
VRS3
VRS2
VRS1
VRS0
Read:
Write:
Reset:
NOTE:
The VCO range select bits have built-in protection such that they cannot
be written when the PLL is on (PLLON = 1) and such that the VCO clock
cannot be selected as the source of the base clock (BCS = 1) if the VCO
range select bits are all clear.
The PLL VCO range select register must be programmed correctly.
Incorrect programming can result in failure of the PLL to achieve lock.
Data Sheet
122
MOTOROLA
Read:
$003B
Bit 7
Bit 0
RDS3
RDS2
RDS1
RDS0
Write:
Reset:
= Unimplemented
NOTE:
The reference divider select bits have built-in protection such that they
cannot be written when the PLL is on (PLLON = 1).
NOTE:
Data Sheet
123
When the AUTO bit is set in the PLL bandwidth control register (PBWC),
the PLL can generate a CPU interrupt request every time the LOCK bit
changes state. The PLLIE bit in the PLL control register (PCTL) enables
CPU interrupts from the PLL. PLLF, the interrupt flag in the PCTL,
becomes set whether interrupts are enabled or not. When the AUTO bit
is clear, CPU interrupts from the PLL are disabled and PLLF reads as
logic 0.
Software should read the LOCK bit after a PLL interrupt request to see
if the request was due to an entry into lock or an exit from lock. When the
PLL enters lock, the divided VCO clock, CGMPCLK, divided by two can
be selected as the CGMOUT source by setting BCS in the PCTL. When
the PLL exits lock, the VCO clock frequency is corrupt, and appropriate
precautions should be taken. If the application is not frequency sensitive,
interrupts should be disabled to prevent PLL interrupt service routines
from impeding software performance or from exceeding stack
limitations.
NOTE:
124
MOTOROLA
Data Sheet
125
Typical control systems refer to the acquisition time or lock time as the
reaction time, within specified tolerances, of the system to a step input.
In a PLL, the step input occurs when the PLL is turned on or when it
suffers a noise hit. The tolerance is usually specified as a percent of the
step input or when the output settles to the desired value plus or minus
a percent of the frequency change. Therefore, the reaction time is
constant in this definition, regardless of the size of the step input. For
example, consider a system with a 5 percent acquisition time tolerance.
If a command instructs the system to change from 0Hz to 1MHz, the
acquisition time is the time taken for the frequency to reach
1MHz 50kHz. 50kHz = 5% of the 1MHz step input. If the system is
operating at 1MHz and suffers a 100kHz noise hit, the acquisition time
is the time taken to return from 900kHz to 1MHz 5kHz. 5kHz = 5% of
the 100kHz step input.
Other systems refer to acquisition and lock times as the time the system
takes to reduce the error between the actual output and the desired
output to within specified tolerances. Therefore, the acquisition or lock
time varies according to the original error in the output. Minor errors may
not even be registered. Typical PLL applications prefer to use this
definition because the system requires the output frequency to be within
a certain tolerance of the desired frequency regardless of the size of the
initial error.
126
MOTOROLA
The most critical parameter which affects the reaction times of the PLL
is the reference frequency, fRDV. This frequency is the input to the phase
detector and controls how often the PLL makes corrections. For stability,
the corrections must be small compared to the desired frequency, so
several corrections are required to reduce the frequency error.
Therefore, the slower the reference the longer it takes to make these
corrections. This parameter is under user control via the choice of crystal
frequency fXCLK and the R value programmed in the reference divider.
(See 8.3.3 PLL Circuits, 8.3.6 Programming the PLL, and 8.5.5 PLL
Reference Divider Select Register.)
Another critical parameter is the external filter network. The PLL
modifies the voltage on the VCO by adding or subtracting charge from
capacitors in this network. Therefore, the rate at which the voltage
changes for a given frequency error (thus change in charge) is
proportional to the capacitance. The size of the capacitor also is related
to the stability of the PLL. If the capacitor is too small, the PLL cannot
make small enough adjustments to the voltage and the system cannot
lock. If the capacitor is too large, the PLL may not be able to adjust the
voltage in a reasonable time. (See 8.8.3 Choosing a Filter.)
Also important is the operating voltage potential applied to VDDA. The
power supply potential alters the characteristics of the PLL. A fixed value
is best. Variable supplies, such as batteries, are acceptable if they vary
within a known range at very slow speeds. Noise on the power supply is
not acceptable, because it causes small frequency errors which
continually change the acquisition time of the PLL.
Temperature and processing also can affect acquisition time because
the electrical characteristics of the PLL change. The part operates as
specified as long as these influences stay within the specified limits.
External factors, however, can cause drastic changes in the operation of
the PLL. These factors include noise injected into the PLL through the
filter capacitor, filter capacitor leakage, stray impedances on the circuit
board, and even humidity or circuit board contamination.
Data Sheet
127
CGMXFC
1 k
10 nF
0.22 F
0.22 F
VSSA
VSSA
(a)
(b)
Data Sheet
128
MOTOROLA
9.1 Introduction
Interrupt control:
Acknowledge timing
Arbitration control timing
Vector address generation
Table 9-1 shows the internal signal names used in this section.
Data Sheet
129
STOP/WAIT
CONTROL
COP CLOCK
CLOCK
CONTROL
VDD
CLOCK GENERATORS
INTERNAL CLOCKS
INTERNAL
PULLUP
DEVICE
RESET
PIN LOGIC
POR CONTROL
MASTER
RESET
CONTROL
RESET
INTERRUPT SOURCES
INTERRUPT CONTROL
AND PRIORITY DECODE
CPU INTERFACE
Data Sheet
Description
Internal oscillator clock
Selected oscillator clock from oscillator module
PLL output and the divided PLL output
CGMPCLK-based or oscillator-based clock output from CGM module
(Bus clock = CGMOUT 2)
Internal address bus
Internal data bus
Signal from the power-on reset module to the SIM
IRST
R/W
Read/write signal
130
MOTOROLA
Addr.
Register Name
Read:
SIM Break Status Register
$FE00
Write:
(SBSR)
Reset:
Bit 7
POR
PIN
COP
ILOP
ILAD
MODRST
LVI
BCFE
SBSW
NOTE
Bit 0
R
Read:
SIM Reset Status Register
$FE01
Write:
(SRSR)
POR:
$FE03
Read:
SIM Break Flag Control
Write:
Register (SBFCR)
Reset:
Read:
Interrupt Status Register 1
$FE04
Write:
(INT1)
Reset:
IF6
IF5
IF4
IF3
IF2
IF1
Read:
Interrupt Status Register 2
$FE05
Write:
(INT2)
Reset:
IF14
IF13
IF12
IF11
IF10
IF9
IF8
IF7
Read:
Interrupt Status Register 3
$FE06
Write:
(INT3)
Reset:
IF21
IF20
IF19
IF18
IF17
IF16
IF15
= Unimplemented
Data Sheet
131
OSC2
OSCCLK
TO TBM
OSC1
ICLK
TO TIM, ADC
SIM COUNTER
SIMOSCEN
CGMRCLK
CGMOUT
BUS CLOCK
GENERATORS
IT12
TO REST
OF MCU
IT23
TO REST
OF MCU
PTB0
SIMDIV2
MONITOR MODE
USER MODE
CGMVCLK
TO PWM
Data Sheet
132
MOTOROLA
Upon exit from stop mode by an interrupt, break, or reset, the SIM allows
ICLK to clock the SIM counter. The CPU and peripheral clocks do not
become active until after the stop delay timeout. This timeout is
selectable as 4096 or 32 ICLK cycles. (See 9.6.2 Stop Mode.)
In wait mode, the CPU clocks are inactive. The SIM also produces two
sets of clocks for other modules. Refer to the wait mode subsection of
each module to see if the module is active or inactive in wait mode.
Some modules can be programmed to be active in wait mode.
Illegal opcode
Illegal address
Data Sheet
133
POR/LVI
4163 (4096 + 64 + 3)
All others
67 (64 + 3)
ICLK
RST
IAB
VECT H VECT L
PC
NOTE:
Data Sheet
For LVI or POR resets, the SIM cycles through 4096 + 32 ICLK cycles
during which the SIM forces the RST pin low. The internal reset signal
then follows the sequence from the falling edge of RST shown in
Figure 9-5.
134
MOTOROLA
IRST
RST
32 CYCLES
ICLK
IAB
VECTOR HIGH
INTERNAL RESET
Internal clocks to the CPU and modules are held inactive for 4096
ICLK cycles to allow stabilization of the oscillator.
The POR bit of the SIM reset status register (SRSR) is set and all
other bits in the register are cleared.
Data Sheet
135
OSC1
PORRST
4096
CYCLES
32
CYCLES
32
CYCLES
ICLK
CGMOUT
RST
IRST
$FFFE
IAB
$FFFF
Data Sheet
136
MOTOROLA
If the stop enable bit, STOP, in the mask option register is logic 0, the
SIM treats the STOP instruction as an illegal opcode and causes an
illegal opcode reset. The SIM actively pulls down the RST pin for all
internal reset sources.
Data Sheet
137
The SIM counter is used by the power-on reset module (POR) and in
stop mode recovery to allow the oscillator time to stabilize before
enabling the internal bus (IBUS) clocks. The SIM counter also serves as
a prescaler for the computer operating properly module (COP). The SIM
counter overflow supplies the clock for the COP module. The SIM
counter is 13 bits long and is clocked by the falling edge of CGMXCLK.
Data Sheet
138
MOTOROLA
Interrupts:
Maskable hardware CPU interrupts
Reset
Break interrupts
9.5.1 Interrupts
At the beginning of an interrupt, the CPU saves the CPU register
contents on the stack and sets the interrupt mask (I bit) to prevent
additional interrupts. At the end of an interrupt, the RTI instruction
recovers the CPU register contents from the stack so that normal
processing can resume. Figure 9-8 shows interrupt entry timing, and
Figure 9-9 shows interrupt recovery timing.
MODULE
INTERRUPT
I-BIT
IAB
IDB
SP
DUMMY
DUMMY
SP 1
SP 2
PC 1[7:0] PC 1[15:8]
SP 3
X
SP 4
A
VECT H
CCR
VECT L
V DATA H
START ADDR
V DATA L
OPCODE
R/W
SP 4
IDB
SP 3
CCR
SP 2
A
SP 1
X
SP
PC
PC 1[15:8] PC 1[7:0]
PC + 1
OPCODE
OPERAND
R/W
Data Sheet
139
FROM RESET
BREAK
I BIT
SET?
INTERRUPT?
YES
NO
YES
I-BIT SET?
NO
IRQ1
INTERRUPT?
YES
NO
AS MANY INTERRUPTS
AS EXIST ON CHIP
FETCH NEXT
INSTRUCTION
SWI
INSTRUCTION?
YES
NO
RTI
INSTRUCTION?
YES
NO
EXECUTE INSTRUCTION
Data Sheet
140
MOTOROLA
LDA #$FF
INT1
PSHH
INT1 INTERRUPT SERVICE ROUTINE
PULH
RTI
INT2
PSHH
INT2 INTERRUPT SERVICE ROUTINE
PULH
RTI
NOTE:
Data Sheet
141
NOTE:
$FE04
Bit 7
Bit 0
Read:
IF6
IF5
IF4
IF3
IF2
IF1
Write:
Reset:
= Reserved
Data Sheet
142
MOTOROLA
INT
Flag
IF21
IF20
IF19
IF18
IF17
IF16
IF15
IF14
IF13
IF12
IF11
IF10
IF9
IF8
IF7
IF6
IF5
IF4
IF3
IF2
IF1
Highest
Vector
Address
$FFD0
$FFD1
$FFD2
$FFD3
$FFD4
$FFD5
$FFD6
$FFD7
$FFD8
$FFD9
$FFDA
$FFDB
$FFDC
$FFDD
$FFDE
$FFDF
$FFE0
$FFE1
$FFE2
$FFE3
$FFE4
$FFE5
$FFE6
$FFE7
$FFE8
$FFE9
$FFEA
$FFEB
$FFEC
$FFED
$FFEE
$FFEF
$FFF0
$FFF1
$FFF2
$FFF3
$FFF4
$FFF5
$FFF6
$FFF7
$FFF8
$FFF9
$FFFA
$FFFB
$FFFC
$FFFD
$FFFE
$FFFF
Interrupt Source
Reserved
Timebase
Infrared SCI Transmit
Infrared SCI Receive
Infrared SCI Error
SPI Transmit
SPI Receive
ADC Conversion Complete
Keyboard
SCI Transmit
SCI Receive
SCI Error
MMIIC
TIM2 Overflow
TIM2 Channel 1
TIM2 Channel 0
TIM1 Overflow
TIM1 Channel 1
TIM1 Channel 0
PLL
IRQ2
IRQ1
SWI
Reset
Data Sheet
143
$FE05
Bit 7
Bit 0
Read:
IF14
IF13
IF12
IF11
IF10
IF9
IF8
IF7
Write:
Reset:
= Reserved
$FE06
Bit 7
Bit 0
Read:
IF21
IF20
IF19
IF18
IF17
IF16
IF15
Write:
Reset:
= Reserved
Data Sheet
144
MOTOROLA
9.5.2 Reset
All reset sources always have equal and highest priority and cannot be
arbitrated.
Data Sheet
145
IAB
IDB
WAIT ADDR
WAIT ADDR + 1
PREVIOUS DATA
SAME
NEXT OPCODE
SAME
SAME
SAME
R/W
NOTE: Previous data can be operand data or the WAIT opcode, depending on the
last instruction.
Data Sheet
146
MOTOROLA
IAB
$6E0B
IDB
$A6
$6E0C
$A6
$A6
$01
$00FF
$0B
$00FE
$00FD
$00FC
$6E
EXITSTOPWAIT
32
CYCLES
IAB
IDB
32
CYCLES
$6E0B
$A6
$A6
$A6
RST
ICLK
NOTE:
External crystal applications should use the full stop recovery time by
clearing the SSREC bit.
Data Sheet
147
NOTE:
CPUSTOP
IAB
IDB
STOP ADDR
STOP ADDR + 1
PREVIOUS DATA
SAME
NEXT OPCODE
SAME
SAME
SAME
R/W
NOTE: Previous data can be operand data or the STOP opcode, depending on the last
instruction.
INT/BREAK
IAB
STOP +1
STOP + 2
STOP + 2
SP
SP 1
SP 2
SP 3
Data Sheet
148
MOTOROLA
$FE00
Bit 7
Read:
Bit 0
SBSW
R
Write:
Note
Reset:
= Reserved
EQU
LOBYTE
EQU
SBSW,SBSR, RETURN
TST
LOBYTE,SP
BNE
DOLO
DEC
HIBYTE,SP
DOLO
DEC
LOBYTE,SP
RETURN
PULH
RTI
;Restore H register.
Data Sheet
149
Read:
$FE01
Bit 7
Bit 0
POR
PIN
COP
ILOP
ILAD
MODRST
LVI
Write:
Reset:
= Unimplemented
150
MOTOROLA
Address:
$FE03
Bit 7
Bit 0
BCFE
Read:
Write:
Reset:
0
R
= Reserved
Data Sheet
151
Data Sheet
152
MOTOROLA
10.1 Introduction
This section describes the monitor ROM (MON) and the monitor mode
entry methods. The monitor ROM allows complete testing of the MCU
through a single-wire interface with a host computer. Monitor mode entry
can be achieved without use of the higher test voltage, VTST, as long as
vector addresses $FFFE and $FFFF are blank, thus reducing the
hardware requirements for in-circuit programming.
In addition, to simplify user coding, routines are also stored in the
monitor ROM area for FLASH memory program /erase and EEPROM
emulation.
10.2 Features
Features of the monitor ROM include:
Data Sheet
153
Data Sheet
154
MOTOROLA
RST
0.1 F
HC908AP
VDD
VDD
VDDA
0.1 F
VREFH
VREG
VREFL
VSS
VSSA
4.9152MHz/9.8304MHz
(50% DUTY)
OSC1
CGMXFC
0.01 F
10k
MUST BE USED IF SW2 IS AT POSITION C.
CONNECT TO OSC1, WITH OSC2 UNCONNECTED.
EXT OSC
32.768kHz
OSC1
630 pF
MAX232
1
1 F
+
3
4
1 F
C1+
C1
C2+
GND
V+
OSC2
16
+
630 pF
1 F
15
1 F
+
XTAL CIRCUIT
C
VTST
VDD
+
5 C2
330k
VDD
VCC
6
1 F
10
(SEE NOTE 1)
IRQ1
10 k
74HC125
5
6
DB9
7
SW2
1k
8.5 V
+
2
0.033 F
10M
VREG
74HC125
3
PTA0
VDD
VDD
10 k
10 k
A
PTA1
SW1
PTB0
(SEE NOTE 2)
NOTES:
1. Monitor mode entry method:
SW2: Position C High voltage entry (VTST); must use external OSC
Bus clock depends on SW1 (note 2).
SW2: Position D Reset vector must be blank ($FFFE:$FFFF = $FF)
Bus clock = 2.4576MHz.
2. Affects high voltage entry to monitor mode only (SW2 at position C):
SW1: Position A Bus clock = OSC1 4
SW1: Position B Bus clock = OSC1 2
5. See Table 24-4 for VTST voltage level requirements.
B
10 k
PTA2
10 k
Data Sheet
155
Data Sheet
156
MOTOROLA
MOTOROLA
X
VDD
or
VTST
VDD
or
VTST
VDD
VDD
VTST
VDD
or
VTST
VTST(3)
VTST(3)
VDD
GND
VDD
or
GND
VDD
or
GND
PTA2
PTA1
PTA0(1)
PTB0
32.768
kHz
9.8304
MHz
9.8304
MHz
4.9152
MHz
External
Clock(2)
2.4576
MHz
2.4576
MHz
2.4576
MHz
2.4576
MHz
Bus
Frequency
OFF
OFF
ON
OFF
OFF
OFF
PLL
Enabled
Enabled
Disabled
Disabled
Disabled
Disabled
Disabled
COP
9600
9600
9600
9600
Baud
Rate
Enters user
mode will
encounter an illegal
address reset
PLL enabled
(BCS set)
in monitor code
External frequency
always divided by 4
No operation until
reset goes high
Comment
Notes:
1. PTA0 = 1 if serial communication; PTA0 = 0 if parallel communication
2. External clock is derived by a 32.768 kHz crystal or a 4.9152/9.8304 MHz off-chip oscillator
3. Monitor mode entry by IRQ1= VTST, a 4.9152/9.8304 MHz off-chip oscillator must be used. The MCU internal crystal oscillator circuit is bypassed.
Not Blank
Blank
"$FFFF"
Blank
"$FFFF"
Blank
"$FFFF"
GND
Address
$FFFE/
$FFFF
RST
IRQ1
Data Sheet
157
If the reset vector is blank and monitor mode is entered, the chip will see
an additional reset cycle after the initial POR reset. Once the part has
been programmed, the traditional method of applying a voltage, VTST, to
IRQ1 must be used to enter monitor mode.
If monitor mode was entered with VTST on IRQ1 (condition set 1),
then the COP is disabled as long as VTST is applied to either IRQ1
or RST.
Data Sheet
158
MOTOROLA
POR RESET
IS VECTOR
BLANK?
NO
NORMAL USER
MODE
YES
MONITOR MODE
EXECUTE
MONITOR
CODE
POR
TRIGGERED?
NO
YES
NOTE:
Exiting monitor mode after it has been initiated by having a blank reset
vector requires a power-on reset (POR). Pulling RST low will not exit
monitor mode in this situation.
Table 10-2 summarizes the differences between user mode and monitor
mode vectors.
Table 10-2. Mode Differences (Vectors)
Functions
Modes
Reset
Vector
High
Reset
Vector
Low
Break
Vector
High
Break
Vector
Low
SWI
Vector
High
SWI
Vector
Low
User
$FFFE
$FFFF
$FFFC
$FFFD
$FFFC
$FFFD
Monitor
$FEFE
$FEFF
$FEFC
$FEFD
$FEFC
$FEFD
Data Sheet
159
START
BIT
BIT 0
BIT 1
BIT 2
BIT 3
BIT 4
BIT 5
BIT 6
NEXT
START
STOP
BIT
BIT
BIT 7
160
MOTOROLA
IRQ1
PTB0
Internal
Frequency
Baud Rate
(BPS)
4.9152 MHz
VTST
2.4576 MHz
9600
9.8304 MHz
VTST
2.4576 MHz
9600
9.8304 MHz
VDD
2.4576 MHz
9600
32.768 kHz
VSS
2.4576 MHz
9600
10.3.5 Commands
The monitor ROM firmware uses these commands:
The monitor ROM firmware echoes each received byte back to the PTA0
pin for error checking. An 11-bit delay at the end of each command
allows the host to send a break character to cancel the command. A
delay of two bit times occurs before each echo and before READ,
IREAD, or READSP data is returned. The data returned by a read
command appears after the echo of the last byte of the command.
NOTE:
Wait one bit time after each echo before sending the next byte.
Data Sheet
161
FROM HOST
ADDRESS
HIGH
READ
READ
ADDRESS
HIGH
ADDRESS
LOW
ADDRESS
LOW
DATA
3, 2
ECHO
RETURN
Notes:
1 = Echo delay, 2 bit times
2 = Data return delay, 2 bit times
3 = Cancel command delay, 11 bit times
4 = Wait 1 bit time before sending next byte.
ADDRESS
HIGH
WRITE
WRITE
1
ADDRESS
HIGH
ADDRESS
LOW
ADDRESS
LOW
DATA
DATA
2, 3
ECHO
Notes:
1 = Echo delay, 2 bit times
2 = Cancel command delay, 11 bit times
3 = Wait 1 bit time before sending next byte.
Operand
Data
Returned
Opcode
$4A
Command Sequence
SENT TO
MONITOR
READ
READ
ADDRESS
HIGH
ADDRESS
HIGH
ADDRESS
LOW
ADDRESS
LOW
ECHO
Data Sheet
DATA
RETURN
162
MOTOROLA
Data
Returned
None
Opcode
$49
Command Sequence
FROM
HOST
WRITE
ADDRESS
HIGH
WRITE
ADDRESS
HIGH
ADDRESS
LOW
ADDRESS
LOW
DATA
DATA
ECHO
Operand
Data
Returned
Opcode
$1A
Command Sequence
FROM
HOST
IREAD
IREAD
DATA
ECHO
DATA
RETURN
Data Sheet
163
Operand
Data
Returned
None
Opcode
$19
Command Sequence
FROM
HOST
IWRITE
IWRITE
DATA
DATA
ECHO
Operand
None
Data
Returned
Opcode
$0C
Command Sequence
FROM
HOST
READSP
READSP
SP
HIGH
ECHO
Data Sheet
SP
LOW
RETURN
164
MOTOROLA
Operand
None
Data
Returned
None
Opcode
$28
Command Sequence
FROM
HOST
RUN
RUN
ECHO
The MCU executes the SWI and PSHH instructions when it enters
monitor mode. The RUN command tells the MCU to execute the PULH
and RTI instructions. Before sending the RUN command, the host can
modify the stacked CPU registers to prepare to run the host program.
The READSP command returns the incremented stack pointer value,
SP + 1. The high and low bytes of the program counter are at addresses
SP + 5 and SP + 6.
SP
HIGH BYTE OF INDEX REGISTER
SP + 1
SP + 2
ACCUMULATOR
SP + 3
SP + 4
Data Sheet
165
NOTE:
VDD
4096 + 32 ICLK CYCLES
RST
COMMAND
BYTE 8
BYTE 2
BYTE 1
FROM HOST
PTA0
4
BREAK
1
COMMAND ECHO
NOTES:
1 = Echo delay, 2 bit times.
2 = Data return delay, 2 bit times.
4 = Wait 1 bit time before sending next byte.
1
BYTE 8 ECHO
BYTE 1 ECHO
FROM MCU
1
BYTE 2 ECHO
Data Sheet
166
MOTOROLA
Upon power-on reset, if the received bytes of the security code do not
match the data at locations $FFF6$FFFD, the host fails to bypass the
security feature. The MCU remains in monitor mode, but reading a
FLASH location returns an invalid value and trying to execute code from
FLASH causes an illegal address reset. After receiving the eight security
bytes from the host, the MCU transmits a break character, signifying that
it is ready to receive a command.
NOTE:
The MCU does not transmit a break character until after the host sends
the eight security bits.
To determine whether the security code entered is correct, check to see
if bit 6 of RAM address $60 is set. If it is, then the correct security code
has been entered and FLASH can be accessed.
If the security sequence fails, the device should be reset by a power-on
reset and brought up in monitor mode to attempt another entry. After
failing the security sequence, the FLASH module can also be mass
erased by executing an erase routine that was downloaded into internal
RAM. The mass erase operation clears the security code locations so
that all eight security bytes become $FF (blank).
Data Sheet
167
Routine Description
Call
Address
Stack Used
(bytes)
PRGRNGE
$FC34
15
ERARNGE
$FCE4
$FC00
MON_PRGRNGE
$FF24
17
MON_ERARNGE
$FF28
11
EE_WRITE
$FF36
30
EE_READ
$FD5B
18
LDRNGE
Data Sheet
168
MOTOROLA
FILE_PTR
$XXXX
ADDRESS AS POINTER
DATA
BLOCK
DATA
ARRAY
DATA N
Bus speed This one byte indicates the operating bus speed of
the MCU. The value of this byte should be equal to 4 times the bus
speed. E.g., for a 4MHz bus, the value is 16 ($10). This control
byte is useful where the MCU clock source is switched between
the PLL clock and the crystal clock.
Data size This one byte indicates the number of bytes in the
data array that are to be manipulated. The maximum data array
size is 255. Routines EE_WRITE and EE_READ are restricted to
manipulate a data array between 7 to 15 bytes. Whereas routines
ERARNGE and MON_ERARNGE do not manipulate a data array,
thus, this data size byte has no meaning.
Start address These two bytes, high byte followed by low byte,
indicate the start address of the FLASH memory to be
manipulated.
Data Sheet
169
PRGRNGE
Routine Description
Calling Address
$FC34
Stack Used
15 bytes
Data Sheet
170
MOTOROLA
ORG
RAM
:
FILE_PTR:
BUS_SPD
DATASIZE
START_ADDR
DATAARRAY
DS.B
DS.B
DS.W
DS.B
1
1
1
64
PRGRNGE
FLASH_START
EQU
EQU
$FC34
$EE00
;
;
;
;
ORG
FLASH
INITIALISATION:
MOV
#20,
BUS_SPD
MOV
#64,
DATASIZE
LDHX
#FLASH_START
STHX
START_ADDR
RTS
MAIN:
BSR
INITIALISATION
:
:
LDHX
#FILE_PTR
JSR
PRGRNGE
Data Sheet
171
ERARNGE
Routine Description
Calling Address
$FCE4
Stack Used
9 bytes
There are two sizes of erase ranges: a page or the entire array. The
ERARNGE will erase the page (512 consecutive bytes) in FLASH
specified by the address ADDRH:ADDRL. This address can be any
address within the page. Calling ERARNGE with ADDRH:ADDRL equal
to $FFFF will erase the entire FLASH array (mass erase). Therefore,
care must be taken when calling this routine to prevent an accidental
mass erase.
The ERARNGE routine do not use a data array. The DATASIZE byte is
a dummy byte that is also not used.
The coding example below is to perform a page erase, from
$EE00$EFFF. The Initialization subroutine is the same as the coding
example for PRGRNGE (see 10.5.1 PRGRNGE).
ERARNGE
MAIN:
EQU
BSR
:
:
LDHX
JSR
:
Data Sheet
$FCE4
INITIALISATION
#FILE_PTR
ERARNGE
172
MOTOROLA
10.5.3 LDRNGE
LDRNGE is used to load the data array in RAM with data from a range
of FLASH locations.
LDRNGE
Routine Description
Calling Address
$FC00
Stack Used
7 bytes
EQU
BSR
:
:
LDHX
JSR
:
$FC00
INITIALIZATION
#FILE_PTR
LDRNGE
Data Sheet
173
MON_PRGRNGE
Routine Description
Calling Address
$FF24
Stack Used
17 bytes
Bus speed
Data size
Starting address (high byte)
Starting address (low byte)
Data 1
:
Data N
Data Sheet
174
MOTOROLA
10.5.5 MON_ERARNGE
In monitor mode, ERARNGE is used to erase a range of locations in
FLASH.
MON_ERARNGE
Routine Description
Calling Address
$FF28
Stack Used
11 bytes
Bus speed
Data size
Starting address (high byte)
Starting address (low byte)
Data Sheet
175
EE_WRITE
Routine Description
Calling Address
$FF36
Stack Used
30 bytes
Notes:
1. The minimum data size is 7 bytes. The maximum data size is 15 bytes.
2. The start address must be a page boundary start address.
176
MOTOROLA
When the user dedicates a page of FLASH for data storage, and the size
of the data array defined, each call of the EE_WRTIE routine will
automatically transfer the data in the data array (in RAM) to the next
blank block of locations in the FLASH page. Once a page is filled up, the
EE_WRITE routine automatically erases the page, and starts reuse the
page again. In the 512-byte page, an 9-byte control block is used by the
routine to monitor the utilization of the page. In effect, only 503 bytes are
used for data storage. (see Figure 10-10). The page control operations
are transparent to the user.
F L A S H
PAGE BOUNDARY
CONTROL: 9 BYTES
DATA ARRAY
DATA ARRAY
DATA ARRAY
PAGE BOUNDARY
Data Sheet
177
RAM
:
FILE_PTR:
BUS_SPD
DATASIZE
START_ADDR
DATAARRAY
DS.B
DS.B
DS.W
DS.B
1
1
1
15
EE_WRITE
FLASH_START
EQU
EQU
$FF36
$EE00
;
;
;
;
ORG
FLASH
INITIALISATION:
MOV
#20,
BUS_SPD
MOV
#15,
DATASIZE
LDHX
#FLASH_START
STHX
START_ADDR
RTS
MAIN:
BSR
INITIALISATION
:
:
LHDX
#FILE_PTR
JSR
EE_WRITE
NOTE:
Data Sheet
178
MOTOROLA
10.5.7 EE_READ
EE_READ is used to load the data array in RAM with a set of data from
FLASH.
EE_READ
Routine Description
Calling Address
$FD5B
Stack Used
18 bytes
Notes:
1. The start address must be a page boundary start address.
EQU
$FD5B
MAIN:
BSR
:
:
LDHX
JSR
:
INITIALIZATION
#FILE_PTR
EE_READ
Data Sheet
179
NOTE:
Data Sheet
180
MOTOROLA
11.1 Introduction
This section describes the timer interface (TIM) module. The TIM is a
two-channel timer that provides a timing reference with input capture,
output compare, and pulse-width-modulation functions. Figure 11-1 is a
block diagram of the TIM.
This particular MCU has two timer interface modules which are denoted
as TIM1 and TIM2.
11.2 Features
Features of the TIM include:
Data Sheet
181
NOTE:
T[1,2]CH0
T[1,2]CH1
TIM1
PTB4/T1CH0
PTB5/T1CH1
TIM2
PTB6/T2CH0
PTB7/T2CH1
Data Sheet
182
MOTOROLA
PRESCALER SELECT
INTERNAL
BUS CLOCK
PRESCALER
TSTOP
PS2
TRST
PS1
PS0
16-BIT COUNTER
TOF
TOIE
INTERRUPT
LOGIC
TMODH:TMODL
TOV0
ELS0B
CHANNEL 0
ELS0A
CH0MAX
16-BIT COMPARATOR
TCH0H:TCH0L
PORT
LOGIC
T[1,2]CH0
CH0F
INTERRUPT
LOGIC
16-BIT LATCH
MS0A
CH0IE
MS0B
TOV1
INTERNAL BUS
16-BIT COMPARATOR
ELS1B
CHANNEL 1
ELS1A
CH1MAX
PORT
LOGIC
T[1,2]CH1
16-BIT COMPARATOR
TCH1H:TCH1L
CH1F
INTERRUPT
LOGIC
16-BIT LATCH
MS1A
CH1IE
NOTE:
Data Sheet
183
Addr.
Register Name
Bit 7
Read:
Timer 1 Status and Control
$0020
Register Write:
(T1SC)
Reset:
TOF
Read:
Timer 1 Counter
Register High Write:
(T1CNTH)
Reset:
Bit 15
14
13
Read:
Timer 1 Counter
Register Low Write:
(T1CNTL)
Reset:
Bit 7
$0021
$0022
$0023
$0024
Read:
Timer 1 Counter Modulo
Register High Write:
(T1MODH)
Reset:
Read:
Timer 1 Counter Modulo
Register Low Write:
(T1MODL)
Reset:
Read:
Timer 1 Channel 0 Status
$0025
and Control Register Write:
(T1SC0)
Reset:
$0026
$0027
Read:
Timer 1 Channel 0
Register High Write:
(T1CH0H)
Reset:
Read:
Timer 1 Channel 0
Register Low Write:
(T1CH0L)
Reset:
Read:
Timer 1 Channel 1 Status
$0028
and Control Register Write:
(T1SC1)
Reset:
TOIE
TSTOP
Bit 0
PS2
PS1
PS0
12
11
10
Bit 8
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Bit 7
Bit 0
CH0IE
MS0B
MS0A
ELS0B
ELS0A
TOV0
CH0MAX
Bit 15
14
13
12
11
10
Bit 8
Bit 0
TRST
CH0F
0
0
CH1IE
MS1A
ELS1B
ELS1A
TOV1
CH1MAX
0
0
= Unimplemented
Data Sheet
184
MOTOROLA
Addr.
Register Name
Read:
Timer 1 Channel 1
Register High Write:
(T1CH1H)
Reset:
$0029
Read:
Timer 1 Channel 1
Register Low Write:
(T1CH1L)
Reset:
$002A
Bit 7
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Bit 0
PS2
PS1
PS0
Read:
Timer 2 Status and Control
$002B
Register Write:
(T2SC)
Reset:
TOF
Read:
Timer 2 Counter
Register High Write:
(T2CNTH)
Reset:
Bit 15
14
13
12
11
10
Bit 8
Read:
Timer 2 Counter
Register Low Write:
(T2CNTL)
Reset:
Bit 7
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Bit 7
Bit 0
CH0IE
MS0B
MS0A
ELS0B
ELS0A
TOV0
CH0MAX
Bit 15
14
13
12
11
10
Bit 8
$002C
$002D
$002E
$002F
Read:
Timer 2 Counter Modulo
Register High Write:
(T2MODH)
Reset:
Read:
Timer 2 Counter Modulo
Register Low Write:
(T2MODL)
Reset:
Read:
Timer 2 Channel 0 Status
$0030
and Control Register Write:
(T2SC0)
Reset:
$0031
Read:
Timer 2 Channel 0
Register High Write:
(T2CH0H)
Reset:
0
TOIE
TSTOP
TRST
CH0F
0
Data Sheet
185
Addr.
Register Name
$0032
Read:
Timer 2 Channel 0
Register Low Write:
(T2CH0L)
Reset:
Read:
Timer 2 Channel 1 Status
$0033
and Control Register Write:
(T2SC1)
Reset:
$0034
$0035
Read:
Timer 2 Channel 1
Register High Write:
(T2CH1H)
Reset:
Read:
Timer 2 Channel 1
Register Low Write:
(T2CH1L)
Reset:
Bit 7
Bit 0
Bit 7
Bit 0
0
CH1IE
MS1A
ELS1B
ELS1A
TOV1
CH1MAX
0
0
Bit 15
14
13
12
11
10
Bit 8
Bit 0
Data Sheet
186
MOTOROLA
Data Sheet
187
NOTE:
Data Sheet
188
MOTOROLA
The value in the TIM counter modulo registers and the selected
prescaler output determines the frequency of the PWM output. The
frequency of an 8-bit PWM signal is variable in 256 increments. Writing
$00FF (255) to the TIM counter modulo registers produces a PWM
period of 256 times the internal bus clock period if the prescaler select
value is $000. See 11.9.1 TIM Status and Control Register.
OVERFLOW
OVERFLOW
OVERFLOW
PERIOD
PULSE
WIDTH
TCHx
OUTPUT
COMPARE
OUTPUT
COMPARE
OUTPUT
COMPARE
Data Sheet
189
NOTE:
Data Sheet
190
MOTOROLA
NOTE:
In buffered PWM signal generation, do not write new pulse width values
to the currently active channel registers. User software should track the
currently active channel to prevent writing a new value to the active
channel. Writing to the active channel registers is the same as
generating unbuffered PWM signals.
NOTE:
Data Sheet
191
11.5 Interrupts
The following TIM sources can generate interrupt requests:
TIM overflow flag (TOF) The TOF bit is set when the TIM
counter reaches the modulo value programmed in the TIM counter
modulo registers. The TIM overflow interrupt enable bit, TOIE,
enables TIM overflow CPU interrupt requests. TOF and TOIE are
in the TIM status and control register.
Data Sheet
192
MOTOROLA
If TIM functions are not required during wait mode, reduce power
consumption by stopping the TIM before executing the WAIT instruction.
Data Sheet
193
Data Sheet
194
MOTOROLA
TOIE
TSTOP
TOF
Write:
Reset:
Bit 0
PS2
PS1
PS0
TRST
0
= Unimplemented
Data Sheet
195
NOTE:
Do not set the TSTOP bit before entering wait mode if the TIM is required
to exit wait mode.
TRST TIM Reset Bit
Setting this write-only bit resets the TIM counter and the TIM
prescaler. Setting TRST has no effect on any other registers.
Counting resumes from $0000. TRST is cleared automatically after
the TIM counter is reset and always reads as logic 0. Reset clears the
TRST bit.
1 = Prescaler and TIM counter cleared
0 = No effect
NOTE:
Setting the TSTOP and TRST bits simultaneously stops the TIM counter
at a value of $0000.
PS[2:0] Prescaler Select Bits
These read/write bits select one of the seven prescaler outputs as the
input to the TIM counter as Table 11-2 shows. Reset clears the
PS[2:0] bits.
Table 11-2. Prescaler Selection
Data Sheet
PS2
PS1
PS0
Not available
196
MOTOROLA
NOTE:
Read:
Bit 7
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Write:
Reset:
= Unimplemented
Read:
Bit 7
Bit 0
Bit 7
Bit 0
Write:
Reset:
= Unimplemented
Data Sheet
197
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Read:
Write:
Reset:
Bit 0
Bit 7
Bit 0
Read:
Write:
Reset:
NOTE:
Data Sheet
Reset the TIM counter before writing to the TIM counter modulo registers.
198
MOTOROLA
Selects rising edge, falling edge, or any edge as the active input
capture trigger
CH0F
Write:
Reset:
Bit 0
CH0IE
MS0B
MS0A
ELS0B
ELS0A
TOV0
CH0MAX
CH1F
Reset:
Bit 0
MS1A
ELS1B
ELS1A
TOV1
CH1MAX
0
CH1IE
Write:
Data Sheet
199
When TIM CPU interrupt requests are enabled (CHxIE = 1), clear
CHxF by reading TIM channel x status and control register with CHxF
set and then writing a logic 0 to CHxF. If another interrupt request
occurs before the clearing sequence is complete, then writing logic 0
to CHxF has no effect. Therefore, an interrupt request cannot be lost
due to inadvertent clearing of CHxF.
Reset clears the CHxF bit. Writing a logic 1 to CHxF has no effect.
1 = Input capture or output compare on channel x
0 = No input capture or output compare on channel x
CHxIE Channel x Interrupt Enable Bit
This read/write bit enables TIM CPU interrupt service requests on
channel x.
Reset clears the CHxIE bit.
1 = Channel x CPU interrupt requests enabled
0 = Channel x CPU interrupt requests disabled
MSxB Mode Select Bit B
This read/write bit selects buffered output compare/PWM operation.
MSxB exists only in the TIM1 channel 0 and TIM2 channel 0 status
and control registers.
Setting MS0B disables the channel 1 status and control register and
reverts TCH1 to general-purpose I/O.
Reset clears the MSxB bit.
1 = Buffered output compare/PWM operation enabled
0 = Buffered output compare/PWM operation disabled
MSxA Mode Select Bit A
When ELSxB:ELSxA 0:0, this read/write bit selects either input
capture operation or unbuffered output compare/PWM operation.
See Table 11-3.
1 = Unbuffered output compare/PWM operation
0 = Input capture operation
Data Sheet
200
MOTOROLA
When ELSxB:ELSxA = 0:0, this read/write bit selects the initial output
level of the TCHx pin. See Table 11-3. Reset clears the MSxA bit.
1 = Initial output level low
0 = Initial output level high
NOTE:
ELSxB:ELSxA
X0
00
Mode
Configuration
Pin under port control;
initial output level high
Output preset
X1
00
00
01
00
10
00
11
01
01
01
10
01
11
1X
01
1X
10
1X
11
Input capture
Output
compare or
PWM
Buffered
output
compare or
buffered PWM
Data Sheet
201
Before enabling a TIM channel register for input capture operation, make
sure that the TCHx pin is stable for at least two bus clocks.
TOVx Toggle On Overflow Bit
NOTE:
OVERFLOW
OVERFLOW
OVERFLOW
OVERFLOW
PERIOD
TCHx
OUTPUT
COMPARE
OUTPUT
COMPARE
OUTPUT
COMPARE
OUTPUT
COMPARE
CHxMAX
202
MOTOROLA
In input capture mode (MSxB:MSxA = 0:0), reading the high byte of the
TIM channel x registers (TCHxH) inhibits input captures until the low
byte (TCHxL) is read.
In output compare mode (MSxB:MSxA 0:0), writing to the high byte of
the TIM channel x registers (TCHxH) inhibits output compares until the
low byte (TCHxL) is written.
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Read:
Write:
Reset:
Bit 0
Bit 7
Bit 0
Read:
Write:
Reset:
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Read:
Write:
Reset:
Bit 0
Bit 7
Bit 0
Read:
Write:
Reset:
Data Sheet
203
Data Sheet
204
MOTOROLA
12.1 Introduction
This section describes the timebase module (TBM). The TBM will
generate periodic interrupts at user selectable rates using a counter
clocked by the selected OSCCLK clock from the oscillator module. This
TBM version uses 18 divider stages, eight of which are user selectable.
12.2 Features
Features of the TBM module include:
Software programmable 8s, 4s, 2s, 1s, 2ms, 1ms, 0.5ms, and
0.25ms periodic interrupt using 32.768-kHz OSCCLK clock
Data Sheet
205
TBON
OSCCLK
2
8
2
16
2
32
64
2048
2
32768
2
65536
2
131072
TACK
TBR1
TBR0
TBMINT
TBR2
262144
TBIF
000
TBIE
001
010
011
100
SEL
101
110
111
Data Sheet
206
MOTOROLA
$0051
Bit 7
Read:
TBR2
TBR1
TBR0
TBIF
Bit 0
TBIE
TBON
Write:
Reset:
TACK
0
= Unimplemented
0
R
= Reserved
TBR1
TBR0
Divider
Hz
ms
262144
0.125
8000
131072
0.25
4000
65536
0.5
2000
32768
1000
64
512
~2
32
1024
~1
16
2048
~0.5
4096
~0.24
Data Sheet
207
The TACK bit is a write-only bit and always reads as 0. Writing a logic
1 to this bit clears TBIF, the timebase interrupt flag bit. Writing a logic
0 to this bit has no effect.
1 = Clear timebase interrupt flag
0 = No effect
TBIE Timebase Interrupt Enabled
This read/write bit enables the timebase interrupt when the TBIF bit
becomes set. Reset clears the TBIE bit.
1 = Timebase interrupt enabled
0 = Timebase interrupt disabled
TBON Timebase Enabled
This read/write bit enables the timebase. Timebase may be turned off
to reduce power consumption when its function is not necessary. The
counter can be initialized by clearing and then setting this bit. Reset
clears the TBON bit.
1 = Timebase enabled
0 = Timebase disabled and the counter initialized to 0s
12.5 Interrupts
The timebase module can interrupt the CPU on a regular basis with a
rate defined by TBR[2:0]. When the timebase counter chain rolls over,
the TBIF flag is set. If the TBIE bit is set, enabling the timebase interrupt,
the counter chain overflow will generate a CPU interrupt request. The
interrupt vector is defined in Table 2-1 . Vector Addresses.
Interrupts must be acknowledged by writing a logic 1 to the TACK bit.
Data Sheet
208
MOTOROLA
Data Sheet
209
Data Sheet
210
MOTOROLA
NOTE:
When the SCI is enabled, the TxD pin is an open-drain output and
requires a pullup resistor to be connected for proper SCI operation.
NOTE:
Data Sheet
211
Full-duplex operation
Data Sheet
212
MOTOROLA
SCI I/O (input/output) lines are implemented by sharing parallel I/O port
pins. The full name of an SCI input or output reflects the name of the
shared port pin. Table 13-1 shows the full names and the generic names
of the SCI I/O pins. The generic pin names appear in the text of this
section.
Table 13-1. Pin Name Conventions
NOTE:
RxD
TxD
PTB3/RxD
PTB2/TxD
When the SCI is enabled, the TxD pin is an open-drain output and
requires a pullup resistor to be connected for proper SCI operation.
Data Sheet
213
INTERNAL BUS
SCI DATA
REGISTER
ERROR
INTERRUPT
CONTROL
RECEIVER
INTERRUPT
CONTROL
DMA
INTERRUPT
CONTROL
RECEIVE
SHIFT REGISTER
RxD
TRANSMITTER
INTERRUPT
CONTROL
SCI DATA
REGISTER
TRANSMIT
SHIFT REGISTER
TxD
TXINV
SCTIE
R8
TCIE
T8
SCRIE
ILIE
DMARE
TE
SCTE
RE
DMATE
TC
RWU
SBK
SCRF
OR
ORIE
IDLE
NF
NEIE
FE
FEIE
PE
PEIE
LOOPS
LOOPS
WAKEUP
CONTROL
SCIBDSRC
FROM
CONFIG
FLAG
CONTROL
RECEIVE
CONTROL
ENSCI
ENSCI
TRANSMIT
CONTROL
BKF
RPF
WAKE
ILTY
SL
A
CGMXCLK
X
B
IT12
SL = 0 => X = A
SL = 1 => X = B
PRESCALER
BAUD
DIVIDER
16
PEN
PTY
DATA SELECTION
CONTROL
Data Sheet
214
MOTOROLA
Addr.
Register Name
Bit 7
Bit 0
ENSCI
TXINV
WAKE
ILTY
PEN
PTY
SCTIE
TCIE
SCRIE
ILIE
TE
RE
RWU
SBK
T8
DMARE
DMATE
ORIE
NEIE
FEIE
PEIE
SCTE
TC
SCRF
IDLE
OR
NF
FE
PE
BKF
RPF
Read:
$0013
LOOPS
SCI Control Register 1
Write:
(SCC1)
Reset:
0
Read:
$0014
$0015
$0016
R8
Read:
$0017
Read:
R7
R6
R5
R4
R3
R2
R1
R0
T7
T6
T5
T4
T3
T2
T1
T0
$0018
Read:
$0019
Unaffected by reset
0
SCP1
SCP0
SCR2
SCR1
SCR0
= Unimplemented
R = Reserved
U = Unaffected
Data Sheet
215
START
BIT
BIT 0
BIT 1
BIT 2
BIT 3
BIT 4
BIT 5
PARITY
BIT
BIT 6
BIT 7
BIT 0
BIT 1
BIT 2
BIT 3
BIT 4
BIT 5
STOP
BIT
NEXT
START
BIT
PARITY
BIT
BIT 6
BIT 7
BIT 8
STOP
BIT
NEXT
START
BIT
13.4.2 Transmitter
Figure 13-4 shows the structure of the SCI transmitter.
The baud rate clock source for the SCI can be selected via the
configuration bit, SCIBDSRC. Source selection values are shown in
Figure 13-4.
Data Sheet
216
MOTOROLA
SCIBDSRC
FROM
CONFIG2
SL
CGMXCLK
A
X
B
IT12
SL = 0 => X = A
SL = 1 => X = B
INTERNAL BUS
BAUD
DIVIDER
16
SCP1
11-BIT
TRANSMIT
SHIFT REGISTER
STOP
SCP0
SCR1
SCR2
START
PRESCALER
TxD
MSB
TXINV
PARITY
GENERATION
T8
DMATE
DMATE
SCTIE
SCTE
DMATE
SCTE
SCTIE
TC
TCIE
BREAK
ALL 0s
PTY
PREAMBLE
ALL 1s
PEN
SHIFT ENABLE
M
LOAD FROM SCDR
SCR0
TRANSMITTER
CONTROL LOGIC
SCTE
SBK
LOOPS
SCTIE
ENSCI
TC
TE
TCIE
Data Sheet
217
218
MOTOROLA
May set the overrun (OR), noise flag (NF), parity error (PE), or
reception in progress flag (RPF) bits
Data Sheet
219
When queueing an idle character, return the TE bit to logic 1 before the
stop bit of the current character shifts out to the TxD pin. Setting TE after
the stop bit appears on TxD causes data previously written to the SCDR
to be lost.
Toggle the TE bit for a queued idle character when the SCTE bit
becomes set and just before writing the next byte to the SCDR.
Data Sheet
220
MOTOROLA
13.4.3 Receiver
Figure 13-5 shows the structure of the SCI receiver.
Data Sheet
221
INTERNAL BUS
SCIBDSRC
FROM
CONFIG2
SCR1
SCP0
SCR0
PRESCALER
BAUD
DIVIDER
16
DATA
RECOVERY
RxD
ALL 1s
RPF
11-BIT
RECEIVE SHIFT REGISTER
8
M
WAKE
ILTY
PEN
PTY
ALL 0s
BKF
STOP
START
SCR2
MSB
SL
CGMXCLK
A
X
B
IT12
SL = 0 => X = A
SL = 1 => X = B
SCP1
SCRF
WAKEUP
LOGIC
RWU
IDLE
R8
PARITY
CHECKING
IDLE
ILIE
DMARE
ILIE
SCRF
SCRIE
DMARE
SCRIE
SCRF
SCRIE
DMARE
DMARE
OR
OR
ORIE
ORIE
NF
NF
NEIE
NEIE
FE
FE
FEIE
FEIE
PE
PE
PEIE
PEIE
Data Sheet
222
MOTOROLA
After the receiver detects a data bit change from logic 1 to logic 0
(after the majority of data bit samples at RT8, RT9, and RT10
returns a valid logic 1 and the majority of the next RT8, RT9, and
RT10 samples returns a valid logic 0)
To locate the start bit, data recovery logic does an asynchronous search
for a logic 0 preceded by three logic 1s. When the falling edge of a
possible start bit occurs, the RT clock begins to count to 16.
START BIT
LSB
RxD
START BIT
QUALIFICATION
SAMPLES
START BIT
VERIFICATION
DATA
SAMPLING
RT4
RT3
RT2
RT1
RT16
RT15
RT14
RT13
RT12
RT11
RT10
RT9
RT8
RT7
RT6
RT5
RT4
RT3
RT2
RT1
RT1
RT1
RT1
RT1
RT1
RT1
RT CLOCK
STATE
RT1
RT
CLOCK
RT1
The receiver samples the RxD pin at the RT clock rate. The RT clock is
an internal signal with a frequency 16 times the baud rate. To adjust for
baud rate mismatch, the RT clock is resynchronized at the following
times (see Figure 13-6):
RT CLOCK
RESET
Data Sheet
223
Start Bit
Verification
Noise Flag
000
Yes
001
Yes
010
Yes
011
No
100
Yes
101
No
110
No
111
No
Start bit verification is not successful if any two of the three verification
samples are logic 1s. If start bit verification is not successful, the RT
clock is reset and a new search for a start bit begins.
To determine the value of a data bit and to detect noise, recovery logic
takes samples at RT8, RT9, and RT10. Table 13-3 summarizes the
results of the data bit samples.
Table 13-3. Data Bit Recovery
Data Sheet
Data Bit
Determination
Noise Flag
000
001
010
011
100
101
110
111
224
MOTOROLA
NOTE:
The RT8, RT9, and RT10 samples do not affect start bit verification. If
any or all of the RT8, RT9, and RT10 start bit samples are logic 1s
following a successful start bit verification, the noise flag (NF) is set and
the receiver assumes that the bit is a start bit.
To verify a stop bit and to detect noise, recovery logic takes samples at
RT8, RT9, and RT10. Table 13-4 summarizes the results of the stop bit
samples.
Framing
Error Flag
Noise Flag
000
001
010
011
100
101
110
111
Data Sheet
225
RT16
RT15
RT14
RT13
RT11
RT10
RT9
RT8
RT7
RT6
STOP
RT5
RT4
RT3
RT2
RECEIVER
RT CLOCK
RT1
MSB
RT12
DATA
SAMPLES
Data Sheet
226
MOTOROLA
The maximum percent difference between the receiver count and the
transmitter count of a slow 9-bit character with no errors is
170 163
-------------------------- 100 = 4.12%
170
Fast Data Tolerance
RT16
RT15
RT14
RT13
RT12
RT10
RT9
RT8
RT7
RT6
RT5
RT4
RT3
RT2
RECEIVER
RT CLOCK
RT1
STOP
RT11
DATA
SAMPLES
154 160
-------------------------- 100 = 3.90%
154
For a 9-bit character, data sampling of the stop bit takes the receiver
10 bit times 16 RT cycles + 10 RT cycles = 170 RT cycles.
With the misaligned character shown in Figure 13-8, the receiver counts
170 RT cycles at the point when the count of the transmitting device is
11 bit times 16 RT cycles = 176 RT cycles.
MC68HC908AP Family Rev. 2.5
MOTOROLA
Data Sheet
227
So that the MCU can ignore transmissions intended only for other
receivers in multiple-receiver systems, the receiver can be put into a
standby state. Setting the receiver wakeup bit, RWU, in SCC2 puts the
receiver into a standby state during which receiver interrupts are
disabled.
Depending on the state of the WAKE bit in SCC1, either of two
conditions on the RxD pin can bring the receiver out of the standby state:
NOTE:
Data Sheet
Idle input line condition When the WAKE bit is clear, an idle
character on the RxD pin wakes the receiver from the standby
state by clearing the RWU bit. The idle character that wakes the
receiver does not set the receiver idle bit, IDLE, or the SCI receiver
full bit, SCRF. The idle line type bit, ILTY, determines whether the
receiver begins counting logic 1s as idle character bits after the
start bit or after the stop bit.
With the WAKE bit clear, setting the RWU bit after the RxD pin has been
idle may cause the receiver to wake up immediately.
228
MOTOROLA
The following sources can generate CPU interrupt requests from the SCI
receiver:
SCI receiver full (SCRF) The SCRF bit in SCS1 indicates that
the receive shift register has transferred a character to the SCDR.
SCRF can generate a receiver CPU interrupt request. Setting the
SCI receive interrupt enable bit, SCRIE, in SCC2 enables the
SCRF bit to generate receiver CPU interrupts.
Noise flag (NF) The NF bit is set when the SCI detects noise on
incoming data or break characters, including start, data, and stop
bits. The noise error interrupt enable bit, NEIE, in SCC3 enables
NF to generate SCI error CPU interrupt requests.
Parity error (PE) The PE bit in SCS1 is set when the SCI
detects a parity error in incoming data. The parity error interrupt
enable bit, PEIE, in SCC3 enables PE to generate SCI error CPU
interrupt requests.
Data Sheet
229
230
MOTOROLA
To protect status bits during the break state, write a logic 0 to the BCFE
bit. With BCFE at logic 0 (its default state), software can read and write
I/O registers during the break state without affecting status bits. Some
status bits have a 2-step read/write clearing procedure. If software does
the first step on such a bit before the break, the bit cannot change during
the break state as long as BCFE is at logic 0. After the break, doing the
second step clears the status bit.
NOTE:
NOTE:
Data Sheet
231
Data Sheet
232
MOTOROLA
Address:
$0013
Bit 7
Bit 0
LOOPS
ENSCI
TXINV
WAKE
ILTY
PEN
PTY
Read:
Write:
Reset:
This read/write bit enables loop mode operation. In loop mode the
RxD pin is disconnected from the SCI, and the transmitter output goes
into the receiver input. Both the transmitter and the receiver must be
enabled to use loop mode. Reset clears the LOOPS bit.
1 = Loop mode enabled
0 = Normal operation enabled
ENSCI Enable SCI Bit
This read/write bit enables the SCI and the SCI baud rate generator.
Clearing ENSCI sets the SCTE and TC bits in SCI status register 1
and disables transmitter interrupts. Reset clears the ENSCI bit.
1 = SCI enabled
0 = SCI disabled
TXINV Transmit Inversion Bit
This read/write bit reverses the polarity of transmitted data. Reset
clears the TXINV bit.
1 = Transmitter output inverted
0 = Transmitter output not inverted
NOTE:
Setting the TXINV bit inverts all transmitted values, including idle, break,
start, and stop bits.
Data Sheet
233
Data Sheet
234
MOTOROLA
NOTE:
Character Format
PEN:PTY
Start
Bits
Data
Bits
Parity
Stop
Bits
Character
Length
0X
None
10 bits
0X
None
11 bits
10
Even
10 bits
11
Odd
10 bits
10
Even
11 bits
11
Odd
11 bits
Data Sheet
235
Address:
$0014
Bit 7
Bit 0
SCTIE
TCIE
SCRIE
ILIE
TE
RE
RWU
SBK
Read:
Write:
Reset:
Data Sheet
236
MOTOROLA
NOTE:
Writing to the TE bit is not allowed when the enable SCI bit (ENSCI) is
clear. ENSCI is in SCI control register 1.
NOTE:
Writing to the RE bit is not allowed when the enable SCI bit (ENSCI) is
clear. ENSCI is in SCI control register 1.
RWU Receiver Wakeup Bit
This read/write bit puts the receiver in a standby state during which
receiver interrupts are disabled. The WAKE bit in SCC1 determines
whether an idle input or an address mark brings the receiver out of the
standby state and clears the RWU bit. Reset clears the RWU bit.
1 = Standby state
0 = Normal operation
SBK Send Break Bit
Setting and then clearing this read/write bit transmits a break
character followed by a logic 1. The logic 1 after the break character
guarantees recognition of a valid start bit. If SBK remains set, the
transmitter continuously transmits break characters with no logic 1s
between them. Reset clears the SBK bit.
1 = Transmit break characters
0 = No break characters being transmitted
NOTE:
Do not toggle the SBK bit immediately after setting the SCTE bit.
Toggling SBK before the preamble begins causes the SCI to send a
break character instead of a preamble.
Data Sheet
237
Stores the ninth SCI data bit received and the ninth SCI data bit to
be transmitted
Address:
$0015
Bit 7
Read:
Bit 0
T8
DMARE
DMATE
ORIE
NEIE
FEIE
PEIE
R8
Write:
Reset:
= Unimplemented
U = Unaffected
Data Sheet
238
MOTOROLA
CAUTION:
CAUTION:
Data Sheet
239
Transmission complete
Receiver overrun
Noisy data
Framing error
Parity error
Address:
Read:
$0016
Bit 7
Bit 0
SCTE
TC
SCRF
IDLE
OR
NF
FE
PE
Write:
Reset:
= Unimplemented
240
MOTOROLA
operation, clear the SCTE bit by reading SCS1 with SCTE set and
then writing to SCDR. Reset sets the SCTE bit.
1 = SCDR data transferred to transmit shift register
0 = SCDR data not transferred to transmit shift register
TC Transmission Complete Bit
This read-only bit is set when the SCTE bit is set, and no data,
preamble, or break character is being transmitted. TC generates an
SCI transmitter CPU interrupt request if the TCIE bit in SCC2 is also
set. TC is automatically cleared when data, preamble or break is
queued and ready to be sent. There may be up to 1.5 transmitter
clocks of latency between queueing data, preamble, and break and
the transmission actually starting. Reset sets the TC bit.
1 = No transmission in progress
0 = Transmission in progress
SCRF SCI Receiver Full Bit
This clearable, read-only bit is set when the data in the receive shift
register transfers to the SCI data register. SCRF can generate an SCI
receiver CPU interrupt request. When the SCRIE bit in SCC2 is set,
SCRF generates a CPU interrupt request. In normal operation, clear
the SCRF bit by reading SCS1 with SCRF set and then reading the
SCDR. Reset clears SCRF.
1 = Received data available in SCDR
0 = Data not available in SCDR
IDLE Receiver Idle Bit
This clearable, read-only bit is set when 10 or 11 consecutive logic 1s
appear on the receiver input. IDLE generates an SCI receiver CPU
interrupt request if the ILIE bit in SCC2 is also set. Clear the IDLE bit
by reading SCS1 with IDLE set and then reading the SCDR. After the
receiver is enabled, it must receive a valid character that sets the
SCRF bit before an idle condition can set the IDLE bit. Also, after the
IDLE bit has been cleared, a valid character must again set the SCRF
bit before an idle condition can set the IDLE bit. Reset clears the IDLE
bit.
1 = Receiver input idle
0 = Receiver input active (or idle since the IDLE bit was cleared)
Data Sheet
241
Data Sheet
242
MOTOROLA
BYTE 1
BYTE 2
BYTE 3
SCRF = 0
SCRF = 1
SCRF = 0
SCRF = 1
SCRF = 0
SCRF = 1
BYTE 4
READ SCS1
SCRF = 1
OR = 0
READ SCS1
SCRF = 1
OR = 0
READ SCS1
SCRF = 1
OR = 0
READ SCDR
BYTE 1
READ SCDR
BYTE 2
READ SCDR
BYTE 3
BYTE 1
BYTE 2
BYTE 3
SCRF = 0
OR = 0
SCRF = 1
OR = 1
SCRF = 0
OR = 1
SCRF = 1
SCRF = 1
OR = 1
BYTE 4
READ SCS1
SCRF = 1
OR = 0
READ SCS1
SCRF = 1
OR = 1
READ SCDR
BYTE 1
READ SCDR
BYTE 3
Data Sheet
243
Incoming data
Address:
$0017
Bit 7
Read:
Bit 0
BKF
RPF
Write:
Reset:
= Unimplemented
244
MOTOROLA
Address:
$0018
Bit 7
Bit 0
Read:
R7
R6
R5
R4
R3
R2
R1
R0
Write:
T7
T6
T5
T4
T3
T2
T1
T0
Reset:
Unaffected by reset
NOTE:
Data Sheet
245
Read:
$0019
Bit 7
Bit 0
SCP1
SCP0
SCR2
SCR1
SCR0
= Reserved
Write:
Reset:
= Unimplemented
00
01
10
11
13
Data Sheet
246
MOTOROLA
000
001
010
011
100
16
101
32
110
64
111
128
Data Sheet
247
Prescaler
Divisor (PD)
SCR2, SCR1,
and SCR0
Baud Rate
Divisor (BD)
Baud Rate
(fBUS = 4.9152 MHz)
00
000
76,800
00
001
38,400
00
010
19,200
00
011
9600
00
100
16
4800
00
101
32
2400
00
110
64
1200
00
111
128
600
01
000
25,600
01
001
12,800
01
010
6400
01
011
3200
01
100
16
1600
01
101
32
800
01
110
64
400
01
111
128
200
10
000
19,200
10
001
9600
10
010
4800
10
011
2400
10
100
16
1200
10
101
32
600
10
110
64
300
10
111
128
150
11
13
000
5908
11
13
001
2954
11
13
010
1477
11
13
011
739
11
13
100
16
369
11
13
101
32
185
11
13
110
64
92
11
13
111
128
46
Data Sheet
248
MOTOROLA
NOTE:
When the IRSCI is enabled, the SCTxD pin is an open-drain output and
requires a pullup resistor to be connected for proper SCI operation.
NOTE:
Data Sheet
249
Data Sheet
250
MOTOROLA
Addr.
Register Name
Bit 7
Read:
LOOPS
IRSCI Control Register 1
$0040
Write:
(IRSCC1)
Reset:
0
Read:
IRSCI Control Register 2
$0041
Write:
(IRSCC2)
Reset:
Read:
IRSCI Control Register 3
$0042
Write:
(IRSCC3)
Reset:
$0043
$0044
$0045
Read:
IRSCI Status Register 1
Write:
(IRSCS1)
Reset:
Read:
IRSCI Status Register 2
Write:
(IRSCS2)
Reset:
Read:
IRSCI Data Register
Write:
(IRSCDR)
Reset:
Read:
IRSCI Baud Rate Register
$0046
Write:
(IRSCBR)
Reset:
$0047
Read:
IRSCI Infrared Control
Register Write:
(IRSCIRCR)
Reset:
Bit 0
WAKE
ILTY
PEN
PTY
0
ENSCI
0
SCTIE
TCIE
SCRIE
ILIE
TE
RE
RWU
SBK
T8
DMARE
DMATE
ORIE
NEIE
FEIE
PEIE
SCTE
TC
SCRF
IDLE
OR
NF
FE
PE
BKF
RPF
R8
R7
R6
R5
R4
R3
R2
R1
R0
T7
T6
T5
T4
T3
T2
T1
T0
Unaffected by reset
0
CKS
0
SCP1
SCP0
SCR2
SCR1
SCR0
0
R
TNP1
TNP0
IREN
R
0
= Unimplemented
0
R = Reserved
U = Unaffected
Data Sheet
251
NOTE:
RxD
TxD
PTC7/SCRxD
PTC6/SCTxD
When the IRSCI is enabled, the SCTxD pin is an open-drain output and
requires a pullup resistor to be connected for proper SCI operation.\
SCI_TxD
CGMXCLK
BUS CLOCK
SERIAL
COMMUNICATIONS
INTERFACE MODULE
(SCI)
SCTxD
SCI_R32XCLK
SCI_R16XCLK
INFRARED
SUB-MODULE
SCI_RxD
SCRxD
252
MOTOROLA
The infrared sub-module receives two clock sources from the SCI
module: SCI_R16XCLK and SCI_R32XCLK. Both reference clocks are
used to generate the narrow pulses during data transmission.
The SCI_R16XCLK and SCI_R32XCLK are internal clocks with
frequencies that are 16 and 32 times the baud rate respectively. Both
SCI_R16XCLK and SCI_R32XCLK clocks are used for transmitting
data. The SCI_R16XCLK clock is used only for receiving data.
NOTE:
For proper SCI function (transmit or receive), the bus clock MUST be
programmed to at least 32 times that of the selected baud rate.
When the infrared sub-module is disabled, signals on the TxD and RxD
pins pass through unchanged to the SCI module.
TRANSMIT
ENCODER
SCI_TxD
IREN
IR_TxD
MUX
SCTxD
SCI_R32XCLK
SCI_R16XCLK
IR_RxD
SCI_RxD
RECEIVE
DECODER
SCRxD
MUX
Data Sheet
253
The sub-module consists of two main blocks: the transmit encoder and
the receive decoder. When transmitting data, the SCI data stream is
encoded by the infrared sub-module. For every "0" bit, a narrow "low"
pulse is transmitted; no pulse is transmitted for "1" bits. When receiving
data, the infrared pulses should be detected using an infrared photo
diode for conversion to CMOS voltage levels before connecting to the
RxD pin for the infrared decoder. The SCI data stream is reconstructed
by stretching the "0" pulses.
14.5.1 Infrared Transmit Encoder
The infrared transmit encoder converts the "0" bits in the serial data
stream from the SCI module to narrow "low" pulses, to the TxD pin. The
narrow pulse is sent with a duration of 1/32, 1/16, or 3/16 of a data bit
width. When two consecutive zeros are sent, the two consecutive narrow
pulses will be separated by a time equal to a data bit width.
DATA BIT WIDTH DETERMINED BY BAUD RATE
SCI DATA
INFRARED
SCI DATA
254
MOTOROLA
SCI DATA
REGISTER
ERROR
INTERRUPT
CONTROL
RECEIVER
INTERRUPT
CONTROL
DMA
INTERRUPT
CONTROL
RECEIVE
SHIFT REGISTER
SCI_RxD
TRANSMITTER
INTERRUPT
CONTROL
SCI DATA
REGISTER
SCTIE
TRANSMIT
SHIFT REGISTER
SCI_TxD
R8
TCIE
T8
SCRIE
ILIE
DMARE
TE
SCTE
RE
DMATE
TC
RWU
SBK
SCRF
OR
ORIE
IDLE
NF
NEIE
FE
FEIE
PE
PEIE
LOOPS
LOOPS
FLAG
CONTROL
RECEIVE
CONTROL
WAKEUP
CONTROL
CKS
ENSCI
ENSCI
TRANSMIT
CONTROL
BKF
RPF
WAKE
ILTY
A SL
X
B
CGMXCLK
BUS CLOCK
BAUD RATE
GENERATOR
PEN
PTY
SL = 0 => X = A
SL = 1 => X = B
16
SCI_R32XCLK
DATA SELECTION
CONTROL
SCI_R16XCLK
Data Sheet
255
NOTE:
NOTE:
This SCI module is a standard HC08 SCI module with the following
modifications:
A control bit, CKS, is added to the SCI baud rate control register
to select between two input clocks for baud rate clock generation
BIT 0
BIT 1
BIT 2
BIT 3
BIT 4
BIT 5
PARITY
BIT
BIT 6
BIT 7
BIT 0
BIT 1
BIT 2
BIT 3
BIT 4
BIT 5
STOP
BIT
NEXT
START
BIT
PARITY
BIT
BIT 6
BIT 7
BIT 8
STOP
BIT
NEXT
START
BIT
Data Sheet
256
MOTOROLA
14.6.2 Transmitter
Figure 14-7 shows the structure of the SCI transmitter.
The baud rate clock source for the SCI can be selected by the CKS bit,
in the SCI baud rate register (see 14.10.7 IRSCI Baud Rate Register).
SL = 0 => X = A
SL = 1 => X = B
PRESCALER
BAUD
DIVIDER
16
SCP1
SCP0
11-BIT
TRANSMIT
SHIFT REGISTER
SCR1
SCR2
START
A SL
X
B
STOP
CGMXCLK
BUS CLOCK
INTERNAL BUS
SCI_TxD
PARITY
GENERATION
T8
DMATE
DMATE
SCTIE
SCTE
DMATE
SCTE
SCTIE
TC
TCIE
BREAK
ALL 0s
PTY
PREAMBLE
ALL 1s
PEN
SHIFT ENABLE
MSB
SCR0
TRANSMITTER CPU INTERRUPT REQUEST
CKS
TRANSMITTER
CONTROL LOGIC
SCTE
SBK
LOOPS
SCTIE
ENSCI
TC
TE
TCIE
Data Sheet
257
258
MOTOROLA
May set the overrun (OR), noise flag (NF), parity error (PE), or
reception in progress flag (RPF) bits
Data Sheet
259
When queueing an idle character, return the TE bit to logic 1 before the
stop bit of the current character shifts out to the TxD pin. Setting TE after
the stop bit appears on TxD causes data previously written to the
IRSCDR to be lost.
Toggle the TE bit for a queued idle character when the SCTE bit
becomes set and just before writing the next byte to the IRSCDR.
14.6.3 Receiver
Figure 14-8 shows the structure of the SCI receiver.
Data Sheet
260
MOTOROLA
INTERNAL BUS
SCR1
SCR0
PRESCALER
SL = 0 => X = A
SL = 1 => X = B
16
DATA
RECOVERY
SCI_RxD
BKF
BAUD
DIVIDER
11-BIT
RECEIVE SHIFT REGISTER
8
M
WAKE
ILTY
PEN
PTY
ALL 0s
RPF
ERROR CPU INTERRUPT REQUEST
DMA SERVICE REQUEST
START
SCP0
STOP
A SL
X
B
SCR2
ALL 1s
CGMXCLK
BUS CLOCK
SCP1
MSB
CKS
SCRF
WAKEUP
LOGIC
PARITY
CHECKING
IDLE
ILIE
DMARE
SCRF
SCRIE
DMARE
SCRF
SCRIE
DMARE
OR
ORIE
NF
NEIE
FE
FEIE
PE
PEIE
RWU
IDLE
R8
ILIE
SCRIE
DMARE
OR
ORIE
NF
NEIE
FE
FEIE
PE
PEIE
Data Sheet
261
After a complete character shifts into the receive shift register, the data
portion of the character transfers to the IRSCDR. The SCI receiver full
bit, SCRF, in IRSCI status register 1 (IRSCS1) becomes set, indicating
that the received byte can be read. If the SCI receive interrupt enable bit,
SCRIE, in IRSCC2 is also set, the SCRF bit generates a receiver CPU
interrupt request.
After the receiver detects a data bit change from logic 1 to logic 0
(after the majority of data bit samples at RT8, RT9, and RT10
returns a valid logic 1 and the majority of the next RT8, RT9, and
RT10 samples returns a valid logic 0)
START BIT
LSB
SCI_RxD
START BIT
QUALIFICATION
SAMPLES
START BIT
VERIFICATION
DATA
SAMPLING
RT4
RT3
RT2
RT1
RT16
RT15
RT14
RT13
RT12
RT11
RT10
RT9
RT8
RT7
RT6
RT5
RT4
RT3
RT2
RT1
RT1
RT1
RT1
RT1
RT1
RT1
RT CLOCK
STATE
RT1
RT
CLOCK
RT1
RT CLOCK
RESET
262
MOTOROLA
To locate the start bit, data recovery logic does an asynchronous search
for a logic 0 preceded by three logic 1s. When the falling edge of a
possible start bit occurs, the RT clock begins to count to 16.
To verify the start bit and to detect noise, data recovery logic takes
samples at RT3, RT5, and RT7. Table 14-2 summarizes the results of
the start bit verification samples.
Start Bit
Verification
Noise Flag
000
Yes
001
Yes
010
Yes
011
No
100
Yes
101
No
110
No
111
No
If start bit verification is not successful, the RT clock is reset and a new
search for a start bit begins.
To determine the value of a data bit and to detect noise, recovery logic
takes samples at RT8, RT9, and RT10. Table 14-3 summarizes the
results of the data bit samples.
Table 14-3. Data Bit Recovery
RT8, RT9, and RT10
Samples
Data Bit
Determination
Noise Flag
000
001
010
011
100
101
110
111
Data Sheet
263
The RT8, RT9, and RT10 samples do not affect start bit verification. If
any or all of the RT8, RT9, and RT10 start bit samples are logic 1s
following a successful start bit verification, the noise flag (NF) is set and
the receiver assumes that the bit is a start bit.
To verify a stop bit and to detect noise, recovery logic takes samples at
RT8, RT9, and RT10. Table 14-4 summarizes the results of the stop bit
samples.
Framing
Error Flag
Noise Flag
000
001
010
011
100
101
110
111
264
MOTOROLA
RT16
RT15
RT14
RT13
RT11
RT10
RT9
RT8
RT7
RT6
STOP
RT5
RT4
RT3
RT2
RECEIVER
RT CLOCK
RT1
MSB
RT12
DATA
SAMPLES
Data Sheet
265
RT16
RT15
RT14
RT13
RT12
RT10
RT9
RT8
RT7
RT6
RT5
RT4
RT3
RT2
RECEIVER
RT CLOCK
RT1
STOP
RT11
DATA
SAMPLES
154 160
-------------------------- 100 = 3.90%
154
For a 9-bit character, data sampling of the stop bit takes the receiver
10 bit times 16 RT cycles + 10 RT cycles = 170 RT cycles.
With the misaligned character shown in Figure 14-11, the receiver
counts 170 RT cycles at the point when the count of the transmitting
device is 11 bit times 16 RT cycles = 176 RT cycles.
Data Sheet
266
MOTOROLA
The maximum percent difference between the receiver count and the
transmitter count of a fast 9-bit character with no errors is
170 176
-------------------------- 100 = 3.53%
170
So that the MCU can ignore transmissions intended only for other
receivers in multiple-receiver systems, the receiver can be put into a
standby state. Setting the receiver wakeup bit, RWU, in IRSCC2 puts the
receiver into a standby state during which receiver interrupts are
disabled.
Depending on the state of the WAKE bit in IRSCC1, either of two
conditions on the RxD pin can bring the receiver out of the standby state:
NOTE:
Idle input line condition When the WAKE bit is clear, an idle
character on the RxD pin wakes the receiver from the standby
state by clearing the RWU bit. The idle character that wakes the
receiver does not set the receiver idle bit, IDLE, or the SCI receiver
full bit, SCRF. The idle line type bit, ILTY, determines whether the
receiver begins counting logic 1s as idle character bits after the
start bit or after the stop bit.
Clearing the WAKE bit after the RxD pin has been idle may cause the
receiver to wake up immediately.
Data Sheet
267
The following sources can generate CPU interrupt requests from the SCI
receiver:
SCI receiver full (SCRF) The SCRF bit in IRSCS1 indicates that
the receive shift register has transferred a character to the
IRSCDR. SCRF can generate a receiver interrupt request. Setting
the SCI receive interrupt enable bit, SCRIE, in IRSCC2 enables
the SCRF bit to generate receiver CPU interrupts.
Data Sheet
Noise flag (NF) The NF bit is set when the SCI detects noise on
incoming data or break characters, including start, data, and stop
bits. The noise error interrupt enable bit, NEIE, in IRSCC3 enables
NF to generate SCI error CPU interrupt requests.
Parity error (PE) The PE bit in IRSCS1 is set when the SCI
detects a parity error in incoming data. The parity error interrupt
enable bit, PEIE, in IRSCC3 enables PE to generate SCI error
CPU interrupt requests.
MC68HC908AP Family Rev. 2.5
268
MOTOROLA
Data Sheet
269
To protect status bits during the break state, write a logic 0 to the BCFE
bit. With BCFE at logic 0 (its default state), software can read and write
I/O registers during the break state without affecting status bits. Some
status bits have a two-step read/write clearing procedure. If software
does the first step on such a bit before the break, the bit cannot change
during the break state as long as BCFE is at logic 0. After the break,
doing the second step clears the status bit.
NOTE:
NOTE:
Data Sheet
270
MOTOROLA
Table 14-5 shows a summary of I/O pin functions when the SCI is
enabled.
IRSCIRCR
[IREN]
IRSCC2
[TE]
IRSCC2
[RE]
Hi-Z(1)
Hi-Z(1)
Hi-Z(1)
Hi-Z(1)
TxD Pin
RxD Pin
Notes:
1. After completion of transmission in progress.
Data Sheet
271
Address:
$0040
Bit 7
LOOPS
ENSCI
Read:
Bit 0
WAKE
ILTY
PEN
PTY
Write:
Reset:
272
MOTOROLA
Data Sheet
273
NOTE:
Character Format
PEN:PTY
Start
Bits
Data
Bits
Parity
Stop
Bits
Character
Length
0X
None
10 bits
0X
None
11 bits
10
Even
10 bits
11
Odd
10 bits
10
Even
11 bits
11
Odd
11 bits
Data Sheet
274
MOTOROLA
Address:
$0041
Bit 7
Bit 0
SCTIE
TCIE
SCRIE
ILIE
TE
RE
RWU
SBK
Read:
Write:
Reset:
Data Sheet
275
NOTE:
Writing to the TE bit is not allowed when the enable SCI bit (ENSCI) is
clear. ENSCI is in SCI control register 1.
NOTE:
Writing to the RE bit is not allowed when the enable SCI bit (ENSCI) is
clear. ENSCI is in SCI control register 1.
RWU Receiver Wakeup Bit
This read/write bit puts the receiver in a standby state during which
receiver interrupts are disabled. The WAKE bit in IRSCC1 determines
whether an idle input or an address mark brings the receiver out of the
standby state and clears the RWU bit. Reset clears the RWU bit.
1 = Standby state
0 = Normal operation
SBK Send Break Bit
Setting and then clearing this read/write bit transmits a break
character followed by a logic 1. The logic 1 after the break character
guarantees recognition of a valid start bit. If SBK remains set, the
transmitter continuously transmits break characters with no logic 1s
between them. Reset clears the SBK bit.
1 = Transmit break characters
0 = No break characters being transmitted
NOTE:
Data Sheet
Do not toggle the SBK bit immediately after setting the SCTE bit.
Toggling SBK before the preamble begins causes the SCI to send a
break character instead of a preamble.
276
MOTOROLA
Stores the ninth SCI data bit received and the ninth SCI data bit to
be transmitted
$0042
Bit 7
Read:
Bit 0
T8
DMARE
DMATE
ORIE
NEIE
FEIE
PEIE
R8
Write:
Reset:
= Unimplemented
U = Unaffected
Data Sheet
277
CAUTION:
CAUTION:
Data Sheet
278
MOTOROLA
Transmission complete
Receiver overrun
Noisy data
Framing error
Parity error
Address:
Read:
$0043
Bit 7
Bit 0
SCTE
TC
SCRF
IDLE
OR
NF
FE
PE
Write:
Reset:
= Unimplemented
Data Sheet
279
This read-only bit is set when the SCTE bit is set, and no data,
preamble, or break character is being transmitted. TC generates an
SCI transmitter CPU interrupt request if the TCIE bit in IRSCC2 is also
set. TC is automatically cleared when data, preamble or break is
queued and ready to be sent. There may be up to 1.5 transmitter
clocks of latency between queueing data, preamble, and break and
the transmission actually starting. Reset sets the TC bit.
1 = No transmission in progress
0 = Transmission in progress
SCRF SCI Receiver Full Bit
This clearable, read-only bit is set when the data in the receive shift
register transfers to the SCI data register. SCRF can generate an SCI
receiver CPU interrupt request. When the SCRIE bit in IRSCC2 is set,
SCRF generates a CPU interrupt request. In normal operation, clear
the SCRF bit by reading IRSCS1 with SCRF set and then reading the
IRSCDR. Reset clears SCRF.
1 = Received data available in IRSCDR
0 = Data not available in IRSCDR
IDLE Receiver Idle Bit
This clearable, read-only bit is set when 10 or 11 consecutive logic 1s
appear on the receiver input. IDLE generates an SCI receiver CPU
interrupt request if the ILIE bit in IRSCC2 is also set. Clear the IDLE
bit by reading IRSCS1 with IDLE set and then reading the IRSCDR.
After the receiver is enabled, it must receive a valid character that sets
the SCRF bit before an idle condition can set the IDLE bit. Also, after
the IDLE bit has been cleared, a valid character must again set the
SCRF bit before an idle condition can set the IDLE bit. Reset clears
the IDLE bit.
1 = Receiver input idle
0 = Receiver input active (or idle since the IDLE bit was cleared)
Data Sheet
280
MOTOROLA
This clearable, read-only bit is set when software fails to read the
IRSCDR before the receive shift register receives the next character.
The OR bit generates an SCI error CPU interrupt request if the ORIE
bit in IRSCC3 is also set. The data in the shift register is lost, but the
data already in the IRSCDR is not affected. Clear the OR bit by
reading IRSCS1 with OR set and then reading the IRSCDR. Reset
clears the OR bit.
1 = Receive shift register full and SCRF = 1
0 = No receiver overrun
Software latency may allow an overrun to occur between reads of
IRSCS1 and IRSCDR in the flag-clearing sequence. Figure 14-16
shows the normal flag-clearing sequence and an example of an
overrun caused by a delayed flag-clearing sequence. The delayed
read of IRSCDR does not clear the OR bit because OR was not set
when IRSCS1 was read. Byte 2 caused the overrun and is lost. The
next flag-clearing sequence reads byte 3 in the IRSCDR instead of
byte 2.
In applications that are subject to software latency or in which it is
important to know which byte is lost due to an overrun, the flagclearing routine can check the OR bit in a second read of IRSCS1
after reading the data register.
NF Receiver Noise Flag Bit
This clearable, read-only bit is set when the SCI detects noise on the
RxD pin. NF generates an SCI error CPU interrupt request if the NEIE
bit in IRSCC3 is also set. Clear the NF bit by reading IRSCS1 and
then reading the IRSCDR. Reset clears the NF bit.
1 = Noise detected
0 = No noise detected
FE Receiver Framing Error Bit
This clearable, read-only bit is set when a logic 0 is accepted as the
stop bit. FE generates an SCI error CPU interrupt request if the FEIE
bit in IRSCC3 also is set. Clear the FE bit by reading IRSCS1 with FE
set and then reading the IRSCDR. Reset clears the FE bit.
1 = Framing error detected
0 = No framing error detected
MC68HC908AP Family Rev. 2.5
MOTOROLA
Data Sheet
281
BYTE 1
BYTE 2
BYTE 3
SCRF = 0
SCRF = 1
SCRF = 0
SCRF = 1
SCRF = 0
SCRF = 1
BYTE 4
READ IRSCS1
SCRF = 1
OR = 0
READ IRSCS1
SCRF = 1
OR = 0
READ IRSCS1
SCRF = 1
OR = 0
READ IRSCDR
BYTE 1
READ IRSCDR
BYTE 2
READ IRSCDR
BYTE 3
BYTE 1
BYTE 2
BYTE 3
SCRF = 0
OR = 0
SCRF = 1
OR = 1
SCRF = 0
OR = 1
SCRF = 1
SCRF = 1
OR = 1
BYTE 4
READ IRSCS1
SCRF = 1
OR = 0
READ IRSCS1
SCRF = 1
OR = 1
READ IRSCDR
BYTE 1
READ IRSCDR
BYTE 3
Data Sheet
282
MOTOROLA
Incoming data
Address:
$0044
Bit 7
Read:
Bit 0
BKF
RPF
Write:
Reset:
= Unimplemented
Data Sheet
283
Address:
$0045
Bit 7
Bit 0
Read:
R7
R6
R5
R4
R3
R2
R1
R0
Write:
T7
T6
T5
T4
T3
T2
T1
T0
Reset:
Unaffected by reset
NOTE:
Data Sheet
284
MOTOROLA
$0046
Bit 7
Read:
Bit 0
SCP1
SCP0
SCR2
SCR1
SCR0
= Reserved
0
CKS
Write:
Reset:
= Unimplemented
00
01
10
11
13
Data Sheet
285
000
001
010
011
100
16
101
32
110
64
111
128
Data Sheet
286
MOTOROLA
Prescaler
Divisor (PD)
SCR2, SCR1,
and SCR0
Baud Rate
Divisor (BD)
Baud Rate
(fBUS = 4.9152 MHz)
00
000
00
001
00
010
76800
00
011
38400
00
100
16
19200
00
101
32
9600
00
110
64
4800
00
111
128
2400
01
000
01
001
51200
01
010
25600
01
011
12800
01
100
16
6400
01
101
32
3200
01
110
64
1600
01
111
128
800
10
000
76800
10
001
38400
10
010
19200
10
011
9600
10
100
16
4800
10
101
32
2400
10
110
64
1200
10
111
128
600
11
13
000
23632
11
13
001
11816
11
13
010
5908
11
13
011
2954
11
13
100
16
1477
11
13
101
32
739
11
13
110
64
369
11
13
111
128
185
Data Sheet
287
Address:
$0047
Bit 7
Read:
Bit 0
TNP1
TNP0
IREN
= Reserved
Write:
Reset:
= Unimplemented
00
01
10
SCI transmits a 1/32 narrow pulse
11
Data Sheet
288
MOTOROLA
15.1 Introduction
This section describes the serial peripheral interface (SPI) module,
which allows full-duplex, synchronous, serial communications with
peripheral devices.
15.2 Features
Features of the SPI module include the following:
Full-duplex operation
Data Sheet
289
The full names of the SPI I/O pins are shown in Table 15-1. The generic
pin names appear in the text that follows.
Table 15-1. Pin Name Conventions
SPI Generic
Pin Names:
MISO
MOSI
SS
Full SPI
SPI PTC2/MISO PTC3/MOSI PTC4/SS
Pin Names:
SPSCK
CGND
PTC5/SPSCK
VSS
Addr.
Register Name
$0010
Read:
SPI Control Register
Write:
(SPCR)
Reset:
$0011
Read:
SPI Status and Control
Register Write:
(SPSCR)
Reset:
$0012
Read:
SPI Data Register
Write:
(SPDR)
Reset:
Bit 7
Bit 0
SPRIE
SPMSTR
CPOL
CPHA
SPWOM
SPE
SPTIE
OVRF
MODF
SPTE
MODFEN
SPR1
SPR0
SPRF
ERRIE
0
R7
R6
R5
R4
R3
R2
R1
R0
T7
T6
T5
T4
T3
T2
T1
T0
Unaffected by reset
= Unimplemented
= Reserved
Data Sheet
290
MOTOROLA
SHIFT REGISTER
MISO
2
MOSI
8
CLOCK
DIVIDER 32
128
SPMSTR
SPE
CLOCK
SELECT
SPR1
SPSCK
M
CLOCK
LOGIC
S
SS
SPR0
SPMSTR
RESERVED
MODFEN
CPHA
CPOL
SPWOM
ERRIE
SPI
CONTROL
SPTIE
SPRIE
R
SPE
SPRF
SPTE
OVRF
MODF
Data Sheet
291
NOTE:
SHIFT REGISTER
SLAVE MCU
MISO
MISO
MOSI
MOSI
SPSCK
BAUD RATE
GENERATOR
SS
SHIFT REGISTER
SPSCK
SS
VDD
Data Sheet
292
MOTOROLA
The SPR1 and SPR0 bits control the baud rate generator and determine
the speed of the shift register. (See 15.13.2 SPI Status and Control
Register.) Through the SPSCK pin, the baud rate generator of the
master also controls the shift register of the slave peripheral.
As the byte shifts out on the MOSI pin of the master, another byte shifts
in from the slave on the masters MISO pin. The transmission ends when
the receiver full bit, SPRF, becomes set. At the same time that SPRF
becomes set, the byte from the slave transfers to the receive data
register. In normal operation, SPRF signals the end of a transmission.
Software clears SPRF by reading the SPI status and control register with
SPRF set and then reading the SPI data register. Writing to the SPI data
register clears the SPTE bit.
Data Sheet
293
When the master SPI starts a transmission, the data in the slave shift
register begins shifting out on the MISO pin. The slave can load its shift
register with a new byte for the next transmission by writing to its transmit
data register. The slave must write to its transmit data register at least
one bus cycle before the master starts the next transmission. Otherwise,
the byte already in the slave shift register shifts out on the MISO pin.
Data written to the slave shift register during a transmission remains in
a buffer until the end of the transmission.
When the clock phase bit (CPHA) is set, the first edge of SPSCK starts
a transmission. When CPHA is clear, the falling edge of SS starts a
transmission. (See 15.5 Transmission Formats.)
NOTE:
SPSCK must be in the proper idle state before the slave is enabled to
prevent SPSCK from appearing as a clock edge.
Data Sheet
294
MOTOROLA
The clock phase (CPHA) control bit selects one of two fundamentally
different transmission formats. The clock phase and polarity should be
identical for the master SPI device and the communicating slave device.
In some cases, the phase and polarity are changed between
transmissions to allow a master device to communicate with peripheral
slaves having different requirements.
NOTE:
Before writing to the CPOL bit or the CPHA bit, disable the SPI by
clearing the SPI enable bit (SPE).
Data Sheet
295
SPSCK CYCLE #
FOR REFERENCE
MSB
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
LSB
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
LSB
SPSCK; CPOL = 0
SPSCK; CPOL =1
MOSI
FROM MASTER
MISO
FROM SLAVE
MSB
SS; TO SLAVE
CAPTURE STROBE
MISO/MOSI
BYTE 1
BYTE 2
BYTE 3
MASTER SS
SLAVE SS
CPHA = 0
SLAVE SS
CPHA = 1
Data Sheet
296
MOTOROLA
SPSCK CYCLE #
FOR REFERENCE
MOSI
FROM MASTER
MSB
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
LSB
MISO
FROM SLAVE
MSB
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
SPSCK; CPOL = 0
SPSCK; CPOL =1
LSB
SS; TO SLAVE
CAPTURE STROBE
Data Sheet
297
When CPHA = 1 for a slave, the first edge of the SPSCK indicates the
beginning of the transmission. This causes the SPI to leave its idle state
and begin driving the MISO pin with the MSB of its data. Once the
transmission begins, no new data is allowed into the shift register from
the transmit data register. Therefore, the SPI data register of the slave
must be loaded with transmit data before the first edge of SPSCK. Any
data written after the first edge is stored in the transmit data register and
transferred to the shift register after the current transmission.
Data Sheet
298
MOTOROLA
WRITE
TO SPDR
INITIATION DELAY
BUS
CLOCK
MOSI
MSB
BIT 6
BIT 5
SPSCK
CPHA = 1
SPSCK
CPHA = 0
SPSCK CYCLE
NUMBER
WRITE
TO SPDR
BUS
CLOCK
EARLIEST
LATEST
WRITE
TO SPDR
BUS
CLOCK
EARLIEST
WRITE
TO SPDR
LATEST
LATEST
LATEST
BUS
CLOCK
EARLIEST
WRITE
TO SPDR
BUS
CLOCK
EARLIEST
Data Sheet
299
WRITE TO SPDR
SPTE
3
2
8
5
10
SPSCK
CPHA:CPOL = 1:0
MOSI
MSB BIT BIT BIT BIT BIT BIT LSB MSB BIT BIT BIT BIT BIT BIT LSB MSB BIT BIT BIT
6 5 4
6 5 4 3 2 1
6 5 4 3 2 1
BYTE 1
BYTE 2
BYTE 3
4
SPRF
9
6
READ SPSCR
11
7
READ SPDR
12
Data Sheet
300
MOTOROLA
For an idle master or idle slave that has no data loaded into its transmit
buffer, the SPTE is set again no more than two bus cycles after the
transmit buffer empties into the shift register. This allows the user to
queue up a 16-bit value to send. For an already active slave, the load of
the shift register cannot occur until the transmission is completed. This
implies that a back-to-back write to the transmit data register is not
possible. The SPTE indicates when the next write can occur.
Mode fault error (MODF) The MODF bit indicates that the
voltage on the slave select pin (SS) is inconsistent with the mode
of the SPI. MODF is in the SPI status and control register.
Data Sheet
301
If the CPU SPRF interrupt is enabled and the OVRF interrupt is not,
watch for an overflow condition. Figure 15-9 shows how it is possible to
miss an overflow. The first part of Figure 15-9 shows how it is possible
to read the SPSCR and SPDR to clear the SPRF without problems.
However, as illustrated by the second transmission example, the OVRF
bit can be set in between the time that SPSCR and SPDR are read.
BYTE 1
BYTE 2
BYTE 3
BYTE 4
SPRF
OVRF
READ
SPSCR
READ
SPDR
3
1
3
4
7
5
302
MOTOROLA
BYTE 1
SPI RECEIVE
COMPLETE
BYTE 2
5
BYTE 3
7
BYTE 4
11
SPRF
OVRF
READ
SPSCR
READ
SPDR
4
3
9
8
12
10
14
13
For the MODF flag to be set, the mode fault error enable bit (MODFEN)
must be set. Clearing the MODFEN bit does not clear the MODF flag but
does prevent MODF from being set again after MODF is cleared.
Data Sheet
303
In a master SPI with the mode fault enable bit (MODFEN) set, the mode
fault flag (MODF) is set if SS goes to logic 0. A mode fault in a master
SPI causes the following events to occur:
NOTE:
The data direction register of the shared I/O port regains control of
port drivers.
To prevent bus contention with another master SPI after a mode fault
error, clear all SPI bits of the data direction register of the shared I/O port
before enabling the SPI.
When configured as a slave (SPMSTR = 0), the MODF flag is set if SS
goes high during a transmission. When CPHA = 0, a transmission begins
when SS goes low and ends once the incoming SPSCK goes back to its
idle level following the shift of the eighth data bit. When CPHA = 1, the
transmission begins when the SPSCK leaves its idle level and SS is
already low. The transmission continues until the SPSCK returns to its
idle level following the shift of the last data bit. (See 15.5 Transmission
Formats.)
NOTE:
Setting the MODF flag does not clear the SPMSTR bit. The SPMSTR bit
has no function when SPE = 0. Reading SPMSTR when MODF = 1
shows the difference between a MODF occurring when the SPI is a
master and when it is a slave.
When CPHA = 0, a MODF occurs if a slave is selected (SS is at logic 0)
and later unselected (SS is at logic 1) even if no SPSCK is sent to that
Data Sheet
304
MOTOROLA
NOTE:
A logic 1 voltage on the SS pin of a slave SPI puts the MISO pin in a high
impedance state. Also, the slave SPI ignores all incoming SPSCK
clocks, even if it was already in the middle of a transmission.
To clear the MODF flag, read the SPSCR with the MODF bit set and then
write to the SPCR register. This entire clearing mechanism must occur
with no MODF condition existing or else the flag is not cleared.
15.8 Interrupts
Four SPI status flags can be enabled to generate CPU interrupt
requests.
Table 15-2. SPI Interrupts
Flag
Request
SPTE
Transmitter empty
SPRF
Receiver full
OVRF
Overflow
MODF
Mode fault
Data Sheet
305
The SPI receiver interrupt enable bit (SPRIE) enables the SPRF bit to
generate receiver CPU interrupt requests, regardless of the state of the
SPE bit. (See Figure 15-11.)
The error interrupt enable bit (ERRIE) enables both the MODF and
OVRF bits to generate a receiver/error CPU interrupt request.
The mode fault enable bit (MODFEN) can prevent the MODF flag from
being set so that only the OVRF bit is enabled by the ERRIE bit to
generate receiver/error CPU interrupt requests.
NOT AVAILABLE
SPTE
SPTIE
SPE
SPI TRANSMITTER
CPU INTERRUPT REQUEST
NOT AVAILABLE
SPRIE
SPRF
SPI RECEIVER/ERROR
CPU INTERRUPT REQUEST
ERRIE
MODF
OVRF
Data Sheet
306
MOTOROLA
The following sources in the SPI status and control register can generate
CPU interrupt requests:
SPI receiver full bit (SPRF) The SPRF bit becomes set every
time a byte transfers from the shift register to the receive data
register. If the SPI receiver interrupt enable bit, SPRIE, is also set,
SPRF generates an SPI receiver/error CPU interrupt request.
SPI transmitter empty (SPTE) The SPTE bit becomes set every
time a byte transfers from the transmit data register to the shift
register. If the SPI transmit interrupt enable bit, SPTIE, is also set,
SPTE generates an SPTE CPU interrupt request.
By not resetting the control bits when SPE is low, the user can clear SPE
between transmissions without having to set all control bits again when
SPE is set back high for the next transmission.
Data Sheet
307
Data Sheet
308
MOTOROLA
SS Slave select
Data Sheet
309
Data Sheet
310
MOTOROLA
MISO/MOSI
BYTE 1
BYTE 2
BYTE 3
MASTER SS
SLAVE SS
CPHA = 0
SLAVE SS
CPHA = 1
NOTE:
A logic 1 voltage on the SS pin of a slave SPI puts the MISO pin in a highimpedance state. The slave SPI ignores all incoming SPSCK clocks,
even if it was already in the middle of a transmission.
Data Sheet
311
SPMSTR
MODFEN
SPI Configuration
State of SS Logic
X(1)
Not enabled
General-purpose I/O;
SS ignored by SPI
Slave
Input-only to SPI
General-purpose I/O;
SS ignored by SPI
Input-only to SPI
Data Sheet
312
MOTOROLA
Address: $0010
Bit 7
Bit 0
SPRIE
SPMSTR
CPOL
CPHA
SPWOM
SPE
SPTIE
Read:
Write:
Reset:
= Unimplemented
= Reserved
Data Sheet
313
This read/write bit determines the logic state of the SPSCK pin
between transmissions. (See Figure 15-4 and Figure 15-6.) To
transmit data between SPI modules, the SPI modules must have
identical CPOL values. Reset clears the CPOL bit.
CPHA Clock Phase Bit
This read/write bit controls the timing relationship between the serial
clock and SPI data. (See Figure 15-4 and Figure 15-6.) To transmit
data between SPI modules, the SPI modules must have identical
CPHA values. When CPHA = 0, the SS pin of the slave SPI module
must be set to logic 1 between bytes. (See Figure 15-12.) Reset sets
the CPHA bit.
SPWOM SPI Wired-OR Mode Bit
This read/write bit disables the pullup devices on pins SPSCK, MOSI,
and MISO so that those pins become open-drain outputs.
1 = Wired-OR SPSCK, MOSI, and MISO pins
0 = Normal push-pull SPSCK, MOSI, and MISO pins
SPE SPI Enable
This read/write bit enables the SPI module. Clearing SPE causes a
partial reset of the SPI. (See 15.9 Resetting the SPI.) Reset clears
the SPE bit.
1 = SPI module enabled
0 = SPI module disabled
SPTIE SPI Transmit Interrupt Enable
This read/write bit enables CPU interrupt requests generated by the
SPTE bit. SPTE is set when a byte transfers from the transmit data
register to the shift register. Reset clears the SPTIE bit.
1 = SPTE CPU interrupt requests enabled
0 = SPTE CPU interrupt requests disabled
Data Sheet
314
MOTOROLA
The SPI status and control register contains flags to signal these
conditions:
The SPI status and control register also contains bits that perform these
functions:
Address: $0011
Bit 7
Read:
SPRF
OVRF
MODF
SPTE
ERRIE
Bit 0
MODFEN
SPR1
SPR0
Write:
Reset:
= Unimplemented
Data Sheet
315
This clearable, read-only flag is set if software does not read the byte
in the receive data register before the next full byte enters the shift
register. In an overflow condition, the byte already in the receive data
register is unaffected, and the byte that shifted in last is lost. Clear the
OVRF bit by reading the SPI status and control register with OVRF set
and then reading the receive data register. Reset clears the OVRF bit.
1 = Overflow
0 = No overflow
MODF Mode Fault Bit
This clearable, read-only flag is set in a slave SPI if the SS pin goes
high during a transmission with the MODFEN bit set. In a master SPI,
the MODF flag is set if the SS pin goes low at any time with the
MODFEN bit set. Clear the MODF bit by reading the SPI status and
control register (SPSCR) with MODF set and then writing to the SPI
control register (SPCR). Reset clears the MODF bit.
1 = SS pin at inappropriate logic level
0 = SS pin at appropriate logic level
SPTE SPI Transmitter Empty Bit
This clearable, read-only flag is set each time the transmit data
register transfers a byte into the shift register. SPTE generates an
SPTE CPU interrupt request if the SPTIE bit in the SPI control register
is set also.
NOTE:
Do not write to the SPI data register unless the SPTE bit is high.
During an SPTE CPU interrupt, the CPU clears the SPTE bit by
writing to the transmit data register.
Reset sets the SPTE bit.
1 = Transmit data register empty
0 = Transmit data register not empty
Data Sheet
316
MOTOROLA
If the MODFEN bit is set, then this pin is not available as a generalpurpose I/O. When the SPI is enabled as a slave, the SS pin is not
available as a general-purpose I/O regardless of the value of
MODFEN. (See 15.12.4 SS (Slave Select).)
If the MODFEN bit is low, the level of the SS pin does not affect the
operation of an enabled SPI configured as a master. For an enabled
SPI configured as a slave, having MODFEN low only prevents the
MODF flag from being set. It does not affect any other part of SPI
operation. (See 15.7.2 Mode Fault Error.)
SPR1 and SPR0 SPI Baud Rate Select Bits
In master mode, these read/write bits select one of four baud rates as
shown in Table 15-4. SPR1 and SPR0 have no effect in slave mode.
Reset clears SPR1 and SPR0.
Table 15-4. SPI Master Baud Rate Selection
SPR1 and SPR0
00
01
10
32
11
128
Data Sheet
317
Address: $0012
Bit 7
Bit 0
Read:
R7
R6
R5
R4
R3
R2
R1
R0
Write:
T7
T6
T5
T4
T3
T2
T1
T0
Reset:
Unaffected by reset
NOTE:
Data Sheet
318
MOTOROLA
16.1 Introduction
Data Sheet
319
Busy detection
Data Sheet
320
MOTOROLA
SDA
PTB0/SDA
SCL
PTB1/SCL
Addr.
$0048
Register Name
Bit 7
Read:
MMAD7
MMIIC Address Register
Write:
(MMADR)
Reset:
1
Read:
MMIIC Control Register 1
$0049
Write:
(MMCR1)
Reset:
MMEN
MMAD6
MMAD5
MMAD4
MMAD3
MMAD2
MMIEN
$004D
MMTXAK REPSEN
Bit 0
MMAD1 MMEXTAD
0
0
0
MMCRCBYTE
MMCLRBB
Read: MMRXIF
MMIIC Status Register
Write:
0
(MMSR)
Reset:
0
$004C
$004B
Read:
MMIIC Data Transmit
MMTD7
Register Write:
(MMDTR)
Reset:
0
Read: MMRD7
MMIIC Data Receive
Register Write:
(MDDRR)
Reset:
0
MMTXIF
0
MMBB
MMAST
MMRW
0
MMCRCEF
Unaffected
0
0
MMTD6
MMTD5
MMTD4
MMTD3
MMTD2
MMTD1
MMTD0
MMRD6
MMRD5
MMRD4
MMRD3
MMRD2
MMRD1
MMRD0
MMBR2
MMBR1
MMBR0
= Unimplemented
Data Sheet
321
MOTOROLA
LSB
MSB
LSB
1
SDA
Data must be stable
when SCL is HIGH
ACK
START
signal
MSB
SCL
LSB
1
No ACK
STOP
signal
MSB
LSB
1
SDA
ACK
START
signal
No ACK
Repeated
START
signal
STOP
signal
322
MOTOROLA
When the bus is free, (i.e. no master device is engaging the bus both
SCL and SDA lines are at logic high) a master may initiate
communication by sending a START signal. As shown in Figure 16-2, a
START signal is defined as a high to low transition of SDA while SCL is
high. This signal denotes the beginning of a new data transfer (each data
transfer may contain several bytes of data) and wakes up all slaves.
Data Sheet
323
Data Sheet
324
MOTOROLA
WAIT
SCL1
SCL2
SCL
16.5.8 Handshaking
The clock synchronization mechanism can be used as a handshake in
data transfer. A slave device may hold the SCL low after completion of
one byte data transfer and will halt the bus clock, forcing the master
clock into a wait state until the slave releases the SCL line.
Data Sheet
325
The CRC data register, MMCRCDR, contains the generated PEC byte,
with three other bits in the MMIIC control registers and status register
monitoring and controlling the PEC byte.
$0048
Bit 7
Bit 0
MMAD7
MMAD6
MMAD5
MMAD4
MMAD3
MMAD2
MMAD1
MMEXTAD
Read:
Write:
Reset:
Data Sheet
326
MOTOROLA
This bit is set to expand the address of the MMIIC in slave mode.
When set, the MMIIC will acknowledge the following addresses from
a calling master: $MMAD[7:1], 0000000, and 0001100.
Reset clears this bit.
1 = MMIIC responds to the following calling addresses:
$MMAD[7:1], 0000000, and 0001100.
0 = MMIIC responds to address $MMAD[7:1]
For example, when MMADR is configured as:
MMAD7 MMAD6 MMAD5 MMAD4 MMAD3 MMAD2 MMAD1 MMEXTAD
1
Bit 1
Bit 1
Note that bit-0 of the 8-bit calling address is the MMRW bit from the
calling master.
Data Sheet
327
$0049
Bit 7
MMEN
MMIEN
Read:
Write:
Reset:
Bit 0
0
MMTXAK REPSEN
MMCRCBYTE
MMCLRBB
= Unimplemented
Data Sheet
328
MOTOROLA
Data Sheet
329
$004A
Bit 7
Reset:
MMAST
MMRW
MMBB
Bit 0
MMCRCEF
Unaffected
= Unimplemented
Data Sheet
330
MOTOROLA
This bit is set to initiate a master mode transfer. In master mode, the
module generates a start condition to the SDA and SCL lines,
followed by sending the calling address stored in MMADR.
When the MMAST bit is cleared by MMNAKIF set (no acknowledge)
or by software, the module generates the stop condition to the lines
after the current byte is transmitted.
If an arbitration loss occurs (MMALIF = 1), the module reverts to slave
mode by clearing MMAST, and releasing SDA and SCL lines
immediately.
This bit is cleared by writing "0" to it or by reset.
1 = Master mode operation
0 = Slave mode operation
MMRW MMIIC Master Read/Write
This bit is transmitted out as bit 0 of the calling address when the
module sets the MMAST bit to enter master mode. The MMRW bit
determines the transfer direction of the data bytes that follows. When
it is "1", the module is in master receive mode. When it is "0", the
module is in master transmit mode. Reset clears this bit.
1 = Master mode receive
0 = Master mode transmit
MMCRCEF MMIIC CRC Error Flag
This flag is set when a CRC error is detected, and cleared when no
CRC error is detected. The MMCRCEF is only meaningful after
receiving a PEC data. This flag is unaffected by reset.
1 = CRC error detected on PEC byte
0 = No CRC error detected on PEC byte
Data Sheet
331
$004B
Bit 7
Read: MMRXIF
6
MMTXIF
Write:
Reset:
Bit 0
= Unimplemented
332
MOTOROLA
This bit indicates the data direction when the module is in slave mode.
It is updated after the calling address is received from a master
device. MMSRW = 1 when the calling master is reading data from the
module (slave transmit mode). MMSRW = 0 when the master is
writing data to the module (receive mode).
1 = Slave mode transmit
0 = Slave mode receive
MMRXAK MMIIC Receive Acknowledge
When this bit is cleared, it indicates an acknowledge signal has been
received after the completion of eight data bits transmission on the
bus. When MMRXAK is set, it indicates no acknowledge signal has
been detected at the 9th clock; the module will release the SDA line
for the master to generate STOP or repeated START condition. Reset
sets this bit.
1 = No acknowledge signal received at 9th clock
0 = Acknowledge signal received at 9th clock
MMCRCBF CRC Data Buffer Full Flag
This flag is set when the CRC data register (MMCRCDR) is loaded
with a CRC byte for the current received or transmitted data.
In transmit mode, after a byte of data has been sent (MMTXIF = 1),
the MMCRCBF will be set when the CRC byte has been generated
and ready in the MMCRCDR. The content of the MMCRCDR should
be copied to the MMDTR for transmission.
In receive mode, the MMCRCBF is set when the CRC byte has been
generated and ready in MMCRCDR, for the current byte of received
data.
The MMCRCBF bit is cleared when the CRC data register is read.
Reset also clears this bit.
1 = Data ready in CRC data register (MMCRCDR)
0 = Data not ready in CRC data register (MMCRCDR)
Data Sheet
333
$004C
Bit 7
Bit 0
MMTD7
MMTD6
MMTD5
MMTD4
MMTD3
MMTD2
MMTD1
MMTD0
Read:
Write:
Reset:
Data Sheet
the previous data in the output circuit has be transmitted and the
receiving master returns an acknowledge bit, indicated by a
received acknowledge bit (MMRXAK = 0).
334
MOTOROLA
If the calling master does not return an acknowledge bit (MMRXAK = 1),
the module will release the SDA line for master to generate a STOP or
repeated START condition. The data in the MMDTR will not be
transferred to the output circuit until the next calling from a master. The
transmit buffer empty flag remains cleared (MMTXBE = 0).
the previous data in the output circuit has be transmitted and the
receiving slave returns an acknowledge bit, indicated by a
received acknowledge bit (MMRXAK = 0).
If the slave does not return an acknowledge bit (MMRXAK = 1), the
master will generate a STOP or repeated START condition. The data in
the MMDTR will not be transferred to the output circuit. The transmit
buffer empty flag remains cleared (MMTXBE = 0).
The sequence of events for slave transmit and master transmit are
illustrated in Figure 16-12.
$004D
Bit 7
Read: MMRD7
Bit 0
MMRD6
MMRD5
MMRD4
MMRD3
MMRD2
MMRD1
MMRD0
Write:
Reset:
= Unimplemented
Data Sheet
335
the calling address from the master when the address match flag
is set (MMATCH = 1); or
When the MMDRR is read by the CPU, the receive buffer full flag is
cleared (MMRXBF = 0), and the next received data is loaded to the
MMDRR. Each time when new data is loaded to the MMDRR, the
MMRXIF interrupt flag is set, indicating that new data is available in
MMDRR.
The sequence of events for slave receive and master receive are
illustrated in Figure 16-12.
16.6.7 MMIIC CRC Data Register (MMCRCDR)
Address:
$004E
Bit 7
Bit 0
= Unimplemented
336
MOTOROLA
Read:
$004F
Bit 7
Bit 0
MMBR2
MMBR1
MMBR0
Write:
Reset:
= Unimplemented
MMBR1
MMBR0
Divider
8MHz
4MHz
2MHz
1MHz
20
400kHz
200kHz
100kHz
50kHz
40
200kHz
100kHz
50kHz
25kHz
80
100kHz
50kHz
25kHz
12.5kHz
160
50kHz
25kHz
12.5kHz
6.25kHz
320
25kHz
12.5kHz
6.25kHz
3.125kHz
640
12.5kHz
6.25kHz
3.125kHz
1.5625kHz
1280
6.25kHz
3.125kHz
1.5625kHz
0.78125kHz
2560
3.125kHz
1.5625kHz
0.78125kHz
0.3906kHz
NOTE:
The frequency of the MMIIC baud rate is only guaranteed for 100kHz to
10kHz. The divider is available for the flexibility on bus frequency
selection.
Data Sheet
337
Data Sheet
338
MOTOROLA
Address
TX Data1
MMTXBE=1
MMTXIF=1
Data2 MMDTR
MMTXBE=0
MMRW=0
MMAST=1
Data1 MMDTR
ACK
ACK
MMTXBE=1
MMTXIF=1
Data3 MMDTR
TX DataN
ACK
STOP
MMTXBE=1 MMNAKIF=1
MMTXIF=1 MMAST=0
DataN+2 MMDTR MMTXBE=0
Address
ACK
RX Data1
ACK
Data1 MMDRR
MMRXIF=1
MMRXBF=1
MMRXBF=0
MMRW=1
MMAST=1
MMTXBE=0
(dummy data MMDTR)
RX DataN
NAK
STOP
Address
MMTXBE=1
MMRXBF=0
ACK
TX Data1
MMRXIF=1
MMRXBF=1
MMATCH=1
MMSRW=1
Data1 MMDTR
ACK
MMTXBE=1
MMTXIF=1
Data2 MMDTR
TX DataN
NAK
STOP
MMTXBE=1 MMNAKIF=1
MMTXIF=1 MMTXBE=0
DataN+2 MMDTR
Address
MMTXBE=0
MMRXBF=0
ACK
RX Data1
MMRXIF=1
MMRXBF=1
MMATCH=1
MMSRW=0
ACK
Data1 MMDRR
MMRXIF=1
MMRXBF=1
RX DataN
ACK
STOP
DataN MMDRR
MMRXIF=1
MMRXBF=1
Data Sheet
339
START
Master to Slave
STOP
Start Condition
Slave to Master
Stop Condition
Command Bit
Acknowledge
START
Slave Address
ACK
Command Code
ACK
ACK
Command Code
ACK
STOP
Slave Address
PEC
ACK
STOP
NAK
STOP
START
Slave Address
ACK
Data Byte
NAK
ACK
Data Byte
ACK
STOP
Slave Address
PEC
Data Sheet
340
MOTOROLA
Slave Address
W ACK
Command Code
ACK
Data Byte
ACK
W ACK
Command Code
ACK
Data Byte
ACK
PEC
ACK
STOP
W ACK
Command Code
ACK
ACK
ACK
STOP
W ACK
Command Code
ACK
ACK
ACK
STOP
Slave Address
Slave Address
Slave Address
PEC
ACK
STOP
Slave Address
W ACK
Command Code
ACK
START
Slave Address
ACK
Data Byte
NAK
W ACK
Command Code
ACK
START
Slave Address
ACK
Data Byte
ACK
Command Code
ACK
START
Slave Address
ACK
ACK
Command Code
ACK
START
Slave Address
ACK
ACK
STOP
Slave Address
PEC
NAK
STOP
Slave Address
NAK
W ACK
STOP
Slave Address
ACK
W ACK
PEC
NAK
STOP
Data Sheet
341
START
Slave Address
W ACK
START
Slave Address
START
Slave Address
W ACK
START
Slave Address
ACK
Command Code
ACK
ACK
ACK
NAK
Command Code
ACK
ACK
ACK
ACK
ACK
STOP
ACK
ACK
PEC
STOP
NAK
STOP
START
Slave Address
Data Byte 2
ACK
W ACK
Command Code
Data Byte N
ACK
ACK
Byte Count = N
ACK
Data Byte 1
ACK
ACK
Data Byte 1
ACK
ACK
Byte Count = N
ACK
ACK
Byte Count = N
ACK
STOP
Slave Address
Data Byte 2
ACK
W ACK
Command Code
Data Byte N
ACK
Byte Count = N
PEC
ACK
ACK
STOP
Slave Address
Data Byte 1
ACK
W ACK
Command Code
Data Byte 2
ACK
ACK
START
Data Byte N
Slave Address
NAK
STOP
Slave Address
Data Byte 1
ACK
W ACK
Command Code
Data Byte 2
ACK
ACK
START
Data Byte N
Slave Address
ACK
PEC
NAK
STOP
Data Sheet
342
MOTOROLA
MASTER MODE
START
Address
0 ACK
Command
ACK START
Address
1 ACK
RX Data1
ACK
ACK
RX DataN
NAK STOP
OPERATION:
Prepare for repeated START
OPERATION:
Get ready to receive data
OPERATION:
Read received data
OPERATION:
Generate STOP
FLAGS:
MMTXIF set
MMRXAK clear
FLAGS:
MMTXIF set
MMRXAK clear
FLAGS:
MMRXIF set
FLAGS:
MMRXIF set
ACTION:
1. Set MMRW
2. Set REPSEN
3. Clear MMTXAK
4. Load dummy ($FF) to MMDTR
ACTION:
Load dummy ($FF) to MMDTR
ACTION:
Read Data1 from MMDRR
ACTION:
Read DataN from MMDRR
OPERATION:
Read received data and prepare for STOP
OPERATION:
Prepare for Master mode
FLAGS:
MMRXIF set
ACTION:
1. Load slave address to MMADR
2. Clear MMRW
3. Load command to MMDTR
4. Set MMAST
ACTION:
1. Set MMTXAK
2. Read Data(N-1) from MMDRR
3. Clear MMAST
SLAVE MODE
START
Address
0 ACK
Command
ACK START
Address
1 ACK
OPERATION:
Slave address match and
check for data direction
OPERATION:
Slave address match and
get ready to transmit data
FLAGS:
MMRXIF set
MMATCH set
MMSRW depends on 8th
bit of calling address byte
ACTION:
1. Check MMSRW
2. Read Slave address
FLAGS:
MMRXIF set
MMATCH set
MMSRW depends on 8th
bit of calling address byte
OPERATION:
Prepare for Slave mode
ACTION:
1. Load slave address to MMADR
2. Clear MMTXAK
3. Clear MMAST
TX Data1
ACK
ACK
TX DataN
NAK STOP
OPERATION:
Transmit data
OPERATION:
Last data sent
FLAGS:
MMTXIF set
MMRXAK clear
FLAGS:
MMTXIF set
MMRXAK set
ACTION:
Load Data3 to MMDTR
ACTION:
Load dummy ($FF) to MMDTR
ACTION:
Check MMSRW
OPERATION:
Read and decode received command
FLAGS:
MMRXIF set
MMATCH clear
ACTION:
Load Data1 to MMDTR
OPERATION:
Transmit data
OPERATION:
Last data is going to be sent
FLAGS:
MMTXIF set
FLAGS:
MMTXIF set
MMRXAK clear
ACTION:
Load Data2 to MMDTR
ACTION:
Load dummy ($FF) to MMDTR
Data Sheet
343
Data Sheet
344
MOTOROLA
17.1 Introduction
This section describes the analog-to-digital converter (ADC). The ADC
is a 8-channel 10-bit linear successive approximation ADC.
17.2 Features
Features of the ADC module include:
10-bit resolution
Data Sheet
345
Addr.
Bit 0
AIEN
ADCO
ADCH4
ADCH3
ADCH2
ADCH1
ADCH0
ADIV2
ADIV1
ADIV0
ADICLK
MODE1
MODE0
Read:
ADC Data Register High 0
$0059
Write:
(ADRH0)
Reset:
ADx
ADx
ADx
ADx
ADx
ADx
ADx
ADx
Read:
ADC Data Register Low 0
$005A
Write:
(ADRL0)
Reset:
ADx
ADx
ADx
ADx
ADx
ADx
ADx
ADx
Read:
ADC Data Register Low 1
$005B
Write:
(ADRL1)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
Read:
ADC Data Register Low 2
$005C
Write:
(ADRL3)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
Read:
ADC Data Register Low 3
$005D
Write:
(ADRL3)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AUTO1
AUTO0
ASCAN
$0057
Register Name
Read:
ADC Status and Control
Register Write:
(ADSCR)
Reset:
Read:
ADC Clock Control
Register Write:
(ADICLK)
Reset:
$0058
$005E
Bit 7
Read:
ADC Auto-scan Control
Register Write:
(ADASCR)
Reset:
COCO
= Unimplemented
= Reserved
Data Sheet
346
MOTOROLA
The ADC provides eight pins for sampling external sources at pins
PTA0/ADC0PTA7/ADC7. An analog multiplexer allows the single ADC
converter to select one of eight ADC channels as ADC voltage in
(VADIN). VADIN is converted by the successive approximation registerbased analog-to-digital converter. When the conversion is completed,
ADC places the result in the ADC data register, high and low byte
(ADRH0 and ADRL0), and sets a flag or generates an interrupt.
An additional three ADC data registers (ADRL1ADRL3) are available to
store the individual converted data for ADC channels ADC1ADC3
when the auto-scan mode is enabled. Data from channel ADC0 is stored
in ADRL0 in the auto-scan mode.
Figure 17-2 shows the structure of the ADC module.
NOTE:
Data Sheet
347
INTERNAL
DATA BUS
READ DDRAx
DISABLE
WRITE DDRAx
DDRAx
RESET
WRITE PTAx
PTAx
PTAx/ADCx
READ PTAx
ADC0ADC7
(8 CHANNELS)
ADC DATA REGISTERS
DISABLE
ADRH0 ADRL0
ADRL1
ADRL2
VREFH
ADRL3
INTERRUPT
LOGIC
AIEN
VREFL
ADC
VOLTAGE IN
(VADIN)
CONVERSION
COMPLETE
10-BIT ADC
CHANNEL
SELECT
ADCICLK
COCO
MUX
CGMXCLK
BUS CLOCK
ASCAN
CLOCK
GENERATOR
ADCH[4:0]
ADIV[2:0]
ADICLK
2-BIT UP-COUNTER
AUTO[1:0]
Data Sheet
348
MOTOROLA
The ADC conversion time is determined by the clock source chosen and
the divide ratio selected. The clock source is either the bus clock or
CGMXCLK and is selectable by the ADICLK bit located in the ADC clock
register. The divide ratio is selected by the ADIV[2:0] bits.
For example, if a 4MHz CGMXCLK is selected as the ADC input clock
source, with a divide-by-four prescale, and the bus speed is set at 2MHz:
Conversion time =
NOTE:
Data Sheet
349
NOTE:
The system only provides 8-bit data storage in auto-scan code, user
must clear MODE[1:0] bits to select 8-bit truncation mode before
entering auto-scan mode.
It is recommended that user should disable the auto-scan function
before switching channel and also before entering STOP mode.
Left justified
Right justified
8-bit truncation
All four of these modes are controlled using MODE0 and MODE1 bits
located in the ADC clock control register (ADICLK).
Data Sheet
350
MOTOROLA
Left justification will place the eight most significant bits (MSB) in the
corresponding ADC data register high (ADRH). This may be useful if the
result is to be treated as an 8-bit result where the least significant two
bits, located in the ADC data register low (ADRL) can be ignored.
However, you must read ADRL after ADRH or else the interlocking will
prevent all new conversions from being stored.
Right justification will place only the two MSBs in the corresponding ADC
data register high (ADRH) and the eight LSB bits in ADC data register
low (ADRL). This mode of operation typically is used when a 10-bit
unsigned result is desired.
Left justified sign data mode is similar to left justified mode with one
exception. The MSB of the 10-bit result, AD9 located in ADRH is
complemented. This mode of operation is useful when a result,
represented as a signed magnitude from mid-scale, is needed.
Finally, 8-bit truncation mode will place the eight MSBs in ADC data
register low (ADRL). The two LSBs are dropped. This mode of operation
is used when compatibility with 8-bit ADC designs are required. No
interlocking between ADRH and ADRL is present.
17.3.8 Monotonicity
The conversion process is monotonic and has no missing codes.
Data Sheet
351
When the AIEN bit is set, the ADC module is capable of generating a
CPU interrupt after each ADC conversion or after an auto-scan
conversion cycle. A CPU interrupt is generated if the COCO bit is at
logic 0. The COCO bit is not used as a conversion complete flag when
interrupts are enabled. The interrupt vector is defined in Table 2-1 .
Vector Addresses.
Data Sheet
352
MOTOROLA
NOTE:
Route VDDA carefully for maximum noise immunity and place bypass
capacitors as close as possible to the package.
NOTE:
Route VREFH carefully for maximum noise immunity and place bypass
capacitors as close as possible to the package.
Data Sheet
353
$0057
Read:
COCO
AIEN
ADCO
ADCH4
ADCH3
ADCH2
ADCH1
ADCH0
Write:
Reset:
354
MOTOROLA
This bit should not be set when auto-scan mode is enabled; i.e. when
ASCAN=1.
ADCH[4:0] ADC Channel Select Bits
ADCH[4:0] form a 5-bit field which is used to select one of the ADC
channels when not in auto-scan mode. The five channel select bits
are detailed in Table 17-1.
NOTE:
Care should be taken when using a port pin as both an analog and a
digital input simultaneously to prevent switching noise from corrupting
the analog signal. Recovery from the disabled state requires one
conversion cycle to stabilize.
Table 17-1. MUX Channel Select
ADCH4
ADCH3
ADCH2
ADCH1
ADCH0
ADC Channel
Input Select
ADC0
PTA0
ADC1
PTA1
ADC2
PTA2
ADC3
PTA3
ADC4
PTA4
ADC5
PTA5
ADC6
PTA6
ADC7
PTA7
ADC8
ADC28
Reserved
ADC29
ADC30
ADC powered-off
NOTES:
1. If any unused channels are selected, the resulting ADC conversion will be unknown.
2. The voltage levels supplied from internal reference nodes as specified in the table are used to verify the operation of
the ADC converter both in production test and for user applications.
Data Sheet
355
$0058
Read:
0
ADIV2
ADIV1
ADIV0
ADICLK
MODE1
MODE0
Write:
Reset:
R
0
= Unimplemented
= Reserved
ADIV1
ADIV0
X = dont care
Data Sheet
356
MOTOROLA
fADIC =
MODE0
Justification Mode
Data Sheet
357
The ADC data register 0 consist of a pair of 8-bit registers: high byte
(ADRH0), and low byte (ADRL0). This pair form a 16-bit register to store
the 10-bit ADC result for the selected ADC result justification mode.
In 8-bit truncated mode, the ADRL0 holds the eight most significant bits
(MSBs) of the 10-bit result. The ADRL0 is updated each time an ADC
conversion completes. In 8-bit truncated mode, ADRL0 contains no
interlocking with ADRH0.
(See Figure 17-5 . ADRH0 and ADRL0 in 8-Bit Truncated Mode.)
Addr.
Register Name
Bit 7
Bit 0
Read:
ADC Data Register High 0
$0059
Write:
(ADRH0)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
Read:
ADC Data Register Low 0
$005A
Write:
(ADRL0)
Reset:
Register Name
Bit 7
Bit 0
Read:
ADC Data Register High 0
$0059
Write:
(ADRH0)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
Read:
ADC Data Register Low 0
$005A
Write:
(ADRL0)
Reset:
Data Sheet
358
MOTOROLA
In left justified mode the ADRH0 holds the eight most significant bits
(MSBs), and the ADRL0 holds the two least significant bits (LSBs), of the
10-bit result. The ADRH0 and ADRL0 are updated each time a single
channel ADC conversion completes. Reading ADRH0 latches the
contents of ADRL0. Until ADRL0 is read all subsequent ADC results will
be lost. (See Figure 17-7 . ADRH0 and ADRL0 in Left Justified Mode.)
Addr.
Register Name
Bit 7
Bit 0
Read:
ADC Data Register High 0
$0059
Write:
(ADRH0)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
Read:
ADC Data Register Low 0
Write:
$005A
(ADRL0)
Reset:
AD1
AD0
Register Name
Bit 7
Bit 0
Read:
ADC Data Register High 0
$0059
Write:
(ADRH0)
Reset:
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
Read:
ADC Data Register Low 0
$005A
Write:
(ADRL0)
Reset:
AD1
AD0
Figure 17-8 ADRH0 and ADRL0 in Left Justified Sign Data Mode
Data Sheet
359
AD9
AD8
AD7
AD6
AD5
AD4
AD3
AD2
Write:
Reset:
= Reserved
$005E
0
0
AUTO1
AUTO0
ASCAN
Write:
Reset:
= Unimplemented
0
R
= Reserved
Data Sheet
AUTO1
AUTO0
Auto-Scan Channels
ADC0 only
ADC0 to ADC1
ADC0 to ADC2
ADC0 to ADC3
MC68HC908AP Family Rev. 2.5
360
MOTOROLA
Data Sheet
361
Data Sheet
362
MOTOROLA
18.1 Introduction
NOTE:
Connect any unused I/O pins to an appropriate logic level, either VDD or
VSS. Although the I/O ports do not require termination for proper
operation, termination reduces excess current consumption and the
possibility of electrostatic damage.
Data Sheet
363
Addr.
Register Name
Bit 7
Bit 0
PTA7
PTA6
PTA5
PTA4
PTA3
PTA2
PTA1
PTA0
PTB2
PTB1
PTB0
PTC2
PTC1
PTC0
PTD2
PTD1
PTD0
Read:
Port A Data Register
Write:
(PTA)
Reset:
$0000
Unaffected by reset
Read:
Port B Data Register
Write:
(PTB)
Reset:
$0001
PTB7
PTB6
PTB5
PTB4
PTB3
Unaffected by reset
Read:
Port C Data Register
Write:
(PTC)
Reset:
$0002
PTC7
PTC6
PTC5
PTC4
PTC3
Unaffected by reset
Read:
Port D Data Register
Write:
(PTD)
Reset:
$0003
PTD7
PTD6
PTD5
PTD4
PTD3
Unaffected by reset
Read:
$0004
DDRA7
Data Direction Register A
Write:
(DDRA)
Reset:
0
DDRA6
DDRA5
DDRA4
DDRA3
DDRA2
DDRA1
DDRA0
DDRB6
DDRB5
DDRB4
DDRB3
DDRB2
DDRB1
DDRB0
DDRC6
DDRC5
DDRC4
DDRC3
DDRC2
DDRC1
DDRC0
DDRD6
DDRD5
DDRD4
DDRD3
DDRD2
DDRD1
DDRD0
LEDA7
LEDA6
LEDA5
LEDA4
LEDA3
LEDA2
LEDA1
LEDA0
Read:
$0005
DDRB7
Data Direction Register B
Write:
(DDRB)
Reset:
0
Read:
$0006
DDRC7
Data Direction Register C
Write:
(DDRC)
Reset:
0
Read:
$0007
DDRD7
Data Direction Register D
Write:
(DDRD)
Reset:
0
$000C
Read:
Port-A LED Control
Register Write:
(LEDA)
Reset:
Data Sheet
364
MOTOROLA
Module Control
Bit
DDR
DDRA0
PTA0/ADC0
DDRA1
PTA1/ADC1
DDRA2
PTA2/ADC2
DDRA3
DDRA4
DDRA5
PTA5/ADC5
DDRA6
PTA6/ADC6
DDRA7
PTA7/ADC7
DDRB0
DDRB1
DDRB2
DDRB3
DDRB4
DDRB5
DDRB6
DDRB7
DDRC0
DDRC1
DDRC2
DDRC3
DDRC4
DDRC5
DDRC6
DDRC7
DDRD0
KBIE0
PTD0/KBI0(2)
DDRD1
KBIE1
PTD1/KBI1(2)
DDRD2
KBIE2
PTD2/KBI2(2)
DDRD3
KBIE3
PTD3/KBI3(2)
DDRD4
KBIE4
PTD4/KBI4(2)
DDRD5
KBIE5
PTD5/KBI5(2)
DDRD6
KBIE6
PTD6/KBI6(2)
DDRD7
KBIE7
PTD7/KBI7(2)
Module
ADC
Register
ADSCR ($0057)
Control Bit
ADCH[4:0]
Pin
PTA3/ADC3
PTA4/ADC4
PTB0/SDA(1)
MBUS
MMCR1 ($0049)
MMEN
SCI
SCC1 ($0013)
ENSCI
T1SC0 ($0025)
ELS0B:ELS0A
PTB4/T1CH0(2)
T1SC1 ($0028)
ELS1B:ELS1A
PTB5/T1CH1(2)
T2SC0 ($0030)
ELS0B:ELS0A
PTB6/T2CH0(2)
T2SC1 ($0033)
ELS1B:ELS1A
PTB7/T2CH1(2)
IRQ2
INTSCR2 ($001C)
IMASK2
TIM1
TIM2
PTB1/SCL(1)
PTB2/TxD(1)
PTB3/RxD(1)
PTC0/IRQ2(2)
PTC1
PTC2/MISO
SPI
SPCR ($0010)
SPE
PTC3/MOSI
PTC4/SS
PTC5/SPSCK
IRSCI
KBI
IRSCC1 ($0040)
KBIER ($001B)
ENSCI
PTC6/SCTxD(1)
PTC7/SCRxD(1)
Notes:
1. Pin is open-drain when configured as output. Pullup resistor must be connected when configured as output.
2. Pin has schmitt trigger when configured as input.
Data Sheet
365
The port A data register contains a data latch for each of the eight port A
pins.
Address:
$0000
Bit 7
Bit 0
PTA7
PTA6
PTA5
PTA4
PTA3
PTA2
PTA1
PTA0
ADC2
ADC1
ADC0
Read:
Write:
Reset:
Alternative Function:
Unaffected by reset
ADC7
ADC6
ADC5
ADC4
ADC3
Additional Function: LED drive LED drive LED drive LED drive LED drive LED drive LED drive LED drive
NOTE:
Data Sheet
Care must be taken when reading port A while applying analog voltages
to ADC7ADC0 pins. If the appropriate ADC channel is not enabled,
excessive current drain may occur if analog voltages are applied to the
PTAx/ADCx pin, while PTA is read as a digital input. Those ports not
selected as analog input channels are considered digital I/O ports.
MC68HC908AP Family Rev. 2.5
366
MOTOROLA
$0004
Bit 7
Bit 0
DDRA7
DDRA6
DDRA5
DDRA4
DDRA3
DDRA2
DDRA1
DDRA0
Read:
Write:
Reset:
NOTE:
Avoid glitches on port A pins by writing to the port A data register before
changing data direction register A bits from 0 to 1.
Data Sheet
367
DDRAx
PTAx
DDRA
Bit
PTA
Bit
X(1)
Accesses to PTA
Read/Write
Read
Write
Input, Hi-Z(2)
DDRA[7:0]
Pin
PTA[7:0](3)
Output
DDRA[7:0]
PTA[7:0]
PTA[7:0]
Notes:
1. X = dont care.
2. Hi-Z = high impedance.
3. Writing affects data register, but does not affect input.
Data Sheet
368
MOTOROLA
$000C
Bit 7
Bit 0
LEDA7
LEDA6
LEDA5
LEDA4
LEDA3
LEDA2
LEDA1
LEDA0
Read:
Write:
Reset:
Data Sheet
369
NOTE:
$0001
Bit 7
Bit 0
PTB7
PTB6
PTB5
PTB4
PTB3
PTB2
PTB1
PTB0
TxD
SCL
SDA
Read:
Write:
Reset:
Alternative Function:
Unaffected by reset
T2CH1
T2CH0
T1CH1
T1CH0
RxD
Data Sheet
370
MOTOROLA
$0005
Bit 7
Bit 0
DDRB7
DDRB6
DDRB5
DDRB4
DDRB3
DDRB2
DDRB1
DDRB0
Read:
Write:
Reset:
Data Sheet
371
Avoid glitches on port B pins by writing to the port B data register before
changing data direction register B bits from 0 to 1.
Figure 18-8 shows the port B I/O logic.
DDRBx
PTBx #
PTBx
DDRB
Bit
PTB
Bit
X(1)
Accesses to PTB
Read/Write
Read
Write
Input, Hi-Z(2)
DDRB[7:0]
Pin
PTB[7:0](3)
Output
DDRB[7:0]
PTB[7:0]
PTB[7:0]
Notes:
1. X = dont care.
2. Hi-Z = high impedance.
3. Writing affects data register, but does not affect input.
Data Sheet
372
MOTOROLA
18.4 Port C
Port C is an 8-bit special-function port that shares one of its pins with the
IRQ2, four of its pins with the SPI module, and two of its pins with the
IRSCI module.
The port C data register contains a data latch for each of the eight port C
pins.
Address:
$0002
Bit 7
Bit 0
PTC7
PTC6
PTC5
PTC4
PTC3
PTC2
PTC1
PTC0
Read:
Write:
Reset:
Alternative Function:
Unaffected by reset
SCRxD
SCTxD
SPSCK
SS
MOSI
MISO
IRQ2
Data Sheet
373
$0006
Bit 7
Bit 0
DDRC7
DDRC6
DDRC5
DDRC4
DDRC3
DDRC2
DDRC1
DDRC0
Read:
Write:
Reset:
NOTE:
Avoid glitches on port C pins by writing to the port C data register before
changing data direction register C bits from 0 to 1.
Figure 18-11 shows the port C I/O logic.
NOTE:
Data Sheet
374
MOTOROLA
DDRCx
PTCx #
PTCx
DDRC
Bit
PTC
Bit
X(1)
Accesses to PTC
Read/Write
Read
Input, Hi-Z(2)
DDRC[7:0]
Pin
Output
DDRC[7:0]
PTC[7:0]
Write
PTC[7:0]
(3)
PTC[7:0]
Notes:
1. X = dont care.
2. Hi-Z = high impedance.
3. Writing affects data register, but does not affect input.
Data Sheet
375
The port D data register contains a data latch for each of the eight port D
pins.
Address:
$0003
Bit 7
Bit 0
PTD7
PTD6
PTD5
PTD4
PTD3
PTD2
PTD1
PTD0
KBI2
KBI1
KBI0
Read:
Write:
Reset:
Alternative Function:
Unaffected by reset
KBI7
KBI6
KBI5
KBI4
KBI3
Data Sheet
376
MOTOROLA
$0007
Bit 7
Bit 0
DDRD7
DDRD6
DDRD5
DDRD4
DDRD3
DDRD2
DDRD1
DDRD0
Read:
Write:
Reset:
NOTE:
Avoid glitches on port D pins by writing to the port D data register before
changing data direction register D bits from 0 to 1.
Figure 18-14 shows the port D I/O logic.
DDRDx
PTDx #
PTDx
Data Sheet
377
DDRD
Bit
PTD
Bit
X(1)
Accesses to PTD
Read/Write
Read
Input, Hi-Z(2)
DDRD[7:0]
Pin
Output
DDRD[7:0]
PTD[7:0]
Write
PTD[7:0]
(3)
PTD[7:0]
Notes:
1. X = dont care.
2. Hi-Z = high impedance.
3. Writing affects data register, but does not affect input.
Data Sheet
378
MOTOROLA
19.1 Introduction
The external interrupt (IRQ) module provides two maskable interrupt
inputs: IRQ1 and IRQ2.
19.2 Features
Features of the IRQ module include:
NOTE:
Addr.
$001C
$001E
Hysteresis buffers
Register Name
Bit 7
Read:
IRQ2 Status and Control
Register Write:
(INTSCR2)
Reset:
Read:
IRQ1 Status and Control
Register Write:
(INTSCR1)
Reset:
6
PUC0ENB
IRQ2F
0
ACK2
IRQ1F
0
ACK1
Bit 0
IMASK2
MODE2
IMASK1
MODE1
= Unimplemented
Data Sheet
379
Interrupt signals on the IRQ pin are latched into the IRQ latch. An
interrupt latch remains set until one of the following actions occurs:
The external interrupt pin is falling-edge-triggered and is softwareconfigurable to be either falling-edge or falling-edge and low-leveltriggered. The MODE bit in the INTSCR controls the triggering sensitivity
of the IRQ pin.
When an interrupt pin is edge-triggered only, the interrupt remains set
until a vector fetch, software clear, or reset occurs.
When an interrupt pin is both falling-edge and low-level-triggered, the
interrupt remains set until both of the following occur:
The vector fetch or software clear may occur before or after the interrupt
pin returns to logic 1. As long as the pin is low, the interrupt request
remains pending. A reset will clear the latch and the MODE1 control bit,
thereby clearing the interrupt even if the pin stays low.
When set, the IMASK bit in the INTSCR mask all external interrupt
requests. A latched interrupt request is not presented to the interrupt
priority logic unless the IMASK bit is clear.
Data Sheet
380
MOTOROLA
The interrupt mask (I) in the condition code register (CCR) masks all
interrupt requests, including external interrupt requests.
ACK1
RESET
TO CPU FOR
BIL/BIH
INSTRUCTIONS
VECTOR
FETCH
DECODER
VDD
INTERNAL
PULLUP
DEVICE
VDD
IRQ1F
D
CLR
SYNCHRONIZER
CK
IRQ1
IRQ1
INTERRUPT
REQUEST
IRQ1
FF
IMASK1
MODE1
TO MODE
SELECT
LOGIC
HIGH
VOLTAGE
DETECT
ACK2
RESET
NOTE:
VECTOR
FETCH
DECODER
VDD
INTERNAL
PULLUP
DEVICE
VDD
IRQ2F
PUC0ENB
D
CLR
CK
IRQ2
SYNCHRONIZER
IRQ2
INTERRUPT
REQUEST
IRQ2
FF
IMASK2
MODE2
Data Sheet
381
If the MODE bit is set, the IRQ pin is both falling-edge-sensitive and lowlevel-sensitive. With MODE set, both of the following actions must occur
to clear IRQ:
The vector fetch or software clear and the return of the IRQ pin to logic 1
may occur in any order. The interrupt request remains pending as long
as the IRQ pin is at logic 0. A reset will clear the latch and the MODE
control bit, thereby clearing the interrupt even if the pin stays low.
If the MODE bit is clear, the IRQ pin is falling-edge-sensitive only. With
MODE clear, a vector fetch or software clear immediately clears the IRQ
latch.
The IRQF bit in the INTSCR register can be used to check for pending
interrupts. The IRQF bit is not affected by the IMASK bit, which makes it
useful in applications where polling is preferred.
Use the BIH or BIL instruction to read the logic level on the IRQ1 pin.
NOTE:
Data Sheet
The BIH and BIL instructions do not read the logic level on the IRQ2 pin.
MC68HC908AP Family Rev. 2.5
382
MOTOROLA
NOTE:
Data Sheet
383
The IRQ1 status and control register (INTSCR1) controls and monitors
operation of IRQ1. The INTSCR1 has the following functions:
Address:
Read:
$001E
Bit 7
IRQ1F
Write:
Reset:
Bit 0
IMASK1
MODE1
ACK1
0
= Unimplemented
384
MOTOROLA
The IRQ2 status and control register (INTSCR2) controls and monitors
operation of IRQ2. The INTSCR2 has the following functions:
Address:
$001C
Bit 7
Read:
IRQ2F
PUC0ENB
Write:
Reset:
Bit 0
IMASK2
MODE2
ACK2
0
= Unimplemented
Data Sheet
385
This read/write bit controls the triggering sensitivity of the IRQ2 pin.
Reset clears MODE2.
1 = IRQ2 interrupt requests on falling edges and low levels
0 = IRQ2 interrupt requests on falling edges only
Data Sheet
386
MOTOROLA
20.1 Introduction
The keyboard interrupt module (KBI) provides eight independently
maskable external interrupts which are accessible via PTD0PTD7.
When a port pin is enabled for keyboard interrupt function, an internal
30k pullup device is also enabled on the pin.
20.2 Features
Features of the keyboard interrupt module include the following:
Addr.
Register Name
$001A
Read:
Keyboard Status
and Control Register Write:
(KBSCR)
Reset:
Read:
Keyboard Interrupt Enable
$001B
Write:
Register (KBIER)
Reset:
Bit 7
KEYF
Bit 0
IMASKK
MODEK
ACKK
0
KBIE7
KBIE6
KBIE5
KBIE4
KBIE3
KBIE2
KBIE1
KBIE0
= Unimplemented
Data Sheet
387
KBI0KBI7
PTD0/KBI0PTD7/KBI7
KBIE0KBIE7
KBI0
ACKK
VDD
VECTOR FETCH
DECODER
KEYF
RESET
.
KBIE0
CLR
Q
SYNCHRONIZER
CK
TO PULLUP ENABLE
.
KEYBOARD
INTERRUPT FF
KBI7
Keyboard
Interrupt
Request
IMASKK
MODEK
KBIE7
TO PULLUP ENABLE
388
MOTOROLA
If the MODEK bit is set, the keyboard interrupt pins are both falling edgeand low level-sensitive, and both of the following actions must occur to
clear a keyboard interrupt request:
The vector fetch or software clear and the return of all enabled keyboard
interrupt pins to logic 1 may occur in any order.
If the MODEK bit is clear, the keyboard interrupt pin is falling-edgesensitive only. With MODEK clear, a vector fetch or software clear
immediately clears the keyboard interrupt request.
Reset clears the keyboard interrupt request and the MODEK bit, clearing
the interrupt request even if a keyboard interrupt pin stays at logic 0.
Data Sheet
389
NOTE:
Data Sheet
390
MOTOROLA
Address:
Read:
$001A
Bit 7
KEYF
Write:
Reset:
Bit 0
IMASKK
MODEK
ACKK
0
= Unimplemented
Data Sheet
391
$001B
Bit 7
Bit 0
KBIE7
KBIE6
KBIE5
KBIE4
KBIE3
KBIE2
KBIE1
KBIE0
Read:
Write:
Reset:
Data Sheet
392
MOTOROLA
Data Sheet
393
Data Sheet
394
MOTOROLA
RESET CIRCUIT
RESET STATUS REGISTER
COP TIMEOUT
STOP INSTRUCTION
INTERNAL RESET SOURCES
RESET VECTOR FETCH
ICLK
21.1 Introduction
COPCTL WRITE
COP CLOCK
CLEAR
COP COUNTER
COPCTL WRITE
COP RATE SEL
(COPRS FROM CONFIG1)
Data Sheet
395
NOTE:
Service the COP immediately after reset and before entering or after
exiting STOP Mode to guarantee the maximum time before the first COP
counter overflow.
A COP reset pulls the RST pin low for 32 ICLK cycles and sets the COP
bit in the SIM reset status register (SRSR).
In monitor mode, the COP is disabled if the RST pin or the IRQ1 is held
at VTST. During the break state, VTST on the RST pin disables the COP.
NOTE:
21.3.1 ICLK
ICLK is the internal oscillator output signal. See Section 24. Electrical
Specifications for ICLK frequency specification.
Data Sheet
396
MOTOROLA
Data Sheet
397
$001F
Bit 7
Bit 0
SSREC
STOP
COPD
Read:
COPRS
Write:
Reset:
$FFFF
Bit 7
Read:
Write:
Reset:
Unaffected by reset
Bit 0
398
MOTOROLA
21.5 Interrupts
The COP does not generate CPU interrupt requests.
Data Sheet
399
Data Sheet
400
MOTOROLA
22.1 Introduction
This section describes the low-voltage inhibit (LVI) module. The LVI
module monitors the voltage on the VDD pin and VREG pin, and can force
a reset when VDD voltage falls below VTRIPF1, or VREG voltage falls
below VTRIPF2.
NOTE:
The VREG pin is the output of the internal voltage regulator and is
guaranteed to meet operating specification as long as VDD is within the
MCU operating voltage.
The LVI feature is intended to provide the safe shutdown of the
microcontroller and thus protection of related circuitry prior to any
application VDD voltage collapsing completely to an unsafe level. It is not
intended that users operate the microcontroller at lower than the
specified operating voltage, VDD.
22.2 Features
Features of the LVI module include:
Data Sheet
401
Addr.
$FE0F
Register Name
Bit 7
Read: LVIOUT
LVI Status Register
Write:
(LVISR)
Reset:
0
Bit 0
= Unimplemented
Data Sheet
402
MOTOROLA
VDD
STOP INSTRUCTION
LVISTOP
FROM CONFIG1
LVIPWRD
FROM CONFIG1
FROM CONFIG1
LOW VDD
DETECTOR
LOW VREG
DETECTOR
LVIRSTD
TO LVISR
LVIREGD
FROM CONFIG1
LVISTOP
STOP INSTRUCTION
VREG
Data Sheet
403
Read:
$FE0F
Bit 7
Bit 0
LVIOUT
Write:
Reset:
= Unimplemented
404
MOTOROLA
LVIOUT
Previous value
Data Sheet
405
Data Sheet
406
MOTOROLA
23.1 Introduction
This section describes the break module. The break module can
generate a break interrupt that stops normal program flow at a defined
address to enter a background program.
23.2 Features
Features of the break module include:
Data Sheet
407
Software writes a logic 1 to the BRKA bit in the break status and
control register.
BREAK
8-BIT COMPARATOR
BREAK ADDRESS REGISTER LOW
IAB7IAB0
Data Sheet
408
MOTOROLA
Addr.
Register Name
Read:
SIM Break Status Register
$FE00
Write:
(SBSR)
Reset:
$FE03
Read:
SIM Break Flag Control
Register Write:
(SBFCR)
Reset:
$FE0C
$FE0D
Read:
Break Address
Register High Write:
(BRKH)
Reset:
Read:
Break Address
Register Low Write:
(BRKL)
Reset:
Read:
Break Status and Control
$FE0E
Register Write:
(BRKSCR)
Reset:
Bit 7
1
SBSW
Note
Bit 0
R
0
BCFE
Bit 15
14
13
12
11
10
Bit 8
Bit 7
Bit 0
BRKE
BRKA
= Unimplemented
= Reserved
Data Sheet
409
Data Sheet
410
MOTOROLA
$FE0E
Bit 7
BRKE
BRKA
Read:
Bit 0
Write:
Reset:
= Unimplemented
Data Sheet
411
$FE0C
Bit 7
Bit 0
Bit 15
14
13
12
11
10
Bit 8
Read:
Write:
Reset:
$FE0D
Bit 7
Bit 0
Bit 7
Bit 0
Read:
Write:
Reset:
$FE00
Bit 7
Read:
Bit 0
SBSW
R
Write:
Note
Reset:
= Reserved
Data Sheet
412
MOTOROLA
This status bit is set when a break interrupt causes an exit from wait
mode or stop mode. Clear SBSW by writing a logic 0 to it. Reset clears
SBSW.
1 = Stop mode or wait mode was exited by break interrupt
0 = Stop mode or wait mode was not exited by break interrupt
SBSW can be read within the break interrupt routine. The user can
modify the return address on the stack by subtracting 1 from it. The
following code is an example.
; This code works if the H register has been pushed onto the stack in the break
; service routine software. This code should be executed at the end of the break
; service routine software.
HIBYTE
EQU
LOBYTE
EQU
SBSW,SBSR, RETURN
TST
LOBYTE,SP
BNE
DOLO
DEC
HIBYTE,SP
DOLO
DEC
LOBYTE,SP
RETURN
PULH
RTI
;Restore H register.
Data Sheet
413
$FE03
Bit 7
Bit 0
BCFE
Read:
Write:
Reset:
0
R
= Reserved
Data Sheet
414
MOTOROLA
24.1 Introduction
NOTE:
Symbol
Value
Unit
Supply voltage
VDD
0.3 to +6.0
Input voltage
All pins (except IRQ1)
IRQ1 pin
VIN
V
V
25
mA
IMVSS
100
mA
IMVDD
100
mA
Storage temperature
TSTG
55 to +150
Notes:
1. Voltages referenced to VSS.
NOTE:
This device contains circuitry to protect the inputs against damage due
to high static voltages or electric fields; however, it is advised that normal
precautions be taken to avoid application of any voltage higher than
Data Sheet
415
Symbol
Value
Unit
TA
40 to +85
VDD
2.7 to 5.5
Symbol
Value
Unit
Thermal resistance
42-Pin SDIP
44-Pin QFP
48-Pin LQFP
JA
60
95
80
C/W
C/W
C/W
PI/O
User determined
Power dissipation(1)
PD
Constant(2)
PD x (TA + 273 C)
+ PD2 JA
W/C
TJ
TA + (PD JA)
TJM
100
Notes:
1. Power dissipation is a function of temperature.
2. K constant unique to the device. K can be determined for a known TA and measured PD.
With this value of K, PD and TJ can be determined for any value of TA.
Data Sheet
416
MOTOROLA
Symbol
Min
Typ(2)
Max
Unit
VOH
VDD 0.8
VOL
VOL
VOLSCI
VOLIIC
0.4
0.4
0.4
0.4
V
V
V
V
IOL
15
25
mA
VIH
0.7 VDD
0.7 VREG
VDD
VREG
V
V
VIL
VSS
VSS
0.3 VDD
0.3 VREG
V
V
10
20
2.5
10
mA
mA
0.8
22
20
1.8
150
125
mA
A
A
1
45
42
2.5
300
250
mA
A
A
IDD
Stop (0 to 85C)
with OSC, TBM, and LVI modules on(5)
with OSC and TBM modules on(5)
all modules off(6)
Digital I/O ports Hi-Z leakage current
IIL
10
Input current
IIN
COUT
CIN
12
8
pF
pF
Capacitance
Ports (as input or output)
Data Sheet
417
Symbol
Min
Typ(2)
Max
Unit
VPOR
100
mV
RPOR
0.035
V/ms
VHI
1.4 VDD
8.5
RPU1
RPU2
21
21
27
27
39
39
k
k
VTRIPF1
2.25
2.45
2.65
VTRIPR1
2.35
2.55
2.75
VTRIPF2
2.25
2.45
2.65
VREG
2.25
2.50
2.75
Pullup resistors(9)
PTD[0:7]
RST, IRQ1, IRQ2
VREG(10), (11)
Notes:
1. VDD = 4.5 to 5.5 Vdc, VSS = 0 Vdc, TA = TL to TH, unless otherwise noted.
2. Typical values reflect average measurements at midpoint of voltage range, 25 C only.
3. Run (operating) IDD measured using external 32MHz clock to OSC1; all inputs 0.2 V from rail; no dc loads; less than 100pF
on all outputs; CL = 20 pF on OSC2; all ports configured as inputs; OSC2 capacitance linearly affects run IDD; measured
with all modules enabled.
4. Wait IDD measured using external 32MHz to OSC1; all inputs 0.2 V from rail; no dc loads; less than 100 pF on all outputs.
CL = 20 pF on OSC2; all ports configured as inputs; OSC2 capacitance linearly affects wait IDD.
5. STOP IDD measured using external 32.768kHz clock to OSC1; no port pins sourcing current.
6. STOP IDD measured with OSC1 grounded; no port pins sourcing current.
7. Maximum is highest voltage that POR is guaranteed. The rearm voltage is triggered by VREG.
8. If minimum VDD is not reached before the internal POR reset is released, RST must be driven low externally until minimum
VDD is reached.
9. RPU1 and RPU2 are measured at VDD = 5.0V
10. Values are not affected by operating VDD; they are the same for 3V and 5V.
11. Measured from VDD = VTRIPF1 (Min) to 5.5 V.
Data Sheet
418
MOTOROLA
Characteristic(1)
Symbol
Min
Max
Unit
fOP
MHz
tIRL
750
ns
Notes:
1. VDD = 4.5 to 5.5 Vdc, VSS = 0 Vdc; timing shown with respect to 20% VDD and 70% VDD, unless otherwise noted.
2. Some modules may require a minimum frequency greater than dc for proper operation; see appropriate table for this
information.
3. Minimum pulse width reset is guaranteed to be recognized. It is possible for a smaller pulse width to cause a reset.
Symbol
Min
Typ
Max
Unit
fICLK
16k
22k(2)
26k
Hz
fOSC
dc
16M
Hz
fXTALCLK
32k
Hz
CL
C1
2 CL
C2
2 CL
RB
10M
Series resistor(5)
RS
100k
fRCCLK
REXT
RC oscillator external C
CEXT
7.6M
10
Hz
pF
Notes:
1. The oscillator circuit operates at VREG.
2. Typical value reflect average measurements at midpoint of voltage range, 25 C only.
3. No more than 10% duty cycle deviation from 50%. The max. frequency is limited by an EMC filter.
4. Fundamental mode crystals only.
5. Consult crystal vendor data sheet.
Data Sheet
419
Characteristic(1)
Symbol
Min
Max
Unit
Notes
Supply voltage
VDDA
4.5
5.5
Input range
VADIN
VDDA
VADIN VDDA
Resolution
BAD
10
10
bits
Absolute accuracy
AAD
1.5
LSB
fADIC
500k
1.048M
Hz
Conversion range
RAD
VREFL
VREFH
ADC voltage
reference high
VREFH
VDDA + 0.1
ADC voltage
reference low
VREFL
VSSA 0.1
Conversion time
tADC
16
17
tADIC
cycles
Sample time
tADS
tADIC
cycles
Monotonicity
MAD
ZADI
000
001
HEX
VADIN = VREFL
Full-scale reading
FADI
3FD
3FF
HEX
VADIN = VREFH
Input capacitance
CADI
20
pF
Input impedance
RADI
20M
VREFH/VREFL
IVREF
1.6
mA
Includes quantization.
0.5 LSB = 1 ADC step.
tADIC = 1/fADIC
Guaranteed
Not tested.
Not tested.
Notes:
1. VDD = 4.5 to 5.5 Vdc, VSS = 0 Vdc, TA = TL to TH, unless otherwise noted.
Data Sheet
420
MOTOROLA
Symbol
Min
Typ(2)
Max
Unit
VOH
VDD 0.4
VOL
VOL
VOLSCI
VOLIIC
0.4
0.4
0.4
0.4
V
V
V
V
IOL
15
mA
VIH
0.7 VDD
0.7 VREG
VDD
VREG
V
V
VIL
VSS
VSS
0.3 VDD
0.3 VREG
V
V
Run(4)
with fOP = 4 MHz
with fOP = 8 MHz
10
mA
7.5
10
mA
Wait(5)
with fOP = 4 MHz
with fOP = 8 MHz
mA
2.9
mA
1.2
7
5
1.6
60
50
mA
A
A
1.3
35
30
2.2
220
200
mA
A
A
Stop (25C)
with OSC, TBM, and LVI modules on(6)
with OSC and TBM modules on(6)
all modules off(7)
IDD
Stop (0 to 85C)
with OSC, TBM, and LVI modules on(6)
with OSC and TBM modules on(6)
all modules off(7)
Digital I/O ports Hi-Z leakage current
IIL
10
Input current
IIN
COUT
CIN
12
8
pF
pF
Capacitance
Ports (as input or output)
Data Sheet
421
Symbol
Min
Typ(2)
Max
Unit
VPOR
100
mV
RPOR
0.02
V/ms
VHI
1.4 VDD
8.5
RPU1
RPU2
21
21
27
27
39
39
k
k
VTRIPF1
2.25
2.45
2.65
VTRIPR1
2.35
2.55
2.75
VTRIPF2
2.25
2.45
2.65
VREG
2.25
2.50
2.75
Pullup resistors(10)
PTD[0:7]
RST, IRQ1, IRQ2
VREG(11), (12)
Notes:
1. VDD = 2.7 to 3.3 Vdc, VSS = 0 Vdc, TA = TL to TH, unless otherwise noted.
2. Typical values reflect average measurements at midpoint of voltage range, 25 C only.
3. At VDD = 3V, an on-chip charge pump is activated for the VREG regulator, therefore some IDD values will appear higher
than the IDD values at VDD = 5V.
4. Run (operating) IDD measured using external 16MHz/32MHz clock to OSC1; all inputs 0.2 V from rail; no dc loads; less
than 100 pF on all outputs; CL = 20 pF on OSC2; all ports configured as inputs; OSC2 capacitance linearly affects run IDD;
measured with all modules enabled.
5. Wait IDD measured using external 16MHz/32MHz clock to OSC1; all inputs 0.2 V from rail; no dc loads; less than 100 pF
on all outputs. CL = 20 pF on OSC2; all ports configured as inputs; OSC2 capacitance linearly affects wait IDD.
6. STOP IDD measured with external 32.768kHz clock to OSC1; no port pins sourcing current.
7. STOP IDD measured with OSC1 grounded; no port pins sourcing current.
8. Maximum is highest voltage that POR is guaranteed. The rearm voltage is triggered by VREG.
9. If minimum VDD is not reached before the internal POR reset is released, RST must be driven low externally until minimum
VDD is reached.
10. RPU1 and RPU2 are measured at VDD = 5.0V
11. Values are not affected by operating VDD; they are the same for 3V and 5V.
12. Measured from VDD = VTRIPF1 (Min) to 5.5 V.
Symbol
Min
Max
Unit
fOP
MHz
tIRL
1.5
Notes:
1. VDD = 2.7 to 3.3 Vdc, VSS = 0 Vdc; timing shown with respect to 20% VDD and 70% VDD, unless otherwise noted.
2. Some modules may require a minimum frequency greater than dc for proper operation; see appropriate table for this
information.
3. Minimum pulse width reset is guaranteed to be recognized. It is possible for a smaller pulse width to cause a reset.
Data Sheet
422
MOTOROLA
Symbol
Min
Typ
Max
Unit
fICLK
16k
22k(2)
26k
Hz
fOSC
dc
16M
Hz
fXTALCLK
32k
Hz
CL
C1
2 CL
C2
2 CL
RB
10M
Series resistor(5)
RS
100k
fRCCLK
REXT
RC oscillator external C
CEXT
7.6M
Hz
10
pF
Notes:
1. The oscillator circuit operates at VREG.
2. Typical value reflect average measurements at midpoint of voltage range, 25 C only.
3. No more than 10% duty cycle deviation from 50%. The max. frequency is limited by an EMC filter.
4. Fundamental mode crystals only.
5. Consult crystal vendor data sheet.
MCU
CEXT = 10 pF
OSC1
6
4
VREG
REXT
CEXT
0
0
10
20
30
Resistor, REXT (k)
40
50
Data Sheet
423
Characteristic(1)
Symbol
Min
Max
Unit
Notes
Supply voltage
VDDA
2.7
3.3
Input range
VADIN
VDDA
VADIN VDDA
Resolution
BAD
10
10
bits
Absolute accuracy
AAD
1.5
LSB
fADIC
500k
2M
Hz
Conversion range
RAD
VREFL
VREFH
ADC voltage
reference high
VREFH
VDDA + 0.1
ADC voltage
reference low
VREFL
VSSA 0.1
Conversion time
tADC
16
17
tADIC
cycles
Sample time
tADS
tADIC
cycles
Monotonicity
MAD
ZADI
000
001
HEX
VADIN = VREFL
Full-scale reading
FADI
3FD
3FF
HEX
VADIN = VREFH
Input capacitance
CADI
20
pF
Input impedance
RADI
20M
VREFH/VREFL
IVREF
1.6
mA
Includes quantization.
0.5 LSB = 1 ADC step.
tADIC = 1/fADIC
Guaranteed
Not tested.
Not tested.
Notes:
1. VDD = 4.5 to 5.5 Vdc, VSS = 0 Vdc, TA = TL to TH, unless otherwise noted.
Data Sheet
424
MOTOROLA
Characteristic(1)
Symbol
Min
Typ
Max
Unit
Input low
VIL
0.5
0.8
Input high
VIH
2.1
5.5
Output low
VOL
0.4
ILEAK
Input leakage
IPULLUP
Pullup current
100
350
Comments
Notes:
1. VDD = 2.7 to 5.5Vdc, VSS = 0 Vdc, TA = TL to TH, unless otherwise noted.
2. The IPULLUP (max) specification is determined primarily by the need to accommodate a maximum of 1.1k equivalent series resistor of removable SMBus devices, such as the smart battery, while maintaining the VOL (max) of the bus.
SDA
SCL
tHD.STA
tLOW
tHIGH
tSU.DAT
tHD.DAT
tSU.STA
tSU.STO
Data Sheet
425
Characteristic
Symbol
Min
Typ
Max
Unit
Comments
Operating frequency
fSMB
10
100
kHz
tBUF
4.7
tHD.STA
4.0
tSU.STA
4.7
tSU.STO
4.0
Hold time
tHD.DAT
300
ns
Setup time
tSU.DAT
250
ns
tTIMEOUT
25
35
ms
Clock low
tLOW
4.7
Clock high
tHIGH
4.0
tLOW.SEXT
25
ms
tLOW.MEXT
10
ms
Fall time
tF
300
ns
Rise time
tR
1000
ns
Notes:
1. Devices participating in a transfer will timeout when any clock low exceeds the value of TTIMEOUT min. of 25ms. Devices
that have detected a timeout condition must reset the communication no later than TTIMEOUT max of 35ms. The maximum
value specified must be adhered to by both a master and a slave as it incorporates the cumulative limit for both a master
(10 ms) and a slave (25 ms).
Software should turn-off the MMIIC module to release the SDA and SCL lines.
2. THIGH MAX provides a simple guaranteed method for devices to detect the idle conditions.
3. TLOW.SEXT is the cumulative time a slave device is allowed to extend the clock cycles in one message from the initial start
to the stop. If a slave device exceeds this time, it is expected to release both its clock and data lines and reset itself.
4. TLOW.MEXT is the cumulative time a master device is allowed to extend its clock cycles within each byte of a message as
defined from start-to-ack, ack-to-ack, or ack-to-stop.
5. Rise and fall time is defined as follows: TR = (VILMAX 0.15) to (VIHMIN + 0.15), TF = 0.9VDD to (VILMAX 0.15).
Data Sheet
426
MOTOROLA
Characteristic
Symbol
Min
Typ
Max
Unit
Reference frequency
fRDV
30
32.768
100
kHz
fNOM
125
kHz
fVRS
125k
40M
Hz
255
2E
4095
2P
15
fVCLK
125k
40M
Hz
tLOCK
50
ms
tLOCK
50
ms
(1)
fJ
fRCLK
0.025%
2P N/4
Hz
PLL jitter
Notes:
1. Deviation of average bus frequency over 2ms. N = VCO multiplier.
Data Sheet
427
Diagram
Number(1)
Characteristic(2)
Symbol
Min
Max
Unit
Operating frequency
Master
Slave
fOP(M)
fOP(S)
fOP/128
dc
fOP/2
fOP
MHz
MHz
Cycle time
Master
Slave
tCYC(M)
tCYC(S)
2
1
128
tCYC
tCYC
tLead(S)
tCYC
tLag(S)
tCYC
tSCKH(M)
tSCKH(S)
tCYC 25
1/2 tCYC 25
64 tCYC
ns
ns
tSCKL(M)
tSCKL(S)
tCYC 25
1/2 tCYC 25
64 tCYC
ns
ns
tSU(M)
tSU(S)
30
30
ns
ns
tH(M)
tH(S)
30
30
ns
ns
tA(CP0)
tA(CP1)
0
0
40
40
ns
ns
tDIS(S)
40
ns
10
tV(M)
tV(S)
50
50
ns
ns
11
tHO(M)
tHO(S)
0
0
ns
ns
Notes:
1. Numbers refer to dimensions in Figure 24-3 and Figure 24-4.
2. All timing is shown with respect to 20% VDD and 70% VDD, unless noted; 100 pF load on all SPI pins.
3. Time to data active from high-impedance state
4. Hold time to high-impedance state
5. With 100 pF on all SPI pins
Data Sheet
428
MOTOROLA
Diagram
Number(1)
Characteristic(2)
Symbol
Min
Max
Unit
Operating frequency
Master
Slave
fOP(M)
fOP(S)
fOP/128
dc
fOP/2
fOP
MHz
MHz
Cycle time
Master
Slave
tCYC(M)
tCYC(S)
2
1
128
tCYC
tCYC
tLead(s)
tCYC
tLag(s)
tCYC
tSCKH(M)
tSCKH(S)
tCYC 35
1/2 tCYC 35
64 tCYC
ns
ns
tSCKL(M)
tSCKL(S)
tCYC 35
1/2 tCYC 35
64 tCYC
ns
ns
tSU(M)
tSU(S)
40
40
ns
ns
tH(M)
tH(S)
40
40
ns
ns
tA(CP0)
tA(CP1)
0
0
50
50
ns
ns
tDIS(S)
50
ns
10
tV(M)
tV(S)
60
60
ns
ns
11
tHO(M)
tHO(S)
0
0
ns
ns
Notes:
1. Numbers refer to dimensions in Figure 24-3 and Figure 24-4.
2. All timing is shown with respect to 20% VDD and 70% VDD, unless noted; 100 pF load on all SPI pins.
3. Time to data active from high-impedance state
4. Hold time to high-impedance state
5. With 100 pF on all SPI pins
Data Sheet
429
SS
INPUT
SPSCK OUTPUT
CPOL = 0
NOTE
SPSCK OUTPUT
CPOL = 1
NOTE
5
4
5
4
6
MISO
INPUT
BITS 61
MSB IN
11
MOSI
OUTPUT
7
LSB IN
10
11
BITS 61
Note: This first clock edge is generated internally, but is not seen at the SPSCK pin.
SS
INPUT
SPSCK OUTPUT
CPOL = 0
NOTE
SPSCK OUTPUT
CPOL = 1
NOTE
4
6
MISO
INPUT
MSB IN
10
MOSI
OUTPUT
BITS 61
11
7
LSB IN
10
BITS 61
Note: This last clock edge is generated internally, but is not seen at the SPSCK pin.
Data Sheet
430
MOTOROLA
SS
INPUT
3
1
SPSCK INPUT
CPOL = 0
5
4
2
SPSCK INPUT
CPOL = 1
5
4
9
MISO
INPUT
SLAVE
MSB OUT
6
MOSI
OUTPUT
BITS 61
NOTE
11
11
10
MSB IN
BITS 61
LSB IN
SS
INPUT
1
SPSCK INPUT
CPOL = 0
5
4
2
SPSCK INPUT
CPOL = 1
8
MISO
OUTPUT
5
4
10
NOTE
MOSI
INPUT
SLAVE
MSB OUT
BITS 61
11
10
MSB IN
BITS 61
LSB IN
Data Sheet
431
Symbol
Min.
Max.
Unit
VRDR
1.3
Rows
512
Bytes
fread(1)
32k
8M
Hz
terase(2)
20
ms
tme(3)
200
ms
tnvs
tnvh
tnvh1
100
tpgs
10
Program time
tprog
20
40
tads
20
ns
tadh
30
ns
Recovery time
trcv(4)
Cumulative HV period
thv(5)
ms
10k
Cycles
10k
Cycles
10
Years
Notes:
1. fread is defined as the frequency range for which the FLASH memory can be read.
2. If the page erase time is longer than terase (Min.), there is no erase-disturb, but it reduces the endurance of the FLASH
memory.
3. If the mass erase time is longer than tme (Min.), there is no erase-disturb, but is reduces the endurance of the FLASH
memory.
4. It is defined as the time it needs before the FLASH can be read after turning off the high voltage charge pump, by clearing
HVEN to logic 0.
5. thv is the cumulative high voltage programming time to the same row before next erase, and the same address can not be
programmed twice before next erase.
6. The minimum row endurance value specifies each row of the FLASH memory is guaranteed to work for at least this many
erase/program cycles.
7. The minimum row endurance value specifies each row of the FLASH memory is guaranteed to work for at least this many
erase/program cycle.
8. The FLASH is guaranteed to retain data over the entire operating temperature range for at least the minimum time
specified.
Data Sheet
432
MOTOROLA
25.1 Introduction
Data Sheet
433
0.200 AB TU Z
DETAIL Y
A1
48
37
36
V
AE
B1
12
25
13
AE
V1
24
DIM
A
A1
B
B1
C
D
E
F
G
H
J
K
L
M
N
P
R
S
S1
V
V1
W
AA
Z
S1
T, U, Z
S
DETAIL Y
4X
0.200 AC TU Z
0.080 AC
AB
AD
AC
MILLIMETERS
MAX
MIN
7.000 BSC
3.500 BSC
7.000 BSC
3.500 BSC
1.400
1.600
0.170
0.270
1.350
1.450
0.170
0.230
0.500 BSC
0.050
0.150
0.090
0.200
0.500
0.700
1
5
12 REF
0.090
0.160
0.250 BSC
0.150
0.250
9.000 BSC
4.500 BSC
9.000 BSC
4.500 BSC
0.200 REF
1.000 REF
BASE METAL
0.250
GAUGE PLANE
F
D
0.080
AC TU Z
SECTION AEAE
L
K
DETAIL AD
AA
Data Sheet
434
MOTOROLA
B
L
33
23
22
DETAIL A
D
S
F
BASE METAL
C AB
S
S
H AB
DETAIL A
0.20 (0.008)
0.20 (0.008)
0.05 (0.002) AB
A, B, D
34
N
D
44
0.20 (0.008)
12
1
11
C AB
SECTION BB
VIEW ROTATED 90
D
A
0.20 (0.008)
H AB
0.05 (0.002) AB
S
0.20 (0.008)
C AB
DETAIL C
C E
DATUM
PLANE
0.10 (0.004)
H
SEATING
PLANE
NOTES:
1. DIMENSIONING AND TOLERANCING PER ANSI
Y14.5M, 1982.
2. CONTROLLING DIMENSION: MILLIMETER.
3. DATUM PLANE H IS LOCATED AT BOTTOM OF
LEAD AND IS COINCIDENT WITH THE LEAD WHERE
THE LEAD EXITS THE PLASTIC BODY AT THE
BOTTOM OF THE PARTING LINE.
4. DATUMS A, B AND D TO BE DETERMINED AT
DATUM PLANE H.
5. DIMENSIONS S AND V TO BE DETERMINED AT
SEATING PLANE C.
6. DIMENSIONS A AND B DO NOT INCLUDE MOLD
PROTRUSION. ALLOWABLE PROTRUSION IS 0.25
(0.010) PER SIDE. DIMENSIONS A AND B DO
INCLUDE MOLD MISMATCH AND ARE DETERMINED
AT DATUM PLANE H.
7. DIMENSION D DOES NOT INCLUDE DAMBAR
PROTRUSION. ALLOWABLE DAMBAR PROTRUSION
SHALL BE 0.08 (0.003) TOTAL IN EXCESS OF THE D
DIMENSION AT MAXIMUM MATERIAL CONDITION.
DAMBAR CANNOT BE LOCATED ON THE LOWER
RADIUS OR THE FOOT.
M
T
DATUM
PLANE
K
W
X
DETAIL C
DIM
A
B
C
D
E
F
G
H
J
K
L
M
N
Q
R
S
T
U
V
W
X
MILLIMETERS
MIN
MAX
9.90
10.10
9.90
10.10
2.10
2.45
0.30
0.45
2.00
2.10
0.30
0.40
0.80 BSC
0.25
0.13
0.23
0.65
0.95
8.00 REF
5
10
0.13
0.17
0
7
0.13
0.30
12.95
13.45
0.13
12.95
13.45
0.40
1.6 REF
INCHES
MIN
MAX
0.390
0.398
0.390
0.398
0.083
0.096
0.012
0.018
0.079
0.083
0.012
0.016
0.031 BSC
0.010
0.005
0.009
0.026
0.037
0.315 REF
5
10
0.005
0.007
0
7
0.005
0.012
0.510
0.530
0.005
0.510
0.530
0.016
0.063 REF
Data Sheet
435
A
42
22
B
1
21
L
H
DIM
A
B
C
D
F
G
H
J
K
L
M
N
T
SEATING
PLANE
0.25 (0.010)
F
D 42 PL
K
M
T A
M
J 42 PL
0.25 (0.010)
T B
INCHES
MIN
MAX
1.435
1.465
0.540
0.560
0.155
0.200
0.014
0.022
0.032
0.046
0.070 BSC
0.300 BSC
0.008
0.015
0.115
0.135
0.600 BSC
0
15
0.020
0.040
MILLIMETERS
MIN
MAX
36.45
37.21
13.72
14.22
3.94
5.08
0.36
0.56
0.81
1.17
1.778 BSC
7.62 BSC
0.20
0.38
2.92
3.43
15.24 BSC
0
15
0.51
1.02
Data Sheet
436
MOTOROLA
26.1 Introduction
FLASH Size
(bytes)
Package
Operating
Temperature Range
MC68HC908AP64CB
2,048
62,368
42-pin SDIP
40 to +85 C
MC68HC908AP64CFB
2,048
62,368
44-pin QFP
40 to +85 C
MC68HC908AP64CFA
2,048
62,368
48-pin LQFP
40 to +85 C
MC68HC908AP32CB
2,048
32,768
42-pin SDIP
40 to +85 C
MC68HC908AP32CFB
2,048
32,768
44-pin QFP
40 to +85 C
MC68HC908AP32CFA
2,048
32,768
48-pin LQFP
40 to +85 C
MC68HC908AP16CB
1,024
16,384
42-pin SDIP
40 to +85 C
MC68HC908AP16CFB
1,024
16,384
44-pin QFP
40 to +85 C
MC68HC908AP16CFA
1,024
16,384
48-pin LQFP
40 to +85 C
MC68HC908AP8CB
1,024
8,192
42-pin SDIP
40 to +85 C
MC68HC908AP8CFB
1,024
8,192
44-pin QFP
40 to +85 C
MC68HC908AP8CFA
1,024
8,192
48-pin LQFP
40 to +85 C
MC Order Number
Data Sheet
437
Ordering Information
Data Sheet
438
MOTOROLA
JAPAN:
Motorola Japan Ltd.
SPS, Technical Information Center
3-20-1, Minami-Azabu, Minato-ku
Tokyo 106-8573, Japan
81-3-3440-3569
ASIA/PACIFIC:
Motorola Semiconductors H.K. Ltd.
Silicon Harbour Centre
2 Dai King Street
Tai Po Industrial Estate
Tai Po, N.T., Hong Kong
852-26668334
HOME PAGE:
http://motorola.com/semiconductors
Information in this document is provided solely to enable system and software implementers to use Motorola products.
There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or
integrated circuits based on the information in this document.
Motorola reserves the right to make changes without further notice to any products herein. Motorola makes no warranty,
representation or guarantee regarding the suitability of its products for any particular purpose, nor does Motorola assume
any liability arising out of the application or use of any product or circuit, and specifically disclaims any and all liability,
including without limitation consequential or incidental damages. Typical parameters that may be provided in Motorola
data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. All
operating parameters, including Typicals, must be validated for each customer application by customers technical experts.
Motorola does not convey any license under its patent rights nor the rights of others. Motorola products are not designed,
intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications
intended to support or sustain life, or for any other application in which the failure of the Motorola product could create a
situation where personal injury or death may occur. Should Buyer purchase or use Motorola products for any such
unintended or unauthorized application, Buyer shall indemnify and hold Motorola and its officers, employees, subsidiaries,
affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising
out of, directly or indirectly, any claim of personal injury or death associated with such unintended or unauthorized use, even
if such claim alleges that Motorola was negligent regarding the design or manufacture of the part.
MOTOROLA and the Stylized M Logo are registered in the US Patent and Trademark Office. All other product or service
names are the property of their respective owners. Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer.
MC68HC908AP64/D
Rev. 2.5
10/2003