OKI ML66592 Cmos 16-bit microcontroller Datasheet

FEUL66591-66592-01
MSM66591/ML66592
User's Manual
CMOS 16-bit microcontroller
Issue Date: Mar. 4, 2002
Preface
This document describes the hardware of the 16-bit microcontrollers MSM66591/ML66592
that employ Oki-original CPU core nX-8/500S. Shown below are the related manuals. Refer
to them as required.
■
nX-8/500S Core Instruction Manual
• Description of nX-8/500S core instruction set
• Description of addressing modes
■
MAC66K Assembler Package User’s Manual
• Package overview
• Description of RAS66K [relocatable assembler] operation
• Description of RAS66K assembly language
• Description of RL66K [linker] operation
• Description of LIB66K [librarian] operation
• Description of OH66K [object converter] operation
■
Macroprocessor (MP) User’s Manual
• Description of MP operation
• Description of macro processing language
This document is subject to change without notice.
Notation
Classification
Notation
n Numeric value
xxH
xxb
Description
Represents a hexadecimal number
Represents a binary number
n Unit
Word, W
byte, B
nibble, N
mega-, M
kilo-, K
kilo-, k
milli-, m
micro-, m
nano-, n
second, s
1 word = 16 bits
1 byte = 2 nibbles = 8 bits
1 nibble = 4 bits
106
210 = 1024
103 = 1000
10-3
10-6
10-9
second
n Terminology
“H” level
The signal level of the high side of the
voltage;
indicates the voltage level of VIH and VOH
described in the electrical characteristics.
The signal level of the low side of the
voltage; indicates voltage level of VIL and
VOL described in the electrical characteristics.
“L” level
Opcode trap
Operation code trap. Occurs when an empty
area that has not been assigned an
instruction is fetched, or when an instruction
code combination that does not contain an
instruction is addressed.
n Register description
Register name Invalid bit
ADCON0L
Invalid bit
Fixed bit
7
6
—
SCNC0
:
:
Fixed bit
5
4
SNEX0 ADRUN0
3
"0"
Bit name Bit number
2
1
0
ADSNM02 ADSNM01ADSNM00
Indicates that the bit does not exist. Writing into this bit is invalid.
When writing, always write the specified value. If read, the specified
value will be read. Values of fixed bits are specified as “0” or “1”.
Contents
Chapter 1 Overview
1.1
1.2
1.3
1.4
Features ......................................................................................................... 1-2
Block Diagram ............................................................................................... 1-4
Pin Configuration ........................................................................................... 1-5
Basic Operation Timing ................................................................................. 1-6
Chapter 2 Description of Pins
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
2.23
2.24
2.25
2.26
2.27
P0_0–P0_7: Input/Output Pins ...................................................................... 2-1
P1_0–P1_7: Input/Output Pins ...................................................................... 2-1
P2_0–P2_7: Input/Output Pins ...................................................................... 2-1
P3_0–P3_7: Input/Output Pins ...................................................................... 2-2
P4_0–P4_7: Input/Output Pins ...................................................................... 2-3
P5_0–P5_7: Input/Output Pins ...................................................................... 2-3
P6_0–P6_7: Input/Output Pins ...................................................................... 2-4
P7_0–P7_7: Input/Output Pins ...................................................................... 2-5
P8_0–P8_7: Input/Output Pins ...................................................................... 2-6
P9_0–P9_7: Input/Output Pins ...................................................................... 2-6
P10_0–P10_7: Input/Output Pins .................................................................. 2-7
P11_0–P11_7: Input/Output Pins .................................................................. 2-8
P12_0, P12_1: Input/Output Pins .................................................................. 2-9
AI0–AI23: Input Pins ...................................................................................... 2-9
AVDD: Input Pin .............................................................................................. 2-9
VREF: Input Pin .............................................................................................. 2-9
AGND: Input Pin ............................................................................................ 2-9
OSC0, OSC1: Input Pin, Output Pin .............................................................. 2-9
OE: Input Pin .................................................................................................. 2-9
NMI: Input Pin ................................................................................................ 2-9
RES: Input Pin ................................................................................................ 2-9
EA: Input Pin ................................................................................................ 2-10
TEST: Input Pin ........................................................................................... 2-10
VDD: Input Pin .............................................................................................. 2-10
GND: Input Pin ............................................................................................. 2-10
Structure of Pins .......................................................................................... 2-10
Handling of Unused Pins ............................................................................. 2-12
Contents-1
Chapter 3 CPU Architecture
3.1
Memory Space ............................................................................................... 3-1
3.1.1 Memory Space Expansion .......................................................................... 3-1
3.1.2 Program Memory Space ............................................................................. 3-2
[1] Accessing Program Memory Space ........................................................... 3-4
[2] Vector Table Area ....................................................................................... 3-4
[3] VCAL Table Area ........................................................................................ 3-6
[4] ACAL Area .................................................................................................. 3-7
3.1.3 Data Memory Space ................................................................................... 3-8
[1] Special Function Register (SFR) Area ........................................................ 3-9
[2] Expanded Special Function Register (Expanded SFR) Area ..................... 3-9
[3] Internal RAM Area ...................................................................................... 3-9
[4] Fixed Page (FIX) Area .............................................................................. 3-10
[5] Local Register Setting Area ...................................................................... 3-11
[6] ROM Window Setting Area ....................................................................... 3-11
3.1.4 Data Memory Access ................................................................................ 3-12
[1] Byte Operation .......................................................................................... 3-12
[2] Word Operation ........................................................................................ 3-12
3.2
Registers ...................................................................................................... 3-13
3.2.1 Arithmetic Register (ACC) ........................................................................ 3-13
3.2.2 Control Register ........................................................................................ 3-14
[1] Program Status Word (PSW) .................................................................... 3-14
[2] Program Counter (PC) .............................................................................. 3-17
[3] Local Register Base (LRB) ....................................................................... 3-17
[4] System Stack Pointer (SSP) ..................................................................... 3-18
3.2.3 Pointing Register (PR) .............................................................................. 3-19
3.2.4 Local Registers (R, ER) ............................................................................ 3-20
3.2.5 Segment Register ..................................................................................... 3-21
[1] Code Segment Register (CSR) ................................................................ 3-21
[2] Table Segment Register (TSR) ................................................................ 3-22
3.2.6 Special Function Register (SFR) .............................................................. 3-23
3.3
Addressing Mode ......................................................................................... 3-37
3.3.1 RAM Addressing ....................................................................................... 3-37
[1] Register Addressing ................................................................................. 3-37
[2] Page Addressing ...................................................................................... 3-40
[3] Direct Data Addressing ............................................................................. 3-43
[4] Pointing Register Indirect Addressing ....................................................... 3-44
[5] Special Bit Area Addressing ..................................................................... 3-50
Contents-2
3.3.2
[1]
[2]
[3]
[4]
ROM Addressing ...................................................................................... 3-51
Immediate Addressing .............................................................................. 3-51
Table Data Addressing ............................................................................. 3-51
Program Code Addressing ....................................................................... 3-53
ROM Window Addressing ......................................................................... 3-55
Chapter 4 CPU Control Functions
4.1
Standby Function ........................................................................................... 4-1
4.1.1 Standby Control Register (SBYCON) ......................................................... 4-3
4.1.2 Operation in Each Standby Mode ............................................................... 4-4
[1] HALT Mode ................................................................................................. 4-4
[2] STOP Mode ................................................................................................ 4-5
4.2
Reset Function ............................................................................................... 4-6
Chapter 5 Memory Control Functions
5.1
ROM Window Function .................................................................................. 5-1
5.2
READY Function ............................................................................................ 5-3
Chapter 6 Port Functions
6.1
Hardware Configuration of Each Port ............................................................ 6-1
6.1.1 Configuration of Type A (P0_0–P0_7, P1_0–P1_7, P12_0) ....................... 6-4
6.1.2 Configuration of Type B
(P2_0–P2_7, P3_0–P3_3, P7_4–P7_7, P8_0–P8_7, P10_0–P10_4) ....... 6-5
6.1.3 Configuration of Type C
(P3_4–P3_7, P4_0–P4_7, P5_0–P5_7, P6_0–P6_7, P7_2, P7_3,
P9_0–P9_7, P10_5–P10_7, P11_0–P11_3) .............................................. 6-6
6.1.4 Configuration of Type D (P7_0, P7_1, P11_4–P11_7) ............................... 6-7
6.1.5 Configuration of Type E (P12_1) ................................................................ 6-7
6.2
Port Control Registers ................................................................................... 6-8
6.2.1 Port Data Register (Pn: n = 0–12) ............................................................. 6-8
6.2.2 Port Mode Register (PnIO: n = 0–12) ........................................................ 6-8
6.2.3 Port Secondary Function Control Register (PnSF: n = 2–10) .................... 6-8
6.3
Port 0 (P0) ................................................................................................... 6-11
6.4
Port 1 (P1) ................................................................................................... 6-12
6.5
Port 2 (P2) ................................................................................................... 6-13
6.6
Port 3 (P3) ................................................................................................... 6-15
6.7
Port 4 (P4) ................................................................................................... 6-17
Contents-3
6.8
Port 5 (P5) ................................................................................................... 6-19
6.9
Port 6 (P6) ................................................................................................... 6-21
6.10
Port 7 (P7) ................................................................................................... 6-23
6.11
Port 8 (P8) ................................................................................................... 6-25
6.12
Port 9 (P9) ................................................................................................... 6-27
6.13
Port 10 (P10) ............................................................................................... 6-29
6.14
Port 11 (P11) ............................................................................................... 6-31
6.15
Port 12 (P12) ............................................................................................... 6-32
Chapter 7 Output Pin Control Pin (OE)
Chapter 8 Clock Generation Circuit
Chapter 9 Time Base Counter (TBC)
9.1
1/n Counter .................................................................................................... 9-2
Chapter 10
10.1
10.2
10.3
10.4
Watchdog Timer (WDT)
WDT Control Register (WDTCON) .............................................................. 10-1
Operation of WDT ........................................................................................ 10-1
Time until Overflow of WDT ......................................................................... 10-2
Program Runaway Detection Timing Diagram ............................................ 10-2
Chapter 11
Flexible Timer (FTM)
11.1 Configuration of Counter Part ...................................................................... 11-6
11.2 Counter Selection Part ................................................................................. 11-8
11.3 Type A1 Register Modules (TMR0–TMR3) ............................................... 11-10
11.3.1 Configuration of Type A1 Register Modules (TMR0–TMR3) ................ 11-10
[1] Timer Registers (TMR0, TMR0L–TMR3, TMR3L) .................................. 11-10
[2] Capture Control Register (CAPCON) ..................................................... 11-11
[3] Event Control Registers (EVNTCONL, EVNTCONH) ............................. 11-12
[4] Event Dividing Counters 0–3 (EVDV0–EVDV3) ..................................... 11-14
[5] EVDV0–EVDV3 Buffer Registers (EVDV0BF–EVDV3BF) ..................... 11-14
11.3.2 Operation of Type A1 Register Modules (TMR0–TMR3) ..................... 11-15
11.3.3 Capture Pin Dividing Circuit .................................................................. 11-16
[1] Configuration of Dividing Circuit ............................................................. 11-16
[2] Operation of Dividing Circuit ................................................................... 11-16
[3] Operation to Switch Dividing Ratio ......................................................... 11-16
Contents-4
11.4 Type A2 Register Modules (TMR14, TMR15) ........................................... 11-17
11.4.1 Configuration of Type A2 Register Modules (TMR14, TMR15) ............ 11-17
[1] Timer Registers (TMR14, TMR15) ......................................................... 11-17
[2] Capture Control Register (CAPCON) ..................................................... 11-18
[3] Event Control Register 2 (EVNTCON2) .................................................. 11-19
[4] Event Dividing Counters 14, 15 (EVDV14, EVDV15) ............................. 11-20
[5] EVDV14, EVDV15 Buffer Registers (EVDV14BF, EVDV15BF) ............. 11-20
11.4.2 Operation of Type A2 Register Modules (TMR14, TMR15) ................. 11-21
11.4.3 Capture Pin Dividing Circuit .................................................................. 11-22
[1] Configuration of Dividing Circuit ............................................................. 11-22
[2] Operation of Dividing Circuit ................................................................... 11-22
[3] Operation to Switch Dividing Ratio ......................................................... 11-22
11.5 Type B Register Modules (TMR4–TMR13) ............................................... 11-23
11.5.1 Configuration of Type B Register Modules (TMR4–TMR13) ................ 11-23
[1] Timer Registers (TMR4–TMR13) ........................................................... 11-24
[2] Timer Register Buffer Registers (TMR4BF–TMR13BF) ......................... 11-24
[3] Real-time Output Control Registers (RTOCON4–RTOCON13) ............. 11-24
11.5.2 Operation of Type B Register Modules (TMR4–TMR13) ....................... 11-26
11.6 Type D Register Module (TMR17) ............................................................. 11-27
11.6.1 Configuration of Type D Register Module (TMR17) ............................. 11-27
[1] Timer Register (TMR17) ......................................................................... 11-29
[2] Real-time Output Control Registers (RTOCON17, RTO4CON) ............. 11-29
[3] TMR Mode Register (TMRMODE) .......................................................... 11-31
[4] Capture Control Register (CAPCON) ..................................................... 11-32
11.6.2 Operation of Type D Register Module (TMR17) ................................... 11-33
[1] Operation in Real-time Output Mode (RTO) ........................................... 11-33
[2] Operation in 4-Port Output Real-time Output Mode (4-Port RTO) .......... 11-34
[3] Operation in CAP Mode .......................................................................... 11-35
11.7 Type E Register Module (TMR16) ............................................................. 11-36
11.7.1 Configuration of Type E Register Module (TMR16) .............................. 11-36
[1] Timer Register (TMR16) ......................................................................... 11-37
[2] Real-time Output Control Register (RTOCON16) ................................... 11-37
[3] TMR Mode Register (TMRMODE) .......................................................... 11-38
[4] Capture Control Register (CAPCON) ..................................................... 11-39
11.7.2 Operation of Type E Register Module (TMR16) ................................... 11-40
[1] Operation in Real-time Output Mode (RTO) ........................................... 11-40
[2] Operation in CAP Mode .......................................................................... 11-40
11.8 RTO Mode Output Timing Changes .......................................................... 11-41
Contents-5
Chapter 12
General-Purpose 8-Bit Timer Function
12.1
General-Purpose 8-Bit Timer (GTM) ........................................................... 12-2
General-Purpose 8-Bit Timer Counter (GTMC) ........................................ 12-3
General-Purpose 8-Bit Timer Register (GTMR) ....................................... 12-3
General-Purpose 8-Bit Timer Control Register (GTMCON) ..................... 12-3
General-Purpose 8-Bit Timer Interrupt Control Register (GTINTCON) .... 12-5
12.2 General-Purpose 8-Bit Event Counter (GEVC) ........................................... 12-6
[1] General-Purpose 8-Bit Event Counter (GEVC) ........................................ 12-6
[2] General-Purpose 8-Bit Timer Control Register (GTMCON) ..................... 12-6
[3] General-Purpose 8-Bit Timer Interrupt Control Register (GTINTCON) .... 12-7
[1]
[2]
[3]
[4]
Chapter 13
PWM Functions
13.1
Configuration of PWM .................................................................................. 13-4
[1] PWM Counters (PWC0–PWC11) ............................................................. 13-4
[2] PWM Counter Buffer Registers (PWC0BF–PWC11BF) ........................... 13-4
[3] PWM Registers (PWR0–PWR11) ............................................................. 13-5
[4] PWM Buffer Registers (PW0BF–PW11BF) .............................................. 13-5
[5] Comparison Circuit ................................................................................... 13-5
[6] Output F/F ................................................................................................. 13-5
[7] PWM Control Registers (PWCON0–PWCON5) ....................................... 13-5
[8] PWMRUN Register (PWRUN) .................................................................. 13-9
[9] PWM Interrupt Registers (PWINTQ0, PWINTQ1) .................................. 13-10
[10] PWM Interrupt Enable Registers (PWINTE0, PWINTE1) ....................... 13-13
13.2 Operation of PWM ..................................................................................... 13-16
Chapter 14
Baud Rate Generator Functions
14.1
Configuration of SCI0 Timer (S0TM) ........................................................... 14-3
[1] SCI0 Timer Counter .................................................................................. 14-3
[2] SCI0 Timer Register ................................................................................. 14-3
[3] SCI0 Timer Control Register (S0CON) ..................................................... 14-3
14.2 Operation of SCI0 Timer .............................................................................. 14-5
14.3 Configuration of SCI1 Timer (S1TM) ........................................................... 14-6
[1] SCI1 Timer Counter .................................................................................. 14-6
[2] SCI1 Timer Register ................................................................................. 14-6
[3] SCI1 Timer Control Register (S1CON) ..................................................... 14-6
14.4 Operation of SCI1 Timer .............................................................................. 14-8
Contents-6
14.5
Configuration of SCI2 Timer (S2TM) ........................................................... 14-9
[1] SCI2 Timer Counter .................................................................................. 14-9
[2] SCI2 Timer Register ................................................................................. 14-9
[3] SCI2 Timer Control Register (S2CON) ..................................................... 14-9
14.6 Operation of SCI2 Timer ............................................................................ 14-11
14.7 Configuration of SCI3 Timer (S3TM) ......................................................... 14-12
[1] SCI3 Timer Counter ................................................................................ 14-12
[2] SCI3 Timer Register ............................................................................... 14-12
[3] SCI3 Timer Control Register (S3CON) ................................................... 14-12
14.8 Operation of SCI3 Timer ............................................................................ 14-14
14.9 Configuration of SCI4 Timer (S4TM) ......................................................... 14-15
[1] SCI4 Timer Counter ................................................................................ 14-15
[2] SCI4 Timer Register ............................................................................... 14-15
[3] SCI4 Timer Control Register (S4CON) ................................................... 14-15
14.10 Operation of SCI4 Timer ............................................................................ 14-17
Chapter 15
Serial Port Functions
15.1 Configuration of Serial Ports ........................................................................ 15-2
15.2 Serial Port Control Registers ....................................................................... 15-5
15.2.1 Control Registers for SCI0 ...................................................................... 15-5
[1] SCI0 Transmit Control Register (ST0CON) .............................................. 15-5
[2] SCI0 Receive Control Register (SR0CON) .............................................. 15-7
[3] SCI0 Transmit/Receive Buffer Register (S0BUF0) ................................... 15-9
[4] SCI0 Receive Buffer Registers (S0BUF1, S0BUF2, S0BUF3) ................. 15-9
[5] SCI0 Transmit and Receive Registers ...................................................... 15-9
[6] SCI0 Status Register 0 (S0STAT0) ........................................................ 15-10
[7] SCI0 Status Register 1 (S0STAT1) ........................................................ 15-13
[8] SCI0 Status Register 2 (S0STAT2) ........................................................ 15-15
[9] SCI0 Interrupt Control Register (SR0INT) .............................................. 15-17
15.2.2 Control Registers for SCI1 .................................................................... 15-19
[1] SCI1 Transmit Control Register (ST1CON) ............................................ 15-19
[2] SCI1 Receive Control Register (SR1CON) ............................................ 15-21
[3] SCI1 Transmit/Receive Buffer Register (S1BUF) ................................... 15-23
[4] SCI1 Transmit and Receive Registers .................................................... 15-23
[5] SCI1 Status Register (S1STAT) ............................................................. 15-23
Contents-7
15.2.3 Control Registers for SCI2 .................................................................... 15-26
[1] SCI2 Transmit Control Register (ST2CON) ............................................ 15-26
[2] SCI2 Receive Control Register (SR2CON) ............................................ 15-28
[3] SCI2 Transmit/Receive Buffer Register (S2BUF0) ................................. 15-30
[4] SCI2 Receive Buffer Registers (S2BUF1, S2BUF2, S2BUF3) ............... 15-30
[5] SCI2 Transmit and Receive Registers .................................................... 15-30
[6] SCI2 Status Register 0 (S2STAT0) ........................................................ 15-31
[7] SCI2 Status Register 1 (S2STAT1) ........................................................ 15-34
[8] SCI2 Status Register 2 (S2STAT2) ........................................................ 15-36
[9] SCI2 Interrupt Control Register (SR2INT) .............................................. 15-38
15.2.4 Control Registers for SCI3 .................................................................... 15-40
[1] SCI3 Transmit Control Register (ST3CON) ............................................ 15-40
[2] SCI3 Receive Control Register (SR3CON) ............................................ 15-42
[3] SCI3 Transmit/Receive Buffer Register (S3BUF0) ................................. 15-44
[4] SCI3 Receive Buffer Registers (S3BUF1, S3BUF2, S3BUF3) ............... 15-44
[5] SCI3 Transmit and Receive Registers .................................................... 15-44
[6] SCI3 Status Register 0 (S3STAT0) ........................................................ 15-45
[7] SCI3 Status Register 1 (S3STAT1) ........................................................ 15-48
[8] SCI3 Status Register 2 (S3STAT2) ........................................................ 15-50
[9] SCI3 Interrupt Control Register (SR3INT) .............................................. 15-52
15.2.5 Control Registers for SCI4 .................................................................... 15-54
[1] SCI4 Transmit Control Register (ST4CON) ............................................ 15-54
[2] SCI4 Receive Control Register (SR4CON) ............................................ 15-56
[3] SCI4 Transmit/Receive Buffer Register (S4BUF0) ................................. 15-58
[4] SCI4 Receive Buffer Registers (S4BUF1, S4BUF2, S4BUF3) ............... 15-58
[5] SCI4 Transmit and Receive Registers .................................................... 15-58
[6] SCI4 Status Register 0 (S4STAT0) ........................................................ 15-59
[7] SCI4 Status Register 1 (S4STAT1) ........................................................ 15-62
[8] SCI4 Status Register 2 (S4STAT2) ........................................................ 15-64
[9] SCI4 Interrupt Control Register (SR4INT) .............................................. 15-66
15.3 Operation of Serial Ports ........................................................................... 15-68
15.3.1 Transmit Operation ............................................................................... 15-68
15.3.2 Receive Operation ................................................................................ 15-74
[1] Single Buffer Mode ................................................................................. 15-74
[2] 4-Stage Buffer Mode ............................................................................... 15-81
Contents-8
Chapter 16
A/D Converter Functions
16.1
Configuration of A/D Converter .................................................................... 16-4
[1] Scan Mode ................................................................................................ 16-4
[2] Select Mode .............................................................................................. 16-4
[3] Hard Select Mode ..................................................................................... 16-4
16.2 Control Register of A/D Converter ............................................................... 16-7
[1] A/D Control Register 0L (ADCON0L) ....................................................... 16-7
[2] A/D Control Register 1L (ADCON1L) ....................................................... 16-9
[3] A/D Control Register 0H (ADCON0H) .................................................... 16-11
[4] A/D Control Register 1H (ADCON1H) .................................................... 16-13
[5] A/D Interrupt Control Register 0 (ADINTCON0) ..................................... 16-15
[6] A/D Interrupt Control Register 1 (ADINTCON1) ..................................... 16-17
[7] A/D Hard Select Register 0 (ADHSEL0) ................................................. 16-19
[8] A/D Hard Select Register 1 (ADHSEL1) ................................................. 16-22
[9] A/D Hard Select Software-Control Register (ADHSCON) ...................... 16-25
[10] A/D Hard Select Enable Register (ADHENCON) ................................... 16-26
[11] A/D Result Registers (ADCR0–ADCR23) ............................................... 16-28
16.3 Generated Timing of the A/D Hard Select Mode ....................................... 16-29
Chapter 17
17.1
17.2
Transition Detector Control Register (TRNSCON) ...................................... 17-1
Transition Detector Register (TRNSIT) ........................................................ 17-3
Chapter 18
18.1
18.2
18.3
Transition Detector Functions
Peripheral Functions
Clockout Function ........................................................................................ 18-1
RES Pin Valid Level Detection Function ...................................................... 18-1
OE Pin Monitor Function .............................................................................. 18-1
Chapter 19
External Interrupt Request Function
Contents-9
Chapter 20
Interrupt Request Processing Function
20.1
20.2
Non-maskable Interrupt (NMI) ..................................................................... 20-2
Maskable Interrupt ....................................................................................... 20-4
[1] Interrupt Request Flag Disable Register IRQD
(IRQD0L, IRQD0H, IRQD1L, IRQD1H, IRQD2L) ........................... 20-6
[2] Interrupt Request Register IRQ (IRQ0L, IRQ0H, IRQ1L, IRQ1H, IRQ2L) ... 20-6
[3] Interrupt Enable Register IE (IE0L, IE0H, IE1L, IE1H, IE2L) .................... 20-6
[4] Master Interrupt Enable Flag (MIE) .......................................................... 20-6
[5] Master Interrupt Priority Flag (MIPF) ........................................................ 20-6
[6] Interrupt Priority Control Register
IPX0 (IP00L, IP00H, IP10L, IP10H, IP20L),
IPX1 (IP01L, IP01H, IP11L, IP11H, IP21L) .................................... 20-7
20.3 Operation of Maskable Interrupt .................................................................. 20-8
Chapter 21
Bus Port Functions
21.1 Bus Port (P0, P1, P12_0, P12_1) Functions ............................................... 21-1
21.1.1 Operation of P0, P1, P12_0 and P12_1 During a Program Memory
Access .................................................................................................... 21-1
21.2 External Memory Access ............................................................................. 21-2
21.2.1 External Program Memory Access ......................................................... 21-2
21.2.2 External Program Memory Access Timing ............................................. 21-2
Chapter 22
22.1
22.2
22.3
22.4
Expansion Port
Expansion Port Configuration ...................................................................... 22-1
Expansion Port Control Register (EXTPCON) ............................................. 22-2
Expansion Port Register (EXTPD) ............................................................... 22-3
Expansion Port Operation ............................................................................ 22-3
[1] Input Mode ................................................................................................ 22-3
[2] Output Mode ............................................................................................. 22-4
Contents-10
Chapter 23
23.1
23.2
23.3
23.4
23.5
23.6
23.7
23.8
SCI5 Configuration ...................................................................................... 23-1
SCI5 Control Register 0 (SCI5CON0) ......................................................... 23-2
SCI5 Control Register 1 (SCI5CON1) ......................................................... 23-4
SCI5 Interrupt Register (SCI5INT) ............................................................... 23-5
Serial Address Output Register (SFADR) .................................................... 23-6
Serial Data Input Register (SFDIN) ............................................................. 23-7
Serial Data Output Register (SFDOUT) ....................................................... 23-7
SCI5 Operation ............................................................................................ 23-8
Chapter 24
24.1
24.2
24.3
Serial Port with FIFO (SCI5)
RAM Monitor Function
Configuration of RAM Monitor Function ....................................................... 24-1
Configuration of Serial Transfer Data .......................................................... 24-3
RAM Monitor Function Operation ................................................................ 24-5
[1] Setting the addresses ............................................................................... 24-5
[2] Detection of address matching ................................................................. 24-5
[3] Reading data ............................................................................................ 24-5
Chapter 25
Electrical Characteristics
[MSM66591 Electrical Characteristics] ............................................................... 25-1
25.1 Absolute Maximum Ratings ......................................................................... 25-1
25.2 Operating Range ......................................................................................... 25-2
25.3 DC Characteristics ....................................................................................... 25-3
25.4 AC Characteristics ....................................................................................... 25-5
[1] External Program Memory Control ........................................................... 25-5
25.5 A/D Converter Characteristics ..................................................................... 25-6
[ML66592 Electrical Characteristics] .................................................................. 25-8
25.6 Absolute Maximum Ratings ......................................................................... 25-8
25.7 Operating Range ......................................................................................... 25-9
25.8 DC Characteristics ..................................................................................... 25-10
25.9 AC Characteristics (Preliminary) ................................................................ 25-12
[1] External Program Memory Control ......................................................... 25-12
25.10 A/D Converter Characteristics ................................................................... 25-13
Chapter 26
Package Dimensions
Chapter 27
Revision History
Contents-11
Contents-12
Chapter 1
Overview
1
Chapter 2
Description of Pins
2
Chapter 3
CPU Architecture
3
Chapter 4
CPU Control Functions
4
Chapter 5
Memory Control Functions
5
Chapter 6
Port Functions
6
Chapter 7
Output Pin Control Pin (OE)
7
Chapter 8
Clock Generation Circuit
8
Chapter 9
Time Base Counter (TBC)
9
Chapter 10
Watchdog Timer (WDT)
10
Chapter 11
Flexible Timer (FTM)
11
Chapter 12
General-Purpose 8-Bit Timer Function
12
Chapter 13
PWM Functions
13
Chapter 14
Baud Rate Generator Functions
14
Chapter 15
Serial Port Functions
15
Chapter 16
A/D Converter Functions
16
Chapter 17
Transition Detector Functions
17
Chapter 18
Peripheral Functions
18
Chapter 19
External Interrupt Request Function
19
Chapter 20
Interrupt Request Processing Function
20
Chapter 21
Bus Port Functions
21
Chapter 22
Expansion Port
22
Chapter 23
Serial Port with FIFO (SCI5)
23
Chapter 24
RAM Monitor Function
24
Chapter 25
Electrical Characteristics
25
Chapter 26
Package Dimensions
26
Chapter 27
Revision History
27
Chapter 1
Overview
1
MSM66591/ML66592 User's Manual
Chapter 1 Overview
1. Overview
1
The MSM66591/ML66592 are high performance 16-bit microcontrollers that contain a 16-bit
CPU (nX-8/500S), ROM, RAM, a 10-bit A/D converter, serial ports, flexible timers, and
PWMs.
The ML66592 is the same as the MSM66591 with the exception that the ML66592 has an
increased ROM and RAM capacity and a higher operating speed. Table 1-1 lists the functional differences between the MSM66591 and ML66592.
The MSM66Q591 is a Flash EEPROM version of the MSM66591. The ML66Q592 is a Flash
EEPROM version of the ML66592.
Table 1-1 Differences between MSM66591/66Q591 and ML66592/66Q592 Specifications
Item
Operating frequency
(internal)
Operating temperature
MSM66591/66Q591
ML66592/66Q592
20 to 24 MHz
20 to 28 MHz
–40 to +115°C
–40 to +95°C
Modifications in
ML66592/ML66Q592 and notes
Increased by 4 MHz (with
increased supply current)
Changed from +115°C to +95°C
Increased by 64K bytes
(internal) (SEG2)
Increased by 128K bytes
(external) (SEG2, 3)
External A17 output (P12_1)
has been added.
(When EA = "L")
128K bytes
0:0000H to 1:FFFFH
192K bytes (internal)
256K bytes (external)
0:0000H to 3:FFFFH
6K bytes
200H to 19FFH
8K bytes
200H to 21FFH
Internal ROM capacity
128K bytes
0:0000H to 1:FFFFH
192K bytes
0:0000H to 2:FFFFH
Internal RAM capacity
6K bytes
200H to 19FFH
8K bytes
0200H to 21FFH
Increased by 2K bytes
(1A00H to 21FFH)
2000H
3000H
…Changed from 2000H to 3000H
4000H
4000H
Program memory space
Data memory space
Starting address for the
ROM Window function
CLKOUT function
(Values in parentheses are
output frequencies of the
device operating at the
maximum frequency)
10-bit A/D converter
conversion time
(Values in parentheses are
conversion time when the
device is operating at the
maximum frequency)
8000H
8000H
1/2 CLK (12 MHz)
1/2 CLK (14 MHz)
1/4 CLK (6 MHz)
1/4 CLK (7 MHz)
1/8 CLK (3 MHz)
1/8 CLK (3.5 MHz)
1/16 CLK (1.5 MHz)
1/16 CLK (1.75 MHz)
2/3 CLK (16 MHz)
2/3 CLK (forbidden)
1/3 CLK (8 MHz)
1/3 CLK (9.3 MHz)
512 CLK (21.3 µs)
512 CLK (18.3 µs)
384 CLK (16 µs)
384 CLK (13.7µs)
256 CLK (10.7 µs)
256 CLK (9.1 µs)
Transfer clock during
Flash ROM reprogramming
in the user mode
1/4 CLK (6 MHz*)
Not provided
1/8 CLK (3 MHz)
1/8 CLK (3.5 MHz)
(MSM66Q591/ML66Q592 only)
1/16 CLK (1.5 MHz)
1/16 CLK (1.75 MHz)
Increased by 2K bytes
(1A00H to 21FFH)
Increased by 64K bytes (SEG2)
One valid bit has been added
to each of CSR and TSR.
Access forbidden to the
internal SEG3.
…Use of 2/3 CLK is forbidden.
…Should be used at 16 ms or more
…1/4 CLK has been deleted.
* 6 MHz is outside the guarantee
range.
Note: In the ML66592/66Q592, the AC characteristics during external program memory access apply
only when the internal operating frequency is not more than 24 MHz.
1-1
MSM66591/ML66592 User's Manual
Chapter 1 Overview
1.1
Features
[1]
Abundant Instruction Set
•
•
•
•
•
•
[2]
Abundant Addressing Modes
•
•
•
•
•
[3]
Instruction set has superb orthogonal capability
8/16-bit arithmetic instructions
Multiplication/division instructions
Bit operation instructions
Bit logic operation instructions
ROM table reference instructions
Register addressing
Page addressing
Pointing register indirect addressing
Stack addressing
Immediate addressing
Minimum Instruction Cycle
MSM66591: 83.3 nsec @ 12 MHz (internal: 24 MHz)
ML66592:
71.4 nsec @ 14 MHz (internal: 28 MHz)
[4]
Program Memory (ROM)
MSM66591: Internal: 128K bytes
External: 128K bytes, EA pin active
ML66592: Internal: 192K bytes
External: 256K bytes (EA pin active)
[5]
Data memory (RAM)
MSM66591: Internal: 6K bytes
ML66592:
Internal: 8K bytes
[6]
I/O Ports
• Analog input ports: 24
• I/O ports: 98
[7]
Multiplier
MSM66591: MUL ERn instruction: 208 nsec @ 12 MHz
ML66592:
MUL ERn instruction: 178.6 nsec @ 14 MHz
1-2
MSM66591/ML66592 User's Manual
Chapter 1 Overview
[8]
Flexible Timer
•
•
•
•
[9]
1
Freerun counter: 20-bit ¥ 1, 16-bit ¥ 1
Capture register with divider: 6
Double-buffer realtime output: 10
Multifunction timer: 2
General-Purpose 8-Bit Timers
• General-purpose 8-bit timer: 1
• 8-bit event counter: 1
[10] 16-Bit PWM: 12
[11] 8-Bit Serial Ports
• UART with BRG (provided with a 4-stage buffer on the receive side): 4
• UART/synchronous type with BRG: 1
• Synchronous (with 8-byte FIFO): 1
[12] A/D Converter
• 10-bit resolution: 24 channels (12-channel ¥ 2)
[13] Transition Detector: 8
[14] Watchdog Timer: 1
[15] Expansion Port (serial-parallel conversion): 1
[16] Interrupts
• Non-maskable: 1
• Maskable internal: 63/external: 3 (38 vectors)
• 4-level priority
[17] ROM Window Functions
[18] RAM Monitor Functions
[19] Standby Modes
• HALT mode
• STOP mode
[20] Clock Multiplier (2x original oscillation clock)
[21] Package
• 144-pin plastic LQFP (LQFP144-P-2020-0.50-K)
1-3
MSM66591/ML66592 User's Manual
Chapter 1 Overview
1.2
Block Diagram
CAP0/P3_4
RAM
6K bytes*2
CAP3/P3_7
RTO4/P2_0
RTO13/P10_1
CAP14/P10_2
CAP15/P10_3
FTM16/P10_4
FTM17A/P3_0
FTM17D/P3_3
SSP
RXD1/P6_2
TXD1/P6_3
RXC1/P6_4
PSW
TXC1/P6_5
RXD0/P6_6
TSR
LRB
AD7/P0_7
A8/P1_0
Instruction
Dec.
A16/P12_0
A17/P12_1*3
RES
OSC0
OSC1
System
Cont.
PC
SFTCLK/P10_5
Extend
Port
Serial Port
TXD2/P9_1
B
U
S
TXD3/P9_3
RXD4/P9_4
TXD4/P9_5
ALU
Transition
Detector
SFTDAT/P10_6
SFTSTB/P10_7
TRNS0/P4_0
TRNS7/P4_7
INT0/P6_0
ALU Cont.
ACC
SDIN/P5_0
Interrupt
Cont.
SDOUT/P5_1
ETMCK/P9_6
ECTCK/P9_7
AD0/P0_0
CSR
RXD3/P9_2
SCLK/P5_2
RWB/P5_3
CS/P5_4
WAIT/P5_7
BUS
Port
Cont.
CPU CORE
Flexible
Timer
Memory Cont.
Pointing Reg.
Local Reg.
TXD0/P6_7
RXD2/P9_0
EA
ALE/P7_2
PSEN/P7_3
ROM
128K bytes*1
B
U
S
Serial Port
with FIFO
Peri. Cont.
INT1/P6_1
INT2/P5_5
NMI
CLKOUT/P5_6
WDT
AVDD
General
Timer
VREF
A/D
Converter
PWM0/P7_4
PWM
AI0
AI23
AGND
PWM11/P8_7
Port Cont.
P12 P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 P0
*1 192K bytes for the ML66592/66Q592
*2 8K bytes for the ML66592/66Q592
*3 For the ML66592/66Q592 only
1-4
OE
1.3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
P4_7/TRNS7
P4_6/TRNS6
P4_5/TRNS5
P4_4/TRNS4
P4_3/TRNS3
P4_2/TRNS2
P4_1/TRNS1
P4_0/TRNS0
P9_7/ECTCK
P9_6/ETMCK
P9_5/TXD4
P9_4/RXD4
P9_3/TXD3
P9_2/RXD3
P9_1/TXD2
P9_0/RXD2
GND
VDD
P3_7/CAP3
P3_6/CAP2
P3_5/CAP1
P3_4/CAP0
P3_3/FTM17D
P3_2/FTM17C
P3_1/FTM17B
P3_0/FTM17A
P10_7/SFTSTB
P10_6/SFTDAT
P10_5/SFTCLK
P10_4/FTM16
P10_3/CAP15
P10_2/CAP14
P10_1/RTO13
P10_0/RTO12
P2_7/RTO11
P2_6/RTO10
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
MSM66591/ML66592 User's Manual
Chapter 1 Overview
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Pin Configuration
NMI
RES
EA
VDD
AVDD
VREF
AI0
AI1
AI2
AI3
AI4
AI5
AI6
AI7
AI8
AI9
AI10
AI11
AI12
AI13
AI14
AI15
AI16
AI17
AI18
AI19
AI20
AI21
AI22
AI23
AGND
GND
P6_0/INT0
P6_1/INT1
P6_2/RXD1
P6_3/TXD1
144-Pin Plastic LQFP (Top View)
*1 For the ML66592/66Q592 only
Note: For the package dimensions, see Chapter 26.
For handling of unused pins, see Section 2.27.
1-5
P6_4/RXC1
P6_5/TXC1
P6_6/RXD0
P6_7/TXD0
VDD
OSC0
OSC1
GND
P5_0/SDIN
P5_1/SDOUT
P5_2/SCLK
P5_3/RWB
P5_4/CS
P5_5/INT2
P5_6/CLKOUT
P5_7/WAIT
P7_0
P7_1
P7_2/ALE
P7_3/PSEN
P7_4/PWM0
P7_5/PWM1
P7_6/PWM2
P7_7/PWM3
VDD
GND
P8_0/PWM4
P8_1/PWM5
P8_2/PWM6
P8_3/PWM7
P8_4/PWM8
P8_5/PWM9
P8_6/PWM10
P8_7/PWM11
OE
P0_0/AD0
P2_5/RTO9
P2_4/RTO8
GND
VDD
P2_3/RTO7
P2_2/RTO6
P2_1/RTO5
P2_0/RTO4
P11_7
P11_6
P11_5
P11_4
P11_3/(RMACK)
P11_2/(RMCLK)
P11_1/(RMTX)
P11_0/(RMRX)
TEST
P12_1/A17*1
P12_0/A16
P1_7/A15
P1_6/A14
P1_5/A13
P1_4/A12
P1_3/A11
P1_2/A10
P1_1/A9
P1_0/A8
GND
VDD
P0_7/AD7
P0_6/AD6
P0_5/AD5
P0_4/AD4
P0_3/AD3
P0_2/AD2
P0_1/AD1
1
MSM66591/ML66592 User's Manual
Chapter 1 Overview
1.4
Basic Operation Timing
The MSM66591/ML66592 utilize the Oki-original 16-bit CPU core (nX-8/500S).
With the nX-8/500S, the basic instruction code unit is 8 bits, and instructions are 1 byte
to 6 bytes long. Instructions are classified as either NATIVE instructions for frequent
operation or COMPOSIT instructions to realize a wide addressing range.
NATIVE instructions consist of 1 to 4 bytes and achieve high code efficiency and high
processing efficiency.
COMPOSIT instructions consist of a 1- to 3-byte address specification field (PREFIX)
and a 1- to 3-byte operation specification field (SUFFIX). A wide addressing range can
be realized by combining the PREFIX and SUFFIX.
The MSM66591/ML66592 multiply the original oscillation clock by a factor of 2 to
generate the master clock pulse (CLK). One master clock pulse (CLK) forms one state.
In other words, one state is 41.7 nsec (@ 12 MHz) for the MSM66591 or 35.7 nsce (@
14 MHz) for the ML66592. The execution of a single instruction is performed over
several states (S2, S3, …Sn).
The number of states required for instruction execution depends upon the instruction.
The minimum is 2 states and the maximum is 48 states. (For details, refer to the "nX-8/
500S Core Instruction Manual.")
Figures 1-1 through 1-4 show examples of the basic timing.
In the case of external program memory access (EA pin = "L" level), 1 cycle (= 1 state)
is automatically inserted for a 1 byte read (fetch) operation. In addition, the number of
wait cycles (0 to 3 cycles) specified by the ROM ready control register (ROMRDY) are
also inserted.
For further details regarding external memory access timing, see Chapter 21, "Bus Port
Functions".
1-6
Master clock
(CLK) (internal)
State
S3
S4
S1
S2
S3
S4
(M1S1)
n
PC (internal)
S1
S2
S3
S4
S5
S6
S7
(M1S1)
n+1
S1
S8
(M1S1)
n+2
n+3
n+4
n+5
P3 DATA
STABLE
P3 (pin)
1-7
AL¨P3
off N8¨[DP] (RAM¨P4)
Fetch of LB A, P3
instruction
Fetch of 2nd byte
of LB A, P3
instruction
Fetch of MOVB
off N8, [DP]
instruction
Fetch of 2nd byte of
MOVB off N8, [DP]
instruction
Fetch of 3rd byte of
MOVB off N8, [DP]
instruction
Execution of
next instruction
MSM66591/ML66592 User's Manual
Chapter 1 Overview
Execution of LB A, P3 instruction
P4 DATA
STABLE
Execution of MOVB off N8, [DP] instruction
(DP = 0024H, LRB: internal RAM area)
P4 (pin)
Fetch of next
instruction
Figure 1-1 Basic Operation Timing Example (Input of Port Data)
1
S3
State
S4
S1
S2
S3
S4
(M1S1)
PC (internal)
n
S1
S2
S3
S5
n+1
n+2
S1
(M1S1)
n+3
n+4
n+5
NEW DATA (AL value)
1-8
P4 (pin)
NEW DATA
(#N8 value)
OLD DATA
Execution of STB A, P3 instruction
Execution of MOVB P4, #N8 instruction
P3¨AL
Fetch of STB A, P3
instruction
S6
(M1S1)
OLD DATA
P3 (pin)
S4
Fetch of 2nd byte Fetch of MOVB
of STB A, P3
P4, #N8
instruction
instruction
Execution of
next instruction
P4¨#N8
Fetch of 2nd byte
of MOVB P4, #N8
instruction
Fetch of 3rd byte
of MOVB P4, #N8
instruction
Figure 1-2 Basic Operation Timing Example (Output to Port)
Fetch of next
instruction
Fetch of 2nd byte
of next instruction
MSM66591/ML66592 User's Manual
Chapter 1 Overview
Master clock
(CLK) (internal)
Master clock
(CLK) (internal)
S4
State
S1
S2
S3
(M1S1)
S4
S1
S2
S3
S4
S5
S6
S1
S2
S3
(M1S1)
(M1S1)
S4
S2
S1
(M1S1)
TM1 count clock
TM1RUN
TM1
m
1-9
ACC
m+1
m+2
m+3
m+4
L A, TM1
MSM66591/ML66592 User's Manual
Chapter 1 Overview
TMCON¨ACCL
ACCL = 80H
STB A, N16[X1]
N16[X1]¨ACCL
m+6
TM1 Read
m + 4 DATA
OLD DATA
STB A, TMCON
m+5
A¨TM1
• The timing for the RUN bit that becomes "1" differs depending on the instruction executed.
• The timing to read TM1 differs, depending on the instruction executed.
• The count timing of TM1 differs, depending on the selected clock of TM1.
Figure 1-3 TM1 Operation Timing
1
State
S4
S1
S2
S3
S4
S1
S2
S3
S4
S5
S6
(M1S1)
(M1S1)
S1
S2
S3
S4
S1
S2
(M1S1)
(M1S1)
TM1 count clock
TM1
FFFC
FFFD
FFFE
FFFF
0000
0001
0002
0003
IRQ
Instruction A
Instruction B
Instruction C
0004
Interrupt
transition cycle
1-10
TM1
FFFD
FFFE
FFFF
0000
0001
0002
0003
0004
IRQ
Instruction A
Instruction B
Interrupt transition cycle
• The interrupt transition cycle has 14 cycles. However, it has 17 cycles if the program memory space is extended to 128K bytes.
• IRQ is reset ("0") at the 3rd cycle of the interrupt transition cycle.
Figure 1-4 Interrupt Transition Timing Example
0005
MSM66591/ML66592 User's Manual
Chapter 1 Overview
Master clock
(CLK) (internal)
Chapter 2
2
Description of Pins
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
2. Desacacription of Pins
2
Chapter 2 describes each pin of the MSM66591/ML66592.
For handling of unused pins, see Section 2.27.
2.1
P0_0–P0_7: Input/Output Pins
8-bit I/O pins of Port 0. I/O can be specified in bit units by the Port 0 mode register
(P0IO).
If the EA pin is set to "L" level, these pins automatically function as time-shared address
output and data I/O pins (AD0–AD7) for external program memory access.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer (WDT) is overflown, or an operation code trap is generated), P0 becomes a high
impedance input.
When Port 0 is in output status, "H" or "L" level is output if the OE pin (pin 71) is in "L"
level, but Port 0 goes into high impedance status if the OE pin is in "H" level.
2.2
P1_0–P1_7: Input/Output Pins
8-bit I/O pins of Port 1. I/O can be specified in bit units by the Port 1 mode register
(P1IO).
By setting the EA pin to "L" leve, P1_0–P1_7 also function as output pins for internal
operations (secondary function).
<Description of Secondary Functions of Each Pin>
• A8–A15 (P1_0–P1_7)
If the externally expanded data memory is accessed with the EA pin in "L" level,
these pins function as output pins to output addresses A8–A15.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P1 becomes high impedance input.
When Port 1 is in output status, "H" or "L" level is output if the OE pin (pin 71) is in "L"
level, but Port 1 goes into high impedance status if the OE pin is in "H" level.
2.3
P2_0–P2_7: Input/Output Pins
8-bit I/O pins of Port 2. I/O can be specified in bit units by the Port 2 mode register
(P2IO).
P2_0–P2_7 also function as output pins for internal operations (secondary function).
The secondary functions for P2_0–P2_7 are set in bit units by the Port 2 secondary
function control register (P2SF).
2-1
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
For the pins that have secondary functions set by P2SF, I/O settings by P2IO become
invalid.
<Description of the Secondary Functions of Each Pin>
• RTO4 (P2_0)–RTO11 (P2_7)
The preset level is output when the value of registers 4–11 (TMR4–TMR11) of the
flexible timer match the selected counter values.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P2 becomes a high impedance input.
When Port 2 is in output status, "H" or "L" level is output if the OE pin (pin 71) is in "L"
level. If the OE pin is in "H" level, Port 2 goes into high impedance status.
2.4
P3_0–P3_7: Input/Output Pins
8-bit I/O pins of Port 3. I/O can be specified in bit units by the Port 3 mode register
(P3IO).
P3_0–P3_7 also function as I/O pins for internal operations (secondary function).
Secondary functions for P3_0–P3_7 are set in bit units by the Port 3 secondary function
control register (P3SF). For the pins that have secondary functions set by P3SF, I/O
settings by P3IO become invalid.
<Description of Secondary Functions of Each Pin>
• FTM17A (P3_0)
When register 17 (TMR17) of the flexible timer is in RTO mode, and when the value
of the TMR17 matches the selected counter value, the preset level is output.
When the TMR17 is in CAP mode, FTM17A is set to input pin status. If the specified
edge is input to this pin, the selected counter value is input to the TMR17.
• FTM17B (P3_1)–FTM17D (P3_3)
When the TMR17 is in 4-port output RTO mode, and when the value of the TMR17
matches the selected counter value, the preset level is output.
• CAP0 (P3_4)–CAP3 (P3_7)
If the edge specified to this pin is input for a specified number of times, the selected
counter value is input to timer registers 0–3 (TMR0–TMR3).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P3 becomes a high impedance input.
When P3_0–P3_3 are in output status, "H" or "L" level is output if the OE pin (pin 71) is
in "L" level. If the OE pin is in "H" level, they go into high impedance status.
2-2
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
2.5
P4_0–P4_7: Input/Output Pins
8-bit I/O pins of Port 4. I/O can be specified in bit units by the Port 4 mode register
(P4IO).
P4_0–P4_7 also function as input pins for internal operations (secondary function).
Secondary functions for P4_0–P4_7 are set in bit units by the Port 4 secondary function
control register (P4SF).
For the pins that have secondary functions set by P4SF, I/O settings by P4IO become
invalid.
<Description of Secondary Functions of Each Pin>
• TRNS0 (P4_0)–TRNS7 (P4_7)
Input pins of transition detectors 0–7.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P4 becomes a high impedance input.
2.6
P5_0–P5_7: Input/Output Pins
8-bit I/O pins of Port 5. I/O can be specified in bit units by the Port 5 mode register
(P5IO).
P5_0–P5_7 also function as output pins for internal operations (secondary function).
Secondary functions for P5_0–P5_7 are set in bit units by the Port 5 secondary function
control register (P5SF). For the pins that have secondary functions set by P5SF, I/O
settings by P5IO become invalid.
<Description of Secondary Functions of Each Pin>
• SDIN (P5_0)
Data input pin of serial port 5 (synchronous SCI with FIFO)
• SDOUT (P5_1)
Data output pin of serial port 5 (synchronous SCI with FIFO)
• SCLK (P5_2)
Synchronous clock output pin of serial port 5 (synchronous SCI with FIFO)
• R/W (P5_3)
Data read/write switch signal output pin of serial port 5 (synchronous SCI with FIFO)
• CS (P5_4)
Chip select signal output pin of serial port 5 (synchronous SCI with FIFO)
• INT2 (P5_5)
Dual function interrupt and external interrupt 2 input pin of serial port 5 (synchronous
SCI with FIFO)
2-3
2
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
• CLKOUT (P5_6)
Output pin that outputs clock pulses specified by the peripheral control register
(PRPHF)
• WAIT (P5_7)
BUSY signal input pin of serial Port 5 (synchronous SCI with FIFO)
At reset (when the RES signal is input, the BRK instruction is executed, a watchdog
timer is overflown, or an operation code trap is generated), P5 becomes a high impedance input.
2.7
P6_0–P6_7: Input/Output Pins
8-bit pins of Port 6. I/O can be specified in bit units by the Port 6 mode register (P6IO).
P6_0–P6_7 also function as I/O pins for internal operations (secondary function).
Secondary functions for P6_0–P6_7 are set in bit units by the Port 6 secondary function
control register (P6SF).
For pins that have secondary functions set by P6SF, I/O settings by P6IO become
invalid.
<Description of Secondary Functions of Each Pin>
• INT0 (P6_0), INT1 (P6_1)
Input pins for external interrupts 0 and 1.
• RXD1 (P6_2)
Input pin to input receive data at the serial port 1 receive side.
• TXD1 (P6_3)
Output pin to output transmit data at the serial port 1 transmit side.
• RXC1 (P6_4)
Configured to be the output pin for the shift clock if the serial port 1 receive side is in
synchronous and master mode, and configured to be the input pin of the shift clock if
the receive side is in slave mode.
• TXC1 (P6_5)
Becomes the output pin of the shift clock if the serial port 1 transmit side is in
synchronous mode and master mode, and becomes the input pin of the shift
clock if in slave mode.
• RXD0 (P6_6)
Input pin to input receive data at the serial port 0 receive side.
• TXD0 (P6_7)
Output pin to output transmit data at the serial port 0 transmit side.
2-4
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P6 becomes a high impedance input.
2.8
P7_0–P7_7: Input/Output Pins
8-bit pins of Port 7. I/O can be specified in bit units by the Port 7 mode register (P7IO).
P7_2–P7_7 also function as I/O pins for internal operations (secondary function).
Secondary functions for P7_2–P7_7 are set in bit units by the Port 7 secondary function
control register (P7SF).
For the pins that have secondary functions set by P7SF, I/O settings by P7IO become
invalid.
<Description of Secondary Functions of Each Pin>
• ALE (P7_2)
When accessing external memory, this pin outputs a strobe signal to externally latch
the lower 8 bits of the address output from P0.
If the EA pin has been set to a "L" level, the pin function automatically changes to the
secondary function.
If both the EA and RES pins have been set to a "L" level, this pin is pulled up.
• PSEN (P7_3)
When accessing external program memory, this pin outputs a strobe signal for the
read operation.
If the EA pin has been set to a "L" level, the pin function automatically changes to the
secondary function.
If both the EA and RES pins have been set to a "L" level, this pin is pulled up.
• PWM0 (P7_4)–PWM3 (P7_7)
PWM0–PWM3 output pins.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P7 becomes a high impedance input.
If the OE pin (pin 71) is in "L" level when P7_4 (PWM0)–P7_7 (PWM3) are in output
status, these pins output "H" or "L" level, but if the OE pin is in "H" level, these pins go
into high impedance status.
2-5
2
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
2.9
P8_0–P8_7: Input/Output Pins
8-bit I/O pins of Port 8. I/O can be specified in bit units by the Port 8 mode register
(P8IO).
P8_0–P8_7 also function as output pins for internal operations (secondary function).
Secondary functions for P8_0–P8_7 are set in bit units by the Port 8 secondary function
control register (P8SF).
For the pins that have secondary functions set by P8SF, I/O settings by P8IO become
invalid.
<Description of Secondary Functions of Each Pin>
• PWM4 (P8_0)–PWM11 (P8_7)
Output Pins of PWM4–PWM11
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P8 becomes a high impedance input.
If the OE pin (pin 71) is in "L" level when P8 is in output status, these pins output "H" or
"L" level, but if the OE pin is in "H" level, these pins go into high impedance status.
2.10 P9_0–P9_7: Input/Output Pins
8-bit I/O pins of Port 9. I/O can be specified in bit units by the Port 9 mode register
(P9IO).
P9_0–P9_7 also functions as an output pin for internal operations (secondary function).
Secondary functions for P9_0–P9_7 are set in bit units by the Port 9 secondary function
control register (P9SF). For the pins that have secondary functions set by P9SF, I/O
settings by P9IO become invalid.
<Description of Secondary Functions of Each Pin>
• RXD2 (P9_0)
Receive data for the receive side serial port 2 is input through this pin.
• TXD2 (P9_1)
Transmit data for the transmit side serial port 2 is output through this pin.
• RXD3 (P9_2)
Receive data for the receive side serial port 3 is input through this pin.
• TXD3 (P9_3)
Transmit data for the transmit side serial port 3 is output through this pin.
2-6
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
• RXD4 (P9_4)
Receive data for the receive side serial port 4 is output through this pin.
• TXD4 (P9_5)
Transmit data for the transmit side serial port 4 is input through this pin.
• ETMCK (P9_6)
External clock input pin of the general-purpose 8-bit timer counter.
• ECTCK (P9_7)
External clock input pin of the general-purpose 8-bit event counter.
At reset (when the RES signal is input, the BRK instruction is executed, a watchdog
timer is overflown, or an operation code trap is generated), P9 becomes a high impedance input.
2.11 P10_0–P10_7: Input/Output Pins
8-bit I/O pins of Port 10. I/O can be specified in bit units by the Port 10 mode register
(P10IO).
P10_0–P10_7 also function as output pins for internal operations (secondary function).
Secondary functions for P10_0–P10_7 are set in bit units by the Port 10 secondary
function control register (P10SF).
For the pins that have secondary functions set by P10SF, I/O settings by P10IO become invalid.
<Description of Secondary Functions of Each Pin>
• RTO12 (P10_0), RTO13 (P10_1)
The output pins from which the set level is output when the value of the registers 12
and 13 (TMR12, TMR13) for the flexible timer is consistent with the value of the
selected counter. These are I/O pins that output the set level.
• CAP14 (P10_2), CAP15 (P10_3)
When the specified edge is input to these pins for the specified number of times, the
value of the selected counter is input to TMR14, TMR15.
• FTM16 (P10_4)
Output pins from which set level is output when the value of the register 16 (TMR16)
for the flexible timer matches the value of the selected counter. This is true when the
TMR16 is in RTO mode.
If this register is in CAP mode, the FTM16 pin is configured to be input pin. When the
specified edge is input to this pin, the value of the selected counter is input to
TMR16.
2-7
2
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
• SFTCLK (P10_5)
Shift clock output pin for the expansion port.
• SFTDAT (P10_6)
Serial data input/output pin for the expansion port.
• SFTSTB (P10_7)
Strobe signal output pin for externally latching serial data through the expansion port.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P10 becomes a high
impedance input.
If the OE pin (pin 71) is in "L" level when P10_0–P10_4 are in output status, these pins
output "H" or "L" level, but if the OE pin is in "H" level, these pins go into high impedance status.
2.12 P11_0–P11_7: Input/Output Pins
8-bit I/O pins of Port 11. Individual bits can be specified as input or output by the Port
11 mode register (P11IO).
P11_0–P11_3 also function (secondary and tertiary functions) as I/O pins for internal
operation.
<Description of Secondary/Tertiary Functions of Each Pin>
• RMRX (P11_0)
Address input pin for RAM monitor function.
Also functions (tertiary function) as data I/O pin for serial write mode of the
MSM66Q591/ML66Q592 flash EEPROM.
• RMTX (P11_1)
Data output pin for RAM monitor function.
• RMCLK (P11_2)
Synchronous clock input pin for RAM monitor function.
Also functions (tertiary function) as clock input pin for serial write mode of the
MSM66Q591/ML66Q592 Flash EEPROM.
• RMACK (P11_3)
Address match signal output pin for RAM monitor function.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), P11 becomes a high
impedance input, except when the RAM monitor function is enabled.
2-8
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
2.13 P12_0, P12_1: Input/Output Pins
2-bit I/O pins of Port 12. Individual bits can be specified as input or output by the Port
12 mode register (P12IO).
P12_0 can also be made to function (secondary function) as an output pin for internal
operation by setting the EA pin to a "L" level. In the ML66592, P12_1, also, functions as
its secondary function.
<Description of Secondary Functions of Each Pin>
• A16 (P12_0)
If the EA pin has been set to a "L" level, this pin functions to output address A16 that
is used to access external expanded program memory.
• A17 (P12_1)
If the EA pin has been set to a "L" level, this pin functions to output address A17 that
is used to access external expanded program memory. (ML66592 only)
2.14 AI0–AI23: Input Pins
Analog input pins of the A/D converter.
2.15 AVDD: Input Pin
Power input pin of the A/D converter. Supply the same voltage as VDD to this pin.
2.16 VREF: Input Pin
Reference voltage input pin of the A/D converter.
2.17 AGND: Input Pin
GND pin of the A/D converter.
2.18 OSC0, OSC1: Input Pin, Output Pin
Connection pins to connect the crystal oscillator, ceramic resonator or capacitors for
basic clock oscillation. If the basic clock is supplied externally, input to the OSC0 pin,
and leave the OSC1 pin open.
2.19 OE: Input Pin
When the OE pin is in "H" level, and when each of P0–P2, P3_0–P3_3, P7_4–P7_7,
P8, P10_0–P10_4, P12_0, and P12_1 is in output status, each pin goes into high
impedance state.
2.20 NMI: Input Pin
Input pin of a non-maskable interrupt request.
2.21 RES: Input Pin
Input pin of low active reset.
2-9
2
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
2.22 EA: Input Pin
If the EA pin is set to "H" level, internal program memory is accessed for the entire
program address (0H–1FFFFH).
When in "H" level, the RAM monitor function is enabled.
If the EA pin is set to "L" level, external program memory is accessed for the entire
program address.
In the MSM66Q591/ML66Q592 flash EEPROM version, the RAM monitor function
becomes enabled by setting the EA pin to a "H" level.
Do not apply a high voltage (more than 5 V) to the EA pin when using the MSM66591/
ML66592 mask ROM version.
2.23 TEST: Input Pin
Load test pin. Connect to GND.
In the MSM66Q591/ML66Q592 flash EEPROM version, this pin becomes a high
voltage supply pin while writing to the flash EEPROM.
In the MSM66591/ML66592 mask ROM version, the RAM monitor function becomes
enabled by setting the TEST pin to "H" level. Do not apply a high voltage (more than 5
V) to this pin.
2.24 VDD: Input Pin
Power pin. Connect all the VDD pins (pins 4, 41, 61, 80, 105, 127) to the power supply.
Connect a bypass capacitor of 0.01 to 0.1 µF between the VDD and GND pins.
2.25 GND: Input Pin
GND pin. Connect all the GND pins (pins 32, 44, 62, 81, 106, 128) to the ground.
2.26 Structure of Pins
Table 2-1 and Figure 2-1 show the basic structure of each MSM66591/ML66592 pin.
2-10
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
Table 2-1 Structure of Each Pin
Pin Name
Type No.
Pin Name
Type No.
P0_0–P0_7
6
P8_0–P8_7
5
P1_0–P1_7
5
P9_0–P9_7
5
P2_0–P2_7
5
P10_0–P10_7
5
P3_0–P3_7
5
P11_0–P11_7
5
P4_0–P4_7
5
P12_0, P12_1
5
P5_0–P5_7
5
AI0–AI23
3
OE
1
P6_0–P6_7
5
NMI
1
P7_0, P7_1
5
RES
2
P7_2, P7_3
4
EA
1
P7_4–P7_7
5
TEST
1
Type 1
Type 4
IN
2
VDD
"H" level CONT.
DATA
Schmitt inverter input
Type 2
IN/
OUT
Hiz. CONT.
VDD
The IN/OUT pin is pulled up if the EA and RES
pins are both in "L" level.
Type 5, 6
VDD
IN
Schmitt inverter input with
pull-up resistance
DATA
IN/
OUT
Type 3
A/D ON
IN
Hiz. CONT.
Ø
Ø
A/D ON
During output: push-pull output that can output
high impedance.
During type 5 input: Schmitt inverter input (CMOS).
During type 6 input: Schmitt inverter input (TTL).
Figure 2-1 Pin Structure Types
2-11
MSM66591/ML66592 User's Manual
Chapter 2 Description of Pins
2.27 Handling of Unused Pins
Table 2-2 shows how unused pins should be handled.
Table 2-2 Handling of Unused Pins
Pin
Recommended pin handling
P0_0–P0_7
P1_0–P1_7
P2_0–P2_7
P3_0–P3_7
P4_0–P4_7
P5_0–P5_5
P6_0–P6_7
For input setting: "H" or "L" level
For output setting: open
P7_0–P7_7
P8_0–P8_7
P9_0–P9_7
P10_0–P10_7
P11_0–P11_7
P12_0, P12_1
AI0–AI23
Connect to VREF or AGND
AVDD
Connect to VDD
VREF
AGND
Connect to GND
OE
Set to "L" level
NMI
Set to "H" or "L" level
EA
Set to "H" level
TEST
Set to "L" level
2-12
Chapter 3
3
CPU Architecture
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3. CPU Architecture
3.1
Memory Space
Program memory space and data memory space in MSM66591/ML66592 are set
independently. At reset, up to 64K bytes (small-sized memory model) can be accessed
for program memory space, and up to 6K bytes (MSM66591) or 8K bytes (ML66592) for
data memory space. By changing the setting of the memory size control register
allocated to the SFR, the program memory space can be expanded up to 128K bytes
(MSM66591) or 192K bytes (ML66592) (medium-sized memory model).
3.1.1 Memory Space Expansion
The memory size control register (MEMSCON) is a register allocated to the SFR area
and specifies the size of the memory space. The program memory space can be
expanded to 128K bytes (medium-sized memory model) by setting the LROM bit (bit 1)
to "1". (Write "0" to bit 0.)
MEMSCON
7
6
5
4
3
2
1
0
—
—
—
—
—
—
LROM
"0"
0
Program Memory
Space 64K bytes
1
Program Memory
Space 128K bytes*1
*1 192K bytes for the ML66Q592
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"0" indicates a bit that is not provided.
"0" is read if a read instruction is executed.
Always write "0" to this bit for write.
To write to the LROM bit of MEMSCON, first write "5H" to the high-order 4 bits (loworder 4 bits are arbitrary data) of the memory size accepter (MEMSACP) allocated to
the SFR area, then write "0AH" to them successively.
7
MEMSACP
6
5
4
3
2
1
0
—
—
—
—
Writing to MEMSCON
is enabled by writing
"5H" and "0AH"
succesively.
When an FJ or FCAL is executed with the LROM bit "0", an OP code trap is generated
and a reset occurs.
When data is written to the LROM bit (setting to "1"), an actual memory space expansion is enabled after the instruction next to a LROM bit write instruction (setting to "1") is
executed.
3-1
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Following is a programing example when expanding the program memory space.
This example indicates that the program memory space is expanded up to 128K bytes
(MSM66591) or 192K bytes (ML66592) after the execution of NOP instruction.
MOVB MEMSACP, #50H
MOVB MEMSACP, #0A0H
SB LROM
NOP
MSMSCON can be written only once after reset. Therefore, resetting (by RES signal
input, by execution of BRK instruction, by watchdog timer (WDT) overflow, or by an
operation code trap) is the only way to restore the program memory size to 64K bytes
after it has been expanded to 128K bytes (MSM66591) or 192K bytes (ML66592).
3.1.2 Program Memory Space
Program memory space is referred to as "ROM space."
The MSM66591 can access a maximum of 128K (131072) bytes of program memory in
64K (65536)-byte unit (segment) for segments 0 and 1. The ML66592 can access a
maximum of 192K (196608) bytes of program memory in 64K (65536)-byte unit (segment) for segments 0, 1 and 2. Since segment 3 is not provided, do not try to access it.
However, if more than 64K bytes (segments 1 and 2) are accessed, the LROM bit of the
MEMSCON (memory size control register) allocated to SFR must be set to "1".
The code segment register (CSR) specifies the segment to be used, and the program
counter (PC) specifies the address in the segment. However, the segment to be used at
execution of ROM table reference instructions (LC A, obj etc.) and the ROM window
functions is specified by the table segment register (TSR).
In the MSM66591, the entire 128K-byte area of the sum of the 64K (65536)-byte area in
segment 0 and the 64K (65536)-byte area in segment 1 is the internal ROM area.
In the ML66592, the entire 192K (196608)-byte area of the sum of the 64K-byte area in
segment 0 and each 64K-byte area in segment 1 and segment 2 is the internal ROM
area.
The following areas are assigned to segment 0:
- Vector table area (86 bytes)
- VCAL table area (32 bytes)
The ACAL area (2048 bytes) is assigned to each segment.
Figures 3-1(a) and 3-1(b) show the memory maps of program memory space.
3-2
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Segment 0
Segment 1
0000H
0000H
Vector table area
(74 bytes)
0049H
004AH
0069H
006AH
0075H
0076H
VCAL table area
(32 bytes)
3
Internal
ROM area
Internal
ROM area
Vector table area
(12 bytes)
0FFFH
1000H
0FFFH
1000H
ACAL area
(2K bytes)
ACAL area
(2K bytes)
17FFH
1800H
17FFH
1800H
FFFFH
FFFFH
Figure 3-1(a) Memory Map of MSM66591 Program Memory Space
Segment 0
Segment 1
0000H
Segment 2
0000H
0000H
Vector table area
(74 bytes)
0049H
004AH
0069H
006AH
0075H
0076H
VCAL table area
(32 bytes)
Internal
ROM area
Internal
ROM area
Internal
ROM area
Vector table area
(12 bytes)
0FFFH
1000H
0FFFH
1000H
ACAL area
(2K bytes)
0FFFH
1000H
ACAL area
(2K bytes)
ACAL area
(2K bytes)
17FFH
1800H
17FFH
1800H
17FFH
1800H
FFFFH
FFFFH
FFFFH
Figure 3-1(b) Memory Map of ML66592 Program Memory Space
3-3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[1]
Accessing Program Memory Space
Program memory space is usually accessed by the program counter (PC) and the code
segment register (CSR). However, when a ROM table reference instruction
(LC A, obj...etc.) or a ROM window function (see Section 5.1) is executed, program
memory space is accessed by the content of the table segment register (TSR) and the
register specified by the instruction.
Accessing the internal ROM area and the external memory (ROM) area of the program
memory space is automatically switched by an internal MSM66591/ML66592 operation
by the status of the EA pin (input: pin 3).
When "H" level is input to the EA pin, the internal program memory area is accessed for
the entire program address. When "L" level is input to the EA pin, the external program
memory area is accessed for the entire program address.
If the external memory area of the program memory space is accessed with the EA pin
in "L" level, Port 0 (I/O: pins 72–79: output of low address and input of data), Port 1
(output: pins 82–89: output of high address) and P12_0/A16 pin (output: pin 90: output
of code segment) operates as the bus port, and the P7_3/PSEN pin (output: pin 56)
becomes active synchronizing with the P7_2/ALE pin (output: pin 55). In ML66592,
P12_1/A17 (output: pin 91: output of code segment) also operates as a bus port.
In MSM66591, the internal program fetch enable area is 00000H–1FFFDH. This means
that the final address of instruction code must not exceed 1FFFDH. The final address of
the table data is 1FFFFH.
In ML66592, the internal program fetch enable area is 00000H–2FFFDH. This means
that the final address of instruction code must not exceed 2FFFDH. The final address of
the table data is 2FFFFH.
Segment 3 is not provided in the ML66592. Therefore, do not access address 30000H
or later.
[2]
Vector Table Area
The 74-byte area and 12-byte area of program memory space, which are 0000H–0049H
and 006AH–0074H in segment 0 respectively, are the vector table area (43 types). This
program memory space is used to store branch addresses caused by reset by RES (input:
pin 2) input, reset by execution of BRK instruction, reset by watchdog timer (WDT) overflow,
and reset by an operation code trap (OPTRP). It is also used to store branch addresses by
various interrupt requests.
If a reset or interrupt occurs, a 2-byte content of a branch address, stored in the corresponding vector table, is loaded to the PC (an even address is insignificant data, the
following odd address is significant data), while at the same time "0" is loaded to the
CSR, and program execution starts from the loaded address in segment 0. Therefore, if
the reset or interrupt occurs during execution of the instruction for segment 1, the
program is executed from an address in segment 0.
If this area is not used as a vector table area, it can be used as a normal program area.
3-4
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[Example] If the program start address by RES pin input is 0200H:
Program Address
Data Code
0000H
00H
(insignificant data of program start address)
0001H
02H
(significant data of program start address)
Table 3-1 Vector Table List
Vector Table First Address [H]
Cause
0000
Reset by RES pin input
0002
Reset by BRK instruction execution
0004
Reset by WDT
0006
Reset by OPTRP (operation code trap)
0008
Interrupt by NMI pin input
000A
Interrupt by external interrupt pin input (INT0)
000C
Interrupt by TM0 overflow
000E
Interrupt by TM1 overflow
0010
Interrupt by CAP0 event generation
0012
Interrupt by CAP1 event generation
0014
Interrupt by CAP2 event generation
0016
Interrupt by CAP3 event generation
0018
Interrupt by double buffer RTO4 event generation
001A
Interrupt by double buffer RTO5 event generation
001C
Interrupt by double buffer RTO6 event generation
001E
Interrupt by double buffer RTO7 event generation
0020
Interrupt by double buffer RTO8 event generation
0022
Interrupt by double buffer RTO9 event generation
0024
Interrupt by double buffer RTO10 event generation
0026
Interrupt by double buffer RTO11 event generation
0028
Interrupt by SCI1 transmit/receive
002A
Interrupt by S0TM/S1TM/S2TM/S3TM/S4TM overflow
002C
Interrupt by GTMC/GEVC overflow
002E
Interrupt by end of conversion by A/D converter 1 in
scan/select/hard select mode
0030
Interrupt by end of conversion by A/D converter 0 in
scan/select/hard select mode
0032
Interrupt by PWC0/PWC1 underflow or match
0034
Interrupt by PWC2/PWC3 underflow or match
0036
Interrupt by SCI0 transmit/receive
0038
Interrupt by external interrupt pin input (INT1)
003A
Interrupt by double buffer RTO12 event generation
003C
Interrupt by double buffer RTO13 event generation
003E
Interrupt by PWC4/PWC5 underflow or match
0040
Interrupt by PWC6/PWC7 underflow or match
0042
Interrupt by CAP14 event generation
0044
Interrupt by CAP15 event generation
0046
Interrupt by flexible FTM16 event generation
0048
Interrupt by flexible FTM17 event generation
3-5
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-1 Vector Table List (continued)
Vector Table First Address [H]
[3]
Cause
6AH
Interrut by PWC8/PWC9 underflow or match
6CH
Interrut by PWC10/PWC11 underflow or match
6EH
Interrupt by SCI2 transmit/receive
70H
Interrupt by SCI3 transmit/receive
72H
Interrupt by SCI4 transmit/receive
74H
Interrupt by SCI5 transmit/receive or external interrupt pin
input (INT2)
VCAL Table Area
32-byte area of program memory space, 004AH–0069H in segment 0, is the VCAL
table area to store branch addresses of 1 byte of a call instruction (VCAL: 16 types).
If a VCAL instruction is executed, the next address of the VCAL instruction is saved to
the system stack, the system stack pointer (SSP) is decremented by 2, 2 bytes of the
branch address content, stored in the corresponding vector address, is loaded to the
PC (even address is insignificant data, the following odd address is significant data),
and program execution is started from the loaded address.
If, however, the program memory space is expanded to 128K bytes (MSM66591) or
192K bytes (ML66592), the SSP is decremented by 4 because the CSR value is saved
at the same time that the PC is saved. Also, "0" is loaded to the CSR at the same time
that the branch address content is loaded to the PC. Therefore, if the VCAL instruction
is executed in segment 1, the program is executed from a branch address in segment
0.
When the program memory space is 64K bytes (the LROM bit of MEMSCON is ''0''), the
subroutine branched by the VCAL instruction is returned by the RT instruction.
When the program memory space is 128K bytes (MSM66591) or 192K bytes
(ML66592) (the LROM bit is ''1''), the subroutine is returned by the FRT instruction.
If this area is not used as the VCAL table area, it can be used as a normal program
area.
Table 3-2 shows the VCAL vector address list.
[Example] The program start address by VCAL 4AH is 0400H.
Program Address
Data Code
004AH
00H
(insignificant data of subroutine first address)
004BH
04H
(significant data of subroutine first address)
3-6
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-2 VCAL Vector Address List
[4]
VCAL Table First Address [H]
VCAL Instruction
004A
VCAL 4AH
004C
VCAL 4CH
004E
0050
0052
VCAL 4EH
VCAL 50H
VCAL 52H
0054
0056
0058
005A
VCAL 54H
VCAL 56H
VCAL 58H
VCAL 5AH
005C
005E
0060
VCAL 5CH
VCAL 5EH
VCAL 60H
0062
0064
0066
0068
VCAL 62H
VCAL 64H
VCAL 66H
VCAL 68H
ACAL Area
2K-byte area of program memory space for each segment, 1000H–17FFH, is an area
that can directly call subroutines by a 2-byte call instruction (ACAL). Since the ACAL
instruction can call subroutines in the current segment, when an ACAL instruction is
executed in segment 1, the ACAL area in segment 1 is called. If an ACAL instruction is
executed, the next address of the next ACAL instruction is saved to the system stack,
the system stack pointer (SSP) is decremented by 2, 11 bits of data, included in ACAL
instruction code, is loaded to the PC, and program execution is started from the loaded
address (1000H–17FFH). The CSR value does not change.
3-7
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.1.3 Data Memory Space
Data memory space is referred to "RAM space".
The MSM66591 can access a maximum of 6K (6144) bytes of data memory.
The ML66592 can access a maximum of 8K (8192) bytes of data memory.
The following areas are assigned to the data memory space: a special function register
area (SFR area: 256 bytes), an expanded SFR area (256 bytes), a fixed page area (FIX
area: 256 bytes), an internal RAM area (MSM66591: 6144 bytes, ML66592: 8192
bytes), a local register setting area (2048 bytes), and a ROM window setting area
(MSM66591: 57344 bytes, ML66592: 53248 bytes).
The pointing register area (PR: 64 bytes) and the special bit addressing area (sbafix: 64
bytes) are located in the fixed page area.
In MSM66591, access to the area from 1A00H–FFFFH is inhibited since it is not located
in internal RAM. However, the ROM window setting area (2000H–FFFFH) can be
accessed only if the ROM window has been set.
In ML66592, access to the area from 2200H–FFFFH is inhibited since it is not located in
internal RAM. However, the ROM window setting area (3000H–FFFFH) can be accessed only if the ROM window has been set.
Figures 3-2(a) and 3-2(b) show the memory maps of the data memory space.
0000H
SFR Area
00FFH
0100H
01FFH
0200H
02FFH
0300H
Expanded SFR Area
FIX Area
Internal
RAM area
Local register
setting area
09FFH
0A00H
19FFH
1A00H
Access Inhibit Area
1FFFH
2000H
ROM Window
Setting Area
FFFFH
Figure 3-2(a) Memory Map of MSM66591 Data Memory Space
3-8
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
0000H
SFR Area
00FFH
0100H
01FFH
0200H
02FFH
0300H
Expanded SFR Area
FIX Area
3
Internal
RAM area
Local register
setting area
09FFH
0A00H
21FFH
2200H
Access Inhibit Area
2FFFH
3000H
ROM Window
Setting Area
FFFFH
Figure 3-2(b) Memory Map of ML66592 Data Memory Space
[1]
Special Function Register (SFR) Area
The following are assigned to the 256-byte area of data memory space, 0000H–00FFH:
such special function registers as mode registers of MSM66591/ML66592 internal
peripheral hardware, control registers and a counter.
[2]
Expanded Special Function Register (Expanded SFR) Area
The same special function registers that the SFR area has are assigned to the 256 byte
area of data memory space, 0100H–01FFH.
[3]
Internal RAM Area
In the MSM66591, internal RAM is assigned to the 6K (6144)-byte area of data memory
space, 0200H–19FFH.
In the ML66592, internal RAM is assigned to the 8K (8192)-byte area of data memory
space, 0200H–21FFH.
3-9
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[4]
Fixed Page (FIX) Area
The following are assigned to the 256-byte area of data memory space, 0200H–02FFH:
a pointing register (PR) area, and a special bit address area (sbafix).
The pointing register area is assigned to 0200H–023FH, and it has 8 sets of the following 4 registers.
• index registers (X1, X2)
• data pointer (DP)
• user stack pointer (USP)
All are 16-bit registers. Even addresses are insignificant data, and the following odd
addresses are significant data.
The special bit address area is assigned to 02C0H–02FFH, so that SB, RB, JBR and
JBS instructions to this area can be implemented in a small number of bytes.
Figure 3-3 shows the map of the fixed page area.
01FFH Expanded SFR Area
0200H
X1
X2
DP
SCB = 0
USP
X1
0208H
X2
DP
SCB = 1
USP
X1
0210H
Fixed
page
area
0238H
USP
X1
X2
DP
USP
Pointing
register set
SCB = 7
0240H
02C0H
SBA Area
64 Bytes
In this area, SB, RB,
JBS and JBR instructions,
with sba.bit as the object,
can be used.
0300H
Figure 3-3 Map of Fixed Page Area
3-10
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[5]
Local Register Setting Area
A 2K-byte area of data memory, 0200H–09FFH, is the local register setting area.
The local register is specified by LRB low-order 8 bits (LRBL) in 8-byte units.
3
Figure 3-4 shows the map of the local register setting area.
0000H
Internal
RAM area
*1
SFR Area
0100H Expanded SFR Area
0200H
FIX Area
0300H
Local register setting area:
specified by LRBL 8 bits,
in 8-byte units
0200H ER0
ER1
ER2
ER3
0208H ER0
0A00H
19FFH
R0
R1
R2
R3
R4
R5
R6
R7
R0
R1
LRBL =
00H
LRBL =
01H
*1
For the ML66592, the internal RAM area
is 200H to 21FFH.
ER3
R6
R7
LRBL =
FFH
0A00H
Figure 3-4 Map of Local Register Setting Area
[6]
ROM Window Setting Area
The 56K (57344)-byte area from 2000H to FFFFH in the data memory space of the
MSM66591 is not allocated as data memory. However, this area is used by the ROM
window function if set by the ROM window setting register.
The 52K (53248)-byte area from 3000H to FFFFH in the data memory space of the
MSM66591 is not allocated as data memory. However, this area is used by the ROM
window function if set by the ROM window setting register.
Corresponding to the specified area (MSM66591: 2000H and above, ML66592: 3000H
and above) of data memory, the ROM window function enables instructions to access
(read operation) data in the program space at the same address instead of data in the
data memory space.
There are two conditions for the ROM window function to be valid, (1) register settings
(ROMWIN) must enable the ROM window function, and (2) the accessed address (read
operation) must be in external data memory area.
3-11
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.1.4 Data Memory Access
Examples of memory access when a byte operation and a word operation are performed to a data memory space by an instruction are shown below.
[1]
Byte Operation
In the case of a byte operation, the 8-bit data indicated by the address specified by an
instruction becomes the target.
[Example] LB A, [DP]: when content of DP is 0335H
15
ACC
0
0332H
0333H
0334H
0335H
0336H
0337H
0338H
[2]
Word Operation
In the case of a word operation, the target is 16-bit data with 8-bit data indicated by an
address in which the least significant bit (LSB) "0" (even address) becomes low-order
8-bit data, and 8-bit data indicated by an address in which LSB "1" (odd address)
becomes high-order 8-bit data.
16-bit data where low-order 8 bits are allocated in an odd address and high-order 8 bits
are allocated in an even address is inaccessible. (A boundary exists during word
operation.) Such a boundary does not exists in the program memory space.
[Example] L A, [DP]: when content of DP is 0334H (or 0335H)
0330H
15
ACC
0
0331H
0332H
0333H
0334H
0335H
0336H
0337H
In the avobe example, 16-bit data where low-order 8 bits are allocated in 0333H and highorder 8 bits are allocated in 0334H is inaccessible.
3-12
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.2
Registers
Registers are classified by the following functions: the arithmetic registers, control
registers, pointing registers, special function registers, local registers, and segment
registers.
Figure 3-5 shows the configuration of each register.
Arithmetic register
15
Control register
15
0
ACC
0
PSW
PC
LRB
Pointing register
15
SSP
Segment register
7
0
X1
0
CSR
X2
TSR
DP
USP
Special function register (SFR)
7
Local register
7
0 7
0 7
0
1
0
3
2
0
R1
R0
(ER0)
R3
R2
(ER1)
R5
R4
(ER2)
253
252
R7
R6
(ER3)
255
254
Figure 3-5 Configuration of Register
3.2.1 Arithmetic Register (ACC)
The 16-bit arithmetic register is the accumulator (ACC), a central register for various
operations.
If the transfer, operation, etc. is
• Word type, all 16 bits (bits 15–0) are accessed.
• Byte type, the low-order 8 bits (bits 7–0) are accessed.
• Nibble type, the low-order 4 bits (bits 3–0) are accessed.
If the target bits are specified (SBR, RBR...) by ACC with a bit operation instruction,
the high-order 5 bits (bits 7–3) of the low-order 8 bits become the offset specification of
an address, and the low-order 3 bits (bits 2–0) become the bit position specification.
ACC is assigned to SFR, and the content becomes 0000H at reset (when the RES
signal is input, the BRK instruction is executed, the watchdog timer is overflown, or an
operation code trap is generated.)
3-13
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.2.2 Control Register
Control registers are a group of registers that have dedicated functions, such as
functions for program status, program sequence, local registers, and stack control.
Control registers consist of four 16-bit registers.
[1]
Program Status Word (PSW)
PSW is a 16-bit register that consists of
• flags to be referred to when executing an instruction (DD)
• flags that are set to "1" or "0" depending on the result of an executing instruction (CY,
ZF, HC, S, OV)
• flags to specify the pointing register set (SCB0–2)
• flags to specify enable ("1") or disable ("0") of an entire maskable interrupt (MIE)
• flags that the user can freely use (F0–2)
• flags available for future expansion of CPU core functions. The user can freely use
these flags in MSM66591/ML66592. (BCB0, 1, MAB)
PSW can be divided into PSWH (bits 8–15) and PSWL (bits 7–0) in 8-bit units, and can
perform 8-bit unit operations as well as 16-bit unit operations depending on the instruction.
Figure 3-6 shows the configuration of PSW.
15
14
13
12
11
10
9
8
7
6
CY ZF HC DD
S
F2 OV MIE MAB F1
5
4
BCB
1
0
PSWH
3
F0
2
1
0
SCB
2
1
0
PSWL
PSW
Figure 3-6 Configuration of PSW
High-order 8 bits (PSWH) of PSW include:
• flags to be referred to when executing an instruction (DD)
• flags that are set to "1" or "0" depending on the result of an executing instruction (CY,
ZF, HC, DD, S, OV)
This means that if the following instructions are executed to PSW or PSWH, the
operation may be different from the original operation of the flags.
A. PSW or PSWH content load instruction to ACC
(ZF becomes undefined)
B. Bit operation instruction to ZF (ZF becomes undefined)
3-14
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
C. Instructions for increment, decrement, and arithmetic and logic operation and comparison to PSW or PSWH (content of PSW or PSWH is undefined after the instruction is executed).
If an interrupt occurs, PSW is automatically saved during an interrupt transition cycle,
and automatically returns when an RTI instruction is executed.
PSW is assigned to SFR, and the content becomes 0000H at reset (when the RES
signal is input, the BRK instruction is executed, the watchdog timer is overflown, or an
operation code trap is generated.)
A description of each PSW bit follows:
Bit 15: carry flag (CY)
A carry flag is set to "1" if:
• carry from bit 7 occurs in a byte operation
• borrow to bit 7 occurs in a byte operation
• carry from bit 15 occurs in a word operation
• borrow to bit 15 occurs in a word operation
as a result of executing an arithmetic instruction and a comparison instruction,
otherwise, it is set to "0". Carry flags can be set/reset depending on the instruction,
and can transmit/receive data for the bit specified by register. A carry flag can be
tested by a conditional branch instruction.
Bit 14: zero flag (ZF)
A zero flag is set to "1" if:
• the value is zero as a result of an arithmetic instruction execution
• the loaded content is zero when a load instruction to ACC is executed
• the target bit is zero when a bit operation instruction is executed
otherwise, it is set to "0". A zero flag can be tested by a conditional branch instruction.
Bit 13: half carry flag (HC)
A half carry flag is set to "1" if a carry or borrow from bit 3 occurs as a result of executing an arithmetic operation and comparison instruction (same for both byte and word
operations), otherwise, it is set to "0".
Bit 12: data descriptor (DD)
A data descriptor indicates the attributes of data stored in ACC, and
• If DD is "1", ACC data is valid for 16 bits
• If DD is "0", ACC data is valid for the low-order 8 bits
When DD is referred to for an arithmetic instruction and data transfer instruction
execution with ACC:
• the operation and transfer in word units are executed if DD is "1"
• the operation and transfer in byte units are executed if DD is "0"
DD is set to "1" or "0" when the data transfer instruction to ACC is executed, and also
set or reset when a dedicated set or reset instruction is executed.
This means that:
• DD is set to "1" when a word type load instruction to ACC is executed, and when an
SDD instruction is executed.
• DD is set to "0" when a byte type load instruction to ACC is executed, and when an
RDD instruction is executed.
3-15
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
If the state of DD is changed when a load instruction to ACC or a dedicated set or
reset instruction is executed, the next instruction, if it is an instruction to refers to DD,
is executed referring to the DD whose state has been changed.
Since DD is assigned to PSW, DD can also be changed by instructions other than
the instructions above. In this case, if the next is an instruction to refer to DD, the state
of DD to be changed is referred to in order to execute the instruction. If DD is used in
this manner, insert an NOP instruction, next to the instruction that directly changes the
state of DD.
Bit 11: sign flag (S)
A sign flag is set if MSB is "1", as a result of executing an arithmetic or logic instruction, and is reset if MSB is "0".
Bit 10: user flag 2 (F2)
Bit 6: user flag 1 (F1)
Bit 3: user flag 0 (F0)
These flags can be set to "1" or "0" depending on the instruction.
Bit 9: overflow flag (OV)
An overflow flag is set to "1" if the result of executing an arithmetic instruction exceeds
the range expressed by a complement of 2 (–128 to +127 in the case of a byte operation;
–32768 to +32767 in the case of a word operation), otherwise it is set to "0".
Bit 8: master interrupt enable flag (MIE)
A master interrupt enable flag controls enable ("1") and disable ("0") of an entire
maskable interrupt. This flag is set to "0" after it is saved to the system stack as PSW
during a maskable interrupt transition cycle, and returns by executing an RTI instruction. If MIE is set to "1", the generation of an entire maskable interrupt is enabled from
the next instruction. If MIE is set to "0", an entire maskable interrupt is disabled from
the next instruction.
Bit 7: sum of product operation function bank flag (MAB)
Since the MSM66591/ML66592 have no sum of product operation function, MAB can
be used as a user flag.
Bit 5: bank common base 1 (BCB1)
Bit 4: bank common base 0 (BCB0)
Since the MSM66591/ML66592 have no bank common base function, these flags can
be used as user flags.
Bit 2: system control base 2 (SCB2)
Bit 1: system control base 1 (SCB1)
Bit 0: system control base 0 (SCB0)
These flags specify setting the pointing register (PR) assigned to a fixed page area.
3-16
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
SCB
1
0
0
1
1
0
0
1
1
2
0
0
0
0
1
1
1
1
[2]
Setting of Pointing
Register
PR0 (0200H–0207H)
PR1 (0208H–020FH)
PR2 (0210H–0217H)
PR3 (0218H–021FH)
PR4 (0220H–0227H)
PR5 (0228H–022FH)
PR6 (0230H–0237H)
PR7 (0238H–023FH)
0
0
1
0
1
0
1
0
1
3
Program Counter (PC)
The PC is a 16-bit counter that holds the address information in the segment of the
program to be executed next. PC is normally incremented according to the number of
bytes of an instruction to-be-executed. If a branch instruction or an instruction that
requires a branch is executed, immediate data, register content, etc. are loaded.
The CSR value does not change even if an overflow occurs because of an increment in
PC.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), or when an interrupt occurs,
the content of the vector table area is loaded to the PC.
[3]
Local Register Base (LRB)
The LRB is a 16-bit register. The low-order 8 bits (LRBL) specifies 2K bytes of data
memory space, 0200H–09FFH, in 8 byte units (local register addressing).
The high-order 8 bits (LRBH) specify 64K bytes of data memory space in 256 byte units
(current page addressing). 64 bytes of the current page, xxC0H–xxFFH, is an area that
SB, RB, JBR, and JBS instructions can access by specifying the sba.bit addressing.
Both LRBL (02H) and LRBH (03H) are assigned to SFR, and the content is undefined
at reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated).
15 14
13 12
11 10
9
8
7
LRBH
6
5
4
3
LRBL
LRB
Figure 3-7 Configuration of LRB
3-17
2
1
0
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
• LRBL 8 bits specify 2K bytes of data memory space, 0200H–09FFH, in 8-byte units.
7
6
5
4
3
2
1
0
x
x
x
LRBL
LRBL 8 bits specify 2K bytes of data memory space,
0200H–09FFH, in 8-byte units.
(Value x is included in instruction code.)
• LRBH 8 bits specify 64K bytes of data memory space, in 256-byte units. (The area of
addresses 1A00H through 1FFFH is excluded.)
7
6
5
4
3
2
1
0
x
x
x
x
x
x
x
x
LRBH
LRBH 8 bits specify 64K bytes of data memory
space, 0000H–FFFFH, in 256-byte units.
(Value x is included in instruction code.) (The area of
addresses 1A00H through 1FFFH is excluded.)
[4]
System Stack Pointer (SSP)
SSP is a 16-bit register that indicates the stack address to save or return PC, registers,
etc. while handling an interrupt and executing CAL, PUSH, RT, and POP instructions.
SSP is automatically incremented or decremented depending on the process to be
executed.
A save or return to the stack address indicated by SSP is performed in word units, so
the least significant bit (LSB) of SSP is addressed as "0".
The SFR area and expanded SFR area cannot be used as the stack.
SSP (00H) is assigned to SFR, and the content becomes FFFFH at reset (when the
RES signal is input, the BRK instruction is executed, the watchdog timer is overflown, or
an operation code trap is generated).
3-18
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.2.3 Pointing Register (PR)
PR has 8 sets. 1 set consists of the following four 16-bit registers.
• index register 1 (X1)
3
• index register 2 (X2)
• data pointer (DP)
• user stack pointer (USP)
PR is assigned to 0200H–023FH of the internal RAM area, and one of the 8 sets is
selected by SCB0–2 of PSWL.
If the PR function is not used, PR can be used as internal RAM.
For all of X1, X2, DP and USP, even addresses are low-order 8 bits. The following odd
addresses are high-order 8 bits.
01FFH Expanded SFR area
0200H
X1
X2
DP
SCB = 0
USP
X1
0208H
X2
DP
SCB = 1
USP
X1
0210H
0238H
USP
X1
X2
DP
USP
SCB = 7
0240H
3-19
Pointing
register set
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.2.4 Local Registers (R, ER)
R is an 8-bit register, ER is a 16-bit register. R and ER specify 2K bytes of data memory
space, 0200H–09FFH, in 8 byte units by the LRBL low-order 8 bits of the local register
base. 1 byte of the specified 8 bytes is assigned as R by 3-bit data of a local register
operation instruction. (2 bytes are assigned as ER by 2-bit data.)
0200H
ER0
ER1
ER2
ER3
0208H ER0
R0
R1
R2
R3
R4
R5
R6
R7
R0
R1
LRBL =
00H
LRBL =
01H
Specified in 8 byte
units by LRBL 8 bits.
R0 to R7 are specified
by 3 bits included in
instruction code. ER0
to ER3 are specified by
2 bits included in
instruction code.
ER3
R6
R7
0A00H
3-20
LRBL =
FFH
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.2.5 Segment Register
The segment register consists of two 8-bit registers: code segment register (CSR) and
table segment register (TSR). It selects a segment in the program memory space.
Since the program memory space of MSM66591 has only two segments, segment 0
and segment 1, only bit 0 is valid for both the CSR and the TSR. Bits 1 to 7 are fixed to
"0".
Since the program memory space of ML66592 has only segments 0, 1 and 2, only bits
0 and 1 are valid for both the CSR and the TSR. Bits 2 to 7 are fixed to "0". (Do not
access segment 3.)
[1]
Code Segment Register (CSR)
CSR
CSR
7
6
5
4
3
2
1
"0"
"0"
"0"
"0"
"0"
"0"
"0"
7
6
5
4
3
2
1
"0"
"0"
"0"
"0"
"0"
"0"
0
(MSM66591)
0
(ML66592)
CSR specifies the segment in the program memory space to which the program code
being executed belongs. CSR is given as an independent 8-bits register, and is not
assigned to the SFR area.
CSR can be reloaded by the FJ, FCAL, FRT, and RTI instructions and an interrupt. No
other methods can reload CSR. Since in the MSM66591 CSR has only one valid bit
while in the emulator for the MSM66591 CSR has two valid bits, specify either segment
0 or segment 1 when executing the FJ or FCAL instruction for MSM66591.
Since in the ML66592 segment 3 is not provided, specify segment 0, 1 or 2 when
executing the FJ or FCAL instruction (do not access segment 3).
Each segment is assigned offset addresses of 0 through 0FFFFH. The address calculation for determining the addressing target is performed by a 16-bit offset address, and
the resulting overflow and underflow are ignored, which therefore never results in
change in the CSR. Similarly, a PC overflow never updates the CSR. Therefore, without
the use of the CSR reloading method described above, a program execution does not
progress beyond the code segment boundary. The CSR value at reset is 00H.
When an interrupt is generated after the program memory space is extended to 128K
bytes (MSM66591) or 192K bytes (ML66592), the current CSR value, along with the
PC, is automatically saved onto the stack. Executing the RTI instruction returns the
saved value to CSR. (See Section 3.1.1, "Memory Space Expansion.")
3-21
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[2]
Table Segment Register (TSR)
TSR
TSR
7
6
5
4
3
2
1
"0"
"0"
"0"
"0"
"0"
"0"
"0"
7
6
5
4
3
2
1
"0"
"0"
"0"
"0"
"0"
"0"
0
(MSM66591)
0
(ML66592)
TSR specifies the segment (in the program memory space) to which the table data
belongs. TSR is an 8-bit register which is assigned to the SFR area.
TSR can be read/written by the program. Data in the table segment can be accessed
using the ROM reference instructions (LC, LCB, CMPC, and CMPCB). By executing the
ROM window function, RAM addressing can be used for this table segment.
In MSM66591, only bit 0 of TSR is valid. If a read instruction is executed, "0s" are read
from bits 1 to 7. Since in the MSM66591 TSR has only one valid bit while on the
emulator for the MSM66591 TSR has two valid bits, be sure to write "0s" to bits 1 to 7
when writing to TSR.
In ML66592, only bits 0 and 1 of TSR are valid. If a read instruction is executed, "0s"
are read from bits 2 to 7. Since in the ML66592 segment 3 is not provided, do not
access segment 3. When writing to TSR, be sure to write "0s" to bits 2 to 7.
Each segment is assigned offset addresses of 0 through 0FFFFH. The address calculation for determining the addressing target is performed by a 16-bit offset address, and
the resulting overflow and underflow are ignored, which therefore never results in a
change in TSR. The TSR value at reset is 00H.
3-22
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.2.6 Special Function Register (SFR)
The SFR area is a 256-byte area of data memory space, 0000H–00FFH, and the
expanded SFR area is another 256-byte area of data memory space, 0100H–01FFH.
SFR and expanded SFR are groups of registers that have special functions assigned,
such as:
• mode register of various peripheral hardware
• arithmetic register (ACC)
• control registers (PSW, LRBL, LRBH, SSP)
Table 3-3 shows the SFR list. The meaning of items in this list are explained below.
• Address [H]
An address is expressed in hexadecimal. "✩" in the address column
indicates that there is a missing bit (nonexistent bit) in the register.
• Name
Name based on the SFR function.
• Abbreviated
Name
Abbreviation of name and data address symbol in assembler.
Specifically SSP, LRB, LRBL, LRBH, PSW, PSWL and PSWH
become ASSP, ALRB, ALRBL, ALRBH, APSW, APSWL and
APSWH respectively.
• R/W
Read (R)/write (W) possibility of SFR
R/W both read and write enable
R
read only
W
write only
• 8/16-Bit
Operation
8-bit operation/16-bit operation possibility of SFR.
Specify a 16-bit operation for a 16-bit operable register by an even
address.
The bit operation to a 16-bit operation-only register is disabled.
8/16
both 8-bit operation and 16-bit operation enable
8
8-bit operation only
16
16-bit operation only
• Reset State
Indicates content of each SFR at reset (when RES signal is
input, the BRK instruction is executed, the watchdog timer is overflown, or an operation code trap is generated).
In Table 3-3, addresses where nothing has been assigned are indicated by blank
columns. Do not access them.
3-23
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[Note]
Do not perform the following operations to SFR:
A. A write operation to a read-only SFR
B. A read operation to a write-only SFR
C. A 16-bit operation to an 8-bit operation-only SFR
D. An 8-bit operation to a 16-bit operation-only SFR
E. A 1-bit operation to a 16-bit operation-only SFR
F. An operation to an address where register, etc. are not assigned
G. An operation to the emulator use area
3-24
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-3 SFRs
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
0000
16
System Stack Pointer
FFFF
SSP
—
0001
0002
LRBL
Local Register Base
Undefined
LRB
0003
LRBH
R/W
00
0004
PSWL
Program Status Word
PSW
8/16
00
0005
PSWH
00
0006
ACCL
Accumulator
ACC
00
0007
ACCH
TSR
—
00
0008✩ Table Segment Register
8
0009
000A
000B✩ ROM Window Register
F0
—
ROMWIN
8
R/W
000C✩ ROM Ready Control Register
FF
—
ROMRDY
000D
"0"
Stop Code Acceptor
—
W
STPACP
000E
8
C8
—
R/W
SBYCON
000F✩ Standby Control Register
—
0010
Port 0 Data Register
00
P0
—
0011
Port 1 Data Register
00
P1
—
0012
Port 2 Data Register
00
P2
—
Port 3 Data Register
00
P3
0013
—
0014
Port 4 Data Register
00
P4
—
0015
8
R/W
Port 5 Data Register
00
P5
—
0016
Port 6 Data Register
00
P6
—
0017
Port 7 Data Register
00
P7
—
0018
Port 8 Data Register
00
P8
—
0019
Port 9 Data Register
00
P9
—
001A
Port 10 Data Register
00
P10
—
001B
Port 11 Data Register
00
P11
—
001C
Port 2 Secondary Function Control Register
00
P2SF
—
001D
Port 3 Secondary Function Control Register
00
P3SF
—
001E
Port 4 Secondary Function Control Register
P4SF
00
—
001F
P5SF
Port 5 Secondary Function Control Register
00
—
0020
Port 6 Secondary Function Control Register
P6SF
00
8
R/W
—
0021✩ Port 7 Secondary Function Control Register
P7SF
00
—
0022
Port 8 Secondary Function Control Register
P8SF
00
—
0023
P9SF
Port 9 Secondary Function Control Register
00
Port 10 Secondary Function Control Register
—
0024
P10SF
00
8
—
00
R/W
0025✩ Port 12 Data Register
P12
—
0026
SCI1 Transmit/Receive Buffer Register
Undefined
S1BUF
—
R/W
0027
SCI1 Status Register
00
S1STAT
—
S0BUF0
0028
SCI0 Transmit/Receive Buffer Register 0
Undefined
8
—
0029
SCI0 Receive Buffer Register 1 S0BUF1
Undefined
R
—
002A
SCI0 Receive Buffer Register 2 S0BUF2
Undefined
—
002B
SCI0 Receive Buffer Register 3 S0BUF3
Undefined
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-25
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-3 SFRs (continued)
Address [H]
002C
002D
002E
002F
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039✩
003A
003B✩
003C
003D✩
003E
003F✩
0040
0041
0042
0043
0044✩
0045
0046
0047
0048
0049
004A✩
004B
004C
004D
004E✩
Name
SCI2 Transmit/Receive Buffer Register 0
SCI2 Receive Buffer Register 1
SCI2 Receive Buffer Register 2
SCI2 Receive Buffer Register 3
SCI3 Transmit/Receive Buffer Register 0
SCI3 Receive Buffer Register 1
SCI3 Receive Buffer Register 2
SCI3 Receive Buffer Register 3
SCI4 Transmit/Receive Buffer Register 0
SCI4 Receive Buffer Register 1
SCI4 Receive Buffer Register 2
SCI4 Receive Buffer Register 3
SCI0 Status Register 0
SCI0 Interrupt Control Register
SCI2 Status Register 0
SCI2 Interrupt Control Register
SCI3 Status Register 0
SCI3 Interrupt Control Register
SCI4 Status Register 0
SCI4 Interrupt Control Register
Interrupt Request Register 0
Interrupt Request Register 1
Interrupt Request Register 2
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
S2BUF0
S2BUF1
S2BUF2
S2BUF3
S3BUF0
S3BUF1
S3BUF2
S3BUF3
S4BUF0
S4BUF1
S4BUF2
S4BUF3
S0STAT0
SR0INT
S2STAT0
SR2INT
S3STAT0
SR3INT
S4STAT0
SR4INT
IRQ0L
IRQ0H
IRQ1L
IRQ1H
IRQ2L
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
IRQ1
Watchdog Timer
WDT
—
—
GTINTCON
—
General-Purpose 8-Bit Timer
Interrupt Control Register
R/W
R
R/W
R
8
R/W
R/W
8/16
8
—
Interrupt Enable Register 2
Interrupt Enable Register 1
R
IRQ0
IE0L
IE0H
IE1L
IE1H
IE2L
Interrupt Enable Register 0
R/W
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
00
01
00
01
00
01
00
01
00
00
00
00
C0
8
00
00
00
00
C0
W
8
Stop
R/W
8
IE0
R/W
8/16
IE1
—
—
TRNSIT
004F
Transition Detector
PWM Counter 0/
PWC0/
0050
—
PWC0 Buffer Register
PWC0BF
0051
0052
PWM Counter 1/
PWC1/
R/W
16
—
0053
PWC1 Buffer Register
PWC1BF
(*1)
PWM Counter 2/
PWC2/
0054
—
PWC2 Buffer Register
PWC2BF
0055
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-26
Reset
State [H]
F0
00
FFFF
FFFF
FFFF
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-3 SFRs (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
PWM Counter 3/
PWC3/
0056
—
PWC3 Buffer Register
PWC3BF
0057
PWM Counter 4/
PWC4/
0058
—
PWC4 Buffer Register
PWC4BF
0059
PWM Counter 5/
PWC5/
005A
—
PWC5 Buffer Register
PWC5BF
005B
PWM Counter 6/
PWC6/
005C
—
PWC6 Buffer Register
PWC6BF
005D
PWM Counter 7/
PWC7/
R/W
005E
—
PWC7 Buffer Register
PWC7BF
(*1)
005F
0060
PWC8/
PWM Counter 8/
—
PWC8BF
0061
PWC8 Buffer Register
0062
PWC9/
PWM Counter 9/
—
PWC9BF
0063
PWC9 Buffer Register
0064
PWC10/
PWM Counter 10/
—
PWC10BF
0065
PWC10 Buffer Register
0066
PWC11/
PWM Counter 11/
—
PWC11BF
0067
PWC11 Buffer Register
0068
PWR0/
PWM Register 0/
—
PW0BF
0069
PWR0 Buffer Register
006A
PWR1/
PWM Register 1/
—
16
PW1BF
006B
PWR1 Buffer Register
006C
PWR2/
PWM Register 2/
—
PW2BF
006D
PWR2 Buffer Register
006E
PWR3/
PWM Register 3/
—
PW3BF
006F
PWR3 Buffer Register
0070
PWR4/
PWM Register 4/
—
PW4BF
0071
PWR4 Buffer Register
0072
PWR5/
PWM Register 5/
R/W
—
PW5BF
0073
PWR5 Buffer Register
(*2)
0074
PWR6/
PWM Register 6/
—
PW6BF
0075
PWR6 Buffer Register
0076
PWR7/
PWM Register 7/
—
PW7BF
0077
PWR7 Buffer Register
0078
PWR8/
PWM Register 8/
—
PW8BF
0079
PWR8 Buffer Register
007A
PWR9/
PWM Register 9/
—
PW9BF
007B
PWR9 Buffer Register
007C
PWR10/
PWM Register 10/
—
PW10BF
007D
PWR10 Buffer Register
007E
PWR11/
PWM Register 11/
—
PW11BF
007F
PWR11 Buffer Register
PWRUNL
0080
PWMRUN Register
PWRUN
R/W
8/16
PWRUNH
0081✩
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-27
Reset
State [H]
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
FFFF
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
00
F0
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-3 SFRs (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
00
PWINTQ0L
0082
PWM Interrupt Register 0
PWINTQ0
PWINTQ0H
0083✩
F0
00
PWINTQ1L
0084
PWM Interrupt Register 1
PWINTQ1
PWINTQ1H
0085✩
F0
R/W
8/16
00
PWINTE0L
0086
PWM Interrupt Enable Register 0
PWINTE0
PWINTE0H
0087✩
F0
00
PWINTE1L
0088
PWM Interrupt Enable Register 1
PWINTE1
PWINTE1H
0089✩
F0
008A
Undefined
Timer Register 0
—
TMR0
008B
008C
Undefined
Timer Register 1
—
TMR1
008D
R
008E
Undefined
Timer Register 2
—
TMR2
008F
0090
Timer Register 3
TMR3
—
Undefined
0091
0092
—
TMR4
0000
Timer Register 4
0093
0094
Timer Register 5
—
TMR5
0000
0095
0096
Timer Register 6
—
TMR6
0000
0097
0098
Timer Register 7
—
TMR7
0000
0099
009A
Timer Register 8
—
TMR8
0000
009B
R/W
16
009C
Timer Register 9
—
TMR9
0000
009D
009E
—
TMR10
0000
Timer Register 10
009F
00A0
—
TMR11
0000
Timer Register 11
00A1
00A2
—
TMR12
0000
Timer Register 12
00A3
00A4
—
TMR13
0000
Timer Register 13
00A5
00A6
—
TMR14
Timer Register 14
Undefined
00A7
R
00A8
Timer Register 15
Undefined
—
TMR15
00A9
00AA
0000
—
TMR16
Timer Register 16
00AB
R/W
00AC
0000
—
TMR17
Timer Register 17
00AD
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-28
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-3 SFRs (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Name (BYTE) Name (WORD)
Operation
00AE
TMR4 Buffer Register
—
TMR4BF
00AF
00B0
—
TMR5BF
TMR5 Buffer Register
00B1
00B2
—
TMR6BF
TMR6 Buffer Register
00B3
00B4
TMR7 Buffer Register
—
TMR7BF
00B5
00B6
—
TMR8BF
TMR8 Buffer Register
00B7
00B8
TMR9 Buffer Register
—
TMR9BF
16
R/W
00B9
00BA
TMR10 Buffer Register
—
TMR10BF
00BB
00BC
—
TMR11BF
TMR11 Buffer Register
00BD
00BE
—
TMR12BF
TMR12 Buffer Register
00BF
00C0
TMR13BF
TMR13 Buffer Register
—
00C1
00C2
TMSEL
Timer Setting Register
—
00C3
TMSEL2
—
8
00C4✩ Timer Setting Register 2
00C5
RTOCON4
—
00C6✩ RTO Control Register 4
RTOCON5
—
00C7✩ RTO Control Register 5
RTOCON6
—
00C8✩ RTO Control Register 6
RTOCON7
—
00C9✩ RTO Control Register 7
RTOCON8
—
00CA✩ RTO Control Register 8
RTOCON9
—
00CB✩ RTO Control Register 9
RTOCON10
—
00CC✩ RTO Control Register 10
8
RTOCON11
—
00CD✩ RTO Control Register 11
RTOCON12
—
00CE✩ RTO Control Register 12
R/W
RTOCON13
—
00CF✩ RTO Control Register 13
RTOCON16
—
00D0✩ RTO Control Register 16
RTOCON17
—
00D1✩ RTO Control Register 17
4-Port RTO Control Register
RTO4CON
—
00D2
TM0L
—
00D3✩ Timer Counter 0 Low-Order 4 Bits
00D4
Timer Counter 0
—
TM0
00D5
16
00D6
Timer Counter 1
—
TM1
00D7
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-29
Reset
State [H]
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
FC
F8
F8
F8
F8
F8
F8
F8
F8
F8
F8
F8
F8
00
0F
0000
0000
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Table 3-3 SFRs (continued)
Address [H]
00D8
00D9
00DA
00DB
00DC
00DD✩
00DE✩
00DF✩
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC✩
00ED✩
00EE✩
00EF
00F0
00F1
00F2
00F3
00F4
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC✩
00FD✩
00FE✩
00FF✩
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
TMR0 Low-Order 4 Bits
TMR0L
TMR1 Low-Order 4 Bits
TMR1L
TMR2 Low-Order 4 Bits
TMR2L
TMR3 Low-Order 4 Bits
TMR3L
Timer Control Register
TMCON
Event Control Register 2
EVNTCON2
Event Control Register L
EVNTCONL
Event Control Register H
EVNTCONH
A/D Result Register 0
—
A/D Result Register 1
—
A/D Result Register 2
—
A/D Result Register 3
—
A/D Result Register 4
—
A/D Result Register 5
—
A/D Result Register 6
—
A/D Result Register 7
—
A/D Result Register 8
—
A/D Result Register 9
—
A/D Result Register 10
—
A/D Result Register 11
—
A/D0 Control Register L
ADCON0L
A/D0 Control Register H
ADCON0H
A/D Interrupt Control Register 0 ADINTCON0
A/D Hard Select Enable
ADHENCON
Register
A/D Result Register 12
—
A/D Result Register 13
—
A/D Result Register 14
—
A/D Result Register 15
—
A/D Result Register 16
—
A/D Result Register 17
—
A/D Result Register 18
—
A/D Result Register 19
—
A/D Result Register 20
—
A/D Result Register 21
—
A/D Result Register 22
—
A/D Result Register 23
—
A/D1 Control Register L
ADCON1L
A/D1 Control Register H
ADCON1H
A/D Interrupt Control Register 1 ADINTCON1
A/D Hard Select Software
ADHSCON
Control Register
—
—
—
—
—
—
—
—
ADCR0
ADCR1
ADCR2
ADCR3
ADCR4
ADCR5
ADCR6
ADCR7
ADCR8
ADCR9
ADCR10
ADCR11
—
—
—
R
8
R/W
R/W
(*3)
16
R/W
8
Undefined
Undefined
Undefined
Undefined
00
88
88
88
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
80
80
C0
—
00
ADCR12
ADCR13
ADCR14
ADCR15
ADCR16
ADCR17
ADCR18
ADCR19
ADCR20
ADCR21
ADCR22
ADCR23
—
—
—
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
80
80
C0
R/W
(*3)
16
R/W
8
—
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-30
Reset
State [H]
FC
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
*1
Indicates that the R/W operation of the PWM counter/buffer is a special operation.
When a read operation is performed, the value of the PWM counter (PWMCn) is read.
When a write operation is performed, data is written to the PCM buffer register
(PWCnBF).
*2
Indicates that the R/W operation of the PWM register/buffer is a special operation.
When a read operation is performed, the value of the PWM register (PWRn) is read.
When a write operation is performed, data is written to the PWR buffer register
(PWnBF).
*3
Indicates that the R/W operation of ADCR is a special operation.
ADCR is divided into the groups of: ADCR0, 2, 4, 6, 8, 10; ADCR1, 3, 5, 7, 9, 11;
ADCR12, 14, 16, 18, 20, 22; and ADCR13, 15, 17, 19, 21, 23. Data can be written
simultaneously to each of these groups.
Writing to ADCR0 simultaneously writes to ADCR0, 2, 4, 6, 8, and 10.
Writing to ADCR1 simultaneously writes to ADCR1, 3, 5, 7, 9, and 11.
Writing to ADCR12 simultaneously writes to ADCR12, 14, 16, 18, 20, and 22.
Writing to ADCR13 simultaneously writes to ADCR13, 15, 17, 19, 21, and 23.
3-31
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Expanded SFR Area
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
0100
Memory Size Acceptor
MEMSACP
"0"
W
—
8
0101✩
Memory Size Control Register MEMSCON
FC
—
R/W
0102
0103
0104
0105✩
Watchdog Control Register
WDTCON
8
FE
—
R/W
0106
R/W
0107✩
—
Peripheral Control Register
PRPHF
F8 or 78
8
0108
R/W
8
External Interrupt Control Register
—
0109✩
EXICON
C0
010A
010B
010C
010D
010E
010F
Port 0 Mode Register
P0IO
00
—
0110
—
Port 1 Mode Register
P1IO
00
0111
Port 2 Mode Register
P2IO
00
—
0112
Port 3 Mode Register
P3IO
00
—
0113
—
Port 4 Mode Register
P4IO
00
0114
Port 5 Mode Register
P5IO
00
—
0115
R/W
8
Port 6 Mode Register
P6IO
00
—
0116
—
Port 7 Mode Register
P7IO
00
0117
Port 8 Mode Register
P8IO
00
—
0118
—
Port 9 Mode Register
P9IO
00
0119
Port 10 Mode Register
P10IO
00
—
011A
Port 11 Mode Register
P11IO
00
—
011B
—
Port 12 Mode Register
P12IO
00
011C✩
011D
011E✩
TBC Clock Dividing Counter
TBCKDVC
—
F0
R
8
TBC Clock Dividing Register
011F✩
F0
R/W
TBCKDVR
—
0120
SCI0 Timer
0000
—
S0TM
0121
0122
SCI1 Timer
0000
—
S1TM
0123
0124
SCI2 Timer
0000
—
S2TM
16
0125
R/W
0126
SCI3 Timer
0000
—
S3TM
0127
0128
SCI4 Timer
0000
—
S4TM
0129
012A✩
SCI0 Timer Control Register
S0CON
—
02
8
012B✩
SCI1 Timer Control Register
S1CON
—
02
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-32
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Expanded SFR Area (continued)
Address [H]
Name
Abbreviated
Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
012C✩
SCI2 Timer Control Register
S2CON
—
02
8
R/W
012D✩
SCI3 Timer Control Register
S3CON
—
02
012E✩
SCI4 Timer Control Register
S4CON
—
02
012F
0130✩
SCI0 Transmit Control Register
ST0CON
8A
—
SCI1 Transmit Control Register
ST1CON
88
0131✩
—
SCI2 Transmit Control Register
ST2CON
8A
0132✩
8
—
R/W
SCI3 Transmit Control Register
ST3CON
8A
0133✩
—
SCI4 Transmit Control Register
ST4CON
8A
0134✩
—
0135
0136
0137
SCI0 Receive Control Register
SR0CON
12
0138✩
—
SCI1 Receive Control Register
SR1CON
08
0139✩
—
SCI2 Receive Control Register
SR2CON
12
013A✩
—
8
R/W
SCI3 Receive Control Register
SR3CON
12
013B✩
—
SCI4 Receive Control Register
SR4CON
12
013C✩
—
013D
013E
013F
IP00L
00
0140
IP00
Interrupt Priority Register 00
IP00H
00
0141
IP01L
00
0142
IP01
Interrupt Priority Register 01
IP01H
00
0143
8/16
IP10L
00
0144
IP10
Interrupt Priority Register 10
R/W
IP10H
00
0145
IP11L
00
0146
IP11
Interrupt Priority Register 11
IP11H
00
0147
Interrupt Priority Register 20
IP20L
—
C0
0148✩
8
—
Interrupt Priority Register 21
IP21L
C0
0149✩
NMI Control Register
NMICON
3C or BC
—
014A✩
014B
014C
014D
014E
014F
Interrupt Request Flag
IRQD0L
00
0150
IRQD0
IRQD0H
00
0151
Disable Register 0
8/16
Interrupt Request Flag
R/W
0152
IRQD1L
00
IRQD1
0153
IRQD1H
00
Disable Register 1
0154✩
Interrupt Request Flag Disable Register 2
IRQD2L
C0
8
—
0155
0156
0157
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-33
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Expanded SFR Area (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
0158
A/D Hardware Select Register 0
—
ADHSEL0
0159
16
R/W
015A
A/D Hardware Select Register 1
—
ADHSEL1
015B
015C
015D
015E
015F
0160
PWM Control Register 0
PWCON0
—
0161
PWM Control Register 1
PWCON1
—
0162
PWM Control Register 2
PWCON2
—
8
R/W
0163
PWM Control Register 3
PWCON3
—
0164
PWM Control Register 4
PWCON4
—
—
0165
PWM Control Register 5
PWCON5
0166
0167
0168
0169
General-Purpose 8-Bit Timer Control Register
GTMCON
016A✩
—
GEVC
General-Purpose 8-Bit Event Counter
016B
—
8
R/W
General-Purpose 8-Bit Timer Counter
GTMC
016C
—
General-Purpose 8-Bit Timer Register
GTMR
016D
—
016E
TRNS Control Register
—
TRNSCON
16
R/W
016F
Event Dividing Counter 0
EVDV0
0170✩
—
Event Dividing Counter 1
EVDV1
0171✩
—
Event Dividing Counter 2
EVDV2
0172✩
—
Event Dividing Counter 3
EVDV3
0173✩
—
Event Dividing Counter 14
EVDV14
0174✩
—
Event Dividing Counter 15
EVDV15
0175✩
—
8
R/W
EVDV0 Buffer Register
EVDV0BF
0176✩
—
EVDV1 Buffer Register
EVDV1BF
0177✩
—
EVDV2 Buffer Register
EVDV2BF
0178✩
—
EVDV3 Buffer Register
EVDV3BF
0179✩
—
EVDV14 Buffer Register
EVDV14BF
—
017A✩
EVDV15 Buffer Register
EVDV15BF
—
017B✩
017C
Capture Control Register
—
CAPCON
16
R/W
017D
TMR Mode Register
TMRMODE
—
017E✩
8
017F
0180
0181
0182
0183
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-34
Reset
State [H]
0000
0000
00
00
00
00
00
00
30
00
00
00
0000
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
C0
0000
F2
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Expanded SFR Area (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
0184✩
SIO5 Control Register 0
SIO5CON0
10
—
R/W
0185
SIO5 Control Register 1
SIO5CON1
C0
—
0186
Serial Address Output Register
SFADR
00
—
8
0187
Serial Data Input Register
SFDIN
Undefined
—
R
0188
Serial Data Output Register
SFDOUT
Undefined
—
W
0189✩
SIO5 Interrupt Control Register SIO5INT
1F
—
R/W
018A
018B
018C✩
8
Expansion Port Control Register L EXTPCON
F8
—
R/W
018D
018E
EXTPDL
00
8/16
R/W
Expansion Port Data Register
EXTPD
018F
—
00
0190✩
SCI0 Status Register 1
S0STAT1
11
—
0191✩
SCI0 Status Register 2
S0STAT2
C1
—
0192✩
SCI2 Status Register 1
S2STAT1
11
—
0193✩
SCI2 Status Register 2
S2STAT2
C1
—
R/W
8
0194✩
SCI3 Status Register 1
S3STAT1
11
—
0195✩
SCI3 Status Register 2
S3STAT2
C1
—
0196✩
SCI4 Status Register 1
S4STAT1
11
—
0197✩
SCI4 Status Register 2
S4STAT2
C1
—
0198
0199
019A
019B
019C
019D
019E
019F
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3-35
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
Expanded SFR Area (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
01F0
Flash Memory Control
01F1
Register Area
01F2
(*5)
01F3
01F4
01F5
01F6
01F7
01F8
01F9
Emulator Use Area
01FA
(*6)
01FB
01FC
01FD
01FE
01FF
Addresses in the address column marked by "✩" indicate that the register has bits missing.
*4
The initial values of PRPHF (SFR = 107H) are as follows:
At reset by RES pin: VBFF (bit 6) is "1"; CKOUT2 (bit 2), CKOUT1 (bit 1) and CKOUT0
(bit 0) are "0".
At reset by WDT and BRK instructions and operation code trap: VBFF (bit 6) holds the
value just before reset; CKOUT2 (bit 2), CKOUT1 (bit 1) and CKOUT0 (bit 0) are "0".
In both cases, the OE pin status is read for OERD (bit 7).
*5
The flash control register area is used exclusively for the MSM66Q591/ML66Q592
(Flash EEPROM version product). For details, refer to the "MSM66Q591 Flash
Memory User's Manual" or "ML66Q592 Flash Memory User's Manual".
*6
Do not access the emulator use area.
3-36
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.3
Addressing Mode
The MSM66591/ML66592 have two independent memory spaces: data memory space
and program memory space. MSM66591/ML66592 addressing mode is divided into
two, corresponding to each space.
Data memory space is referred to as "RAM space," since the space normally
consists of random access memory (RAM). Addressing to this space is referred to as
"RAM addressing."
Program memory space is referred to as "ROM space," since the space normally
consists of read only memory (ROM). Addressing to this space is referred to as
"ROM addressing."
ROM addressing is classified into immediate addressing to an instruction code,
table addressing to data or ROM space (normally read-only data), and program code
addressing to a program in ROM space.
ROM window addressing is unique to MSM66591/ML66592. This involves accessing
the table data in ROM space using the above RAM addressing formats. Data in a table
segment is read via the window on a data segment opened by a program. See Chapter
5, "Memory Control Functions."
3.3.1 RAM Addressing
RAM addressing modes specify addressing of program variables in RAM space.
Addressing modes provided are register addressing, page addressing, direct addressing, pointing register indirect addressing, and special bit area addressing.
Access to the area from 1A00H to FFFFH in the RAM space of MSM66591 and from
2200H to FFFFH in the RAM space of ML66592 is inhibited since it is not located in
internal RAM. However, the ROM window setting area (MSM66591: 2000H–FFFFH,
ML66592: 3000H–FFFFH) can be accessed only if the ROM window has been set. Any
access is inhibited to the area where the ROM window function has not been set.
[1]
Register Addressing
A. Accumulator Addressing:
A
B. Control Register Addressing:
PSW, LRB, SSP
C. Pointing Register Addressing:
X1, X2, DP, USP
D. Local Register Addressing:
ERn, Rn
A. Accumulator Addressing
Word instructions access the accumulator contents (A). Byte instructions access the
low byte of the accumulator (AL).
[Word Type]
L
ST
A, #1234H
A, VAR
3-37
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[Byte Type]
LB
STB
A, #12H
A, VAR
[Bit Type]
MB
JBS
C, A.3
A.3, LABEL
B. Control Register Addressing
Register contents are accessed.
SSP:
system stack pointer
LRB:
local register base
PSW:
program status word
PSWH:
program status word high-order byte
PSWL:
program status word low-order byte
C:
carry flag
[Word Type]
FILL
MOV
CLR
SSP
LRB, #401H
PSW
[Byte Type]
CLRB
INCB
PSWH
PSWL
[Bit Type]
MB
C, BITVAR
C. Pointing Register Addressing
Pointing register contents are accessed. Pointing registers are provided with eight sets
of registers (PR0–PR7: every 8-byte block in 200H–23FH in data memory), but the set
addressed in this mode is specified by the System Control Base (SCB) field in PSW.
X1:
X2:
DP:
USP:
X1L:
X2L:
index register 1
index register 2
data pointer
user stack pointer
index register 1 low-order byte
index register 2 low-order byte
3-38
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
DPL:
DP*:
USPL:
data pointer low-order byte
data pointer low-order byte
user stack pointer low-order byte
*This register can be used only for [JRNZ DP, radr] instruction which is
provided for compatibility with nX-8/100 to nX-8/400 CPU core.
[Word Type]
L
ST
MOV
CLR
A, X1
A, X2
DP, #2000H
USP
[Byte Type]
DJNZ
DJNZ
DJNZ
DJNZ
JRNZ
X1L, LOOP
X2L, LOOP
DPL, LOOP
USPL, LOOP
DP, LOOP
D. Local Register Addressing
Local register contents are accessed. Local registers are 256 sets of registers (every
8-byte block in 200H–9FFH in data memory), but the set addressed in this mode is
specified by the Local Register Base (LCB) low-order byte.
ER0–ER3: expanded local registers
R0–R7:
local registers
[Word Type]
L
MOV
CLR
A, ER0
ER2, ER1
ER3
[Byte Type]
LB
ADDB
CMPB
INCB
ROR
MOVB
A, R0
R1, A
R2, #12H
R3
R4
R5, R6
[Bit Type]
SB
RB
JBRS
R0.0
R1.7
R7.3, LABEL
3-39
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[2]
Page Addressing
A. SFR Page Addressing: sfr Dadr
B. FIXED Page Addressing: fix Dadr
C. Current Page Addressing: off Dadr
A. SFR Page Addressing
SFR page addressing specifies an offset in the SFR page (0–0FFH in data memory)
with one byte of instruction code. Word, byte, or bit data can be accessed at the
specified address.
The operand is coded with the "sfr" addressing specifier. The "sfr" can be omitted, but
then SFR page addressing will only be used when the assembler recognizes that an
address is in the SFR page.
Every microcontroller device has its particular SFR symbols (abbreviated names).
Normally these symbols are used for SFR accesses.
[Word Type]
L
A, sfr P0
L
A, P0
RAM
0000H
00xxH
SFR Page
00FFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation"). However, there are exceptions
depending on the SFR.
[Byte Type]
LB
A, sfr P0
LB
A, P0
RAM
0000H
00xxH
SFR Page
00FFH
[Bit Type]
SB
SB
RAM
sfr P0_3
0000H
P0_3
00xxH
00FFH
3-40
SFR Page
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
B. FIXED Page Addressing
FIXED page addressing specifies an offset in the FIXED page (200H–2FFH in data
memory) with one byte of instruction code. Word, byte, or bit data can be accessed at
the specified address.
The operand is coded with the "fix" addressing specifier. The "fix" can be omitted, but
then FIXED page addressing will only be used when the assembler recognizes that an
address is in the FIXED page.
[Word Type]
L
A, fix FIX_VAR
L
A, FIX_VAR
RAM
0200H
02xxH
FIXED Page
02FFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[Byte Type]
LB
LB
RAM
A, fix FIX_VAR
0200H
A, FIX_VAR
02xxH
FIXED Page
02FFH
[Bit Type]
SB
fix FIX_VAR.3
SB
FIX_VAR.3
RAM
0200H
02xxH
02FFH
3-41
FIXED Page
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
C. Current Page Addressing
Current page addressing specifies an offset in the current page (one of 256 pages in
data memory specified by LRBH) with one byte of instruction code (excluding access
inhibit area). Word, byte, or bit data can be accessed at the specified address.
The operand is coded with the "off" addressing specifier. The "off" can be replaced by
"\", but this will have a slightly different meaning when bit data in the SBA area is
accessed (see "sbaoff Badr").
[Word Type]
L
A, off VAR
L
A, \VAR
RAM
xx00H
xxxxH
Current page
xxFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[Byte Type]
LB
A, off VAR
LB
A, \VAR
RAM
xx00H
xxxxH
Current page
xxFFH
[Bit Type]
SB
off VAR.3
SB
\ VAR.3
RAM
xx00H
xxxxH
xxFFH
3-42
Current page
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[3]
Direct Data Addressing: dir Dadr
Direct page addressing specifies an address in the current physical segment of data
memory (address 0–0FFFFH: 64K bytes) with two bytes of instruction code (excluding
access inhibit area). Word, byte, or bit data can be accessed at the specified address.
The operand is coded with the "dir" addressing specifier. The "dir" can be omitted, but
then if an address in the SFR page or FIXED page is specified then the assembler may
interpret it as SFR page addressing or FIXED page addressing.
[Word Type]
L
A, dir VAR
L
A, VAR
RAM
0000H
xxxxH
64K bytes
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[Byte Type]
LB
A, dir VAR
LB
A, VAR
RAM
0000H
xxxxH
64K bytes
FFFFH
[Bit Type]
SB
dir VAR.3
SB
VAR.3
RAM
0000H
xxxxH
FFFFH
3-43
64K bytes
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[4]
Pointing Register Indirect Addressing
A. DP/X1 Indirect Addressing:
B. DP Indirect Addressing with Post-Increment:
C. DP Indirect Addressing with Post-Decrement:
D. DP/USP Indirect Addressing with 7-Bit Displacement:
E. X1/X2 Indirect Addressing with 16-Bit Base:
F. X1 Indirect Addressing with 8-Bit Register Displacement:
[DP],[X1]
[DP+]
[DP–]
n7[DP],n7[USP]
D16[X1],D16[X2]
[X1+R0],[X1+A]
A. DP/X1 Indirect Addressing
DP/X1 indirect addressing specifies an address in the current physical segment (address 0–0FFFFH: 64K bytes) by the contents of a pointing register (excluding access
inhibit area). Word, byte, or bit data can be accessed at the specified address.
[DP]:
DP Indirect Addressing
[X1]:
X1 Indirect Addressing
[Word Type]
L
A, [DP]
L
A, [X1]
RAM
0000H
DP or X1
xxxxH
64K bytes
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[Byte Type]
LB
A, [DP]
LB
A, [X1]
RAM
0000H
xxxxH
DP or X1
64K bytes
FFFFH
[Bit Type]
SB
RB
RAM
[DP].3
[X1].3
0000H
xxxxH
DP or X1
FFFFH
3-44
64K bytes
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
B. DP Indirect Addressing with Post-Increment
DP indirect addressing with post-increment specifies an address in the current physical
segment (address 0–0FFFFH: 64K bytes) by the contents of a pointing register (excluding access inhibit area). Word, byte, or bit data can be accessed at the specified
address.
After access, the pointing register contents will be incremented. The increment will be
2 for word instructions and 1 for byte and bit instructions. This mode is primarily used
to access consecutive array elements.
[DP+]:
DP indirect addressing with post-increment
[Word Type]
RAM
L
0000H
A, [DP+]
DP
xxxxH
Incremented by 2 after access
64K bytes
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[Byte Type]
RAM
LB
0000H
A, [DP+]
xxxxH
DP
Incremented by 1 after access
64K bytes
FFFFH
RAM
[Bit Type]
SB
0000H
[DP+].3
xxxxH
DP
Incremented by 1 after access
FFFFH
3-45
64K bytes
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
C. DP Indirect Addressing with Post-Decrement
DP indirect addressing with post-decrement specifies an address in the current physical
segment of data memory (address 0–0FFFFH: 64K bytes) by the contents of a pointing
register (excluding access inhibit area). Word, byte, or bit data can be accessed at the
specified address.
After access, the pointing register contents will be decremented. The decrement will be
2 for word instructions and 1 for byte and bit instructions. This mode is primarily used
to access consecutive array elements.
[DP–]: DP indirect addressing with post-decrement
[Word Type]
RAM
L
0000H
A, [DP–]
DP
xxxxH
Decremented by 2 after access
64K bytes
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[Byte Type]
RAM
LB
0000H
A, [DP–]
xxxxH
DP
Decremented by 1 after access
64K bytes
FFFFH
RAM
[Bit Type]
SB
0000H
[DP–].3
xxxxH
DP
Decremented by 1 after access
FFFFH
3-46
64K bytes
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
D. DP/USP Indirect Addressing with 7-Bit Displacement
DP/USP indirect addressing with 7-bit displacement specifies an address in the current
physical segment (address 0–0FFFFH: 64K bytes) using the contents of a pointing
register as a base and adding a 7-bit displacement with sign embedded in instruction
code (bits 6–0; bit 6 is a signed bit) (excluding access inhibit area). The range –64 to
+63 bytes around the pointing register value can be accessed. Word, byte, or bit data
can be accessed at the specified address.
numeric_expression[DP] :
DP indirect addressing with 7-bit displacement
numeric_expression[USP] :
USP indirect addressing with 7-bit displacement
The numeric_expression is a value in the range –64 to +63. DP and USP can be used
as the pointing register.
[Word Type]
L
A,12[DP]
L
A,12[USP]
RAM
0000H
xxxxH
64K bytes
DP or USP
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[ByteType]
LB
LB
RAM
A,12[DP]
0000H
A,12[USP]
xxxxH
64K bytes
DP or USP
FFFFH
[Bit Type]
SB
RB
RAM
12[DP].3
0000H
12[USP].3
xxxxH
DP or USP
FFFFH
3-47
64K bytes
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
E. X1/X2 Indirect Addressing with 16-Bit Base
X1/X2 indirect addressing with 16-bit base specifies a 2-byte (D16) base embedded in
instruction code and adds it to the contents of an index register (X1 or X2) to obtain an
address in the current physical segment (address 0–0FFFFH: 64K bytes). Word (16bit) calculations are used to generate the address, with overflows ignored. Therefore
the generated address will be 0–0FFFFH. Word, byte, or bit data can be accessed at
the specified address.
address_expression[X1] :
X1 indirect addressing with 16-bit base
address_expression[X2] :
X2 indirect addressing with 16-bit base
The address_expression is a value in the range 0–0FFFFH. However, the assembler
allows a value in the range of –8000H to +0FFFFH. That is, D16 can also be thought of
as a displacement instead of a base address.
[Word Type]
L
RAM
A,1234H[X1]
0000H
ST A,1234H[X2]
xxxxH
64K bytes
X1 or X2
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[ByteType]
LB
RAM
A,1234H[X1]
STB
0000H
A,1234H[X2]
xxxxH
64K bytes
X1 or X2
FFFFH
[Bit Type]
SB 1234H[X1].3
RAM
0000H
RB 1234H[X2].3
xxxxH
X1 or X2
FFFFH
3-48
64K bytes
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
F. X1 Indirect Addressing with 8-Bit Register Displacement
X1 indirect addressing with 8-bit register displacement specifies an address in the
current physical segment (address 0–0FFFFH: 64K bytes) using the contents of a
pointing register as a base and adding the contents of the Accumulator low byte (AL) or
Local Register 0 (R0) (excluding access inhibit area). Word (16-bit) calculations are
used to generate the address. The 8-bit displacement obtained from the register will be
extended without sign, and overflow will be ignored so the generated address will be 0–
0FFFFH. Word, byte, or bit data can be accessed at the specified address.
[X1+A] :
X1 indirect addressing with 8-bit register displacement (AL)
[X1+R0] : X1 indirect addressing with 8-bit register displacement (R0)
[Word Type]
L
A, [X1+A]
L
A, [X1+R0]
RAM
0000H
AL or R0
xxxxH
64K bytes
X1
FFFFH
If an odd address is specified, then the word data starting at the next lower even
address will be accessed (see "Word Operation").
[ByteType]
LB
A, [X1+A]
LB
A, [X1+R0]
RAM
0000H
AL or R0
xxxxH
64K bytes
X1
FFFFH
[Bit Type]
RAM
SB
[X1+A].3
RB
[X1+R0].3
0000H
AL or R0
xxxxH
X1
FFFFH
3-49
64K bytes
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[5]
Special Bit Area Addressing
A. FIXED Page SBA Area Addressing: sbafix Badr
B. Current Page SBA Area Addressing: sbaoff Badr
A. FIXED Page SBA Area Addressing
FIXED page SBA area addressing specifies a bit address in the FIXED page’s 512-bit
SBA area (2C0H.0–2FFH.7). Only bit data can be accessed at the specified address.
The instructions that can use this addressing are SB, RB, JBS, and JBR.
[Bit Type]
SB
RB
JBS
JBR
sbafix 2C0H.0
sbafix 1600H
sbafix VAR,LABEL
sbafix 2EFH.7,LABEL
SB
RB
JBS
JBR
2C0H.0
1600H
VAR,LABEL
2EFH.3,LABEL
RAM
02C0H
02xxH
FIXED Page SBA Area
02FFH
B. Current Page SBA Area Addressing
Current page SBA area addressing specifies a bit address in the current page’s 512-bit
SBA area (xxC0H.0–xxFFH.7) (excluding access inhibit area). Only bit data can be
accessed at the specified address.
The instructions that can use this addressing are SB, RB, JBS, and JBR.
[Bit Type]
SB
RB
JBS
JBR
sbaoff 4C0H.0
sbaoff 2E80H
sbaoff VAR,LABEL
sbaoff 17FFH.3,LABEL
SB
RB
JBS
JBR
2C0H.0
2E80H
VAR,LABEL
17FFH.3,LABEL
RAM
xxC0H
xxxxH
xxFFH
3-50
Current Page SBA Area
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3.3.2 ROM Addressing
ROM addressing specifies addressing of program variables in ROM space. The modes
provided are immediate addressing, table data addressing, and program code addressing.
[1]
Immediate Addressing
Immediate addressing specifies access of immediate data embedded in instruction
code. For words, two bytes (N16) in instruction code will be accessed. For bytes, one
byte (N8) in instruction code will be accessed.
Word values are expressions in the range 0–0FFFFH. Byte values are expressions in
the range 0–0FFH. However, the assembler permits values in the range covered by
both signed and unsigned expressions. For words that range is from –8000H to
+0FFFFH, and for bytes it is from –80H to +0FFH.
[Word Type]
L
MOV
A, #1234H
X1, #WORD_ARRAY_BASE
[Byte Type]
LB
MOVB
[2]
A, #12H
X1, #BYTE_ARRAY_BASE
Table Data Addressing
Table data addressing specifies access for the 64K bytes in the table segment of ROM
space as specified by TSR. This mode can be used with operands of LC, LCB, CMPC,
and CMPCB instructions.
A. Direct Table Addressing: Tadr
B. RAM Addressing Indirect Table Addressing: [**]
C. RAM Addressing Indirect Addressing with 16-Bit Base: T16 [**]
A. Direct Table Addressing
Direct table addressing specifies an address (0–0FFFFH: 64K bytes) in the table
segment specified by TSR with two bytes of instruction code. Word or byte data can be
accessed at the specified address. This addressing can be used with the four instructions LC, LCB, CMPC, and CMPCB.
[Word Type]
LC
A, VAR
CMPC
A, VAR
3-51
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[Byte Type]
LCB
A, VAR
CMPCB
A, VAR
B. RAM Addressing Indirect Table Addressing
RAM addressing indirect table addressing uses the word data specified by RAM
addressing as a pointer to the table segment specified by TSR. Word (16-bit) calculations are used to generate the address, with overflows ignored. Therefore the generated address will be 0–0FFFFH. Table memory can be accessed by using a register or
data memory as a pointer into the table memory. This addressing can be used with the
four instructions LC, LCB, CMPC, and CMPCB.
[Word Type]
LC
A, [A]
CMPC
A, [1234[X1]]
[Byte Type]
LCB
A, [ER0]
CMPCB
A, [VAR]
C. RAM Addressing Indirect Addressing with 16-Bit Base
RAM addressing indirect addressing with 16-bit base specifies two bytes (D16) in
instruction code as a base and adds it to the contents of word data specified by RAM
addressing to obtain an address (0–0FFFFH: 64K bytes) in the table segment specified
by TSR. Word (16-bit) calculations are used to generate the address, with overflows
ignored. Therefore the generated address will be 0–0FFFFH. Word or byte data can
be accessed at the specified address.
This mode can be used with operands of LC, LCB, CMPC, and CMPCB instructions.
[Word Type]
LC
A, 2000H[A]
CMPC
A, 2000H[1234[X1]]
[Byte Type]
LCB
A, 2000H[ER0]
CMPCB
A, 2000H[VAR]
3-52
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[3]
Program Code Addressing
Program code addressing specifies access of the current program code in ROM space.
These modes are used as operands of branch instructions.
A. NEAR Code Addressing: Cadr
B. FAR Code Addressing: Fadr
C. Relative Code Addressing: radr
D. ACAL Code Addressing: Cadr11
E. VCAL Code Addressing: Vadr
F. RAM Addressing Indirect Code Addressing: [**]
A. NEAR Code Addressing
Near code addressing specifies an address (0–0FFFFH: 64K bytes) in the current code
segment with two bytes of instruction code. This addressing can be used with J and
CAL instructions.
[Example of Use]
J
3000H
CAL
LABEL
B. FAR Code Addressing
Far code addressing specifies an address (0:0–1:0FFFFH: 128K bytes) in program
memory space with three bytes of instruction code. This addressing can be used with
FJ and FCAL instructions.
[Example of Use]
FJ
1: 3000H
FCAL
FARLABEL
C. Relative Code Addressing
Relative code addressing takes the current program counter (PC) value as a base and
adds it to an 8-bit or sign-extended 7-bit value in instruction code to obtain an address
(0–0FFFFH: 64K bytes) in the current code segment. Word (16-bit) calculations are
used to generate the address, with overflows ignored. Therefore the generated address will be 0–0FFFFH. This addressing can be used with SJ and conditional branch
instructions.
3-53
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[Example of Use]
SJ
LABEL
DJNZ
R0, LABEL
JC
LT, LABEL
D. ACAL Code Addressing
ACAL code addressing specifies an address in the ACAL area (1000H–17FFH: 2K
bytes) in the current code segment with 11 bits of instruction code. This addressing
can be used only with ACAL instructions.
[Example of Use]
ACAL
1000H
ACAL
ACALLABEL
E. VCAL Code Addressing
VCAL code addressing specifies an entry (word data) in the vector table for VCAL
instructions with 4 bits of instruction code. The vector table is located at even addresses in the range 004AH–0069H in segment 0. This addressing can be used only
with VCAL instructions.
[Example of Use]
VACL
4AH
VCAL
0: 4AH
VCAL
VECTOR
F. RAM Addressing Indirect Code Addressing
RAM addressing indirect code addressing uses word data specified by RAM addressing
as a pointer to the code segment. Word (16-bit) calculations are used to generate the
address, with overflows ignored. Therefore the generated address will be 0–0FFFFH.
It allows indirect jumps and calls using a register or data memory as a pointer to code
memory. This addressing can be used with J and CAL instructions.
[Example of Use]
J
[A]
CAL
[1234[X1]]
3-54
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
[4]
ROM Window Addressing
ROM window addressing accesses table data in ROM space using RAM addressing.
This mode reads data in the table segment specified by TSR using data segment
window opened by the program. (See "ROM Window Function.")
Data memory addressing is permitted in the ROM window area, but results are not
guaranteed if an instruction that writes to the ROM window is executed.
3-55
3
MSM66591/ML66592 User's Manual
Chapter 3 CPU Architecture
3-56
Chapter 4
4
CPU Control Functions
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
4. CPU Control Functions
The MSM66591/ML66592 have two CPU control functions:
• Standby function
4
• Reset function
4.1
Standby Function
The MSM66591/ML66592 standby function has two types of operation modes:
• HALT mode: stops the clock supply CPU by software
• STOP mode: stops the original oscillation clock supply by software
Each mode is set by:
• Stop code acceptor (for STPACP: STOP mode)
• Standby control register (for SBYCON: HALT and STOP modes)
Table 4-1 lists the standby modes, indicating the output pin status, etc. in standby
mode.
4-1
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
Table 4-1 Standby Modes
Standby Mode
• Interrupt
• RES pin input
• WDT
• Interrupt
• RES pin input
P0
No change
High impedance
(*2)
P1
No change
High impedance
No change
No change
High impedance
No change
P7_2, P7_3 (primary function)
No change
High impedance
No change
P7_3 (secondary function: PSEN)
"H" level
High impedance
"H" level
P7_2 (secondary function: ALE)
"L" level
High impedance
"L" level
TBC
Operating
Stop
WDT
Operating
Stop
FTM
Operating
Stop
GTMC, GEVC
Operating
Operating if external clock is selected (*3)
S0TM–S4TM
Operating
Stop
SCI0–SCI5
Operating
Stop
ADC
Operating
Stop
PWM
Operating
Stop
Expansion Port
Operating
Stop
Release Condition
State of Output Pin
STOP Mode (*1)
• Set bit 0 (STP) of
SBYCON to "1"
when bit 2 (FLT) of
SBYCON is "1"
Setting Condition
Operation State of Internal Function
HALT Mode
• Set bit 1 (HLT) of
SBYCON to "1"
P2–P6, P7_0, P7_1, P7_4–P7_7,
• Set bit 0 (STP) of
SBYCON to "1"
when bit 2 (FLT) of
SBYCON is "0"
P8–P11, P12_0, P12_1
*1
A setting condition for STOP mode is that the stop code acceptor (STPACP) has
already been set to "1".
*2
Becomes high impedance in external ROM mode, and no change in internal ROM
mode.
*3
Edge specification is invalid and the falling edge is always selected for operation.
4-2
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
4.1.1 Standby Control Register (SBYCON)
SBYCON is a 5-bit register that controls standby functions.
The stop code acceptor (STPACP) is an acceptor used to set STOP mode.
Figure 4-1 shows the configuration of SBYCON.
4
7
6
5
4
3
2
1
0
—
—
OST1
OST0
—
FLT
HLT
STP
"—" Indicates a bit that is not provided. "1" is read if a read instruction is executed.
Figure 4-1 Configuration of SBYCON
• STP (bit 0)
Writing n5H and nAH (n = 0–F) consecutively to STPACP will set the stop code
acceptor to "1". Setting the STP bit of SBYCON to "1" at that point will set the device
in stop mode. STP will be set to "0" if an interrupt request is generated or reset from
RES pin input or reset by the WDT occurs, releasing stop mode. For details refer to
Section 4.1.2 [2], "Stop Mode." STPACP will be set to "0" at the same time stop
mode is entered.
• HLT (bit 1)
Setting the HLT (bit 1) of SBYCON to "1" will set the device in halt mode. HLT will be
set to "0" when an interrupt or reset from RES pin input occurs, releasing halt mode.
For details refer to Section 4.1.2 [1], "Halt Mode."
• FLT (bit 2)
If stop mode is entered when the FLT bit of SBYCON is set to "1", then ports, control
signals, and all other output pins will enter a high impedance state. At this time, the
prevention circuit operates so that a through current will not flow into the input circuits
of pins in high impedance status, even if the pin becomes open externally.
The through current prevention circuit, however, does not operate for external
interrupt pins (INT0–INT2) and for the clock input pins of event timers (ETMCK,
ECTCK), since they can be the factors that clear STOP mode. Therefore, through
current may flow into the input circuits of external interrupt pins (INT0–INT2) and into
the clock input pins of event timers (ETMCK, ECTCK). When the STOP mode is
entered by setting the FLT bit of SBYCON to "1", these pins should be fixed at "H" or
"L" level. However, if these pins are used as their primary function (input/output
port), the through current prevention circuit will operate, so it is not necessary to fix
them at a logic level.
When the STOP mode is cleared, all outputs for ports and control signals return to a
status immediately preceeding the STOP mode entered.
If the device enters STOP mode when FLT of SBYCON is set to "0" (that is, FLT =
"0", STP = "1"), the ports and all output pins, such as control signal output, maintain
the status at that time.
Fix pins that are in input mode to "H" or "L" level, regardless of the content of the FLT
bit.
4-3
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
• OST0 (Bit 4) and OST1 (Bit 5)
OST0 (bit 4) and OST1 (bit 5) of SBYCON set the timing to the supply clock for the
CPU after the original oscillation clock oscillates when STOP mode is cleared by an
interrupt request.
OST1
OST0
0
Selected Clock Frequency
0
0
1
131072
1
0
65536
1
1
Setting inhibited
262144
Do not set both OST1 and OST0 to "1".
4.1.2 Operation in Each Standby Mode
[1] HALT Mode
The MSM66591/ML66592 enter HALT mode if HLT (bit 1) of SBYCON is set to "1".
In HALT mode, the original oscillation clock operates, and the TBC, the WDT, the
flexible timer, serial ports, etc. also operate. However the clock supply to the CPU
stops, therefore instructions are not executed. All executions stop at the beginning of
the instruction following the one that set HLT (bit 1) of SBYCON to "1".
HALT mode is cleared when an interrupt request is generated, an RES pin is input, or
when reset by WDT occurs. If HALT mode is cleared by a non-maskable interrupt,
HALT mode is cleared unconditionally, and the CPU executes a non-maskable interrupt
process.
A maskable interrupt clears HALT mode if both an interrupt request flag (IRQ bit) and
an interrupt enable flag (IE bit) are "1".
After HALT mode is cleared, the maskable interrupt process is executed if the master
interrupt enable flag (MIE of PSW) is "1".
If the master interrupt enable flag (MIE of PSW) is "0", the instruction next to the
instruction that set the device to HALT mode (instruction that set HLT (bit 1) of
SBYCON to "1") is executed.
However, if, in a non-maskable interrupt routine, HALT mode is set and then cleared by
an interrupt request, the instruction following the instruction that set HALT mode is
executed. Also, if interrupt priority has been set (MIP = "1") and halt mode is entered
from within a high-priority interrupt routine, then halt mode can be released by interrupt
requests of lower priority but the lower priority interrupt process is not executed even
though MIE is "1". Instead the instruction following the instruction that set halt mode is
executed.
If HALT mode is cleared by a RES pin input or by the WDT, the CPU performs a reset
process.
4-4
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
[2]
STOP Mode
Writing n5H and nAH (n = 0–F) consecutively to STPACP will set the stop code acceptor to "1". Setting the STP bit of SBYCON to "1" at that point will set the device in stop
mode. STPACP will be set to "0" at the same time stop mode is entered.
In STOP mode, the original oscillation clock stops, therefore the TBC, the WDT, the
flexible timer, serial ports, etc. also stop. If the external clock is selected, the generalpurpose 8-bit timer (GTMC) and the 8-bit event counter (GEVC) operate. The edge
specification of the external clock is invalid, and the falling edge is always selected for
operation.
The clock supply to the CPU also stops therefore instructions are not executed, and
all executions stop at the beginning of the instruction following the one that set STP (bit
0) of SBYCON to "1".
STOP mode is cleared either when an interrupt request is generated or when the RES
pin is input.
If STOP mode is cleared by a non-maskable interrupt, STOP mode is cleared
unconditionally, and the CPU executes a non-maskable interrupt process.
A maskable interrupt request clears STOP mode if both an interrupt request flag (IRQ
bit) and an interrupt generation enable flag (IE bit) are "1".
After STOP mode is cleared, the maskable interrupt process is executed if the master
interrupt enable flag (MIE of PSW) is "1".
If the master interrupt enable flag (MIE of PSW) is "0", the instruction next to the
instruction that set STOP mode (instruction that set STP (bit 0) of SBYCON to "1") is
executed.
However, if, in a non-maskable interrupt routine, STOP mode is set and then cleared by
an interrupt request, the instruction following the instruction that set STOP mode is
executed. Also, if interrupt priority has been set (MIP = "1") and stop mode is entered
from within a high-priority interrupt routine, then stop mode can be released by interrupt
requests of lower priority but the lower priority interrupt process is not executed even
though MIE is "1". Instead the instruction following the instruction that set stop mode is
executed.
If STOP mode is cleared by an interrupt request, the original oscillation clock starts
oscillating, and after the number of clocks specified by OST0 and 1 (bits 4 and 5) of
SBYCON have elapsed, operation after STOP mode is started.
Figure 4-2 shows STOP mode timing.
If STOP mode is cleared by a RES pin input, the CPU performs a reset process. If
STOP mode is cleared by a RES pin input, apply "L" level to the RES pin until more than
1 ms has elapsed after the original oscillation clock stabilizes.
When setting or clearing STOP mode, do so within the guaranteed operating range for
the power supply voltage.
4-5
4
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
STOP mode
Basic Clock
(CLK)
M1S1
SBYCON.STP
Interrupt Request
Instruction
execution
Operating
State
Dummy
cycle
Oscillation
Oscillation stable
stop
time*
Timer operating
Timer stop
Port output mode
Dummy cycle
Instruction
execution
Timer operating
Port floating (FLT = "1")
Port output
* Oscillation stable time is the sum of the time until the original oscillation clock starts oscillation,
plus the time set by OST0 and OST1 as the number of clock cycles.
Figure 4-2 STOP Mode Timing (when cleared by an interrupt)
4.2
Reset Function
The MSM66591/ML66592 become reset status by the following four factors:
• RES pin input becomes "L" level
• BRK (break) instruction is executed
• WDT overflow is generated
• OPTRP (operation code trap) is generated
The processing of these four factors is the same except for the vector address that is
loaded to the program counter during the reset process.
In the reset process, the arithmetic register, control register, mode register, etc. are
initialized, and the content of the address shown by the vector address is loaded to
the program counter.
For the initialization status of registers, see Table 3-3 SFRs. For the correspondence
between each factor and the vector address, see Table 3-1 Vector Table List.
In the case of reset by RES pin input, apply "L" level until more than 1 ms has elapsed
after the original oscillation clock is stable.
The reset process has priority over all other processes (interrupt process, instruction
execution). Since all other processes are suspended, the content of registers and RAM
at this time are not guaranteed.
Figure 4-3 shows the reset pin connection example. Table 4-2 shows the output pin
status at reset.
On power up, apply "L" level to the RES pin for 12 ms or more after VDD has reached
4.5 V or more.
4-6
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
External
Internal
VDD
VDD
4
Di
RES
SW
Reset Processing Circuit
R
C
SW and R are needed for manual reset.
Figure 4-3 Reset Pin Connection Example
Table 4-2 Output Pin Status at Reset
Name
P0
P1
P7_2, P7_3
(EA pin: "L" level)
P7_2, P7_3
(EA pin: "H" level)
P2–P6, P7_0, P7_1,
P7_4–P7_7, P8–P11,
P12_0, P12_1
Status
Hiz
Hiz
"H" level (pull-up)
Hiz
Hiz
Notes:
1. If the EA pin is at a "L" level and external memory is selected, P7_2, P7_3, P0, P1,
P12_0, and P12_1 (ML66592 only) will automatically take their secondary functions
and go into an operating state.
2. Hiz refers to the high impedance status.
4-7
MSM66591/ML66592 User's Manual
Chapter 4 CPU Control Functions
4-8
Chapter 5
5
Memory Control Functions
MSM66591/ML66592 User's Manual
Chapter 5 Memory Control Functions
5. Memory Control Functions
MSM66591/ML66592 have two independent memory spaces: program memory space
and data memory space. Each memory space has functions that make it easier to use
the respective space. One function allows various instructions for data memory to be
used as program memory by the program (ROM window function).
Another function allows a wait cycle to be inserted (READY function) to MSM66591’s or
ML66592’s external memory timing by the program, according to the access time of
external memory, etc. when the program memory space used as external memory.
5.1
ROM Window Function
The ROM window function reads the content of the program memory, specified by the
ROM window control register (ROMWIN), on SFR through the same address of the
data memory space as a window.
This means that if the instruction to access (read) the data memory space is executed
when the ROM window function becomes valid, data in the data memory space is not
accessed (read), instead the data at the same address in the segment (in the program
memory space) specified by TSR is accessed (read).
To the instruction execution cycle, 3 cycles are added by one access (reading) in the
case of a byte instruction, and 6 cycles are added in the case of a word instruction.
If a write instruction is executed when the ROM window function is valid, the result is
not guaranteed. Cycles are not added in this case.
ROMWIN is an 8-bit register. The low-order 4 bits of this register specifies the ROM
window start address. The ROM window end address is 0FFFFH. The low-order 4 bits
specify the most significant hexadecimal digit of the four digits needed to fully address
64K bytes of program memory space.
However, in the MSM66591 "2", "4", and "8" are the only values that can be specified.
Therefore, the area for which the ROM window can be set is either 2000H–0FFFFH,
4000H–0FFFFH, or 8000H–0FFFFH.
In the ML66592, "3", "4", and "8" are the only values that can be specified. Therefore,
the area for which the ROM window can be set is either 3000H–0FFFFH, 4000H–
0FFFFH, or 8000H–0FFFFH.
If, in both MSM66591 and ML66592, the low-order 4 bits of the ROMWIN register are
all zeroes, the ROM window function does not operate.
Figures 5-1(a) and 5-1(b) show the configuration of ROMWIN.
5-1
5
MSM66591/ML66592 User's Manual
Chapter 5 Memory Control Functions
ROMWIN
7
6
5
4
—
—
—
—
3
2
1
0
"0"
(MSM66591)
These 4 bits specify the ROM
window start address [the most
significant haxadecimal digit of the
four digits needed to fully address
64K bytes of memory space].
Either 2H, 4H, or 8H can be specified.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 5-1(a) Configuration of ROMWIN of MSM66591
ROMWIN
7
6
5
4
—
—
—
—
3
2
1
0
(ML66592)
These 4 bits specify the ROM
window start address [the most
significant haxadecimal digit of the
four digits needed to fully address
64K bytes of memory space].
Either 3H, 4H, or 8H can be specified.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 5-1(b) Configuration of ROMWIN of ML66592
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer (WDT) is overflown, or an operation code trap is generated), ROMWIN becomes
F0H, and the ROM window function is disabled.
ROMWIN can be written only once after reset. A second or later writing is ignored. This
means that once a ROM window function is set, it cannot be changed until reset.
ROMWIN, however, can be read any number of times.
[Note]
In MSM66591 do not write any other value than 2H, 4H, and 8H to the low-order 4 bits
of ROMWIN.
In ML66592 do not write any other value than 3H, 4H, and 8H to the low-order 4 bits of
ROMWIN.
5-2
MSM66591/ML66592 User's Manual
Chapter 5 Memory Control Functions
5.2
READY Function
The MSM66591/ML66592 can specify the wait cycle (ROM: 0 to 3 cycles) to insert during
external memory access, so that memory that has a slow access speed can be connected.
The ROM READY control register (ROMRDY) specifies the number of wait cycles.
ROMRDY specifies the wait cycle when the external memory is extended (or external ROM
mode is used) to the program memory space.
ROMRDY can be read/written by the program. If ROMRDY is written to, the low-order 2
bits are valid, but the high-order 6 bits become invalid. If ROMRDY is read, the loworder 2 bits are valid, but "1" is read for the high-order 6 bits.
Figure 5-2 shows the configuration of ROMRDY.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), both RAMRDY and
ROMRDY becomes FFH. Then if the external program memory is accessed, 3 cycles of
a wait cycle can be inserted.
[Note]
In the MSM66591/ML66592, unlike internal program memory access, when external
program memory is accessed, 1 cycle is automatically inserted per 1 byte access.
ROMRDY specifies the number of cycles inserted in addition to the above 1 cycle
inserted.
ROMRDY
7
6
5
4
3
2
—
—
—
—
—
—
1
0
ORDY1 ORDY0
ORDY
1
0
0
1
1
0
0
1
0
1
Additional cycles
to be inserted when
external program
memory is accessed
0 cycle
1 cycle
2 cycles
3 cycles
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
1 cycle is 1 CLK.
Figure 5-2 Configuration of ROMRDY
5-3
5
MSM66591/ML66592 User's Manual
Chapter 5 Memory Control Functions
5-4
Chapter 6
6
Port Functions
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6. Port Functions
The MSM66591/ML66592 have twelve 8-bit I/O ports, and one 2-bit I/O port. Input or
output can be specified for each bit. If a pin is input, the high impedance input is set,
and if a pin is output, push-pull output is set. In addition to the port functions, functions
for internal operations (secondary functions) are assigned to most ports.
6.1
Hardware Configuration of Each Port
The MSM66591/ML66592 ports (P0, P1, P2, P3, P4, P5 P6, P7, P8, P9, P10, P11,
P12) are classified into the following 5 types according to function.
Type A:
Has secondary functions as an address/data bus, and automatically switches
to its secondary function when the external memory is accessed. Goes into
high impedance status if the output status of the OE pin is in "H" level.
Type B:
Has secondary functions and switches to its secondary function according
to the status of the port secondary function control register. Goes into high
impedance status in output status if the OE pin is in "H" level.
Type C:
Has secondary functions and switches to its secondary function according to
the status of the port secondary control register.
Type D:
Does not have any secondary function.
Type E:
Does not have any secondary function. Goes into high impedance status in
output state if the OE pin is in "H" level.
Table 6-1 lists the port functions.
6-1
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-1 Port Function List
Name
Port 0
P0_0–P0_7
A
8
I/O
External memory address/data: AD0–AD7 (I/O)
yes
Port 1
P1_0–P1_7
A
8
I/O
External memory address: A8–A15 (Output)
yes
Port 2
P2_0–P2_7
B
8
I/O
Double buffer RTO output: RTO4–RTO11 (Output)
yes
P3_0–P3_3
B
4
I/O
Flexible timer I/O: FTM17A (I/O)–FTM17D (Output)
yes
P3_4–P3_7
C
4
I/O
CAP event input: CAP0–CAP3 (Input)
no
Port 3
Port 4
Port 5
Port 6
Port 7
Port 8
Port 9
Type Qty
I/O
Secondary Function
OE Control
Port Name
P5_0
C
1
I/O
Input for transition detector: TRNS0–TRNS7
(Input)
Data input for SCI5 with FIFO: SDIN (Input)
P5_1
C
1
I/O
Data output for SCI5 with FIFO: SDOUT (Output)
no
P5_2
C
1
I/O
Clock output for SCI5 with FIFO: SCLK (Output)
no
P5_3
C
1
I/O
R/WB output for SCI5 with FIFO: RWB (Output)
no
P5_4
C
1
I/O
Chip select output for SCI5 with FIFO: CSB (Output)
no
P5_5
C
1
I/O
External interrupt input 2: INT2 (Input)
no
P5_6
C
1
I/O
Clockout: CLKOUT (Output)
no
P4_0–P4_7
C
8
I/O
no
no
P5_7
C
1
I/O
Wait signal input pin: WAIT (Input)
no
P6_0, P6_1
C
2
I/O
External interrupt signal input: INT0, INT1 (Input)
no
P6_2
C
1
I/O
Serial port 1 data input: RXD1 (Input)
no
P6_3
C
1
I/O
Serial port 1 data output: TXD1 (Output)
no
P6_4
C
1
I/O
Shift clock for serial 1 receive: RXC1 (I/O)
no
P6_5
C
1
I/O
Shift clock for serial 1 transmission: TXC1 (I/O)
no
P6_6
C
1
I/O
Serial port 0 data input: RXD0 (Input)
no
P6_7
C
1
I/O
Serial port 0 data output: TXD0 (Output)
no
P7_0, P7_1
D
2
I/O
None
no
P7_2
C
1
I/O
External memory access: ALE (Output)
no
P7_3
P7_4–P7_7
C
B
1
4
I/O
I/O
External program memory access: PSEN (Output)
PWM output: PWM0–PWM3 (Output)
no
yes
P8_0–P8_7
B
8
I/O
PWM output: PWM4–PWM11 (Output)
yes
P9_0
C
1
I/O
Serial port 2 data input: RXD2 (Input)
no
P9_1
C
1
I/O
Serial port 2 data output: TXD2 (Output)
no
P9_2
C
1
I/O
Serial port 3 data input: RXD3 (Input)
no
P9_3
C
1
I/O
Serial port 3 data output: TXD3 (Output)
no
P9_4
C
1
I/O
Serial port 4 data input: RXD4 (Input)
no
P9_5
C
1
I/O
Serial port 4 data output: TXD4 (Output)
no
P9_6
C
1
I/O
External clock input for GTMC: ETMCK (Input)
no
P9_7
C
1
I/O
External clock input for GEVC: ECTCK (Input)
no
6-2
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-1 Port Function List (continued)
Port Name
Port 10
Port 11
Port 12
*1
Name
Type Qty
I/O
Secondary Function
OE Control
P10_0, P10_1
B
2
I/O
Double buffer RTO output: RTO12, 13 (Output)
yes
P10_2, P10_3
B
2
I/O
CAP event input: CPA14, CAP15 (Input)
yes
P10_4
B
1
I/O
Flexible timer I/O: FTM16 (I/O)
yes
P10_5
C
1
I/O
Shift clock for expansion port: SFTCLK (Output)
no
P10_6
C
1
I/O
Expansion port data I/O: SFTDAT (I/O)
no
P10_7
C
1
I/O
Latch strobe output for expansion port: SFTSTB (Output)
no
P11_0
C
1
I/O
P11_1
C
1
I/O
P11_2
C
1
I/O
Address input for RAM monitor function: RMRX (Input)
Data I/O for writing to flash memory (tertiary function)
Data output for RAM monitor function: RMTX (Output)
Clock input for RAM monitor function: RMCLK (Input)
Clock input for writing to flash memory (tertiary function)
no
no
no
P11_3
C
1
I/O
Address match detect output: RMACK (Output)
no
P11_4–P11_7
D
4
I/O
None
no
P12_0
A
1
I/O
External program memory address: A16 (Output)
yes
P12_1*1
E
1
I/O
None
yes
In the case of ML66592, P12_1 is of type A and, as its secondary function, functions to
output address A17 that is used to access external program memory.
6-3
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.1.1 Configuration of Type A (P0_0–P0_7, P1_0–P1_7, P12_0)
Type A ports automatically take their secondary function when the EA pin is set to "L"
level. They function as address output pins and data I/O pins for external program
memory access. The pin specified as the output goes into high impedance if OE is in
"H" level.
In the ML66592, P12_1, also, is a Type A port.
Figure 6-1 shows the configuration of a Type A port.
PmIOn
Pm_n
Internal Bus
Pm_n
m = 0, 1
n = 0–7
m = 12
n=0
Pmn in
D A
C
OE pin
External Memory Control signals
D: data
A: address
C: secondary function control signals
Figure 6-1 Configuration of Type A
6-4
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.1.2 Configuration of Type B (P2_0–P2_7, P3_0–P3_3, P7_4–P7_7, P8_0–P8_7,
P10_0–P10_4)
Some of the type B ports function as high-order address output when the external data
memory is accessed and the other ports act as secondary function input and output
pins, according to the specification of the secondary function control register (PmSFn).
The pin specified as the output goes into high impedance if OE is in "H" level.
Figure 6-2 shows the configuration of a Type B port.
6
PmIOn
Pm_n
PmSFn
Internal Bus
Pm_n
m=2
n = 0–7
m=3
n = 0–3
Read
Control
Out
Control
Pmn in
C
m=7
n = 4–7
m=8
n = 0–7
O
OE pin
Secondary function control signals
C: secondary function control signal
O: secondary function output data
Figure 6-2 Configuration of Type B
6-5
m = 10
n = 0–4
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.1.3 Configuration of Type C (P3_4–P3_7, P4_0–P4_7, P5_0–P5_7, P6_0–P6_7,
P7_2, P7_3, P9_0–P9_7, P10_5–P10_7, P11_0–P11_3)
Type C ports function as the output pins of secondary functions, or as input pins of
secondary functions according to the specification of the secondary function control
register (PmSFn).
However, P7_2 and P7_3 automatically switch to their secondary function when the EA
pin is set to "L" level. Then, when external program memory is accessed, P7_3 functions as an output pin (PSEN pin) for a strobe signal to be output for a read operation,
and P7_2 functions as an output pin (ALE pin) for a strobe signal used to externally
latch the low-order 8 bits of addresses that are output from P0.
Figure 6-3 shows the configuration of a Type C port.
PmIOn
Pm_n
PmSFn
Internal Bus
Pm_n
m=3
n = 4–7
m = 4, 5, 6, 9
n = 0–7
Read
Control
m=7
n = 2, 3
Out
Control
m = 10
n = 5–7
Pmn in
C
I or O
Secondary function control signals
C: secondary function control signal
I : secondary function input data
O: secondary function output data
Figure 6-3 Configuration of Type C
6-6
m = 11
n = 0–3
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.1.4 Configuration of Type D (P7_0, P7_1, P11_4–P11_7)
Type D ports function as I/O pins without secondary functions.
Figure 6-4 shows the configuration of Type D ports.
Internal Bus
PmIOn
Pm_n
Pm_n
m=7
n = 0, 1
m = 11
n = 4–7
Read
Control
Pmn in
Figure 6-4 Configuration of Type D
6.1.5 Configuration of Type E (P12_1)
Type E ports function as I/O pins without secondary functions. When the OE pin is in "H"
level, the pin specified as the output goes into high impedance.
The ML66592 has no Type E ports.
Figure 6-5 shows the configuration of Type E port.
Internal Bus
PmIOn
Pm_n
Pm_n
m = 12
n=1
Read
Control
OE pin
Pmn in
Figure 6-5 Configuration of Type E
6-7
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.2
Port Control Registers
The MSM66591/ML66592 have 3 types of port control registers.
• port data register (Pn: n = 0–12)
• port mode register (PnIO: n = 0–12)
• port secondary function control register (PnSF: n = 2–10)
These registers are allocated as SFRs. Table 6-2 lists the port control registers.
6.2.1 Port Data Register (Pn: n = 0–12)
A port data register (Pn: n = 0–12) is an 8-bit register that stores the output data of a
port. Port 12, however, is a 2-bit register.
Pn is assigned to SFR, and the content of P0–P12 becomes 00H at reset (when the
RES signal is input, the BRK instruction is executed, the watchdog timer (WDT) is
overflown, or an operation code trap is generated).
If a read instruction is executed to Pn, the pin status ("0" or "1") is read from the port
specified to input, and the Pn status ("0" or "1") is read from the port specified to output.
If a write instruction is executed to Pn, data is written to Pn, regardless of the I/O
specification of the port.
Each of the bits assigned in a port is represented by the bit symbol corresponding to
each bit. Bit symbols for bits of a port data register are, for example, P0_0 for bit 0 and
P0_1 for bit 1 in Port 0. So, a port data register is represented correspending to each bit
either by the bit symbol such as P0_0 or P0_1 or by the dot operator such as P0.0 or
P0.1 in assembly language.
6.2.2 Port Mode Register (PnIO: n = 0–12)
A port mode register (PnIO: n = 0–12) is an 8-bit register that specifies the input/output
of an I/O port. Port 12, however, is a 2-bit register.
PnIO is assigned to SFR, and the content of P0IO–P12IO becomes 00H. All ports
become input mode at reset (when the RES signal is input, the BRK instruction is
executed, the watchdog timer is overflown, or an operation code trap is generated).
If each bit of PnIO is set to "0", the input mode is set. If set to "1", the output mode is
set. However, as explained below, if the secondary function is selected after setting the
content of the port secondary function control register (PnSF: n = 2–10) to "1", specification by PnIO becomes invalid.
6.2.3 Port Secondary Function Control Register (PnSF: n = 2–10)
A port secondary function control register (PnSF: n = 2–10) is an 8-bit register that
specifies the primary/secondary functions of a port. Port 7 is a 6-bit register.
6-8
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
PnSF is assigned to SFR, and the content of P2SF–P10SF becomes 00H, and all ports
are set to primary functions at reset (when the RES signal is input, the BRK instruction
is executed, the watchdog timer is overflown, or an operation code trap is generated).
If each bit of PnSF is set to "0", primary function is selected, and if "1", secondary
function is selected. Ports 0, 1, and 12 have no secondary function control register,
since the primary/secondary function of these ports is automatically selected by hardware.
6
6-9
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-2 Port Control SFRs
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
0010
Port 0 Data Register
P0
—
00
0011
Port 1 Data Register
P1
—
00
0012
Port 2 Data Register
P2
—
00
0013
Port 3 Data Register
P3
—
00
0014
Port 4 Data Register
P4
—
00
0015
Port 5 Data Register
P5
—
0016
Port 6 Data Register
P6
—
0017
Port 7 Data Register
P7
—
00
0018
Port 8 Data Register
P8
—
00
0019
Port 9 Data Register
P9
—
00
001A
Port 10 Data Register
P10
—
00
001B
Port 11 Data Register
P11
—
00
001C
Port 2 Secondary Function Control Register
P2SF
—
00
001D
Port 3 Secondary Function Control Register
P3SF
—
00
001E
Port 4 Secondary Function Control Register
P4SF
—
00
001F
Port 5 Secondary Function Control Register
P5SF
—
00
0020
Port 6 Secondary Function Control Register
P6SF
—
0021✩
Port 7 Secondary Function Control Register
P7SF
—
00
0022
Port 8 Secondary Function Control Register
P8SF
—
00
0023
Port 9 Secondary Function Control Register
P9SF
—
00
0024
Port 10 Secondary Function Control Register
P10SF
—
00
R/W
R/W
R/W
8
8
8
00
00
00
0025✩
Port 12 Data Register
P12
—
0110
Port 0 Mode Register
P0IO
—
00
00
0111
Port 1 Mode Register
P1IO
—
00
0112
Port 2 Mode Register
P2IO
—
00
0113
Port 3 Mode Register
P3IO
—
00
0114
Port 4 Mode Register
P4IO
—
00
0115
Port 5 Mode Register
P5IO
—
0116
Port 6 Mode Register
P6IO
—
0117
Port 7 Mode Register
P7IO
—
00
0118
Port 8 Mode Register
P8IO
—
00
0119
Port 9 Mode Register
P9IO
—
00
011A
Port 10 Mode Register
P10IO
—
00
011B
Port 11 Mode Register
P11IO
—
00
011C✩
Port 12 Mode Register
P12IO
—
00
00
R/W
8
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
6-10
00
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.3
Port 0 (P0)
Port 0 (P0_0–P0_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 0 mode register (P0IO).
In addition to its port function, Port 0 is assigned a secondary function (low-order
address output and data input of external program memory). If the EA pin is set to "L"
level, Port 0 automatically operates as its secondary function, as an address/data bus
(low-order address output pin, data I/O pin).
If the OE pin (pin 71) is in "L" level when Port 0 is in output status, Port 0 outputs "H" or
"L" level, but if the OE pin is in "H" level, Port 0 goes into high impedance status.
Figure 6-6 shows the configuration of the Port 0 data register (P0) and the Port 0 mode
register (P0IO).
P0
7
6
5
4
3
2
1
0
P0_7
P0_6
P0_5
P0_4
P0_3
P0_2
P0_1
P0_0
6
5
4
3
2
1
0
P0IO
7
P0IO7 P0IO6 P0IO5 P0IO4 P0IO3 P0IO2 P0IO1 P0IO0
0 P0_n = input
1 P0_n = output
n = 0–7
Figure 6-6 Configuration of P0, P0IO
If a read instruction is executed to a P0 in which input is specified (P0IOn = "0") by
P0IO, the content of the pin is read; and if a read instruction is executed to a P0 in
which output is specified (P0IOn = "1"), the content of the port data register is read.
If an arithmetic instruction, increment instruction, or instruction of that type (readmodify-write instruction) is executed to P0, the content of the pin or port data register is
read according to specification by P0IO (in the case of reading), and data is written to
the port data register (in the case of writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 0 goes into high
impedance input port (P0IO = 00H). The content of P0 becomes 00H.
6-11
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.4
Port 1 (P1)
Port 1 (P1_0–P1_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 1 mode register (P1IO).
In addition to the port function, a secondary function (high address output of external
program memory) is assigned to Port 1. If the EA pin is set to "L" level, Port 1 operates as
an address bus (high address output pin) of the external program memory.
If the OE pin (pin 71) is in "L" level when Port 1 is in output status, Port 1 outputs "H" or
"L" level, but if the OE pin is in "H" level, Port 1 goes into high impedance status.
Figure 6-7 shows the configuration of the Port 1 data register (P1) and the Port 1 mode
register (P1IO).
P1
7
6
5
4
3
2
1
0
P1_7
P1_6
P1_5
P1_4
P1_3
P1_2
P1_1
P1_0
6
5
4
3
2
1
0
P1IO
7
P1IO7 P1IO6 P1IO5 P1IO4 P1IO3 P1IO2 P1IO1 P1IO0
0
P1_n = input
1
P1_n = output
n = 0–7
Figure 6-7 Configuration of P1, P1IO
If a read instruction is executed to P1 in which input is specified (P1IOn = "0") by P1IO,
the content of the pin is read. If a read instruction is executed to P1 in which output is
specified (P1IOn = "0"), the content of the port data register is read. If an arithmetic
instruction, increment instruction, or instruction of that type (read-modify-write instruction) is executed to P1, the content of the pin or port data register is read according to
specification by P1IO (in the case of reading), and data is written to the port data register
(in the case of writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 1 becomes a high
impedance input port (P1IO = 00H). The content of P1 becomes 00H.
6-12
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.5
Port 2 (P2)
Port 2 (P2_0–P2_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 2 mode register (P2IO).
In addition to the port function, a secondary function (real-time output, etc.) is assigned
to Port 2. Port function/secondary function is selected by the Port 2 secondary function
control register (P2SF).
If the OE pin (pin 71) is in "L" level when Port 2 is in output status, Port 2 outputs "H" or
"L" level, but if the OE pin is in "H" level, Port 2 goes into high impedance status.
Figure 6-8 shows the configuration of the Port 2 data register (P2), the Port 2 mode
register (P2IO), and the Port 2 secondary function control register (P2SF).
P2
7
6
5
4
3
2
1
0
P2_7
P2_6
P2_5
P2_4
P2_3
P2_2
P2_1
P2_0
6
5
4
3
2
1
0
P2IO
7
P2IO7 P2IO6 P2IO5 P2IO4 P2IO3 P2IO2 P2IO1 P2IO0
0 P2_n = input
1 P2_n = output
n = 0–7
P2SF
7
6
5
RTO11 RTO10 RTO9
4
3
2
1
0
RTO8
RTO7
RTO6
RTO5
RTO4
0
1
P2_0
Flexible timer realtime output 4
0
1
P2_1
Flexible timer realtime output 5
0
1
P2_2
Flexible timer realtime output 6
0
1
P2_3
Flexible timer realtime output 7
0
1
P2_4
Flexible timer realtime output 8
0
1
P2_5
Flexible timer realtime output 9
0
1
P2_6
Flexible timer realtime output 10
0
1
P2_7
Flexible timer realtime output 11
Figure 6-8 Configuration of P2, P2IO, and P2SF
6-13
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-3 shows the content of the data that is read when a read instruction is executed
to P2, according to the content of P2IO and P2SF. If an arithmetic instruction, increment instruction, or instruction of that type (read-modify-write instruction) is executed to
P2, the content of the pin or port data register is read according to specification by P2IO
(when reading), and data is written to the port data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 2 becomes a high
impedance input port (P2IO = 00H, P2SF = 00H). The content of P2 becomes 00H.
Table 6-3 Read of P2
P2_0–P2_7
P2IO
P2SF
0
0
Pin
1
0
Output latch
1
Output data
*
"*" indicates either "1" or "0".
Read Data
6-14
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.6
Port 3 (P3)
Port 3 (P3_0–P3_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 3 mode register (P3IO).
In addition to the port function, a secondary function (real-time output, etc.) is assigned
to Port 3. Port function/secondary function is selected by the Port 3 secondary function
control register (P3SF).
Figure 6-9 shows the configuration of the Port 3 data register (P3), the Port 3 mode
register (P3IO), and the Port 3 secondary function control register (P3SF).
P3
7
6
5
4
3
2
1
0
P3_7
P3_6
P3_5
P3_4
P3_3
P3_2
P3_1
P3_0
6
5
4
3
2
1
0
P3IO
7
P3IO7 P3IO6 P3IO5 P3IO4 P3IO3 P3IO2 P3IO1 P3IO0
0 P3_n = input
1 P3_n = output
n = 0–7
P3SF
7
CAP3
6
5
CAP2
CAP1
4
3
2
1
0
CAP0 FTM17D FTM17C FTM17B FTM17A
0
1
P3_0
Flexible timer I/O 17A
0
1
P3_1
Flexible timer realtime output 17B
0
1
P3_2
Flexible timer realtime output 17C
0
1
P3_3
Flexible timer realtime output 17D
0
1
P3_4
Flexible timer capture input 0
0
1
P3_5
Flexible timer capture input 1
0
1
P3_6
Flexible timer capture input 2
0
1
P3_7
Flexible timer capture input 3
Figure 6-9 Configuration of P3, P3IO, and P3SF
6-15
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-4 shows the content of the data that is read when a read instruction is executed
to P3 according to the content of P3IO and P3SF. If an arithmetic instruction, increment
instruction, or instruction of that type (read-modify-write instruction) is executed to P3,
the content of the pin or port data register is read according to specification by P3IO
(when reading), and data is written to the port data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 3 becomes a high
impedance input port (P3IO, P3SF = 00H). The content of P3 becomes 00H.
Table 6-4 Read of P3
P3_0
P3_1–P3_3
P3_4–P3_7
P3IO
P3SF
0
0
Pin
1
0
Output latch
*
1
0
0
Pin
1
0
Output latch
*
1
Output data
0
0
Pin
1
0
Output latch
1
Pin
*
"*" indicates either "1" or "0".
Read Data
Pin: if timer is in CAP mode
Output data: if timer is in RTO mode
6-16
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.7
Port 4 (P4)
Port 4 (P4_0–P4_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 4 mode register (P4IO).
In addition to the port function, a secondary function (transition detector input) is
assigned to Port 4. Port function/secondary function is selected by the Port 4 secondary
function control register (P4SF).
Figure 6-10 shows the configuration of the Port 4 data register (P4), the Port 4 mode
register (P4IO), and the Port 4 secondary function control register (P4SF).
P4
7
6
5
4
3
2
1
0
P4_7
P4_6
P4_5
P4_4
P4_3
P4_2
P4_1
P4_0
6
5
4
3
2
1
0
P4IO
7
P4IO7 P4IO6 P4IO5 P4IO4 P4IO3 P4IO2 P4IO1 P4IO0
0
P4_n = input
1
P4_n = output
n = 0–7
P4SF
7
6
5
4
3
2
1
0
TRNS7 TRNS6 TRNS5 TRNS4 TRNS3 TRNS2 TRNS1 TRNS0
0 P4_0
1 Transition detector 0 input
0
1
P4_1
Transition detector 1 input
0
1
P4_2
Transition detector 2 input
0
1
P4_3
Transition detector 3 input
0
1
P4_4
Transition detector 4 input
0
1
P4_5
Transition detector 5 input
0
1
P4_6
Transition detector 6 input
0
1
P4_7
Transition detector 7 input
Figure 6-10 Configuration of P4, P4IO, and P4SF
6-17
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-5 shows the content of the data that is read when a read instruction is executed
to P4 according to the content of P4IO and P4SF. If an arithmetic instruction, increment
instruction, or instruction of that type (read-modify-write instruction) is executed to Port
4, the content of the pin or port data register is read according to specification by P4IO
(when reading), and data is written to the port data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 4 becomes a high
impedance input port (P4IO, P4SF = 00H). The content of P4 becomes 00H.
Table 6-5 Read of P4
P4_0–P4_7
P4IO
P4SF
0
0
Pin
1
0
Output latch
1
Pin
*
"*" indicates either "1" or "0".
6-18
Read Data
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.8
Port 5 (P5)
Port 5 (P5_0–P5_7) is a 8-bit I/O port. Input or output can be specified for each bit by
the Port 5 mode register (P5IO).
In addition to the port function, a secondary function (serial interface with FIFO) is
assigned to Port 5. Port function/secondary function is selected by the Port 5 secondary
function control register (P5SF).
Figure 6-11 shows the configuration of the Port 5 data register (P5), Port 5 mode
register (P5IO), and Port 5 secondary function control register (P5SF).
P5
7
6
5
4
3
2
1
0
P5_7
P5_6
P5_5
P5_4
P5_3
P5_2
P5_1
P5_0
6
5
4
3
2
1
0
P5IO
7
P5IO7 P5IO6 P5IO5 P5IO4 P5IO3 P5IO2 P5IO1 P5IO0
P5SF
7
6
5
WAIT CLKOUT INT2
0
P5_n = input
1
P5_n = output
n = 0–7
4
3
CSB
RWB
2
1
0
SCLK SDOUT SDIN
0
P5_0
1
Data input for SCI5 with FIFO
0
P5_1
1
Data output for SCI5 with FIFO
0
P5_2
1
Clock output for SCI5 with FIFO
0
P5_3
1
R/WB output for SCI5 with FIFO
0
P5_4
1
Chip select output for SCI5 with FIFO
0
P5_5
1
External interrupt 2 input
0
P5_6
1
Dividing clock output
0
P5_7
1
WAIT input for SCI5 with FIFO
Figure 6-11 Configuration of P5, P5IO, and P5SF
6-19
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
If a read instruction is executed to P5 in which the input is specified (P5IOn = "0")
by P5IO, the content of the pin is read. If a read instruction is executed to P5 in which
the output is specified (P5IOn = "1"), the content of the port data register is read.
If an arithmetic instruction, increment instruction, or instruction of that type (readmodify-write instruction) is executed to P5, the content of the pin or port data register is
read according to specification by P5IO (when reading), and data is written to the port
data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 5 becomes high
impedance input port (P5IO = 00H, P5SF = 00H). The content of P5 becomes 00H.
6-20
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.9
Port 6 (P6)
Port 6 (P6_0–P6_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 6 mode register (P6IO).
In addition to the port function, a secondary function (external interrupt input, etc.) is
assigned to Port 6. Port function/secondary function is selected by the Port 6 secondary
function control register (P6SF).
Figure 6-12 shows the configuration of the Port 6 data register (P6), the Port 6 mode
register (P6IO), and the Port 6 secondary function control register (P6SF).
6
P6
7
6
5
4
3
2
1
0
P6_7
P6_6
P6_5
P6_4
P6_3
P6_2
P6_1
P6_0
6
5
4
3
2
1
0
P6IO
7
P6IO7 P6IO6 P6IO5 P6IO4 P6IO3 P6IO2 P6IO1 P6IO0
0 P6_n = input
1 P6_n = output
n = 0–7
P6SF
7
TXD0
6
5
4
3
2
1
0
RXD0
TXC1
RXC1
TXD1
RXD1
INT1
INT0
0
1
P6_0
External interrupt 0 input
0
1
P6_1
External interrupt 1 input
0
1
P6_2
Serial port 1 receive data input
0
1
P6_3
Serial port 1 transmit data output
0
1
Shift clock I/O for serial port 1 receive
0
1
Shift clock I/O for serial port 1 transmit
0
1
P6_6
Serial port 0 receive data input
0
1
P6_7
Serial port 0 transmit data output
P6_4
P6_5
Figure 6-12 Configuration of P6, P6IO, and P6SF
6-21
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-6 shows the content of the data that is read when a read instruction is executed
to P6 according to the content of P6I0 and P6SF. If an arithmetic instruction, increment
instruction, or instruction of that type (read-modify-write instruction) is executed to Port
6, the content of the pin or port data register is read according to specification by P6IO
(when reading), and data is written to the port data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 6 becomes a high
impedance input port (P6IO, P6SF = 00H). The content of P6 becomes 00H.
Table 6-6 Read of P6
P6_0–P6_2,
P6_6
P6_3, P6_7
P6_4, P6_5
P6IO
P6SF
Read Data
0
0
Pin
1
0
Output latch
*
0
1
Pin
0
Pin
1
0
Output latch
*
0
1
Output data latch
0
Pin
1
0
Output latch
*
1
Clock: if shift clock is output
Pin: if shift clock is input
"*" indicates either "1" or "0".
6-22
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.10 Port 7 (P7)
Port 7 (P7_0–P7_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 7 mode register (P7IO). In addition to the port function, a secondary function
(output of the strobe signal for the external memory, etc) is assigned to Port 7. Port
function/secondary function is selected by the Port 7 secondary function control register
(P7SF).
When the EA pin is set to "L" level, P7_2 and P7_3 automatically operates as the
PSEN pin and the ALE pin respectively.
If the OE pin (pin 71) is in "L" level when P7_4–P7_7 are in output status, P7_4–P7_7
output in "H" or "L" level. But if the OE pin is in "H" level, P7_4–P7_7 go into high
impedance.
Figure 6-13 shows the configuration of the Port 7 data register (P7), the Port 7 mode
register (P7IO), and the Port 7 secondary function control register (P7SF).
P7
7
6
5
4
3
2
1
0
P7_7
P7_6
P7_5
P7_4
P7_3
P7_2
P7_1
P7_0
6
5
4
3
2
1
0
P7IO
7
P7IO7 P7IO6 P7IO5 P7IO4 P7IO3 P7IO2 P7IO1 P7IO0
0
P7_n = input
1
P7_n = output
n = 0–7
P7SF
7
6
5
4
PWM3 PWM2 PWM1 PWM0
3
2
1
0
"0"
"0"
"0"
"0"
0
1
P7_4
PWM0 output
0
1
P7_5
PWM1 output
0
1
P7_6
PWM2 output
0
1
P7_7
PWM3 output
"0" indicates a bit that is not provided.
"0" is read if a read instruction
is executed.
When writing to these bits,
always write "0".
Figure 6-13 Configuration of P7, P7IO, and P7SF
6-23
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-7 shows the content of the data that is read when a read instruction is executed
to P7 according to the content of P7IO and P7SF. If an arithmetic instruction, increment
instruction, or instruction of that type (read-modify-write instruction) is executed to P7,
the content of the pin or port data register is read according to specification by P7IO
(when reading), and data is written to the port data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 7 becomes a high
impedance input port (P7IO, P7SF = 00H). The content of P7 becomes 00H.
Table 6-7 Read of P7
P7_0–P7_3
P7_4–P7_7
P7IO
P7SF
Read Data
0
—
Pin
1
—
Output latch
0
0
Pin
1
0
Output latch
*
1
Output data
"—" indicates a bit that is not provided and "*" indicates either "1" or "0".
6-24
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.11 Port 8 (P8)
Port 8 (P8_0–P8_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 8 mode register (P8IO). In addition to the port function, a secondary function
(PWM output) is assigned to Port 8. Port function/secondary function is selected by the
Port 8 secondary function control register (P8SF).
If the OE pin (pin 71) is in "L" level when Port 8 is in output status, Port 8 outputs "H" or
"L" level. But if the OE pin (pin 71) is in "H" level, Port 8 goes into high impedance
status.
Figure 6-14 shows the configuration of the Port 8 data register (P8), the Port 8 mode
register (P8IO), and the Port 8 secondary function control register (P8SF).
P8
7
6
5
4
3
2
1
0
P8_7
P8_6
P8_5
P8_4
P8_3
P8_2
P8_1
P8_0
6
5
4
3
2
1
0
P8IO
7
P8IO7 P8IO6 P8IO5 P8IO4 P8IO3 P8IO2 P8IO1 P8IO0
0
P8_n = input
1
P8_n = output
n = 0–7
P8SF
7
6
5
4
3
2
1
0
PWM11 PWM10 PWM9 PWM8 PWM7 PWM6 PWM5 PWM4
0 P8_0
1 PWM4 output
0 P8_1
1 PWM5 output
0 P8_2
1 PWM6 output
0 P8_3
1 PWM7 output
0 P8_4
1 PWM8 output
0 P8_5
1 PWM9 output
0 P8_6
1 PWM10 output
0 P8_7
1 PWM11 output
Figure 6-14 Configuration of P8, P8IO, and P8SF
6-25
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-8 shows the content of the data that is read when a read instruction is executed
to P8 according to the content of P8I0 and P8SF. If an arithmetic instruction, increment
instruction, or instruction of that type (read-modify-write instruction) is executed to P8,
the content of the pin or port data register is read according to specification by P8IO
when reading, and data is written to the port data register when writing.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 8 becomes a high
impedance input port (P8IO = 00H, P8SF = 00H). The content of P8 becomes 00H.
Table 6-8 Read of P8
P8_0–P8_7
P8IO
P8SF
Read Data
0
0
Pin
1
0
Output latch
*
1
Output data
"*" indicates either "1" or "0".
6-26
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.12 Port 9 (P9)
Port 9 (P9_0 – P9_7) is an 8-bit I/O port. Input or output can be specified for each bit by
the Port 9 mode register (P9IO).
In addition to the port function, a secondary function (serial port I/O, etc) is assigned to
Port 9. Port function/secondary function is selected by the Port 9 secondary function
control register (P9SF).
Figure 6-15 shows the configuration of the Port 9 data register (P9), the Port 9 mode
register (P9IO), and the Port 9 secondary function control register (P9SF).
P9
7
6
5
4
3
2
1
0
P9_7
P9_6
P9_5
P9_4
P9_3
P9_2
P9_1
P9_0
6
5
4
3
2
1
0
P9IO
7
P9IO7 P9IO6 P9IO5 P9IO4 P9IO3 P9IO2 P9IO1 P9IO0
P9SF
7
6
5
ECTCK ETMCK TXD4
0
P9_n = input
1
P9_n = output
n = 0–7
4
RXD4
3
TXD3
2
RXD3
1
TXD2
0
RXD2
0 P9_0
1 Serial port 2 receive data input
0 P9_1
1 Serial port 2 transmit data output
0 P9_2
1 Serial port 3 receive data input
0 P9_3
1 Serial port 3 transmit data output
0 P9_4
1 Serial port 4 receive data input
0 P9_5
1 Serial port 4 transmit data output
0 P9_6
1 External clock input for general
-purpose 8-bit timer
0 P9_7
1 External clock input for general
-purpose 8-bit event counter
Figure 6-15 Configuration of P9, P9IO, and P9SF
6-27
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
If a read instruction is executed to P9 in which the input is specified (P9IOn = "0")
by P9IO, the content of the pin is read. If a read instruction is executed to P9 in which
the output is specified (P9IOn = "1"), the content of the port data register is read.
If an arithmetic instruction, increment instruction, or instruction of that type (readmodify-write instruction) is executed to P9, the content of the pin or port data register is
read according to specification by P9IO (when reading), and data is written to the port
data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 9 becomes a high
impedance input port (P9IO, P9SF = 00H). The content of P9 becomes 00H.
6-28
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.13 Port 10 (P10)
Port 10 (P10_0–P10_7) is an 8-bit I/O port. Input or output can be specified for each bit
by the Port 10 mode register (P10IO). In addition to the port function, a secondary
function (real time output, etc) is assigned to Port 10. Port function/secondary function
is selected by the Port 10 secondary function control register (P10SF).
If the OE pin (pin 71) is in "L level when P10_0–P10_4 are in output status, Port 10
outputs "H" or "L" level. But if the OE pin (pin 71) is in "H" level, Port 10 goes into high
impedance status.
Figure 6-16 shows the configuration of the Port 10 data register (P10), the Port 10
mode register (P10IO), and the Port 10 secondary function control register (P10SF).
P10
7
6
5
4
3
2
1
0
P10_7 P10_6 P10_5 P10_4 P10_3 P10_2 P10_1 P10_0
P10IO
7
6
5
4
3
2
1
0
P10IO7 P10IO6 P10IO5 P10IO4 P10IO3 P10IO2 P10IO1 P10IO0
0 P10_n = input
1 P10_n = output
n = 0–7
P10SF
7
6
5
4
3
2
1
0
SFTSTB SFTDAT SFTCLK FTM16 CAP15 CAP14 RTO13 RTO12
0 P10_0
1 RTO12 output
0 P10_1
1 RTO13 output
0 P10_2
1 Flexible timer capture input 14
0 P10_3
1 Flexible timer capture input 15
0 P10_4
1 Flexible timer I/O 16
0 P10_5
1 Expansion port shift clock
0 P10_6
1 Expansion port data I/O
0 P10_7
1 Expansion port latch strobe output
Figure 6-16 Configuration of P10, P10IO, and P10SF
6-29
6
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
Table 6-9 shows the content of the data that is read when a read instruction is executed
to P10 according to the content of P10I0 and P10SF. If an arithmetic instruction,
increment instruction, or instruction of that type (read-modify-write instruction) is executed to P10, the content of the pin or port data register is read according to specification by P10IO (when reading), and data is written to the port data register (when
writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 10 becomes a high
impedance input port (P10IO, P10SF = 00H). The content of P10 becomes 00H.
Table 6-9 Read of P10
P10IO
P10_0, P10_1
P10_5, P10_7
P10_2, P10_3
P10SF
Pin
0
0
1
0
Output latch
*
1
Output data
0
0
Pin
1
0
Output latch
*
0
1
Pin
0
Pin
1
0
Output latch
*
1
0
0
1
0
Output latch
1
Pin: if expansion port is in input mode
Output data: if expansion port is in output mode
P10_4
P10_6
Read Data
*
Pin: if timer is in CAP mode
Output data: if timer is in RTO mode
Pin
"*" indicates either "1" or "0".
6-30
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.14 Port 11 (P11)
Port 11 (P11_0–P11_7) is an 8-bit I/O port. Input or output can be specified for each bit
by the Port 11 mode register (P11IO).
In addition to the port function, a secondary function (RAM monitor function) is assigned
to port 11. The RAM monitor function is enabled when the EA pin is set to "H" level.
Figure 6-17 shows the configuration of the Port 11 data register (P11) and the Port 11
mode register (P11IO).
P11
7
6
6
5
4
3
2
1
0
P11_7 P11_6 P11_5 P11_4 P11_3 P11_2 P11_1 P11_0
P11IO
7
6
5
4
3
2
1
0
P11IO7 P11IO6 P11IO5 P11IO4 P11IO3 P11IO2 P11IO1 P11IO0
0 P11_n = input
1 P11_n = output
n = 0–7
Figure 6-17 Configuration of P11 and P11IO
If a read instruction is executed to P11 in which the input is specified (P11IOn = "0")
by P11IO, the content of the pin is read. If a read instruction is executed to P11 in which
the output is specified (P11IOn = "1"), the content of the port data register is read.
If an arithmetic instruction, increment instruction, or instruction of that type (readmodify-write instruction) is executed to P11, the content of the pin or port data register
is read according to specification by P11IO (when reading), and data is written to the
port data register (when writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 11 becomes a high
impedance input port (P11IO = 00H). The content of P11 becomes 00H.
6-31
MSM66591/ML66592 User's Manual
Chapter 6 Port Functions
6.15 Port 12 (P12)
Port 12 (P12_0, P12_1) is a 2-bit I/O port. Input or output can be specified for each bit
by the Port 12 mode register (P12IO).
In addition to the port function, a secondary function (for MSM66591, address 16 output
of external program memory; for ML66592, address 16 and 17 output of external
program memory) is assigned to Port 12. If the EA pin is set to "L" level, in MSM66591
P12_0 operates as an address bus (address 16 output pin) of the external program
memory, and in ML66592 P12_0 and P12_1 operate as address buses (address 16
and 17 output pins) of the external program memory.
If the OE pin (pin 71) is in "L" level when Port 12 is in output status, Port 12 outputs "H"
or "L" level, but if the OE pin is in "H" level, Port 12 goes into high impedance status.
Figure 6-18 shows the configuration of the Port 12 data register (P12) and the Port 12
mode register (P12IO).
P12
7
"0"
P12IO
7
"0"
6
5
4
3
2
"0"
"0"
"0"
"0"
"0"
6
5
4
3
2
"0"
"0"
"0"
"0"
"0"
1
0
P12_1 P12_0
1
0
P12IO1 P12IO0
0
P12_n = input
1
P12_n = output
n = 0, 1
"0" indicates a bit that is not provided.
"0" is read if a read instruction
is executed.
When writing to these bits,
always write "0".
Figure 6-18 Configuration of P12 and P12IO
If a read instruction is executed to P12 in which input is specified (P12IOn = "0") by
P12IO, the content of the pin is read. If a read instruction is executed to P12 in which
output is specified (P12IOn = "0"), the content of the port data register is read. If an
arithmetic instruction, increment instruction, or instruction of that type (read-modifywrite instruction) is executed to P12, the content of the pin or port data register is read
according to specification by P12IO (in the case of reading), and data is written to the
port data register (in the case of writing).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), Port 12 becomes a high
impedance input port (P12IO = 00H). The content of P12 becomes 00H.
6-32
Chapter 7
Output Pin Control Pin (OE)
7
MSM66591/ML66592 User's Manual
Chapter 7 Output Pin Control Pin (OE)
7. Output Pin Control Pin (OE)
The MSM66591/ML66592 have an OE pin (pin 71) to control the output of 47 pins, P0,
P1, P2, P3_0–P3_3, P7_4–P7_7, P8, P10_0–P10_4, P12_0, and P12_1.
If the OE pin is in "H" level when P0, P1, P2, P3_0–P3_3, P7_4–P7_7, P8, P10_0–
P10_4, P12_0, and P12_1 are configured to function as output pins, each pin goes into
high impedance status, and if the OE pin is in "L" level, each pin outputs "L" or "H" level.
When P0, P1, P2, P3_0–P3_3, P7_4–P7_7, P8, P10_0–P10_4, P12_0, and P12_1 are
specified to input, each pin functions as an input pin, regardless of the status of the OE
pin.
The level of the OE pin can be read by testing bit 7 (OERD) of the peripheral control
register (PRPHF) by the program.
7-1
7
MSM66591/ML66592 User's Manual
Chapter 7 Output Pin Control Pin (OE)
7-2
Chapter 8
Clock Generation Circuit
8
MSM66591/ML66592 User's Manual
Chapter 8 Clock Generation Circuit
8. Clock Generation Circuit
The clock generation circuit generates the master clock pulse (CLK) necessary for the
MSM66591/ML66592. In other words, the clock generation circuit multiplies the clock
generated by the oscillation circuit by a factor of 2, then supplies the obtained clock to
the MSM66591/ML66592. A crystal oscillator or other required devices are connected
to OSC0 (pin 42) and OSC1 (pin 43) pins.
Figure 8-1 shows an example of a crystal oscillation circuit.
External to MSM66591/ML66592
Internal to MSM66591/ML66592
2x Clock
Circuit
C0 OSC0
Clock pulse control circuit
Oscillation
Circuit
Crystal
Master
clock
pulse
(CLK)
C1 OSC1
STOP signal
OST1, 0
[Notes]
1. The C0 and C1 values must be set according to the standard of the external crystal.
2. A ceramic resonator can be used in place of crystal.
3. Arrange the external components (crystal and capacitor) near the OSC0 and OSC1 pins.
4. Components not illustrated here may be required depending on the frequency band used.
Figure 8-1 An Example of a Crystal Oscillation Circuit Connection
If the master clock pulse is supplied externally, input to the OSC0 pin. Leave the OSC1
pin open at that time.
Figure 8-2 shows the connection example for external clock input.
External to MSM66591/ML66592
Internal to MSM66591/ML66592
2x Clock
Circuit
OSC0
External clock
Clock pulse control circuit
Oscillation
Circuit
Open
OSC1
STOP signal OST1, 0
Figure 8-2 Connection Example for External Clock Input
8-1
Master
clock
pulse
(CLK)
8
MSM66591/ML66592 User's Manual
Chapter 8 Clock Generation Circuit
The clock generation circuit can be stopped by STOP mode so that power consumption
is further decreased.
If STOP mode is cleared by an interrupt request, the master clock pulse is transferred
when the number of clocks specified by OST0 and OST1 (bits 4 and 5) of SBYCON
have elapsed after oscillation starts.
If STOP mode is cleared by the RES pin input, the setting of OST0 and OST1 by
SBYCON is invalid, therefore apply "L" level to the RES pin until at least 1 ms has
elapsed after the original oscillation clock stabilizes.
8-2
Chapter 9
Time Base Counter (TBC)
9
MSM66591/ML66592 User's Manual
Chapter 9 Time Base Counter (TBC)
9. Time Base Counter (TBC)
The MSM66591/ML66592 time base counter (TBC) is an 8-bit counter that uses as its
input clock an overflow of the 4-bit auto-reload timer. The 4-bit auto-reload timer uses
as its input the master clock pulse (CLK) generated by multiplying the original oscillation
clock by 2.
The divided output of the TBC is used as the reference clock for the flexible timer, the
timer for the serial port, and others.
The TBC is cleared to "0" at reset (when the RES signal is input, the BRK instruction is
executed, the watchdog timer (WDT) is overflown, or an operation code trap is generated), and from then on operates unless the supply of the original oscillation clock
stops.
Figure 9-1 shows the configuration of TBC.
TBCCLK
CLK
Multiplied
by 2
TBC (9-bit)
1/n (4-bit)
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/32 TBCCLK
1/64 TBCCLK
1/128 TBCCLK
1/256 TBCCLK
Original
Osc. Clock
9
WDT (9-bit)
Reset
by WDT
1/2 CLK
1/2
PWM
8-Bit Timer for SCI
TM0 (20-Bit Timer)
*1
*2
TM1 (16-Bit Timer)
*1
*2
General-Purpose 8-Bit Timer
Figure 9-1 Configuration of TBC
*1
CLK (" " in the above figure) used for TM0 and TM1 is supplied to the timer data
sequencer and to the timing controller of each timer register module.
*2
If the 1/n (4-bit) counter is set as n = 1, and if the TBCCLK is selected for TM0 and TM1,
the flexible timer does not operate normally. (However, the freerun counters TM0,
TM0L, and TM1 operate normally.)
9-1
MSM66591/ML66592 User's Manual
Chapter 9 Time Base Counter (TBC)
9.1
1/n Counter
The MSM66591/ML66592 have a 4-bit auto-reload timer that uses a CLK as the input
clock, therefore the same clock pulse (TBCCLK) can be supplied to TBC, even if the
original oscillation frequency is changed.
The 1/n counter consists of a 4-bit counter (TBCKDVC) and a 4-bit register (TBCKDVR)
to store reload values.
TBCKDVC
7
6
5
4
—
—
—
—
3
2
1
0
TBCKDVC is a 4-bit counter that uses a CLK (clock generated by multiplying the
original oscillation clock by 2) as the input clock. Write is invalid. Read is valid, but the
high-order 4 bits will read "1" if read. At reset (when the RES signal is input, the BRK
instruction is executed, the watchdog timer is overflown, or an operation code trap is
generated), TBCKDVC becomes F0H.
TBCKDVR
7
6
5
4
—
—
—
—
3
2
1
0
TBCKDVR is a 4-bit register that stores reload values into TBCKDVC.
Write is valid, but write to high-order 4 bits is invalid. Read is valid, but the high order 4
bits will read "1" if read.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TBCKDVR becomes F0H.
At reset the 1/n counter divides the 1 CLK into 16, and supplies a 1/16 CLK to TBC as
TBCCLK.
After writing a reload value to TBCKDVR, the dividing operation may delay for a maximum of 16 clocks of CLK, depending on the dividing ratio written to TBCKDVR.
The following table shows 1/n counter correspondence between the dividing ratios and
the values to be set to TBCKDVR.
Dividing ratio
Value to TBCKDVR
Dividing ratio
Value to TBCKDVR
1/1
FFH
1/9
F7H
1/2
FEH
1/10
F6H
1/3
FDH
1/11
F5H
1/4
FCH
1/12
F4H
1/5
FBH
1/13
F3H
1/6
FAH
1/14
F2H
1/7
F9H
1/15
F1H
1/8
F8H
1/16
F0H
9-2
Chapter 10
Watchdog Timer (WDT)
10
MSM66591/ML66592 User's Manual
Chapter 10 Watchdog Timer (WDT)
10. Watchdog Timer (WDT)
The watchdog timer (WDT) is a 9-bit counter that uses the overflow (1/256 TBCCLK or
1/512 TBCCLK) of the time base counter (TBC) as the input clock. It resets the device
when program runaway is detected. The contents of the WDT can be cleared to "0" by
the program, but the contents cannot be read or written.
10.1 WDT Control Register (WDTCON)
WDTCON is a 1-bit register that selects the WDT input clock.
Figure 10-1 shows the configuration of WDTCON.
WDTCON
7
6
—
—
5
4
3
2
1
0
—
—
—
—
—
WDTSEL
WDT input clock
0 1/256 TBCCLK
1 1/512 TBCCLK
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 10-1 Configuration of WDTCON
10.2 Operation of WDT
1/256 TBCCLK or 1/512 TBCCLK can be selected for the WDT input clock by the
WDTSEL bit (bit 0) of the WDT control register (WDTCON).
The WDT stops its function at reset (when the RES signal is input, the BRK instruction
is executed, the WDT is overflown, and an operation code trap is generated).
The WDT is started by writing "3CH" to WDT (SFR address 27H) on SFR by the
program. The WDT is cleared to "0" by writing "C3H" and "3CH" to WDT alternately.
If the WDT overflows, the CPU performs a reset process and 2 bytes of the content of
the branch address stored in addresses 0004H–0005H (vector address of reset by
WDT) are loaded to the program counter.
Figure 10-2 shows a block diagram of WDT.
Overflow of TBC
(1/256 TBCCLK
or 1/512 TBCCLK)
0
1
WDT Counter
2 3 4 5 6
7
8
Reset request by WDT
CLEAR
Reset
WDT reset by writing "C3H", "3CH" alternately
WDT Register
Figure 10-2 Block Diagram of WDT
10-1
10
MSM66591/ML66592 User's Manual
Chapter 10 Watchdog Timer (WDT)
10.3 Time until Overflow of WDT
When the master clock is f MHz and 1/256 TBCCLK is selected:
tWDT = (1/f) µsec ¥ n ¥ 28 ¥ 29
n is the dividing value of the 4-bit auto-reload timer (1/n counter) of the TBC input.
If the WDT is cleared, a minus error of a maximum of
∆tWDT = (1/f) µsec ¥ n ¥ 28
occurs, since the content of TBC does not change.
When the master clock of the MSM66591 is 24 MHz and n = 8, the result is
tWDT = 43.69 msec
∆tWDT = 85.33 µsec
When the master clock of the ML66592 is 28 MHz and n = 8, the result is
tWDT = 37.45 msec
∆tWDT = 73.14 µsec
10.4 Program Runaway Detection Timing Diagram
Figure 10-3 (a) shows an example of timing when a program is executed normally.
Figure 10-3 (b) shows an example of timing when program runaway occurs. Figure 104 (a), (b), and (c) show examples of program runaway.
10-2
MSM66591/ML66592 User's Manual
Chapter 10 Watchdog Timer (WDT)
Progress of Program
Content of WDT
3CH write
WDT start
C3H write
WDT clear to "0"
3CH write
WDT clear to "0"
C3H write
WDT clear to "0"
OVF
000H
t
within
tWDT
within
tWDT
within
tWDT
10
(a) When program is executed normally
Progress of Program
Content of WDT
3CH write
WDT start
C3H write
WDT clear to "0"
OVF
Overflow occurred
Reset by WDT
000H
t
tWDT
(b) When program runaway occurs
Figure 10-3 Example of Timing When Program Runaway is Detected
10-3
MSM66591/ML66592 User's Manual
Chapter 10 Watchdog Timer (WDT)
WDT is cleared to "0"
by writing 3CH to WDT
WDT is cleared to "0"
by writing 3CH to WDT
WDT is cleared to "0"
by writing C3H to WDT
WDT is cleared to "0"
by writing C3H to WDT
(a) Executes only a 3CH write
(b) Executes only a C3H write
WDT is cleared to "0"
by writing 3CH to WDT
: Progress of program during
an abnormal execution
: Progress of program during
a normal execution
WDT is cleared to "0"
by writing C3H to WDT
(c) No writing to WDT
Figure 10-4 Examples of Program Runaway
10-4
Chapter 11
Flexible Timer (FTM)
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11. Flexible Timer (FTM)
The MSM66591/ML66592 flexible timer (FTM) consists of a 20-bit counter, a 16-bit
counter, four 20-bit registers, fourteen 16-bit registers, control registers, and other
components.
The functions of the timer include:
• 20-bit capture modes: 4 (type A1)
• 16-bit capture modes: 2 (type A2)
• double buffer real-time output modes: 10 (type B)
• capture/real-time output mode (with 4-port RTO): 1 (type D)
• capture/real-time output mode: 1 (type E)
Figure 11-1 shows the configuration of FTM.
Table 11-1 shows the list of SFRs for controlling FTM.
11
11-1
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
Counter Part
TM0 (20-bit)
TM1 (16-bit)
TMCON (8-bit)
Counter Selection Part
TMSEL (16-bit)
TMSEL2 (8-bit)
Type A1 Register Modules
Internal Bus
TMR0–TMR3
TMRL0–TMRL3
CAPCON
EVDV0–EVDV3
EVDV0BF–EVDV3BF
EVNTCONL,
EVNTCONH
P3_4/CAP0–P3_7/CAP3
Type B Register Modules
TMR4–TMR13
TMR4BF–TMR13BF
RTOCON4–RTOCON13
P2_0/RTO4–P2_7/RTO11
P10_0/RTO12, P10_1/RTO13
Type A2 Register Modules
TMR14, TMR15
CAPCON
RTOCON14, RTOCON15
EVNTCON2
P10_2/CAP14, P10_3/CAP15
Type D Register Module
TMR17
TMRMODE
RTOCON17, RTO4CON
CAPCON
P3_0/FTM17A
P3_1/FTM17B–P3_3/FTM17D
Type E Register Module
TMR16
TMRMODE
RTOCON16
CAPCON
P10_4/FTM16
Figure 11-1 Configuration of FTM
11-2
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
Table 11-1 List of SFRs for Controlling FTM
Address [H]
008A
008B
008C
008D
008E
008F
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
009A
009B
009C
009D
009E
009F
00A0
00A1
00A2
00A3
00A4
00A5
00A6
00A7
00A8
00A9
00AA
00AB
00AC
00AD
00AE
00AF
00B0
00B1
00B2
00B3
00B4
00B5
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Name (BYTE) Name (WORD)
Operation
Timer Register 0
—
TMR0
Timer Register 1
—
TMR1
Reset
State [H]
Undefined
Undefined
R
Timer Register 2
—
TMR2
Undefined
Timer Register 3
—
TMR3
Undefined
Timer Register 4
—
TMR4
0000
Timer Register 5
—
TMR5
0000
Timer Register 6
—
TMR6
0000
Timer Register 7
—
TMR7
0000
Timer Register 8
—
TMR8
Timer Register 9
—
TMR9
Timer Register 10
—
TMR10
R/W
0000
0000
0000
16
Timer Register 11
—
TMR11
0000
Timer Register 12
—
TMR12
0000
Timer Register 13
—
TMR13
0000
Timer Register 14
—
TMR14
Undefined
R
Timer Register 15
—
TMR15
Undefined
Timer Register 16
—
TMR16
0000
Timer Register 17
—
TMR17
0000
TMR4 Buffer Register
—
TMR4BF
0000
R/W
TMR5 Buffer Register
—
TMR5BF
0000
TMR6 Buffer Register
—
TMR6BF
0000
TMR7 Buffer Register
—
TMR7BF
0000
11-3
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
Table 11-1 List of SFRs for Controlling FTM (continued)
Address [H]
00B6
00B7
00B8
00B9
00BA
00BB
00BC
00BD
00BE
00BF
00C0
00C1
00C2
00C3
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
TMR8 Buffer Register
—
TMR8BF
0000
TMR9 Buffer Register
—
TMR9BF
0000
TMR10 Buffer Register
—
TMR10BF
TMR11 Buffer Register
—
TMR11BF
0000
TMR12 Buffer Register
—
TMR12BF
0000
TMR13 Buffer Register
—
TMR13BF
Timer Setting Register
—
TMSEL
00C4✩
Timer Setting Register 2
TMSEL2
—
00C6✩
R/W
16
0000
0000
R/W
16
0000
8
FC
RTO Control Register 4
RTOCON4
—
F8
00C7✩
RTO Control Register 5
RTOCON5
—
F8
00C8✩
RTO Control Register 6
RTOCON6
—
F8
00C9✩
RTO Control Register 7
RTOCON7
—
F8
00CA✩
RTO Control Register 8
RTOCON8
—
F8
00CB✩
RTO Control Register 9
RTOCON9
—
F8
00CC✩
RTO Control Register 10
RTOCON10
—
00CD✩
RTO Control Register 11
RTOCON11
—
00CE✩
RTO Control Register 12
RTOCON12
—
00CF✩
RTO Control Register 13
RTOCON13
—
00D0✩
RTOCON16
—
F8
00D1✩
RTO Control Register 16
RTO Control Register 17
RTOCON17
—
F8
00D2
4-Port RTO Control Register
RTO4CON
—
00
00D3✩
Timer Counter 0 Low-order 4 Bits
TM0L
—
0F
Timer Counter 0
—
TM0
0000
Timer Counter 1
—
TM1
0000
Undefined
00D4
00D5
00D6
00D7
8
F8
F8
F8
R/W
F8
16
00D8
TMR0 Low-order 4 Bits
TMR0L
—
00D9
TMR1 Low-order 4 Bits
TMR1L
—
00DA
TMR2 Low-order 4 Bits
TMR2L
—
00DB
TMR3 Low-order 4 Bits
TMR3L
—
R
8
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
11-4
Undefined
Undefined
Undefined
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
Table 11-1 List of SFRs for Controlling FTM (continued)
Address [H]
Name
00DC
Timer Control Register
00DD
Event Control Register 2
00DE
00DF
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
TMCON
—
00
EVNTCON2
—
88
Event Control Register L
EVNTCONL
—
88
Event Control Register H
EVNTCONH
—
88
0170✩
Event Dividing Counter 0
EVDV0
—
C0
0171✩
Event Dividing Counter 1
EVDV1
—
C0
0172✩
Event Dividing Counter 2
EVDV2
—
C0
0173✩
Event Dividing Counter 3
EVDV3
—
0174✩
Event Dividing Counter 14
EVDV14
—
0175✩
Event Dividing Counter 15
0176✩
EVDV0 Buffer Register
0177✩
0178✩
R/W
8
C0
EVDV15
—
C0
C0
EVDV0BF
—
C0
EVDV1 Buffer Register
EVDV1BF
—
C0
EVDV2 Buffer Register
EVDV2BF
—
C0
0179✩
EVDV3 Buffer Register
EVDV3BF
—
C0
017A✩
EVDV14 Buffer Register
EVDV14BF
—
C0
017B✩
EVDV15 Buffer Register
EVDV15BF
—
C0
Capture Control Register
—
CAPCON
TMRMODE
—
017C
017D
017E✩
TMR Mode Register
R/W
16
0000
8
F2
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
11-5
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.1 Configuration of Counter Part
The counter part consists of a 20-bit freerun counter (TM0, TM0L), a 16-bit freerun
counter (TM1), an input clock selector for each freerun counter, a timer data sequencer
to output as TMD the high-order 16-bits of TM0 and the TM1 values alternately at oneCLK intervals, and a control register (TMCON) to control the operation of TM0/TM1.
TM0 and TM1 generate interrupt requests when an overflow occurs.
3 4
TM0L
4 bits
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/32 TBCCLK
1/64 TBCCLK
1/128 TBCCLK
19
TM0
16 bits
0
15
OVF Interrupt
0
Selector
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/32 TBCCLK
1/64 TBCCLK
1/128 TBCCLK
Selector
Figure 11-2 shows the configuration of the counter part.
TM1
16 bits
TM read
4-bit
Latch
Timer Data Sequencer
CLK
Internal
Bus
Internal Bus
TM0L4
To type A1 timer register module
16 bits
TMDS
TMD
To each timer register module
Internal Bus
Figure 11-2 Configuration of Counter Part
Timer 0 is a 20-bit counter, the low-order 4 bits are TM0L, and the high-order 16 bits
are TM0, and can be read/written by the program. However, if TM0 is read, the contents of TM0L are latched to the temporary register at the same time. If TM0L is read
after that, the latched contents are read. Therefore if the data of Timer 0 is read in 20bit length, read TM0 first, then TM0L. If TM0L is written, the low-order 4-bits are invalid.
If TM0L is read, all "1s" are read from the low-order 4 bits. TM1 is a 16-bit counter, and
can be read/written by the program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TM0 and TM1 become
0000H, TM0L becomes 0FH, and operation is stopped.
The input clocks of TM0L, TM0, and TM1 are selected as TBCCLK or 1/2 TBCCLK to
1/128 TBCCLK by the timer control register (TMCON).
TMCON is an 8-bit register, that selects the count clock of TM0L, TM0 and TM1, and
also selects run/stop. At reset (when the RES signal is input, the BRK instruction is
executed, the watchdog timer is overflown, or an operation code trap is generated),
TMCON becomes 00H, TBCCLK is selected for the count clock of TM0L, TM0 and
TM1, and operation is stopped.
11-6
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
The 4-bit output (TM0L4) of TM0L is connected to the timer register module type A1.
The high-order 16-bit output of TM0, and the 16-bit output of TM1 are time-sharing
outputs (TMD) by CLK, at the timer data sequencer, and are connected to each timer
register module.
Figure 11-3 shows the configuration of TMCON, and Figure 11-4 shows the timing of
the timer data sequencer.
TMCON
7
6
5
4
3
2
1
0
TM1RUN TM1CK2 TM1CK1 TM1CK0 TM0RUN TM0CK2 TM0CK1 TM0CK0
TM0CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/32 TBCCLK
1/64 TBCCLK
1/128 TBCCLK
TM0 count operation stops
TM0 count runs
TM1CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
TM0 Count Clock
TM1 Count Clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/32 TBCCLK
1/64 TBCCLK
1/128 TBCCLK
TM1 count operation stops
TM1 count runs
Figure 11-3 Configuration of TMCON
CLK
TMDS
TMD
TM0
TM1
TM0
TM1
TM0
TM1
Figure 11-4 Output of Timer Data Sequencer
11-7
TM0
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.2 Counter Selection Part
The MSM66591/ML66592 have 18 timer register modules. Each timer register module
can be connected to either one of the two freerun counters (TM0 and TM1). The
selection is specified by the timer setting register (TMSEL) and timer setting register 2
(TMSEL2). TMSEL is a 16-bit register and TMSEL2 is a 2-bit register, both of which are
read/write enabled. Timer register 0 (TMR0) through timer register 3 (TMR3) consist of
20 bits. TM0L4 is always connected to the low-order 4 bits regardless of the specification of TMSEL.
"1s" are read from bits 7–2 when TMSEL2 is read.
Note that bit manipulation instructions such as SB and RB cannot be used, because
TMSEL has only 16-bit access.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMSEL and TMSEL2
become 0000H and FCH respectively, and all timer register modules are connected to
TM0.
Figure 11-5 shows the configuration of TMSEL, and Figure 11-6 the configuration of
TMSEL2.
11-8
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
TMSEL (bits 0–7)
7
6
5
4
3
2
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
TMR0 is connected to TM0
TMR0 is connected to TM1
TMR1 is connected to TM0
TMR1 is connected to TM1
TMR2 is connected to TM0
TMR2 is connected to TM1
TMR3 is connected to TM0
TMR3 is connected to TM1
TMR4 is connected to TM0
TMR4 is connected to TM1
TMR5 is connected to TM0
TMR5 is connected to TM1
TMR6 is connected to TM0
TMR6 is connected to TM1
TMR7 is connected to TM0
TMR7 is connected to TM1
TMSEL (bits 8–15)
15
14
13
12
11
10
9
8
11
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
TMR8 is connected to TM0
TMR8 is connected to TM1
TMR9 is connected to TM0
TMR9 is connected to TM1
TMR10 is connected to TM0
TMR10 is connected to TM1
TMR11 is connected to TM0
TMR11 is connected to TM1
TMR12 is connected to TM0
TMR12 is connected to TM1
TMR13 is connected to TM0
TMR13 is connected to TM1
TMR14 is connected to TM0
TMR14 is connected to TM1
TMR15 is connected to TM0
TMR15 is connected to TM1
Figure 11-5 Configuration of TMSEL
TMSEL2 (bits 0–7)
76543210
—
—
—
—
—
—
T17SEL T16SEL
0 TMR16 is connected to TM0
1 TMR16 is connected to TM1
0 TMR17 is connected to TM0
1 TMR17 is connected to TM1
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 11-6 Configuration of TMSEL2
11-9
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.3 Type A1 Register Modules (TMR0–TMR3)
The MSM66591/ML66592 have four sets of type A1 register modules (TMR0–TMR3).
The configuration is the same for all the sets, except for the address of registers on
SFR.
11.3.1 Configuration of Type A1 Register Modules (TMR0–TMR3)
Type A1 register modules have a capture input function. Figure 11-7 shows the configuration of a type A1 register module.
Type A1 register modules consist of a 20-bit timer register (TMRn, TMRnL), a pin to
input external events (CAPn), the edge detection of an external event, a divider to
divide an external event, a timing controller, and control registers (CAPCON,
EVNTCONL, EVNTCONH) to specify the operation of the valid edge of an external
event and the operation of a divider.
If CAP0–CAP3 pins are used as a capture function, set the bit corresponding to the
Port 3 secondary function control register to "1".
Figure 17-1 shows the configuration of type A1 register module.
CAPn input
CAPCON
Edge
Detection n
EVNTCONL,
EVNTCONH
Dividing
Circuit n
Interrupt
19
TMRn
12
43
TMRnL
0
1 1 11
CLK
TnSEL
TMDS
Timing
Controller n
TMD
TM0L4
n = 0–3
Figure 11-7 Configuration of Type A1 Register Module
[1]
Timer Registers (TMR0, TMR0L–TMR3, TMR3L)
The timer register consists of 20 bits, that are divided into high-order 16 bits (TMR0–
TMR3) and low-order 4 bits (TMR0L–TMR3L). The counter specified by TMSEL is
connected to TMR0–TMR3, and the low-order 4 bits of the 20-bit counter are always
connected to TMR0L–TMR3L.
If the specified valid edge is input to CAP0–CAP3 pins for the specified number of
pulses, a capture event is generated. In that case, the 16-bits of the content of the
counter specified by TMSEL are loaded to TMR0L–TMR3L, and the content of the loworder 4 bits of the 20-bit counter is loaded to TMR0L–TMR3L.
TMR0–TMR3 and TMR0L–TMR3L cannot be written, but can be read by the program.
However, if TMR0L–TMR3L are read, the high-order 4 bits are valid, and "1" is read
from the low-order 4 bits.
11-10
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMR0–TMR3 and TMR0L–
TMR3L become undefined.
[2]
Capture Control Register (CAPCON)
CAPCON is a 16-bit register that specifies the valid edge of a signal that is input to the
CAP0 (P3_4)–CAP3 (P3_7) pins, CAP14 (P10_2), CAP15 (P10_3), and, when TMR16
and TMR17 are in CAP mode, to FTM16 (P10_4) and FTM17A (P3_0) pins. Bits 0 to 7
of CAPCON are used to specify the valid edge of the signal that is input to the CAP0
(P3_4)–CAP3 (P3_7) pins.
Since CAPCON has only 16-bit access, bit manipulation instructions such as SB and
RB cannot be used.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), CAPCON becomes 0000H,
and CAP0–CAP3, CAP14, CAP15, FTM16, and FTM17A are specified to the falling
edge.
Figure 11-8 shows the configuration of bits 0–7 of CAPCON.
11
CAPCON (bits 0–7)
7
6
8
5
4
3
2
1
0
Bit
1
0
1
1
0
*
0
1
Bit
3
0
1
1
2
*
0
1
Bit
5
0
1
1
4
*
0
1
Valid edge of CAP0
Falling edge
Rising edge
Both edges
Valid edge of CAP1
Falling edge
Rising edge
Both edges
Valid edge of CAP2
Falling edge
Rising edge
Both edges
Bit
Valid edge of CAP3
7
6
0
*
Falling edge
1
0
Rising edge
1
1
Both edges
"*" indicates either "1" or "0".
Figure 11-8 Configuration of Bits 0–7 of CAPCON
11-11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[3]
Event Control Registers (EVNTCONL, EVNTCONH)
EVNTCONL and EVNTCONH are 8-bit registers that specify the dividing ratio (1/1, 1/2,
1/4, 1/8, 1/16, 1/32, 1/64) of the valid edge that is specified by the CAPCON of the
signal that is input to CAP0 (P3_4)–CAP3 (P3_7) pins.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), both EVNTCONL and
EVNTCONH become 88H, and a 1/1 division is specified.
Figure 11-9 shows the configuration of EVNTCONL, and Figure 11-10 the configuration
of EVNTCONH.
EVNTCONL
7
6
5
4
— T1EV2 T1EV1 T1EV0
3
—
2
1
0
T0EV2 T0EV1 T0EV0
T0EV
Dividing ratio of valid edge of CAP0 pin
2 1 0
0 0 0
1/1 division
0 0 1
1/2 division
0 1 0
1/4 division
0 1 1
1/8 division
1/16 division
1 0 0
1 0 1
1/32 division
1 1 *
1/64 division
T1EV
Dividing ratio of valid edge of CAP1 pin
2 1 0
0 0 0
1/1 division
0 0 1
1/2 division
0 1 0
1/4 division
0 1 1
1/8 division
1/16 division
1 0 0
1 0 1
1/32 division
1 1 *
1/64 division
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "1" or "0".
Figure 11-9 Configuration of EVNTCONL
11-12
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
EVNTCONH
7
6
5
4
— T3EV2 T3EV1 T3EV0
3
—
2
1
0
T2EV2 T2EV1 T2EV0
T2EV
Dividing ratio of valid edge of CAP2 pin
2 1 0
0 0 0
1/1 division
0 0 1
1/2 division
0 1 0
1/4 division
0 1 1
1/8 division
1/16 division
1 0 0
1 0 1
1/32 division
1 1 *
1/64 division
T3EV
Dividing ratio of valid edge of CAP3 pin
2 1 0
0 0 0
1/1 division
0 0 1
1/2 division
0 1 0
1/4 division
0 1 1
1/8 division
1/16 division
1 0 0
1 0 1
1/32 division
1 1 *
1/64 division
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "1" or "0".
Figure 11-10 Configuration of EVNTCONH
11-13
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[4]
Event Dividing Counters 0–3 (EVDV0–EVDV3)
EVDV0–EVDV3 are 6-bit counters that count the valid edge (specified by CAPCON)
input to CAP0–CAP3 pins for the value specified by EVNTCONL and EVNTCONH.
Figure 11-11 shows the configuration of EVDVn (n = 0–3).
EVDVn
7
6
—
—
5
4
3
2
1
0
Figure 11-11 Configuration of EVDVn (n = 0–3)
Whatever data is written to EVDV0–EVDV3, the counter is cleared to "0". Read is valid,
but "1" is read from the high-order 2 bits. EVDV0–EVDV3 are cleared to "0" when a
capture event is generated.
At reset (when the RES signal is input, the BRK instruction is executed, a watchdog
timer is overflown, or an operation code trap is generated), EVDV0–EVDV3 become
C0H.
[5]
EVDV0–EVDV3 Buffer Registers (EVDV0BF–EVDV3BF)
EVDV0BF–EVDV3BF are 6-bit registers that hold the content of EVDV0–EVDV3
(content just prior to being cleared to "0") when a capture event is generated.
Figure 11-12 shows the configuration of EVDVnBF (n = 0–3).
EVDVnBF
7
6
—
—
5
4
3
2
1
0
Figure 11-12 Configuration of EVDVnBF (n = 0–3)
Write to EVDV0BF–EVDV3BF is valid, however write to the high-order 2-bits is invalid.
Read is valid, however "1" is read from the high-order 2-bits.
If the content of EVNTCONL or EVNTCONH is updated and the dividing ratio is
changed during a capture operation, it is necessary to check whether an interrupt was
generated based on normal dividing, by testing the content of EVDVnBF at the beginning of the capture interrupt process program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), EVDV0BF–EVDV3BF
become C0H.
11-14
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.3.2 Operation of Type A1 Register Modules (TMR0–TMR3)
If the valid edge specified by CAPCON is input to CAP0–CAP3 pins when the TM
specified by TMSEL is in RUN status, the divider divides the pulse in the dividing ratio
specified by EVNTCON. In that case, an interrupt request by a capture event is generated, and at the same time, the content of the counter specified by TMSEL is loaded to
TMRn, and the content of TM0L4 is loaded to TMRnL. Also the content of the dividing
counter in the divider is loaded to buffer register EVDVnBF, and the content of the
dividing counter EVDVn is cleared to "0". Input a capture event at the interval of 3 CLKs
or more. (Capture operation may be performed only once even if the capture event is
input twice or more at an interval of less than 3 CLKs.)
Figure 11-13 (a) and (b) shows capture operation timing examples.
CAPn input (fall, 1/1 dividing)
OVF
Content of counters (TM0, TM1)
e
d
b
c
a
11
0H
a
Content of TMRn, TMRnL
b
Interrupt
request is
generated
Interrupt
request is
generated
c
Interrupt
request is
generated
d
e
Interrupt
request is
generated
Interrupt
request is
generated
Figure 11-13 (a) Capture Operation Timing Example
CAPn input (rise)
1/4 dividing
1/2 dividing
1/4 dividing
OVF
Content of counters (TM0, TM1)
b
e
g
d
a
c
f
0H
a
Content of TMRn, TMRnL
Content of EVDVn
0
Content of EVDVnBF
Interrupt
request is
generated
b
2
1
3
3
c
1
0
3
d
1
0
1
0
1
1
f
e
0
1
0
1
1
Interrupt Interrupt Interrupt Interrupt Interrupt
request is request is request is request is request is
generated generated generated generated generated
Figure 11-13 (b) Capture Operation Timing Example
11-15
g
2
1
3
0
1
3
Interrupt
request is
generated
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
If TM1 is selected as the timer for connecting to type A1 register module, 4 bits of TM0L
are latched to TMRnL at the time TM1 is latched to TMRn.
Type A1 register modules have no "function to check a cycle of the timer counter
between capture events," which is used for the capture function of type D and E register
modules.
11.3.3 Capture Pin Dividing Circuit
The MSM66591/ML66592 type A1 timer register modules have a capture pin dividing
circuit that can perform division from 1/1 to 1/64.
[1]
Configuration of Dividing Circuit
The dividing circuit consists of the following:
• counter to divide valid pulses input to capture pin (EVDVn) (n = 0–3)
• register to set dividing ratio (EVNTCONL, EVNTCONH)
• comparison circuit to compare counter value and register value
• register to hold dividing counter value when an event is generated (EVDVnBF) (n =
0–3)
[2]
Operation of Dividing Circuit
If valid edges (pulses) are input to a capture pin, EVDVn counts their number. If the
counter value and the dividing value specified by EVNTCONL or EVNTCONH match, a
capture event is generated.
If a capture event is generated, a capture interrupt request is generated, the counter
value is loaded to the timer register, the EVDVn value is loaded to EVDVnBF, and
EVDVn is cleared to "0". (n = 0–3)
[3]
Operation to Switch Dividing Ratio
Since the dividing ratio is programmable, the dividing operation may differ, depending
on the timing that changes the dividing ratio. In this case, the MSM66591/ML66592
operate as follows:
1) When the dividing ratio is changed from 1/N to 1/M (N > M), if a valid edge is input
to a capture pin when:
• counter value C in the dividing circuit is C ≥ M – 1 (except when M = 1)
or
• M=1
a capture event is generated.
If a valid edge is input to a capture pin when:
• counter value C in the dividing circuit is C < M – 1 (except when M = 1)
a capture event is not generated, and the counter value in the dividing circuit is
incremented.
2) When the dividing ratio is changed from 1/N to 1/M (N < M), the dividing operation
continues until the counter value becomes M, and a capture event is generated
when the counter value becomes M.
11-16
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.4 Type A2 Register Modules (TMR14, TMR15)
The MSM66591/ML66592 have two sets of type A2 register modules (TMR14, TMR15).
The configuration is the same for the two sets, except for the address of registers on
SFR.
11.4.1 Configuration of Type A2 Register Modules (TMR14, TMR15)
Type A2 register modules have a 16-bit capture input function.
Type A2 register modules consist of a 16-bit timer register (TMRn), a pin to input
external events (CAPn), the edge detection of an external event, a divider to divide an
external event, a timing controller, and control registers (CAPCON, EVNTCON2) to
specify the operation of the valid edge of an external event and the operation of a
divider.
If CAP14 and CAP15 pins are used as a capture function, set the bit corresponding to
the Port 10 secondary function control register to "1".
Figure 11-14 shows the configuration of a type A2 register module.
CAPn input
CAPCON
Edge
Detection n
EVNTCON2
Dividing
Circuit n
Interrupt
15
CLK
TnSEL
TMDS
TMRn
8
0
Timing
Controller n
n = 14, 15
TMD
Figure 11-14 Configuration of Type A2 Register Module
[1]
Timer Registers (TMR14, TMR15)
The timer registers consist of 16 bits. The counter specified by TMSEL is connected to
TMR14 and TMR15. If the specified valid edge is input to CAP14 and CAP15 for the
specified number of pulses, a capture event is generated. When a capture event is
generated, the 16-bit content of the counter specified by TMSEL is loaded into TMR14
and TMR15.
The program can read from but not write to TMR14 and TMR15.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMR14 and TMR15 are
undefined.
11-17
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[2]
Capture Control Register (CAPCON)
CAPCON is a 16-bit register that specifies the valid edge of a signal that is input to the
CAP0 (P3_4)–CAP3 (P3_7) pins, CAP14 (P10_2), CAP15 (P10_3), and, when TMR16
and TMR17 are in CAP mode, to FTM16 (P10_4) and FTM17A (P3_0) pins. Bits 8 to 15
of CAPCON are used to specify the valid edge of the signal that is input to the CAP14
(P10_2), CAP15 (P10_3), FTM16 (P10_4), and FTM17A (P3_0) pins.
Since CAPCON has only 16-bit access, bit manipulation instructions such as SB and
RB cannot be used.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), CAPCON becomes 0000H,
and CAP0–CAP3, CAP14, CAP15, FTM16, and FTM17A are specified to the falling
edge.
Figure 11-15 shows the configuration of bits 8–15 of CAPCON.
CAPCON (bits 8–15)
15
14
13
12
11
10
9
8
7
Bit
1
0
1
1
Valid edge of CAP14
0
*
0
1
Bit
3
0
1
1
Valid edge of CAP15
2
*
0
1
Bit
5
0
1
1
4
*
0
1
Bit
7
0
1
1
Falling edge
Rising edge
Both edges
6
*
0
1
Falling edge
Rising edge
Both edges
Valid edge of FTM16
(when in CAP mode)
Falling edge
Rising edge
Both edges
Valid edge of FTM17
(when in CAP mode)
Falling edge
Rising edge
Both edges
"*" indicates either "1" or "0".
Figure 11-15 Configuration of Bits 8–15 of CAPCON
11-18
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[3]
Event Control Register 2 (EVNTCON2)
EVNTCON2 is an 8-bit register that specifies the dividing ratio (1/1, 1/2, 1/4, 1/8, 1/16,
1/32, 1/64) of the valid edge that is specified by the CAPCON of the signal that is input
to CAP14 (P10_2) and CAP15 (P10_3) pins.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), EVNTCON2 becomes 88H,
and a 1/1 division is specified.
Figure 11-16 shows the configuration of EVNTCON2.
EVNTCON2
7
6
5
4
— T15EV2 T15EV1 T15EV0
3
—
2
1
0
T14EV2 T14EV1 T14EV0
T14EV
Dividing ratio of valid edge of CAP14 pin
2 1 0
0 0 0
1/1 division
0 0 1
1/2 division
0 1 0
1/4 division
0 1 1
1/8 division
1/16 division
1 0 0
1 0 1
1/32 division
1 1 *
1/64 division
T15EV
Dividing ratio of valid edge of CAP15 pin
2 1 0
0 0 0
1/1 division
0 0 1
1/2 division
0 1 0
1/4 division
0 1 1
1/8 division
1/16 division
1 0 0
1 0 1
1/32 division
1 1 *
1/64 division
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "1" or "0".
Figure 11-16 Configuration of EVNTCON2
11-19
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[4]
Event Dividing Counters 14, 15 (EVDV14, EVDV15)
EVDV14 and EVDV15 are 6-bit counters that count the valid edge (specified by
CAPCON) input to CAP14 and CAP15 pins for the value specified by EVNTCON2.
Figure 11-17 shows the configuration of EVDVn (n = 14, 15).
EVDVn
7
6
—
—
5
4
3
2
1
0
Figure 11-17 Configuration of EVDVn (n = 14, 15)
Whatever data is written to EVDV14 and EVDV15, the counter is cleared to "0". Read is
valid, but "1" is read from the high-order 2 bits. EVDV14 and EVDV15 are cleared to "0"
when a capture event is generated.
At reset (when the RES signal is input, the BRK instruction is executed, a watchdog
timer is overflown, or an operation code trap is generated), EVDV14 and EVDV15
become C0H.
[5]
EVDV14, EVDV15 Buffer Registers (EVDV14BF, EVDV15BF)
EVDV14BF and EVDV15BF are 6-bit registers that hold the content of EVDV14 and
EVDV15 (content just prior to being cleared to "0") when a capture event is generated.
Figure 11-18 shows the configuration of EVDVnBF (n = 14, 15).
EVDVnBF
7
6
—
—
5
4
3
2
1
0
Figure 11-18 Configuration of EVDVnBF (n = 14, 15)
Write to EVDV14BF and EVDV15BF is valid, however write to the high-order 2-bits is
invalid. Read is valid, however "1" is read from the high-order 2-bits.
If the content of EVNTCON2 is updated and the dividing ratio is changed during a
capture operation, it is necessary to check whether an interrupt was generated based
on normal dividing, by testing the content of EVDVnBF at the beginning of the capture
interrupt process program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), EVDV14BF and EVDV15BF
become C0H.
11-20
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.4.2 Operation of Type A2 Register Modules (TMR14, TMR15)
If the valid edge specified by CAPCON is input to CAP14 or CAP15 pin when the TM
specified by TMSEL is in RUN status, the divider divides the pulse in the dividing ratio
specified by EVNTCON2. In that case, an interrupt request by a capture event is
generated, and at the same time, the content of the counter specified by TMSEL is
loaded to TMRn. Also the content of the dividing counter in the divider is loaded to
buffer register EVDVnBF, and the content of the dividing counter EVDVn is cleared to
"0". Input a capture event at the interval of 3 CLKs or more. (Capture operation may be
performed only once even if the capture event is input twice or more at an interval of
less than 3 CLKs.)
Figure 11-19 (a) and (b) shows capture operation timing examples.
CAPn input (fall, 1/1 dividing)
OVF
Content of counters (TM0, TM1)
e
d
b
c
a
11
0H
a
Content of TMRn
b
c
Interrupt
request is
generated
Interrupt
request is
generated
Interrupt
request is
generated
d
e
Interrupt
request is
generated
Interrupt
request is
generated
Figure 11-19 (a) Capture Operation Timing Example
CAPn input (rise)
1/4 dividing
1/2 dividing
1/4 dividing
OVF
Content of counters (TM0, TM1)
b
e
g
d
a
c
f
0H
a
Content of TMRn
Content of EVDVn
0
Content of EVDVnBF
Interrupt
request is
generated
b
2
1
3
3
c
1
0
3
d
1
0
1
0
1
1
f
e
0
1
0
Interrupt Interrupt Interrupt Interrupt Interrupt
request is request is request is request is request is
generated generated generated generated generated
Figure 11-19 (b) Capture Operation Timing Example
11-21
2
1
1
g
1
3
0
1
3
Interrupt
request is
generated
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
Type A2 register modules have no "function to check a cycle of the timer counter
between capture events," which is used for the capture function of type D and E register
modules.
11.4.3 Capture Pin Dividing Circuit
The MSM66591/ML66592 type A2 timer register modules have a capture pin dividing
circuit that can perform division from 1/1 to 1/64.
[1]
Configuration of Dividing Circuit
The dividing circuit consists of the following:
• counter to divide valid pulses input to capture pin (EVDVn) (n = 14, 15)
• register to set dividing ratio (EVNTCON2)
• comparison circuit to compare counter value and register value
• register to hold dividing counter value when an event is generated (EVDVnBF) (n =
14, 15)
[2]
Operation of Dividing Circuit
If valid edges (pulses) are input to a capture pin, EVDVn counts their number. If the
counter value and the dividing value specified by EVNTCON2 match, a capture event is
generated.
If a capture event is generated, a capture interrupt request is generated, the counter
value is loaded to the timer register, the EVDVn value is loaded to EVDVnBF, and
EVDVn is cleared to "0". (n = 14, 15)
[3]
Operation to Switch Dividing Ratio
Since the dividing ratio is programmable, the dividing operation may differ, depending
on the timing that changes the dividing ratio. In this case, the MSM66591/ML66592
operate as follows:
1) When the dividing ratio is changed from 1/N to 1/M (N > M), if the valid edge is input
to a capture pin when:
• counter value C in the dividing circuit is C ≥ M – 1 (except when M = 1)
or
• M=1
a capture event is generated.
If a valid edge is input to the capture pin when:
• counter value C in the dividing circuit is C < M – 1 (except when M = 1)
a capture event is not generated, and the counter value in the dividing circuit is
incremented.
2) When the dividing ratio is changed from 1/N to 1/M (N < M), the dividing operation
continues until the counter value becomes M, and a capture event is generated
when the counter value becomes M.
11-22
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.5 Type B Register Modules (TMR4–TMR13)
The MSM66591/ML66592 have 10 sets of register modules type B (TMR4–TMR13).
The configuration is the same for these 10 sets, except for the address of registers on
SFR.
11.5.1 Configuration of Type B Register Modules (TMR4–TMR13)
Type B register modules have a double-buffer real-time output function.
Type B register modules consist of 16-bit timer registers (TMR4–TMR13, TMR4BF–
TMR13BF), pins to output signals by the real-time output function (RTO4–RTO13), a
timing controller, a comparator to compare timer counter and timer register values, and
control registers (RTOCON4–RTOCON13), to control real-time output operations.
If RTO4–RTO13 pins are used for real-time output functions, set the corresponding bit
of the Port 2 and Port 10 secondary function control registers to "1".
Figure 11-20 shows the configuration of a type B register module.
TMRnBF
11
TMRn
Comparison Circuit
CLK
TnSEL
TMDS
Timing
Controller n
=
TnBF1
Interrupt request
TnBF0
TnOUT
n = 4–13
TMD
Figure 11-20 Configuration of Type B Register Module
11-23
RTOn
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[1]
Timer Registers (TMR4–TMR13)
A timer register (TMR4–TMR13) consists of 16 bits. TMR4–TMR13 are constantly
compared with the counter values specified by TMSEL, and if they match, the contents
of TMR4BF, TMR13BF are loaded to the timer registers.
TMR4–TMR13 can be read/written by the program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMR4–TMR13 become
0000H.
[2]
Timer Register Buffer Registers (TMR4BF–TMR13BF)
A timer register buffer register (TMR4BF–TMR13BF) consists of 16 bits. If TMR4–
TMR13 and the counter values specified by TMSEL match, the contents of TMR4BF–
TMR13BF are loaded to TMR4–TMR13.
TMR4BF–TMR13BF can be read/written by the program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMR4BF–TMR13BF
become 0000H.
[3]
Real-time Output Control Registers (RTOCON4–RTOCON13)
A real-time output control register (RTOCON4–RTOCON13) consists of 3 bits. If TMR4
–TMR13 and the counter values specified by TMSEL match, the content of TnBF0 (bit
1) is loaded to TnOUT (bit 0), and the content of TnBF1 (bit 2) is loaded to TnBF0 (bit
1).
Set, to TnBF0, the level for changing for the next event and set, to TnBF1, for changing
for the event after the next.
RTOCON4–RTOCON13 can be read/written by the program. However, writing to the
high-order 5 bits is invalid. "1s" are always read from the high-order 5 bits when read. If
a read-modify-write instruction, such as SB, RB and XORB, is executed to RTOCON4–
RTOCON13 just before the event generated by RTO, TnBF0 and TnOUT may not
operate normally. (n = 4–13)
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, and an operation code trap is generated), RTOCON4–RTOCON13
become F8H.
Figure 11-21 shows the configuration of RTOCON4–RTOCON13.
11-24
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
RTOCON4–RTOCON13
7
—
6
—
5
—
4
—
3
—
2
1
0
TnBF1 TnBF0 TnOUT
The content of this flag is output to
an RTOn pin.
If the selected counter value and
the TMRn value match, the content
of this flag is loaded to TnOUT.
If the selected counter value and
the TMRn value match, the content
of this flag is loaded to TnBF0.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
n = 4–13
Figure 11-21 Configuration of RTOCON4–RTOCON13
11
11-25
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.5.2 Operation of Type B Register Modules (TMR4–TMR13)
Type B register modules have a double-buffer real-time output function. When the TM
specified by TMSEL is in RUN status, TMR4–TMR13 are constantly compared with the
specified counter value, and if they match, an interrupt request by real-time output is
generated, and the content of TMR4BF–TMR13BF are loaded to TMR4–TMR13. Also
the content of TnBF0 (bit 1) of RTOCON4–RTOCON13 is loaded to TnOUT (bit 0), and
the content of TnBF1 (bit 2) is loaded to TnBF0 (bit 1). (n = 4–13)
Therefore set the time for the next event to TMR4–TMR13, and set the time for the
event after the next event to TMR4BF–TMR13BF. Set the state for the next event to
TnBF0, and set the state for the event after the next event to TnBF1. Then a one-shot
pulse output can be controlled at one time.
Figure 11-22 shows a type B register module operation example.
If RTO4–RTO13 pins are used for real-time output functions, set the corresponding bit
of the Port 2 and Port 10 secondary function control registers to "1".
TMRn = TM
Content of counters (TM0, TM1)
a
b
a
Content of TMRn
TMRn = TM
b
b
Content of TMRnBF
Content of TnOUT (RTOn)
Content of TnBF0
Content of TnBF1
Write to
registers
Interrupt
request is
generated
Interrupt
request is
generated
Figure 11-22 Type B Register Module Operation Example
11-26
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.6 Type D Register Module (TMR17)
The MSM66591/ML66592 have one set of type D register module (TMR17).
11.6.1 Configuration of Type D Register Module (TMR17)
Type D register module has three types of functions: 4-port output RTO, RTO, and 16bit capture input.
Type D register module consists of 16-bit timer registers (TMR17), I/O pins (FTM17A–
FTM17D) to either input capture signals or output signals by the real-time output
function, a timing controller, a comparison circuit to compare timer counter and timer
register values, a control register (TMRMODE) to specify the operation of the type D
register module, and control registers (RTOCON17, RTO4CON, CAPCON) to control
the operation of the type D register module.
Figure 11-23 shows the configuration of a type D register module.
If FTM17A–FTM17D pins are used for real-time output or for capture functions, set
the corresponding bit of the Port 3 secondary function control register to "1".
11
11-27
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
CAP17
TMD
CLK
T17SEL
TMDS
Timing
Controller 17
T17BF0
T17OUT
FTM17A
Comparison Circuit
Interrupt
request
=
TMR17
T17BFA
T17OUTA
T17BFB
T17OUTB
FTM17B
T17BFC
T17OUTC
FTM17C
T17BFD
T17OUTD
FTM17D
CAP17
TMD
T17CER
Figure 11-23 Configuration of Type D Register Module
11-28
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[1]
Timer Register (TMR17)
A timer register consists of 16 bits (TMR17). In the case of RTO operation, TMR17 is
constantly compared with the counter value specified by TMSEL2. In the case of CAP
operation, the counter value specified by TMSEL2 is loaded when a pin event is
generated.
TMR17 can be read/written by the program. At reset (when the RES signal is input, the
BRK instruction is executed, the watchdog timer is overflown, and an operation code
trap is generated), TMR17 becomes 0000H.
[2]
Real-time Output Control Registers (RTOCON17, RTO4CON)
A real-time output control register (RTOCON17) consists of 3 bits. When TMR17 is in
RTO mode, if TMR17 matches the counter value specified by TMSEL2, the content of
TnBF0 (bit 1) is loaded to TnOUT (bit 0). Set the state for the next event to TnBF0.
4-port real-time output register (RTO4CON) consists of 8 bits. When TMR17 is in 4-port
RTO mode, if TMR17 matches the counter value specified by TMSEL2, the content of
T17BFA (bit 4)–T17BFD (bit 7) is loaded to T17OUTA (bit 0)–T17OUTD (bit 3). Set the
state for the next event to T17BFA–T17BFD.
RTOCON17 and RTO4CON can be read/written by the program. Write to RTOCON17
is valid, however write to high-order 5 bits is invalid. Read is valid, however "1" is
always read from the high-order 5 bits. If a read-modify-write instruction such as SB,
RB, and XORB is executed to RTOCON17 or RTO4CON just prior to an event generated by RTO, TnBF0, TnOUT, T17BFA–T17BFD, and T17OUTA–T17OUTD may not
operate normally.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), RTOCON17 becomes F8H,
and RTO4CON becomes 00H.
Figure 11-24 shows the configuration of RTOCON17. Figure 11-25 shows the configuration of RTO4CON.
11-29
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
RTOCON17
7
6
5
4
3
—
—
—
—
—
2
1
0
T17CER T17BF0 T17OUT
When TMR17 is in RTO mode, the
content of this flag is output to a
FTM17 pin.
When TMR17 is in RTO mode, if the
selected counter value and the TMR17
value match, the content of this
flag is loaded to T17OUT.
When TMR17 is in CAP mode, if the
selected counter completes one
cycle during a capture event, the
content of this flag is "1", if not, "0".
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 11-24 Configuration of RTOCON17
RTO4CON
7
6
5
4
3
2
1
0
T17BFD T17BFC T17BFB T17BFA T17OUTDT17OUTC T17OUTB T17OUTA
When TMR17 is in 4-port RTO mode,
the content of this flag is output to
FTM17D–FTM17A (pin).
When TMR17 is in 4-port RTO mode,
if the selected counter value and the
TMR17 value match, the content of
this flag is loaded to T17OUTD–
T17OUTA.
Figure 11-25 Configuration of RTO4CON
11-30
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[3]
TMR Mode Register (TMRMODE)
TMR mode register (TMRMODE) consists of 3 bits. TMRMODE sets the operational
functions of TMR16 and TMR17. TMRMODE can be read/written by the program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMRMODE becomes F2H,
TMR16 is specified to RTO mode, and TMR17 is specified to 4-port output RTO mode.
Figure 11-26 shows the configuration of TMRMODE.
TMRMODE
7
6
—
—
5
4
—
—
3
2
T17MD1 T17MD0
1
0
—
T16MD0
TMR16 Function
0 RTO mode
1 CAP mode
T17MD
1
0
0
1
0
0
1
*
11
TMR17 Function
4-port RTO mode
RTO mode
CAP mode
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "1" or "0".
Figure 11-26 Configuration of TMRMODE
11-31
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[4]
Capture Control Register (CAPCON)
CAPCON is a 16-bit register that specifies the valid edge of a signal that is input to the
CAP0 (P3_4)–CAP3 (P3_7) pins, CAP14 (P10_2), CAP15 (P10_3), and, when TMR16
and TMR17 are in CAP mode, to FTM16 (P10_4) and FTM17A (P3_0) pins. Bits 8–15
of CAPCON are used to specify the valid edge of a signal to be input to CAP14
(P10_2), CAP15 (P10_3), FTM16 (P10_4), and FTM17A (P3_0) pins.
CAPCON can be read/written by the program.
Note that bit manipulation instructions such as SB and RB cannot be used, because
CAPCON has only 16-bit access.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), CAPCON becomes 0000H,
and CAP0–CAP3, CAP14, CAP15, TMR16, and TMR17A are specified to falling edge.
Figure 11-27 shows the configuration of bits 8–15 of CAPCON.
CAPCON (bits 8–15)
15
14
13
12
11
10
9
8
7
Bit
1
0
1
1
Valid edge of CAP14
0
*
0
1
Bit
3
0
1
1
Valid edge of CAP15
2
*
0
1
Bit
5
0
1
1
4
*
0
1
Bit
7
0
1
1
Falling edge
Rising edge
Both edges
6
*
0
1
Falling edge
Rising edge
Both edges
Valid edge of FTM16
(when in CAP mode)
Falling edge
Rising edge
Both edges
Valid edge of FTM17
(when in CAP mode)
Falling edge
Rising edge
Both edges
"*" indicates either "1" or "0".
Figure 11-27 Configuration of Bits 8–15 of CAPCON
11-32
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.6.2 Operation of Type D Register Module (TMR17)
Three functions can be selected for a type D register module by TMRMODE.
• real-time output mode (RTO)
• 4-port real-time output mode (4-port RTO)
• 16-bit capture register mode (CAP)
[1]
Operation in Real-time Output Mode (RTO)
When the TM specified by TMSEL2 is in RUN status, TMR17 is constantly compared
with the specified counter value, and if they match, an interrupt request by a real-time
output is generated, and the contents of T17BF0 (bit 1) of RTOCON17 are loaded to
T17OUT (bit 0).
Therefore set, to TMR17, the time for the next event and set, to T17BF0, the state for
the next event. The RTO4CON function becomes invalid.
Figure 11-28 shows an example of a type D register module operation in RTO mode.
If FTM17A pin is used as RTO function, the bit corresponding to the Port-3 secondary
function control register must be set to "1". In this case RTO4CON becomes invalid.
TMR17 = TM
Content of counters (TM0, TM1)
b
TMR17 = TM
a
d
c
a
Content of TMR17
b
c
d
Content of T17OUT (RTO17)
Content of T17BF0
Write to
registers
Interrupt request
Interrupt request is generated
is generated
Write to TMR17,
Write to TMR17,
T17BF0
T17BF0
Interrupt request
Interrupt request
is generated
is generated
Write to TMR17
Write to TMR17
Figure 11-28 Example of Type D Register Module Operation in RTO Mode
11-33
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[2]
Operation in 4-Port Output Real-time Output Mode (4-Port RTO)
When the TM specified by TMSEL2 is in RUN status, TMR17 is constantly compared
with the specified counter value, and if they match, an interrupt request by a real-time
output is generated, and the contents of T17BFA–T17BFD (bits 4–7) of RTO4CON are
loaded to T17OUTA–T17OUTD (bits 0–3).
Figure 11-29 shows an example of a register module type D operation in 4-port RTO
mode.
If FTM17A–FTM17D pins are used as 4-port RTO function, the bit corresponding to the
Port-3 secondary function control register must be set to "1". In this case RTOCON7
becomes invalid.
TMR17 = TM
Content of counters (TM0, TM1)
b
TMR17 = TM
a
d
c
a
Content of TMR17
b
c
d
T17OUTA (FTM17A)
T17OUTB (FTM17B)
T17OUTC (FTM17C)
T17OUTD (FTM17D)
T17BFA
T17BFB
T17BFC
T17BFD
Write to
registers
Interrupt request
is generated
Write to TMR17,
T17BFA–T17BFD
Interrupt request
is generated
Write to TMR17,
T17BFA–T17BFD
Interrupt request
is generated
Write to TMR17,
T17BFA–T17BFD
Interrupt request
is generated
Write to TMR17,
T17BFA–T17BFD
Figure 11-29 Example of Type D Register Module Operation in 4-Port RTO Mode
11-34
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[3]
Operation in CAP Mode
When the TM specified by TMSEL2 is in RUN status, if the valid edge specified by
CAPCON is input to FTM17A pin, an interrupt request by a capture event is generated,
and at the same time, the content counter specified by TMSEL2 is loaded to TMR17.
Flag T17CER is provided in the register module type D. This flag checks whether the
cycle of the selected counter between capture events is completed or not. If the
counter cycle is completed since the last capture event generation (contents of
TMR17), T17CER (bit 2) of RTOCON17 is set to "1" if the capture value is more than or
equal to the "last capture value +1". This bit remains at "0" if the cycle is not completed
(when the capture value is less than or equal to the last capture value).
The cycle flag is set to "1" at the timing of the next capture operation after the above
mentioned condition is met. Note that when capture operations are not performed, the
cycle flag is not set even if the counter cycle is completed.
Figure 11-30 shows a capture operation timing example.
If FTM17A pin is used for CAP functions, set the corresponding bit of the Port 3 secondary function control registers to "1". When in CAP mode, RTOCON17 and
RTO4CON are invalid.
11
FTM17A input
(falling edge)
OVF
Content of counters (TM0, TM1)
e
d
b
c
a
0H
a
Content of TMR17
b
c
d
e
T17CER
▲
Interrupt
request is
generated
▲
▲
Interrupt
request is
generated
Interrupt
request is
generated
▲
Interrupt
request is
generated
▲
Interrupt
request is
generated
Figure 11-30 Example of Type D Register Module Operation in CAP Mode
11-35
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.7 Type E Register Module (TMR16)
The MSM66591/ML66592 have one set of type E register module (TMR16).
11.7.1 Configuration of Type E Register Module (TMR16)
Type E register module has two types of functions: RTO and 16-bit capture input.
Type E register module consists of 16-bit timer register (TMR16), I/O pins (FTM16) to
either input capture signals or output signals by the real-time output function, a timing
controller, a comparison circuit to compare timer counter and timer register values, a
control register (TMRMODE) to specify the operation of a type E register module, and
control registers (RTOCON16, CAPCON) to control the operation of the type E register
module.
Figure 11-31 shows the configuration of a register module type E.
If FTM16 pin is used for real-time output or for capture functions, set the corresponding bit of the Port 10 secondary function control register to "1".
TMD
CAP16
TMR16
T16CER
Comparsion Circuit
=
Interrupt request
CLK
T16SEL
TMDS
T16BF0
Timing
Controller 16
T16OUT
CAP16
FTM16
TMD
Figure 11-31 Configuration of Type E Register Module
11-36
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[1]
Timer Register (TMR16)
A timer register consists of 16 bits (TMR16). In the case of RTO operation, TMR16 is
constantly compared with the counter value specified by TMSEL2. In the case of CAP
mode, the counter value specified by TMSEL2 is loaded to the timer register when a pin
event is generated.
TMR16 can be read/written by the program. At reset (when the RES signal is input, the
BRK instruction is executed, the watchdog timer is overflown, or an operation code trap
is generated), TMR16 becomes 0000H.
[2]
Real-time Output Control Register (RTOCON16)
A real-time output control register (RTOCON16) consists of 3 bits. When TMR16 is in
RTO mode, if TMR16 matches the counter value specified by TMSEL2, the content of
T16BF0 (bit 1) is loaded to T16OUT (bit 0). Set the state for the next event to T16BF0.
RTOCON16 can be read/written by the program. Write is valid, however write to highorder 5 bits is invalid. Read is valid, however "1" is always read from the high-order 5
bits. If a read-modify-write instruction, such as SB, RB, and XORB, is executed to
RTOCON16 just prior to an event generated by RTO, T16BF0 and T16OUT may not
operate normally.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), RTOCON16 becomes F8H.
Figure 11-32 shows the configuration of RTOCON16.
RTOCON16
7
6
—
—
5
4
3
—
—
—
2
1
0
T16CER T16BF0 T16OUT
When TMR16 is in RTO mode, the
content of this flag is output to a
FTM16 pin.
When TMR16 is in RTO mode, if the
selected counter value and the TMR16
value match, the content of this flag
is loaded to T16OUT.
When TMR16 is in CAP mode, if the
selected counter completes one
cycle during a capture event, the
content of this flag is "1", if not, "0".
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 11-32 Configuration of RTOCON16
11-37
11
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[3]
TMR Mode Register (TMRMODE)
TMR mode register (TMRMODE) consists of 3 bits. TMRMODE sets the operational
functions of TMR16 and TMR17. TMRMODE can be read/written by the program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TMRMODE becomes F2H,
TMR16 is specified to RTO mode, and TMR17 is specified to 4-port output RTO mode.
Figure 11-33 shows the configuration of TMRMODE.
TMRMODE
7
6
—
—
5
4
—
—
3
2
T17MD1 T17MD0
1
0
—
T16MD0
Function of TMR16
0 RTO mode
1 CAP mode
T17MD
1
0
0
1
0
0
1
*
Function of TMR17
4-port RTO mode
RTO mode
CAP mode
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "1" or "0".
Figure 11-33 Configuration of TMRMODE
11-38
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
[4]
Capture Control Register (CAPCON)
CAPCON is a 16-bit register that specifies the valid edge of a signal that is input to the
CAP0 (P3_4)–CAP3 (P3_7) pins, CAP14 (P10_2), CAP15 (P10_3), and, when TMR16
and TMR17 are in CAP mode, to FTM16 (P10_4) and FTM17A (P3_0) pins. Bits 8–15
of CAPCON are used to specify the valid edge of a signal to be input to CAP14
(P10_2), CAP15 (P10_3), FTM16 (P10_4), and FTM17A (P3_0) pins.
CAPCON can be read/written by the program.
Note that bit manipulation instructions such as SB and RB cannot be used, because
CAPCON has only 16-bit access.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), CAPCON becomes 0000H,
and CAP0–CAP3, CAP14, CAP15, TMR16, and TMR17A are specified to falling edge.
Figure 11-34 shows the configuration of bits 8–15 of CAPCON.
CAPCON (bits 8–15)
15
14
13
12
11
10
9
8
7
11
Bit
1
0
1
1
Valid edge of CAP14
0
*
0
1
Bit
3
0
1
1
Valid edge of CAP15
2
*
0
1
Bit
5
0
1
1
4
*
0
1
Bit
7
0
1
1
Falling edge
Rising edge
Both edges
6
*
0
1
Falling edge
Rising edge
Both edges
Valid edge of FTM16
(CAP mode)
Falling edge
Rising edge
Both edges
Valid edge of FTM17
(CAP mode)
Falling edge
Rising edge
Both edges
"*" indicates either "1" or "0".
Figure 11-34 Configuration of Bits 8–15 of CAPCON
11-39
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.7.2 Operation of Type E Register Module (TMR16)
Two functions can be selected for a type E register module by TMRMODE.
• real-time output mode (RTO)
• 16-bit capture mode (CAP)
[1]
Operation in Real-time Output Mode (RTO)
When the TM specified by TMSEL2 is in RUN status, TMR16 is constantly compared
with the specified counter value, and if they match, an interrupt request by a real-time
output is generated, and the contents of T16BF0 (bit 1) of RTOCON16 are loaded to
T16OUT (bit 0).
Therefore set the time for the next event to TMR16 and set the state for the next event
to T16BF0.
Operation in RTO mode of a type E register module is the same as the RTO mode of a
register module type D. (See Figure 11-28.)
If FTM16 pin is used for RTO functions, set the corresponding bit of the Port 10 secondary function control register to "1".
[2]
Operation in CAP Mode
When the TM specified by TMSEL2 is in RUN status, if the valid edge specified by
CAPCON is input to FTM16 pin, an interrupt request by a capture event is generated,
and at the same time, the content counter specified by TMSEL2 is loaded to TMR16. If
the counter cycle is completed (= if the register value and the counter value match)
since the last capture event generation (contents of TMR16), T16CER (bit 2) of
RTOCON16 is set to "1". It remains at "0" if the cycle is not completed.
The operation in CAP mode of type E register module is the same as that in CAP mode
of type D register module. (See Figure 11-30.)
If FTM16 pin is used for CAP mode, set the corresponding bit of the Port 10 secondary
function control register to "1". When in CAP mode, RTOCON16 is invalid.
11-40
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11.8 RTO Mode Output Timing Changes
Figure 11-35 shows an example of RTO mode output timing changes of register
modules type B, type D, and type E.
Figure 11-35 uses the RTO output function of type B register module as an example.
TM1 is incremented every 1/5 CLK. When the content of TMRn is 100H, the match
signal of TM1 and TMRn becomes H level while the content of TM1 is 100H. TMRn and
the RTO output pin change at the fall of the match signal, and by the AND signal of the
TM1 clock pulse. The corresponding interrupt request flag is set at the latter half of
M1S1 (signal to indicate the beginning of an instruction).
Master clock (CLK)
Clock of TM1 1/5 CLK
Content of TM1
100H
101H
102H
11
Match signal
of TM1 and TMRn
M1S1
Change of TMRn content
and RTO output pin, etc.
100H
IRQ
Interrupt transition cycle
(MIE, IE = "1")
Figure 11-35 Example of Type B Register Module Output Timing Changes
11-41
MSM66591/ML66592 User's Manual
Chapter 11 Flexible Timer (FTM)
11-42
Chapter 12
General-Purpose 8-Bit Timer
Function
12
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
12. General-Purpose 8-Bit Timer Function
The MSM66591/ML66592 have one general-purpose 8-bit timer (GTM) and one
general-purpose 8-bit event counter (GEVC).
Table 12-1 lists the GTM control SFRs.
Table 12-1 GTM Control SFRs
Address[H]
004E✩
016A✩
016B
016C
016D
Abbreviated Abbreviated R/W 8/16-Bit Reset
Operation State [H]
Name (BYTE) Name (WORD)
Name
General-Purpose 8-Bit Timer
Interrupt Control Register
General-Purpose 8-Bit Timer Control Register
General-Purpose 8-Bit Event Counter
General-Purpose 8-Bit Timer Counter
General-Purpose 8-Bit Timer Register
GTINTCON
—
GTMCON
GEVC
GTMC
GTMR
—
—
—
—
F0
R/W
8
30
00
00
00
Addresses in the address column marked by "✩" indicate that the register has bits missing.
12
12-1
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
12.1 General-Purpose 8-Bit Timer (GTM)
The general-purpose 8-bit timer consists of an 8-bit timer counter (GTMC), an 8-bit
timer register (GTMR) that stores the reload values of GTMC, and a general-purpose 8bit timer control register (GTMCON) that controls operations. Figure 12-1 shows the
configuration of GTM.
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/64 TBCCLK
1/256 TBCCLK
External rise
External fall
Selector
General-purpose 8-bit timer interrupts and general-purpose 8-bit event counter interrupts are assigned to the same interrupt vector. Indication of whether each individual
interrupt request has been generated or not and whether to enable or disable generation of each individual interrupt request are specified by the general-purpose 8-bit timer
interrupt control register (GTINTCON).
GTMC
OVF
Interrupt
request
QGTM
EGTM
GTMR
GTMCON
Figure 12-1 Configuration of GTM
[Note]
When the general purpose 8-bit timer, used in external clock mode, is switched to
STOP mode, and when STOP mode is cleared by an interrupt, the 8-bit timer counter
(GTMC) may be incremented by 1 depending on the input level of the external clock
(P9_6/ETMCK pin) at that time.
12-2
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
[1]
General-Purpose 8-Bit Timer Counter (GTMC)
The GTMC is an 8-bit counter that generates an interrupt request when an overflow
occurs, and at the same time, the content of the general-purpose 8-bit timer register
(GTMR) is loaded. The count clock of GTMC is selected by the low-order 3 bits of the
general-purpose 8-bit timer control register (GTMCON).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), GTMC becomes 00H, and
the count operation stops. In STOP mode and if external clock (P9_6/ETMCK pin) is
specified as the counter clock of GTMC, GTMC counts at the falling edge of the count
clock.
[2]
General-Purpose 8-Bit Timer Register (GTMR)
GTMR is an 8-bit register, and its content is loaded to GTMC when a GTMC overflow
occurs. At reset (when the RES signal is input, the BRK instruction is executed, the
watchdog timer is overflown, or an operation code trap is generated), GTMR becomes
00H.
[3]
General-Purpose 8-Bit Timer Control Register (GTMCON)
GTMCON is an 8-bit register that selects the count clock of GTMC and controls the
start/stop of the count operation using the low-order 4 bits. It also selects the count
clock of GEVC and controls the start/stop of the count operation using the high-order 2
bits.
If external clock is seleced as the counter clock of GTMC, GTMC counts inputs to the
P9_6/ETMCLK pin.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), GTMCON becomes 30H, a
1/2 TBCCLK is selected as the count clock of GTMC, and the count operation stops.
The external clock rising edge is selected as the count clock of GEVC, and the count
operation stops.
Figure 12-2 shows the configuration of GTMCON.
12-3
12
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
GTMCON
7
6
5
4
GEVRUN GEVCK
—
—
3
2
1
0
GTMRUN GTMCK2 GTMCK1 GTMCK0
GTMCK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Count Clock of GTMC
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/64 TBCCLK
1/256 TBCCLK
External rise (P9_6/ETMCK pin)
External fall (P9_6/ETMCK pin)
0 GTMC count operation stop
1 GTMC count runs
0 GEVC count clock external rise (P9_7/ECTCK pin)
1 GEVC count clock external fall (P9_7/ECTCK pin)
0 GEVC count operation stop
1 GEVC count runs
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 12-2 Configuration of GTMCON
12-4
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
[4]
General-Purpose 8-Bit Timer Interrupt Control Register (GTINTCON)
GTINTCON is an 8-bit register that controls the generation of interrupts for the generalpurpose 8-bit timer and general-purpose 8-bit event counter.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), GTINTCON becomes F0H.
Figure 12-3 shows the configuration of GTINTCON.
[Description of Each Bit]
• EGTM (bit 0)
The EGTM bit enables or disables the generation of interrupt requests by the general-purpose 8-bit timer (GTMC).
When this bit is "0", interrupts are disabled. When "1", interrupts are enabled.
• QGTM (bit 1)
QGTM indicates whether an interrupt request has been generated by the generalpurpose 8-bit timer (GTMC).
When this bit is "0", no interrupt request has been generated. When "1", an interrupt
request has been generated.
12
• EEVC (bit 2)
EEVC enables or disables the generation of interrupt requests by the generalpurpose 8-bit event counter (GEVC).
When this bit is "0", interrupts are disabled. When "1", interrupts are enabled.
• QEVC (bit 3)
QEVC indicates whether an interrupt request has been generated by the generalpurpose 8-bit event counter (GEVC).
When this bit is "0", no interrupt request has been generated. When "1", an interrupt
request has been generated.
GTINTCON
7
6
—
—
5
4
—
—
3
2
1
0
QEVC EEVC QGTM EGTM
0 GTMC interrupt request generation: disabled
1 GTMC interrupt request generation: enabled
0 GTMC interrupt request generation: no
1 GTMC interrupt request generation: yes
0 GEVC interrupt request generation: disabled
1 GEVC interrupt request generation: enabled
0 GEVC interrupt request generation: no
1 GEVC interrupt request generation: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 12-3 GTINTCON Configuration
12-5
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
12.2 General-Purpose 8-Bit Event Counter (GEVC)
The general-purpose 8-bit event counter consists of an 8-bit counter (GEVC), and an 8bit general-purpose 8-bit timer control register (GTMCON) that controls operations.
Figure 12-4 shows the configuration of GEVC.
External rise
External fall
Selector
General-purpose 8-bit timer interrupts and general-purpose 8-bit event counter interrupts are assigned to the same interrupt vector. Indication of whether each individual
interrupt request has been generated or not and whether to enable or disable generation of each individual interrupt request are specified by the general-purpose 8-bit timer
interrupt control register (GTINTCON).
OVF
GEVC
Interrupt
QEVC
GTMCON
EEVC
Figure 12-4 Configuration of GEVC
[Note]
When the general-purpose 8-bit counter is set to STOP mode, and when STOP mode is
cleared by an interrupt, the 8-bit event counter (GEVC) may be incremented by 1
depending on the input level of the external clock (P9_7/ECTCK pin) at that time.
[1]
General-Purpose 8-Bit Event Counter (GEVC)
The GEVC is an 8-bit counter that generates an interrupt request when an overflow
occurs. The count clock of the GEVC is selected by the high-order 2 bits of the generalpurpose 8-bit timer control register (GTMCON).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), the GEVC becomes 00H,
and the count operation stops. In STOP mode, the GEVC operates at the falling edge
of the external clock.
[2]
General-Purpose 8-Bit Timer Control Register (GTMCON)
The GTMCON is an 8-bit register that counts inputs to the P9_7/ECTCK pin. It selects
the count clock of the GTMC and controls the start/stop of the count operation using the
low-order 4 bits. It also selects the count clock of the GEVC and controls the start/stop
of the count operation using the high-order 2 bits. GEVC counts inputs to the P9_7/
ECTCK pin.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), the GTMCON becomes
30H, a 1/2 TBCCLK is selected as the count clock of the GTMC, and the count operation stops. The external clock rising edge is selected as the count clock of the GEVC,
and the count operation stops.
Figure 12-2 (page 12-4) shows the configuration of the GTMCON.
12-6
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
[3]
General-Purpose 8-Bit Timer Interrupt Control Register (GTINTCON)
GTINTCON is an 8-bit register that controls the generation of interrupts for the generalpurpose 8-bit timer and general-purpose 8-bit event counter.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), GTINTCON becomes F0H.
Figure 12-3 (page 12-5) shows the configuration of GTINTCON.
[Description of Each Bit]
• EGTM (bit 0)
The EGTM bit enables or disables the generation of interrupt requests by the general-purpose 8-bit timer (GTMC).
When this bit is "0", interrupts are disabled. When "1", interrupts are enabled.
• QGTM (bit 1)
QGTM indicates whether an interrupt request has been generated by the generalpurpose 8-bit timer (GTMC).
When this bit is "0", no interrupt request has been generated. When "1", an interrupt
request has been generated.
12
• EEVC (bit 2)
EEVC enables or disables the generation of interrupt requests by the generalpurpose 8-bit event counter (GEVC).
When this bit is "0", interrupts are disabled. When "1", interrupts are enabled.
• QEVC (bit 3)
QEVC indicates whether an interrupt request has been generated by the generalpurpose 8-bit event counter (GEVC).
When this bit is "0", no interrupt request has been generated. When "1", an interrupt
request has been generated.
12-7
MSM66591/ML66592 User's Manual
Chapter 12 General-Purpose 8-Bit Timer Function
12-8
Chapter 13
PWM Functions
13
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
13. PWM Functions
The MSM66591/ML66592 have 12 channels of PWM functions. PWM consists of a
count clock dividing circuit, a 16-bit counter, three 16-bit registers, various control
registers, etc.
If the master clock is 24 MHz, a 10.6 msec (valid bit length: 8 bits) to 838.9 msec (valid
bit length: 16 bits) cycle can be selected by combining the input clock of the PWM
counter and a valid bit length.
Figure 13-1 shows the configuration of PWM. Table 13-1 lists the PWM control SFRs.
PWCnBF
CLK (master clock)
Interrupt
1/n
TBCCLK
1/2 TBCCLK SeleTBC 1/4 TBCCLK ctor
1/8 TBCCLK
1/16 TBCCLK
PWCn
UDF
Output F/F
S
Q
Active
Controller
Comparator
R
Q
PWRn
Interrupt
PWnBF
n = 0–11
Figure 13-1 Configuration of PWM
13-1
To port
13
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
Table 13-1 PWM Control SFRs
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Name (BYTE) Name (WORD)
Operation
Reset
State [H]
0050
PWM Counter 0/
PWC0/
FFFF
—
PWC0 Buffer Register
PWC0BF
0051
0052
PWM Counter 1/
PWC1/
FFFF
—
PWC1 Buffer Register
PWC1BF
0053
PWM Counter 2/
0054
PWC2/
FFFF
—
PWC2 Buffer Register
PWC2BF
0055
PWM Counter 3/
0056
PWC3/
FFFF
—
PWC3 Buffer Register
PWC3BF
0057
PWM Counter 4/
0058
PWC4/
FFFF
—
PWC4 Buffer Register
PWC4BF
0059
PWM Counter 5/
005A
PWC5/
FFFF
—
PWC5 Buffer Register
PWC5BF
005B
R/W
PWM Counter 6/
005C
PWC6/
(*1)
FFFF
—
PWC6 Buffer Register
PWC6BF
005D
005E
PWM Counter 7/
PWC7/
FFFF
—
PWC7 Buffer Register
PWC7BF
005F
PWM Counter 8/
0060
PWC8/
FFFF
—
PWC8 Buffer Register
PWC8BF
0061
PWM Counter 9/
0062
PWC9/
FFFF
—
PWC9 Buffer Register
PWC9BF
0063
PWM Counter 10/
0064
PWC10/
FFFF
—
PWC10 Buffer Register
PWC10BF
0065
PWM Counter 11/
0066
PWC11/
FFFF
—
PWC11 Buffer Register
PWC11BF
0067
16
PWM Register 0/
0068
PWR0/
0000
—
PWR0 Buffer Register
PW0BF
0069
PWM Register 1/
006A
PWR1/
0000
—
PWR1 Buffer Register
PW1BF
006B
PWM Register 2/
006C
PWR2/
0000
—
PWR2 Buffer Register
PW2BF
006D
PWM Register 3/
006E
PWR3/
0000
—
PWR3 Buffer Register
PW3BF
006F
PWM
Register
4/
0070
PWR4/
0000
—
PWR4 Buffer Register
PW4BF
0071
PWM
Register
5/
0072
PWR5/
0000
—
PWR5 Buffer Register
PW5BF
0073
R/W
PWM Register 6/
0074
PWR6/
(*2)
0000
—
PWR6 Buffer Register
PW6BF
0075
PWM Register 7/
0076
PWR7/
0000
—
PWR7 Buffer Register
PW7BF
0077
PWM Register 8/
0078
PWR8/
0000
—
PWR8 Buffer Register
PW8BF
0079
PWM Register 9/
007A
PWR9/
0000
—
PWR9 Buffer Register
PW9BF
007B
PWM Register 10/
007C
PWR10/
0000
—
PWR10 Buffer Register
PW10BF
007D
PWM Register 11/
007E
PWR11/
0000
—
PWR11 Buffer Register
PW11BF
007F
*1 The counter value is read if a read instruction is executed, and data is written to the buffer if a write
instruction is executed.
*2 The register value is read if a read instruction is executed, and data is written to the buffer if a write
instruction is executed.
13-2
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
Table 13-1 PWM Control SFRs (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
0080✩
PWRUNL
PWMRUN Register
PWRUN
0081
PWRUNH
0082✩
PWINTQ0L
PWM Interrupt Register 0
PWINTQ0
0083
PWINTQ0H
0084✩
PWINTQ1L
R/W
8/16
PWM Interrupt Register 1
PWINTQ1
0085
PWINTQ1H
0086
PWM Interrupt Enable
PWINTE0L
PWINTE0
Register 0
0087
PWINTE0H
0088✩ PWM Interrupt Enable
PWINTE1L
PWINTE1
Register 1
0089
PWINTE1H
0160
PWM Control Register 0
PWCON0
—
PWM Control Register 1
0161
PWCON1
—
0162
PWM Control Register 2
PWCON2
—
8
R/W
PWM Control Register 3
0163
PWCON3
—
0164
PWM Control Register 4
PWCON4
—
PWM Control Register 5
0165
PWCON5
—
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
Reset
State [H]
00
F0
00
F0
00
F0
00
F0
00
F0
00
00
00
00
00
00
13
13-3
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
13.1 Configuration of PWM
The MSM66591/ML66592 have 12 sets of PWM functions (PWM0–PWM11). PWM0–
PWM11 have the same configuration except for the SFR address.
PWM consists of 16-bit counters (PWC0–PWC11), 16-bit counter buffer registers
(PWC0BF–PWC11BF), 16-bit registers (PWR0–PWR11), 16-bit buffer registers
(PW0BF–PW11BF), a comparison circuit for PWC0–PWC11 and PWR0–PWR11, an
output F/F, and various control registers (PWINTQ0, PWINTQ1, PWINTE0, PWINTE1,
PWCON0–PWCON5 and PWRUN) that control operations.
If PWM0–PWM11 pins are used for PWM functions, set the corresponding bit of the
Port 7 and Port 8 secondary function control registers to "1". If the OE pin is in "L" level,
PWM0–PWM11 pins operate (outputs) as a PWM function, but if the OE pin is in "H"
level, PWM0–PWM11 pins go into high impedance status.
[1]
PWM Counters (PWC0–PWC11)
PWC0–PWC11 are 16-bit down counters. The input clock can be selected from among
the master clock, TBCCLK, 1/2 TBCCLK, 1/4 TBCCLK, 1/8 TBCCLK, and 1/16
TBCCLK. If an underflow occurs when the corresponding PWnRUN bit is "1" and
PWC0–PWC11 are in count operations, the PWM counter generates an interrupt
request (PWC0 and PWC1, PWC2 and PWC3, PWC4 and PWC5, PWC6 and PWC7,
PWC8 and PWC9, PWC10 and PWC11 are common), and the contents of the 16-bit
PWM counter buffer register are loaded to the PWM counters. The PWM counter then
loads the content of the 16-bit PWM buffer register to the 16-bit PWM register, and sets
the output F/F to "1".
PWC0–PWC11 can be read, but cannot be written, by the program. However, if
PWC0BF–PWC11BF are written when the corresponding PWnRUN bit is "0" (stop
status), the 16-bit contents are written to PWC0–PWC11 as well.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWC0–PWC11 become
FFFFH.
[2]
PWM Counter Buffer Registers (PWC0BF–PWC11BF)
PWC0BF–PWC11BF are 16-bit registers for setting cycles (for storing the reload values
for PWC0–PWC11). If PWC0–PWC11 underflow, the contents of PWC0BF–PWC11BF
are loaded to the 16-bit PWM counter.
PWC0BF–PWC11BF can be read, but cannot be written, by the program. If PWC0BF–
PWC11BF are written to when the corresponding PWnRUN bit is "0" (stop status), the
contents of 16-bits are written to PWC0–PWC11 as well.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWC0BF–PWC11BF
become FFFFH.
13-4
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
[3]
PWM Registers (PWR0–PWR11)
PWR0–PWR11 are 16-bit registers that store the duty values to output. If PWC0–
PWC11 underflow, the contents of the 16-bit PWM buffer register are loaded to PWR0–
PWR11.
PWR0–PWR11 can be read, but cannot be written, by the program. However, if the
corresponding PWnRUN bit is "0" (stop status), and PW0BF–PW11BF are written to,
the contents of 16 bits are written to PWR0–PWR11 as well.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWR0–PWR11 become
0000H.
[4]
PWM Buffer Registers (PW0BF–PW11BF)
PW0BF–PW11BF are 16-bit registers. If PWC0–PWC11 underflow, the contents of the
PWM buffer register are loaded to the PWM register. PW0BF–PW11BF can be written,
but cannot be read, by the program. If the corresponding PWnRUN bit is "0" (stop
status), and PW0BF–PW11BF are written to, the contents of 16-bits are written to
PWR0–PWR11 as well.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PW0BF–PW11BF become
0000H.
[5]
Comparison Circuit
The comparison circuit constantly compares the content of PWC0–PWC11 and that of
PWR0–PWR11 when the corresponding PWnRUN bit is "1". It generates an interrupt
request (PWM0 and PWM1, PWM2 and PWM3, PWM4 and PWM5, PWM6 and PWM7,
PWM8 and PWM9, PWM10 and PWM11 are common) and resets the output F/F if
contents of PWC0–PWC11 and PWR0–PWR11 match.
[6]
Output F/F
The output F/F is set to "1" when the corresponding PWnRUN bit is set to "1", and
when PWC0–PWC11 underflow. The output F/F is set to "0" when the contents of
PWC0–PWC11 and PWR0–PWR11 match.
[7]
PWM Control Registers (PWCON0–PWCON5)
PWCON0–PWCON5 are 8-bit registers that specify the count clock of PWC0–PWC11,
and specify the output logic for PWM0–PWM11. PWCON0 specifies for PWM0 and
PWM1, PWCON1 specifies for PWM2 and PWM3, PWCON2 specifies for PWM4 and
PWM5, PWCON3 for specifies for PWM6 and PWM7, PWCON4 specifies for PWM8
and PWM9, and PWCON5 specifies for PWM10 and PWM11.
Figure 13-2 shows the configuration of PWCON0; Figure 13-3 shows the configuration
of PWCON1; Figure 13-4 shows the configuration of PWCON2; Figure 13-5 shows the
configuration of PWCON3; Figure 13-6 shows the configuration of PWCON4; Figure
13-7 shows the configuration of PWCON5.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWCON0–PWCON5
become 00H, and PWC0–PWC11 select the master clock as the count clock and
PWM0–PWM11 select high active.
13-5
13
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWCON0
7
6
5
4
3
2
1
0
PW1ACT PW1CK2 PW1CK1 PW1CK0 PW0ACT PW0CK2 PW0CK1 PW0CK0
PW0CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
Count Clock of PWC0
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
PWM0 high active status
PWM0 low active status
PW1CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
Count Clock of PWC1
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 PWM1 high active status
1 PWM1 low active status
"*" indicates either "1" or "0".
Figure 13-2 Configuration of PWCON0
PWCON1
7
6
5
4
3
2
1
0
PW3ACT PW3CK2 PW3CK1 PW3CK0 PW2ACT PW2CK2 PW2CK1 PW2CK0
PW2CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
Count Clock of PWC2
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
PWM2 high active status
PWM2 low active status
PW3CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
Count Clock of PWC3
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 PWM3 high active status
1 PWM3 low active status
"*" indicates either "1" or "0".
Figure 13-3 Configuration of PWCON1
13-6
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWCON2
7
6
5
4
3
2
1
0
PW5ACT PW5CK2 PW5CK1 PW5CK0 PW4ACT PW4CK2 PW4CK1 PW4CK0
PW4CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
Count Clock of PWC4
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
PWM4 high active status
PWM4 low active status
PW5CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
Count Clock of PWC5
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 PWM5 high active status
1 PWM5 low active status
"*" indicates either "1" or "0".
13
Figure 13-4 Configuration of PWCON2
PWCON3
7
6
5
4
3
2
1
0
PW7ACT PW7CK2 PW7CK1 PW7CK0 PW6ACT PW6CK2 PW6CK1 PW6CK0
PW6CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
Count Clock of PWC6
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
PWM6 high active status
PWM6 low active status
PW7CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
Count Clock of PWC7
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 PWM7 high active status
1 PWM7 low active status
"*" indicates either "1" or "0".
Figure 13-5 Configuration of PWCON3
13-7
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWCON4
7
6
5
4
3
2
1
0
PW9ACT PW9CK2 PW9CK1 PW9CK0 PW8ACT PW8CK2 PW8CK1 PW8CK0
PW8CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
Count Clock of PWC8
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
PWM8 high active status
PWM8 low active status
PW9CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
Count Clock of PWC9
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 PWM9 high active status
1 PWM9 low active status
"*" indicates either "1" or "0".
Figure 13-6 Configuration of PWCON4
PWCON5
7
6
5
4
3
2
1
0
PW11ACTPW11CK2PW11CK1PW11CK0PW10ACTPW10CK2PW10CK1PW10CK0
PW10CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
Count Clock of PWC10
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
PWM10 high active status
PWM10 low active status
PW11CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
Count Clock of PWC11
Master clock
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 PWM11 high active status
1 PWM11 low active status
"*" indicates either "1" or "0".
Figure 13-7 Configuration of PWCON5
13-8
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
[8]
PWMRUN Register (PWRUN)
PWRUN consists of an 8-bit register (PWRUNL) and a 4-bit register (PWRUNH). It
controls the run/stop of PWC0–PWC11 counter operations.
Figure 13-8 shows the configuration of PWRUNL, and Figure 13-9 the configuration of
PWRUNH.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWRUNL and PWRUNH
become 00H and F0H respectively, and PWC0–PWC11 stop the count operation.
PWRUNL
7
6
5
4
3
2
1
0
PW7RUN PW6RUN PW5RUN PW4RUN PW3RUN PW2RUN PW1RUN PW0RUN
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
PWC0 stops
PWC0 runs
PWC1 stops
PWC1 runs
PWC2 stops
PWC2 runs
PWC3 stops
PWC3 runs
PWC4 stops
PWC4 runs
PWC5 stops
PWC5 runs
PWC6 stops
PWC6 runs
PWC7 stops
PWC7 runs
Figure 13-8 Configuration of PWRUNL
PWRUNH
7
6
—
—
5
4
—
—
3
2
1
0
PW11RUN PW10RUN PW9RUN PW8RUN
0
1
0
1
0
1
0
1
PWC8 stops
PWC8 runs
PWC9 stops
PWC9 runs
PWC10 stops
PWC10 runs
PWC11 stops
PWC11 runs
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 13-9 Configuration of PWRUNH
13-9
13
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
[9]
PWM Interrupt Registers (PWINTQ0, PWINTQ1)
Each interrupt request of PWM0–PWM11 is generated when an underflow of PWC0–
PWC11 is generated or when the content of PWC0–PWC11 and that of PWR0–PWR11
match.
The interrupt vectors corresponding to the interrupt requests generated by PWM0–
PWM11 are shared by PWM0 and PWM1, by PWM2 and PWM3, by PWM4 and
PWM5, by PWM6 and PWM7, by PWM8 and PWM9, and by PWM10 and PWM11.
PWINTQ0 and PWINTQ1 are 16-bit registers. PWINTQ0 consists of 8-bit registers
PWINTQ0L and PWINTQ0H, and PWINTQ1 consists of 8-bit registers PWINTQ1L and
PWINTQ1H. PWINTQ0 are flags (individual interrupt request flag) that are set to "1" if
an underflow of PWC0–PWC11 is generated. PWINTQ1 are flags (individual interrupt
request flags) that are set to "1" if the contents of PWC0–PWC11 and PWR0–PWR11
match. The bits of PWINTQ0 and PWINTQ1 do not become "0" automatically, even if a
corresponding interrupt occurs. Therefore it is necessary to reset them to "0" by the
program.
If an underflow of PWC0–PWC11 and a match of the content of PWC0–PWC11 and
that of PWR0–PWR11 occur concurrently (when PWR = 0000H is set), the interrupt
request by an underflow of PWC0–PWC11 is given priority. Therefore, only the corresponding bit of PWINTQ0 is set to "1" and the corresponding bit of PWINTQ1 is not.
Figure 13-10 shows the configuration of PWINTQ0L, Figure 13-11 the configuration of
PWINTQ0H, Figure 13-12 the configuration of PWINTQ1L, and Figure 13-13 the
configuration of PWINTQ1H.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWINTQ0 and PWINTQ1
become F000H.
13-10
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWINTQ0L
7
6
QPW7
QPW6
5
4
3
2
1
0
QPW5
QPW4
QPW3
QPW2
QPW1
QPW0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
PWC0 underflow generation:
PWC0 underflow generation:
PWC1 underflow generation:
PWC1 underflow generation:
PWC2 underflow generation:
PWC2 underflow generation:
PWC3 underflow generation:
PWC3 underflow generation:
PWC4 underflow generation:
PWC4 underflow generation:
PWC5 underflow generation:
PWC5 underflow generation:
PWC6 underflow generation:
PWC6 underflow generation:
PWC7 underflow generation:
PWC7 underflow generation:
no
yes
no
yes
no
yes
no
yes
no
yes
no
yes
no
yes
no
yes
Figure 13-10 Configuration of PWINTQ0L
13
PWINTQ0H
7
6
—
—
5
4
—
—
3
2
QPW11 QPW10
1
0
QPW9
QPW8
0
1
0
1
0
1
0
1
PWC8 underflow generation: no
PWC8 underflow generation: yes
PWC9 underflow generation: no
PWC9 underflow generation: yes
PWC10 underflow generation: no
PWC10 underflow generation: yes
PWC11 underflow generation: no
PWC11 underflow generation: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 13-11 Configuration of PWINTQ0H
13-11
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWINTQ1L
7
6
5
4
3
2
1
0
QPWR7 QPWR6 QPWR5 QPWR4 QPWR3 QPWR2 QPWR1 QPWR0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Match of PWC0 and PWR0:
Match of PWC0 and PWR0:
Match of PWC1 and PWR1:
Match of PWC1 and PWR1:
Match of PWC2 and PWR2:
Match of PWC2 and PWR2:
Match of PWC3 and PWR3:
Match of PWC3 and PWR3:
Match of PWC4 and PWR4:
Match of PWC4 and PWR4:
Match of PWC5 and PWR5:
Match of PWC5 and PWR5:
Match of PWC6 and PWR6:
Match of PWC6 and PWR6:
Match of PWC7 and PWR7:
Match of PWC7 and PWR7:
no
yes
no
yes
no
yes
no
yes
no
yes
no
yes
no
yes
no
yes
Figure 13-12 Configuration of PWINTQ1L
PWINTQ1H
7
6
—
—
5
4
—
—
3
2
1
0
QPWR11 QPWR10 QPWR9 QPWR8
0
1
0
1
0
1
0
1
Match of PWC8 and PWR8: no
Match of PWC8 and PWR8: yes
Match of PWC9 and PWR9: no
Match of PWC9 and PWR9: yes
Match of PWC10 and PWR10: no
Match of PWC10 and PWR10: yes
Match of PWC11 and PWR11: no
Match of PWC11 and PWR11: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 13-13 Configuration of PWINTQ1H
13-12
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
[10] PWM Interrupt Enable Registers (PWINTE0, PWINTE1)
PWINTE0 and PWINTE1 are 16-bit registers. PWINTE0 consists of 8-bit registers
PWINTE0L and PWINTE0H, and PWINTE1 consists of 8-bit registers PWINTE1L and
PWINTE1H. PWINTE0 is a register that controls enable/disable of the interrupt request
by PWC0–PWC11 undferflow generation. PWINTE1 is a register that controls enable/
disable of the interrupt request by matching of the contents of PWC0–PWC11 and
PWR0–PWR11.
Figure 13-14 shows the configuration of PWINTE0L, Figure 13-15 the configuration of
PWINTE0H, Figure 13-16 the configuration of PWINTE1L, and Figure 13-17 the
configuration of PWINTE1H.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), PWINTE0 and PWINTE1
become F000H, and the interrupt request of PWM0–PWM11 is disabled.
13
13-13
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWINTE0L
7
6
EPW7
EPW6
5
4
3
2
1
0
EPW5
EPW4
EPW3
EPW2
EPW1
EPW0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Interrupt request by PWC0 underflow: disabled
Interrupt request by PWC0 underflow: enabled
Interrupt request by PWC1 underflow: disabled
Interrupt request by PWC1 underflow: enabled
Interrupt request by PWC2 underflow: disabled
Interrupt request by PWC2 underflow: enabled
Interrupt request by PWC3 underflow: disabled
Interrupt request by PWC3 underflow: enabled
Interrupt request by PWC4 underflow: disabled
Interrupt request by PWC4 underflow: enabled
Interrupt request by PWC5 underflow: disabled
Interrupt request by PWC5 underflow: enabled
Interrupt request by PWC6 underflow: disabled
Interrupt request by PWC6 underflow: enabled
Interrupt request by PWC7 underflow: disabled
Interrupt request by PWC7 underflow: enabled
Figure 13-14 Configuration of PWINTE0L
PWINTE0H
7
6
—
—
5
4
3
2
1
0
—
—
EPW11
EPW10
EPW9
EPW8
0
1
0
1
0
1
0
1
Interrupt request by PWC8 underflow: disabled
Interrupt request by PWC8 underflow: enabled
Interrupt request by PWC9 underflow: disabled
Interrupt request by PWC9 underflow: enabled
Interrupt request by PWC10 underflow: disabled
Interrupt request by PWC10 underflow: enabled
Interrupt request by PWC11 underflow: disabled
Interrupt request by PWC11 underflow: enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 13-15 Configuration of PWINTE0H
13-14
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
PWINTE1L
7
6
5
4
3
2
1
0
EPWR7 EPWR6 EPWR5 EPWR4 EPWR3 EPWR2 EPWR1 EPWR0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Interrupt request by match of PWC0 and PWR0 : disabled
Interrupt request by match of PWC0 and PWR0 : enabled
Interrupt request by match of PWC1 and PWR1 : disabled
Interrupt request by match of PWC1 and PWR1 : enabled
Interrupt request by match of PWC2 and PWR2 : disabled
Interrupt request by match of PWC2 and PWR2 : enabled
Interrupt request by match of PWC3 and PWR3 : disabled
Interrupt request by match of PWC3 and PWR3 : enabled
Interrupt request by match of PWC4 and PWR4 : disabled
Interrupt request by match of PWC4 and PWR4 : enabled
Interrupt request by match of PWC5 and PWR5 : disabled
Interrupt request by match of PWC5 and PWR5 : enabled
Interrupt request by match of PWC6 and PWR6 : disabled
Interrupt request by match of PWC6 and PWR6 : enabled
Interrupt request by match of PWC7 and PWR7 : disabled
Interrupt request by match of PWC7 and PWR7 : enabled
Figure 13-16 Configuration of PWINTE1L
13
PWINTE1H
7
6
—
—
5
4
—
—
3
2
1
0
EPWR11 EPWR10 EPWR9 EPWR8
0
1
0
1
0
1
0
1
Interrupt request by match of PWC8 and PWR8 : disabled
Interrupt request by match of PWC8 and PWR8 : enabled
Interrupt request by match of PWC9 and PWR9 : disabled
Interrupt request by match of PWC9 and PWR9 : enabled
Interrupt request by match of PWC10 and PWR10 : disabled
Interrupt request by match of PWC10 and PWR10 : enabled
Interrupt request by match of PWC11 and PWR11 : disabled
Interrupt request by match of PWC11 and PWR11 : enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 13-17 Configuration of PWINTE1H
13-15
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
13.2 Operation of PWM
PWM0–PWM11 control duty within a specific cycle (determined by the count clock of
PWC0–PWC11 or by the contents of PWC0–PWC11 and PWC0BF–PWC11BF).
PWM is started by setting the corresponding RUN bit to "1". If the RUN bit becomes "1",
the output F/F is set to "1" at the same time, and "H" level is output to the PWM output
pin (in the case of high active status.) If the contents of the corresponding PWC0–
PWC11 and PWR0–PWR11 match, the output F/F is set to "0", "L" level is output to the
PWM output pin and an individual interrupt request flag is set to "1". If PWC0–PWC11
generate an underflow, the output F/F is set to "1", "H" level is output to the PWM
output pin, an individual interrupt request flag is set to "1", and, at the same time, the
contents of PWC0BF–PWC11BF and PW0BF–PW11BF are loaded to PWC0–PWC11
and PWR0–PWR11, respectively. This operation is repeated, and the duty-controlled
waveform is output from the PWM output pin until the RUN bit is set to "0".
If an underflow of PWC0–PWC11 and a match of the contents of PWC0–PWC11 and
PWR0–PWR11 occur concurrently (when PWR = 0000H is set), the interrupt request by
an underflow of PWC0–PWC11 is given priority. Therefore, only the individual interrupt
request flag by the underflow of PWC0–PWC11 is set to "1"; the individual interrupt
request flag by the match of the contents of PWC0–PWC11 and PWR0–PWR11 is not
set to "1".
The duty immediately after PWM start may become shorter (only 1 cycle), depending
on the selected count clock of PWC0–PWC11. Refer to the following example.
Count Clock
Master Clock (CLK)
TBCCLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/32 TBCCLK
Maximum Errors
0
–(TBCCLK – 1 CLK)
–(1/2 TBCCLK – 1 CLK)
–(1/4 TBCCLK – 1 CLK)
–(1/8 TBCCLK – 1 CLK)
–(1/16 TBCCLK – 1 CLK)
–(1/32 TBCCLK – 1 CLK)
If a different clock is used for the PWC clock with the equal value set for PWCn and
PWCnBF (n = 0–11) and PWnRUN bit is set to "1" at the same time, the cycle will be
equal, however a synchronization shift may occur.
If the PWCn and PWCnBF (n = 0–11) values are both FFFFH, and in high active status,
PWM becomes 1/65536 duty output when PWR is FFFFH. If the PWR value is decreased, the output duty ("H" level period) increases. If the PWR value is 0000H, output
becomes 65536/65536 at 100% duty. 0/65536, which is 0% duty, cannot be implemented in a PWM block.
13-16
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
The calculation of a PWM cycle is shown below.
1
f(PWM) = f(OSC) ¥ PWCLK ¥
f(PWM): cycle of PWM (Hz)
N+1
f(OSC): master clock frequency (Hz)
PWCLK: input clock of PWM
N: PWCn and PWCnBF value (n = 0–11)
[Example]
Master clock frequency: 24 MHz; input clock of PWM: TBCCLK (dividing ratio of the 1/n
counter: 1/4); PWCnBF value: 00FFH
f(PWM) = 24,000,000 ¥ 1/4 ¥ 1/(255 + 1) = 93,750 Hz ≅ (10.67 µsec)
Figure 13-18 shows an example of PWM output operation. Figure 13-19 shows an
example of a PWM output timing change.
FFFFH
13
Content of PWC
0H (UDF)
PWR value
PWnRUN bit
PWM output waveform
PWnRUN bit
is set
(n = 0–11)
PWC underflow is generated PWC underflow is generated
(interrupt req. is generated) (interrupt req. is generated)
PWC = PWR
PWC = PWR
PWC = PWR
(interrupt req. is generated) (interrupt req. is generated) (interrupt req. is generated)
Figure 13-18 PWM Output Operation Example (in high active status)
13-17
MSM66591/ML66592 User's Manual
Chapter 13 PWM Functions
Master clock (CLK)
PWC clock: TBCCLK
(dividing ratio of the 1/n counter: 1/4)
Content of PWC
100H
0FFH
0FEH
Match signal of PWC and PWR
Change of PWM output pin
MIS1
IRQ
Figure 13-19 PWM Output Timing Change Example
13-18
Chapter 14
Baud Rate Generator
Functions
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14. Baud Rate Generator Functions
The MSM66591/ML66592 have five serial communication functions: the UART serial
ports 0, 2, 3, 4 and the synchronous/UART serial port 1. Each serial port has 8-bit
timers (S0TM, S1TM, S2TM, S3TM, S4TM) that can be used as baud rate generators.
When not used as baud rate generators, these timers can be used as 8-bit auto reload
timers.
The basic configuration of S0TM, S1TM, S2TM, S3TM and S4TM is the same, except
for the address of registers located in the SFR area.
Interrupts for S0TM, S1TM, S2TM, S3TM and S4TM are assigned to the same interrupt
vector. The generation of individual interrupt requests are enabled or disabled by bit 3
(ESTMn) of each timer control register (SnCON). Verification of whether an interrupt
request has been generated is performed based on bit 2 (QSTMn) of each timer control
register. (n = 0–4)
Figure 14-1 shows the configuration of S0TM, S1TM, S2TM, S3TM and S4TM. Table
14-1 lists the S0TM, S1TM, S2TM, S3TM and S4TM control SFRs.
QSTMn
Selector
Master clock (CLK)
1/2 CLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
1/64 TBCCLK
1/256 TBCCLK
SCIn Timer Counter
ESTMn
OVF
Interrupt
request
Baud rate clock for
SCIn
SCIn Timer Register
(n = 0–4)
SnCON
Figure 14-1 Configuration of S0TM, S1TM, S2TM, S3TM, S4TM
14-1
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
Table 14-1 S0TM, S1TM, S2TM, S3TM, S4TM Control SFRs
Address [H]
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Reset
State [H]
SCI0 Timer
—
S0TM
0000
SCI1 Timer
—
S1TM
0000
SCI2 Timer
—
S2TM
SCI3 Timer
—
S3TM
SCI4 Timer
—
S4TM
0000
02
16
0000
0000
R/W
012A✩
SCI0 Timer Control Register
S0CON
—
012B✩
SCI1 Timer Control Register
S1CON
—
012C✩
SCI2 Timer Control Register
S2CON
—
012D✩
SCI3 Timer Control Register
S3CON
—
02
012E✩
SCI4 Timer Control Register
S4CON
—
02
02
8
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
14-2
02
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.1 Configuration of SCI0 Timer (S0TM)
The SCI0 timer (S0TM) consists of an 8-bit SCI0 timer counter, an 8-bit SCI0 timer
register that stores the reload values of the SCI0 timer counter, and a control register
(S0CON) that specifies the timer counter operations.
[1]
SCI0 Timer Counter (low-order 8 bits of 16-bit register S0TM)
The SCI0 timer counter is an 8-bit counter. When S0TM overflows, an interrupt request
is generated, and the content of the 8-bit SCI0 timer register is loaded to SCI0 timer
counter. The count clock of S0TM is selected by the high-order 3 bits (bits 5–7) of the
8-bit SCI0 timer control register (S0CON).
[2]
SCI0 Timer Register (high-order 8 bits of 16-bit register S0TM)
The SCI0 timer register is an 8-bit register. The content of the register is loaded to the
SCI0 timer counter when the counter overflows.
The SCI0 timer counter and SCI0 timer register are accessible only as a 16-bit S0TM
which uses the SCI0 timer counter as its low-order 8 bits and the SCI0 timer register as
its high-order 8 bits.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S0TM becomes 0000H, and
the count operation stops.
[3]
SCI0 Timer Control Register (S0CON)
S0CON is an 8-bit register. The high-order 4 bits (bits 4–7) select the count clock of
S0TM, and controls the start/stop of the count operation. The low-order 2 bits (bits 2
and 3) perform interrupt related controls. The least significant bit (bit 0) specifies the
mode of S0TM.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S0CON becomes 02H, a
CLK is selected as the count clock of S0TM, the auto reload timer mode is selected,
and operation stops.
Figure 14-2 shows the configuration of S0CON.
<Description of Each Bit>
• S0MOD (bit 0)
This bit specifies the operation mode of S0TM. If this bit is "0", S0TM operates in
auto reload timer mode. If "1", S0TM operates in SCI0 baud rate generator mode.
• QSTM0 (bit 2)
This bit becomes "1" if an SCI0 timer counter overflow is generated. Since this bit
does not become "0" automatically after an interrupt process is executed, it is
necessary to set to "0" by the program.
• ESTM0 (bit 3)
This bit enables/disables an interrupt request generation by an SCI0 timer counter
overflow. If this bit is "1", generation is enabled, and if "0", generation is disabled.
14-3
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
• S0RUN (bit 4)
This bit specifies the RUN/STOP of the SCI0 timer counter. If this bit is "0", the SCI0
timer counter stops, and if "1", it runs.
• S0CK0–S0CK2 (bits 5–7)
These three bits specify the count clock of the SCI0 timer counter.
S0CON
7
6
5
4
3
2
S0CK2 S0CK1 S0CK0 S0RUN ESTM0 QSTM0
1
—
0
S0MOD
0
1
0
1
S0TM auto-reload timer mode
S0TM baud rate generator mode for SCI0
SCI0 timer counter overflow generation:no
SCI0 timer counter overflow generation:yes
SCI0 timer counter overflow interrupt
0 request generation disabled
SCI0 timer counter overflow interrupt
1 request generation enabled
0 SCI0 timer counter count operation STOP
1 SCI0 timer counter count operation RUN
S0CK
Count Clock of S0TM
2 1 0
0 0 0
Master clock (CLK)
0 0 1
1/2 CLK
0 1 0
1/2 TBCCLK
0 1 1
1/4 TBCCLK
1/8 TBCCLK
1 0 0
1 0 1
1/16 TBCCLK
1 1 0
1/64 TBCCLK
1 1 1
1/256 TBCCLK
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 14-2 Configuration of S0CON
14-4
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.2 Operation of SCI0 Timer
Basically the SCI0 timer operates as an auto reload timer. If the 8-bit SCI0 timer
counter overflows, the value of the 8-bit SCI0 timer register is loaded to the counter. At
the same time, an interrupt request by overflow is generated. The calculation of the
baud rate when SCI0 is used as the baud rate generator is shown below.
1
1
B: baud rate
¥
B = f(BRG) ¥
16
256 – D
f(BRG): S0TM count clock frequency (Hz)
D: reload value (0 to 255)
Even if the reload value is written to the SCI0 timer register, the content of the SCI0
timer counter does not change. If the SCI0 timer is used as the auto reload timer (baud
rate generator) from the beginning of an operation, it is necessary to write the same
value to both the SCI0 timer counter and SCI0 timer register by the program.
14
14-5
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.3 Configuration of SCI1 Timer (S1TM)
The SCI1 timer (S1TM) consists of an 8-bit SCI1 timer counter, an 8-bit SCI1 timer
register that stores the reload values of the SCI1 timer counter, and a control register
(S1CON) that specifies S1TM operations.
[1]
SCI1 Timer Counter (low-order 8 bits of 16-bit register S1TM)
The SCI1 timer counter is an 8-bit counter. When S1TM overflows, an interrupt request
is generated, and the content of the 8-bit SCI1 timer register is loaded to SCI1 timer
counter. The count clock of S1TM is selected by the high-order 3 bits (bits 5–7) of the
8-bit SCI1 timer control register (S1CON).
[2]
SCI1 Timer Register (high-order 8 bits of 16-bit register S1TM)
The SCI1 timer register is an 8-bit register. The content of the register is loaded to the
SCI1 timer counter when the counter overflows.
The SCI1 timer counter and SCI1 timer register are accessible only as a16-bit S1TM
which uses the SCI1 timer counter as its low-order 8 bits and the SCI1 timer register as
its high-order 8 bits.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S1TM becomes 0000H, and
the count operation stops.
[3]
SCI1 Timer Control Register (S1CON)
S1CON is an 8-bit register. The high-order 4 bits (bits 4–7) select the count clock of
S1TM, and control the start/stop of the count operation. The low-order 2 bits (bits 2, 3)
perform interrupt related controls. The least significant bit (bit 0) specifies the mode of
S1TM.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S1CON becomes 02H, a
CLK is selected as the count clock of S1TM, the auto-reload timer mode is selected,
and operation stops.
Figure 14-3 shows the configuration of S1CON.
<Description of Each Bit>
• S1MOD (bit 0)
This bit specifies the operation mode of S1TM. If this bit is "0", S1TM operates in
auto reload mode. If "1", S1TM operates in SCI1 baud rate generator mode.
• QSTM1 (bit 2)
This bit becomes "1" if an SCI1 timer counter overflow is generated. Since this bit
does not become "0" automatically after an interrupt process is executed, it is
necessary to set to "0" by the program.
• ESTM1 (bit 3)
This bit enables/disables an interrupt request generation by an SCI1 timer counter
overflow. If this bit is "1", generation is enabled, and if "0", generation is disabled.
14-6
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
• S1RUN (bit 4)
This bit specifies the RUN/STOP of the SCI1 timer counter. If this bit is "0", the SCI1
timer counter stops, and if "1", it runs.
• S1CK0–S1CK2 (bits 5–7)
These three bits specify the count clock of the SCI1 timer counter.
S1CON
7
6
5
4
3
2
S1CK2 S1CK1 S1CK0 S1RUN ESTM1 QSTM1
1
—
0
S1MOD
0
1
0
1
S1TM auto-reload timer mode
S1TM baud rate generator mode for SCI1
SCI1 timer counter overflow generation:no
SCI1 timer counter overflow generation:yes
SCI1 timer counter overflow interrupt
0 request generation disabled
SCI1 timer counter overflow interrupt
1 request generation enabled
0 SCI1 timer counter count operation STOP
1 SCI1 timer counter count operation RUN
S1CK
Count Clock of S1TM
2 1 0
0 0 0
Master clock (CLK)
0 0 1
1/2 CLK
0 1 0
1/2 TBCCLK
0 1 1
1/4 TBCCLK
1/8 TBCCLK
1 0 0
1 0 1
1/16 TBCCLK
1 1 0
1/64 TBCCLK
1 1 1
1/256 TBCCLK
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 14-3 Configuration of S1CON
14-7
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.4 Operation of SCI1 Timer
Basically the SCI1 timer operates as the auto-reload timer. If the 8-bit timer counter
(S1TM) overflows, the value of the 8-bit register (S1TMR) is loaded. At the same time,
an interrupt request by an overflow is generated. The calculation of the baud rate when
SCI1 is used as the baud rate generator is shown below.
1
1
B = f(BRG) ¥
¥
UART mode:
B: baud rate
256 – D 16
f(BRG): S1TM count clock frequency (Hz)
D: reload value (0 to 255)
1
1
Synchronous mode: B = f(BRG) ¥
¥
256 – D
4
B: baud rate
f(BRG): S1TM count clock frequency (Hz)
D: reload value (0 to 255)
Even if the reload value is written to the SCI1 timer register, the content of the SCI1
timer counter does not change. If the SCI1 timer is used as the auto reload timer (baud
rate generator) from the beginning of operation, it is necessary to write the same value
to both the SCI1 timer counter and SCI1 timer register through programming.
14-8
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.5 Configuration of SCI2 Timer (S2TM)
The SCI2 timer (S2TM) consists of an 8-bit SCI2 timer counter, an 8-bit SCI2 timer
register that stores the reload values of the SCI2 timer counter, and a control register
(S2CON) that specifies S2TM operations.
[1]
SCI2 Timer Counter (low-order 8 bits of 16-bit register S2TM)
The SCI2 timer counter is an 8-bit counter. When S2TM overflows, an interrupt request
is generated, and the content of the 8-bit SCI2 timer register is loaded to SCI2 timer
counter. The count clock of S2TM is selected by the high-order 3 bits (bits 5–7) of the
8-bit SCI2 timer control register (S2CON).
[2]
SCI2 Timer Register (high-order 8 bits of 16-bit register S2TM)
The SCI2 timer register is an 8-bit register. The content of the register is loaded to the
SCI2 timer counter when the counter overflows.
The SCI2 timer counter and SCI2 timer register are accessible only as a 16-bit S2TM
which uses the SCI2 timer counter as its low-order 8 bits and the SCI2 timer register as
its high-order 8 bits.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S2TM becomes 0000H, and
the count operation stops.
[3]
SCI2 Timer Control Register (S2CON)
S2CON is an 8-bit register. The high-order 4 bits (bits 4–7) select the count clock of
S2TM, and controls the start/stop of the count operation. The low-order 2 bits (bits 2
and 3) perform interrupt related controls. The least significant bit (bit 0) specifies the
mode of S2TM.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S2CON becomes 02H, a
CLK is selected as the count clock of S2TM, the auto reload timer mode is selected,
and operation stops.
Figure 14-4 shows the configuration of S2CON.
<Description of Each Bit>
• S2MOD (bit 0)
This bit specifies the operation mode of S2TM. If this bit is "0", S2TM operates in
auto reload timer mode. If "1", S2TM operates in SCI2 baud rate generator mode.
• QSTM2 (bit 2)
This bit becomes "1" if an SCI2 timer counter overflow is generated. Since this bit
does not become "0" automatically after an interrupt process is executed, it is
necessary to set to "0" by the program.
• ESTM2 (bit 3)
This bit enables/disables an interrupt request generation by an SCI2 timer counter
overflow. If this bit is "1", generation is enabled, and if "0", generation is disabled.
14-9
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
• S2RUN (bit 4)
This bit specifies the RUN/STOP of the SCI2 timer counter. If this bit is "0", the SCI2
timer counter stops, and if "1", it runs.
• S2CK0–S2CK2 (bits 5–7)
These three bits specify the count clock of the SCI2 timer counter.
S2CON
7
6
5
4
3
2
S2CK2 S2CK1 S2CK0 S2RUN ESTM2 QSTM2
1
—
0
S2MOD
0
1
0
1
S2TM auto-reload timer mode
S2TM baud rate generator mode for SCI2
SCI2 timer counter overflow generation:no
SCI2 timer counter overflow generation:yes
SCI2 timer counter overflow interrupt
0 request generation disabled
SCI2 timer counter overflow interrupt
1 request generation enabled
0 SCI2 timer counter count operation STOP
1 SCI2 timer counter count operation RUN
S2CK
Count Clock of S2TM
2 1 0
0 0 0
Master clock (CLK)
0 0 1
1/2 CLK
0 1 0
1/2 TBCCLK
0 1 1
1/4 TBCCLK
1/8 TBCCLK
1 0 0
1 0 1
1/16 TBCCLK
1 1 0
1/64 TBCCLK
1 1 1
1/256 TBCCLK
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 14-4 Configuration of S2CON
14-10
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.6 Operation of SCI2 Timer
Basically the SCI2 timer operates as an auto reload timer. If the 8-bit SCI2 timer
counter overflows, the value of the 8-bit SCI2 timer register is loaded to the counter. At
the same time, an interrupt request by overflow is generated. The calculation of the
baud rate when SCI2 is used as the baud rate generator is shown below.
1
1
B: baud rate
¥
B = f(BRG) ¥
16
256 – D
f(BRG): S2TM count clock frequency (Hz)
D: reload value (0 to 255)
Even if the reload value is written to the SCI2 timer register, the content of the SCI2
timer counter does not change. If the SCI2 timer is used as the auto reload timer (baud
rate generator) from the beginning of an operation, it is necessary to write the same
value to both the SCI2 timer counter and SCI2 timer register through programming.
14
14-11
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.7 Configuration of SCI3 Timer (S3TM)
The SCI3 timer (S3TM) consists of an 8-bit SCI3 timer counter, an 8-bit SCI3 timer
register that stores the reload values of the SCI3 timer counter, and a control register
(S3CON) that specifies S3TM operations.
[1]
SCI3 Timer Counter (low-order 8 bits of 16-bit register S3TM)
The SCI3 timer counter is an 8-bit counter. When S3TM overflows, an interrupt request
is generated, and the content of the 8-bit SCI3 timer register is loaded to SCI3 timer
counter. The count clock of S3TM is selected by the high-order 3 bits (bits 5–7) of the
8-bit SCI3 timer control register (S3CON).
[2]
SCI3 Timer Register (high-order 8 bits of 16-bit register S3TM)
The SCI3 timer register is an 8-bit register. The content of the register is loaded to the
SCI3 timer counter when the counter overflows.
The SCI3 timer counter and SCI3 timer register are accessible only as a 16-bit S3TM
which uses the SCI3 timer counter as its low-order 8 bits and the SCI3 timer register as
its high-order 8 bits.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S3TM becomes 0000H, and
the count operation stops.
[3]
SCI3 Timer Control Register (S3CON)
S3CON is an 8-bit register. The high-order 4 bits (bits 4–7) select the count clock of
S3TM, and controls the start/stop of the count operation. The low-order 2 bits (bits 2
and 3) perform interrupt related controls. The least significant bit (bit 0) specifies the
mode of S3TM.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S3CON becomes 02H, a
CLK is selected as the count clock of S3TM, the auto reload timer mode is selected,
and operation stops.
Figure 14-5 shows the configuration of S3CON.
<Description of Each Bit>
• S3MOD (bit 0)
This bit specifies the operation mode of S3TM. If this bit is "0", S3TM operates in
auto reload timer mode. If "1", S3TM operates in SCI3 baud rate generator mode.
• QSTM3 (bit 2)
This bit becomes "1" if an SCI3 timer counter overflow is generated. Since this bit
does not become "0" automatically after an interrupt process is executed, it is
necessary to set to "0" by the program.
• ESTM3 (bit 3)
This bit enables/disables an interrupt request generation by an SCI3 timer counter
overflow. If this bit is "1", generation is enabled, and if "0", generation is disabled.
14-12
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
• S3RUN (bit 4)
This bit specifies the RUN/STOP of the SCI3 timer counter. If this bit is "0", the SCI3
timer counter stops, and if "1", it runs.
• S3CK0–S3CK2 (bits 5–7)
These three bits specify the count clock of the SCI3 timer counter.
S3CON
7
6
5
4
3
2
S3CK2 S3CK1 S3CK0 S3RUN ESTM3 QSTM3
1
—
0
S3MOD
0
1
0
1
S3TM auto-reload timer mode
S3TM baud rate generator mode for SCI3
SCI3 timer counter overflow generation:no
SCI3 timer counter overflow generation:yes
SCI3 timer counter overflow interrupt
0 request generation disabled
SCI3 timer counter overflow interrupt
1 request generation enabled
0 SCI3 timer counter count operation STOP
1 SCI3 timer counter count operation RUN
S3CK
Count Clock of S3TM
2 1 0
0 0 0
Master clock (CLK)
0 0 1
1/2 CLK
0 1 0
1/2 TBCCLK
0 1 1
1/4 TBCCLK
1/8 TBCCLK
1 0 0
1 0 1
1/16 TBCCLK
1 1 0
1/64 TBCCLK
1 1 1
1/256 TBCCLK
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 14-5 Configuration of S3CON
14-13
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.8 Operation of SCI3 Timer
Basically the SCI3 timer operates as an auto reload timer. If the 8-bit SCI3 timer
counter overflows, the value of the 8-bit SCI3 timer register is loaded to the counter. At
the same time, an interrupt request by overflow is generated. The calculation of the
baud rate when SCI3 is used as the baud rate generator is shown below.
1
1
B: baud rate
B = f(BRG) ¥
¥
16
256 – D
f(BRG): S3TM count clock frequency (Hz)
D: reload value (0 to 255)
Even if the reload value is written to the SCI3 timer register, the content of the SCI3
timer counter does not change. If the SCI3 timer is used as the auto reload timer (baud
rate generator) from the beginning of an operation, it is necessary to write the same
value to both the SCI3 timer counter and SCI3 timer register through programming.
14-14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.9 Configuration of SCI4 Timer (S4TM)
The SCI4 timer (S4TM) consists of an 8-bit SCI4 timer counter, an 8-bit SCI4 timer
register that stores the reload values of the SCI4 timer counter, and a control register
(S4CON) that specifies S4TM operations.
[1]
SCI4 Timer Counter (low-order 8 bits of 16-bit register S4TM)
The SCI4 timer counter is an 8-bit counter. When S4TM overflows, an interrupt request
is generated, and the content of the 8-bit SCI4 timer register is loaded to SCI4 timer
counter. The count clock of S4TM is selected by the high-order 3 bits (bits 5–7) of the
8-bit SCI4 timer control register (S4CON).
[2]
SCI4 Timer Register (high-order 8 bits of 16-bit register S4TM)
The SCI4 timer register is an 8-bit register. The content of the register is loaded to the
SCI4 timer counter when the counter overflows.
The SCI4 timer counter and SCI4 timer register are accessible only as a 16-bit S4TM
which uses the SCI4 timer counter as its low-order 8 bits and the SCI4 timer register as
its high-order 8 bits.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S4TM becomes 0000H, and
the count operation stops.
[3]
SCI4 Timer Control Register (S4CON)
S4CON is an 8-bit register. The high-order 4 bits (bits 4–7) select the count clock of
S4TM, and controls the start/stop of the count operation. The low-order 2 bits (bits 2
and 3) perform interrupt related controls. The least significant bit (bit 0) specifies the
mode of S4TM.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S4CON becomes 02H, a
CLK is selected as the count clock of S4TM, the auto reload timer mode is selected,
and operation stops.
Figure 14-6 shows the configuration of S4CON.
<Description of Each Bit>
• S4MOD (bit 0)
This bit specifies the operation mode of S4TM. If this bit is "0", S4TM operates in
auto reload timer mode. If "1", S4TM operates in SCI4 baud rate generator mode.
• QSTM4 (bit 2)
This bit becomes "1" if an SCI4 timer counter overflow is generated. Since this bit
does not become "0" automatically after an interrupt process is executed, it is
necessary to set to "0" by the program.
• ESTM4 (bit 3)
This bit enables/disables an interrupt request generation by an SCI4 timer counter
overflow. If this bit is "1", generation is enabled, and if "0", generation is disabled.
14-15
14
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
• S4RUN (bit 4)
This bit specifies the RUN/STOP of the SCI4 timer counter. If this bit is "0", the SCI4
timer counter stops, and if "1", it runs.
• S4CK0–S4CK2 (bits 5–7)
These three bits specify the count clock of the SCI4 timer counter.
S4CON
7
6
5
4
3
2
S4CK2 S4CK1 S4CK0 S4RUN ESTM4 QSTM4
1
—
0
S4MOD
0
1
0
1
S4TM auto-reload timer mode
S4TM baud rate generator mode for SCI4
SCI4 timer counter overflow generation:no
SCI4 timer counter overflow generation:yes
SCI4 timer counter overflow interrupt
0 request generation disabled
SCI4 timer counter overflow interrupt
1 request generation enabled
0 SCI4 timer counter count operation STOP
1 SCI4 timer counter count operation RUN
S4CK
Count Clock of S4TM
2 1 0
0 0 0
Master clock (CLK)
0 0 1
1/2 CLK
0 1 0
1/2 TBCCLK
0 1 1
1/4 TBCCLK
1/8 TBCCLK
1 0 0
1 0 1
1/16 TBCCLK
1 1 0
1/64 TBCCLK
1 1 1
1/256 TBCCLK
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 14-6 Configuration of S4CON
14-16
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14.10 Operation of SCI4 Timer
Basically the SCI4 timer operates as an auto reload timer. If the 8-bit SCI4 timer
counter overflows, the value of the 8-bit SCI4 timer register is loaded to the counter. At
the same time, an interrupt request by overflow is generated. The calculation of the
baud rate when SCI4 is used as the baud rate generator is shown below.
1
1
B: baud rate
B = f(BRG) ¥
¥
16
256 – D
f(BRG): S4TM count clock frequency (Hz)
D: reload value (0 to 255)
Even if the reload value is written to the SCI4 timer register, the content of the SCI4
timer counter does not change. If the SCI4 timer is used as the auto reload timer (baud
rate generator) from the beginning of an operation, it is necessary to write the same
value to both the SCI4 timer counter and SCI4 timer register through programming.
14
14-17
MSM66591/ML66592 User's Manual
Chapter 14 Baud Rate Generator Functions
14-18
Chapter 15
Serial Port Functions
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15. Serial Port Functions
The MSM66591/ML66592 have five channels of serial ports (SCI0, SCI1, SCI2, SCI3,
SCI4). Each has a dedicated baud rate generator, and the communication speeds can
be set independently.
Each has a transmit and receive side. The communication mode for SCI0, SCI2, SCI3,
and SCI4 is UART mode only, and that for SCI1 is UART mode and synchronous
mode. In UART mode, serial data transfer is performed by the controlled start and stop
bits. In synchronous mode, a serial data transfer is performed synchronizing with the
controlled shift clock.
Each UART mode and synchronous mode has a normal mode (transfer bit length is
fixed to 8 bits), and a multiprocessor communication mode (multiprocessor system is
configured by the serial bus).
In addition, UART mode has on the receive side a single buffer mode and a 4-stage
buffer mode. Single buffer mode has a single stage of receive buffer, and 4-stage buffer
mode has four stages of receive buffers (ring buffer type).
Synchronous mode has a master mode to generate the internal MSM66591/ML66592
shift clock, and a slave mode to receive the shift clock supply that is external.
Table 15-1 lists the serial port modes.
Table 15-1 Serial Port Mode
UART Mode
Transmit
Side Synchronous Mode
(Function of SCI1)
Serial
Port
UART Mode
Receive
Side
Synchronous Mode
(Function of SCI1)
Normal Mode
Multiprocessor Communication Mode
Master Mode
Normal Mode
Slave Mode
Master Mode
Multiprocessor
Communication Mode
Slave Mode
Normal Mode
Multiprocessor
Single Buffer Mode
Communication
Mode
Normal Mode
Multiprocessor
4-Stage Buffer Mode
Communication
(receive only)
Mode
Master Mode
Normal Mode
Slave Mode
Master Mode
Multiprocessor
Communication Mode
Slave Mode
[Note]
Synchronous mode is only provided for SCI1, and not provided for SCI0, SCI2, SCI3, and
SCI4.
4-stage buffer mode is provided for SCI0, SCI2, SCI3, and SCI4; it is not provided for SCI1.
15-1
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.1 Configuration of Serial Ports
SCI0, SCI1, SCI2, SCI3, and SCI4 have the same basic configuration. They consist of:
• baud rate generators to control the transfer speed (S0TM, S1TM, S2TM, S3TM,
S4TM: see Chapter 14)
• control registers to control transmit/receive operations (SR0CON, SR1CON,
SR2CON, SR3CON, SR4CON, ST0CON, ST1CON, ST2CON, ST3CON, ST4CON)
• buffer registers to set transmit/receive data (S0BUFm, S1BUF, S2BUFm, S3BUFm,
S4BUFm: m = 0–3)
• status registers (S0STATm, S1STAT, S2STATm, S3STATm, S4STATm: m = 0–2)
• a transmit register and a receive register
Figure 15-1 shows the configuration of SCI0, SCI2, SCI3, and SCI4. Figure 15-2 shows
the configuration of SCI1. Table 15-2 lists the serial port control SFRs.
RXDn (n = 0: P6_6)
(n = 2: P9_0)
(n = 3: P9_2)
(n = 4: P9_4)
TXDn (n = 0: P6_7)
(n = 2: P9_1)
(n = 3: P9_3)
(n = 4: P9_5)
Transmit
Register
Receive
Register
SRnCON SnBUF0 SnBUF1 SnBUF2 SnBUF3 SnSTAT0 SnSTAT1 SnSTAT2 STnCON SnBUF0
8-Bit Timer
SnTM
Internal Bus
n = 0, 1, 2, 3, 4
Figure 15-1 Configuration of SCIn (n = 0, 2, 3, 4)
RXD1 (P6_2)
TXD1 (P6_3)
RXC1 (P6_4)
Receive
Register
SR1CON
S1BUF
Transmit
Register
S1STAT
ST1CON
S1BUF
TXC1 (P6_5)
8-Bit Timer
S1TM
Internal Bus
Figure 15-2 Configuration of SCI1
15-2
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
Table 15-2 Serial Port Control SFRs
Address [H]
0026
Name
SCI1 Transmit/Receive Buffer Register
Abbreviated Abbreviated
R/W 8/16-Bit
Name (BYTE) Name (WORD)
Operation
S1BUF
—
0027
SCI1 Status Register
S1STAT
—
0028
SCI0 Transmit/Receive Buffer Register 0
S0BUF0
—
0029
SCI0 Receive Buffer Register 1
S0BUF1
—
002A
SCI0 Receive Buffer Register 2
S0BUF2
—
Reset
State [H]
Undefined
R/W
00
Undefined
Undefined
R
Undefined
Undefined
002B
SCI0 Receive Buffer Register 3
S0BUF3
—
002C
SCI2 Transmit/Receive Buffer Register 0
S2BUF0
—
002D
SCI2 Receive Buffer Register 1
S2BUF1
—
002E
SCI2 Receive Buffer Register 2
S2BUF2
—
002F
SCI2 Receive Buffer Register 3
S2BUF3
—
0030
SCI3 Transmit/Receive Buffer Register 0
S3BUF0
—
0031
SCI3 Receive Buffer Register 1
S3BUF1
—
0032
SCI3 Receive Buffer Register 2
S3BUF2
—
0033
SCI3 Receive Buffer Register 3
S3BUF3
—
0034
SCI4 Transmit/Receive Buffer Register 0
S4BUF0
—
0035
SCI4 Receive Buffer Register 1
S4BUF1
—
0036
SCI4 Receive Buffer Register 2
S4BUF2
—
0037
SCI4 Receive Buffer Register 3
S4BUF3
—
0038
SCI0 Status Register 0
S0STAT0
—
0039✩
SCI0 Interrupt Control Register
SR0INT
—
01
003A
SCI2 Status Register 0
S2STAT0
—
00
003B✩
SCI2 Interrupt Control Register
003C
SCI3 Status Register 0
003D✩
SCI3 Interrupt Control Register
003E
SCI4 Status Register 0
003F✩
SCI4 Interrupt Control Register
SR4INT
—
01
0130✩
SCI0 Transmit Control Register
ST0CON
—
8A
0131✩
SCI1 Transmit Control Register
ST1CON
—
0132✩
SCI2 Transmit Control Register
ST2CON
—
8A
0133✩
SCI3 Transmit Control Register
ST3CON
—
8A
0134✩
SCI4 Transmit Control Register
ST4CON
—
8A
0138✩
SCI0 Receive Control Register
SR0CON
—
12
0139✩
SCI1 Receive Control Register
SR1CON
—
08
013A✩
SCI2 Receive Control Register
SR2CON
—
12
Undefined
R/W
Undefined
R
Undefined
Undefined
Undefined
R/W
Undefined
Undefined
R
Undefined
Undefined
R/W
Undefined
Undefined
R
8
Undefined
00
SR2INT
—
01
S3STAT0
—
00
SR3INT
—
01
S4STAT0
—
00
R/W
88
013B✩
SCI3 Receive Control Register
SR3CON
—
12
013C✩
SCI4 Receive Control Register
SR4CON
—
12
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
15-3
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
Table 15-2 Serial Port Control SFRs (continued)
Address [H]
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Name (BYTE) Name (WORD)
Operation
Reset
State [H]
0190✩
SCI0 Status Register 1
S0STAT1
—
11
0191✩
SCI0 Status Register 2
S0STAT2
—
C1
0192✩
SCI2 Status Register 1
S2STAT1
—
11
0193✩
SCI2 Status Register 2
S2STAT2
—
C1
0194✩
SCI3 Status Register 1
S3STAT1
—
11
0195✩
SCI3 Status Register 2
S3STAT2
—
C1
0196✩
SCI4 Status Register 1
S4STAT1
—
11
0197✩
SCI4 Status Register 2
S4STAT2
—
C1
R/W
8
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
15-4
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.2 Serial Port Control Registers
15.2.1 Control Registers for SCI0
[1] SCI0 Transmit Control Register (ST0CON)
ST0CON is a 5-bit register that controls SCI0 transmit operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ST0CON becomes 8AH, the
SCI0 transmit operation is in UART normal mode, at 8-bit data length, 2 stop bits, and
no parity.
When changing the contents of ST0CON, do so after transmission is completed. If
ST0CON is changed before a transmission is completed, the current and future transmission is not normally performed.
The 4-stage buffer mode is not provided for the transmit side.
Figure 15-3 shows the configuration of ST0CON.
<Description of Each Bit>
• ST0MD (bit 0)
This bit specifies the transmit operation mode of SCI0.
• ST0MPC (bit 2)
If SCI0 transmits in UART multiprocessor communication mode, this bit specifies
which is transmitted, data or an address. The transmit data length is 8 bits. If this bit
is "0", data is transmitted, and if "1", an address is transmitted.
15
• ST0STB (bit 4)
This bit specifies the stop bit of SCI0 to either 1 stop bit or 2 stop bits. If this bit is "0",
SCI0 transmits at 2 stop bits, and if "1", SCI0 transmits at 1 stop bit.
• ST0PEN (bit 5)
This bit specifies whether a parity bit is included when SCI0 transmits. If this bit is
"0", SCI0 transmits without a parity bit, and if "1", SCI0 transmits with a parity bit.
• ST0EVN (bit 6)
This bit specifies the logic of the parity bit when SCI0 transmits. If this bit is "0", an
odd parity is selected, and if "1", an even parity is selected.
15-5
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
ST0CON
7
—
6
5
4
ST0EVN ST0PEN ST0STB
3
2
1
0
—
ST0MPC
—
ST0MD
Multiprocessor
communication
mode
0 SCI0 UART normal mode
1 SCI0 UART multiprocessor communication mode
0 Data transmitted
1 Address transmitted
0 2 stop bits
1 1 stop bit
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-3 Configuration of ST0CON
15-6
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[2]
SCI0 Receive Control Register (SR0CON)
SR0CON is a 5-bit register that controls SCI0 receive operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR0CON becomes 12H, the
SCI0 operation is in UART normal mode, at 8-bit data length, no parity, and receive is
disabled.
When changing the contents of SR0CON, do so after resetting SR0REN (bit 7) to "0". If
the SR0CON is changed before resetting SR0REN (bit 7) to "0", the current and future
receive is not normally performed.
Figure 15-4 shows the configuration of SR0CON.
<Description of Each Bit>
• SR0MD (bit 0)
This bit specifies the receive operation mode of SCI0.
• SR0MPC (bit 2)
If SCI0 receives in UART multiprocessor communication mode, this bit specifies
which is received, data or an address. The receive data length is 8 bits. If this bit is
"0", data is received, and if "1", an address is received.
• SR0EXP (bit 3)
This bit specifies the SCI0 receive buffer mode. If this bit is "0", only S0BUF0 is
enabled as a receive buffer (single buffer mode), and if "1", S0BUF0, S0BUF1,
S0BUF2, and S0BUF3 are enabled as a receive buffer (4-stage buffer mode).
During the 4-stage buffer mode, the receive buffers operate as a ring buffer.
• SR0PEN (bit 5)
This bit specifies whether a parity bit is included when SCI0 receives. If this bit is "0",
SCI0 receives without a parity bit, and if "1", SCI0 receives with a parity bit.
• SR0EVN (bit 6)
This bit specifies the logic of the parity bit when SCI0 receives. If this bit is "0", SCI0
receives at odd parity, and if "1", SCI0 receives at even parity.
• SR0REN (bit 7)
This bit specifies enable/disable of SCI0 receive. If this bit is "0", SCI0 receive is
disabled, and if "1", SCI0 receive is enabled.
15-7
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
SR0CON
7
6
5
SR0REN SR0EVN SR0PEN
4
—
3
2
SR0EXP SR0MPC
1
0
—
SR0MD
Multiprocessor
communication
mode
0 SCI0 UART normal mode
1 SCI0 UART multiprocessor communication mode
0 Data is received
1 Address is received
0 Single buffer mode
1 4-stage buffer mode (receive side)
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
0 SCI0 receive disabled
1 SCI0 receive enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-4 Configuration of SR0CON
15-8
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[3]
SCI0 Transmit/Receive Buffer Register (S0BUF0)
S0BUF0 is an 8-bit register that holds transmit/receive data during a serial port transmit/
receive operation. S0BUF0 has a double structure, in which the contents are different in
read/write. If in read, S0BUF0 functions as a receive buffer, and if in write, S0BUF0
functions as a transmit buffer.
When a receive operation ends, the content of the receive register is transferred to the
S0BUF0 receive buffer, and a receive interrupt request is generated at the same time.
The content of the S0BUF0 receive buffer is held until the next receive operation ends.
When receive mode is in UART multiprocessor communication mode, and if receive
data is ignored, the content of S0BUF0 is not updated even at completion of the receive
operation, and a receive interrupt request is not generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S0BUF0 becomes undefined.
[4]
SCI0 Receive Buffer Registers (S0BUF1, S0BUF2, S0BUF3)
S0BUF1, S0BUF2, and S0BUF3 are 8-bit registers that store valid received data when
the SR0EXP bit of SR0CON is set to "1" (4-stage buffer mode).
These registers are read-only and cannot be written to. During the 4-stage buffer mode,
at the completion of each 1-byte reception, the contents of the receive register are
transferred to a receive buffer register in the order of S0BUF0, S0BUF1, S0BUF2,
S0BUF3, S0BUF0, etc. At the same time, a receive interrupt request is generated.
(Ring Buffer Type)
When the receive mode is the UART multiprocessor communication mode and the
received data is ignored, the contents of S0BUF1, S0BUF2, and S0BUF3 will not be
updated and a receive interrupt request will not be generated even after completion of a
receive operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), the contents of S0BUF1,
S0BUF2, and S0BUF3 are undefined.
[5]
SCI0 Transmit and Receive Registers
The SCI0 transmit and receive registers are two 8-bit shift registers that actually perform shift operations during a transmit/receive operation.
The transmit and receive registers and the transmit/receive buffer registers have a
double structure. If a receive operation ends, during single buffer mode the data received by the receive register is transferred to S0BUF0, and during 4-stage buffer mode
it is transferred to S0BUF0, S0BUF1, S0BUF2, and S0BUF3 in this order, and a receive
interrupt request is generated.
The transmit and receive registers cannot be read/written by the program.
15-9
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[6]
SCI0 Status Register 0 (S0STAT0)
The high-order 4 bits of S0STAT0 is the transmit-ready/receive-ready interrupt request
control register of the serial port. The low-order 4 bits of S0STAT0 is the register that
holds the status (normal/abnormal) when the serial port receive operation is completed.
The low-order 4 bits of S0STAT0 are updated when receive ends. Once S0STAT0 is
set to "1" ("1": error occurred), it is not reset to "0" even if an error does not occur when
the next receive ends. Therefore reset to "0" any bits that are "1" of the low-order 4 bits
of S0STAT0 by the program when a receive ends.
The contents of S0BUF0 must be read before resetting OERR00 (bit 1) of the low-order
4 bits of S0STAT0. Otherwise, the OERR00 flag is set to "1" again irrespective of
occurrence of an overrun error in next receive operation.
During the 4-stage buffer mode, an overrun error flag, parity error flag, and multiprocessor communication flag are provided for each buffer. However, with a 4-stage
buffer, only 1 bit is provided for the framing error flag. Therefore, the framing error flag
will be set at the time when even 1 byte of the received data has a framing error.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S0STAT0 becomes 00H.
Figure 15-5 shows the configuration of S0STAT0.
15-10
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Description of Each Bit>
• FERR0 (bit 0)
If the stop bit received by SCI0 is "0", this bit is set to "1" interpreting that frame
synchronization is incorrect. (Framing error)
• OERR00 (bit 1)
This bit is set to "1" if the data transferred to S0BUF0 for the previous reception has
not yet been read by the CPU when the receive operation of SCI0 ends. However,
new receive data is loaded to S0BUF0 even if this occurs. (Overrun error)
• PERR00 (bit 2)
The parity of data received by SCI0 and the parity bit appended to and transferred
with data are compared, and if they do not match, this bit is set to "1". (Parity error)
• MERR00 (bit 3)
This bit is set to "1" if an address is sent while receiving data in SCI0 UART multiprocessor communication mode. This means that if the MPC bit (of the data that is
transferred when the SR0MPC bit of SR0CON is "0") is "1", MERR00 is set, interpreting this as a multiprocessor communication error.
• RV0IE0 (bit 4)
This bit enables/disables the generation of an SCI0 receive ready interrupt request. If
this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV0IRQ0 (bit 5)
This bit is set to "1" if an SCI0 receive ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
• TR0IE (bit 6)
This bit enables/disables the generation of an SCI0 transmit ready interrupt request.
If this bit is "1", generation is enabled, and if "0", generation is disabled.
• TR0IRQ (bit 7)
This bit is set to "1" if an SCI0 transmit ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
15-11
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
S0STAT0
7
6
5
4
3
2
1
0
TR0IRQ TR0IE RV0IRQ0 RV0IE0 MERR00 PERR00 OERR00 FERR0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
SCI0 framing error:no
SCI0 framing error:yes
S0BUF0 overrun error:no
S0BUF0 overrun error:yes
S0BUF0 parity error:no
S0BUF0 parity error:yes
S0BUF0 multiprocessor communication error:no
S0BUF0 multiprocessor communication error:yes
S0BUF0 receive ready interrupt request generation:disabled
S0BUF0 receive ready interrupt request generation:enabled
S0BUF0 receive ready generation:no
S0BUF0 receive ready generation:yes
SCI0 transmit ready interrupt request generation:disabled
SCI0 transmit ready interrupt request generation:enabled
SCI0 transmit ready generation:no
SCI0 transmit ready generation:yes
Figure 15-5 Configuration of S0STAT0
15-12
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[7]
SCI0 Status Register 1 (S0STAT1)
If the SR0EXP bit of SR0CON is set to "1" (4-stage buffer mode), the 6-bit S0STAT1
register stores the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S0BUF1, the lower 3 bits of S0STAT1 (bits 1–3) are updated when reception of that
data is complete; if there is an error in the receive data transferred to S0BUF2, the
upper 3 bits of S0STAT1 (bits 5–7) are updated when reception of that data is complete. Once S0STAT1 is set to "1" ("1": error occurred), it is not reset to "0" even if that
error has not occurred at completion of the next reception. Therefore, with the program,
reset to "0" any S0STAT1 bits that are "1" after reception is complete. Read the contents of S0BUF1 and S0BUF2 before resetting the OERR01 and OERR02 flags in
S0STAT1. If the contents of S0BUF1 and S0BUF2 are not read, the OERR01 and
OERR02 flags will be set to "1" again regardless of whether an overrun error occurs in
the next receive operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S0STAT1 becomes 11H.
Figure 15-6 shows the configuration of S0STAT1.
<Description of Each Bit>
• OERR01 (bit 1)
When an SCI0 receive operation is complete and the receive data is transferred into
S0BUF1, OERR01 is set to "1" if the data transferred into S0BUF1 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S0BUF1 even if OERR01 has been set. (Overrun error)
• PERR01 (bit 2)
With SCI0, the parity of data received by S0BUF1 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR01 is set to
"1". (Parity error)
• MERR01 (bit 3)
During the SCI0 UART multiprocessor communication mode, MERR01 is set to "1" if
an address is transmitted while S0BUF1 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR0MPC bit of SR0CON is "0") is
"1", MERR01 is set to "1", interpreting this as a multiprocessor communication error.
• OERR02 (bit 5)
When an SCI0 receive operation is complete and the receive data is transferred into
S0BUF2, OERR02 is set to "1" if the data transferred into S0BUF2 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S0BUF2 even if OERR02 has been set. (Overrun error)
15-13
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
• PERR02 (bit 6)
With SCI0, the parity of data received by S0BUF2 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR02 is set to
"1". (Parity error)
• MERR02 (bit 7)
During the SCI0 UART multiprocessor communication mode, MERR02 is set to "1" if
an address is transmitted while S0BUF2 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR0MPC bit of SR0CON is "0") is
"1", MERR02 is set to "1", interpreting this as a multiprocessor communication error.
S0STAT1
7
6
5
MERR02 PERR02 OERR02
4
—
3
2
1
MERR01 PERR01 OERR01
0
—
0 S0BUF1 overrun error: no
1 S0BUF1 overrun error: yes
0 S0BUF1 parity error: no
1 S0BUF1 parity error: yes
0 S0BUF1 multiprocessor communication error: no
1 S0BUF1 multiprocessor communication error: yes
0 S0BUF2 overrun error: no
1 S0BUF2 overrun error: yes
0 S0BUF2 parity error: no
1 S0BUF2 parity error: yes
0 S0BUF2 multiprocessor communication error: no
1 S0BUF2 multiprocessor communication error: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-6 Configuration of S0STAT1
15-14
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[8]
SCI0 Status Register 2 (S0STAT2)
If the SR0EXP bit of SR0CON is set to "1" (4-stage buffer mode), the lower 3 bits of
S0STAT2 store the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed. The upper 2 bits of S0STAT2 monitor the counter that
indicates the receive buffer into which receive data will be transferred at completion of
the next receive operation.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S0BUF3, the lower 3 bits of S0STAT2 (bits 1–3) are updated when reception of that
data is complete. Once the lower 3 bits of S0STAT2 are set to "1" ("1": error occurred),
they are not reset to "0" even if that error has not occurred at completion of the next
reception. Therefore, with the program, reset to "0" any bits that are "1" of the lower 3
bits of S0STAT2 after reception is complete. Read the contents of S0BUF3 before
resetting the OERR03 flag in the lower 3 bits of S0STAT2. If the contents of S0BUF3
are not read, the OERR03 flag will be set to "1" again regardless of whether an overrun
error occurs in the next receive operation.
Bits 4 and 5 of S0STAT2 are read-only and cannot be written to. During the 4-stage
buffer mode, the next receive buffer into which data will be transferred (S0BUF0,
S0BUF1, S0BUF2, S0BUF3) can be verified by reading bits 4 and 5 of S0STAT2.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S0STAT2 becomes C1H.
Figure 15-7 shows the configuration of S0STAT2.
<Description of Each Bit>
15
• OERR03 (bit 1)
When an SCI0 receive operation is complete and the receive data is transferred into
S0BUF3, OERR03 is set to "1" if the data transferred into S0BUF3 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S0BUF3 even if OERR03 has been set. (Overrun error)
• PERR03 (bit 2)
With SCI0, the parity of data received by S0BUF3 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR03 is set to
"1". (Parity error)
• MERR03 (bit 3)
During the SCI0 UART multiprocessor communication mode, MERR03 is set to "1" if
an address is transmitted while S0BUF3 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR0MPC bit of SR0CON is "0") is
"1", MERR03 is set to "1", interpreting this as a multiprocessor communication error.
• BFCU00 (bit 4), BFCU01 (bit 5)
During the 4-stage buffer mode, BFCU00 and BFCU01 monitor the buffer counter
that indicates the receive buffer into which receive data will be transferred (S0BUF0,
S0BUF1, S0BUF2, S0BUF3) at completion of the next receive operation. BFCU00
and BFCU01 are read-only and cannot be written to.
15-15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
S0STAT2
7
6
—
—
5
4
3
2
1
BFCU01 BFCU00 MERR03 PERR03 OERR03
0
—
0 S0BUF3 overrun error: no
1 S0BUF3 overrun error: yes
0 S0BUF3 parity error: no
1 S0BUF3 parity error: yes
0 S0BUF3 multiprocessor communication error: no
1 S0BUF3 multiprocessor communication error: yes
BFCU0 Buffer counter monitor during SCI0
1 0 4-stage buffer mode
0
0
Write to S0BUF0 next
0
1
Write to S0BUF1 next
1
0
Write to S0BUF2 next
1
1
Write to S0BUF3 next
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-7 Configuration of S0STAT2
15-16
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[9]
SCI0 Interrupt Control Register (SR0INT)
When SCI0 is in the 4-stage buffer mode (SR0EXP bit of SR0CON is "1"), the 7-bit
SR0INT register controls the receive-ready interrupt requests for each receive buffer
(S0BUF0 to S0BUF3).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR0INT becomes 01H.
RV0IRQ0 (bit 4) of SR0INT monitors RV0IRQ0 (bit 3) of S0STAT0. During the 4-stage
buffer mode, by reading SR0INT once, it is possible to verify which buffer has generated
a receive-ready. This bit is read-only and writes are ignored. To clear (write to) this bit,
write to RV0IRQ0 (bit 5) of S0STAT0.
Figure 15-8 shows the configuration of SR0INT.
<Description of Each Bit>
• RV0IE1 (bit 1)
This bit enables or disables the generation of SCI0 S0BUF1 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV0IE2 (bit 2)
This bit enables or disables the generation of SCI0 S0BUF2 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV0IE3 (bit 3)
This bit enables or disables the generation of SCI0 S0BUF3 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV0IRQ0 (bit 4)
This bit monitors RV0IRQ0 of S0STAT0. (Read-only)
This bit is set to "1" when an SCI0 S0BUF0 receive-ready is generated. To clear this
bit to "0", clear RV0IRQ0 of S0STAT0.
• RV0IRQ1 (bit 5)
This bit is set to "1" when an SCI0 S0BUF1 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI0 interrupt is processed, so clear it by
the program.
• RV0IRQ2 (bit 6)
This bit is set to "1" when an SCI0 S0BUF2 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI0 interrupt is processed, so clear it by
the program.
• RV0IRQ3 (bit 7)
This bit is set to "1" when an SCI0 S0BUF3 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI0 interrupt is processed, so clear it by
the program.
15-17
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
SR0INT
7
6
5
4
3
2
1
RV0IRQ3 RV0IRQ2 RV0IRQ1 RV0IRQ0 RV0IE3 RV0IE2 RV0IE1
0
—
0 S0BUF1 receive-ready interrupt request generation: disabled
1 S0BUF1 receive-ready interrupt request generation: enabled
0 S0BUF2 receive-ready interrupt request generation: disabled
1 S0BUF2 receive-ready interrupt request generation: enabled
0 S0BUF3 receive-ready interrupt request generation: disabled
1 S0BUF3 receive-ready interrupt request generation: enabled
0 S0BUF0 receive-ready generation: no (see note)
1 S0BUF0 receive-ready generation: yes (see note)
0 S0BUF1 receive-ready generation: no
1 S0BUF1 receive-ready generation: yes
0 S0BUF2 receive-ready generation: no
1 S0BUF2 receive-ready generation: yes
0 S0BUF3 receive-ready generation: no
1 S0BUF3 receive-ready generation: yes
[Note]
RV0IRQ0 is read-only. To clear, write to the
RV0IRQ0 bit of S0STAT0.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-8 Configuration of SR0INT
15-18
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.2.2 Control Registers for SCI1
[1]
SCI1 Transmit Control Register (ST1CON)
ST1CON is a 6-bit register that controls SCI1 transmit operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ST1CON becomes 88H, the
SCI1 transmit operation is in UART normal mode, at 8-bit data length, 2 stop bits, and
no parity.
When changing the contents of ST1CON, do so after transmission is completed. If
ST1CON is changed before a transmission is completed, the current and future transmission is not normally performed.
Figure 15-9 shows the configuration of ST1CON.
<Description of Each Bit>
• ST1MD0, 1 (bits 0 , 1)
These bits specify the transmit operation mode of SCI1.
• ST1MPC (bit 2)
If SCI1 transmits in UART/synchronous multiprocessor communication mode, bit 2
(ST1MPC) specifies which is transmitted, data or an address. The transmit data
length is fixed at 8 bits. If bit 2 (ST1MPC) is "0", data is transmitted, and if "1", an
address is transmitted.
• ST1STB/ST1MST (bit 4)
The function of bit 4 differs depending on the operation mode specified by bit 1 and
0. When SCI1 transmits in UART mode, bit 4 (ST1STB) specifies the stop bit of SCI1
either as a 1 stop bit or 2 stop bits. If bit 4 (ST1STB) is "0", SCI1 transmits at 2 stop
bits, and if "1", SCI1 transmits at 1 stop bit. When SCI1 transmits in synchronous
mode, bit 4 (ST1MST) selects slave mode/master mode. If bit 4 (ST1MST) is "0",
slave mode is selected, and if "1", master mode is selected.
• ST1PEN (bit 5)
This bit specifies whether a parity bit is included when SCI1 transmits. If this bit is
"0", SCI1 transmits without a parity bit, and if "1", SCI1 transmits with a parity bit.
• ST1EVN (bit 6)
This bit specifies the logic of a parity bit when SCI1 transmits. If this bit is "0", SCI1
transmits at odd parity, and if "1", SCI1 transmits at even parity.
15-19
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
ST1CON
7
—
6
5
ST1EVN ST1PEN
4
3
ST1STB
ST1MST
—
2
1
0
ST1MPC ST1MD1 ST1MD0
ST1MD
SCI1 Transmit Operation Mode
1
0
0
0 UART normal mode
0
1 UART multiprocessor communication mode
1
0 Synchronous normal mode
Synchronous multiprocessor
1
1 communication mode
Multiprocessor
communication
mode (ST1MPC)
0 Data transmit
1 Address transmit
UART mode
(ST1STB)
0 2 stop bits
1 1 stop bit
Synchronous
mode
(ST1MST)
0 Transmit in slave mode
1 Transmit in master mode
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-9 Configuration of ST1CON
15-20
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[2]
SCI1 Receive Control Register (SR1CON)
SR1CON is 7-bit register that controls the SCI1 receive operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR1CON becomes 08H, the
SCI1 receive operation is in UART normal mode, at 8-bit data length, no parity, and
receive is disabled.
When changing the contents of SR1CON, do so after resetting SR1REN (bit 7) to "0". If
SR1CON is changed before resetting SR1REN to "0", the current and future receive is
not normally performed.
Figure 15-10 shows the configuration of SR1CON.
<Description of Each Bit>
• SR1MD0, 1 (bits 0, 1)
These two bits specify the receive operation mode of SCI1.
• SR1MPC (bit 2)
If SCI1 receives in UART/synchronous multiprocessor communication mode, bit 2
(SR1MPC) specifies which is received, data or an address. The receive data is 8-bit
data length.
If bit 2 (SR1MPC) is "0", data is received, and if "1", an address is received.
• SR1MST (bit 4)
The function of bit 4 differs depending on the operation mode specified by bits 1 and
0. When SCI1 receives in UART mode, bit 4 is meaningless. When SCI1 receives in
synchronous mode, slave mode is selected if bit 4 is "0", and master mode is selected if bit 4 is "1".
• SR1PEN (bit 5)
This bit specifies whether a parity bit is included when SCI1 receives. If this bit is "0",
SCI1 receives without a parity bit, and if "1", SCI1 receives with a parity bit.
• SR1EVN (bit 6)
This bit specifies the logic of a parity bit when SCI1 receives. If this bit is "0", SCI1
receives at odd parity, and if "1", SCI1 receives at even parity.
• SR1REN (bit 7)
This bit specifies enable/disable of SCI1 receive. If this bit is "0", SCI1 receive is
disabled, and if "1", SCI1 receive is enabled.
15-21
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
SR1CON
7
6
5
4
3
SR1REN SR1EVN SR1PEN SR1MST
—
2
1
0
SR1MPC SR1MD1 SR1MD0
Multiprocessor
communication
mode
Synchronous mode
SR1MD
SCI1 Receive Operation Mode
1
0
0
0 UART normal mode
0
1 UART multi-processor communication mode
1
0 Synchronous normal mode
Synchronous multiprocessor
1
1 communication mode
0 Data receive
1 Address receive
0 Receive in slave mode
1 Receive in master mode
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
0 SCI1 receive disable
1 SCI1 receive enable
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-10 Configuration of SR1CON
15-22
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[3]
SCI1 Transmit/Receive Buffer Register (S1BUF)
S1BUF is an 8-bit register that holds transmit/receive data during a serial port transmit/
receive operation. S1BUF has a double structure, in which the content is different in
READ/WRITE. If in read, S1BUF functions as a receive buffer, and if in write, S1BUF
functions as a transmit buffer.
When a receive operation ends, the content of the receive register is transferred to the
S1BUF receive buffer, and a receive interrupt request is generated at the same time.
The content of the S1BUF receive buffer is held until the next receive operation ends.
When receive mode is in UART/synchronous multiprocessor communication mode, if
data has been received instead of reception of an address and if the receive data is
ignored, the content of S1BUF is not updated even at completion of the receive operation, also a receive interrupt request is not generated.
The 4-stage buffer mode is not provided for SCI1.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S1BUF becomes undefined.
[4]
SCI1 Transmit and Receive Registers
The SCI1 transmit and receive registers are two 8-bit shift registers that actually perform shift operations during a transmit/receive operation.
The transmit and receive registers and transmit/receive buffer register (S1BUF) have a
double structure. When a receive operation ends, the data received by the receive
register is transferred to S1BUF, and a receive interrupt request is generated.
The transmit and receive registers cannot be read/written by the program.
[5]
SCI1 Status Register (S1STAT)
The high-order 4 bits of S1STAT is the transmit-ready/receive-ready interrupt request
control register of the serial port. The low-order 4 bits of S1STAT is the register that
holds the status (normal/abnormal) when the serial port receive operation is completed.
The low-order 4-bits of S1STAT are updated when receive ends. Once S1STAT is set
("1": error occurred), it is not reset to "0" even if an error does not occur when the next
receive ends. Therefore reset to "0" any bits that are "1" of the low-order 4 bits of
S1STAT by the program when a receive ends.
The contents of S1BUF must be read before resetting OERR1 (bit 1) of the low-order 4
bits of S1STAT to "0". Otherwise, the OERR1 flag is set to "1" again irrespective of
occurrence of an overrun error in next receive operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S1STAT becomes 00H.
Figure 15-11 shows the configuration of S1STAT.
15-23
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Description of Each Bit>
• FERR1 (bit 0)
If the stop bit received by SCI1 is "0", this bit is set to "1" interpreting that frame
synchronization is incorrect. (Framming error)
• OERR1 (bit 1)
This bit is set to "1" if the previously received data is not read by the CPU when the
receive operation of SCI1 ends. However, new receive data is loaded to S1BUF even
if this occurs. (Overrun error)
• PERR1 (bit 2)
The parity of data received by SCI1 and the parity bit appended to and transferred
with data are compared, and if they do not match, this bit is set to "1". (Parity error)
• MERR1 (bit 3)
This bit is set to "1" if an address is sent while receiving data in SCI1 UART/synchronous multiprocessor communication mode. This means that if the MPC bit (of the
data that is transferred when the SR1MPC bit of SR1CON is "0") is "1", MERR1 is
set, interpreting this as a multiprocessor communication error.
• RV1IE (bit 4)
This bit enables/disables the generation of an SCI1 receive ready interrupt request. If
this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV1IRQ (bit 5)
This bit is set to "1" if an SCI1 receive ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
• TR1IE (bit 6)
This bit enables/disables the generation of an SCI1 transmit ready interrupt request.
If this bit is "1", generation is enabled, and if "0", generation is disabled.
• TR1IRQ (bit 7)
This bit is set to "1" if an SCI1 transmit ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
15-24
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
S1STAT
7
6
5
4
3
2
1
0
TR1IRQ TR1IE RV1IRQ RV1IE MERR1 PERR1 OERR1 FERR1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
SCI1 framing error:no
SCI1 framing error:yes
SCI1 overrun error:no
SCI1 overrun error:yes
SCI1 parity error:no
SCI1 parity error:yes
SCI1 multiprocessor communication error:no
SCI1 multiprocessor communication error:yes
SCI1 receive ready interrupt request generation:disabled
SCI1 receive ready interrupt request generation:enabled
SCI1 receive ready generation:no
SCI1 receive ready generation:yes
SCI1 transmit ready interrupt request generation:disabled
SCI1 transmit ready interrupt request generation:enabled
SCI1 transmit ready generation:no
SCI1 transmit ready generation:yes
Figure 15-11 Configuration of S1STAT
15
15-25
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.2.3 Control Registers for SCI2
[1]
SCI2 Transmit Control Register (ST2CON)
ST2CON is a 5-bit register that controls SCI2 transmit operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ST2CON becomes 8AH, the
SCI2 transmit operation is in UART normal mode, at 8-bit data length, 2 stop bits, and
no parity.
When changing the contents of ST2CON, do so after transmission is completed. If
ST2CON is changed before a transmission is completed, the current and future transmission is not normally performed.
The 4-stage buffer mode is not provided for the transmit side.
Figure 15-12 shows the configuration of ST2CON.
<Description of Each Bit>
• ST2MD (bit 0)
This bit specifies the transmit operation mode of SCI2.
• ST2MPC (bit 2)
If SCI2 transmits in UART multiprocessor communication mode, this bit specifies
which is transmitted, data or an address. The transmit data length is 8 bits. If this bit
is "0", data is transmitted, and if "1", an address is transmitted.
• ST2STB (bit 4)
This bit specifies the stop bit of SCI2 to either 1 stop bit or 2 stop bits. If this bit is "0",
SCI2 transmits at 2 stop bits, and if "1", SCI2 transmits at 1 stop bit.
• ST2PEN (bit 5)
This bit specifies whether a parity bit is included when SCI2 transmits. If this bit is
"0", SCI2 transmits without a parity bit, and if "1", SCI2 transmits with a parity bit.
• ST2EVN (bit 6)
This bit specifies the logic of the parity bit when SCI2 transmits. If this bit is "0", an
odd parity is selected, and if "1", an even parity is selected.
15-26
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
ST2CON
7
—
6
5
4
ST2EVN ST2PEN ST2STB
3
2
1
0
—
ST2MPC
—
ST2MD
Multiprocessor
communication
mode
0 SCI2 UART normal mode
1 SCI2 UART multiprocessor communication mode
0 Data transmitted
1 Address transmitted
0 2 stop bits
1 1 stop bit
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-12 Configuration of ST2CON
15
15-27
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[2]
SCI2 Receive Control Register (SR2CON)
SR2CON is a 5-bit register that controls SCI2 receive operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR2CON becomes 12H, the
SCI2 operation is in UART normal mode, at 8-bit data length, no parity, and receive is
disabled.
When changing the contents of SR2CON, do so after resetting SR2REN (bit 7) to "0". If
the SR2CON is changed before resetting SR2REN (bit 7) to "0", the current and future
receive is not normally performed.
Figure 15-13 shows the configuration of SR2CON.
<Description of Each Bit>
• SR2MD (bit 0)
This bit specifies the receive operation mode of SCI2.
• SR2MPC (bit 2)
If SCI2 receives in UART multiprocessor communication mode, this bit specifies
which is received, data or an address. The receive data length is 8 bits. If this bit is
"0", data is received, and if "1", an address is received.
• SR2EXP (bit 3)
This bit specifies the SCI2 receive buffer mode. If this bit is "0", only S2BUF0 is
enabled as a receive buffer (single buffer mode), and if "1", S2BUF0, S2BUF1,
S2BUF2, and S2BUF3 are enabled as a receive buffer (4-stage buffer mode).
During the 4-stage buffer mode, the receive buffers operate as a ring buffer.
• SR2PEN (bit 5)
This bit specifies whether a parity bit is included when SCI2 receives. If this bit is "0",
SCI2 receives without a parity bit, and if "1", SCI2 receives with a parity bit.
• SR2EVN (bit 6)
This bit specifies the logic of the parity bit when SCI2 receives. If this bit is "0", SCI2
receives at odd parity, and if "1", SCI2 receives at even parity.
• SR2REN (bit 7)
This bit specifies enable/disable of SCI2 receive. If this bit is "0", SCI2 receive is
disabled, and if "1", SCI2 receive is enabled.
15-28
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
SR2CON
7
6
5
SR2REN SR2EVN SR2PEN
4
—
3
2
SR2EXP SR2MPC
1
0
—
SR2MD
Multiprocessor
communication
mode
0 SCI2 UART normal mode
1 SCI2 UART multiprocessor communication mode
0 Data is received
1 Address is received
0 Single buffer mode
1 4-stage buffer mode (receive side)
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
0 SCI2 receive disabled
1 SCI2 receive enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-13 Configuration of SR2CON
15
15-29
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[3]
SCI2 Transmit/Receive Buffer Register (S2BUF0)
S2BUF0 is an 8-bit register that holds transmit/receive data during a serial port transmit/
receive operation. S2BUF0 has a double structure, in which the contents are different in
read/write. If in read, S2BUF0 functions as a receive buffer, and if in write, S2BUF0
functions as a transmit buffer.
When a receive operation ends, the content of the receive register is transferred to the
S2BUF0 receive buffer, and a receive interrupt request is generated at the same time.
The content of the S2BUF0 receive buffer is held until the next receive operation ends.
When receive mode is in UART multiprocessor communication mode, and if receive
data is ignored, the content of S2BUF0 is not updated even at completion of the receive
operation, and a receive interrupt request is not generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S2BUF0 becomes undefined.
[4]
SCI2 Receive Buffer Registers (S2BUF1, S2BUF2, S2BUF3)
S2BUF1, S2BUF2, and S2BUF3 are 8-bit registers that store valid received data when
the SR2EXP bit of SR2CON is set to "1" (4-stage buffer mode).
These registers are read-only and cannot be written to. During the 4-stage buffer mode,
at the completion of each 1-byte reception, the contents of the receive register are
transferred to a receive buffer register in the order of S2BUF0, S2BUF1, S2BUF2,
S2BUF3, S2BUF0, etc. At the same time, a receive interrupt request is generated.
(Ring Buffer Type)
When the receive mode is the UART multiprocessor communication mode and the
received data is ignored, even after completion of a receive operation, the contents of
S2BUF1, S2BUF2, and S2BUF3 will not be updated and a receive interrupt request will
not be generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), the contents of S2BUF1,
S2BUF2, and S2BUF3 are undefined.
[5]
SCI2 Transmit and Receive Registers
The SCI2 transmit and receive registers are two 8-bit shift registers that actually perform shift operations during a transmit/receive operation.
The transmit and receive registers and the transmit/receive buffer registers have a
double structure. If a receive operation ends, the data received by the receive register
is transferred to S2BUF, and a receive interrupt request is generated.
The transmit and receive registers cannot be read/written by the program.
15-30
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
[6]
SCI2 Status Register 0 (S2STAT0)
The high-order 4 bits of S2STAT0 is the transmit-ready/receive-ready interrupt request
control register of the serial port. The low-order 4 bits of S2STAT0 is the register that
holds the status (normal/abnormal) when the serial port receive operation is completed.
The low-order 4 bits of S2STAT0 are updated when receive ends. Once S2STAT0 is
set to "1" ("1": error occurred), it is not reset to "0" even if an error does not occur when
the next receive ends. Therefore reset to "0" any bits that are "1" of the low-order 4 bits
of S2STAT0 by the program when a receive ends.
The contents of S2BUF0 must be read before resetting OERR20 (bit 1) of the low-order
4 bits of S2STAT0. Otherwise, the OERR20 flag is set to "1" again irrespective of
occurrence of an overrun error in next receive operation.
During the 4-stage buffer mode, an overrun error flag, parity error flag, and multiprocessor communication flag are provided for each buffer. However, with a 4-stage
buffer, only 1 bit is provided for the framing error flag. Therefore, the framing error flag
will be set at the time when even 1 byte of the received data has a framing error.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S2STAT0 becomes 00H.
Figure 15-14 shows the configuration of S2STAT0.
15
15-31
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Description of Each Bit>
• FERR2 (bit 0)
If the stop bit received by SCI2 is "0", this bit is set to "1" interpreting that frame
synchronization is incorrect. (Framing error)
• OERR20 (bit 1)
This bit is set to "1" if the data transferred to S2BUF0 for the previous reception has
not yet been read by the CPU when the receive operation of SCI2 ends. However,
new receive data is loaded to S2BUF0 even if this occurs. (Overrun error)
• PERR20 (bit 2)
The parity of data received by SCI0 and the parity bit appended to and transferred
with data are compared, and if they do not match, this bit is set to "1". (Parity error)
• MERR20 (bit 3)
This bit is set to "1" if an address is sent while receiving data in SCI2 UART multiprocessor communication mode. This means that if the MPC bit (of the data that is
transferred when the SR2MPC bit of SR2CON is "0") is "1", MERR20 is set, interpreting this as a multiprocessor communication error.
• RV2IE0 (bit 4)
This bit enables/disables the generation of an SCI2 receive ready interrupt request. If
this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV2IRQ0 (bit 5)
This bit is set to "1" if an SCI2 receive ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
• TR2IE (bit 6)
This bit enables/disables the generation of an SCI2 transmit ready interrupt request.
If this bit is "1", generation is enabled, and if "0", generation is disabled.
• TR2IRQ (bit 7)
This bit is set to "1" if an SCI2 transmit ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
15-32
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
S2STAT0
7
6
5
4
3
2
1
0
TR2IRQ TR2IE RV2IRQ0 RV2IE0 MERR20 PERR20 OERR20 FERR2
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
SCI2 framing error:no
SCI2 framing error:yes
S2BUF0 overrun error:no
S2BUF0 overrun error:yes
S2BUF0 parity error:no
S2BUF0 parity error:yes
S2BUF0 multiprocessor communication error:no
S2BUF0 multiprocessor communication error:yes
S2BUF0 receive ready interrupt request generation:disabled
S2BUF0 receive ready interrupt request generation:enabled
S2BUF0 receive ready generation:no
S2BUF0 receive ready generation:yes
SCI2 transmit ready interrupt request generation:disabled
SCI2 transmit ready interrupt request generation:enabled
SCI2 transmit ready generation:no
SCI2 transmit ready generation:yes
Figure 15-14 Configuration of S2STAT0
15
15-33
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[7]
SCI2 Status Register 1 (S2STAT1)
If the SR2EXP bit of SR2CON is set to "1" (4-stage buffer mode), the 6-bit S2STAT1
register stores the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S2BUF1, the lower 3 bits of S2STAT1 (bits 1–3) are updated when reception of that
data is complete; if there is an error in the receive data transferred to S2BUF2, the
upper 3 bits of S2STAT1 (bits 5–7) are updated when reception of that data is complete. Once S2STAT1 is set to "1" ("1": error occurred), it is not reset to "0" even if that
error has not occurred at completion of the next reception. Therefore, with the program,
reset to "0" any S2STAT1 bits that are "1" after reception is complete. Read the contents of S2BUF1 and S2BUF2 before resetting the OERR21 and OERR22 flags in
S2STAT1. If the contents of S2BUF1 and S2BUF2 are not read, the OERR21 and
OERR22 flags will be set to "1" again regardless of whether an overrun error occurs in
the next receive operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S2STAT1 becomes 11H.
Figure 15-15 shows the configuration of S2STAT1.
<Description of Each Bit>
• OERR21 (bit 1)
When an SCI2 receive operation is complete and the receive data is transferred into
S2BUF1, OERR21 is set to "1" if the data transferred into S2BUF1 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S2BUF1 even if OERR21 has been set. (Overrun error)
• PERR21 (bit 2)
With SCI2, the parity of data received by S2BUF1 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR21 is set to
"1". (Parity error)
• MERR21 (bit 3)
During the SCI2 UART multiprocessor communication mode, MERR21 is set to "1" if
an address is transmitted while S2BUF1 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR2MPC bit of SR2CON is "0") is
"1", MERR21 is set to "1", interpreting this as a multiprocessor communication error.
• OERR22 (bit 5)
When an SCI2 receive operation is complete and the receive data is transferred into
S2BUF2, OERR22 is set to "1" if the data transferred into S2BUF2 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S2BUF2 even if OERR22 has been set. (Overrun error)
15-34
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
• PERR22 (bit 6)
With SCI2, the parity of data received by S2BUF2 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR22 is set to
"1". (Parity error)
• MERR22 (bit 7)
During the SCI2 UART multiprocessor communication mode, MERR22 is set to "1" if
an address is transmitted while S2BUF2 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR2MPC bit of SR2CON is "0") is
"1", MERR22 is set to "1", interpreting this as a multiprocessor communication error.
S2STAT1
7
6
5
MERR22 PERR22 OERR22
4
3
—
2
1
MERR21 PERR21 OERR21
0
—
0 S2BUF1 overrun error: no
1 S2BUF1 overrun error: yes
0 S2BUF1 parity error: no
1 S2BUF1 parity error: yes
0 S2BUF1 multiprocessor communication error: no
1 S2BUF1 multiprocessor communication error: yes
0 S2BUF2 overrun error: no
1 S2BUF2 overrun error: yes
0 S2BUF2 parity error: no
1 S2BUF2 parity error: yes
0 S2BUF2 multiprocessor communication error: no
1 S2BUF2 multiprocessor communication error: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-15 Configuration of S2STAT1
15-35
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[8]
SCI2 Status Register 2 (S2STAT2)
If the SR2EXP bit of SR2CON is set to "1" (4-stage buffer mode), the lower 3 bits of
S2STAT2 store the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed. The upper 2 bits of S2STAT2 monitor the counter that
indicates the receive buffer into which receive data will be transferred at completion of
the next receive operation.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S2BUF3, the lower 3 bits of S2STAT2 (bits 1–3) are updated when reception of that
data is complete. Once the lower 3 bits of S2STAT2 are set to "1" ("1": error occurred),
they are not reset to "0" even if that error has not occurred at completion of the next
reception. Therefore, with the program, reset to "0" any bits that are "1" of the lower 3
bits of S2STAT2 after reception is complete. Read the contents of S2BUF3 before
resetting the OERR23 flag in the lower 3 bits of S2STAT2. If the contents of S2BUF3
are not read, the OERR23 flag will be set to "1" again regardless of whether an overrun
error occurs in the next receive operation.
Bits 4 and 5 of S2STAT2 are read-only and cannot be written to. During the 4-stage
buffer mode, the next receive buffer into which data will be transferred (S2BUF0,
S2BUF1, S2BUF2, S2BUF3) can be verified by reading bits 4 and 5 of S2STAT2.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S2STAT2 becomes C1H.
Figure 15-16 shows the configuration of S2STAT2.
<Description of Each Bit>
• OERR23 (bit 1)
When an SCI2 receive operation is complete and the receive data is transferred into
S2BUF3, OERR23 is set to "1" if the data transferred into S2BUF3 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S2BUF3 even if OERR23 has been set. (overrun error)
• PERR23 (bit 2)
With SCI2, the parity of data received by S2BUF3 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR23 is set to
"1". (parity error)
• MERR23 (bit 3)
During the SCI2 UART multiprocessor communication mode, MERR23 is set to "1" if
an address is transmitted while S2BUF3 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR2MPC bit of SR2CON is "0") is
"1", MERR23 is set to "1", interpreting this as a multiprocessor communication error.
• BFCU20 (bit 4), BFCU21 (bit 5)
During the 4-stage buffer mode, BFCU20 and BFCU21 monitor the buffer counter
that indicates the receive buffer into which receive data will be transferred (S2BUF0,
S2BUF1, S2BUF2, S2BUF3) at completion of the next receive operation. BFCU20
and BFCU21 are read-only and cannot be written to.
15-36
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
S2STAT2
7
6
—
—
5
4
3
2
1
BFCU21 BFCU20 MERR23 PERR23 OERR23
0
—
0 S2BUF3 overrun error: no
1 S2BUF3 overrun error: yes
0 S2BUF3 parity error: no
1 S2BUF3 parity error: yes
0 S2BUF3 multiprocessor communication error: no
1 S2BUF3 multiprocessor communication error: yes
BFCU2 Buffer counter monitor during SCI2
1
0
4-stage buffer mode
0
0
Write to S2BUF0 next
0
1
Write to S2BUF1 next
1
0
Write to S2BUF2 next
1
1
Write to S2BUF3 next
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-16 Configuration of S2STAT2
15
15-37
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[9]
SCI2 Interrupt Control Register (SR2INT)
When SCI2 is in the 4-stage buffer mode (SR2EXP bit of SR2CON is "1"), the 7-bit
SR2INT register controls the receive-ready interrupt requests for each receive buffer
(S2BUF0 to S2BUF3).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR2INT becomes 01H.
RV2IRQ0 (bit 4) of SR2INT monitors RV2IRQ0 (bit 3) of S2STAT0. During the 4-stage
buffer mode, by reading SR2INT once, it is possible to verify which buffer has generated
a receive-ready. This bit is read-only and writes are ignored. To clear (write to) this bit,
write to RV2IRQ0 (bit 5) of S2STAT0.
Figure 15-17 shows the configuration of SR2INT.
<Description of Each Bit>
• RV2IE1 (bit 1)
This bit enables or disables the generation of SCI2 S2BUF1 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV2IE2 (bit 2)
This bit enables or disables the generation of SCI2 S2BUF2 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV2IE3 (bit 3)
This bit enables or disables the generation of SCI2 S2BUF3 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV2IRQ0 (bit 4)
This bit monitors RV2IRQ0 of S2STAT0. (Read-only)
This bit is set to "1" when an SCI2 S2BUF0 receive-ready is generated. To clear this
bit to "0", clear RV2IRQ0 of S2STAT0.
• RV2IRQ1 (bit 5)
This bit is set to "1" when an SCI2 S2BUF1 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI2 interrupt is processed, so clear it by
the program.
• RV2IRQ2 (bit 6)
This bit is set to "1" when an SCI2 S2BUF2 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI2 interrupt is processed, so clear it by
the program.
• RV2IRQ3 (bit 7)
This bit is set to "1" when an SCI2 S2BUF3 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI2 interrupt is processed, so clear it by
the program.
15-38
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
SR2INT
7
6
5
4
3
2
1
RV2IRQ3 RV2IRQ2 RV2IRQ1 RV2IRQ0 RV2IE3 RV2IE2 RV2IE1
0
—
0 S2BUF1 receive-ready interrupt request generation: disabled
1 S2BUF1 receive-ready interrupt request generation: enabled
0 S2BUF2 receive-ready interrupt request generation: disabled
1 S2BUF2 receive-ready interrupt request generation: enabled
0 S2BUF3 receive-ready interrupt request generation: disabled
1 S2BUF3 receive-ready interrupt request generation: enabled
0 S2BUF0 receive-ready generation: no (see note)
1 S2BUF0 receive-ready generation: yes (see note)
0 S2BUF1 receive-ready generation: no
1 S2BUF1 receive-ready generation: yes
0 S2BUF2 receive-ready generation: no
1 S2BUF2 receive-ready generation: yes
0 S2BUF3 receive-ready generation: no
1 S2BUF3 receive-ready generation: yes
[Note]
RV2IRQ0 is read-only.
To clear, write to the RV2IRQ0 bit of S2STAT0.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-17 Configuration of SR2INT
15-39
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.2.4 Control Registers for SCI3
[1]
SCI3 Transmit Control Register (ST3CON)
ST3CON is a 5-bit register that controls SCI3 transmit operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ST3CON becomes 8AH, the
SCI3 transmit operation is in UART normal mode, at 8-bit data length, 2 stop bits, and
no parity.
When changing the contents of ST3CON, do so after transmission is completed. If
ST3CON is changed before a transmission is completed, the current and future transmission is not normally performed.
The 4-stage buffer mode is not provided for the transmit side.
Figure 15-18 shows the configuration of ST3CON.
<Description of Each Bit>
• ST3MD (bit 0)
This bit specifies the transmit operation mode of SCI3.
• ST3MPC (bit 2)
If SCI3 transmits in UART multiprocessor communication mode, this bit specifies
which is transmitted, data or an address. The transmit data length is 8 bits. If this bit
is "0", data is transmitted, and if "1", an address is transmitted.
• ST3STB (bit 4)
This bit specifies the stop bit of SCI3 to either 1 stop bit or 2 stop bits. If this bit is "0",
SCI3 transmits at 2 stop bits, and if "1", SCI3 transmits at 1 stop bit.
• ST3PEN (bit 5)
This bit specifies whether a parity bit is included when SCI3 transmits. If this bit is
"0", SCI3 transmits without a parity bit, and if "1", SCI3 transmits with a parity bit.
• ST3EVN (bit 6)
This bit specifies the logic of the parity bit when SCI3 transmits. If this bit is "0", an
odd parity is selected, and if "1", an even parity is selected.
15-40
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
ST3CON
7
—
6
5
4
ST3EVN ST3PEN ST3STB
3
2
1
0
—
ST3MPC
—
ST3MD
Multiprocessor
communication
mode
0 SCI3 UART normal mode
1 SCI3 UART multiprocessor communication mode
0 Data transmitted
1 Address transmitted
0 2 stop bits
1 1 stop bit
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-18 Configuration of ST3CON
15
15-41
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[2]
SCI3 Receive Control Register (SR3CON)
SR3CON is a 5-bit register that controls SCI3 receive operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR3CON becomes 12H, the
SCI3 operation is in UART normal, single buffer mode, at 8-bit data length, no parity,
and receive is disabled.
When changing the contents of SR3CON, do so after resetting SR3REN (bit 7) to "0". If
the SR3CON is changed before resetting SR3REN (bit 7) to "0", the current and future
receive is not normally performed.
Figure 15-19 shows the configuration of SR3CON.
<Description of Each Bit>
• SR3MD (bit 0)
This bit specifies the receive operation mode of SCI3.
• SR3MPC (bit 2)
If SCI3 receives in UART multiprocessor communication mode, this bit specifies
which is received, data or an address. The receive data length is 8 bits. If this bit is
"0", data is received, and if "1", an address is received.
• SR3EXP (bit 3)
This bit specifies the SCI3 receive buffer mode. If this bit is "0", only S3BUF0 is
enabled as a receive buffer (single buffer mode), and if "1", S3BUF0, S3BUF1,
S3BUF2, and S3BUF3 are enabled as a receive buffer (4-stage buffer mode).
During the 4-stage buffer mode, the receive buffers operate as a ring buffer.
• SR3PEN (bit 5)
This bit specifies whether a parity bit is included when SCI3 receives. If this bit is "0",
SCI3 receives without a parity bit, and if "1", SCI3 receives with a parity bit.
• SR3EVN (bit 6)
This bit specifies the logic of the parity bit when SCI3 receives. If this bit is "0", SCI3
receives at odd parity, and if "1", SCI3 receives at even parity.
• SR3REN (bit 7)
This bit specifies enable/disable of SCI3 receive. If this bit is "0", SCI3 receive is
disabled, and if "1", SCI3 receive is enabled.
15-42
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
SR3CON
7
6
5
SR3REN SR3EVN SR3PEN
4
—
3
2
SR3EXP SR3MPC
1
0
—
SR3MD
Multiprocessor
communication
mode
0 SCI3 UART normal mode
1 SCI3 UART multiprocessor communication mode
0 Data is received
1 Address is received
0 Single buffer mode
1 4-stage buffer mode (receive side)
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
0 SCI3 receive disabled
1 SCI3 receive enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-19 Configuration of SR3CON
15
15-43
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[3]
SCI3 Transmit/Receive Buffer Register (S3BUF0)
S3BUF0 is an 8-bit register that holds transmit/receive data during a serial port transmit/receive operation. S3BUF0 has a double structure, in which the contents are
different in read/write. If in read, S3BUF0 functions as a receive buffer, and if in write,
S3BUF0 functions as a transmit buffer.
When a receive operation ends, the content of the receive register is transferred to the
S3BUF0 receive buffer, and a receive interrupt request is generated at the same time.
The content of the S3BUF0 receive buffer is held until the next receive operation ends.
When receive mode is in UART multiprocessor communication mode, and if receive
data is ignored, the content of S3BUF0 is not updated even at completion of the receive
operation, and a receive interrupt request is not generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S3BUF0 becomes undefined.
[4]
SCI3 Receive Buffer Registers (S3BUF1, S3BUF2, S3BUF3)
S3BUF1, S3BUF2, and S3BUF3 are 8-bit registers that store valid received data when
the SR3EXP bit of SR3CON is set to "1" (4-stage buffer mode).
These registers are read-only and cannot be written to. During the 4-stage buffer mode,
at the completion of each 1-byte reception, the contents of the receive register is
transferred to a receive buffer register in the order of S3BUF0, S3BUF1, S3BUF2,
S3BUF3, S3BUF0, etc. At the same time, a receive interrupt request is generated.
(Ring Buffer Type)
When the receive mode is the UART multiprocessor communication mode and the
received data is ignored, even after completion of a receive operation, the contents of
S3BUF1, S3BUF2, and S3BUF3 will not be updated and a receive interrupt request will
not be generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), the contents of S3BUF1,
S3BUF2, and S3BUF3 are undefined.
[5]
SCI3 Transmit and Receive Registers
The SCI3 transmit and receive registers are two 8-bit shift registers that actually perform shift operations during a transmit/receive operation.
The transmit and receive registers and the transmit/receive buffer registers have a
double structure. If a receive operation ends, the data received by the receive register
is transferred to S3BUF, and a receive interrupt request is generated.
The transmit and receive registers cannot be read/written by the program.
15-44
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
[6]
SCI3 Status Register 0 (S3STAT0)
The high-order 4 bits of S3STAT0 is the transmit-ready/receive-ready interrupt request
control register of the serial port. The low-order 4 bits of S3STAT0 is the register that
holds the status (normal/abnormal) when the serial port receive operation is completed.
The low-order 4 bits of S3STAT0 are updated when receive ends. Once S3STAT0 is
set to "1" ("1": error occurred), it is not reset to "0" even if an error does not occur when
the next receive ends. Therefore reset to "0" any bits that are "1" of the low-order 4 bits
of S3STAT0 by the program when a receive ends.
The contents of S3BUF0 must be read before resetting OERR30 (bit 1) of the low-order
4 bits of S3STAT0. Otherwise, the OERR30 flag is set to "1" again irrespective of
occurrence of an overrun error in next receive operation.
During the 4-stage buffer mode, an overrun error flag, parity error flag, and multiprocessor communication flag are provided for each buffer. However, with a 4-stage
buffer, only 1 bit is provided for the framing error flag. Therefore, the framing error flag
will be set at the time when even 1 byte of the received data has a framing error.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S3STAT0 becomes 00H.
Figure 15-20 shows the configuration of S3STAT0.
15
15-45
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Description of Each Bit>
• FERR3 (bit 0)
If the stop bit received by SCI3 is "0", this bit is set to "1" interpreting that frame
synchronization is incorrect. (Framing error)
• OERR30 (bit 1)
This bit is set to "1" if the data transferred to S3BUF0 for the previous reception has
not yet been read by the CPU when the receive operation of SCI3 ends. However,
new receive data is loaded to S3BUF0 even if this occurs. (Overrun error)
• PERR30 (bit 2)
The parity of data received by SCI3 and the parity bit appended to and transferred
with data are compared, and if they do not match, this bit is set to "1". (Parity error)
• MERR30 (bit 3)
This bit is set to "1" if an address is sent while receiving data in SCI3 UART multiprocessor communication mode. This means that if the MPC bit (of the data that is
transferred when the SR3MPC bit of SR3CON is "0") is "1", MERR30 is set, interpreting this as a multiprocessor communication error.
• RV3IE0 (bit 4)
This bit enables/disables the generation of an SCI3 receive ready interrupt request. If
this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV3IRQ0 (bit 5)
This bit is set to "1" if an SCI3 receive ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
• TR3IE (bit 6)
This bit enables/disables the generation of an SCI3 transmit ready interrupt request.
If this bit is "1", generation is enabled, and if "0", generation is disabled.
• TR3IRQ (bit 7)
This bit is set to "1" if an SCI3 transmit ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
15-46
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
S3STAT0
7
6
5
4
3
2
1
0
TR3IRQ TR3IE RV3IRQ0 RV3IE0 MERR30 PERR30 OERR30 FERR3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
SCI3 framing error:no
SCI3 framing error:yes
S3BUF0 overrun error:no
S3BUF0 overrun error:yes
S3BUF0 parity error:no
S3BUF0 parity error:yes
S3BUF0 multiprocessor communication error:no
S3BUF0 multiprocessor communication error:yes
S3BUF0 receive ready interrupt request generation:disabled
S3BUF0 receive ready interrupt request generation:enabled
S3BUF0 receive ready generation:no
S3BUF0 receive ready generation:yes
SCI3 transmit ready interrupt request generation:disabled
SCI3 transmit ready interrupt request generation:enabled
SCI3 transmit ready generation:no
SCI3 transmit ready generation:yes
Figure 15-20 Configuration of S3STAT0
15
15-47
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[7]
SCI3 Status Register 1 (S3STAT1)
If the SR3EXP bit of SR3CON is set to "1" (4-stage buffer mode), the 6-bit S3STAT1
register stores the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S3BUF1, the lower 3 bits of S3STAT1 (bits 1–3) are updated when reception of that
data is complete; if there is an error in the receive data transferred to S3BUF2, the
upper 3 bits of S3STAT1 (bits 5–7) are updated when reception of that data is complete. Once S3STAT1 is set to "1" ("1": error occurred), it is not reset to "0" even if that
error has not occurred at completion of the next reception. Therefore, with the program,
reset to "0" any S3STAT1 bits that are "1" after reception is complete. Read the contents of S3BUF1 and S3BUF2 before resetting the OERR31 and OERR32 flags in
S3STAT1. If the contents of S3BUF1 and S3BUF2 are not read, the OERR31 and
OERR32 flags will be set to "1" again regardless of whether an overrun error occurs in
the next receive operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S3STAT1 becomes 11H.
Figure 15-21 shows the configuration of S3STAT1.
<Description of Each Bit>
• OERR31 (bit 1)
When an SCI3 receive operation is complete and the receive data is transferred into
S3BUF1, OERR31 is set to "1" if the data transferred into S3BUF1 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S3BUF1 even if OERR31 has been set. (Overrun error)
• PERR31 (bit 2)
With SCI3, the parity of data received by S3BUF1 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR31 is set to
"1". (Parity error)
• MERR31 (bit 3)
During the SCI3 UART multiprocessor communication mode, MERR31 is set to "1" if
an address is transmitted while S3BUF1 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR3MPC bit of SR3CON is "0") is
"1", MERR31 is set to "1", interpreting this as a multiprocessor communication error.
• OERR32 (bit 5)
When an SCI3 receive operation is complete and the receive data is transferred into
S3BUF2, OERR32 is set to "1" if the data transferred into S3BUF2 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S3BUF2 even if OERR32 has been set. (Overrun error)
15-48
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
• PERR32 (bit 6)
With SCI3, the parity of data received by S3BUF2 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR32 is set to
"1". (Parity error)
• MERR32 (bit 7)
During the SCI3 UART multiprocessor communication mode, MERR32 is set to "1" if
an address is transmitted while S3BUF2 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR3MPC bit of SR3CON is "0") is
"1", MERR32 is set to "1", interpreting this as a multiprocessor communication error.
S3STAT1
7
6
5
MERR32 PERR32 OERR32
4
3
—
2
1
MERR31 PERR31 OERR31
0
—
0 S3BUF1 overrun error: no
1 S3BUF1 overrun error: yes
0 S3BUF1 parity error: no
1 S3BUF1 parity error: yes
0 S3BUF1 multiprocessor communication error: no
1 S3BUF1 multiprocessor communication error: yes
0 S3BUF2 overrun error: no
1 S3BUF2 overrun error: yes
0 S3BUF2 parity error: no
1 S3BUF2 parity error: yes
0 S3BUF2 multiprocessor communication error: no
1 S3BUF2 multiprocessor communication error: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-21 Configuration of S3STAT1
15-49
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[8]
SCI3 Status Register 2 (S3STAT2)
If the SR3EXP bit of SR3CON is set to "1" (4-stage buffer mode), the lower 3 bits of
S3STAT2 store the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed. The upper 2 bits of S3STAT2 monitor the counter that
indicates the receive buffer into which receive data will be transferred at completion of
the next receive operation.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S3BUF3, the lower 3 bits of S3STAT2 (bits 1–3) are updated when reception of that
data is complete. Once the lower 3 bits of S3STAT2 are set to "1" ("1": error occurred),
they are not reset to "0" even if that error has not occurred at completion of the next
reception. Therefore, with the program, reset to "0" any bits that are "1" of the lower 3
bits of S3STAT2 after reception is complete. Read the contents of S3BUF3 before
resetting the OERR33 flag in the lower 3 bits of S3STAT2. If the contents of S3BUF3
are not read, the OERR33 flag will be set to "1" again regardless of whether an overrun
error occurs in the next receive operation.
Bits 4 and 5 of S3STAT2 are read-only and cannot be written to. During the 4-stage
buffer mode, the next receive buffer into which data will be transferred (S3BUF0,
S3BUF1, S3BUF2, S3BUF3) can be verified by reading bits 4 and 5 of S3STAT2.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S3STAT2 becomes C1H.
Figure 15-22 shows the configuration of S3STAT2.
<Description of Each Bit>
• OERR33 (bit 1)
When an SCI3 receive operation is complete and the receive data is transferred into
S3BUF3, OERR33 is set to "1" if the data transferred into S3BUF3 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S3BUF3 even if OERR33 has been set. (Overrun error)
• PERR33 (bit 2)
With SCI3, the parity of data received by S3BUF3 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR33 is set to
"1". (Parity error)
• MERR33 (bit 3)
During the SCI3 UART multiprocessor communication mode, MERR33 is set to "1" if
an address is transmitted while S3BUF3 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR3MPC bit of SR3CON is "0") is
"1", MERR33 is set to "1", interpreting this as a multiprocessor communication error.
• BFCU30 (bit 4), BFCU31 (bit 5)
During the 4-stage buffer mode, BFCU30 and BFCU31 monitor the buffer counter
that indicates the receive buffer into which receive data will be transferred (S3BUF0,
S3BUF1, S3BUF2, S3BUF3) at completion of the next receive operation. BFCU30
and BFCU31 are read-only and cannot be written to.
15-50
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
S3STAT2
7
6
—
—
5
4
3
2
1
BFCU31 BFCU30 MERR33 PERR33 OERR33
0
—
0 S3BUF3 overrun error: no
1 S3BUF3 overrun error: yes
0 S3BUF3 parity error: no
1 S3BUF3 parity error: yes
0 S3BUF3 multiprocessor communication error: no
1 S3BUF3 multiprocessor communication error: yes
BFCU3 Buffer counter monitor during SCI3
1
0
4-stage buffer mode
0
0
Write to S3BUF0 next
0
1
Write to S3BUF1 next
1
0
Write to S3BUF2 next
1
1
Write to S3BUF3 next
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-22 Configuration of S3STAT2
15
15-51
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[9]
SCI3 Interrupt Control Register (SR3INT)
When SCI3 is in the 4-stage buffer mode (SR3EXP bit of SR3CON is "1"), the 7-bit
SR3INT register controls the receive-ready interrupt requests for each receive buffer
(S3BUF0 to S3BUF3).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR3INT becomes 01H.
RV3IRQ0 (bit 4) of SR3INT monitors RV3IRQ0 (bit 3) of S3STAT0. During the 4-stage
buffer mode, by reading SR3INT once, it is possible to verify which buffer has generated a receive-ready. This bit is read-only and writes are ignored. To clear (write to) this
bit, write to RV3IRQ0 (bit 5) of S3STAT0.
Figure 15-23 shows the configuration of SR3INT.
<Description of Each Bit>
• RV3IE1 (bit 1)
This bit enables or disables the generation of SCI3 S3BUF1 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV3IE2 (bit 2)
This bit enables or disables the generation of SCI3 S3BUF2 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV3IE3 (bit 3)
This bit enables or disables the generation of SCI3 S3BUF3 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV3IRQ0 (bit 4)
This bit monitors RV3IRQ0 of S3STAT0. (Read-only)
This bit is set to "1" when an SCI3 S3BUF0 receive-ready is generated. To clear this
bit to "0", clear RV3IRQ0 of S3STAT0.
• RV3IRQ1 (bit 5)
This bit is set to "1" when an SCI3 S3BUF1 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI3 interrupt is processed, so clear it by
the program.
• RV3IRQ2 (bit 6)
This bit is set to "1" when an SCI3 S3BUF2 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI3 interrupt is processed, so clear it by
the program.
• RV3IRQ3 (bit 7)
This bit is set to "1" when an SCI3 S3BUF3 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI3 interrupt is processed, so clear it by
the program.
15-52
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
SR3INT
7
6
5
4
3
2
1
RV3IRQ3 RV3IRQ2 RV3IRQ1 RV3IRQ0 RV3IE3 RV3IE2 RV3IE1
0
—
0 S3BUF1 receive-ready interrupt request generation: disabled
1 S3BUF1 receive-ready interrupt request generation: enabled
0 S3BUF2 receive-ready interrupt request generation: disabled
1 S3BUF2 receive-ready interrupt request generation: enabled
0 S3BUF3 receive-ready interrupt request generation: disabled
1 S3BUF3 receive-ready interrupt request generation: enabled
0 S3BUF0 receive-ready generation: no (see note)
1 S3BUF0 receive-ready generation: yes (see note)
0 S3BUF1 receive-ready generation: no
1 S3BUF1 receive-ready generation: yes
0 S3BUF2 receive-ready generation: no
1 S3BUF2 receive-ready generation: yes
0 S3BUF3 receive-ready generation: no
1 S3BUF3 receive-ready generation: yes
[Note]
RV3IRQ0 is read-only.
To clear, write to the RV3IRQ0 bit of S3STAT0.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-23 Configuration of SR3INT
15-53
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.2.5 Control Registers for SCI4
[1]
SCI4 Transmit Control Register (ST4CON)
ST4CON is a 5-bit register that controls SCI4 transmit operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ST4CON becomes 8AH, the
SCI4 transmit operation is in UART normal mode, at 8-bit data length, 2 stop bits, and
no parity.
When changing the contents of ST4CON, do so after transmission is completed. If
ST4CON is changed before a transmission is completed, the current and future transmission is not normally performed.
The 4-stage buffer mode is not provided for the transmit side.
Figure 15-24 shows the configuration of ST4CON.
<Description of Each Bit>
• ST4MD (bit 0)
This bit specifies the transmit operation mode of SCI4.
• ST4MPC (bit 2)
If SCI4 transmits in UART multiprocessor communication mode, this bit specifies
which is transmitted, data or an address. The transmit data length is 8 bits. If this bit
is "0", data is transmitted, and if "1", an address is transmitted.
• ST4STB (bit 4)
This bit specifies the stop bit of SCI4 to either 1 stop bit or 2 stop bits. If this bit is "0",
SCI4 transmits at 2 stop bits, and if "1", SCI4 transmits at 1 stop bit.
• ST4PEN (bit 5)
This bit specifies whether a parity bit is included when SCI4 transmits. If this bit is
"0", SCI4 transmits without a parity bit, and if "1", SCI4 transmits with a parity bit.
• ST4EVN (bit 6)
This bit specifies the logic of the parity bit when SCI4 transmits. If this bit is "0", an
odd parity is selected, and if "1", an even parity is selected.
15-54
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
ST4CON
7
—
6
5
4
ST4EVN ST4PEN ST4STB
3
2
1
0
—
ST4MPC
—
ST4MD
Multiprocessor
communication
mode
0 SCI4 UART normal mode
1 SCI4 UART multiprocessor communication mode
0 Data is transmitted
1 Address is transmitted
0 2 stop bits
1 1 stop bit
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-24 Configuration of ST4CON
15
15-55
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[2]
SCI4 Receive Control Register (SR4CON)
SR4CON is a 5-bit register that controls SCI4 receive operations.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR4CON becomes 12H, the
SCI4 operation is in UART normal, single buffer mode, at 8-bit data length, no parity,
and receive is disabled.
When changing the contents of SR4CON, do so after resetting SR4REN (bit 7) to "0". If
the SR4CON is changed before resetting SR4REN (bit 7) to "0", the current and future
receive is not normally performed.
Figure 15-25 shows the configuration of SR4CON.
<Description of Each Bit>
• SR4MD (bit 0)
This bit specifies the receive operation mode of SCI4.
• SR4MPC (bit 2)
If SCI4 receives in UART multiprocessor communication mode, this bit specifies
which is received, data or an address. The receive data length is 8 bits. If this bit is
"0", data is received, and if "1", an address is received.
• SR4EXP (bit 3)
This bit specifies the SCI4 receive buffer mode. If this bit is "0", only S4BUF0 is
enabled as a receive buffer (single buffer mode), and if "1", S4BUF0, S4BUF1,
S4BUF2, and S4BUF3 are enabled as a receive buffer (4-stage buffer mode).
During the 4-stage buffer mode, the receive buffers operate as a ring buffer.
• SR4PEN (bit 5)
This bit specifies whether a parity bit is included when SCI4 receives. If this bit is "0",
SCI4 receives without a parity bit, and if "1", SCI4 receives with a parity bit.
• SR4EVN (bit 6)
This bit specifies the logic of the parity bit when SCI4 receives. If this bit is "0", SCI4
receives at odd parity, and if "1", SCI4 receives at even parity.
• SR4REN (bit 7)
This bit specifies enable/disable of SCI4 receive. If this bit is "0", SCI4 receive is
disabled, and if "1", SCI4 receive is enabled.
15-56
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
SR4CON
7
6
5
SR4REN SR4EVN SR4PEN
4
—
3
2
SR4EXP SR4MPC
1
0
—
SR4MD
Multiprocessor
communication
mode
0 SCI4 UART normal mode
1 SCI4 UART multiprocessor communication mode
0 Data is received
1 Address is received
0 Single buffer mode
1 4-stage buffer mode (receive side)
0 Parity bit: no
1 Parity bit: yes
0 Odd parity
1 Even parity
0 SCI4 receive disabled
1 SCI4 receive enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-25 Configuration of SR4CON
15
15-57
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[3]
SCI4 Transmit/Receive Buffer Register (S4BUF0)
S4BUF0 is an 8-bit register that holds transmit/receive data during a serial port transmit/receive operation. S4BUF0 has a double structure, in which the contents are
different in read/write. If in read, S4BUF0 functions as a receive buffer, and if in write,
S4BUF0 functions as a transmit buffer.
When a receive operation ends, the content of the receive register is transferred to the
S4BUF0 receive buffer, and a receive interrupt request is generated at the same time.
The content of the S4BUF0 receive buffer is held until the next receive operation ends.
When receive mode is in UART multiprocessor communication mode, and if receive
data is ignored, the content of S4BUF0 is not updated even at completion of the receive
operation, and a receive interrupt request is not generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S4BUF0 becomes undefined.
[4]
SCI4 Receive Buffer Registers (S4BUF1, S4BUF2, S4BUF3)
S4BUF1, S4BUF2, and S4BUF3 are 8-bit registers that store valid received data when
the SR4EXP bit of SR4CON is set to "1" (4-stage buffer mode).
These registers are read-only and cannot be written to. During the 4-stage buffer mode,
at the completion of each 1-byte reception, the contents of the receive register is
transferred to a receive buffer register in the order of S4BUF0, S4BUF1, S4BUF2,
S4BUF3, S4BUF0, etc. At the same time, a receive interrupt request is generated.
(Ring Buffer Type)
When the receive mode is the UART multiprocessor communication mode and the
received data is ignored, even after completion of a receive operation, the contents of
S4BUF1, S4BUF2, and S4BUF3 will not be updated and a receive interrupt request will
not be generated.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), the contents of S4BUF1,
S4BUF2, and S4BUF3 are undefined.
[5]
SCI4 Transmit and Receive Registers
The SCI4 transmit and receive registers are two 8-bit shift registers that actually perform shift operations during a transmit/receive operation.
The transmit and receive registers and the transmit/receive buffer registers have a
double structure. If a receive operation ends, the data received by the receive register
is transferred to S4BUF, and a receive interrupt request is generated.
The transmit and receive registers cannot be read/written by the program.
15-58
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
[6]
SCI4 Status Register 0 (S4STAT0)
The high-order 4 bits of S4STAT0 is the transmit-ready/receive-ready interrupt request
control register of the serial port. The low-order 4 bits of S4STAT0 is the register that
holds the status (normal/abnormal) when the serial port receive operation is completed.
The low-order 4 bits of S4STAT0 are updated when receive ends. Once S4STAT0 is
set to "1" ("1": error occurred), it is not reset to "0" even if an error does not occur when
the next receive ends. Therefore reset to "0" any bits that are "1" of the low-order 4 bits
of S4STAT0 by the program when a receive ends.
The contents of S4BUF0 must be read before resetting OERR40 (bit 1) of the low-order
4 bits of S4STAT0. Otherwise, the OERR40 flag is set to "1" again irrespective of
occurrence of an overrun error in next receive operation.
During the 4-stage buffer mode, an overrun error flag, parity error flag, and multiprocessor communication flag are provided for each buffer. However, with a 4-stage
buffer, only 1 bit is provided for the framing error flag. Therefore, the framing error flag
will be set at the time when even 1 byte of the received data has a framing error.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S4STAT0 becomes 00H.
Figure 15-26 shows the configuration of S4STAT0.
15
15-59
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Description of Each Bit>
• FERR4 (bit 0)
If the stop bit received by SCI4 is "0", this bit is set to "1" interpreting that frame
synchronization is incorrect. (Framing error)
• OERR40 (bit 1)
This bit is set to "1" if the data transferred to S4BUF0 for the previous reception has
not yet been read by the CPU when the receive operation of SCI4 ends. However,
new receive data is loaded to S4BUF0 even if this occurs. (Overrun error)
• PERR40 (bit 2)
The parity of data received by SCI4 and the parity bit appended to and transferred
with data are compared, and if they do not match, this bit is set to "1". (Parity error)
• MERR40 (bit 3)
This bit is set to "1" if an address is sent while receiving data in SCI4 UART multiprocessor communication mode. This means that if the MPC bit (of the data that is
transferred when the SR4MPC bit of SR4CON is "0") is "1", MERR40 is set, interpreting this as a multiprocessor communication error.
• RV4IE0 (bit 4)
This bit enables/disables the generation of an SCI4 receive ready interrupt request. If
this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV4IRQ0 (bit 5)
This bit is set to "1" if an SCI4 receive ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
• TR4IE (bit 6)
This bit enables/disables the generation of an SCI4 transmit ready interrupt request.
If this bit is "1", generation is enabled, and if "0", generation is disabled.
• TR4IRQ (bit 7)
This bit is set to "1" if an SCI4 transmit ready is generated. This bit is not automatically reset to "0" even if an interrupt process is executed, therefore set it to "0" by the
program.
15-60
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
S4STAT0
7
6
5
4
3
2
1
0
TR4IRQ TR4IE RV4IRQ0 RV4IE0 MERR40 PERR40 OERR40 FERR4
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
SCI4 framing error:no
SCI4 framing error:yes
S4BUF0 overrun error:no
S4BUF0 overrun error:yes
S4BUF0 parity error:no
S4BUF0 parity error:yes
S4BUF0 multiprocessor communication error:no
S4BUF0 multiprocessor communication error:yes
S4BUF0 receive ready interrupt request generation:disabled
S4BUF0 receive ready interrupt request generation:enabled
S4BUF0 receive ready generation:no
S4BUF0 receive ready generation:yes
SCI4 transmit ready interrupt request generation:disabled
SCI4 transmit ready interrupt request generation:enabled
SCI4 transmit ready generation:no
SCI4 transmit ready generation:yes
Figure 15-26 Configuration of S4STAT0
15
15-61
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[7]
SCI4 Status Register 1 (S4STAT1)
If the SR4EXP bit of SR4CON is set to "1" (4-stage buffer mode), the 6-bit S4STAT1
register stores the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S4BUF1, the lower 3 bits of S4STAT1 (bits 1–3) are updated when reception of that
data is complete; if there is an error in the receive data transferred to S4BUF2, the
upper 3 bits of S4STAT1 (bits 5–7) are updated when reception of that data is complete. Once S4STAT1 is set to "1" ("1": error occurred), it is not reset to "0" even if that
error has not occurred at completion of the next reception. Therefore, with the program,
reset to "0" any S4STAT1 bits that are "1" after reception is complete. Read the contents of S4BUF1 and S4BUF2 before resetting the OERR41 and OERR42 flags in
S4STAT1. If the contents of S4BUF1 and S4BUF2 are not read, the OERR41 and
OERR42 flags will be set to "1" again regardless of whether an overrun error occurs in
the next receive operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S4STAT1 becomes 11H.
Figure 15-27 shows the configuration of S4STAT1.
<Description of Each Bit>
• OERR41 (bit 1)
When an SCI4 receive operation is complete and the receive data is transferred into
S4BUF1, OERR41 is set to "1" if the data transferred into S4BUF1 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S4BUF1 even if OERR41 has been set. (Overrun error)
• PERR41 (bit 2)
With SCI4, the parity of data received by S4BUF1 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR41 is set to
"1". (Parity error)
• MERR41 (bit 3)
During the SCI4 UART multiprocessor communication mode, MERR41 is set to "1" if
an address is transmitted while S4BUF1 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR4MPC bit of SR4CON is "0") is
"1", MERR41 is set to "1", interpreting this as a multiprocessor communication error.
• OERR42 (bit 5)
When an SCI4 receive operation is complete and the receive data is transferred into
S4BUF2, OERR42 is set to "1" if the data transferred into S4BUF2 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S4BUF2 even if OERR42 has been set. (Overrun error)
15-62
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
• PERR42 (bit 6)
With SCI4, the parity of data received by S4BUF2 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR42 is set to
"1". (Parity error)
• MERR42 (bit 7)
During the SCI4 UART multiprocessor communication mode, MERR42 is set to "1" if
an address is transmitted while S4BUF2 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR4MPC bit of SR4CON is "0") is
"1", MERR42 is set to "1", interpreting this as a multiprocessor communication error.
S4STAT1
7
6
5
MERR42 PERR42 OERR42
3
4
—
2
1
MERR41 PERR41 OERR41
0
—
0 S4BUF1 overrun error: no
1 S4BUF1 overrun error: yes
0 S4BUF1 parity error: no
1 S4BUF1 parity error: yes
0 S4BUF1 multi-processor communication error: no
1 S4BUF1 multi-processor communication error: yes
0 S4BUF2 overrun error: no
1 S4BUF2 overrun error: yes
0 S4BUF2 parity error: no
1 S4BUF2 parity error: yes
0 S4BUF2 multiprocessor communication error: no
1 S4BUF2 multiprocessor communication error: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-27 Configuration of S4STAT1
15-63
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[8]
SCI4 Status Register 2 (S4STAT2)
If the SR4EXP bit of SR4CON is set to "1" (4-stage buffer mode), the lower 3 bits of
S4STAT2 store the status (normal/abnormal) of the serial transfer when a serial port
receive operation is completed. The upper 2 bits of S4STAT2 monitor the counter that
indicates the receive buffer into which receive data will be transferred at completion of
the next receive operation.
During the 4-stage buffer mode, if there is an error in the receive data transferred to
S4BUF3, the lower 3 bits of S4STAT2 (bits 1–3) are updated when reception of that
data is complete. Once the lower 3 bits of S4STAT2 are set to "1" ("1" : error occurred),
they are not reset to "0" even if that error has not occurred at completion of the next
reception. Therefore, with the program, reset to "0" any bits that are "1" of the lower 3
bits of S4STAT2 after reception is complete. Read the contents of S4BUF3 before
resetting the OERR43 flag in the lower 3 bits of S4STAT2. If the contents of S4BUF3
are not read, the OERR43 flag will be set to "1" again regardless of whether an overrun
error occurs in the next receive operation.
Bits 4 and 5 of S4STAT2 are read-only and cannot be written to. During the 4-stage
buffer mode, the next receive buffer into which data will be transferred (S4BUF0,
S4BUF1, S4BUF2, S4BUF3) can be verified by reading bits 4 and 5 of S4STAT2.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), S4STAT2 becomes C1H.
Figure 15-28 shows the configuration of S4STAT2.
<Description of Each Bit>
• OERR43 (bit 1)
When an SCI4 receive operation is complete and the receive data is transferred into
S4BUF3, OERR43 is set to "1" if the data transferred into S4BUF3 for the previous
reception has not yet been read by the CPU. New receive data is loaded into
S4BUF3 even if OERR43 has been set. (Overrun error)
• PERR43 (bit 2)
With SCI4, the parity of data received by S4BUF3 is compared to the parity bit
appended to and transferred with the data. If they do not match, PERR43 is set to
"1". (Parity error)
• MERR43 (bit 3)
During the SCI4 UART multiprocessor communication mode, MERR43 is set to "1" if
an address is transmitted while S4BUF3 is receiving data. In other words, when the
MPC bit (of the data that is transferred when the SR4MPC bit of SR4CON is "0") is
"1", MERR43 is set to "1", interpreting this as a multiprocessor communication error.
• BFCU40 (bit 4), BFCU41 (bit 5)
During the 4-stage buffer mode, BFCU40 and BFCU41 monitor the buffer counter
that indicates the receive buffer into which receive data will be transferred (S4BUF0,
S4BUF1, S4BUF2, S4BUF3) at completion of the next receive operation. BFCU40
and BFCU41 are read-only and cannot be written to.
15-64
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
S4STAT2
7
6
—
—
5
4
3
2
1
BFCU41 BFCU40 MERR43 PERR43 OERR43
0
—
0 S4BUF3 overrun error: no
1 S4BUF3 overrun error: yes
0 S4BUF3 parity error: no
1 S4BUF3 parity error: yes
0 S4BUF3 multiprocessor communication error: no
1 S4BUF3 multiprocessor communication error: yes
BFCU4 Buffer counter monitor during SCI4
1
0
4-stage buffer mode
0
0
Write to S4BUF0 next
0
1
Write to S4BUF1 next
1
0
Write to S4BUF2 next
1
1
Write to S4BUF3 next
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-28 Configuration of S4STAT2
15
15-65
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[9]
SCI4 Interrupt Control Register (SR4INT)
When SCI4 is in the 4-stage buffer mode (SR4EXP bit of SR4CON is "1"), the 7-bit
SR4INT register controls the receive-ready interrupt requests for each receive buffer
(S4BUF0 to S4BUF3).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SR4INT becomes 01H.
RV4IRQ0 (bit 4) of SR4INT monitors RV4IRQ0 (bit 3) of S4STAT0. During the 4-stage
buffer mode, by reading SR4INT once, it is possible to verify which buffer has generated
a receive-ready. This bit is read-only and writes are ignored. To clear (write to) this bit,
write to RV4IRQ0 (bit 5) of S4STAT0.
Figure 15-29 shows the configuration of SR4INT.
<Description of Each Bit>
• RV4IE1 (bit 1)
This bit enables or disables the generation of SCI4 S4BUF1 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV4IE2 (bit 2)
This bit enables or disables the generation of SCI4 S4BUF2 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV4IE3 (bit 3)
This bit enables or disables the generation of SCI4 S4BUF3 receive-ready interrupt
requests. If this bit is "1", generation is enabled, and if "0", generation is disabled.
• RV4IRQ0 (bit 4)
This bit monitors RV4IRQ0 of S4STAT0. (Read-only)
This bit is set to "1" when an SCI4 S4BUF0 receive-ready is generated. To clear this
bit to "0", clear RV4IRQ0 of S4STAT0.
• RV4IRQ1 (bit 5)
This bit is set to "1" when an SCI4 S4BUF1 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI4 interrupt is processed, so clear it by
the program.
• RV4IRQ2 (bit 6)
This bit is set to "1" when an SCI4 S4BUF2 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI4 interrupt is processed, so clear it by
the program.
• RV4IRQ3 (bit 7)
This bit is set to "1" when an SCI4 S4BUF3 receive-ready is generated. This bit is not
automatically cleared to "0" even when an SCI4 interrupt is processed, so clear it by
the program.
15-66
MSM66591/ML66952 User's Manual
Chapter 15 Serial Port Functions
SR4INT
7
6
5
4
3
2
1
RV4IRQ3 RV4IRQ2 RV4IRQ1 RV4IRQ0 RV4IE3 RV4IE2 RV4IE1
0
—
0 S4BUF1 receive-ready interrupt request generation: disabled
1 S4BUF1 receive-ready interrupt request generation: enabled
0 S4BUF2 receive-ready interrupt request generation: disabled
1 S4BUF2 receive-ready interrupt request generation: enabled
0 S4BUF3 receive-ready interrupt request generation: disabled
1 S4BUF3 receive-ready interrupt request generation: enabled
0 S4BUF0 receive-ready generation: no (see note)
1 S4BUF0 receive-ready generation: yes (see note)
0 S4BUF1 receive-ready generation: no
1 S4BUF1 receive-ready generation: yes
0 S4BUF2 receive-ready generation: no
1 S4BUF2 receive-ready generation: yes
0 S4BUF3 receive-ready generation: no
1 S4BUF3 receive-ready generation: yes
[Note]
RV4IRQ0 is read-only.
To clear, write to the RV4IRQ0 bit of S4STAT0.
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 15-29 Configuration of SR4INT
15-67
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.3 Operation of Serial Ports
15.3.1 Transmit Operation
<UART Normal Mode>
The receive operation in this mode is shared by SCI0 and SCI1.
The clock pulse (BRGn), generated by the baud rate generator (SnTM), is divided by 16
to generate the transmit shift clock (STnCLK) (refer to Figure 15-30).
The transmit circuit controls the transfer of transmit data synchronizing with STnCLK.
The transmit operation is started with a signal to write transmit data to SnBUF0,
(WSnBUF: write instruction to SnBUF0, for example, a signal that is output if "STB A,
SnBUF0" is executed) as a trigger.
If WSnBUF is generated, a transmit start signal (LSTnSF) is generated after 1 CLK
(master clock).
The content of SnBUF0 is transferred to the transmit register at the fall of LSTnSF.
At this time, the transmit operation starts, and the STnFREE signal that indicates
transmitting is set to "L" level.
Then a transmit interrupt (TXnREADY) request is generated synchronizing with the
signal (M1S1) that indicates the beginning of an instruction execution, and the interrupt
request flag (QSCIn) is set to "1". When STnFREE becomes "L" level, a start bit is
generated synchronizing with the fall of the next STnCLK, and the TXDn pin changes
from "H" to "L" level at the rising edge of next CLK.
Hereafter, transmit data (LSB first) and a parity bit are added according to the specification of STnCON, and a stop bit is finally added, and a 1 frame transmission ends.
In the MSM66591/ML66592 serial port transmit circuit, SnBUF0 and the transmit
register have a double structure, so that the next data can be written to SnBUF0 during
a transmission.
In this case, when a 1 frame transmission ends with a stop bit, the start bit of the next
transmission is generated, and the TXDn pin becomes "L" level.
In this mode, the default level on the TXDn pin is "H" level (when the corresponding bit
of the port secondary function register = "1").
[Note] n = 0–4.
<UART Multiprocessor Communication Mode>
In UART multiprocessor communication mode, transmission is controlled by the same
timing as UART normal mode. The differences follow.
• An MPC bit ("1": address transmitted; "0": data transmitted) is added between the end
of data (MSB bit) and the parity bit.
15-68
Timing for STnCLK generation by 1/16 BRGn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
BRGn
1/16 BRGn
STnCLK
Transmit timing (with parity bit, 2 stop bits)
STnCLK
CLK
WSnBUF
15-69
LSTnSF
STnFREE
START
BIT
D (LSB)
Explanation of Symbols
BRGn :
1/16 BRGn :
STnCLK :
CLK :
WSnBUF :
LSTnSF :
STnFREE :
TXDn (pin) :
M1S1 :
TXnREADY :
* n = 0–4 :
D (MSB)
PARITY
BIT
STOP
BIT
STOP
BIT
M1S1
TXnREADY
clock pulse generated by baud rate generator (SnTM)
BRGn divided by 16
transmit shift clock
master clock
write signal to SnBUF
transmit start signal
signal that indicates transmitting ("0")
transmit data output from pin (P6_7, P6_3, P9_1, P9_3, P9_5)
signal that indicates beginning of an instruction
transmit interrupt request signal
Figure 15-30 Example of Timing Diagram in Transmit UART Normal Mode
NEXT
START
BIT
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
TXDn (pin)
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Synchronous Normal Master Mode (SCI1 only)>
The clock pulse (BRG1), generated by the baud rate generator (S1TM), is divided by 4
to generate the transmit shift clock (ST1CLK) (refer to Figure 15-31).
The transmit circuit controls the transfer of transmit data synchronizing with ST1CLK.
The transmit operation is started with a signal to write transmit data to S1BUF,
(WS1BUF: write signal to S1BUF. For example, a signal that is output if "STB A,
S1BUF" is executed) as a trigger.
If WS1BUF is generated, a transmit start signal (LST1SF) is generated after 1 CLK
(master clock).
The content of S1BUF is transferred to the transmit register at the fall of LST1SF.
At this time, the transmit operation starts, and the ST1FREE signal that indicates
transmitting is set to "L" level.
Then a transmit interrupt (TX1READY) request is generated synchronizing with the
signal (M1S1) that indicates the beginning of an instruction execution, and the interrupt
request flag (QSCI1) is set to "1".
When ST1FREE becomes "L" level, the transmit shift clock is output from the TXC1 pin
in synchronization with the falling edge of the second ST1CLK, and at the rising edge of
next CLK, bit 0 (LSB first) of the transmit data is output from the TXD1 pin.
Hereafter, transmit data and a parity bit are added synchronizing with TXC1 (ST1CLK),
according to the specification of ST1CON, and a 1 frame transmission ends.
TXD1 changes immediately before the fall of TXC1 (variable according to the S1TM set
value and the original oscillation clock).
In this way the receive side fetches TXD1 at the rise of TXC1.
In this mode, the default level on TXD1 pin is "H" level (when the corresponding bit of
the port secondary function register = "1").
<Synchronous Multiprocessor Communication Master Mode (SCI1 only)>
In synchronous multiprocessor communication master mode, transmit is controlled by
the same timing as synchronous normal master mode. The differences are shown
below.
• An MPC bit ("1": address transmitted; "0": data transmitted) is added between the end
of data (MSB bit) and the parity bit.
[Note] SCI0, SCI2, SCI3, and SCI4 do not have synchronous mode.
15-70
Timing for ST1CLK generation by 1/4 BRG1
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
BRG1
1/4 BRG1
ST1CLK
TXC1 (pin)
Transmit timing (with parity bit)
ST1CLK
CLK
WS1BUF
LST1SF
15-71
ST1FREE
TXC1 (pin)
D (LSB)
D (MSB)
PARITY
BIT
M1S1
TX1READY
Explanation of Symbols
BRG1 :
1/4 BRG1 :
ST1CLK :
TXC1 (pin) :
CLK :
WS1BUF :
LST1SF :
ST1FREE :
TXD1 (pin) :
M1S1 :
TX1READY :
clock pulse generated by baud rate generator (S1TM)
BRG1 divided by 1/4
transmit shift clock
transmit shift clock output from pin (P6_5)
master clock
write signal to S1BUF
transmit start signal
signal that indicates transmitting ("0")
transmit data output from pin (P6_3)
signal that indicates beginning of an instruction
transmit interrupt request signal
Figure 15-31 Example of Timing Diagram in Transmit Synchronous Normal Master Mode
D (LSB)
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
TXD1 (pin)
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Synchronous Normal Slave Mode (SCI1 only)>
In slave mode, the transmit clock is input externally. The edge is detected synchronizing
with a CLK to generate ST1CLK (refer to Figure 15-32).
The transmit circuit controls the transfer of the transmit data synchronizing with
ST1CLK.
The transmit operation is started with a signal to write transmit data to S1BUF
(WS1BUF: write instruction to S1BUF. For example, a signal that is output if "STB A,
S1BUF" is executed) as the trigger.
If WS1BUF is generated, a transmit start signal (LST1SF) is generated after 1 CLK
(master clock).
The content of S1BUF is transferred to the transmit register at the fall of LST1SF.
At this time, the transmit operation starts, and the ST1FREE signal that indicates
transmitting is set to "L" level.
Then a transmit interrupt (TX1READY) request is generated synchronizing with the
signal (M1S1) that indicates the beginning of an instruction execution, and the interrupt
request flag (QSCI1) is set to "1".
When ST1FREE becomes "L" level, at the rising edge of next CLK, bit 0 (LSB first) is
output from the TXD1 pin. Bit 1 of the transmit data is output from the TXD1 pin at the
rising edge of next CLK after the fall of ST1CLK.
Hereafter, transmit data and a parity bit are added synchronizing with TXC1 (ST1CLK),
according to the specification of ST1CON, and a 1 frame transmission ends.
TXD1 changes after the fall of ST1CLK, that detects the edge of TXC1, which is input
externally.
In this way the receive side fetches TXD1 at the rise of TXC1.
<Synchronous Multiprocessor Communication Slave Mode (SCI1 only)>
In synchronous multiprocessor communication slave mode, the transmit is controlled by
the same timing as synchronous normal slave mode. The differemces are shown
below.
• An MPC bit ("1": address transmitted; "0": data transmitted) is added between the end
of data (MSB bit) and the parity bit.
[Note] SCI0, SCI2, SCI3, and SCI4 do not have synchronous mode.
15-72
Timing for ST1CLK generation by TXC1 edge detection
CLK
TXC1 (pin)
Edge detection
ST1CLK
Transmit timing (with parity bit)
ST1CLK
CLK
WS1BUF
15-73
LST1SF
ST1FREE
TXC1 (pin)
D (LSB)
D (bit 1)
D (MSB)
PARITY
BIT
D (LSB)
M1S1
TX1READY
Explanation of Symbols
CLK :
TXC1 (pin) :
Edge detection :
ST1CLK :
WS1BUF :
LST1SF :
ST1FREE :
TXD1 (pin) :
M1S1 :
TX1READY :
master clock
transmit shift clock input from pin (P6_5)
transmit shift clock in which TXC1 pin input edge is detected by CLK
transmit shift clock
write signal to S1BUF
transmit start signal
signal that indicates transmitting ("0")
transmit data output from pin (P6_3)
signal that indicates beginning of an instruction
transmit interrupt request signal
Figure 15-32 Example of Timing Diagram in Transmit Synchronous Normal Slave Mode
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
TXD1 (pin)
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
15.3.2 Receive Operation
The UART mode used by the SCI0, SCI2, SCI3, and SCI4 serial ports on the receive
side has a single buffer mode and a 4-stage buffer mode. Single buffer mode has a
single stage of receive buffer, and 4-stage buffer mode has four stages of receive
buffers. SCI1 has single buffer mode only.
[1]
Single Buffer Mode
<UART Normal Mode>
The clock pulse (BRGn), generated by the baud rate generator (SnTM), is divided by 16
to generate the receive shift clock (SRnCLK) (refer to Figure 15-33). The 1/16 dividing
circuit stops in reset status until the receive operation starts.
The 7th, 8th and 9th pulses of the 1/16 division become the input sampling clock of the
RXDn pin, and the 10th pulse becomes SRnCLK. The receive circuit controls the
fetching of the receive data, synchronizing with SRnCLK.
The receive operation is started (SRnREN of SRnCON must be "1" at this time) when
the RXDn pin is changed from "H" to "L" level, and the SRnFREE signal that indicates
receiving is set to "L" level.
When SRnFREE becomes "L" level, the 1/16 dividing circuit, that has been stopped in
reset status, operates, and the start bit ("L" level) is sampled by 3 sampling clocks of
the 1/16 division (7th, 8th and 9th). If 2 or more sampling clocks are in "L" level, the
start bit is judged as valid, and the receive operation continues. If 2 or more sampling
clocks are in "H" level, the start bit is judged as invalid, and the receive operation is
initialized (SRnFREE becomes "H" level), and then stops.
Receive data is sampled by 3 sampling clocks of the 1/16 division (7th, 8th and 9th),
and 2 or more values of the sampled values are shifted in to the receive register as
receive data by the 10th pulse (SRnCLK).
Hereafter, receive data continues to be received according to the specification of
SRnCON. The stop bit is received, the receive operation ends, and the LSRnBUF
signal is generated.
The receive operation ends when the first stop bit is detected, regardless of whether the
stop bit of the receive data is 1 bit or 2 bits.
If LSRnBUF is generated, the content of the receive register (receive data) is transferred to SnBUF, an overrun error, framing error and parity error (if parity bit exists) are
set, a receive interrupt request signal (RXnREADY) is generated synchronizing with the
M1S1 signal, which indicates the beginning of an instruction, and the interrupt request
flag (QSCIn) is set to "1".
<UART Multiprocessor Communication Mode>
In UART multiprocessor communication mode, receive is controlled by the same timing
as UART normal mode. The differences are shown below.
• Setting of multiprocessor communication error
• If SRnMPC of SRnCON is "0", receive data is accepted regardless of the MPC bit of
the receive data. When SRnMPC of SRnCON is "1", receive data is accepted if the
MPC bit of receive data is "1", but receive data is not accepted if the MPC bit of
receive data is "0". This means that data shifted in the shift register will not be loaded
to SnBUF, and also that an interrupt request will not be generated.
[Note] n = 0–4.
15-74
Timing for generation of sampling CLKn and SRnCLK by 1/16 BRGn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
BRGn
1/16 BRGn
Sampling CLKn
SRnCLK
Receive timing (with parity bit)
CLK
RXDn (pin)
START
BIT
D (LSB)
D (MSB)
PARITY
BIT
STOP
BIT
STOP
BIT
NEXT
START
BIT
D (LSB)
15-75
Edge detection
1/16 counter stop
SRnFREE
1/16 counter start
1/16 counter start
SRnCLK
LSRnBUF
M1S1
RXnREADY
Explanation of Symbols
BRGn:
Sampling CLKn:
CLK:
Edge detection:
LSRnBUF:
RXnREADY:
clock pulse generated by baud rate generator (SnTM)
clock to sample receive data
master clock
receive data on which the RXDn signal edge is detected by CLK
receive end signal
receive interrupt request signal
1/16 BRGn:
SRnCLK:
RXDn (pin):
SRnFREE:
M1S1:
BRGn divided by 1/16
receive shift clock
receive data that is received from pins (P6_6, P6_2)
signal that indicates receiving ("0")
signal that indicates beginning of an instruction
* n = 0 or 1
Figure 15-33 Example of Timing Diagram in Receive UART Normal Mode
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
Sampling CLKn
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Synchronous Normal Master Mode (SCI1 only)>
The clock pulse (BRG1), generated by the baud rate generator (S1TM), is divided by 4
to generate the receive shift clock (SR1CLK), and the receive data sampling clock is
generated (refer to Figure 15-34).
The 2nd pulse of the 1/4 division becomes the input sampling clock of the RXD1 pin,
and the 3rd pulse becomes SR1CLK. The receive circuit controls the fetching of the
receive data synchronizing with SR1CLK.
The receive operation is started when SR1REN of SR1CON is set to "1", and the
SR1FREE signal, that indicates receiving, is set to "L" level.
When SR1FREE becomes "L" level, the receive shift clock is output from the RXC1 pin
synchronizing with the next SR1CLK. The receive data just sampled is shifted in the
receive register by the next SR1CLK.
Sampling of receive data is performed only once.
When the receive shift clock rises, SR1CLK is generated, and receive data is shifted in
the receive register. Therefore the transmit side transmits the transmit data synchronizing with the fall of the transmit shift clock.
Hereafter, the receive shift clock is output from the RXC1 pin according to the specification of SR1CON, and receive data is sequentially shifted in the receive register.
If the final output of the receive shift clock ends, the receive end signal LSR1BUF is
generated synchronizing with the next SR1CLK.
If LSR1BUF is generated, the content of the receive register (receive data) is transferred to S1BUF, an overrun error and parity error (if parity bit exists) are set, the
receive interrupt request signal (RX1READY) is generated synchronizing with the M1S1
signal that indicates the beginning of an instruction, and the interrupt request flag
(QSCI1) is set to "1". Then SR1FREE becomes "H" level, SR1REN of SR1CON becomes "0", and the receive operation ends.
<Synchronous Multiprocessor Communication Master Mode (SCI1 only)>
In synchronous multiprocessor communication master mode, receive is controlled by
the same timing as synchronous normal master mode. The differences are shown
below.
• Setting of multiprocessor communication error
• If SR1MPC of SR1CON is "0", receive data is accepted regardless of the MPC bit of
receive data. When SR1MPC of SR1CON is "1", receive data is accepted if the MPC
bit of receive data is "1", but receive data is not accepted if the MPC bit of receive
data is "0". This means that data shifted in the shift register will not be loaded to
S1BUF, and also that an interrupt request wii not be generated.
15-76
Timing for generation of sampling CLK1, SR1CLK, and RXC1 (pin) by 1/4 BRG
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
BRG1
1/4 BRG1
Sampling CLK1
SR1CLK
RXC1 (pin )
Receive timing (with parity bit)
Sampling CLK1
SR1CLK
CLK
WSR1CON
15-77
SR1REN
SR1FREE
RXC1 start
RXC1 stop
RXC1 (pin)
D (LSB)
D (bit 1)
D (LSB)
INRXD
D (MSB)
D (bit 7)
PARITY BIT
D (MSB)
PARITY BIT
LSR1BUF
M1S1
RX1READY
Explanation of Symbols
BRG1 :
Sampling CLK1 :
RXC1 (pin) :
WSR1CON :
SR1FREE :
INRXD :
M1S1 :
clock pulse generated by baud rate generator (S1TM)
clock to sample data received at RXD1
receive shift clock output from pin (P6_4)
write signal to SR1CON
signal that indicates receiving ("0")
receive data sampled from RXD1 by the RXD sampling clock
signal that indicates beginning of an instruction
1/4 BRG1 : BRG1 divided by 1/4
SR1CLK : receive shift clock
CLK : master clock
SR1REN : receive enable signal (bit 7of SR1CON)
RXD1 (pin) : receive data input from pin (P6_2)
LSR1BUF : receive end signal
RX1READY : receive interrupt request signal
Figure 15-34 Example of Timing Diagram in Receive Synchronous Normal Master Mode
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
RXD1 (pin)
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
<Synchronous Normal Slave Mode (SCI1 only)>
The receive operation starts when SR1REN of SR1CON is set to "1" by the program.
SR1FREE, that indicates receiving, becomes "L" level, and the receive shift clock to
input to the RXC1 pin is accepted (refer to Figure 15-35).
The receive shift clock detects the edge synchronizing with the CLK to generate
SR1CLK.
Receive data is controlled synchronizing with SR1CLK.
If the RXC1 pin becomes "L" level, and then becomes "H" level, the receive shift clock
SR1CLK is generated by the edge detection circuit.
If SR1CLK is generated, the receive data just sampled the RXD1 pin is shifted in the
receive register.
The RXD1 pin is sampled while the RXC1 pin is in "L" level. The timing to shift in the
receive register occurs after the RXC1 pin rises. Therefore the transmit side transmits
data synchronizing with the fall of the RXC1 pin, which is the fall of the transmit shift
clock.
Hereafter, receive data is shifted in the receive register sequentially, synchronizing with
the receive shift clock, which is input according to the specification of SR1CON.
If the receive shift clock finally rises, SR1CLK acquired by edge detection is generated,
and the final receive data is input. Then 1 CLK later, the receive end signal LSR1BUF is
generated.
If LSR1BUF is generated, the content of the receive register (receive data) is transferred to S1BUF, an overrun error and parity error (if parity bit exists) are set, the
receive interrupt request signal (RX1READY) is generated, synchronizing with the
M1S1 signal that indicates the beginning of an instruction, and the interrupt request flag
(QSCI1) is set to "1". Then SR1FREE becomes "H" level. At this time SR1REN of
SR1CON does not become "L" level, and the receive operation starts again if the next
receive shift clock is input.
<Synchronous Multiprocessor Communication Slave Mode (SCI1 only)>
In synchronous multiprocessor communication slave mode, receive is controlled by the
same timing as synchronous normal slave mode. The differences are shown below.
• Setting of multiprocessor communication error
• If SR1MPC of SR1CON is "0", receive data is accepted regardless of the MPC bit of
receive data. When SR1MPC of SR1CON is "1", receive data is accepted if the MPC
bit of receive data is "1", but receive data is not accepted if the MPC bit of receive
data is "0". This means that data shifted in the shift register will not be loaded to
S1BUF, and also that an interrupt request will not be generated.
15-78
Timing for generation of sampling CLK1 and SR1CLK by RXC1(pin) edge detection
CLK
RXC1 (pin)
Edge detection
15-79
SR1CLK
Explanation of Symbols
CLK
RXC1 (pin)
Edge detection
SR1CLK
Sampling CLK1
:
:
:
:
:
master clock
receive shift clock input from pin (P6_4)
receive shift clock in which RXC1 pin input edge is detected by CLK
receive shift clock
clock to sample receive data
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
RXC1"L"period
Sampling CLK1
15
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
Receive timing (with parity bit)
Sampling CLK1
SR1CLK
CLK
WSR1CON
SR1REN
SR1FREE
RXC1 (pin)
15-80
RXD1 (pin)
D (LSB)
D (LSB)
INRXD
D (bit 6)
D (bit 6)
D (MSB)
D (MSB)
PARITY
BIT
D (LSB)
PARITY
BIT
D (LSB)
D (bit 1)
D (bit 1)
LSR1BUF
M1S1
RX1READY
Explanation of Symbols
Sampling CLK1
CLK
SR1REN
RXC1 (pin)
INRXD
M1S1
:
:
:
:
:
:
SR1CLK :
clock to sample receive data
WSR1CON :
master clock
SR1FREE :
receive enable signal (bit 7 of SR1CON)
RXD1 (pin) :
receive shift clock input from pin (P6_4)
LSR1BUF :
receive data sampled from RXD1 by the RXD sampling clock
RX1 READY :
signal that indicates the beginning of an instruction
receive shift clock
write signal to SR1CON
signal that indicates receiving ("0")
receive data input from pin (P6_2)
receive end signal
receive interrupt request signal
Figure 15-35 Example of Timing Diagram in Receive Synchronous Normal Slave Mode (2)
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
[2]
4-Stage Buffer Mode
The 4-stage buffer mode is entered by setting SRnEXP (bit 3) of SRnCON. During the
4-stage buffer mode, consecutive reception of up to a maximum of 4 bytes is possible.
After 4 bytes are received, they can be collectively processed by an interrupt.
<4-Stage Buffer Mode with UART Reception: SCI0 Example>
During the 4-stage buffer mode, the receive buffers form a ring buffer configuration. At
the completion of each 1-byte reception, the contents of the receive register (receive
data) are transferred to a receive buffer in the order of S0BUF0, S0BUF1, S0BUF2,
S0BUF3, S0BUF0, etc. Therefore, data is received up to the S0BUFn receive buffer
(where n = 0 to 3). After processing that data, if reception is continued, data is received
beginning from the S0BUF(n + 1) buffer.
For example, after receiving data up to S0BUF1 and processing that data, the next data
reception begins with S0BUF2. Or, after receivingdata up to S0BUF3 and processing
that data, the next data reception begins with S0BUF0.
After receiving data up to S0BUFn and processing that data, if it is desired to receive m
consecutive bytes (m ≤ 4) of data and then process that data by an interrupt, since an
interrupt will be generated after data is received in the S0BUF(n + 1) through S0BUF(n
+ m) buffers, enable interrupt requests for S0BUF(n + m), the last buffer to receive data,
and then receive the data.
For example, after completing processing up to S0BUF2, if it is desired to receive 3
consecutive bytes of data and then process that data by an interrupt, since the 3 bytes
of data will be received in the order of S0BUF3, S0BUF0, and S0BUF1, enable interrupt
generation only for S0BUF1, the last buffer to receive data, and then begin the data
reception. To enable interrupt generation for S0BUF1, set RV0IE1 (SCI0 receive
interrupt enable flag) of SR0INT to "1". In this case, after reception is completed for
S0BUF3 through S0BUF1, an SCI0 receive complete interrupt request is generated,
and the SCI0 receive interrupt request flags (RV0IRQ1 of SR0INT and QSCI0 of
IRQ1L) are set.
Because a parity error flag, multiprocessor communication flag and overrun error flag
are provided for each receive buffer (4 bits in total), data reception errors can be
verified by reading the error flags that correspond to buffers. The framing error flag
consists of 1 bit. If a framing error occurs even in just 1 byte of the received data, the
framing error flag will be set to "1" at that time.
If 5 or more bytes of data are consecutively received, new data will overwrite the previous data, beginning with the receive buffer that received the first data. At that time, if
the data transferred to the receive buffer during the previous receive operation has not
been read by the CPU, the overrun error flag of each receive buffer will be set to "1".
After a framing or other error has occurred, read BFCU00 (bit 4) and BFCU01 (bit 5) of
S0STAT2 to verify which receive buffer will data be transferred to at the completion of
the next reception.
Receive timing in 1 frame of the 4-stage buffer mode is controlled in the same manner
as reception in the single buffer mode.
SCI2, SCI3 and SCI4 also operate in the same manner.
Figure 15-36 shows a timing example of the 4-stage buffer mode with UART reception.
15-81
15
1-frame
Data 1
Data 2
1-frame
Data 3
1-frame
1-frame
Data 4
Data 5
MSM66591/ML66592 User's Manual
Chapter 15 Serial Port Functions
RXDn (pin)
1-frame
LSRnBUF
M1S1
RXnREADY
SnBUF0
Data 5
Data 1
15-82
SnBUF1
Data 2
Data 3
SnBUF2
Data 4
SnBUF3
Explanation
of Symbols
LSRnBUF: receive end signal
SnBUF0: SCIn receive buffer 0
RXnREADY: receive interrupt request signal
SnBUF1: SCIn receive buffer 1
RxDn (pin): receive data input from pin
SnBUF2: SCIn receive buffer 2
M1S1: signal that indicates beginning of an instruction
SnBUF3: SCIn receive buffer 3
n = 0, 2, 3, 4
Figure 15-36 Example of Timing Diagram in Receive UART 4-Stage Buffer Mode
Chapter 16
A/D Converter Functions
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
16. A/D Converter Functions
The MSM66591/ML66592 have two sets of 10-bit A/D converters that support 12
channels of analog input, A/D Converter 0 (ADC0) and A/D Converter 1 (ADC1).
The basic configuration of A/D converter 0 and A/D converter 1 is the same, with the
only difference being the address of registers located in the SFR area.
Each A/D converter has three modes of operation: a scan mode that sequentially
converts selected multiple channels, a select mode that converts one selected channel,
and a hard select mode that activates the select mode when an interrupt request is
generated.
A successive approximation method using the Sample & Hold function is utilized to
convert analog quantities to digital quantities. The converted result is stored in the A/D
result registers (ADCR0–ADCR23).
Corresponding to ch0–ch23, pins AI0–AI23 are available as analog input-only pins.
Operation of the A/D converters is controlled by control registers located in the SFR
area (ADCON0L, ADCON0H, ADCON1L and ADCON1H).
Interrupts by the A/D converters in the scan, select or hard select modes are assigned
to the same interrupt vector. The generation of each interrupt factor (Yes/No) and
interrupt generation (Enable/Disable) are controlled by two 6-bit A/D interrupt control
registers (ADINTCON0 and ADINTCON1).
Figures 16-1 and 16-2 show the configurations of A/D Converter 0 and A/D Converter 1,
respectively. Table 16-1 lists the SFRs for A/D converter control.
16
16-1
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
AVDD
A/D
Conversion
Circuit
VREF
AGND
AI0
Interrupt
Request
Selector
Analog
Selector
AI11
ADCON0L
ADHSCON
ADCON0H
ADHENCON
ADINTCON0
ADHSEL0
ADCR0
ADCR1
ADCR2
ADCR3
ADCR4
ADCR5
ADCR6
ADCR7
ADCR8
ADCR9
ADCR10
ADCR11
Internal Bus
Figure 16-1 Configuration of A/D Converter 0 (ADC0)
For A/D converter specifications, see Chapter 25, "Electrical Characteristics."
AVDD
A/D
Conversion
Circuit
VREF
AGND
AI12
Interrupt
Request
Selector
Analog
Selector
AI23
ADCON1L
ADHSCON
ADCON1H
ADHENCON
ADINTCON1
ADHSEL1
ADCR12
ADCR13
ADCR14
ADCR15
ADCR16
ADCR17
ADCR18
ADCR19
ADCR20
ADCR21
ADCR22
ADCR23
Internal Bus
Figure 16-2 Configuration of A/D Converter 1 (ADC1)
16-2
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
Table 16-1 A/D Converter Contol SFR List
Address [H]
00E0
00E1
00E2
00E3
00E4
00E5
00E6
00E7
00E8
00E9
00EA
00EB
00EC✩
00ED✩
00EE✩
00EF
00F0
00F1
00F2
00F3
00F4
00F5
00F6
00F7
00F8
00F9
00FA
00FB
00FC✩
00FD✩
00FE✩
00FF✩
0158
0159
015A
015B
Name
Abbreviated Abbreviated R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
A/D Result Register 0
—
A/D Result Register 1
—
A/D Result Register 2
—
A/D Result Register 3
—
A/D Result Register 4
—
A/D Result Register 5
—
A/D Result Register 6
—
A/D Result Register 7
—
A/D Result Register 8
—
A/D Result Register 9
—
A/D Result Register 10
—
A/D Result Register 11
—
A/D0 Control Register L
ADCON0L
A/D0 Control Register H
ADCON0H
A/D Interrupt Control Register 0 ADINTCON0
A/D Hard Select Enable Register ADHENCON
A/D Result Register 12
—
A/D Result Register 13
—
A/D Result Register 14
—
A/D Result Register 15
—
A/D Result Register 16
—
A/D Result Register 17
—
A/D Result Register 18
—
A/D Result Register 19
—
A/D Result Register 20
—
A/D Result Register 21
—
A/D Result Register 22
—
A/D Result Register 23
—
A/D1 Control Register L
ADCON1L
A/D1 Control Register H
ADCON1H
A/D Interrupt Control Register 1 ADINTCON1
A/D Hard Select Software Control Register ADHSCON
ADCR0
ADCR1
ADCR2
ADCR3
ADCR4
ADCR5
ADCR6
ADCR7
ADCR8
ADCR9
ADCR10
ADCR11
—
—
—
—
ADCR12
ADCR13
ADCR14
ADCR15
ADCR16
ADCR17
ADCR18
ADCR19
ADCR20
ADCR21
ADCR22
ADCR23
—
—
—
—
A/D Hard Select Register 0
ADHSEL0
A/D Hard Select Register 1
—
—
ADHSEL1
*R/W
16
R/W
8
*R/W
16
R/W
8
R/W
16
Reset
State [H]
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
80
80
C0
00
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
Undefined
80
80
C0
FC
0000
0000
[Notes]
1.
Some addresses are not consecutive.
2.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
3.
*R/W indicates a special operation. Data can be written to the even number A/D result registers
(ADCR0, 2, 4, 6, 8, 10 and ADCR12, 14, 16, 18, 20, 22) and odd number A/D result registers (ADCR1, 3,
5, 7, 9, 11 and ADCR13, 15, 17, 19, 21, 23) separately in the following way:
- When data is written to ADCR0, the data is also written to ADCR0–ADCR10 at the same time; when
data is written to ADCR12, the data is also written to ADCR12–ADCR22 at the same time.
- When data is written to ADCR1, the data is also written to ADCR1–ADCR11; when data is written to
ADCR13 at the same time, the data is also written to ADCR13–ADCR23 at the same time.
16-3
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
16.1 Configuration of A/D Converter
Since the basic configurations of the A/D converter 0 and the A/D converter 1 are the
same, this section chiefly explains the configuration of A/D converter 0.
The A/D converter has three operation modes: scan mode, select mode, and hard
select mode.
[1]
Scan Mode
In scan mode, A/D conversion is sequentially performed from any channel out of ch0–
ch11 to ch11 (from any of ch12–ch23 to ch23 for A/D converter 1). The scan mode is
mainly controlled by the A/D control register L (ADCON0L, ADCON1L). In scan mode,
the scan mode provides the selection whether to stop A/D conversion at the end of A/D
conversion for ch11 (ch23 for A/D converter 1) or to restart A/D conversion automatically from the first channel specified.
[2]
Select Mode
In select mode, any channel of ch0–ch11 (any of ch12–ch23 for A/D converter 1) is
specified, and A/D conversion is performed for the specified channel. The select mode
is mainly controlled by the A/D control register H (ADCON0H, ADCON1H).
It is also possible to operate select mode during scan mode operation. In this case, A/D
conversion for a channel that A/D conversion is progressing for in scan mode, is
suspended at that point when select mode is specified, and A/D conversion for the
channel specified in select mode is performed. When A/D conversion in select mode
ends, A/D conversion in scan mode restarts from the suspended channel.
A/D conversion in scan mode
ch0
ch1
ch2
ch2
ch3
ch4
A/D conversion in select mode
q
q
A/D conversion for ch2 is suspended.
A/D conversion for ch4 in select mode starts.
w
A/D conversion for ch4 ends.
A/D conversion from ch2 in scan mode restarts.
w
Figure 16-3 Timing Diagram During Select Mode Operation in Scan Mode
[3]
Hard Select Mode
The hard select mode specifies a channel from ch0 to ch3 (from ch12 to ch15 for A/D
converter 1) and performs A/D conversion of the channel when an interrupt request is
generated.
16-4
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
The A/D hard select mode is controlled by the A/D hard select register 0 (ADHSEL0), A/
D hard select register 1 (ADHSEL1), and A/D hard select enable register
(ADHENCON).
An interrupt source to activate the A/D hard select mode is set to each channel (ch0–
ch3 and ch12–ch15) of the ADHSEL0 and ADHSEL1. An effective channel (ch0–ch3
and ch12–ch15) under the A/D hard select mode is set to the ADHENCON.
The change of the interrupt cause of a current channel during hard select mode operation is invalid.
Table 16-2 lists the interrupt causes to activate the A/D hard select mode.
Table 16-2 Interrupt Causes To Activate A/D Hard Select Mode
Interrupt Cause
Priority
1
PWC0/PWC1 underflow or match
2
PWC2/PWC3 underflow or match
3
PWC4/PWC5 underflow or match
4
PWC6/PWC7 underflow or match
5
PWC0/PWC1 match
6
PWC2/PWC3 match
7
PWC4/PWC5 match
8
PWC6/PWC7 match
9
CAP0 event generation
10
CAP1 event generation
11
GTMC/GEVC overflow
12
CAP15 event generation
13
FTM16 event generation
14
FTM17 event generation
15
Soft 0 (bit 0 of ADHSCON set by the program)
16
Soft 1 (bit 1 of ADHSCON set by the program)
16
The channels from ch0 to ch3 and ch12 to ch15 are prioritized as shown in Table 16-3.
Table 16-3 A/D Conversion Mode Priorities
Mode
Priority
Hard select mode ch0 (ch12)
High
Hard select mode ch1 (ch13)
Hard select mode ch2 (ch14)
Hard select mode ch3 (ch15)
Select Mode
Scan Mode
Low
16-5
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
If a higher priority mode A/D conversion request is generated while a lower priority
mode A/D conversion is being performed, the ongoing A/D conversion is suspended
and restarts after completion of the requested convension.
If, during execution of A/D conversion, a request for A/D conversion in the same mode
(interrupt source) as the ongoing A/D conversion is generated, the ongoing A/D conversion is given priority and the generated A/D conversion request is ignored.
Figure 16-4 shows the configuration of A/D hard select mode.
Dxxx
*Interrupt cause
generation source
Exxx
Qxxx
Dxxx
*Interrupt cause
generation source
Exxx
Qxxx
Dxxx
*Interrupt cause
generation source
Exxx
Qxxx
(IRQD)
* Only the interrupt
causes listed in Table 16-2
can activate the A/D hard
select mode.
(IRQ)
(IE)
A/D hard select request
Selector
A/D hard select register
Figure 16-4 A/D Hard Select Mode Configuration
16-6
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
16.2 Control Register of A/D Converter
[1]
A/D Control Register 0L (ADCON0L)
ADCON0L is a 7-bit register that primarily controls the scan mode of the A/D converter.
Figure 16-5 shows the configuration of ADCON0L.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADCON0L becomes 80H.
<Description of Each Bit>
• ADSNM00–ADSNM03 (bit 0–bit 3)
These 4 bits specify the scan channel in scan mode.
Change the scan channel after setting ADRUN0 (bit 4) to "0". When ADRUN0 is "1"
(when A/D conversion is running in scan mode), changing the scan channel is invalid.
• ADRUN0 (bit 4)
This bit specifies RUN/STOP of A/D conversion in scan mode.
If this bit is "1", A/D conversion RUN is selected, and if "0", A/D conversion STOP is
selected. When A/D conversion STOP is selected by setting SCNC0 (bit 6) to "1" after
a scan cycle is completed, ADRUN0 does not automatically become "0", even if A/D
conversion stops after a scan cycle is completed.
• SNEX0 (bit 5)
This bit specifies the A/D conversion start factor in scan mode.
If this bit is "0", the next conversion starts when the A/D conversion is over. If this bit
is "1", 1 channel A/D conversion starts at each valid edge of the external interrupt
input pin (INT1). At this time, bit 1 of the Port 6 secondary function control register
must be set to to "1", and the INT1 pin must be set to the secondary function.
Operation examples 1, 2 and 3 when SNEX0 is set to "1" are shown below.
1. In the case of an initial start, ADRUN0 is set to "1", and at the same time the first
channel of the scan channel is A/D converted. Then the 2nd or later channels of the
scan channels are sequentially A/D converted, synchronizing with the valid edge of
INT1.
2. When A/D conversion is stopped after the completion of a scan channel cycle, if A/
D conversion is restarted by setting INTSN0 to "0" by the program, A/D conversion
starts from the first channel of the scan channels, synchronizing with the valid edge of
INT1.
3. In other cases, set ADRUN0 and SNEX0 to "0" simultaneously by the program, and
set ADRUN0 and SNEX0 simultaneously to "1" by the program again. In this case the
first channel of the scan channels is A/D converted as soon as ADRUN0 becomes
"1". After that, A/D conversion is performed in synchronization with the valid edge of
INT1.
16-7
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
• SCNC0 (bit 6)
This bit specifies the operation after a scan channel cycle is completed.
If this bit is "0", A/D conversion starts from the first channel again, after a scan
channel cycle is completed. If this bit is "1", A/D conversion stops after the scan
channel cycle is completed. ADRUN0 (bit 4), however, does not become "0".
Use the following procedure (1) or (2) to perform the A/D conversion again.
(1) Set INTSN0 of ADINCON0 bit 0 to "0" by the program.
(2) Set SCNC0 to "0" by the program.
In this procedure the next conversion start mode is entered.
(Note that setting ADRUN0 to "1" again by the program does not start A/D conversion again.)
ADCON0L
7
6
—
5
4
3
2
1
0
SCNC0 SNEX0 ADRUN0 ADSNM03 ADSNM02 ADSNM01 ADSNM00
ADSNM0
3 2 1 0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 * *
A/D Converter 0 Scan Channel
ch0–ch11
ch1–ch11
ch2–ch11
ch3–ch11
ch4–ch11
ch5–ch11
ch6–ch11
ch7–ch11
ch8–ch11
ch9–ch11
ch10, ch11
ch11
Setting inhibited
0
1
Scan mode A/D conversion STOP
Scan mode A/D conversion RUN
0
1
Next conversion starts when conversion ends
Next conversion starts at valid edge of INT1
0
Next conversion starts when cycle is completed
1
Conversion stops when cycle is completed
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 16-5 Configuration of ADCON0L
16-8
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[2]
A/D Control Register 1L (ADCON1L)
ADCON1L is a 7-bit register that primarily controls the scan mode of the A/D converter.
Figure 16-6 shows the configuration of ADCON1L.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADCON1L becomes 80H.
<Description of Each Bit>
• ADSNM10–ADSNM13 (bit 0–bit 3)
These 4 bits specify the scan channel in scan mode.
Change the scan channel after setting ADRUN1 (bit 4) to "0". When ADRUN1 is "1"
(when A/D conversion is running in scan mode), changing the scan channel is invalid.
• ADRUN1 (bit 4)
This bit specifies RUN/STOP of A/D conversion in scan mode.
If this bit is "1", A/D conversion RUN is selected, and if "0", A/D conversion STOP is
selected. When A/D conversion STOP is selected by setting SCNC1 (bit 6) to "1" after
a scan cycle is completed, ADRUN1 does not automatically become "0", even if A/D
conversion stops after a scan cycle is completed.
• SNEX1 (bit 5)
This bit specifies the A/D conversion start factor in scan mode.
If this bit is "0", the next conversion starts when the A/D conversion is over. If this bit
is "1", 1 channel A/D conversion starts at each valid edge of the external interrupt
input pin (INT1). At this time, bit 1 of the Port 6 secondary function control register
must be set to to "1", and the INT1 pin must be set to the secondary function.
Operation examples 1, 2 and 3 when SNEX1 is set to "1" are shown below.
1. In the case of an initial start, ADRUN1 is set to "1", and at the same time the first
channel of the scan channel is A/D converted. Then the 2nd or later channels of the
scan channels are sequentially A/D converted, synchronizing with the valid edge of
INT1.
2. When A/D conversion is stopped after the completion of a scan channel cycle, if A/
D conversion is restarted by setting INTSN1 to "0" by the program, A/D conversion
starts from the first channel of the scan channels, synchronizing with the valid edge of
INT1.
3. In other cases, set ADRUN1 and SNEX1 to "0" simultaneously by the program, and
set ADRUN1 and SNEX1 simultaneously to "1" by the program again. In this case the
first channel of the scan channels is A/D converted as soon as ADRUN1 becomes
"1". After that, A/D conversion is performed in synchronization with the valid edge of
INT1.
16-9
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
• SCNC1 (bit 6)
This bit specifies the operation after a scan channel cycle is completed.
If this bit is "0", A/D conversion starts from the first channel again, after a scan
channel cycle is completed. If this bit is "1", A/D conversion stops after the scan
channel cycle is completed. ADRUN1 (bit 4), however, does not become "0".
Use the following procedure (1) or (2) to perform the A/D conversion again.
(1) Set INTSN1 of ADINCON1 bit 0 to "0" by the program.
(2) Set SCNC1 to "0" by the program.
In this procedure the next conversion start mode is entered.
(Note that setting ADRUN1 to "1" again by the program does not start A/D conversion again.)
ADCON1L
7
6
—
5
4
3
2
1
0
SCNC1 SNEX1 ADRUN1 ADSNM13 ADSNM12 ADSNM11 ADSNM10
ADSNM1
3 2 1 0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 * *
A/D Converter 1 Scan Channel
ch12–ch23
ch13–ch23
ch14–ch23
ch15–ch23
ch16–ch23
ch17–ch23
ch18–ch23
ch19–ch23
ch20–ch23
ch21–ch23
ch22, ch23
ch23
Setting inhibited
0
1
Scan mode A/D conversion STOP
Scan mode A/D conversion RUN
0
1
Next conversion starts when conversion ends
Next conversion starts at valid edge of INT1
0
Next conversion starts when cycle is completed
1
Conversion stops when cycle is completed
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 16-6 Configuration of ADCON1L
16-10
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[3]
A/D Control Register 0H (ADCON0H)
The ADCON0H is a 7-bit register that primarily controls the select mode of the A/D
converter 0.
Figure 16-7 shows the configuration of ADCON0H.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADCON0H becomes 80H.
<Description of Each Bit>
• ADSTM00–ADSTM03 (bit 0–bit 3)
These 4 bits specify the A/D conversion channel in select mode.
Change the select channel after setting STS0 (bit 4) to "0". When STS0 is "1" (when
A/D conversion is running in select mode), changing the select channel is invalid.
• STS0 (bit 4)
This bit specifies RUN/STOP of A/D conversion in select mode.
If this bit is "1", A/D conversion of the channel specified by ADSTM00–ADSTM03 (bit
0–bit 3) starts. This bit becomes "0" when A/D conversion ends.
• ADTM00, ADTM01 (bit 5, bit 6)
These 2 bits specify the number of clocks required for A/D conversion per channel.
Basically, the more the number of clocks required for A/D conversion is increased
(i.e. the longer the time required for A/D conversion is made), the higher the accuracy will be.
Changing the number of clocks during A/D conversion is ignored.
16
16-11
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADCON0H
7
6
—
5
ADTM01 ADTM00
4
STS0
3
2
1
0
ADSTM03 ADSTM02 ADSTM01 ADSTM00
ADSTM0
A/D Converter 0 Select Channel
3 2 1 0
0 0 0 0
ch0
0 0 0 1
ch1
0 0 1 0
ch2
0 0 1 1
ch3
ch4
0 1 0 0
0 1 0 1
ch5
0 1 1 0
ch6
0 1 1 1
ch7
1 0 0 0
ch8
1 0 0 1
ch9
ch10
1 0 1 0
1 0 1 1
ch11
1 1 * *
Setting inhibited
0
1
Select mode A/D conversion STOP
Select mode A/D conversion RUN
ADTM0
1
0
0
1
0
Number of clocks for A/D
conversion per channel
(f = 24 MHz)
512 CLK (21.3 ms)
384 CLK
256 CLK
0
1
*
"*" indicates either "0" or "1".
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 16-7 Configuration of ADCON0H
16-12
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[4]
A/D Control Register 1H (ADCON1H)
The ADCON1H is a 7-bit register that primarily controls the select mode of the A/D
converter 1.
Figure 16-8 shows the configuration of ADCON1H.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADCON1H becomes 80H.
<Description of Each Bit>
• ADSTM10–ADSTM13 (bit 0–bit 3)
These 4 bits specify the A/D conversion channel in select mode.
Change the select channel after setting STS1 (bit 4) to "0". When STS1 is "1" (when
A/D conversion is running in select mode), changing the select channel is invalid.
• STS1 (bit 4)
This bit specifies RUN/STOP of A/D conversion in select mode.
If this bit is "1", A/D conversion of the channel specified by ADSTM10–ADSTM13 (bit
0–bit 3) starts. This bit becomes "0" when A/D conversion ends.
• ADTM10, ADTM11 (bit 5, bit 6)
These 2 bits specify the number of clocks required for A/D conversion per channel.
Basically, the more the number of clocks required for A/D conversion is increased
(i.e. the longer the time required for A/D conversion is made), the higher the accuracy will be.
Changing the number of clocks during A/D conversion is ignored.
16
16-13
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADCON1H
7
6
—
5
ADTM11 ADTM10
4
STS1
3
2
1
0
ADSTM13 ADSTM12 ADSTM11 ADSTM10
ADSTM1
A/D Converter 1 Select Channel
3 2 1 0
0 0 0 0
ch12
0 0 0 1
ch13
0 0 1 0
ch14
0 0 1 1
ch15
ch16
0 1 0 0
0 1 0 1
ch17
0 1 1 0
ch18
0 1 1 1
ch19
1 0 0 0
ch20
1 0 0 1
ch21
ch22
1 0 1 0
1 0 1 1
ch23
1 1 * *
Setting inhibited
0
1
Select mode A/D conversion STOP
Select mode A/D conversion RUN
ADTM1
Number of clocks for A/D
conversion per channel
(f = 24 MHz)
512 CLK (21.3 ms)
0
0
384 CLK
0
1
1
256 CLK
*
"*" indicates either "0" or "1".
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
1
0
Figure 16-8 Configuration of ADCON1H
16-14
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[5]
A/D Interrupt Control Register 0 (ADINTCON0)
ADINTCON0 is a 6-bit register that primarily controls the interrupt request generation of
the A/D converter 0.
Figure 16-9 shows the configuration of ADINTCON0.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADINTCON0 becomes
C0H.
<Description of Each Bit>
• INTSN0 (bit 0)
This bit indicates the completion of a scan channel cycle.
If this bit is "0", a cycle is not completed, and if "1", a cycle is completed. The phrase
"cycle is completed" indicates that the A/D conversion of ch11 is completed. This bit
must be reset to "0" by the program.
• INTST0 (bit 1)
This bit indicates the end of A/D conversion in select mode.
If this bit is "1", A/D conversion has ended. This bit must be reset to "0" by the
program.
• ADSNIE0 (bit 2)
This bit specifies enable/disable of an interrupt request generation when a scan
channel cycle is completed.
If this bit is "0", the interrupt request generation is disabled, and if "1", is enabled.
The phrase "cycle is completed" indicates that the A/D conversion of ch11 is completed.
• ADSTIE0 (bit 3)
This bit specifies enable/disable of an interrupt request generation to end A/D
conversion in select mode.
If this bit is "0", the interrupt request generation is disabled, and if "1", is enabled.
• INTHS0 (bit 4)
This bit indicates the end of A/D conversion in hard select mode.
"1" on this bit indicates end of A/D conversion in hard select mode.
This bit must be reset to "0" by the program.
• ADHSIE0 (bit 5)
This bit specifies enable/disable of an interrupt request generation to end A/D
conversion in hard select mode.
If this bit is "0", the interupt request generation is disabled, and if "1", is enabled.
16-15
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADINTCON0
7
6
—
—
5
4
3
2
1
ADHSIE0 INTHS0 ADSTIE0ADSNIE0 INTST0
0
INTSN0
0
Scan channel cycle: no
1
Scan channel cycle: yes
0
Select mode end: no
1
Select mode end: yes
0 Interrupt request generation by INTSN0: disabled
1 Interrupt request generation by INTSN0: enabled
0 Interrupt request generation by INTST0: disabled
1 Interrupt request generation by INTST0: enabled
0
Hard Select mode end: no
1
Hard Select mode end: yes
0 Interrupt request generation by INTHS0: disabled
1 Interrupt request generation by INTHS0: enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 16-9 Configuration of ADINTCON0
16-16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[6]
A/D Interrupt Control Register 1 (ADINTCON1)
ADINTCON1 is a 6-bit register that primarily controls the interrupt request generation of
the A/D converter 1.
Figure 16-10 shows the configuration of ADINTCON1.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADINTCON1 becomes
C0H.
<Description of Each Bit>
• INTSN1 (bit 0)
This bit indicates the completion of a scan channel cycle.
If this bit is "0", a cycle is not completed, and if "1", a cycle is completed. The phrase
"cycle is completed" indicates that the A/D conversion of ch23 is completed. This bit
must be reset to "0" by the program.
• INTST1 (bit 1)
This bit indicates the end of A/D conversion in select mode.
If this bit is "1", A/D conversion has ended. This bit must be reset to "0" by the
program.
• ADSNIE1 (bit 2)
This bit specifies enable/disable of an interrupt request generation when a scan
channel cycle is completed.
If this bit is "0", the interrupt request generation is disabled, and if "1", is enabled.
The phrase "cycle is completed" indicates that the A/D conversion of ch23 is completed.
• ADSTIE1 (bit 3)
This bit specifies enable/disable of an interrupt request generation to end A/D
conversion in select mode.
If this bit is "0", the interrupt request generation is disabled, and if "1", is enabled.
• INTHS1 (bit 4)
This bit indicates the end of A/D conversion in hard select mode.
"1" on this bit indicates end of A/D conversion in hard select mode.
This bit must be reset to "0" by the program.
• ADHSIE1 (bit 5)
This bit specifies enable/disable of an interrupt request generation to end A/D
conversion in hard select mode.
If this bit is "0", the interupt request generation is disabled, and if "1", is enabled.
16-17
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADINTCON1
7
6
—
—
5
4
3
2
1
0
ADHSIE1 INTHS1 ADSTIE1ADSNIE1 INTST1 INTSN1
0
Scan channel cycle: no
1
Scan channel cycle: yes
0
Select mode end: no
1
Select mode end: yes
0 Interrupt request generation by INTSN1: disabled
1 Interrupt request generation by INTSN1: enabled
0 Interrupt request generation by INTST1: disabled
1 Interrupt request generation by INTST1: enabled
0
Hard Select mode end: no
1
Hard Select mode end: yes
0 Interrupt request generation by INTHS1: disabled
1 Interrupt request generation by INTHS1: enabled
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 16-10 Configuration of ADINTCON1
16-18
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[7]
A/D Hard Select Register 0 (ADHSEL0)
The ADHSEL0 register is used to set an interrupt cause to activate the hard select
mode of A/D converter 0 to individual channels. Channel 0, channel 1, channel 2, and
channel 3 each have 4 bits (total of 16 bits).
Figures 16-11 and 16-12 show the configurations of ADHSEL0.
Since only 16-bit data is accessible to ADHSEL0, bit manipulation instructions such as
SB and RB cannot be executed.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADHSEL0 becomes 0000H.
<Description of Each Bit>
• ADHSEL0 bit 0–bit 3
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 0.
• ADHSEL0 bit 4–bit 7
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 1.
• ADHSEL0 bit 8–bit 11
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 2.
• ADHSEL0 bit 12–bit 15
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 3.
16
16-19
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADHSEL0
7
6
5
4
3
2
1
0
3 2 1 0
A/D Hard Select Mode Activation
Interrupt Cause to Channel 0
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
7 6 5 4
A/D Hard Select Mode Activation
Interrupt Cause to Channel 1
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
Figure 16-11 Configuration of ADHSEL0 (low-order bits)
16-20
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADHSEL0 (bits 8–15)
15
14
13
12
11
10
9
8
11 10 9 8
A/D Hard Select Mode Activation
Interrupt Cause to Channel 2
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
15 14 13 12
A/D Hard Select Mode Activation
Interrupt Cause to Channel 3
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
Figure 16-12 Configuration of ADHSEL0 (high-order bits)
16-21
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[8]
A/D Hard Select Register 1 (ADHSEL1)
The ADHSEL1 register is used to set an interrupt cause to activate the hard select
mode of A/D converter 1 to individual channels. Channel 12, channel 13, channel 14,
and channel 15 each have 4 bits (total of 16 bits).
Figures 16-13 and 16-14 show the configurations of ADHSEL1.
Since only 16-bit data is accessible to ADHSEL1, bit manipulation instructions such as
SB and RB cannot be executed.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADHSEL1 becomes 0000H.
<Description of Each Bit>
• ADHSEL1 bit 0–bit 3
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 12.
• ADHSEL1 bit 4–bit 7
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 13.
• ADHSEL1 bit 8–bit 11
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 14.
• ADHSEL1 bit 12–bit 15
These four bits are used to set an A/D hard select mode activation interrupt cause to
channel 15.
16-22
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADHSEL1 (bits 0–7)
7
6
5
4
3
2
1
0
3 2 1 0
A/D Hard Select Mode Activation
Interrupt Cause to Channel 12
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
7 6 5 4
A/D Hard Select Mode Activation
Interrupt Cause to Channel 13
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
Figure 16-13 Configuration of ADHSEL 1 (low-order bits)
16-23
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADHSEL1 (bits 8–15)
15
14
13
12
11
10
9
8
11 10 9 8
A/D Hard Select Mode Activation
Interrupt Cause to Channel 14
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
15 14 13 12
A/D Hard Select Mode Activation
Interrupt Cause to Channel 15
0 0 0 0 PWC0/PWC1 underflow or match
0 0 0 1 PWC2/PWC3 underflow or match
0 0 1 0 PWC4/PWC5 underflow or match
0 0 1 1 PWC6/PWC7 underflow or match
0 1 0 0 PWC0/PWC1 match
0 1 0 1 PWC2/PWC3 match
0 1 1 0 PWC4/PWC5 match
0 1 1 1 PWC6/PWC7 match
1 0 0 0 CAP0 event generation
1 0 0 1 CAP1 event generation
1 0 1 0 GTMC/GEVC overflow
1 0 1 1 CAP15 event generation
1 1 0 0 FTM16 event generation
1 1 0 1 FTM17 event generation
1 1 1 0 Software 0 (ADHSCON bit 0 set)
1 1 1 1 Software 1 (ADHSCON bit 1 set)
Figure 16-14 Configuration of ADHSEL1 (high-order bits)
16-24
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[9]
A/D Hard Select Software-Control Register (ADHSCON)
ADHSCON is a 2-bit register that activates, through software, A/D conversion in the A/
D hard select mode.
Writing a "1" to bit 1 or bit 0 of ADHSCON starts A/D conversion in the A/D hard select
mode.
Since these bits are not automatically cleared, they must be cleared by the software. A/
D conversion activated by these bits will begin after the rising edge of these bits is
detected. Therefore, once started, if conversion is to be restarted, first clear these bits
and then write a value of "1".
If a "1" is written to these bits during A/D conversion in the A/D hard select mode, the
next A/D conversion is reserved and will start after the present A/D conversion is
completed.
If "1" is written to bit 1 and bit 0 simultaneously, A/D conversion in the hard select mode
due to bit 1 (software 1) and A/D conversion in the hard select mode due to bit 0
(software 0) will be performed consecutively.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADHSCON becomes FCH.
Figure 16-15 shows the configuration of ADHSCON.
ADHSCON
7
6
5
4
3
2
—
—
—
—
—
—
1
0
ADSOFT1 ADSOFT0
0 Hard select mode A/D conversion activation: no
1 Hard select mode A/D conversion activation: yes
0 Hard select mode A/D conversion activation: no
1 Hard select mode A/D conversion activation: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 16-15 Configuration of ADHSCON
16-25
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[10] A/D Hard Select Enable Register (ADHENCON)
ADHENCON is an 8-bit register that controls enable/disable of the hard select mode for
each channel (ch0, ch1, ch2, ch3, ch12, ch13, ch14, ch15).
Figure 16-16 shows the configuration of ADHENCON.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADHENCON becomes 00H.
<Description of Each Bit>
• ADHENC0 (bit 0)
This bit enables or disables hard select A/D conversion on channel 0.
If this bit is "1", the hard select of channel 0 is enabled, and if "0", disabled.
• ADHENC1 (bit 1)
This bit enables or disables hard select A/D conversion on channel 1.
If this bit is "1", the hard select of channel 1 is enabled, and if "0", disabled.
• ADHENC2 (bit 2)
This bit enables or disables hard select A/D conversion on channel 2.
If this bit is "1", the hard select of channel 2 is enabled, and if "0", disabled.
• ADHENC3 (bit 3)
This bit enables or disables hard select A/D conversion on channel 3.
If this bit is "1", the hard select of channel 3 is enabled, and if "0", disabled.
• ADHENC12 (bit 4)
This bit enables or disables hard select A/D conversion on channel 12.
If this bit is "1", the hard select of channel 12 is enabled, and if "0", disabled.
• ADHENC13 (bit 5)
This bit enables or disables hard select A/D conversion on channel 13.
If this bit is "1", the hard select of channel 13 is enabled, and if "0", disabled.
• ADHENC14 (bit 6)
This bit enables or disables hard select A/D conversion on channel 14.
If this bit is "1", the hard select of channel 14 is enabled, and if "0", disabled.
• ADHENC15 (bit 7)
This bit enables or disables hard select A/D conversion on channel 15.
If this bit is "1", the hard select of channel 15 is enabled, and if "0", disabled.
16-26
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
ADHENCON
7
6
5
4
3
2
1
0
ADHENC15 ADHENC14 ADHENC13 ADHENC12 ADHENC3 ADHENC2 ADHENC1 ADHENC0
0 ch0 hard select mode: disabled
1 ch0 hard select mode: enabled
0 ch1 hard select mode: disabled
1 ch1 hard select mode: enabled
0 ch2 hard select mode: disabled
1 ch2 hard select mode: enabled
0 ch3 hard select mode: disabled
1 ch3 hard select mode: enabled
0 ch12 hard select mode: disabled
1 ch12 hard select mode: enabled
0 ch13 hard select mode: disabled
1 ch13 hard select mode: enabled
0 ch14 hard select mode: disabled
1 ch14 hard select mode: enabled
0 ch15 hard select mode: disabled
1 ch15 hard select mode: enabled
Figure 16-16 Configuration of ADHENCON
16-27
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[11] A/D Result Registers (ADCR0–ADCR23)
The A/D result registers are 16-bit registers that store A/D conversion results. Conversion results are stored in the upper 10 bits (bit 15–bit 6) of the A/D result registers.
A/D conversion results of ch0–ch23 (AI0–AI23) are stored in the A/D result register
having the same number as the channel number. (For example, conversion results of
the AI0 input are stored in ADCR0 and conversion results of the AI12 input are stored in
ADCR12.)
A/D result registers (ADCR0–ADCR23) are word accessible only. When read, the upper
8 bits of the 10-bit data in the A/D result register are read as the word’s upper 8 bits of
data; the lower 2 bits of the result register enter the upper 2 bits of the word’s lower 8
bits of data, and the lower 6 bits of the word’s lower 8 bits of data are all read as "1s".
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), ADCR0–ADCR23 are
undefined.
ADCRn registers are divided into even and odd numbered ADCR registers. Data can
be written to multiple registers in the same group at one time.
When data is written to ADCR0, the data is simultaneously written to ADCR0, 2, 4, 6, 8,
and 10. When data is written to ADCR1, the data is simultaneously written to ADCR1,
3, 5, 7, 9, and 11. When data is written to ADCR12, the data is simultaneously written
to ADCR12, 14, 16, 18, 20, and 22. When data is written to ADCR13, the data is
simultaneously written to ADCR13, 15, 17, 19, 21, and 23. Writing to only a specific
ADCR is not possible.
Figure 16-17 shows the configuration of ADCRn (n = 0–23).
15
ADCRn
(n = 0–23)
14
13
12
11
10
9
8
7
6
5
bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 "1"
4
3
2
1
0
"1"
"1"
"1"
"1"
"1"
A/D conversion results (10 bits)
The bits shown as "1" will
always read as "1".
Figure 16-17 Configuration of ADCRn (n = 0–23)
16-28
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
16.3 Generated Timing of the A/D Hard Select Mode
A/D conversion in the A/D hard select mode is activated 1 CLK after the interrupt
request flag (IRQF) is set in synchronization with the first M1S1 signal following the
generation of any peripheral event (matching, overflow, etc.).
[1]
Activation of Multiple A/D Conversions after Generation of an Interrupt Request
An outline of operation is shown below for the case when the A/D hard select mode is
activated with the same trigger for ch0 and ch1.
When A/D hard select modes of different priority levels (ch0, ch1) are activated by the
same edge, A/D conversion of the higher priority ch0 begins 1 clock after the M1S1
signal, and A/D conversion of the lower priority ch1 begins 1 clock after completion of
the ch0 conversion.
Shaded areas of the figure below indicate dummy cycles required for the start of
conversion.
Master clock (CLK)
Interrupt request generation
(valid edge)
First M1S1 after generation
of valid edge
Hard select mode ch0
ch0 A/D conversion
Completion
ch1 A/D conversion
Hard select mode ch1
1 clock
1 clock
t ch0
16-29
t ch1
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[2]
Activation of Hard Select Mode A/D Conversion during Select Mode Operation
When the valid edge for the hard select mode occurs during select mode operation, the
select mode is suspended and 1 clock after the first M1S1 signal following generation of
the activation request, A/D conversion in the hard select mode is activated. After
completion of A/D conversion in the hard select mode, A/D conversion in the suspended select mode is resumed.
Master clock (CLK)
STS flag of ADCONnH (n = 0, 1)
Select mode
Select mode A/D conversion
Select mode A/D conversion
Suspend
Resume
Completion
Interrupt request generation
(valid edge)
First M1S1 after generation
of valid edge
Hard select mode A/D conversion
Hard select mode
Completion
1 clock
[3]
1 clock
1 clock
Activation of Hard Select Mode during Select Mode Operation Where Select Mode Was
Activated during Scan Mode Operation
When the select mode is activated during scan mode operation, the scan mode is
immediately suspended and 1 clock later, A/D conversion in the select mode begins. If
an activation request for the hard select mode is generated during operation of that
select mode, the select mode is suspended and 1 clock after the first M1S1 signal
following generation of the activation request, A/D conversion in the hard select mode
begins. After completion of A/D conversion in the hard select mode, A/D conversion in
the suspended select mode is resumed. And 1 clock after completion of the A/D
conversion in the select mode, A/D conversion in the suspended scan mode is resumed.
Master clock (CLK)
Scan mode
Scan mode
Scan mode
Suspend
Select mode
Resume
Select mode
Select mode
Suspend
Resume
Completion
Interrupt request generation
(valid edge)
First M1S1 after generation
of valid edge
Hard select mode
Hard select mode
Completion
1 clock
1 clock
16-30
1 clock
1 clock
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
[4]
Hard Select Mode Contention
a) ch1 (low priority) request is generated after ch0 (high priority) activation
When a low priority hard select mode activation request is generated during A/D
conversion in a high priority hard select mode, the request is placed on hold. A/D
conversion in the low priority hard select mode will begin 1 clock after the A/D conversion in the high priority hard select mode is completed.
Master clock (CLK)
Interrupt request generation
(valid edge ch0)
First M1S1 after generation
of valid edge
Hard select mode ch0
ch0 A/D conversion
Completion
Interrupt request generation
(valid edge ch1)
ch1 A/D conversion
Hard select mode ch1
Completion
1 clock
1 clock
b) ch0 (high priority) request is generated after ch1 (low priority) activation
When a high priority hard select mode activation request is generated during A/D
conversion in a low priority hard select mode, the low priority hard select mode is
suspended and 1 clock after the first M1S1 signal following generation of the activation
request, A/D conversion begins in the high priority hard select mode.
1 clock after completion of that A/D conversion, A/D conversion in the suspended low
priority hard select mode is resumed.
Master clock (CLK)
Interrupt request generation
(valid edge ch1)
First M1S1 after generation
of valid edge
Hard select mode ch1
ch1 A/D conversion
ch1 A/D conversion
Suspend
Completion
Interrupt request generation
(valid edge ch0)
ch0 A/D conversion
Hard select mode ch0
Completion
1 clock
1 clock
16-31
1 clock
16
MSM66591/ML66592 User's Manual
Chapter 16 A/D Converter Functions
16-32
Chapter 17
Transition Detector
Functions
17
MSM66591/ML66592 User's Manual
Chapter 17 Transition Detector Functions
17. Transition Detector Functions
The MSM66591/ML66592 have eight transition detector functions, which detect the
valid edges (rise, fall, both edges) of an input pin.
If the valid edge specified by TRNSCON is input to TRNS0–TRNS7 pins, the corresponding bit 0 to bit 7 of the transition detector (TRNSIT) is set to "1". Reset the bit of
TRNSIT to "0" by the program.
TRNS0–TRNS7 pins are assigned as secondary functions of P4_0–P4_7 of Port 4.
Therefore the corresponding bit of the Port 4 secondary function control register must
be set to "1" to access the transition detector function.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TRNSIT becomes 00H.
If the secondary function of Port 4 is selected, TRNSIT may become undefined, depending on the status of TRNS0–TRNS7 pins. When using transition detector functions,
set the Port 4 secondary function control register to "1", and then reset the corresponding bit of TRNSIT to "0".
Table 17-1 lists the transition detector control SFRs.
Table 17-1 Transition Detector Control SFRs
Address [H]
004F
016E
016F
Name
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
Transition Detector
TRNS Control Register
TRNSIT
—
—
—
TRNSCON
R/W
Reset
State [H]
8
00
16
0000
[Note] Addresses above are not consecutive.
17
17.1 Transition Detector Control Register (TRNSCON)
TRNSCON is an 16-bit register that specifies the valid edges for TRNS0–TRNS7 pins.
Since only 16-bit data is accessible to TRNSCON, bit manipulation instructions such as
SB and RB can not be executed.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TRNSCON becomes
0000H, and the falling edge is specified as the valid edge.
Figure 17-1 shows the configuration of TRNSCON (low-order bits), and Figure 17-2
shows the configuration of TRNSCON (high-order bits).
17-1
MSM66591/ML66592 User's Manual
Chapter 17 Transition Detector Functions
TRNSCON (bits 0–7)
7
6
5
4
3
2
1
0
1
0
1
1
0
*
0
1
Valid edge of TRNS0
Falling edge
Rising edge
Both edges
3
0
1
1
2
*
0
1
Valid edge of TRNS1
Falling edge
Rising edge
Both edges
5
0
1
1
4
*
0
1
Valid edge of TRNS2
Falling edge
Rising edge
Both edges
7
0
1
1
6
*
0
1
Valid edge of TRNS3
Falling edge
Rising edge
Both edges
"*" indicates either "0" or "1".
Figure 17-1 Configuration of TRNSCON (low-order bits)
TRNSCON (bits 8–15)
15
14
13
12
11
10
9
8
1
0
1
1
0
*
0
1
Valid edge of TRNS4
Falling edge
Rising edge
Both edges
3
0
1
1
2
*
0
1
Valid edge of TRNS5
Falling edge
Rising edge
Both edges
5
0
1
1
4
*
0
1
Valid edge of TRNS6
Falling edge
Rising edge
Both edges
7
0
1
1
6
*
0
1
Valid edge of TRNS7
Falling edge
Rising edge
Both edges
"*" indicates either "0" or "1".
Figure 17-2 Configuration of TRNSCON (high-order bits)
17-2
MSM66591/ML66592 User's Manual
Chapter 17 Transition Detector Functions
17.2 Transition Detector Register (TRNSIT)
TRNSIT is an 8-bit register that indicates that the valid edge specified by TRNSCON
has been input to a TRNS pin.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), TRNSIT becomes 00H.
If the secondary function of Port 4 is selected, TRNSIT may become undefined, depending on the status of the TRNS0–TRNS7 pins. When using the transition detector,
set the Port 4 secondary function control register to "1", and then reset the corresponding bit of TRNSIT to "0".
Figure 17-3 shows the configuration of TRNSIT.
TRNSIT
7
6
5
4
3
2
1
0
TRNSF7 TRNSF6 TRNSF5 TRNSF4 TRNSF3 TRNSF2 TRNSF1 TRNSF0
0
Valid edge not input to TRNS0 pin
1
Valid edge input to TRNS0 pin
0
Valid edge not input to TRNS1 pin
1
Valid edge input to TRNS1 pin
0
Valid edge not input to TRNS2 pin
1
Valid edge input to TRNS2 pin
0
Valid edge not input to TRNS3 pin
1
Valid edge input to TRNS3 pin
0
Valid edge not input to TRNS4 pin
1
Valid edge input to TRNS4 pin
0
Valid edge not input to TRNS5 pin
1
Valid edge input to TRNS5 pin
0
Valid edge not input to TRNS6 pin
1
Valid edge input to TRNS6 pin
0
Valid edge not input to TRNS7 pin
1
Valid edge input to TRNS7 pin
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 17-3 Configuration of TRNSIT
17-3
17
MSM66591/ML66592 User's Manual
Chapter 17 Transition Detector Functions
17-4
Chapter 18
Peripheral Functions
18
MSM66591/ML66592 User's Manual
Chapter 18 Peripheral Functions
18. Peripheral Functions
The MSM66591/ML66592 have the following three functions for use in a peripheral IC.
A. clockout function
B. RES pin valid level detection function
C. OE pin monitor function
18.1 Clockout Function
The clockout function outputs the divided master clock of the MSM66591/ML66592
from the CLKOUT pin (secondary function of P5_6). The dividing ratio of the master
clock is specified by the low-order 3 bits (bits 0, 1, 2) of the peripheral control register
(PRPHF). There are six types of dividing ratios: 2/3, 1/2, 1/3, 1/4, 1/8, and 1/16 of the
master clock. The master clock (CLK) is the frequency generated by multiplying the
original oscillation clock by 2. 2/3 CLK is only available in the MSM66591.
If the CLKOUT pin is used, bit 6 of the Port 5 secondary function control register must
be set to "1".
18.2 RES Pin Valid Level Detection Function
The RES pin valid level detection function is a flag that is set to "1" when the RES pin
becomes "L" level, and is assigned to bit 6 (VBFF) of PRPHF. VBFF is reset to "0" by
the program only. Setting VBFF to "1" by the program is invalid.
18.3 OE Pin Monitor Function
The OE pin monitor function is a flag (OERD) that constantly monitors the input level of
the OE pin (pin 71), and is assigned to bit 7 of PRPHF.
If OERD is read, the level of the OE pin is read. Writing to OERD is invalid.
Figure 18-1 shows the configuration of PRPHF.
18-1
18
MSM66591/ML66592 User's Manual
Chapter 18 Peripheral Functions
PRPHF
7
OERD
6
VBFF
5
—
4
—
3
—
2
1
0
CKOUT2 CKOUT1 CKOUT0
CKOUT
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 * 0
1 * 1
0
1
CLKOUT Pin Output Clock
1/2 CLK
1/4 CLK
1/8 CLK
1/16 CLK
2/3 CLK (MSM66591 only)
1/3 CLK
RES pin did not become "L" level
RES pin became "L" level
0
OE pin "L" level
1
OE pin "H" level
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "0" or "1".
Figure 18-1 Configuration of PRPHF
18-2
Chapter 19
External Interrupt Request
Function
19
MSM66591/ML66592 User's Manual
Chapter 19 External Interrupt Request Function
19. External Interrupt Request Function
The MSM66591/ML66592 have four inputs for external interrupt requests, which can be
classified into two types. One type is a maskable interrupt, and there are three (INT0,
INT1, INT2). The other type is a nonmaskable interrupt, and there is one (NMI).
INT0 and INT1 are assigned as secondary functions of P6_0 and P6_1 of Port 6
respectively. INT2 is assigned as a secondary function of P5_5 of Port 5. If INT0, INT1,
and INT2 are used, set the corresponding bit of the Port 6 secondary function control
register to "1".
A dedicated pin (pin 1) is provided for NMI.
The valid edge of INT0, INT1, and INT2 can be specified using the external interrupt
control register (EXICON).
The valid edge of NMI can be specified using the NMI control register (NMICON).
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), EXICON becomes C0H,
and "L" level is specified as the valid edge of the INT0, INT1, and INT2 pins. Also,
NMICON becomes 3CH or BCH, depending on the state of the NMI pin at reset, and
the fall is specified as the valid edge of the NMI pin.
Figure 19-1 shows the configuration of EXICON. Figure 19-2 shows the configuration of
NMICON.
Bit 7 of NMICON monitors the NMI pin, and bit 6 is an MIPF that enables or disables all
maskable interrupt priorities.
19
19-1
MSM66591/ML66592 User's Manual
Chapter 19 External Interrupt Request Function
EXICON
7
—
6
—
5
4
3
2
1
0
EX2M1 EX2M0 EX1M1 EX1M0 EX0M1 EX0M0
EX0M
1
0
0
0
0
1
1
0
1
1
Valid Edge of INT0
"L" level
Falling edge
Rising edge
Both edges
EX1M
1
0
0
0
0
1
1
0
1
1
Valid Edge of INT1
"L" level
Falling edge
Rising edge
Both edges
EX2M
Valid Edge of INT2
1
0
"L" level
0
0
Falling edge
0
1
1
0
Rising edge
1
1
Both edges
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 19-1 Configuration of EXICON
NMICON
7
6
NMIRD MIPF
5
—
4
—
3
—
2
—
1
0
NMIM1 NMIM0
NMIM
1
0
0
*
1
0
1
1
0
1
Valid Edge of NMI
Falling edge
Rising edge
Both edges
Maskable interrupt priority: invalid
Maskable interrupt priority: valid
0
NMI pin "L" level
1
NMI pin "H" level
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "0" or "1".
Writing to bit 7 is invalid.
Figure 19-2 Configuration of NMICON
19-2
Chapter 20
Interrupt Request Processing
Function
20
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
20. Interrupt Request Processing Function
The MSM66591/ML66592 have 67 types of interrupt causes (external 4, internal 63),
which are assigned to 39 vectors. One external interrupt is nonmaskable. Also four
levels of interrupt priorities can be set for maskable interrupts.
Table 20-1 lists the interrupt control SFRs.
Table 20-1 Interrupt Control SFRs
Address [H]
0040
0041
0042
0043
0044✩
0046
0047
0048
0049
Name
Interrupt Request Register 0
Interrupt Request Register 1
Interrupt Request Register 2
Interrupt Enable Register 0
Interrupt Enable Register 1
Abbreviated Abbreviated
R/W 8/16-Bit
Operation
Name (BYTE) Name (WORD)
IRQ0L
IRQ0H
IRQ1L
IRQ1H
IRQ2L
IE0L
IE0H
IE1L
IE1H
004A✩
Interrupt Enable Register 2
IE2L
0140
Interrupt Priority Control
Register 00
IP00L
0141
0142
IP00H
IP01L
8/16
IRQ1
IP11H
0148✩
Interrupt Priority Control Register 20
IP20L
—
0149✩
Interrupt Priority Control Register 21
IP21L
—
0150
Interrupt Request Flag
Disable Register 0
0151
0152
IP11L
IRQD0L
IRQD0H
00
00
R/W
8/16
00
8
IRQD1H
IRQD2L
—
0109✩
External Interrupt Control Register
EXICON
—
014A✩
NMI Control Register
NMICON
—
IRQD1
C0
00
00
00
C0
8
Some addresses are not consecutive.
Addresses in the address column marked by "✩" indicate that the register has bits missing.
20-1
C0
00
8/16
Interrupt Request Flag Disable Register 2
00
00
IRQD0
0154✩
00
00
IP11
0153
C0
00
IP10
Interrupt Request Flag
Disable Register 1
IRQD1L
8
IP00
Interrupt Priority Control
Register 11
00
00
—
0147
0146
IP10L
C0
00
IE1
IP10H
0145
00
00
8/16
Interrupt Priority Control
Register 10
0144
8
IE0
IP01
00
00
—
IP01H
0143
00
IRQ0
Interrupt Priority Control
Register 01
Reset
State [H]
C0
3C or BC
20
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
20.1 Non-maskable Interrupt (NMI)
An NMI cannot be masked at all. If the specified valid edge is detected by bit 0 and 1 of
NMICON, the CPU immediately starts the NMI interrupt process.
The only exception when an NMI is masked is for the period of time until execution of
the first instruction is finished after reset (when the RES signal is input, the BRK instruction is executed, the watchdog timer is overflown, or an operation code trap is generated).
After reset this function prevents the possibility of an NMI being accepted before the
system stack pointer (SSP) value becomes the appropriate value.
By inputting an instruction to set the SSP value as the appropriate value to the first
instruction after reset using the program, the possibility of an NMI before the SSP value
becomes the appropriate value is eliminated.
If an NMI is generated, the hardware automatically performs a series of processes,
which include:
• Saving program counter (PC)
• Saving accumulator (ACC)
• Saving local register base (LRB)
• Saving program status word (PSW)
• Resetting the NMI request flag
• Disabling maskable interrupt acceptance
• Disabling multiple interrupt by the NMI itself
• Loading value written to vector tables (0008H, 0009H) to the program counter, then
executing the first instruction of the NMI process.
Fourteen cycle are required to shift to each of these NMI process. However, if the
program memory space is extended to 128K bytes (MSM66591) or 192K bytes
(ML66592) by setting bit 1 (LROM) of MEMSCON to "1", 17 cycles are required because cycles required to save the code segment register (CSR) are added.
An RTI instruction is needed at the end of the NMI interrupt routine.
If the RTI instruction is executed, the hardware automatically performs a series of
processes, which include:
• Restoring program status word (PSW)
• Restoring local register base (LRB)
• Restoring accumulator (ACC)
• Restoring program counter (PC)
• Clearing disabling maskable interrupt acceptance
• Clearing disabling multiple interrupt by the NMI itself
then ending the NMI routine.
Figure 20-1 shows examples of saving and restoring PC, ACC, LRB and PSW.
20-2
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
[Note] If the program memory space is extended to 128K bytes (MSM66591) or 192K
bytes (ML66592) by setting bit 1 (LROM) of MEMSCON to "1", the code segment
register (CSR), in addition to the above registers, is saved and restored.
• At INT (Program memory space is 64K bytes)
SSP
07F7H
07F8H
07F9H
07FAH
07FBH
07FCH
07FDH
07FEH
07FFH
SSP
07F7H
07F8H
07F9H
07FAH
07FBH
07FCH
07FDH
07FEH
07FFH
(Before saving)
PSWL
PSWH
LRBL
LRBH
ACCL
ACCH
PCL
PCH
SSP
07F7H
07F8H
07F9H
07FAH
07FBH
07FCH
07FDH
07FEH
07FFH
(After saving)
(Before RTI execution)
PSWL
PSWH
LRBL
LRBH
ACCL
ACCH
PCL
PCH
(After RTI execution)
• At INT (Program memory space is 128K bytes)
SSP
07F5H
07F6H
07F7H
07F8H
07F9H
07FAH
07FBH
07FCH
07FDH
07FEH
07FFH
SSP
(Before saving)
07F5H
07F6H
07F7H
07F8H
07F9H
07FAH
07FBH
07FCH
07FDH
07FEH
07FFH
PSWL
PSWH
LRBL
LRBH
ACCL
ACCH
CSR
Undefined
PCL
PCH
SSP
07F5H
07F6H
07F7H
07F8H
07F9H
07FAH
07FBH
07FCH
07FDH
07FEH
07FFH
(After saving)
(Before RTI execution)
PSWL
PSWH
LRBL
LRBH
ACCL
ACCH
CSR
Undefined
PCL
PCH
(After RTI execution)
Figure 20-1 Examples of Saving and Restoring PC, ACC, LRB, and PSW
20-3
20
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
20.2 Maskable Interrupt
A maskable interrupt is generated by various causes such as internal peripheral
hardware and external pin inputs.
A maskable interrupt is controlled by:
q Register (IRQD) that enables/disables IRQ flag to be set to "1" by the interrupt
request generated by each factor.
w Register (IRQ) that is set to "1" by the interrupt request generated by each cause,
that is enabled by IRQD.
e Register (IE) that enables/disables the interrupt provided by each cause.
r Flag (MIE) that enables/disables generation of all maskable interrupts.
t Flag (MIPF) that enables/disables all priorities.
y Register (IPX0, IPX1) that sets the priority level.
Figure 20-2 shows a conceptual diagram of maskable interrupt control.
Table 20-2 lists the vector addresses and bit symbols for maskable interrupts.
[One interrupt vector for one interrupt cause]
Dxxx
Interrupt cause
generation
source
Exxx
MIE
MIPF
PX0xxx PX1xxx
Priority
Controller
LV3
LV2
LV1
LV0
NP
Qxxx
[One interrupt vector for two interrupt cause]
Interrupt cause
generation
source Y
LEyyy
LQyyy
Dyz
Eyz
MIE
MIPF
PX0yz
Priority
Controller
PX1yz
LV3
LV2
LV1
LV0
NP
Qyz
Interrupt cause
generation
source Z
LEzzz
LQzzz
: The sources included in a dotted box exist in each functional block.
LV3: Level 3
LV2: Level 2
LV1: Level 1
LV0: Level 0
NP: No priority
Figure 20-2 Conceptual Diagram of Maskable Interrupt Control
20-4
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
Table 20-2 Vector Addresses and Bit Symbols for Maskable Interrupts
bit
Interrupt Cause
Vector
Address [H]
IRQD
IRQ
IE
IPX0
IPX1
0
External interrupt 0 (INT0)
000A
DINT0
QINT0
EINT0
P0INT0
P1INT0
1
TM0 overflow
000C
DTM0OV
QTM0OV
ETM0OV
P0TM0OV
P1TM0OV
2
TM1 overflow
000E
DTM1OV
QTM1OV
ETM1OV
P0TM1OV
P1TM1OV
3
CAP0 event generation
0010
DCAP0
QCAP0
ECAP0
P0CAP0
P1CAP0
4
CAP1 event generation
0012
DCAP1
QCAP1
ECAP1
P0CAP1
P1CAP1
5
CAP2 event generation
0014
DCAP2
QCAP2
ECAP2
P0CAP2
P1CAP2
6
CAP3 event generation
0016
DCAP3
QCAP3
ECAP3
P0CAP3
P1CAP3
7
Double-buffer RTO4 event generation
0018
DRTO4
QRTO4
ERTO4
P0RTO4
P1RTO4
8
Double-buffer RTO5 event generation
001A
DRTO5
QRTO5
ERTO5
P0RTO5
P1RTO5
9
Double-buffer RTO6 event generation
001C
DRTO6
QRTO6
ERTO6
P0RTO6
P1RTO6
10
Double-buffer RTO7 event generation
001E
DRTO7
QRTO7
ERTO7
P0RTO7
P1RTO7
11
Double-buffer RTO8 event generation
0020
DRTO8
QRTO8
ERTO8
P0RTO8
P1RTO8
12
Double-buffer RTO9 event generation
0022
DRTO9
QRTO9
ERTO9
P0RTO9
P1RTO9
13
Double-buffer RTO10 event generation
0024
DRTO10
QRTO10
ERTO10
P0RTO10
P1RTO10
14
Double-buffer RTO11 event generation
0026
DRTO11
QRTO11
ERTO11
P0RTO11
P1RTO11
15
Serial port 1 transmit/receive ready
0028
DSCI1
QSCI1
ESCI1
P0SCI1
P1SCI1
16
S0TM/S1TM/S2TM/S3TM/S4TM overflow
002A
DSTMOV
QSTMOV
ESTMOV
P0STMOV
P1STMOV
17
GTMC/GEVC overflow
002C
DGTMOV
QGTMOV
EGTMOV
P0GTMOV
P1GTMOV
18
A/D1 scan/select/hard select conversion
completed
002E
DAD1
QAD1
EAD1
P0AD1
P1AD1
19
A/D0 scan/select/hard select conversion
completed
0030
DAD0
QAD0
EAD0
P0AD0
P1AD0
20
PWC0/PWC1 underflow, or matching
0032
DPW01
QPW01
EPW01
P0PW01
P1PW01
21
PWC2/PWC3 underflow, or matching
0034
DPW23
QPW23
EPW23
P0PW23
P1PW23
22
Serial port 0 transmit/receive ready
0036
DSCI0
QSCI0
ESC10
P0SCI0
P1SCI0
23
External interrupt 1 (INT1)
0038
DINT1
QINT1
EINT1
P0INT1
P1INT1
24
Double-buffer RTO12 event generation
003A
DRTO12
QRTO12
ERTO12
P0RTO12
P1RTO12
25
Double-buffer RTO13 event generation
003C
DRTO13
QRTO13
ERTO13
P0RTO13
P1RTO13
26
PWC4/PWC5 underflow, or matching
003E
DPW45
QPW45
EPW45
P0PW45
P1PW45
27
PWC6/PWC7 underflow, or matching
0040
DPW67
QPW67
EPW67
P0PW67
P1PW67
28
CAP 14 event generation
0042
DCAP14
QCAP14
ECAP14
P0CAP14
P1CAP14
29
CAP 15 event generation
0044
DCAP15
QCAP15
ECAP15
P0CAP15
P1CAP15
30
Flexible timer 16 event generation
0046
DFTM16
QFTM16
EFTM16
P0FTM16
P1FTM16
31
Flexible timer 17 event generation
0048
DFTM17
QFTM17
EFTM17
P0FTM17
P1FTM17
32
PWC8/PWC9 underflow, or matching
006A
DPW89
QPW89
EPW89
P0PW89
P1PW89
33
PWC10/PWC11 underflow, or matching
006C
DPW1011
QPW1011
EPW1011
P0PW1011
P1PW1011
34
Serial port 2 transmit/receive ready
006E
DSCI2
QSCI2
ESCI2
P0SCI2
P1SCI2
35
Serial port 3 transmit/receive ready
0070
DSCI3
QSCI3
ESCI3
P0SCI3
P1SCI3
36
Serial port 4 transmit/receive ready
0072
DSCI4
QSCI4
ESCI4
P0SCI4
P1SCI4
37
SIO5 event generation,
externali nterrupt (INT2)
0074
DSCI5
QSCI5
ESCI5
P0SCI5
P1SCI5
20-5
20
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
[1]
Interrupt Request Flag Disable Register IRQD (IRQD0L, IRQD0H, IRQD1L, IRQD1H, IRQD2L)
The IRQD is a register that enables/disables the corresponding bit of the IRQ to be set
to "1" by the interrupt signal from each interrupt generation source. If a bit of IRQD is
"1", the corresponding bit of IRQ is not set, even if the corresponding interrupt generation source generated an interrupt request. If a bit of IRQD is "0", the corresponding bit
of IRQ is set to "1" by the interrupt request from the corresponding interrupt generation
source.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), IRQD0L, IRQD0H, IRQD1L,
and IRQD1H become 00H, IRQD2L becomes C0H, and enable the corresponding bit of
IRQ to be set to "1" by an interrupt signal from each interrupt generation source.
[2]
Interrupt Request Register IRQ (IRQ0L, IRQ0H, IRQ1L, IRQ1H, IRQ2L)
IRQ becomes "1" synchronizing with the M1S1 signal if an interrupt signal is generated
from each interrupt generation source enabled by IRQD, and becomes "0" automatically
during an interrupt transition cycle if an interrupt is accepted.
A bit of IRQ can be set to "1" or "0" by the program.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), IRQ0L, IRQ0H, IRQ1L, and
IRQ1H become 00H, and IRQ2L becomes C0H.
[3]
Interrupt Enable Register IE (IE0L, IE0H, IE1L, IE1H, IE2L)
The IE is a register that specifies an interrupt generation enable/disable independently.
If a bit of IE is "0", the corresponding interrupt generation is disabled. If a bit of IE is "1",
the corresponding interrupt generation is enabled.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), IE0L, IE0H, IE1L, and IE1H
become 00H, and IE2L becomes C0H.
[4]
Master Interrupt Enable Flag (MIE)
The MIE is a 1-bit flag on PSW. MIE specifies enable/disable of all maskable interrupt
generation. If MIE is "0", all maskable interrupt generation is disabled. If MIE is "1", the
generation of all independently enabled interrupts are enabled.
[5]
Master Interrupt Priority Flag (MIPF)
The MIPF is a 1-bit flag assigned to bit 6 of NMICON. MIPF specifies valid/invalid of all
maskable interrupt priorities. If MIPF is "0", priority by IPX0 and IPX1 becomes invalid,
and interrupt generation is controlled only by IE and MIE. If MIPF is "1", four types of
priority, level 0–level 3, are given to all maskable interrupts by IPX0 and IPX1.
20-6
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
[6]
Interrupt Priority Control Register
IPX0 (IP00L, IP00H, IP10L, IP10H, IP20L), IPX1 (IP01L, IP01H, IP11L, IP11H, IP21L)
As a pair IPX0 and IPX1 specify the priority of maskable interrupts. If the corresponding
bit of IPX0 and IPX1 for a maskable interrupt is PX0xxx and PX1xxx, the priority given
to the maskable interrupt is as follows.
PX1xxx PX0xxx
0
0
0
1
1
0
1
1
Priority
Level 0
Level 1
Level 2
Level 3
(low)
(high)
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), IP00L, IP00H, IP10L,
IP10H, IP01L, IP01H, IP11L, and IP11H become 00H, and IP20L and IP21L become
C0H.
20
20-7
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
20.3 Operation of Maskable Interrupt
When an interrupt request signal is generated, the logic to notify about interrupt request
generation to the judgment logic of an interrupt priority functions as follows:
• Interrupt request signal is output from an interrupt generation source.
• If the corresponding bit of IRQD is "1", the interrupt request signal is ignored, and
nothing occurs to this interrupt. If the corresponding bit of IRQD is "0", the corresponding IRQ bit becomes "1". The IRQ bit can also be set to "1" by executing a
write instruction.
• If either the corresponding IE bit or the MIE on PSW is "0" when the IRQ bit is "1",
interrupt generation wait status occurs. When the IRQ bit is "1", the judgment logic
of an interrupt priority functions if both the corresponding IE bit and the MIE on the
PSW are "1".
The judgment logic of an interrupt priority functions as follows.
• If MIPF on PSW is "0", the judgment logic of an interrupt priority does not function,
and an interrupt is immediately generated.
If MIPF on PSW is "1", one of level 0 to level 3 priorities is assigned to the interrupt
according to the corresponding bit of IPX0 and IPX1.
• If no interrupt has been executed when an interrupt generation request is sent to the
judgment logic of an interrupt priority, the interrupt is immediately generated.
• If one or more interrupts are in execution when an interrupt generation request is
sent to the judgment logic of an interrupt priority, and if the priority of the interrupt to
be requested is higher than the highest priority of the interrupt in execution, the
interrupt is immediately generated.
• If one or more interrupts are in execution when an interrupt generation request is
sent to the judgment logic of an interrupt priority, and if the priority of the interrupt to
be requested is the same as or lower than the highest priority of the interrupts in
execution, the interrupt generation wait status occurs.
Process
in execution
Generated
Interrupt
Level 0 Interrupt
Request
Level 1 Interrupt
Request
Level 2 Interrupt
Request
Level 3 Interrupt
Request
NMI Request
Process except interrupt ●:interrupt generated ●:interrupt generated ●:interrupt generated ●:interrupt generated ●:interrupt generated
Level 0 interrupt process X:interrupt wait
●:interrupt generated ●:interrupt generated ●:interrupt generated ●:interrupt generated
Level 1 interrupt process X:interrupt wait
X:interrupt wait
●:interrupt generated ●:interrupt generated ●:interrupt generated
Level 2 interrupt process X:interrupt wait
X:interrupt wait
X:interrupt wait
●:interrupt generated ●:interrupt generated
Level 3 interrupt process X:interrupt wait
X:interrupt wait
X:interrupt wait
X:interrupt wait
NMI process
X:interrupt wait
X:interrupt wait
X:interrupt wait
X:interrupt wait
●:interrupt generated
X:interrupt wait
[Note]
If interrupts occur at the same time, the one with the highest priority level has the priority.
If interrupts with the same priority level occur at the same time, the one with the lower interrupt vector
address has the priority.
20-8
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
If a maskable interrupt is generated, the hardware automatically performs a series of
processes, which include:
• Saving program counter (PC)
• Saving accumulator (ACC)
• Saving local register base (LRB)
• Saving program status word (PSW)
• Resetting IRQ that generated maskable interrupt process
• Resetting MIE on PSW (MIE ← "0" = acceptance of maskable interrupt disabled)
• Storing interrupt priority level (acceptance of interrupt with same or lower level
priority disabled)
• Loading value written to vector table to program counter
and then executing the first instruction of a maskable interrupt process.
Fourteen cycles are required to shift to each maskable interrupt process (Interrupt
transition cycle).
However, if the program memory space is 128K bytes (MSM66591) or 192K bytes
(ML66592) by setting bit 1 (LROM) of MEMSCON to "1", 17 cycles are required because cycles required to save the code segment register (CSR) are added.
When an interrupt generation condition is fulfilled by setting IRQ, IE, IP, or MIPF to "1"
by an instruction, the actual generation of the interrupt occurs after the execution of the
next instruction after the instruction that set the IRQ, IE, IP, or MIPF to "1".
It is necessary to execute an RTI instruction at the end of a maskable interrupt routine.
If an RTI instruction is executed, the hardware automatically performs a series of
processes, which include:
• Deleting highest level of stored interrupt priority level
• Restoring program status word (PSW) (MIE ← "1")
• Restoring local register base (LRB)
• Restoring accumulator (ACC)
• Restoring program counter (PC)
and then ending the maskable interrupt routine.
[Note] If the program memory space is expanded to 128K bytes (MSM66591) or 192K
bytes (ML66592) by setting bit 1 (LROM) of MEMSCON to "1", the code segment
register (CSR) is saved or returned from.
Figure 20-1 (page 20-3) shows examples of saving and restoring PC, ACC, LRB and
PSW.
20-9
20
MSM66591/ML66592 User's Manual
Chapter 20 Interrupt Request Processing Function
20-10
Chapter 21
Bus Port Functions
21
MSM66591/ML66592 User's Manual
Chapter 21 Bus Port Functions
21. Bus Port Functions
The MSM66591/ML66592 can externally expand up to 128K bytes (MSM66591) or
256K bytes (ML66592) of program memory (ROM usually) by setting the EA pin to a "L"
level.
The external program memory is accessed using the bus port functions of Port 0 (P0),
Port 1 (P1), and Port 12 (P12_0, P12_1 (ML66592 only)) and the secondary functions
of Port 7 (ALE, PSEN).
21.1 Bus Port (P0, P1, P12_0, P12_1) Functions
P0, P1, P12_0 and P12_1 (ML66592 only) have secondary functions as a bus port, in
addition to the primary functions as an I/O port.
P0, P1, P12_0 and P12_1 (ML66592 only) automatically switch their function from a
primary function to a secondary function or vice versa if the EA pin is at "L" level.
21.1.1 Operation of P0, P1, P12_0 and P12_1 During a Program Memory Access
When the internal program memory is accessed (EA pin is at "H" level), P0, P1, P12_0
and P12_1 operate as an I/O port.
When the external program memory is accessed (EA pin is at "L" level), P0 operates as
a port that outputs lower addresses and that inputs instruction. P1, P12_0 and P12_1
(ML66592 only) operate as ports that output higher addresses.
Table 21-1 shows the operation of P0, P1, P12_0 and P12_1 during a program memory
access.
Table 21-1 Operation of P0, P1, P12_0 and P12_1 During a Program Memory Access
EA Pin
Access Target
"H" level
Memory
Internal program
"L" level
External program
Operation of P1,
P12_0, P12_1*1
Input/output port
High-order
Low-order address output,
address output
program data input
Operation of P0
Address
00000H–1FFFDH*2
*1 P12_1 is only for the ML66592.
*2 00000H–3FFFDH for the ML66592.
21
21-1
MSM66591/ML66592 User's Manual
Chapter 21 Bus Port Functions
21.2 External Memory Access
21.2.1 External Program Memory Access
The MSM66591 can access a maximum of 128K bytes (00000H–1FFFDH) of program
memory space using a 16-bit program counter and a 1-bit code segment register
(CSR). When the EA pin is low, external program memory is accessed to 00000H–
1FFFDH.
By using a 16-bit program counter and a 2-bit code segment register (CSR), the
ML66592 can access a maximum of 192K bytes (00000H–2FFFDH) of program
memory space internally and a maximum of 256K bytes (0000H–3FFDH) of program
memory space externally. When the EA pin is low, external program memory is accessed to 00000H–3FFFDH.
The Figure 21-1 shows the external program memory (ROM) connection example.
MSM66591
External ROM (128K bytes MAX.)
O0–O7
AD0–AD7 (P0_0–P0_7)
Latch
Circuit
A0–A7
(P7_2) ALE
A8–A16
A8–A16 (P1_0–P1_7, P12_0)
(P7_3) PSEN
[Note]
OE
CE
Since in the ML66592 address 17 (A17) is output from the P12_1 pin, connect
the P12_1 pin to A17 of the external ROM. Up to 256K bytes can be accessed.
Figure 21-1 External ROM Connection Example (MSM66591)
21.2.2 External Program Memory Access Timing
Figures 21-2 and 21-3 show external program memory access timing.
The MSM66591/ML66592 have a function to insert a wait cycle when the external
memory access time is slow. (READY function: see 5.2). Use this function according to
the access time of the external memory required for use.
However, unlike access to the internal memory, one cycle is automatically inserted for
every one-byte-access to the external memory.
ROMRDY is a register to specify the number of cycles to be inserted in addition to the
above one cycle.
For actual AC characteristics, see Chapter 25, "Electrical Characteristics."
21-2
MSM66591/ML66592 User's Manual
Chapter 21 Bus Port Functions
CLK
P7_2/ALE
P7_3/PSEN
AD0–AD7
(P0_0–P0_7)
A8–A16
(P1_0–P1_7, P12_0)
PC0–7
INST0–7
PC8–16
PC0–7
INST0–7
PC8–16
[Note] 1 wait cycle is automatically inserted into the CPU in this case as well.
In the ML66592, the timing for A17 (address 17) is the same as A8–A16.
Figure 21-2 External Program Memory Access Timing (No Wait Cycles)
CLK
P7_2/ALE
P7_3/PSEN
AD0–AD7
(P0_0–P0_7)
A8–A16
(P1_0–P1_7, P12_0)
PC0–7
INST0–7
PC8–16
PC0–7
PC8–16
Number of wait cycles
inserted according to
the ROMRDY setting.
In this example, 2 wait
cycles.
[Note] 3 (= 1 + 2) wait cycles are automatically inserted into the CPU in this case as well.
In the ML66592, the timing for A17 (address 17) is the same as A8–A16.
Figure 21-3 External Program Memory Access Timing (2 Wait Cycles)
21-3
21
MSM66591/ML66592 User's Manual
Chapter 21 Bus Port Functions
21-4
Chapter 22
Expansion Port
22
MSM66591/ML66592 User's Manual
Chapter 22 Expansion Port
22. Expansion Port
The MSM66591/ML66592 have a 1-channel internal expansion port for the external
expansion of general-purpose ports.
The expansion port expands port functions by outputting parallel data of the internal
registers as synchronous serial data, and by externally converting serial data to parallel
data.
External parallel data can also be input as synchronous serial data and converted to
parallel data internally. Data input and output uses pin P10_6/SFTDAT, the shift clock
output uses pin P10_5/SFTCLK, and the external latch strobe uses pin P10_7/SFTSTB.
The data length is selectable as 8 bits or 16 bits. Connection of devices such as a
74HC165 is assumed for external input and a 74HC595 is assumed for external output
of the expansion port. Because expansion port functions are assigned as secondary
functions of Port 10, corresponding bits of the Port 10 secondary function control
register must be set to "1" to use expansion port functions.
22.1 Expansion Port Configuration
The expansion port consists of a 16-bit shift register that exchanges data with the
exterior, a 16-bit buffer register (EXTPD) for the shift register, EXTPCON to control
operation, and a control circuit.
Figure 22-1 shows the configuration of the expansion port.
Internal BUS
EXTPD
Shift Register
P10_6/SFTDAT
22
EXTPCON
P10_5/SFTCLK
Control Circuit
1/4 CLK
P10_7/SFTSTB
Figure 22-1 Expansion Port Configuration
22-1
MSM66591/ML66592 User's Manual
Chapter 22 Expansion Port
22.2 Expansion Port Control Register (EXTPCON)
The expansion port control register (EXTPCON) is a 3-bit register that controls the
function of the expansion port.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), EXTPCON becomes F8H.
Figure 22-2 shows the configuration of EXTPCON.
<Description of Each Bit>
• EXPBUSY (bit 0)
This BUSY flag indicates that a data transfer is in progress.
This bit is read-only, and writes are ignored.
• DATMOD (bit 1)
This bit specifies the bit length of the data transfer.
If "0", 8 bits of data are transferred. If "1", 16 bits of data are transferred.
• IOMOD (bit 2)
This bit specifies the data transfer direction.
If "0", data is input. If "1", data is output.
EXTPCON
7
—
6
—
5
—
4
—
3
—
2
1
0
IOMODE
DATMODE
EXPBUSY
0 Halted
1 Data transfer in progress
0 8-bit mode
1 16-bit mode
0 Input mode
1 Output mode
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 22-2 EXTPCON Configuration
22-2
MSM66591/ML66592 User's Manual
Chapter 22 Expansion Port
22.3 Expansion Port Register (EXTPD)
The expansion port register (EXTPD) is a 16-bit buffer register that exchanges data
with the exterior via the shift register. 8-bit access is also possible for this register,
though only for the lower 8 bits as EXTPDL. Note that if 8-bit data is written to EXTPDL,
data at "00H" will be written to the higher 8 bits of EXTPD.
During the input mode, a data transfer (input) is started by reading this register.
During the output mode, a data transfer (output) is started by writing to this register.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), EXTPD becomes 0000H.
22.4 Expansion Port Operation
[1] Input Mode
In the input mode, it is assumed that a 74HC165 or other shift register is connected
externally.
Reading EXPTD causes the transfer (input) to start and the EXPBUSY flag to change
to "1". When EXPTD is read, the latch strobe (SFTSTB) changes to a "L" level.
Next, when the shift clock (SFTCLK) rises, external data (SFTDAT) is input. When
SFTCLK falls, external data is latched internally, and at the same time, SFTSTB
changes to a "H" level. External data changes in sync with the rise of SFTCLK and is
latched internally in sync with the fall of SFTCLK. When SFTCLK outputs 8 clocks, the
transfer (input) is completed, the shift register contents are loaded into EXTPD, and the
EXPBUSY flag changes to "0". SFTCLK is fixed at 1/4 CLK (1/4 of the internal clock).
During the 16-bit mode, SFTCLK outputs 16 clocks and 16-bit transfers are performed.
Figure 22-3 shows the timing of the inputs mode (8-bit mode).
SFTDAT
bit 0
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
bit 7
(shift data)
SFTCLK (1/4 CLK)
(shift clock)
SFTSTB
(data latch)
22
Figure 22-3 Input Mode Timing (8-Bit Mode Example)
22-3
MSM66591/ML66592 User's Manual
Chapter 22 Expansion Port
[2]
Output Mode
In the output mode, it is assumed that a 74HC595 or other shift register is connected
externally.
Writing data to EXPTD causes the transfer (output) to start and the EXPBUSY flag to
change to "1". When data is written to EXPTD, shift data is output in sync with the fall of
the shift clock (SFTCLK). It is assumed that data is captured externally in sync with the
rise of SFTCLK. When SFTCLK outputs 8 clocks, the transfer (output) is completed. At
the same time, SFTSTB changes to a "L" level. 1 shift clock later SFTSTB changes to a
"H" level and data is latched externally. (During this 1 shift clock interval, the shift clock
is not output.) And at the same time that SFTSTB changes to a "H" level, the EXPBUSY
flag becomes "0". SFTCLK is fixed at 1/4 CLK (1/4 of the internal clock).
During the 16-bit mode, SFTCLK outputs 16 clocks and 16-bit transfers are performed.
Figure 22-4 shows the timing of the output mode.
SFTDAT
bit 0
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
(shift data)
SFTCLK (1/4 CLK)
(shift clock)
SFTSTB
(data latch)
Figure 22-4 Output Mode Timing (8-Bit Mode Example)
22-4
bit 7
Chapter 23
Serial Port with FIFO (SCI5)
23
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23. Serial Port with FIFO (SCI5)
The MSM66591/ML66592 have an internal Serial I/O (SCI5) Port with dedicated FIFO
that is used for serial synchronous communication with the CAN controller. SCI5
transmits and receives data in 8-bit units in synchronization with the clock specified by
SCI5 control register 0 (SCI5CON0).
Since an internal 8-stage FIFO functions as a transmit-receive buffer, consecutive
transmission or reception of a maximum of 8 bytes is possible. After data transmission
is completed, an SCI5 interrupt request is generated.
With SCI5, the shift clock for data transfer is output from pin P5_2/SCLK, transmit data
is output from pin P5_1/SDOUT, and receive data is input from pin P5_0/SDIN.
A chip select pin (P5_4/CS), a read and write control pin (P5_3/RWB), a WAIT pin
(P5_7/WAIT) with BUSY signal input, and an interrupt input pin (P5_5/INT2) are
provided for use with the CAN controller.
If SCI5 is to be used, set the following pins to their secondary function: P5_0/SDIN,
P5_1/SDOUT, P5_2/SCLK, P5_3/RWB, P5_4/CS, P5_5/INT2, and P5_7/WAIT.
23.1 SCI5 Configuration
SCI5 consists of a data buffer FIFO, an 8-bit SFDOUT register that writes to the FIFO,
an 8-bit SFDIN register that reads FIFO data, an 8-bit SFADR register that specifies the
CAN controller address to access, a shift register that performs serial transfers, 8-bit
SCI5CON0 and SCI5CON1 registers that control SCI5 operation, and a control circuit.
Figure 23-1 shows the configuration of SCI5.
Internal BUS
SCI5CON0
SFDIN
SFDOUT
SFADR
SCI5CON1
8-byte FIFO
Shift Register
P5_1/SDOUT pin
P5_0/SDIN pin
P5_2/SCLK pin
P5_4/CS pin
Control Circuit
P5_3/RWB pin
P5_5/INT2 pin
P5_7/WAIT pin
Figure 23-1 SCI5 Configuration (Serial I/O with FIFO)
23-1
23
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23.2 SCI5 Control Register 0 (SCI5CON0)
The SCI5 control register 0 (SCI5CON0) is a 7-bit register that controls SCI5 operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SCI5CON0 becomes 10H.
Figure 23-2 shows the configuration of SCI5CON0.
<Description of Each Bit>
• S5CK0–S5CK2 (bits 0–2)
These bits select the SCI5 shift clock.
The selected shift clock is output from pin P5_2/SCLK.
• S5RES (bit 3)
This flag is used to initialize the SCI5’s FIFO pointer.
If this flag is set to "1", the FIFO pointer will be initialized. After initialization, this flag
is automatically cleared. This flag is used to initialize the FIFO pointer when communication is cut off.
• S5EXIE (bit 5)
This flag enables or disables the generation of interrupt requests by the valid edge of
external interrupt 2 (INT2).
If this bit is set to "1", the generation of interrupt requests is enabled. If set to "0", the
generation of interrupt requests is disabled.
• S5RIE (bit 6)
This flag enables or disables the generation of interrupt requests at the completion of
SCI5 reception.
If this bit is set to "1", the generation of interrupt requests is enabled. If set to "0", the
generation of interrupt requests is disabled.
• S5TIE (bit 7)
This flag enables or disables the generation of interrupt requests at the completion of
SCI5 transmission.
If this bit is set to "1", the generation of interrupt requests is enabled. If set to "0", the
generation of interrupt requests is disabled.
23-2
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
SCI5CON0
7
6
5
4
3
2
1
0
S5TIE
S5RIE
S5EXIE
—
S5RES
S5CK2
S5CK1
S5CK0
S5CK
2 1 0
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
SCI5 shift clock
1/4 CLK
1/8 CLK
1/16 CLK
1/32 CLK
1/2 TBCCLK
1/4 TBCCLK
1/8 TBCCLK
1/16 TBCCLK
0 Normal FIFO operation
1 FIFO pointer initialization
Interrupt request due to INT2 valid
edge input: disabled
Interrupt request due to INT2 valid
1
edge input: enabled
0
Interrupt request due to SCI5 receive
completion: disabled
Interrupt request due to SCI5 receive
1
completion: enabled
0
Interrupt request due to SCI5 transmit
completion: disabled
Interrupt request due to SCI5 transmit
1
completion: enabled
0
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 23-2 SCI5CON0 Configuration
23
23-3
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23.3 SCI5 Control Register 1 (SCI5CON1)
The SCI5 control register 1 (SCI5CON1) is a 6-bit register that controls SCI5 operation.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SCI5CON1 becomes C0H.
Figure 23-3 shows the configuration of SCI5CON1.
<Description of Each Bit>
• S5RN0–S5RN3 (bits 0–3)
These bits specify the number of bytes of receive data during reception.
These bits are ignored during transmission.
• TENR (bit 4)
This flag starts reception. Setting this bit to "1" will start reception.
When the number of data bytes specified by S5RN0–S5RN3 are received, this bit is
automatically cleared.
If this bit is cleared during a reception, the reception is immediately suspended and
SCI5 is initialized.
• TENT (bit 5)
This flag starts transmission. Setting this bit to "1" will start transmission.
When the number of data bytes written to the SFDOUT transmit buffer are transmitted, this bit is automatically cleared.
If this bit is cleared during a transmission, the transmission is immediately suspended
and SCI5 is initialized.
SCI5CON1
7
6
5
4
3
2
1
0
—
—
TENT
TENR
S5RN3
S5RN2
S5RN1
S5RN0
S5RN
Number of
3
2
1
0
SCI5 receive bytes
0
0
0
0
Prohibited setting
0
0
0
1
1 byte
0
0
1
0
2 bytes
0
0
1
1
3 bytes
0
1
0
0
4 bytes
0
1
0
1
5 bytes
0
1
1
0
6 bytes
0
1
1
1
7 bytes
1
*
*
*
8 bytes
0 Reception complete
1 Start reception
0 Transmission complete
1 Start transmission
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
"*" indicates either "1" or "0".
Figure 23-3 SCI5CON1 Configuration
23-4
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23.4 SCI5 Interrupt Register (SCI5INT)
The SCI5 interrupt register (SCI5INT) is a 3-bit register that controls SCI5 interrupts.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SCI5INT becomes 1FH.
Figure 23-4 shows the configuration of SCI5INT.
<Description of Each Bit>
• S5EXIRQ (bit 5)
When a valid edge is input to external interrupt 2 (INT2), this individual interrupt
request flag becomes "1".
Because this flag is not automatically cleared even when an interrupt is processed, it
must be cleared by the program.
• S5RIRQ (bit 6)
When SCI5 reception is complete, this individual interrupt request flag becomes "1".
Because this flag is not automatically cleared even when an interrupt is processed, it
must be cleared by the program.
• S5TIRQ (bit 7)
When SCI5 transmission is complete, this individual interrupt request flag becomes
"1".
Because this flag is not automatically cleared even when an interrupt is processed, it
must be cleared by the program.
SCI5INT
7
6
5
S5TIRQ S5RIRQ S5EXIRQ
4
—
3
—
2
—
1
—
0
—
0 Interrupt request generation due to
INT2 pin input: no
1 Interrupt request generation due to
INT2 pin input: yes
0 Interrupt request generation due to
SCI5 reception complete: no
1 Interrupt request generation due to
SCI5 reception complete: yes
0 Interrupt request generation due to
SCI5 transmission complete: no
1 Interrupt request generation due to
SCI5 transmission complete: yes
"—" indicates a bit that is not provided.
"1" is read if a read instruction is executed.
Figure 23-4 SCI5INT Configuration
23-5
23
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23.5 Serial Address Output Register (SFADR)
The 8-bit serial address output register (SFADR) specifies the leading address on the
CAN controller side. The leading address is accessed when data is transmitted to and
received from the CAN controller.
When the CAN controller is to be accessed, for both transmission and reception, the
address written to SFADR is output from the SDOUT pin, and then the data transmission or reception is performed.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SFADR becomes 00H.
Figure 23-5 shows the configuration of SFADR.
SFADR
7
6
5
4
3
2
1
0
Specifies the address to be accessed
on the CAN controller side.
Figure 23-5 SFADR Configuration
23-6
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23.6 Serial Data Input Register (SFDIN)
The serial data input register (SFDIN) is an 8-bit register used to read the data (stored
in the FIFO) received from the CAN controller. This register is read-only. Do not attempt
to write to this register.
Data is received from the SDIN pin into the shift register, and when 1 byte of data is
arranged in the shift register, it is automatically transferred to the FIFO. After the
number of bytes specified by S5RN0–S5RN3 of SCI5CON1 are received, a receive
complete interrupt is generated. By reading the FIFO via SFDIN during processing of
an interrupt, data can be read in order beginning with the first received data.
This register cannot be read during a serial transmission or reception.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SFDIN becomes undefined.
Figure 23-6 shows the configuration of SFDIN.
SFDIN
7
6
5
4
3
2
1
0
Reads data received from the CAN
controller (reads data from FIFO)
Figure 23-6 SFDIN Configuration
23.7 Serial Data Output Register (SFDOUT)
The serial data output register (SFDOUT) is an 8-bit register used to write transmit data
(8 bytes max.) to the CAN controller. This register is write-only. Do not attempt to read
the contents that were written.
Data written to SFDOUT is first stored in the 8-byte FIFO. If transmission is enabled,
data stored in the FIFO is transferred in order to the shift register and then output from
the SDOUT pin.
This register cannot be written to during a serial transmission or reception.
At reset (when the RES signal is input, the BRK instruction is executed, the watchdog
timer is overflown, or an operation code trap is generated), SFDOUT becomes undefined.
Figure 23-7 shows the configuration of SFDOUT.
SFDOUT
7
6
5
4
3
2
1
23
0
Writes transmit data to the CAN controller
(writes data to FIFO)
Figure 23-7 SFDOUT Configuration
23-7
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23.8 SCI5 Operation
During a data transfer, the clock selected by bits 0–2 of SCI5CON0 (S5CK0–S5CK2)
becomes the shift clock for SCI5 (SCI5 clock) and is output from the SCLK pin.
Transmit data is synchronized to the falling edge of the SCI5 clock and output LSB first
from the SDOUT pin. Receive data is synchronized to the rising edge of the SCI5 clock
and input LSB first from the SDIN pin. It is assumed that, regarding external devices,
the serial-in data (receive data) changes at the falling edge of the SCI5 clock and the
serial-out data (transmit data) is captured at the rising edge of the SCI5 clock.
When writing data to the CAN controller, write the leading transmit address (1 byte) to
the SCI5’s SFADR, and then write the transmit data (1–8 bytes) to the SFDOUT
register.
When the transmit enable flag (bit 5 of SCI5CON1: TENT) is set to "1", the CS (chip
select) pin and RWB (read/write) pin first change to "L" levels. Next, the leading address (1 byte) is output from the SDOUT pin to the CAN controller. Then, the number of
bytes of data written to the SFDOUT register are transmitted from the SDOUT pin.
(There is an interval between address-data transfers and between data-data transfers.)
After all the data written to the SFDOUT register has been completely transmitted, the
CS pin and RWB pin change to "H" levels, the TENT bit is reset to "0", and an interrupt
request flag (QSIO5) is set to "1" at the beginning of the next instruction (M1S1). In this
case, it is assumed that on the CAN controller side, transmit data has been written to
consecutive addresses beginning with the leading address that was transmitted first.
If the TENT bit is reset to "0" during a transfer, the transmission is immediately suspended and SCI5 initialized. In this case, the transmission contents are not saved.
When reading data from the CAN controller, write the leading receive address (1 byte)
to the SCI5’s SFADR, and then write the number of receive data bytes (1–8 bytes) to
bits 0–3 of SCI5CON1 (S5RN0–S5RN3).
When the receive enable flag (bit 4 of SCI5CON1: TENR) is set to "1", the CS (chip
select) pin first changes to a "L" level. Next, the leading address (1 byte) is output from
the SDOUT pin to the CAN controller. Data is thereafter received from the SDIN pin
(there is an interval between data-data transfers). Received data is transferred in order
to the FIFO.
When the number of data bytes specified by S5RN0–S5RN3 are received, the reception is complete, the CS pin changes to a "H" level, the TENR bit is reset to "0", and an
interrupt request flag (QSCI5) is set to "1" at the beginning of the next instruction
(M1S1).
Data that was received and then transferred to the FIFO is read via the SFDIN register.
In this case, it is assumed that on the CAN controller side, receive data has been read
in consecutive addresses beginning with the leading address that was transmitted first.
If the TENR bit is reset to "0" during a reception, the reception is immediately suspended and SIO5 initialized. In this case, the reception contents are not saved.
SCI5, when it has output leading address, checks the BUSY signal input to the WAIT
pin. If the WAIT pin is "1", it halts operation. SCI5 starts operation when the WAIT pin
changes to "0".
Figure 23-8-(a) shows the transmission operation timing during a consecutive transfer,
and Figure 23-8-(b) shows the reception operation timing during a consecutive transfer.
23-8
(a) Transmission
167 ns (Internal master clock = 24 MHz)
1/4 CLK
CS
SCLK
SDOUT
A0 A1 A2 A3 A4 A5 A6 A7
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3
D0 D1 D2 D3 D4 D5 D6 D7
SDIN
R/W
(b) Reception
23-9
CS
SCLK
SDIN
R/W
Address transmission
BUSY reception
(WAIT input)
Address reception
BUSY output
Data transmission and reception (8 bytes max.)
M66591
CAN Cont
Data transmission
and reception
Data R/W
Address
update
Data transmission
and reception
Figure 23-8 Consecutive Transfer Operation Timing (Internal Master Clock = 24 MHz)
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
A0 A1 A2 A3 A4 A5 A6 A7
SDOUT
23
MSM66591/ML66592 User's Manual
Chapter 23 Serial Port with FIFO (SCI5)
23-10
Chapter 24
RAM Monitor Function
24
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
24. RAM Monitor Function
The MSM66591/ML66592 have a RAM monitor function that monitors data written to a
set address in the data memory area during the execution of an instruction.
In the MSM66591 this function monitors data written to an address from 0000H to
19FFH in the data memory area, and in the ML66592 it monitors data written to an
address from 0000H to 21FFH.
The RAM monitor function operates as follows. After data has been written to a set
RAM address, an "address matching" signal is output when the set ROM address and
program counter match. Monitor data is read by a synchronous serial transfer (by the
slave) when this matching output is received.
ROM or RAM addresses to be monitored are set with synchronous serial transfers (by
the slave).
Note that the MSM66Q591/ML66Q592 flash EEPROM version and the MSM66591/
ML66592 mask ROM version have different pins to set the RAM monitor function.
In the MSM66Q591/ML66Q592 flash EEPROM version, the RAM monitor function
cannot be used in the user mode used for reprogramming the flash EEPROM.
24.1 Configuration of RAM Monitor Function
Figure 24-1 shows the configuration of the RAM monitor function.
The RAM monitor function consists of a 21-bit shift register, a ROM address buffer, a
RAM address buffer, a RAM data register, comparators and a control circuit. A total of
four pins are used for data transfer: P11_0/RMRX (set address input), P11_1/RMTX
(RAM data output), P11_2/RMCLK (synchronous clock input for data transfer), P11_3/
RMACK (address match detect output).
In the MSM66Q591/ML66Q592 flash EEPROM version, the RAM monitor function is
enabled when the EA pin is set to a "H" level; in the MSM66591/ML66592 mask ROM
version, the RAM monitor function is enabled when the TEST pin is set to a "H" level. In
the initial state (MSM66Q591/ML66Q592: state where EA pin is at a "L" level or a "H"
level, MSM66591/ML66592: state where the TEST pin is at a "L" level), the entire
contents of the shift register, ROM address buffer, RAM address buffer and RAM data
register are initialized to 00000H.
24
24-1
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
P11_0/RMRX
RAM Address Pointer
Program Counter
Comparator
Comparator
RAM Address Buffer
ROM Address Buffer
DIN
CLK
TEST (for MSM66591/
ML66592)
EA (for MSM66Q591/
ML66Q592)
Control
Circuit
DOUT
21-bit Shift Register
P11_2/RMCLK
RAM Data Register
Data Bus
Figure 24-1 RAM Monitor Configuration
24-2
P11_3/RMACK
P11_1/RMTX
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
24.2 Configuration of Serial Transfer Data
Figure 24-2 shows the format of transfer data (RAM address/ROM address to be set,
RAM address to be read).
The transfer data length is 21 bits. In accordance with the synchronous clock input to
the RMCLK pin, data is transferred LSB first.
The desired RAM address to be read can be set within the range from 0000H to 19FFH
for the MSM66591 and from 0000H to 21FFH for the ML66592. Data can be read from
the set RAM address only if a write operation has been performed. If a read operation is
attempted after an instruction other than a write instruction, such as in the case of a
counter (including ACC, PSW, etc.) whose contents are changed automatically, incorrect values may be read.
The ROM address setting range is from 00000H to 1FFFDH for the MSM66591 and
from 0000H to 2FFFDH for the ML66592.
<Description of Each Bit>
[RAM or ROM address reception]
• RAM address field (bit 0 to bit 15: when setting a RAM address)
Sets the RAM address desired to be read.
• ROM address field (bit 0 to bit 17: when setting a ROM address)
Sets the ROM address that determines read timing for the RAM address desired to
be read.
• MODE (bit 18)
If setting a ROM address, set the MODE bit to "1". If setting a RAM address, set to
"0".
• ENABLE (bit 19)
The enable bit specifies whether the addresses that have been set are valid or
invalid. If the enable bit is "1", the addresses that were input are valid and are stored
in each address buffer. If the enable bit is "0", the addresses that were input are
ignored.
• GO (bit 20)
This bit controls operation of the RAM monitor. When the GO bit is "1", the RAM
monitor function starts monitor operation at the set address. When the GO bit is "0",
operation is stopped.
[RAM data transmission]
• RAM data field (bit 0 to bit 15)
Outputs data at the RAM address desired to be read.
24
[Notes] 1. When setting a RAM address, be sure to set the dummy bits (bit 16 and bit 17)
to "0".
2. The dummy bits (bit 16 to bit 20) in the transmit format of the RAM data desired
to be read always output "0".
24-3
RMCLK
RMRX
bit 0
bit 1
bit 2
bit 13
bit 14
bit 15
"0"
RAM address (16 bits)
"0"
Dummy bits
"0"
ENABLE
GO
ENABLE
GO
"0"
"0"
MODE bit
(2) ROM address setting
RMCLK
24-4
RMRX
bit 0
bit 1
bit 2
bit 13
bit 14
bit 15
bit 16
bit 17
ROM address (18 bits)
"1"
MODE bit
(3) RAM data read
RMCLK
RMTX
bit 0
bit 1
bit 2
bit 13
bit 14
bit 15
"0"
RAM data (16 bits)
"0"
"0"
Dummy bits
Note: The operation of (1) and (3) are simultaneously performed in synchronization with RMCLK. The operation of (2) and (3) are performed in the same manner.
Figure 24-2 Transfer Data Format
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
(1) RAM address setting
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
24.3 RAM Monitor Function Operation
To enable the RAM monitor function, set the EA pin to a "H" level for the MSM66Q591/
ML66Q592, and set the TEST pin to a "H" level for the MSM66591/ML66592. Do not
apply a high voltage (more than 5 V) to the EA and TEST pins of the MSM66591/
ML66592 mask ROM version, because those pins of the mask ROM version will be
damaged if a high voltage is applied to. Care must be taken especially when the mask
ROM version and the flash EEPROM version share the substrate. With this setting, the
secondary functions of P11_0 to P11_3 (RMRX, RMTX, RMCLK, and RMACK) will be
enabled. The operating modes (RESET, STOP, and HALT) of the microcontroller do not
affect operation of the RAM monitor function.
In the MSM66Q591/ML66Q592 flash EEPROM version, the RAM monitor function
cannot be used in the user mode used for reprogramming the flash EEPROM.
This RAM monitor function requires that two addresses be set, a RAM address and a
ROM address. Either address may be set first. The following example describes the
case in which the RAM address is set first.
[1]
Setting the addresses
First, as shown in the RAM address setting timing diagram of Figure 24-2 (1), set the
RAM address desired to be read by inputting a serial input to the RMRX pin in accordance with the synchronous clock RXCLK. (Set MODE bit = "0", ENABLE bit = "1", and
GO bit = "0".)
Next, determine the read timing for the RAM data desired to be read. Set a ROM
address in accordance with the ROM address setting timing diagram of Figure 24-2 (2).
(Set MODE bit = "1", ENABLE bit = "1", and GO bit = "1".)
When the RAM monitor function detects that the GO bit of the received ROM address is
"1", the ROM address is loaded in the ROM address buffer, and address comparison is
started.
[2]
Detection of address matching
When data is written to the set RAM address, the same data is also loaded into the
RAM data register.
Next, when the program counter matches the set ROM address, the RMACK pin
changes from a "L" to a "H" level, and address comparison is halted until another
address whose GO bit is "1" is set. The RMACK pin remains at a "H" level until reading
of the RAM data is complete. If the program counter matches the ROM address before
matching the RAM address, as shown in Figure 24-4, the match with the ROM address
is ignored. On the other hand, if there is another match with the RAM address before a
match with the ROM address, as shown in Figure 24-5, the contents of the RAM data
register are updated.
[3]
Reading data
After the RMACK pin changes to a "H" level, by inputting an external synchronous clock
to the RXCLK pin, contents of the RAM data register are read via the RMTX pin. The
RMACK pin changes to a "L" level when the read is complete.
Because a new address can be set from the RMRX pin at the same time as data is read
from the RMTX pin, reading can be restarted at a new address immediately after the
current read is complete. To restart at the same address (without changing the address
setting), set the ENABLE bit to "0" and only the GO bit to "1". (The values of the address bits are arbitrary.)
24-5
24
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
In the MSM66Q591/ML66Q592, when the EA pin is brought back to a "L" or "H" level,
the RAM monitor function is disabled and the control circuit is initialized.
In the MSM66591/ML66592, when the TEST pin is brought back to a "L" level, the RAM
monitor function is disabled and the control circuit is initialized.
When enabling the RAM monitor function, externally apply a "H" level to the P11_0/
RMRX pin and to the P11_2/RMCLK pin in advance.
24-6
("H" level)
EA
(for MSM66Q591/ML66Q592)*
RMCLK
RMRX
RAM address
ROM address
RAM address
Undefined data
Undefined data
RAM data
RMACK
RMTX
Figure 24-3 RAM Monitor Basic Operation Timing
("H" level)
EA
(for MSM66Q591/ML66Q592)*
PCCMP
Ignored
RAMCMP
24-7
RMACK
Explanation of Symbols
PCCMP: A rise in this signal indicates that the set ROM address has matched the program counter.
RAMCMP: A rise in this signal indicates that the set RAM address has matched the RAM address pointer.
("H" level)
EA
(for MSM66Q591/ML66Q592)*
PCCMP
RAMCMP
RAM data register
0000H
5555H
AAAAH
RMACK
Explanation of Symbols
PCCMP: A rise in this signal indicates that the set ROM address has matched the program counter.
RAMCMP: A rise in this signal indicates that the set RAM address has matched the RAM address pointer.
* For the MSM66591/ML66592 mask ROM version, it is the TEST pin that is used to set the RAM monitor function, in which case a "H" level
(5 V) is applied to the TEST pin.
Figure 24-5 Example of RAM Data Register Update Timing
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
Figure 24-4 Example where a Match with the ROM Address is Ignored
24
MSM66591/ML66592 User's Manual
Chapter 24 RAM Monitor Function
24-8
Chapter 25
Electrical Characteristics
25
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25. Electrical Characteristics
[MSM66591 Electrical Characteristics]
25.1 Absolute Maximum Ratings
MSM66591
Parameter
Symbol
VDD
Input voltage
VI
Output voltage
VO
Analog power supply voltage
AVDD
Condition
VAI
Rating
–0.3 to +7.0
–0.3 to VDD + 0.3
–0.3 to VDD + 0.3
–0.3 to VDD + 0.3
–0.3 to VDD + 0.3 and
–0.3 to AVDD + 0.3
–0.3 to VREF
VHV
–0.3 to +13
Digital power supply voltage
Analog reference voltage
Analog input voltage
High-voltage tolerant
input voltage*2
Power dissipation
Storage temperature
*1
*2
VREF
PD
TSTG
GND = AGND = 0 V
Ta = 25°C
Ta = 115°C*1
per package
per output
—
300
50
–50 to +150
Unit
V
mW
°C
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
Applied to TEST, EA. Only for MSM66Q591
Apply a high voltage to the TEST or EA pin after a voltage within the range (4.75 to 5.25
V) guaranteed for operation is applied to VDD.
Remove a high voltage from the TEST or EA pin while a voltage within the range (4.75
to 5.25 V) guaranteed for operation is being applied to VDD.
25
25-1
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.2 Operating Range
MSM66591
Symbol
Parameter
VDD
Digital power supply voltage
Analog power supply voltage AVDD
Analog reference voltage
VREF
Analog input voltage
VAI
Memory hold voltage
VDDH
Operating frequency
fOSC*1
Ambient temperature
Ta*2
Fanout
*1
*2
*3
N
Condition
20 MHz £ fOSC £ 24 MHz*1
VDD = AVDD
—
—
fOSC = 0 Hz*1
VDD = 5 V ±10%
—
MOS load
TTL load
Unit
Range
4.5 to 5.5
4.5 to 5.5
AVDD – 0.3 to AVDD
AGND to VREF
2.0 to 5.5
20 to 24
–40 to +115
20
MHz
°C
—
P0, P7_0–P7_3
2
—
P1–P12 (except
P7_0–P7_3)
1
—
V
Digital power supply
voltage during Flash ROM
programming*3
VWR
Ta = –40 to +90°C
4.75 to 5.25
V
Ambient temperature
during Flash ROM
programming*3
TWR
VDD = 4.75 to 5.25 V
–40 to +90
°C
Flash ROM programming
cycle*3
CWR
Ta = –40 to +90°C
VDD = 4.75 to 5.25 V
100
cycle
fOSC is the frequency of the internal master clock (the master clock is the frequency
generated by multiplying the original oscillation clock by 2).
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
Only for MSM66Q591
25-2
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.3 DC Characteristics
MSM66591
(VDD = 5 V ±10%, Ta = –40 to +115°C)*2
Parameter
"H" level input voltage
1
"H" level input voltage 2,4,5,6,7
"L" level input voltage
1
"L" level input voltage 2,4,5,6,7
Symbol
Condition
VIH
—
VIL
—
Min.
Typ.
Max.
2.2
—
VDD + 0.3
0.80VDD
—
VDD + 0.3
–0.3
—
0.8
–0.3
—
0.2VDD
IO = –400 mA
VDD – 0.4
—
—
IO = –200 mA
VDD – 0.4
—
—
IO = 3.2 mA
—
—
0.4
IO = 1.6 mA
—
—
0.4
"H" level output voltage
1,4
"H" level output voltage
2
"L" level output voltage
1,4
"L" level output voltage
2
Input leakage current
3
—
—
0.1/–0.1
Input leakage current
6
—
—
1/–1
Input current
5
—
—
1/–250
7
—
—
15/–15
1,4
–2
—
—
Input current
"H" level output current
"H" level output current
2
"L" level output current
1,4
"L" level output current
2
VOH
VOL
IIH/IIL
VI = VDD/0 V
IOH
ILO
CI
Output capacity
CO
Analog reference power
supply current
IREF
Supply current
(in STOP mode)
IDDS
Supply current
(in HALT mode)
IDDH
Supply current
IDD
High-voltage tolerant
input voltage*3,4
VIHV
High-voltage tolerant
input current*3,4
IIHV
µA
–1
—
—
—
—
5
—
—
—
—
±2
—
5
—
—
7
—
A/D conversion in progress
—
—
12
mA
A/D conversion stopped
—
—
10
µA
—
—
0.2
1
10
100
µA
—
55
70
—
80
100
—
12
V
—
1
mA
IOL
Output leakage current 1,2,4
V
10
VO = 2.4 V
Input capacity
Unit
VO = VDD/0 V
f = 1 MHz, Ta = 25°C
VDD = 2 V, Ta = 25°C
*
fOSC = 24 MHz*1,
No Load
*
VDD = 4.75 to 5.25 V VDD + 4.75
VDD = 4.75 to 5.25 V
VIHV = VDD + 0.3 to 12 V
—
mA
µA
pF
mA
1. Applied to P0
2. Applied to P1–P12 (excluding P7_0–P7_3)
3. Applied to AI0–AI23
4. Applied to P7_0–P7_3
5. Applied to RES
6. Applied to EA, OE, NMI
7. Applied to OSC0
* Ports configured to be input should be connected to VDD or 0 V; other ports should
take no load.
25-3
25
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
*1 fOSC is the frequency of the internal master clock.
*2 If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
*3 Applied to TEST, EA. Only for MSM66Q591
*4 When programming data into Flash ROM using Oki’s Flash ROM programmer or
YDC’s Flash ROM programmer, use a resistor of 1 kΩ or less if connecting an
external resistor in series with the TEST pin.
Apply a high voltage to the TEST or EA pin after a voltage within the range (4.75 to
5.25 V) guaranteed for operation is applied to VDD.
Remove a high voltage from the TEST or EA pin while a voltage within the range
(4.75 to 5.25 V) guaranteed for operation is being applied to VDD.
25-4
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.4 AC Characteristics
[1]
External Program Memory Control
MSM66591
(VDD = 5 V ±10%, Ta = –40 to +115°C)*2
Parameter
Master clock (CLK) pulse width
*1
*2
Symbol
Condition
Min.
Max.
tøW*1
—
20.8
25
ALE pulse width
tAW
2tøW – 10
—
PSEN pulse width
tPW
2tøW – 10
—
PSEN pulse delay time
tPAD
tøW – 10
tøW + 10
Low address setup time
tALS
2tøW – 15 2tøW + 3
Low address hold time
tALH
High address setup time
tAHS
High address hold time
CL = 50 pF
tøW – 10
Unit
ns
tøW + 10
3tøW – 10 4tøW + 3
tAPH
0
tøW + 10
Instruction setup time
tIS
30
—
Instruction hold time
tIH
0
tøW – 10
The master clock pulse is the frequency generated by multiplying the original oscillation
clock by 2.
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
Master clock (CLK)
(internal)
tøW
tøW
ALE
tAW
PSEN
tPAD
AD0–AD7
tPW
PC0–7
tALS
A8–A16
INST0–7
tALH
tIS
tIH
PC8–16
tAHS
tAPH
25
25-5
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.5 A/D Converter Characteristics
MSM66591
(Ta = –40 to +115°C, AVDD = VDD = VREF = 5 V ±10%, AGND = GND = 0 V, fOSC = 24 MHz)*1,2
Parameter
Symbol
Resolution
n
Condition
Refer to the measurement
circuit (Figure 25-1)
Analog input source impedance
RI £ 5 kW
tCONV = 16 µs
Min.
Typ.
Max.
Unit
—
—
10
Bit
—
—
±3
—
—
±1
—
—
+3
—
—
–3
Linearity error
EL
Differential linearity error
ED
Zero scale error
EZS
Full scale error
EFS
Crosstalk
ECT
Refer to the measurement
circuit (Figure 25-2)
—
—
±1
tCONV
by ADTM set data
10.7
—
21.3
Conversion time
*1
*2
LSB
µs/ch
fOSC is the frequency of the internal master clock (the master clock is the frequency
generated by multiplying the original oscillation clock by 2).
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
0.1
µF
Reference
Voltage
AVDD
VREF
0.1
µF
+5 V
47 +
µF
+
0.1
µF
MSM66591
RI
–
+
VDD
47
µF
AI0–AI23
Analog input
AGND
GND
CI
RI (Analog input source impedance) £ 5 kW
CI = 0.1 µF
Figure 25-1 Measurement Circuit (MSM66591)
25-6
0V
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
MSM66591
5 kW
–
+
AI0
AI1
Analog input
0.1 µF
Crosstalk is defined as the
difference between the A/D
conversion result when applying
the identical analog
input to AI0–AI23 and the A/D
conversion result in the circuit
in the left figure.
AI23
VREF or AGND
Figure 25-2 Crosstalk Measurement Circuit (MSM66591)
Definition of Terminology
1.
Resolution
Resolution is the value of minimum discernible analog input.
With 10 bits, since 210 = 1024, resolution of (VREF – AGND) ÷ 1024 is possible.
2.
Linearity error
Linearity error is the difference between ideal conversion characteristics and actual
conversion characteristics of a 10-bit A/D converter (not including quantization error).
Ideal conversion characteristics can be obtained by dividing the voltage between VREF
and AGND into 1024 equal steps.
3.
Differential linearity error
Differential linearity error indicates the smoothness of conversion characteristics.
Ideally, the range of analog input voltage that corresponds to 1 converted bit of digital
output is 1LSB = (VREF – AGND) ÷ 1024. Differential error is the difference between
this ideal bit size and bit size of an arbitrary point in the conversion range.
4.
Zero scale error
Zero scale error is the difference between ideal conversion characteristics and actual
conversion characteristics at the point where the digital output changes from 000H to
001H.
5.
Full-scale error
Full-scale error is the difference between ideal conversion characteristics and actual
conversion characteristics at the point where the digital output changes from 3FEH to
3FFH.
25-7
25
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
[ML66592 Electrical Characteristics]
25.6 Absolute Maximum Ratings
ML66592
Parameter
Symbol
VDD
Input voltage
VI
Output voltage
VO
Analog power supply voltage
AVDD
Condition
VAI
Rating
–0.3 to +7.0
–0.3 to VDD + 0.3
–0.3 to VDD + 0.3
–0.3 to VDD + 0.3
–0.3 to VDD + 0.3 and
–0.3 to AVDD + 0.3
–0.3 to VREF
VHV
–0.3 to +13
Digital power supply voltage
Analog reference voltage
Analog input voltage
High-voltage tolerant
input voltage*2
Power dissipation
Storage temperature
*1
*2
VREF
PD
TSTG
GND = AGND = 0 V
Ta = 25°C
Ta = 95°C*1
per package
per output
—
730
50
–50 to +150
Unit
V
mW
°C
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
Applied to TEST, EA. Only for ML66Q592
Apply a high voltage to the TEST or EA pin after a voltage within the range (4.75 to 5.25
V) guaranteed for operation is applied to VDD.
Remove a high voltage from the TEST or EA pin while a voltage within the range (4.75
to 5.25 V) guaranteed for operation is being applied to VDD.
25-8
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.7 Operating Range
ML66592
Symbol
Parameter
VDD
Digital power supply voltage
Analog power supply voltage AVDD
Analog reference voltage
VREF
Analog input voltage
VAI
Memory hold voltage
VDDH
Operating frequency
fOSC*1
Ambient temperature
Ta*2
Fanout
*1
*2
*3
N
Condition
20 MHz £ fOSC £ 28 MHz*1
VDD = AVDD
—
—
fOSC = 0 Hz*1
VDD = 5 V ±10%
—
MOS load
TTL load
Unit
Range
4.5 to 5.5
4.5 to 5.5
AVDD – 0.3 to AVDD
AGND to VREF
2.0 to 5.5
20 to 28
–40 to +95
20
MHz
°C
—
P0, P7_0–P7_3
2
—
P1–P12 (except
P7_0–P7_3)
1
—
V
Digital power supply
voltage during Flash ROM
programming*3
VWR
Ta = –40 to +90°C
4.75 to 5.25
V
Ambient temperature
during Flash ROM
programming*3
TWR
VDD = 4.75 to 5.25 V
–40 to +90
°C
Flash ROM programming
cycle*3
CWR
Ta = –40 to +90°C
VDD = 4.75 to 5.25 V
100
cycle
fOSC is the frequency of the internal master clock (the master clock is the frequency
generated by multiplying the original oscillation clock by 2).
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
Only for ML66Q592
25
25-9
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.8 DC Characteristics
ML66592
(VDD = 5 V ±10%, Ta = –40 to +95°C)*2
Parameter
"H" level input voltage
1
"H" level input voltage 2,4,5,6,7
"L" level input voltage
1
Condition
VIH
—
VIL
—
Min.
Typ.
Max.
2.2
—
VDD + 0.3
0.80VDD
—
VDD + 0.3
–0.3
—
0.8
–0.3
—
0.2VDD
IO = –400 mA
VDD – 0.4
—
—
IO = –200 mA
VDD – 0.4
—
—
IO = 3.2 mA
—
—
0.4
IO = 1.6 mA
—
—
0.4
3
—
—
0.1/–0.1
6
—
—
1/–1
—
—
1/–250
7
—
—
15/–15
1,4
–2
—
—
"L" level input voltage 2,4,5,6,7
"H" level output voltage
1,4
"H" level output voltage
2
"L" level output voltage
1,4
"L" level output voltage
2
Input leakage current
Input leakage current
Input current
5
Input current
"H" level output current
Symbol
"H" level output current
2
"L" level output current
1,4
"L" level output current
2
VOH
VOL
IIH/IIL
VI = VDD/0 V
IOH
ILO
CI
Output capacity
CO
Analog reference power
supply current
IREF
Supply current
(in STOP mode)
IDDS
Supply current
(in HALT mode)
IDDH
Supply current
IDD
High-voltage tolerant
input voltage*3,4
VIHV
High-voltage tolerant
input current*3,4
IIHV
µA
–1
—
—
—
—
5
—
—
—
—
±2
—
5
—
—
7
—
A/D conversion in progress
—
—
12
mA
A/D conversion stopped
—
—
10
µA
—
—
0.2
1
10
100
µA
—
65
90
—
95
120
—
12
V
—
1
mA
IOL
Output leakage current 1,2,4
V
10
VO = 2.4 V
Input capacity
Unit
VO = VDD/0 V
f = 1 MHz, Ta = 25°C
VDD = 2 V, Ta = 25°C
*
fOSC = 28 MHz*1,
No Load
*
VDD = 4.75 to 5.25 V VDD + 4.75
VDD = 4.75 to 5.25 V
VIHV = VDD + 0.3 to 12 V
—
mA
µA
pF
mA
1. Applied to P0
2. Applied to P1–P12 (excluding P7_0–P7_3)
3. Applied to AI0–AI23
4. Applied to P7_0–P7_3
5. Applied to RES
6. Applied to EA, OE, NMI
7. Applied to OSC0
* Ports configured to be input should be connected to VDD or 0 V; other ports should
take no load.
25-10
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
*1 fOSC is the frequency of the internal master clock.
*2 If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
*3 Applied to TEST, EA. Only for ML66Q592
*4 When programming data into Flash ROM using Oki’s Flash ROM programmer or
YDC’s Flash ROM programmer, use a resistor of 1 kΩ or less if connecting an
external resistor in series with the TEST pin.
Apply a high voltage to the TEST or EA pin after a voltage within the range (4.75 to
5.25 V) guaranteed for operation is applied to VDD.
Remove a high voltage from the TEST or EA pin while a voltage within the range
(4.75 to 5.25 V) guaranteed for operation is being applied to VDD.
25
25-11
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.9 AC Characteristics (Preliminary)
[1]
External Program Memory Control
ML66592
(VDD = 5 V ±10%, Ta = –40 to +95°C)*2
Parameter
Symbol
Master clock (CLK) pulse width
*2
*3
—
tøW
Min.
Max.
20.8
25
tAW
2tøW – 10
—
PSEN pulse width
tPW
2tøW – 10
—
PSEN pulse delay time
tPAD
tøW – 10
tøW + 10
Low address setup time
tALS
Low address hold time
tALH
High address setup time
tAHS
High address hold time
tAPH
0
Instruction setup time
tIS
30
—
Instruction hold time
tIH
0
tøW – 10
ALE pulse width
*1
Condition
*1
fOSC ≤ 24 MHz*3
CL = 50 pF
2tøW – 15 2tøW + 3
tøW – 10
Unit
ns
tøW + 10
3tøW – 10 4tøW + 3
tøW + 10
The master clock pulse is the frequency generated by multiplying the original oscillation
clock by 2.
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
In the ML66Q592, the electrical characteristics for external memory access apply when
the (internal) master clock frequency is 24 MHz or less.
Master clock (CLK)
(internal)
tøW
tøW
ALE
tAW
PSEN
tPAD
AD0–AD7
tPW
PC0–7
tALS
A8–A17
INST0–7
tALH
tIS
tIH
PC8–17
tAHS
25-12
tAPH
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
25.10 A/D Converter Characteristics
ML66592
(Ta = –40 to +95°C, AVDD = VDD = VREF = 5 V ±10%, AGND = GND = 0 V, fOSC = 28 MHz)*1,2
Parameter
Symbol
Resolution
n
Condition
Min.
Typ.
Max.
Unit
—
—
10
Bit
—
—
±3
—
—
±1
—
—
+3
—
—
–3
Refer to the measurement
circuit (Figure 25-3)
Analog input source impedance
RI £ 5 kW
tCONV = 18.3 µs
Linearity error
EL
Differential linearity error
ED
Zero scale error
EZS
Full scale error
EFS
Crosstalk
ECT
Refer to the measurement
circuit (Figure 25-4)
—
—
±1
tCONV
by ADTM set data
9.1
—
18.3
Conversion time
*1
*2
LSB
µs/ch
fOSC is the frequency of the internal master clock (the master clock is the frequency
generated by multiplying the original oscillation clock by 2).
If this device is used in circumstances where the ambient temperature (Ta) exceeds
85°C, be sure to contact your local Oki sales office in advance.
0.1
µF
Reference
Voltage
AVDD
VREF
0.1
µF
–
+
Analog input
VDD
+5 V
47 +
µF
+
0.1
µF
ML66592
RI
47
µF
AI0–AI23
AGND
GND
CI
0V
RI (Analog input source impedance) £ 5 kW
CI = 0.1 µF
Figure 25-3 Measurement Circuit (ML66592)
25
25-13
MSM66591/ML66592 User's Manual
Chapter 25 Electrical Characteristics
ML66592
5 kW
–
+
AI0
AI1
Analog input
0.1 µF
Crosstalk is defined as the
difference between the A/D
conversion result when applying
the identical analog
input to AI0–AI23 and the A/D
conversion result in the circuit
in the left figure.
AI23
VREF or AGND
Figure 25-4 Crosstalk Measurement Circuit (ML66592)
Definition of Terminology
1.
Resolution
Resolution is the value of minimum discernible analog input.
With 10 bits, since 210 = 1024, resolution of (VREF – AGND) ÷ 1024 is possible.
2.
Linearity error
Linearity error is the difference between ideal conversion characteristics and actual
conversion characteristics of a 10-bit A/D converter (not including quantization error).
Ideal conversion characteristics can be obtained by dividing the voltage between VREF
and AGND into 1024 equal steps.
3.
Differential linearity error
Differential linearity error indicates the smoothness of conversion characteristics.
Ideally, the range of analog input voltage that corresponds to 1 converted bit of digital
output is 1LSB = (VREF – AGND) ÷ 1024. Differential error is the difference between
this ideal bit size and bit size of an arbitrary point in the conversion range.
4.
Zero scale error
Zero scale error is the difference between ideal conversion characteristics and actual
conversion characteristics at the point where the digital output changes from 000H to
001H.
5.
Full-scale error
Full-scale error is the difference between ideal conversion characteristics and actual
conversion characteristics at the point where the digital output changes from 3FEH to
3FFH.
25-14
Chapter 26
Package Dimensions
26
MSM66591/ML66592 User's Manual
Chapter 26 Package Dimensions
26. Package Dimensions
(Unit : mm)
LQFP144-P-2020-0.50-K
Mirror finish
Package material
Lead frame material
Pin treatment
Package weight (g)
Rev. No./Last Revised
Oki Electric Industry Co., Ltd.
Epoxy resin
42 alloy
Solder plating (≥5 mm)
1.37 TYP.
5/Nov. 28, 1996
Notes for Mounting the Surface Mount Type Package
The surface mount type packages are very susceptible to heat in reflow mounting and
humidity absorbed in storage.
Therefore, before you perform reflow mounting, contact Oki's responsible sales person for
the product name, package name, pin number, package code and desired mounting
conditions (reflow method, temperature and times).
26-1
26
MSM66591/ML66592 User's Manual
Chapter 26 Package Dimensions
26-2
Chapter 27
Revision History
27
MSM66591/ML66592 User's Manual
Chapter 27 Revision History
27. Revision History
Document
No.
Page
Date
FEUL66591-66592-01 Mar. 4, 2002
Description
Previous Current
Edition Edition
—
—
First edition
27
27-1
MSM66591/ML66592 User's Manual
Chapter 27 Revision History
27-2
NOTICE
1.
The information contained herein can change without notice owing to product and/or
technical improvements. Before using the product, please make sure that the information
being referred to is up-to-date.
2.
The outline of action and examples for application circuits described herein have been
chosen as an explanation for the standard action and performance of the product. When
planning to use the product, please ensure that the external conditions are reflected in the
actual circuit, assembly, and program designs.
3.
When designing your product, please use our product below the specified maximum
ratings and within the specified operating ranges including, but not limited to, operating
voltage, power dissipation, and operating temperature.
4.
Oki assumes no responsibility or liability whatsoever for any failure or unusual or
unexpected operation resulting from misuse, neglect, improper installation, repair, alteration
or accident, improper handling, or unusual physical or electrical stress including, but not
limited to, exposure to parameters beyond the specified maximum ratings or operation
outside the specified operating range.
5.
Neither indemnity against nor license of a third party’s industrial and intellectual property
right, etc. is granted by us in connection with the use of the product and/or the information
and drawings contained herein. No responsibility is assumed by us for any infringement
of a third party’s right which may result from the use thereof.
6.
The products listed in this document are intended for use in general electronics equipment
for commercial applications (e.g., office automation, communication equipment,
measurement equipment, consumer electronics, etc.). These products are not authorized
for use in any system or application that requires special or enhanced quality and reliability
characteristics nor in any system or application where the failure of such system or
application may result in the loss or damage of property, or death or injury to humans.
Such applications include, but are not limited to, traffic and automotive equipment, safety
devices, aerospace equipment, nuclear power control, medical equipment, and life-support
systems.
7.
Certain products in this document may need government approval before they can be
exported to particular countries. The purchaser assumes the responsibility of determining
the legality of export of these products and will take appropriate and necessary steps at their
own expense for these.
8.
No part of the contents contained herein may be reprinted or reproduced without our prior
permission.
Copyright 2002 Oki Electric Industry Co., Ltd.
Printed in Japan
Similar pages