MOTOROLA SPAKMC331MFV16

MC68331
User’s Manual
Motorola reserves the right to make changes without further notice to any products herein. Motorola makes no warranty, representation or guarantee regarding the suitability
of its products for any particular purpose, nor does Motorola assume any liability arising out of the application or use of any product or circuit, and specifically disclaims any and
all liability, including without limitation consequential or incidental damages. "Typical" parameters can and do vary in different applications. All operating parameters, including
"Typicals" must be validated for each customer application by customer's technical experts. Motorola does not convey any license under its patent rights nor the rights of others.
Motorola products are not designed, intended, or authorized for use as components in systems intended for surgical implant into the body, or other applications intended to
support or sustain life, or for any other application in which the failure of the Motorola product could create a situation where personal injury or death may occur. Should Buyer
purchase or use Motorola products for any such unintended or unauthorized application, Buyer shall indemnify and hold Motorola and its officers, employees, subsidiaries,
affiliates, and distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney fees arising out of, directly or indirectly, any claim of personal
injury or death associated with such unintended or unauthorized use, even if such claim alleges that Motorola was negligent regarding the design or manufacture of the part.
MOTOROLA and ! are registered trademarks of Motorola, Inc. Motorola, Inc. is an Equal Opportunity/Affirmative Action Employer.
© MOTOROLA, INC. 1996
TABLE OF CONTENTS
Paragraph
Title
Page
SECTION 1INTRODUCTION
SECTION 2NOMENCLATURE
2.1
2.2
2.3
2.4
2.5
Symbols and Operators .................................................................................. 2-1
CPU32 Registers ............................................................................................ 2-2
Pin and Signal Mnemonics ............................................................................. 2-3
Register Mnemonics ....................................................................................... 2-5
Conventions ................................................................................................... 2-6
SECTION 3OVERVIEW
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.2
3.3
3.4
3.5
3.6
3.6.1
3.6.2
3.7
3.7.1
3.7.2
MCU Features ................................................................................................ 3-1
System Integration Module (SIM) ........................................................... 3-1
Central Processing Unit (CPU32) ........................................................... 3-1
Queued Serial Module (QSM) ................................................................ 3-1
General-Purpose Timer (GPT) ............................................................... 3-2
System Block Diagram and Pin Assignment Diagrams .................................. 3-2
Pin Descriptions ............................................................................................. 3-5
Signal Descriptions ......................................................................................... 3-7
Intermodule Bus ........................................................................................... 3-10
System Memory Map ................................................................................... 3-10
Internal Register Map ........................................................................... 3-10
Address Space Maps ........................................................................... 3-10
System Reset ............................................................................................... 3-16
SIM Reset Mode Selection ................................................................... 3-16
MCU Module Pin Function During Reset ............................................. 3-17
SECTION 4 SYSTEM INTEGRATION MODULE
4.1
General ........................................................................................................... 4-1
4.2
System Configuration and Protection ............................................................. 4-2
4.2.1
Module Mapping ..................................................................................... 4-3
4.2.2
Interrupt Arbitration ................................................................................. 4-3
4.2.3
Show Internal Cycles .............................................................................. 4-4
4.2.4
Factory Test Mode ................................................................................. 4-4
4.2.5
Register Access ..................................................................................... 4-4
4.2.6
Reset Status ........................................................................................... 4-4
4.2.7
Bus Monitor ............................................................................................ 4-4
4.2.8
Halt Monitor ............................................................................................ 4-5
4.2.9
Spurious Interrupt Monitor ...................................................................... 4-5
4.2.10
Software Watchdog ................................................................................ 4-5
MC68331
USER’S MANUAL
MOTOROLA
iii
TABLE OF CONTENTS
Paragraph
(Continued)
Title
Page
4.2.11
Periodic Interrupt Timer .......................................................................... 4-7
4.2.12
Low-Power STOP Operation .................................................................. 4-8
4.2.13
Freeze Operation ................................................................................... 4-9
4.3
System Clock ................................................................................................. 4-9
4.3.1
Clock Sources ...................................................................................... 4-10
4.3.2
Clock Synthesizer Operation ................................................................ 4-10
4.3.3
External Bus Clock ............................................................................... 4-15
4.3.4
Low-Power Operation ........................................................................... 4-15
4.3.5
Loss of Reference Signal ..................................................................... 4-16
4.4
External Bus Interface .................................................................................. 4-17
4.4.1
Bus Signals .......................................................................................... 4-18
4.4.1.1
Address Bus ................................................................................. 4-18
4.4.1.2
Address Strobe ............................................................................ 4-18
4.4.1.3
Data Bus ...................................................................................... 4-18
4.4.1.4
Data Strobe .................................................................................. 4-18
4.4.1.5
Read/Write Signal ........................................................................ 4-18
4.4.1.6
Size Signals ................................................................................. 4-18
4.4.1.7
Function Codes ............................................................................ 4-19
4.4.1.8
Data and Size Acknowledge Signals ........................................... 4-19
4.4.1.9
Bus Error Signal ........................................................................... 4-19
4.4.1.10
Halt Signal .................................................................................... 4-20
4.4.1.11
Autovector Signal ......................................................................... 4-20
4.4.2
Dynamic Bus Sizing ............................................................................. 4-20
4.4.3
Operand Alignment .............................................................................. 4-21
4.4.4
Misaligned Operands ........................................................................... 4-21
4.4.5
Operand Transfer Cases ...................................................................... 4-22
4.5
Bus Operation .............................................................................................. 4-22
4.5.1
Synchronization to CLKOUT ................................................................ 4-23
4.5.2
Regular Bus Cycles .............................................................................. 4-23
4.5.2.1
Read Cycle ................................................................................... 4-24
4.5.2.2
Write Cycle ................................................................................... 4-25
4.5.3
Fast Termination Cycles ....................................................................... 4-25
4.5.4
CPU Space Cycles ............................................................................... 4-26
4.5.4.1
Breakpoint Acknowledge Cycle .................................................... 4-27
4.5.4.2
LPSTOP Broadcast Cycle ............................................................ 4-30
4.5.5
Bus Exception Control Cycles .............................................................. 4-30
4.5.5.1
Bus Errors .................................................................................... 4-32
4.5.5.2
Double Bus Faults ........................................................................ 4-32
4.5.5.3
Retry Operation ............................................................................ 4-33
4.5.5.4
Halt Operation .............................................................................. 4-33
4.5.6
External Bus Arbitration ........................................................................ 4-34
MOTOROLA
iv
MC68331
USER’S MANUAL
TABLE OF CONTENTS
Paragraph
4.5.6.1
4.5.6.2
4.6
4.6.1
4.6.2
4.6.3
4.6.3.1
4.6.3.2
4.6.3.3
4.6.4
4.6.5
4.6.5.1
4.6.5.2
4.6.6
4.6.7
4.6.8
4.6.9
4.7
4.7.1
4.7.2
4.7.3
4.7.4
4.7.5
4.8
4.8.1
4.8.1.1
4.8.1.2
4.8.1.3
4.8.1.4
4.8.2
4.8.3
4.8.4
4.9
4.9.1
4.9.2
4.9.3
4.10
(Continued)
Title
Page
Slave (Factory Test) Mode Arbitration ......................................... 4-35
Show Cycles ................................................................................ 4-35
Reset ............................................................................................................ 4-36
Reset Exception Processing ................................................................ 4-36
Reset Control Logic .............................................................................. 4-37
Reset Mode Selection .......................................................................... 4-37
Data Bus Mode Selection ............................................................. 4-38
Clock Mode Selection .................................................................. 4-40
Breakpoint Mode Selection .......................................................... 4-40
MCU Module Pin Function During Reset ............................................. 4-40
Pin State During Reset ......................................................................... 4-41
Reset States of SIM Pins ............................................................. 4-41
Reset States of Pins Assigned to Other MCU Modules ............... 4-42
Reset Timing ........................................................................................ 4-42
Power-On Reset ................................................................................... 4-43
Reset Processing Summary ................................................................. 4-44
Reset Status Register .......................................................................... 4-45
Interrupts ...................................................................................................... 4-45
Interrupt Exception Processing ............................................................ 4-45
Interrupt Priority and Recognition ......................................................... 4-45
Interrupt Acknowledge and Arbitration ................................................. 4-46
Interrupt Processing Summary ............................................................. 4-47
Interrupt Acknowledge Bus Cycles ....................................................... 4-48
Chip Selects ................................................................................................. 4-48
Chip-Select Registers ........................................................................... 4-50
Chip-Select Pin Assignment Registers ........................................ 4-51
Chip-Select Base Address Registers ........................................... 4-52
Chip-Select Option Registers ....................................................... 4-52
PORTC Data Register .................................................................. 4-54
Chip-Select Operation .......................................................................... 4-54
Using Chip-Select Signals for Interrupt Acknowledge .......................... 4-54
Chip-Select Reset Operation ................................................................ 4-55
Parallel Input/Output Ports ........................................................................... 4-57
Pin Assignment Registers .................................................................... 4-57
Data Direction Registers ...................................................................... 4-57
Data Registers ...................................................................................... 4-57
Factory Test ................................................................................................. 4-57
SECTION 5 CENTRAL PROCESSING UNIT
5.1
5.2
General ........................................................................................................... 5-1
CPU32 Registers ............................................................................................ 5-2
MC68331
USER’S MANUAL
MOTOROLA
v
TABLE OF CONTENTS
Paragraph
(Continued)
Title
Page
5.2.1
Data Registers ........................................................................................ 5-4
5.2.2
Address Registers .................................................................................. 5-5
5.2.3
Program Counter .................................................................................... 5-6
5.2.4
Control Registers .................................................................................... 5-6
5.2.4.1
Status Register ............................................................................... 5-6
5.2.4.2
Alternate Function Code Registers ................................................ 5-6
5.2.5
Vector Base Register (VBR) ................................................................... 5-7
5.3
Memory Organization ..................................................................................... 5-7
5.4
Virtual Memory ............................................................................................... 5-9
5.5
Addressing Modes .......................................................................................... 5-9
5.6
Processing States .......................................................................................... 5-9
5.7
Privilege Levels ............................................................................................ 5-10
5.8
Instructions ................................................................................................... 5-10
5.8.1
M68000 Family Compatibility ............................................................... 5-14
5.8.2
Special Control Instructions .................................................................. 5-14
5.8.2.1
Low Power Stop (LPSTOP) ......................................................... 5-14
5.8.2.2
Table Lookup and Interpolate (TBL) ............................................ 5-14
5.9
Exception Processing ................................................................................... 5-14
5.9.1
Exception Vectors ................................................................................ 5-15
5.9.2
Types of Exceptions ............................................................................. 5-16
5.9.3
Exception Processing Sequence .......................................................... 5-17
5.10
Development Support ................................................................................... 5-17
5.10.1
M68000 Family Development Support ................................................. 5-17
5.10.2
Background Debugging Mode .............................................................. 5-18
5.10.2.1
Enabling BDM .............................................................................. 5-19
5.10.2.2
BDM Sources ............................................................................... 5-19
5.10.2.3
Entering BDM ............................................................................... 5-20
5.10.2.4
BDM Commands .......................................................................... 5-21
5.10.2.5
Background Mode Registers ........................................................ 5-21
5.10.2.6
Returning from BDM .................................................................... 5-22
5.10.2.7
Serial Interface ............................................................................. 5-22
5.10.2.8
Recommended BDM Connection ................................................. 5-24
5.10.3
Deterministic Opcode Tracking ............................................................ 5-24
5.10.4
On-Chip Breakpoint Hardware ............................................................. 5-25
5.11
Loop Mode Instruction Execution ................................................................. 5-25
SECTION 6QUEUED SERIAL MODULE
6.1
General ........................................................................................................... 6-1
6.2
QSM Registers and Address Map .................................................................. 6-2
6.2.1
QSM Global Registers ............................................................................ 6-2
6.2.1.1
Low-Power Stop Operation ............................................................ 6-2
MOTOROLA
vi
MC68331
USER’S MANUAL
TABLE OF CONTENTS
Paragraph
(Continued)
Title
Page
6.2.1.2
Freeze Operation ........................................................................... 6-3
6.2.1.3
QSM Interrupts ............................................................................... 6-3
6.2.2
QSM Pin Control Registers .................................................................... 6-4
6.3
Queued Serial Peripheral Interface ................................................................ 6-5
6.3.1
QSPI Registers ....................................................................................... 6-6
6.3.1.1
Control Registers ........................................................................... 6-7
6.3.1.2
Status Register ............................................................................... 6-7
6.3.2
QSPI RAM .............................................................................................. 6-7
6.3.2.1
Receive RAM ................................................................................. 6-8
6.3.2.2
Transmit RAM ................................................................................ 6-8
6.3.2.3
Command RAM .............................................................................. 6-8
6.3.3
QSPI Pins ............................................................................................... 6-8
6.3.4
QSPI Operation ...................................................................................... 6-9
6.3.5
QSPI Operating Modes ........................................................................ 6-10
6.3.5.1
Master Mode ................................................................................ 6-17
6.3.5.2
Master Wraparound Mode ........................................................... 6-19
6.3.5.3
Slave Mode .................................................................................. 6-20
6.3.5.4
Slave Wraparound Mode ............................................................. 6-21
6.3.6
Peripheral Chip Selects ........................................................................ 6-21
6.4
Serial Communication Interface ................................................................... 6-22
6.4.1
SCI Registers ....................................................................................... 6-22
6.4.1.1
Control Registers ......................................................................... 6-22
6.4.1.2
Status Register ............................................................................. 6-25
6.4.1.3
Data Register ............................................................................... 6-25
6.4.2
SCI Pins ............................................................................................... 6-25
6.4.3
SCI Operation ....................................................................................... 6-25
6.4.3.1
Definition of Terms ....................................................................... 6-26
6.4.3.2
Serial Formats .............................................................................. 6-26
6.4.3.3
Baud Clock ................................................................................... 6-26
6.4.3.4
Parity Checking ............................................................................ 6-27
6.4.3.5
Transmitter Operation .................................................................. 6-27
6.4.3.6
Receiver Operation ...................................................................... 6-29
6.4.3.7
Idle-Line Detection ....................................................................... 6-29
6.4.3.8
Receiver Wakeup ......................................................................... 6-30
6.4.3.9
Internal Loop ................................................................................ 6-31
6.5
QSM Initialization ......................................................................................... 6-31
SECTION 7GENERAL-PURPOSE TIMER
7.1
7.2
7.3
General ........................................................................................................... 7-1
GPT Registers and Address Map ................................................................... 7-2
Special Modes of Operation ........................................................................... 7-3
MC68331
USER’S MANUAL
MOTOROLA
vii
TABLE OF CONTENTS
Paragraph
7.3.1
7.3.2
7.3.3
7.3.4
7.4
7.4.1
7.4.2
7.5
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.6
7.7
7.8
7.8.1
7.8.2
7.8.3
7.8.3.1
7.8.3.2
7.9
7.10
7.11
7.11.1
7.11.2
(Continued)
Title
Page
Low-Power Stop Mode ........................................................................... 7-3
Freeze Mode .......................................................................................... 7-3
Single-Step Mode ................................................................................... 7-3
Test Mode .............................................................................................. 7-4
Polled and Interrupt-Driven Operation ............................................................ 7-4
Polled Operation ..................................................................................... 7-4
GPT Interrupts ........................................................................................ 7-5
Pin Descriptions ............................................................................................. 7-6
Input Capture Pins (IC[1:3]) .................................................................... 7-6
Input Capture/Output Compare Pin (IC4/OC5) ...................................... 7-6
Output Compare Pins (OC[1:4]) ............................................................. 7-6
Pulse Accumulator Input Pin (PAI) ......................................................... 7-7
Pulse-Width Modulation (PWMA, PWMB) .............................................. 7-7
Auxiliary Timer Clock Input (PCLK) ........................................................ 7-7
General-Purpose I/O ...................................................................................... 7-7
Prescaler ........................................................................................................ 7-8
Capture/Compare Unit ................................................................................... 7-9
Timer Counter ...................................................................................... 7-11
Input Capture Functions ....................................................................... 7-11
Output Compare Functions .................................................................. 7-12
Output Compare 1 ........................................................................ 7-13
Forced Output Compare .............................................................. 7-13
Input Capture 4/Output Compare 5 .............................................................. 7-13
Pulse Accumulator ....................................................................................... 7-14
Pulse-Width Modulation Unit ........................................................................ 7-15
PWM Counter ....................................................................................... 7-16
PWM Function ...................................................................................... 7-17
APPENDIX A ELECTRICAL CHARACTERISTICS
APPENDIX B MECHANICAL DATA AND ORDERING INFORMATION
APPENDIX CDEVELOPMENT SUPPORT
C.1
C.2
M68MMDS1632 Modular Development System ...................................... C-1
M68MEVB1632 Modular Evaluation Board .............................................. C-2
APPENDIX D REGISTER SUMMARY
D.1
D.1.1
D.1.2
Central Processing Unit ............................................................................ D-1
CPU32 Register Model ..................................................................... D-2
— Status Register ............................................................................ D-3
MOTOROLA
viii
MC68331
USER’S MANUAL
TABLE OF CONTENTS
Paragraph
(Continued)
Title
Page
D.2
General-Purpose Timer ............................................................................ D-4
D.2.1
GPTMCR — GPT Module Configuration Register ............................ D-4
D.2.2
GPTMTR — GPT Module Test Register (Reserved) ........................ D-5
D.2.3
ICR — GPT Interrupt Configuration Register .................................... D-5
D.2.4
DDRGP — Port GP Data Direction Register..................................... D-6
D.2.5
OC1M— OC1 Action Mask Register ................................................. D-6
D.2.6
TCNT — Timer Counter Register ..................................................... D-6
D.2.7
PACTL — Pulse Accumulator Control Register ................................ D-7
D.2.8
TIC[1:3] — Input Capture Registers 1–3 .......................................... D-8
D.2.9
TOC[1:4] — Output Compare Registers 1–4 ................................... D-8
D.2.10
TI4/O5 — Input Capture 4/Output Compare 5 Register .................... D-8
D.2.11
TCTL1/TCTL2 — Timer Control Registers 1 and 2........................... D-8
D.2.12
TMSK1/TMSK2 — Timer Interrupt Mask Registers 1 and 2 ............. D-9
D.2.13
TFLG1/TFLG2 — Timer Interrupt Flag Registers 1 and 2.............. D-10
D.2.14
CFORC — Compare Force Register............................................... D-10
D.2.15
PWMA/PWMB — PWM Registers A/B ........................................... D-12
D.2.16
PWMCNT — PWM Count Register ............................................... D-12
D.2.17
PWMBUFA — PWM Buffer Register A .......................................... D-12
D.2.18
PRESCL — GPT Prescaler ............................................................ D-12
D.3
System Integration Module ..................................................................... D-13
D.3.1
SIMCR — Module Configuration Register ...................................... D-14
D.3.2
SIMTR — System Integration Test Register ................................... D-15
D.3.3
SYNCR — Clock Synthesizer Control Register ............................. D-15
D.3.4
RSR — Reset Status Register ....................................................... D-16
D.3.5
SIMTRE — System Integration Test Register (ECLK) .................... D-17
D.3.6
PORTE0/PORTE1 — Port E Data Register .................................... D-17
D.3.7
DDRE — Port E Data Direction Register ........................................ D-17
D.3.8
PEPAR — Port E Pin Assignment Register .................................... D-17
D.3.9
PORTF0/PORTF1 — Port F Data Register..................................... D-18
D.3.10
DDRF — Port F Data Direction Register......................................... D-18
D.3.11
PFPAR — Port F Pin Assignment Register..................................... D-18
D.3.12
SYPCR — System Protection Control Register .............................. D-19
D.3.13
PICR — Periodic Interrupt Control Register.................................... D-20
D.3.14
PITR — Periodic Interrupt Timer Register ...................................... D-20
D.3.15
SWSR — Software Service Register .............................................. D-21
D.3.16
TSTMSRA — Master Shift Register A............................................. D-21
D.3.17
TSTMSRB — Master Shift Register B............................................. D-21
D.3.18
TSTSC — Test Module Shift Count ................................................ D-21
D.3.19
TSTRC — Test Module Repetition Count ....................................... D-21
D.3.20
CREG — Test Submodule Control Register .................................. D-21
D.3.21
DREG — Distributed Register......................................................... D-21
MC68331
USER’S MANUAL
MOTOROLA
ix
TABLE OF CONTENTS
Paragraph
(Continued)
Title
Page
D.3.22
PORTC — Port C Data Register ..................................................... D-21
D.3.23
CSPAR0 — Chip Select Pin Assignment Register 0....................... D-21
D.3.24
CSPAR1 — Chip Select Pin Assignment Register 1....................... D-22
D.3.25
CSBARBT — Chip Select Base Address Register Boot ROM ....... D-23
D.3.26
CSORBT — Chip Select Option Register Boot ROM...................... D-23
D.4
Queued Serial Module ............................................................................ D-25
D.4.1
QSMCR — QSM Configuration Register ........................................ D-25
D.4.2
QTEST — QSM Test Register ........................................................ D-26
D.4.3
QILR — QSM Interrupt Level Register............................................ D-26
D.4.4
SCCR0 — SCI Control Register 0 .................................................. D-27
D.4.5
SCCR1 — SCI Control Register 1................................................... D-27
D.4.6
SCSR — SCI Status Register ......................................................... D-29
D.4.7
SCDR — SCI Data Register............................................................ D-30
D.4.8
PORTQS — Port QS Data Register ............................................... D-30
D.4.9
PQSPAR — PORT QS Pin Assignment Register ........................... D-30
D.4.10
SPCR0 — QSPI Control Register 0 ................................................ D-32
D.4.11
SPCR1 — QSPI Control Register 1 ............................................... D-33
D.4.12
SPCR2 — QSPI Control Register 2 ............................................... D-34
D.4.13
SPCR3 — QSPI Control Register 3 ............................................... D-34
D.4.14
RR[0:F] — Receive Data RAM........................................................ D-35
D.4.15
TR[0:F] — Transmit Data RAM ...................................................... D-35
D.4.16
CR[0:F] — Command RAM............................................................. D-36
MOTOROLA
x
MC68331
USER’S MANUAL
LIST OF ILLUSTRATIONS
Figure
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
4-1
4-2
4-3
4-4
4-5
4-6
4-7
4-8
4-9
4-10
4-11
4-12
4-13
4-14
4-15
4-16
4-17
4-18
4-19
5-1
5-2
5-3
5-4
5-5
5-6
5-7
5-8
5-9
5-10
5-11
5-12
6-1
6-2
Title
Page
MCU Block Diagram........................................................................................ 3-3
Pin Assignments for 132-Pin Package ............................................................ 3-4
Pin Assignments for 144-Pin Package ............................................................ 3-5
Internal Register Memory Map ...................................................................... 3-11
Overall Memory Map ..................................................................................... 3-12
Separate Supervisor and User Space Map................................................... 3-13
Supervisor Space (Separate Program/Data Space) Map ............................. 3-14
User Space (Separate Program/Data Space) Map ....................................... 3-15
System Integration Module Block Diagram ..................................................... 4-2
System Configuration and Protection.............................................................. 4-3
Periodic Interrupt Timer and Software Watchdog Timer ................................. 4-7
System Clock Block Diagram .......................................................................... 4-9
System Clock Oscillator Circuit ..................................................................... 4-10
System Clock Filter Networks ....................................................................... 4-11
MCU Basic System ....................................................................................... 4-17
Operand Byte Order ...................................................................................... 4-21
Word Read Cycle Flowchart.......................................................................... 4-24
Write Cycle Flowchart ................................................................................... 4-25
CPU Space Address Encoding ..................................................................... 4-27
Breakpoint Operation Flowchart.................................................................... 4-29
LPSTOP Interrupt Mask Level....................................................................... 4-30
Bus Arbitration Flowchart for Single Request................................................ 4-35
Data Bus Mode Select Conditioning.............................................................. 4-39
Power-On Reset............................................................................................ 4-44
Basic MCU System ....................................................................................... 4-49
Chip-Select Circuit Block Diagram ................................................................ 4-50
CPU Space Encoding for Interrupt Acknowledge.......................................... 4-55
CPU32 Block Diagram .................................................................................... 5-2
User Programming Model ............................................................................... 5-3
Supervisor Programming Model Supplement.................................................. 5-3
Data Organization in Data Registers............................................................... 5-5
Address Organization in Address Registers.................................................... 5-5
Memory Operand Addressing ......................................................................... 5-8
Common In-Circuit Emulator Diagram .......................................................... 5-18
Bus State Analyzer Configuration ................................................................. 5-19
Debug Serial I/O Block Diagram ................................................................... 5-23
BDM Serial Data Word .................................................................................. 5-24
BDM Connector Pinout.................................................................................. 5-24
Loop Mode Instruction Sequence.................................................................. 5-25
QSM Block Diagram........................................................................................ 6-1
QSPI Block Diagram ....................................................................................... 6-6
MC68331
USER’S MANUAL
MOTOROLA
xi
LIST OF ILLUSTRATIONS
(Continued)
Title
Figure
6-3
6-4
6-5
6-5
6-5
6-6
6-6
6-7
6-8
7-1
7-2
7-3
7-4
7-5
7-6
A-1
A-2
A-3
A-4
A-5
A-6
A-7
A-8
A-9
A-10
A-11
A-12
A-13
A-14
A-15
A-16
A-17
A-18
A-19
B-1
B-2
D-1
D-2
Page
QSPI RAM....................................................................................................... 6-7
Flowchart of QSPI Initialization Operation..................................................... 6-11
Flowchart of QSPI Master Operation (Part 1) ............................................... 6-12
Flowchart of QSPI Master Operation (Part 2) ............................................... 6-13
Flowchart of QSPI Master Operation (Part 3) ............................................... 6-14
Flowchart of QSPI Slave Operation (Part 1) ................................................. 6-15
Flowchart of QSPI Slave Operation (Part 2) ................................................. 6-16
SCI Transmitter Block Diagram..................................................................... 6-23
SCI Receiver Block Diagram......................................................................... 6-24
GPT Block Diagram......................................................................................... 7-2
Prescaler Block Diagram................................................................................. 7-9
Capture/Compare Unit Block Diagram .......................................................... 7-10
Input Capture Timing Example...................................................................... 7-12
Pulse Accumulator Block Diagram ................................................................ 7-15
PWM Block Diagram ..................................................................................... 7-16
CLKOUT Output Timing Diagram.................................................................. A-12
External Clock Input Timing Diagram............................................................ A-12
ECLK Output Timing Diagram....................................................................... A-12
Read Cycle Timing Diagram ......................................................................... A-13
Write Cycle Timing Diagram.......................................................................... A-14
Fast Termination Read Cycle Timing Diagram ............................................. A-15
Fast Termination Write Cycle Timing Diagram.............................................. A-16
Bus Arbitration Timing Diagram — Active Bus Case .................................... A-17
Bus Arbitration Timing Diagram — Idle Bus Case ........................................ A-18
Show Cycle Timing Diagram ......................................................................... A-18
Chip Select Timing Diagram.......................................................................... A-19
Reset and Mode Select Timing Diagram....................................................... A-19
Background Debugging Mode Timing Diagram—Serial Communication...... A-21
Background Debugging Mode Timing Diagram —Freeze Assertion............. A-21
ECLK Timing Diagram................................................................................... A-23
QSPI Timing — Master, CPHA = 0 ............................................................... A-25
QSPI Timing — Master, CPHA = 1 ............................................................... A-25
QSPI Timing — Slave, CPHA = 0 ................................................................. A-26
QSPI Timing — Slave, CPHA = 1 ................................................................. A-26
132-Pin Plastic Surface Mount Package Pin Assignments ............................. B-2
144-Pin Plastic Surface Mount Package Pin Assignments ............................. B-3
User Programming Model ...............................................................................D-2
Supervisor Programming Model Supplement..................................................D-2
MOTOROLA
xii
MC68331
USER’S MANUAL
LIST OF TABLES
Table
3-1
3-2
3-3
3-4
3-5
3-6
3-7
4-1
4-2
4-3
4-4
4-5
4-6
4-7
4-8
4-9
4-10
4-11
4-12
4-13
4-14
4-15
4-16
4-17
4-18
4-19
4-20
4-21
4-22
4-23
4-24
5-1
5-2
5-3
5-4
5-5
5-6
6-1
6-2
6-3
6-4
Title
Page
MCU Driver Types .......................................................................................... 3-6
MCU Pin Characteristics ................................................................................ 3-6
MCU Power Connections ............................................................................... 3-7
Signal Characteristics ..................................................................................... 3-7
Signal Function ............................................................................................... 3-8
SIM Reset Mode Selection ........................................................................... 3-16
Module Pin Functions ................................................................................... 3-17
Show Cycle Enable Bits ................................................................................. 4-4
Bus Monitor Period ......................................................................................... 4-5
MODCLK Pin and SWP Bit During Reset ...................................................... 4-6
Software Watchdog Ratio ............................................................................... 4-6
MODCLK Pin and PTP Bit at Reset ............................................................... 4-7
Periodic Interrupt Priority ................................................................................ 4-8
Clock Control Multipliers ............................................................................... 4-12
System Frequencies from 32.768-kHz Reference ....................................... 4-14
Clock Control ................................................................................................ 4-16
Size Signal Encoding ................................................................................... 4-19
Address Space Encoding ............................................................................. 4-19
Effect of DSACK Signals .............................................................................. 4-20
Operand Transfer Cases .............................................................................. 4-22
DSACK, BERR, and HALT Assertion Results ............................................. 4-31
Reset Source Summary ............................................................................... 4-37
Reset Mode Selection .................................................................................. 4-38
Module Pin Functions ................................................................................... 4-41
SIM Pin Reset States ................................................................................... 4-42
Chip-Select Pin Functions ............................................................................ 4-51
Pin Assignment Field Encoding .................................................................... 4-51
Block Size Encoding ..................................................................................... 4-52
Option Register Function Summary ............................................................. 4-53
Chip Select Base and Option Register Reset Values .................................. 4-56
CSBOOT Base and Option Register Reset Values ..................................... 4-57
Instruction Set Summary .............................................................................. 5-11
Exception Vector Assignments ..................................................................... 5-16
BDM Source Summary ................................................................................. 5-19
Polling the BDM Entry Source ...................................................................... 5-20
Background Mode Command Summary ...................................................... 5-21
CPU Generated Message Encoding ............................................................ 5-24
QSM Pin Function .......................................................................................... 6-4
QSPI Pin Function .......................................................................................... 6-9
BITS Encoding ............................................................................................. 6-18
SCI Pin Function .......................................................................................... 6-25
MC68331
USER’S MANUAL
MOTOROLA
xiii
LIST OF TABLES
(Continued)
Title
Table
6-5
6-6
7-1
7-2
7-3
A-1
A-2
A-2
A-3
A-4
A-4
A-5
A-5
A-6
A-6
A-7
A-8
A-8
A-9
B-1
B-2
C-1
D-1
D-2
D-3
D-4
D-5
D-6
D-7
D-8
D-9
D-10
D-11
D-12
D-13
D-14
D-15
D-16
D-17
D-18
Page
Serial Frame Formats ...................................................................................6-26
Effect of Parity Checking on Data Size .........................................................6-27
GPT Status Flags ............................................................................................7-4
GPT Interrupt Sources ....................................................................................7-5
PWM Frequency Ranges Using 16.78-MHz/20.97-MHz System Clocks ......7-17
Maximum Ratings .......................................................................................... A-1
Typical Ratings, 16.78 MHz Operation .......................................................... A-2
Typical Ratings, 20.97 MHz Operation ......................................................... A-2
Thermal Characteristics ................................................................................. A-3
16.78 MHz Clock Control Timing ................................................................... A-3
20.97 MHz Clock Control Timing ................................................................... A-4
16.78 MHz DC Characteristics ....................................................................... A-5
20.97 MHz DC Characteristics ....................................................................... A-6
16.78 MHz AC Timing .................................................................................... A-8
20.97 MHz AC Timing .................................................................................... A-9
Background Debugging Mode Timing .......................................................... A-20
16.78 MHz ECLK Bus Timing ...................................................................... A-22
20.97 MHz ECLK Bus Timing ...................................................................... A-22
QSPI Timing ................................................................................................. A-24
MCU Ordering Information ............................................................................. B-4
Quantity Order Suffix ...................................................................................... B-4
MC68331 Development Tools ........................................................................ C-1
Module Address Map ..................................................................................... D-1
GPT Address Map .......................................................................................... D-4
SIM Address Map ......................................................................................... D-13
Port E Pin Assignments ............................................................................... D-18
Port F Pin Assignments ................................................................................ D-19
Software Watchdog Ratio ............................................................................ D-19
Bus Monitor Period ....................................................................................... D-20
CSPAR0 Pin Assignments ........................................................................... D-22
CSPAR1 Pin Assignments ........................................................................... D-22
CSPAR0 and CSPAR1 Pin Assignment Field Encoding .............................. D-22
Block Size Encoding .................................................................................... D-23
Option Register Function Summary ............................................................. D-24
QSM Address Map ....................................................................................... D-25
PQSPAR Pin Assignments .......................................................................... D-31
Effect of DDRQS on PORTQS Pins ............................................................. D-31
Effect of DDRQS on QSM Pin Function ....................................................... D-32
MC68331 Module Address Map ................................................................... D-37
Register Bit and Field Mnemonics ............................................................... D-40
MOTOROLA
xiv
MC68331
USER’S MANUAL
SECTION 1INTRODUCTION
The MC68331, a highly-integrated 32-bit microcontroller, combines high-performance
data manipulation capabilities with powerful peripheral subsystems. The MCU is built
up from standard modules that interface through a common intermodule bus (IMB).
Standardization facilitates rapid development of devices tailored for specific applications.
The MCU incorporates a 32-bit CPU (CPU32), a system integration module (SIM), a
general-purpose timer (GPT), and a queued serial module (QSM).
The MCU can either synthesize an internal clock signal from an external reference or
use an external clock input directly. Operation with a 32.768-kHz reference frequency
is standard. Because MCU operation is fully static, register and memory contents are
not affected by a loss of clock.
High-density complementary metal-oxide semiconductor (HCMOS) architecture
makes the basic power consumption of the MCU low. Power consumption can be minimized by stopping the system clock. The CPU32 instruction set includes a low-power
stop (LPSTOP) command that efficiently implements this capability.
Documentation for the Modular Microcontroller Family follows the modular construction of the devices in the product line. Each microcontroller has a comprehensive user's manual that provides sufficient information for normal operation of the device. The
user's manual is supplemented by module reference manuals that provide detailed information about module operation and applications. Refer to Motorola publication Advanced Microcontroller Unit (AMCU) Literature (BR1116/D) for a complete listing of
documentation.
MC68331
USER’S MANUAL
INTRODUCTION
MOTOROLA
1-1
1
1
MOTOROLA
1-2
INTRODUCTION
MC68331
USER’S MANUAL
SECTION 2NOMENCLATURE
The following nomenclature is used throughout the manual. Nomenclature used only
in certain sections, such as register bit mnemonics, is defined in those sections.
2.1 Symbols and Operators
+
−
∗
/
>
<
=
≥
≤
≠
•
✛
⊕
NOT
:
⇒
⇔
±
«
%
$
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
Addition
Subtraction or negation (two's complement)
Multiplication
Division
Greater
Less
Equal
Equal or greater
Equal or less
Not equal
AND
Inclusive OR (OR)
Exclusive OR (EOR)
Complementation
Concatenation
Transferred
Exchanged
Sign bit; also used to show tolerance
Sign extension
Binary value
Hexadecimal value
MC68331
USER’S MANUAL
NOMENCLATURE
2
MOTOROLA
2-1
2.2 CPU32 Registers
2
A6–A0
A7 (SSP)
A7 (USP)
CCR
D7–D0
DFC
PC
SFC
SR
VBR
X
N
Z
V
C
MOTOROLA
2-2
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
Address registers (index registers)
Supervisor Stack Pointer
User Stack Pointer
Condition code register (user portion of SR)
Data Registers (index registers)
Alternate function code register
Program counter
Alternate function code register
Status register
Vector base register
Extend indicator
Negative indicator
Zero indicator
Two's complement overflow indicator
Carry/borrow indicator
NOMENCLATURE
MC68331
USER’S MANUAL
2.3 Pin and Signal Mnemonics
ADDR[23:0]
AS
AVEC
BERR
BG
BGACK
BKPT
BR
CLKOUT
CS[10:0]
CSBOOT
DATA[15:0]
DS
DSACK[1:0]
DSCLK
DSI
DSO
EXTAL
FC[2:0]
FREEZE
HALT
IC[4:1]
IFETCH
IPIPE
IRQ[7:1]
MISO
MODCLK
MOSI
OC[5:1]
PAI
PC[6:0]
PCLK
PCS[3:0]
PE[7:0]
PF[7:0]
PGP[7:0]
PQS[7:0]
PWMA, PWMB
QUOT
MC68331
USER’S MANUAL
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
Address Bus
Address Strobe
Autovector
Bus Error
Bus Grant
Bus Grant Acknowledge
Breakpoint
Bus Request
System Clock
Chip Selects
Boot ROM Chip Select
Data Bus
Data Strobe
Data and Size Acknowledge
Development Serial Clock
Development Serial Input
Development Serial Output
External Crystal Oscillator Connection
Function Codes
Freeze
Halt
Input Capture
Instruction Fetch
Instruction Pipeline
Interrupt Request
Master In Slave Out
Clock Mode Select
Master Out Slave In
Output Compare
Pulse Accumulator Input
SIM I/O Port C
Pulse Accumulator Clock
Peripheral Chip Selects
SIM I/O Port E
SIM I/O Port F
GPT I/O Port
QSM I/O Port
Pulse Width Modulator Output
Quotient Out
NOMENCLATURE
2
MOTOROLA
2-3
R/W
RESET
RMC
RXD
SCK
SIZ[1:0]
SS
TSC
TXD
XFC
XTAL
—
—
—
—
—
—
—
—
—
—
—
Read/Write
Reset
Read-Modify-Write Cycle
SCI Receive Data
QSPI Serial Clock
Size
Slave Select
Three-State Control
SCI Transmit Data
External Filter Capacitor
External Crystal Oscillator Connection
2
MOTOROLA
2-4
NOMENCLATURE
MC68331
USER’S MANUAL
2.4 Register Mnemonics
CFORC
CREG
CR[0:F]
CSBARBT
CSBAR[0:10]
CSORBT
CSOR[0:10]
CSPAR[0:1]
DDRE
DDRF
DDRGP
DDRQS
DREG
GPTMCR
ICR
OC1D
OC1M
PACNT
PACTL
PEPAR
PFPAR
PICR
PITR
PORTC
PORTE
PORTF
PORTGP
PORTQS
PQSPAR
PRESCL
PWMA
PWMB
PWMBUFA
PWMBUFB
PWMC
PWMCNT
QILR
QIVR
QSMCR
MC68331
USER’S MANUAL
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
GPT Compare Force Register
Test Control Register C
QSM Command RAM
Chip-Select Base Address Register Boot ROM
Chip-Select Base Address Registers [0:10]
Chip-Select Option Register Boot ROM
Chip-Select Option Register [0:10]
Chip-Select Pin Assignment Registers [0:1]
Port E Data Direction Register
Port F Data Direction Register
Port GP Data Direction Register
Port QS Data Direction Register
SIM Test Module Distributed Register
GPT Module Configuration Register
GPT Interrupt Configuration Register
Output Compare 1 Action Data Register
Output Compare 1 Action Mask Register
Pulse Accumulator Counter
Pulse Accumulator Control Register
Port E Pin Assignment Register
Port F Pin Assignment Register
Periodic Interrupt Control Register
Periodic Interrupt Timer Register
Port C Data Register
Port E Data Register
Port F Data Register
Port GP Data Register
Port QS Data Register
Port QS Pin Assignment Register
GPT Prescaler Register
PWM Control Register A
PWM Control Register B
PWM Buffer Register A
PWM Buffer Register B
PWM Control Register C
PWM Counter
QSM Interrupt Level Register
QSM Interrupt Vector Register
QSM Configuration Register
NOMENCLATURE
2
MOTOROLA
2-5
QTEST
RR[0:F]
RSR
SCCR[0:1]
SCDR
SCSR
SIMCR
SIMTR
SIMTRE
SPCR[0:3]
SPSR
SWSR
SYNCR
SYPCR
TCNT
TCTL[1:2]
TFLG[1:2]
TI4/O5
TIC[1:3]
TMSK[1:2]
TOC[1:4]
TR[0:F]
TSTMSRA
TSTMSRB
TSTRC
TSTSC
2
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
QSM Test Register
QSM Receive Data RAM
Reset Status Register
SCI Control Registers [0:1]
SCI Data Register
SCI Status Register
SIM Module Configuration Register
System Integration Test Register
System Integration Test Register (ECLK)
QSPI Control Registers [0:3]
QSPI Status Register
Software Watchdog Service Register
Clock Synthesizer Control Register
System Protection Control Register
Timer Counter Register
Timer Control Registers [1:2]
Timer Interrupt Flag Registers [1:2]
Timer Input Capture 4/Output Compare 5 Register
Timer Input Capture Registers [1:3]
Timer Interrupt Mask Register [1:2]
Timer Output Compare Registers [1:4]
QSM Transmit Data RAM
Test Module Master Shift Register A
Test Module Master Shift Register B
Test Module Repetition Count Register
Test Module Shift Count Register
2.5 Conventions
Logic level one is the voltage that corresponds to a Boolean true (1) state.
Logic level zero is the voltage that corresponds to a Boolean false (0) state.
Set refers specifically to establishing logic level one on a bit or bits.
Clear refers specifically to establishing logic level zero on a bit or bits.
Asserted means that a signal is in active logic state. An active low signal changes
from logic level one to logic level zero when asserted, and an active high signal changes from logic level zero to logic level one.
Negated means that an asserted signal changes logic state. An active low signal
changes from logic level zero to logic level one when negated, and an active high signal changes from logic level one to logic level zero.
MOTOROLA
2-6
NOMENCLATURE
MC68331
USER’S MANUAL
A specific mnemonic within a range is referred to by mnemonic and number. A15 is
bit 15 of accumulator A; ADDR7 is line 7 of the address bus; CSOR0 is chip-select option register 0. A range of mnemonics is referred to by mnemonic and the numbers
that define the range. AM[35:30] are bits 35 to 30 of accumulator M; CSOR[0:5] are
the first six option registers.
Parentheses are used to indicate the content of a register or memory location, rather
than the register or memory location itself. (A) is the content of accumulator A. (M : M
+ 1) is the content of the word at address M.
LSB means least significant bit or bits. MSB means most significant bit or bits. References to low and high bytes are spelled out.
LSW means least significant word or words. MSW means most significant word or
words.
ADDR is the address bus. ADDR[7:0] are the eight LSB of the address bus.
2
DATA is the data bus. DATA[15:8] are the eight MSB of the data bus.
MC68331
USER’S MANUAL
NOMENCLATURE
MOTOROLA
2-7
2
MOTOROLA
2-8
NOMENCLATURE
MC68331
USER’S MANUAL
SECTION 3OVERVIEW
This section contains information about the entire modular microcontroller. It lists the
features of each module, shows device functional divisions and pin assignments, summarizes signal and pin functions, discusses the intermodule bus, and provides system
memory maps. Timing and electrical specifications for the entire microcontroller and
for individual modules are provided in APPENDIX A ELECTRICAL CHARACTERISTICS. Comprehensive module register descriptions and memory maps are provided
in APPENDIX D REGISTER SUMMARY.
3.1 MCU Features
The following paragraphs highlight capabilities of each of the microcontroller modules.
Each module is discussed separately in a subsequent section of this user's manual.
3
3.1.1 System Integration Module (SIM)
• External Bus Support
• Programmable Chip-Select Outputs
• System Protection Logic
• Watchdog Timer, Clock Monitor, and Bus Monitor
• System Protection Logic
• PLL System Clock for Low Power Operation
• Background Debugging Mode
3.1.2 Central Processing Unit (CPU32)
• Instruction Set Supports Controller Applications
• 32-Bit Architecture
• Virtual Memory Implementation
• Loop Mode of Instruction Execution
• Table Lookup and Interpolate Instruction
• Improved Exception Handling for Controller Applications
• Trace on Change of Flow
• Hardware Breakpoint Signal, Background Mode
• Fully Static Operation
3.1.3 Queued Serial Module (QSM)
• Serial Communication Interface (SCI), Enhanced Universal Asynchronous Receiver Transmitter (UART) with Modulus Baud Rate, Parity
• Queued Serial Peripheral Interface (SPI), High Speed Bidirectional Interface, 80Byte RAM, Up to 16 Automatic Transfers
• Dual Function I/O Ports
• Continuous Cycling, 8 to 16 Bits per Transfer
MC68331
USER’S MANUAL
OVERVIEW
MOTOROLA
3-1
3.1.4 General-Purpose Timer (GPT)
• Two 16-Bit Free-Running Counters With One Nine-Stage Prescaler
• Three Input Capture Channels
• Four Output Compare Channels
• One Input Capture/Output Compare Channel
• One Pulse Accumulator/Event Counter Input
• Two Pulse-Width Modulation Outputs
• Optional External Clock Input
3
3.2 System Block Diagram and Pin Assignment Diagrams
Figure 3-1 is a functional diagram of the MCU. Although diagram blocks represent the
relative size of the physical modules, there is not a one-to-one correspondence between location and size of blocks in the diagram and location and size of integratedcircuit modules. Figure 3-2 shows the pin assignments of the 132-pin plastic surfacemount package. Figure 3-3 shows the pin assignments of the 144-pin plastic surfacemount package. Refer to APPENDIX B MECHANICAL DATA AND ORDERING INFORMATION for package dimensions. All pin functions and signal names are shown
in this drawing. Refer to subsequent paragraphs in this section for pin and signal descriptions.
MOTOROLA
3-2
OVERVIEW
MC68331
USER’S MANUAL
PGP7/IC4/OC5/OC1
PGP6/OC4/OC1
PGP5/OC3/OC1
PGP4/OC2/OC1
PGP3/OC1
PGP2/IC3
PGP1/IC2
PGP0/IC1
PGP7/IC4/OC5/OC1
PGP6/OC4/OC1
PGP5/OC3/OC1
PGP4/OC2/OC1
PGP3/OC1
PGP2/IC3
PGP1/IC2
PGP0/IC1
FC2
FC1
FC0
GPT
ADDR[23:0]
SIZ1
SIZ0
DS
AS
RMC
AVEC
DSACK1
DSACK0
EBI
PORT QS
CONTROL
IMB
RXD
PQS7/TXD
PQS6/PCS3
PQS5/PCS2
PQS4/PCS1
PQS3/PCS0/SS
PQS2/SCK
PQS1/MOSI
PQS0/MISO
CONTROL
PORT C
PCLK
PAI
TXD
PCS3
PCS2
PCS1
PCS0/SS
SCK
MOSI
MISO
DATA[15:0]
CONTROL
PORT F
CPU32
MODCLK
CLOCK
R/W
RESET
HALT
BERR
PF7/IRQ7
PF6/IRQ6
PF5/IRQ5
PF4/IRQ4
PF3/IRQ3
PF2/IRQ2
PF1/IRQ1
PF0/MODCLK
CLKOUT
XTAL
EXTAL
BKPT
IFETCH
IPIPE
DSI
DSO
DSCLK
FREEZE
TSC
CONTROL
CONTROL
BKPT/DSCLK
IFETCH/DSI
IPIPE/DSO
TSC
TEST
QUOT
PE7/SIZ1
PE6/SIZ0
PE5/DS
PE4/AS
PE3/RMC
PE2/AVEC
PE1/DSACK1
PE0/DSACK0
DATA[15:0]
IRQ[7:1]
QSM
CSBOOT
ADDR23/CS10
PC6/ADDR22/CS9
PC5/ADDR21/CS8
PC4/ADDR20/CS7
PC3/ADDR19/CS6
PC2/FC2/CS5
PC1/FC1/CS4
PC0/FC0/CS3
BGACK/CS2
BG/CS1
BR/CS0
ADDR[18:0]
CONTROL
PORT E
PCLK
PAI
CHIP
SELECTS BR
BG
BGACK
CS[10:0]
ADDR[23:19]
PWMA
PWMB
PORT GP
CONTROL
PWMA
PWMB
FREEZE/QUOT
331 BLOCK
Figure 3-1 MCU Block Diagram
MC68331
USER’S MANUAL
OVERVIEW
MOTOROLA
3-3
3
ADDR23/CS10
PC6/ADDR22/CS9
PC5/ADDR21/CS8
PC4/ADDR20/CS7
PC3/ADDR19/CS6
PC2/FC2/CS5
PC1/FC1/CS4
PC0/FC0/CS3
VSS
NC
NC
PWMA
PWMB
PCLK
VSS
VDD
PGP6/OC4/OC1
PGP7/IC4/OC5/OC1
PAI
NC
VSS
VDD
VSS
NC
PGP0/IC1
PGP1/IC2
PGP2/IC3
PGP3/OC1
PGP4/OC2/OC1
PGP5/OC3/OC1
NC
VSS
VDD
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
VDD
116
115
114
113
112
111
110
109
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
DATA12
DATA13
DATA14
DATA15
ADDR0
PE0/DSACK0
PE1/DSACK1
PE2/AVEC
PE3/RMC
PE5/DS
VDD
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
MC68331
VDD
BGACK/CS2
BG/CS1
BR/CS0
CSBOOT
DATA0
DATA1
DATA2
DATA3
VDD
VSS
DATA4
DATA5
DATA6
DATA7
VSS
DATA8
DATA9
DATA10
DATA11
VDD
VSS
VSS
PQS7/TXD
RXD
IPIPE/DSO
IFETCH/DSI
BKPT/DSCLK
TSC
FREEZE/QUOT
VSS
XTAL
VDDSYN
EXTAL
VDD
XFC
VDD
CLKOUT
VSS
RESET
HALT
BERR
PF7/IRQ7
PF6/IRQ6
PF5/IRQ5
PF4/IRQ4
PF3/IRQ3
PF2/IRQ2
PF1/IRQ1
PF0/MODCLK
R/W
PE7/SIZ1
PE6/SIZ0
PE4/AS
VSS
3
NC
ADDR1
ADDR2
ADDR3
ADDR4
ADDR5
ADDR6
ADDR7
ADDR8
VDD
VSS
ADDR9
ADDR10
ADDR11
ADDR12
VSS
ADDR13
ADDR14
ADDR15
ADDR16
VDD
VSS
ADDR17
ADDR18
PQS0/MISO
PQS1/MOSI
PQS2/SCK
PQS3/PCS0/SS
PQS4/PCS1
PQS5/PCS2
PQS6/PCS3
VDD
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
331 132-PIN QFP
Figure 3-2 Pin Assignments for 132-Pin Package
MOTOROLA
3-4
OVERVIEW
MC68331
USER’S MANUAL
VDD
BGACK/CS2
BG/CS1
BR/CS0
CSBOOT
DATA0
DATA1
DATA2
DATA3
VDD
VSS
DATA4
DATA5
DATA6
DATA7
NC
VSS
DATA8
NC
DATA9
DATA10
NC
DATA11
VDD
VSS
DATA12
DATA13
DATA14
DATA15
ADDR0
PE0/DSACK0
PE1/DSACK1
PE2/AVEC
PE3/RMC
PE5/DS
VDD
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
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
MC68331
109
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
NC
VSS
PE4/AS
PE6/SIZ0
PE7/SIZ1
R/W
PF0/MODCLK
PF1/IRQ1
PF2/IRQ2
PF3/IRQ3
PF4/IRQ4
PF5/IRQ5
PF6/IRQ6
PF7/IRQ7
BERR
HALT
RESET
VSS
CLKOUT
VDD
NC
XFC
VDD
EXTAL
VDD
XTAL
VSS
FREEZE/QUOT
TSC
BKPT/DSCLK
IFETCH/DSI
IPIPE/DSO
RXD
PQS7/TXD
VSS
NC
VDD
NC
ADDR1
ADDR2
ADDR3
ADDR4
ADDR5
ADDR6
ADDR7
ADDR8
VDD
VSS
ADDR9
ADDR10
ADDR11
ADDR12
NC
VSS
NC
ADDR13
ADDR14
ADDR15
NC
ADDR16
VDD
VSS
ADDR17
ADDR18
PQS0/MISO
PQS1/MOSI
PQS2/SCK
PQS3/PCS0/SS
PQS4/PCS1
PQS5/PCS2
PQS6/PCS3
VDD
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
NC
VSS
FC0/CS3
FC1/CS4
FC2/CS5
ADDR19/CS6
ADDR20/CS7
ADDR21/CS8
ADDR22/CS9
ADDR23/CS10
VDD
VSS
PCLK
PWMB
PWMA
NC
NC
NC
VDD
VSS
NC
PAI
GP7/IC4/OC5/OC1
PGP6/OC4
VDD
VSS
NC
PGP5/OC3/OC1
PGP4/OC2/OC1
PGP3/OC1
PGP2/IC3
PGP1/IC2
PGP0/IC1
NC
VSS
NC
331 144-PIN QFP
Figure 3-3 Pin Assignments for 144-Pin Package
3.3 Pin Descriptions
The following tables are a summary of the functional characteristics of MCU pins. Table 3-1 shows types of output drivers. Table 3-2 shows all inputs and outputs. Digital
inputs and outputs use CMOS logic levels. An entry in the Discrete I/O column indicates that a pin can also be used for general-purpose input, output, or both. The I/O
port designation is given when it applies. Table 3-3 shows characteristics of power
pins. Refer to Figure 3-1 for port organization.
MC68331
USER’S MANUAL
OVERVIEW
MOTOROLA
3-5
3
Table 3-1 MCU Driver Types
Type
A
Aw
B
I/O
O
O
O
Bo
O
Description
Output-only signals that are always driven; no external pull-up required
Type A output with weak P-channel pull-up during reset
Three-state output that includes circuitry to pull up output before high impedance is
established, to ensure rapid rise time. An external holding resistor is required to maintain
logic level while the pin is in the high-impedance state.
Type B output that can be operated in an open-drain mode
Table 3-2 MCU Pin Characteristics
3
Pin
Mnemonic
ADDR23/CS10/ECLK
ADDR[22:19]/CS[9:6]
ADDR[18:0]
AS
AVEC
BERR
BG/CS1
BGACK/CS2
BKPT/DSCLK
BR/CS0
CLKOUT
CSBOOT
DATA[15:0]1
DS
DSACK1
DSACK0
DSI/IFETCH
DSO/IPIPE
EXTAL2
FC[2:0]/CS[5:3]
FREEZE/QUOT
IC4/OC5
IC[3:1]
HALT
IRQ[7:1]
MISO
MODCLK1
MOSI
OC[4:1]
PAI2
PCLK2
PCSO/SS
PCS[3:1]
PWMA, PWMB
R/W
RESET
RMC
MOTOROLA
3-6
Output
Driver
A
A
A
B
B
B
B
B
—
B
A
B
Aw
B
B
B
A
A
—
A
A
A
A
Bo
B
Bo
B
Bo
A
—
—
Input
Synchronized
Y
Y
Y
Y
Y
Y
—
Y
Y
Y
—
—
Y
Y
Y
Y
Y
—
—
Y
—
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Input
Hysteresis
N
N
N
N
N
N
—
N
Y
N
—
—
N
N
N
N
Y
—
Special
N
—
Y
Y
N
Y
Y
N
Y
Y
Y
Y
Discrete
I/O
O
O
—
I/O
I/O
—
—
—
—
—
—
—
—
I/O
I/O
I/O
—
—
—
O
—
I/O
I/O
—
I/O
I/O
I/O
I/O
I/O
I
I
Port
Designation
—
PC[6:3]
—
PE5
PE2
—
—
—
—
—
—
—
—
PE4
PE1
PE0
—
—
—
PC[2:0]
—
GP4
GP[7:5]
—
PF[7:1]
PQS0
PF0
PQS1
GP[3:0]
—
—
Bo
Bo
A
A
Bo
B
Y
Y
—
Y
Y
Y
Y
Y
—
N
Y
N
I/O
I/O
O
—
—
I/O
PQS3
PQS[6:4]
—
—
—
PE3
OVERVIEW
MC68331
USER’S MANUAL
Table 3-2 MCU Pin Characteristics (Continued)
Pin
Mnemonic
RXD
SCK
SIZ[1:0]
TSC
TXD
XFC3
Output
Driver
—
Bo
B
—
Bo
—
—
XTAL3
Input
Synchronized
N
Y
Y
Y
Y
—
—
Input
Hysteresis
N
Y
N
Y
Y
—
—
Discrete
I/O
—
I/O
I/O
—
I/O
Special
Special
Port
Designation
—
PQS2
PE[7:6]
—
PQS7
—
—
1. DATA[15:0] are synchronized during reset only. MODCLK is synchronized only when used as an input port pin.
2. EXTAL, XFC, and XTAL are clock reference connections.
3. PAI and PCLK can be used for discrete input, but are not part of an I/O port.
Table 3-3 MCU Power Connections
Pin Mnemonic
VDDSYN
Description
Clock Synthesizer Power
VSSE/VDDE
External Periphery Power (Source and Drain)
VSSI/VDDI
Internal Module Power (Source and Drain)
3.4 Signal Descriptions
The following tables define MCU signals. Table 3-4 shows signal origin, type, and active state. Table 3-5 describes signal functions. Both tables are sorted alphabetically
by mnemonic. MCU pins often have multiple functions. More than one description can
apply to a pin.
Table 3-4 Signal Characteristics
Signal
Name
ADDR[23:0]
AS
AVEC
BERR
BG
BGACK
BKPT
BR
CLKOUT
CS[10:0]
CSBOOT
DATA[15:0]
DS
DSACK[1:0]
DSCLK
DSI
DSO
EXTAL
MC68331
USER’S MANUAL
MCU
Module
SIM
SIM
SIM
SIM
SIM
SIM
CPU32
SIM
SIM
SIM
SIM
SIM
SIM
SIM
CPU32
CPU32
CPU32
SIM
OVERVIEW
Signal
Type
Bus
Output
Input
Input
Output
Input
Input
Input
Output
Output
Output
Bus
Output
Input
Input
Input
Output
Input
Active
State
—
0
0
0
0
0
0
0
—
0
0
—
0
0
Serial Clock
(Serial Data)
(Serial Data)
—
MOTOROLA
3-7
3
Table 3-4 Signal Characteristics (Continued)
Signal
Name
FC[2:0]
FREEZE
HALT
IC[4:1]
IFETCH
IPIPE
IRQ[7:1]
MISO
MODCLK
MOSI
OC[5:1]
PAI
PC[6:0]
PCS[3:0]
PE[7:0]
PF[7:0]
PGP[7:0]
PQS[7:0]
PCLK
PWMA, PWMB
QUOT
RESET
RMC
R/W
RXD
SCK
SIZ[1:0]
SS
TSC
TXD
XFC
XTAL
3
MCU
Module
SIM
SIM
SIM
GPT
CPU32
CPU32
SIM
QSM
SIM
QSM
GPT
GPT
SIM
QSM
SIM
SIM
GPT
QSM
GPT
GPT
SIM
SIM
SIM
SIM
QSM
QSM
SIM
QSM
SIM
QSM
SIM
SIM
Signal
Type
Output
Output
Input/Output
Input
Output
Output
Input
Input/Output
Input
Input/Output
Output
Input
Output
Input/Output
Input/Output
Input/Output
Input/Output
Input/Output
Input
Output
Output
Input/Output
Output
Output
Input
Input/Output
Output
Input
Input
Output
Input
Output
Active
State
—
1
0
—
—
—
0
—
—
—
—
—
(Port)
—
(Port)
(Port)
(Port)
(Port)
—
—
—
0
0
1/0
—
—
—
0
—
—
—
—
Table 3-5 Signal Function
Signal Name
Address Bus
Address Strobe
Autovector
Bus Error
Bus Grant
Bus Grant Acknowledge
Breakpoint
Bus Request
System Clockout
Chip Selects
Boot Chip Select
Data Bus
MOTOROLA
3-8
Mnemonic
ADDR[23:0]
AS
AVEC
BERR
BG
BGACK
BKPT
BR
CLKOUT
CS[10:0]
CSBOOT
DATA[15:0]
Function
24-bit address bus
Indicates that a valid address is on the address bus
Requests an automatic vector during interrupt acknowledge
Indicates that a bus error has occurred
Indicates that the MCU has relinquished the bus
Indicates that an external device has assumed bus mastership
Signals a hardware breakpoint to the CPU
Indicates that an external device requires bus mastership
System clock output
Select external devices at programmed addresses
Chip select for external boot start-up ROM
16-bit data bus
OVERVIEW
MC68331
USER’S MANUAL
Table 3-5 Signal Function (Continued)
Signal Name
Data Strobe
Data and Size Acknowledge
Development Serial In, Out, Clock
Crystal Oscillator
Function Codes
Freeze
Halt
Input Capture
Input Capture 4/
Output Compare 5
Instruction Pipeline
Interrupt Request Level
Master In Slave Out
Clock Mode Select
Master Out Slave In
Output Compare
Pulse Accumulator Input
Port C
Auxiliary Timer Clock Input
Peripheral Chip Select
Port E
Port F
Port GP
Port QS
Pulse-Width Modulation
Quotient Out
Reset
Read-Modify-Write Cycle
Read/Write
SCI Receive Data
QSPI Serial Clock
Size
Slave Select
Three-State Control
SCI Transmit Data
External Filter Capacitor
MC68331
USER’S MANUAL
Mnemonic
DS
Function
During a read cycle, indicates when it is possible for an external
device to place data on the data bus. During a write cycle,
indicates that valid data is on the data bus.
Provide asynchronous data transfers and dynamic bus sizing
Serial I/O and clock for background debugging mode
DSACK[1:0]
DSI, DSO,
DSCLK
EXTAL, XTAL Connections for clock synthesizer circuit reference; a crystal or an
external oscillator can be used
FC[2:0]
Identify processor state and current address space
FREEZE
Indicates that the CPU has entered background mode
HALT
Suspend external bus activity
IC[3:1]
When a specified transition is detected on an input capture pin, the
value in an internal GPT counter is latched
IC4/OC5
Can be configured for either an input capture or output compare
IPIPE, IFETCH Indicate instruction pipeline activity
IRQ[7:1]
Provides an interrupt priority level to the CPU
MISO
Serial input to QSPI in master mode; serial output from QSPI in
slave mode
MODCLK
Selects the source and type of system clock
MOSI
Serial output from QSPI in master mode; serial input to QSPI in
slave mode
OC[5:1]
Change state when the value of an internal GPT counter matches
a value stored in a GPT control register
PAI
Signal input to the pulse accumulator
PC[6:0]
SIM digital output port signals
PCLK
External clock dedicated to the GPT
PCS[3:0]
QSPI peripheral chip selects
PE[7:0]
SIM digital I/O port signals
PF[7:0]
SIM digital I/O port signals
PGP[7:0]
GPT digital I/O port signals
PQS[7:0]
QSM digital I/O port signals
PWMA, PWMB Output for PWM
QUOT
Provides the quotient bit of the polynomial divider
RESET
System reset
RMC
Indicates an indivisible read-modify-write instruction
R/W
Indicates the direction of data transfer on the bus
RXD
Serial input to the SCI
SCK
Clock output from QSPI in master mode; clock input to QSPI in
slave mode
SIZ[1:0]
Indicates the number of bytes to be transferred during a bus cycle
SS
Causes serial transmission when QSPI is in slave mode; causes
mode fault in master mode
TSC
Places all output drivers in a high-impedance state
TXD
Serial output from the SCI
XFC
Connection for external phase-locked loop filter capacitor
OVERVIEW
MOTOROLA
3-9
3
3.5 Intermodule Bus
The intermodule bus (IMB) is a standardized bus developed to facilitate both design
and operation of modular microcontrollers. It contains circuitry to support exception
processing, address space partitioning, multiple interrupt levels, and vectored interrupts. The standardized modules in the MCU communicate with one another and with
external components through the IMB. The IMB in the MCU uses 24 address and 16
data lines.
3.6 System Memory Map
Figure 3-4, Figure 3-5, Figure 3-6, Figure 3-7, and Figure 3-8 are MCU memory
maps. Figure 3-4 shows IMB addresses of internal registers. Figure 3-5 through Figure 3-8 show system memory maps that use different external decoding schemes.
3
3.6.1 Internal Register Map
In Figure 3-4, IMB ADDR[23:20] are represented by the letter Y. The value represented by Y determines the base address of MCU module control registers. In M68300 microcontrollers, Y is equal to M111, where M is the logic state of the module mapping
(MM) bit in the system integration module configuration register (SIMCR).
3.6.2 Address Space Maps
Figure 3-5 shows a single memory space. Function codes FC[2:0] are not decoded
externally so that separate user/supervisor or program/data spaces are not provided.
In Figure 3-6, FC2 is decoded, resulting in separate supervisor and user spaces.
FC[1:0] are not decoded, so that separate program and data spaces are not provided.
In Figure 3-7 and Figure 3-8, FC[2:0] are decoded, resulting in four separate memory
spaces: supervisor/program, supervisor/data, user/program and user/data.
All exception vectors are located in supervisor data space, except the reset vector,
which is located in supervisor program space. Only the initial reset vector is fixed in
the processor's memory map. Once initialization is complete, there are no fixed assignments. Since the vector base register (VBR) provides the base address of the vector table, the vector table can be located anywhere in memory. Refer to SECTION 5
CENTRAL PROCESSING UNIT for more information concerning memory management, extended addressing, and exception processing. Refer to SECTION 4 SYSTEM
INTEGRATION MODULE for more information concerning function codes and address space types.
MOTOROLA
3-10
OVERVIEW
MC68331
USER’S MANUAL
$YFF000
$YFF900
GPT
$YFF93F
$YFFA00
SIM
$YFFA7F
$YFFA80
$YFFAFF
RESERVED
$YFFC00
QSM
$YFFDFF
3
$YFFFFF
Y = M111, where M is the state of the module mapping (MM) bit in the SIM configuration register.
331 ADDRESS MAP
Figure 3-4 Internal Register Memory Map
MC68331
USER’S MANUAL
OVERVIEW
MOTOROLA
3-11
$000000
COMBINED
SUPERVISOR
AND USER
SPACE
3
VECTOR VECTOR
OFFSET NUMBER
0
0000
1
0004
2
0008
3
000C
4
0010
5
0014
6
0018
7
001C
8
0020
9
0024
10
0028
11
002C
12
0030
13
0034
14
0038
15
003C
0040–005C 16–23
24
006C
25
0064
26
0068
27
006C
28
0070
29
0074
30
0078
31
007C
0080–00BC 32–47
00C0–00EB 48–58
00EC–00FC 59–63
0100–03FC 64–255
TYPE OF
EXCEPTION
RESET — INITIAL STACK POINTER
RESET — INITIAL PC
BUS ERROR
ADDRESS ERROR
ILLEGAL INSTRUCTION
ZERO DIVISION
CHK, CHK2 INSTRUCTIONS
TRAPcc, TRAPV INSTRUCTIONS
PRIVILEGE VIOLATION
TRACE
LINE 1010 EMULATOR
LINE 1111 EMULATOR
HARDWARE BREAKPOINT
(RESERVED COPROCESSOR PROTOCOL VIOLATION)
FORMAT ERROR AND UNINITIALIZED INTERRUPT
FORMAT ERROR AND UNINITIALIZED INTERRUPT
(UNASSIGNED, RESERVED)
SPURIOUS INTERRUPT
LEVEL 1 INTERRUPT AUTOVECTOR
LEVEL 2 INTERRUPT AUTOVECTOR
LEVEL 3 INTERRUPT AUTOVECTOR
LEVEL 4 INTERRUPT AUTOVECTOR
LEVEL 5 INTERRUPT AUTOVECTOR
LEVEL 6 INTERRUPT AUTOVECTOR
LEVEL 7 INTERRUPT AUTOVECTOR
TAP INSTRUCTION VECTORS (0–15)
(RESERVED, COPROCESSOR)
(UNASSIGNED, RESERVED)
USER-DEFINED VECTORS
$XX0000
$XX03FC
$YFF000
$YFF900
GPT
$7FF000
$YFF93F
INTERNAL REGISTERS (MM = 0)
$YFFA00
RESERVED
SIM
RESERVED
$YFFA7F
$YFFA80
$YFFAFF
$YFFC00
QSM
$YFFDFF
$FF0000
INTERNAL REGISTERS (MM = 1)
$YFFFFF
$FFFFFF
NOTES:
1. Location of the exception vector table is determined by the vector base register. The vector address is the sum of the vector
base register and the vector offset.
2. Location of the module control registers is determined by the state of the module mapping (MM) bit in the SIM configuration register.
Y = M111, where M is the state of the MM bit.
3. Unused addresses within the internal register block are mapped externally. "RESERVED" blocks are not mapped externally.
331 S/U COMB MAP
Figure 3-5 Overall Memory Map
MOTOROLA
3-12
OVERVIEW
MC68331
USER’S MANUAL
$000000
SUPERVISOR
SPACE
VECTOR VECTOR
OFFSET NUMBER
0
0000
1
0004
2
0008
3
000C
4
0010
5
0014
6
0018
7
001C
8
0020
9
0024
10
0028
11
002C
12
0030
13
0034
14
0038
15
003C
0040–005C 16–23
24
006C
25
0064
26
0068
27
006C
28
0070
29
0074
30
0078
31
007C
0080–00BC 32–47
00C0–00EB 48–58
00EC–00FC 59–63
0100–03FC 64–255
TYPE OF
EXCEPTION
RESET — INITIAL STACK POINTER
RESET — INITIAL PC
BUS ERROR
ADDRESS ERROR
ILLEGAL INSTRUCTION
ZERO DIVISION
CHK, CHK2 INSTRUCTIONS
TRAPcc, TRAPV INSTRUCTIONS
PRIVILEGE VIOLATION
TRACE
LINE 1010 EMULATOR
LINE 1111 EMULATOR
HARDWARE BREAKPOINT
(RESERVED COPROCESSOR PROTOCOL VIOLATION)
FORMAT ERROR AND UNINITIALIZED INTERRUPT
FORMAT ERROR AND UNINITIALIZED INTERRUPT
(UNASSIGNED, RESERVED)
SPURIOUS INTERRUPT
LEVEL 1 INTERRUPT AUTOVECTOR
LEVEL 2 INTERRUPT AUTOVECTOR
LEVEL 3 INTERRUPT AUTOVECTOR
LEVEL 4 INTERRUPT AUTOVECTOR
LEVEL 5 INTERRUPT AUTOVECTOR
LEVEL 6 INTERRUPT AUTOVECTOR
LEVEL 7 INTERRUPT AUTOVECTOR
TAP INSTRUCTION VECTORS (0–15)
(RESERVED, COPROCESSOR)
(UNASSIGNED, RESERVED)
USER-DEFINED VECTORS
$000000
$XX0000
USER
SPACE
3
$XX03FC
$YFF000
$YFF900
GPT
$7FF000
$YFF93F
INTERNAL REGISTERS
INTERNAL REGISTERS
$7FF0004
$YFFA00
RESERVED
SIM
RESERVED
$YFFA7F
$YFFA80
$YFFAFF
$YFFC00
QSM
$YFFDFF
$FF0000
INTERNAL REGISTERS
$FFFFFF
$YFFFFF
INTERNAL REGISTERS
$FF00004
$FFFFFF
NOTES:
1. Location of the exception vector table is determined by the vector base register. The vector address is the sum of the vector
base register and the vector offset.
2. Location of the module control registers is determined by the state of the module mapping (MM) bit in the SIM configuration register.
Y = M111, where M is the state of the MM bit.
3. Unused addresses within the internal register block are mapped externally. "RESERVED" blocks are not mapped externally.
4. Some internal registers are not available in user space.
331 S/U SEP MAP
Figure 3-6 Separate Supervisor and User Space Map
MC68331
USER’S MANUAL
OVERVIEW
MOTOROLA
3-13
VECTOR
OFFSET
0000
0004
$000000
SUPERVISOR
DATA
SPACE
3
VECTOR
NUMBER
0
1
VECTOR VECTOR
OFFSET NUMBER
0
0000
1
0004
2
0008
3
000C
4
0010
5
0014
6
0018
7
001C
8
0020
9
0024
10
0028
11
002C
12
0030
13
0034
14
0038
15
003C
0040–005C 16–23
24
006C
25
0064
26
0068
27
006C
28
0070
29
0074
30
0078
31
007C
0080–00BC 32–47
00C0–00EB 48–58
00EC–00FC 59–63
0100–03FC 64–255
EXCEPTION VECTORS LOCATED
IN SUPERVISOR PROGRAM SPACE
RESET — INITIAL STACK POINTER
RESET — INITIAL PC
EXCEPTION VECTORS LOCATED
IN SUPERVISOR DATA SPACE
RESET — INITIAL STACK POINTER
RESET — INITIAL PC
BUS ERROR
ADDRESS ERROR
ILLEGAL INSTRUCTION
ZERO DIVISION
CHK, CHK2 INSTRUCTIONS
TRAPcc, TRAPV INSTRUCTIONS
PRIVILEGE VIOLATION
TRACE
LINE 1010 EMULATOR
LINE 1111 EMULATOR
HARDWARE BREAKPOINT
(RESERVED COPROCESSOR PROTOCOL VIOLATION)
FORMAT ERROR AND UNINITIALIZED INTERRUPT
FORMAT ERROR AND UNINITIALIZED INTERRUPT
(UNASSIGNED, RESERVED)
SPURIOUS INTERRUPT
LEVEL 1 INTERRUPT AUTOVECTOR
LEVEL 2 INTERRUPT AUTOVECTOR
LEVEL 3 INTERRUPT AUTOVECTOR
LEVEL 4 INTERRUPT AUTOVECTOR
LEVEL 5 INTERRUPT AUTOVECTOR
LEVEL 6 INTERRUPT AUTOVECTOR
LEVEL 7 INTERRUPT AUTOVECTOR
TAP INSTRUCTION VECTORS (0–15)
(RESERVED, COPROCESSOR)
(UNASSIGNED, RESERVED)
USER-DEFINED VECTORS
$000000
$XX0000
$XX0004
$XX0000
SUPERVISOR
PROGRAM
SPACE
$XX03FC
$YFF000
$YFF900
GPT
$7FF000
$YFF93F
INTERNAL REGISTERS
$YFFA00
RESERVED
SIM
RESERVED
$YFFA7F
$YFFA80
$YFFAFF
$YFFC00
QSM
$YFFDFF
$FF0000
INTERNAL REGISTERS
$FFFFFF
$YFFFFF
$FFFFFF
NOTES:
1. Location of the exception vector table is determined by the vector base register. The vector address is the sum of the vector
base register and the vector offset.
2. Location of the module control registers is determined by the state of the module mapping (MM) bit in the SIM configuration register.
Y = M111, where M is the state of the MM bit.
3. Unused addresses within the internal register block are mapped externally. "RESERVED" blocks are not mapped externally.
4. Some internal registers are not available in user space.
331 SUPER P/D MAP
Figure 3-7 Supervisor Space (Separate Program/Data Space) Map
MOTOROLA
3-14
OVERVIEW
MC68331
USER’S MANUAL
$000000
$000000
USER
PROGRAM
SPACE
USER
DATA
SPACE
$YFF000
$YFF900
GPT
$7FF000
$YFF93F
INTERNAL REGISTERS
$YFFA00
RESERVED
SIM
RESERVED
$YFFA7F
$YFFA80
$YFFAFF
$YFFC00
QSM
$YFFDFF
$FF0000
$FFFFFF
INTERNAL REGISTERS
$FFFFFF
$YFFFFF
NOTES:
1. Location of the module control registers is determined by the state of the module mapping (MM) bit in the SIM configuration
register. Y = M111, where M is the state of the MM bit.
2. Unused addresses within the internal register block are mapped externally. "RESERVED" blocks are not mapped externally.
3. Some internal registers are not available in user space.
331 USER P/D MAP
Figure 3-8 User Space (Separate Program/Data Space) Map
MC68331
USER’S MANUAL
OVERVIEW
MOTOROLA
3-15
3
3.7 System Reset
The following information is a concise reference only. System reset is a complex operation. To understand operation during and after reset, refer to SECTION 4 SYSTEM
INTEGRATION MODULE, paragraph 4.6 Reset for a more complete discussion of the
reset function.
3.7.1 SIM Reset Mode Selection
The logic states of certain data bus pins during reset determine SIM operating configuration. In addition, the state of the MODCLK pin determines system clock source and
the state of the BKPT pin determines what happens during subsequent breakpoint assertions. Table 3-6 is a summary of reset mode selection options.
Table 3-6 SIM Reset Mode Selection
Mode Select Pin
3
DATA0
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
DATA8
DATA9
DATA11
MODCLK
BKPT
MOTOROLA
3-16
Default Function
(Pin Left High)
CSBOOT 16-Bit
CS0
CS1
CS2
CS3
CS4
CS5
CS6
CS[7:6]
CS[8:6]
CS[9:6]
CS[10:6]
DSACK0, DSACK1,
AVEC, DS, AS,
SIZ[1:0]
IRQ[7:1], MODCLK
Test Mode Disabled
VCO = System Clock
Background Mode Disabled
OVERVIEW
Alternate Function
(Pin Pulled Low)
CSBOOT 8-Bit
BRBG
BGACK
FC0FC1FC2
ADDR19
ADDR[20:19]
ADDR[21:19]
ADDR[22:19]
ADDR[23:19]
PORTE
PORTF
Test Mode Enabled
EXTAL = System Clock
Background Mode Enabled
MC68331
USER’S MANUAL
3.7.2 MCU Module Pin Function During Reset
Generally, pins associated with modules other than the SIM default to port functions,
and input/output ports are set to input state. This is accomplished by disabling pin
functions in the appropriate control registers, and by clearing the appropriate port data
direction registers. Refer to individual module sections in this manual for more information. Table 3-7 is a summary of module pin function out of reset.
Table 3-7 Module Pin Functions
Module
CPU32
GPT
QSM
MC68331
USER’S MANUAL
Pin Mnemonic
DSI/IFETCH
DSO/IPIPE
BKPT/DSCLK
PGP7/IC4/OC5
PGP[6:3]/OC[4:1]
PGP[2:0]/IC[3:1]
PAI
PCLK
PWMA, PWMB
PQS7/TXD
PQS[6:4]/PCS[3:1]
PQS3/PCS0/SS
PQS2/SCK
PQS1/MOSI
PQS0/MISO
RXD
OVERVIEW
Function
DSI/IFETCH
DSO/IPIPE
BKPT/DSCLK
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Output
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Input
RXD
3
MOTOROLA
3-17
3
MOTOROLA
3-18
OVERVIEW
MC68331
USER’S MANUAL
SECTION 4 SYSTEM INTEGRATION MODULE
This section is an overview of SIM function. Refer to the SIM Reference Manual (SIMRM/AD) for a comprehensive discussion of SIM capabilities. Refer to APPENDIX D
REGISTER SUMMARY for information concerning the SIM address map and register
structure.
4.1 General
The system integration module (SIM) consists of five functional blocks. Figure 4-1 is
a block diagram of the SIM.
The system configuration and protection block controls configuration parameters and
provides bus and software watchdog monitors. In addition, it provides a periodic interrupt generator to support execution of time-critical control routines.
The system clock generates clock signals used by the SIM, other IMB modules, and
external devices.
The external bus interface handles the transfer of information between IMB modules
and external address space. EBI pins can also be configured for use as general-purpose I/O ports E and F.
The chip-select block provides 12 chip-select signals. Each chip-select signal has an
associated base register and option register that contain the programmable characteristics of that chip select. Chip-select pins can also be configured for use as generalpurpose output port C.
The system test block incorporates hardware necessary for testing the MCU. It is used
to perform factory tests, and its use in normal applications is not supported.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-1
4
SYSTEM CONFIGURATION
AND PROTECTION
CLOCK SYNTHESIZER
CHIP SELECTS
CLKOUT
EXTAL
MODCLK
CHIP SELECTS
EXTERNAL BUS
EXTERNAL BUS INTERFACE
RESET
4
FACTORY TEST
TSC
FREEZE/QUOT
S(C)IM BLOCK
Figure 4-1 System Integration Module Block Diagram
4.2 System Configuration and Protection
The system configuration and protection functional block controls module configuration, preserves reset status, monitors internal activity, and provides periodic interrupt
generation. Figure 4-2 is a block diagram of the submodule.
MOTOROLA
4-2
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
MODULE CONFIGURATION
AND TEST
RESET STATUS
HALT MONITOR
RESET REQUEST
BUS MONITOR
BERR
4
SPURIOUS INTERRUPT MONITOR
SOFTWARE WATCHDOG TIMER
CLOCK
RESET REQUEST
29
PRESCALER
PERIODIC INTERRUPT TIMER
IRQ [7:1]
SYS PROTECT BLOCK
Figure 4-2 System Configuration and Protection
4.2.1 Module Mapping
Control registers for all the modules in the microcontroller are mapped into a 4-Kbyte
block. The state of the module mapping bit (MM) in the SIM module configuration register (SIMCR) determines where the control register block is located in the system
memory map. When MM = 0, register addresses range from $7FF000 to $7FFFFF;
when MM = 1, register addresses range from $FFF000 to $FFFFFF.
4.2.2 Interrupt Arbitration
Each module that can generate interrupt requests has an interrupt arbitration (IARB)
field. Arbitration between interrupt requests of the same priority is performed by serial
contention between IARB field bit values. Contention must take place whenever an interrupt request is acknowledged, even when there is only a single request pending.
For an interrupt to be serviced, the appropriate IARB field must have a non-zero value.
If an interrupt request from a module with an IARB field value of %0000 is recognized,
the CPU32 processes a spurious interrupt exception.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-3
Because the SIM routes external interrupt requests to the CPU32, the SIM IARB field
value is used for arbitration between internal and external interrupts of the same priority. The reset value of IARB for the SIM is %1111, and the reset IARB value for all
other modules is %0000, which prevents SIM interrupts from being discarded during
initialization. Refer to 4.7 Interrupts for a discussion of interrupt arbitration.
4.2.3 Show Internal Cycles
A show cycle allows internal bus transfers to be monitored externally. The SHEN field
in the SIMCR determines what the external bus interface does during internal transfer
operations. Table 4-1 shows whether data is driven externally, and whether external
bus arbitration can occur. Refer to 4.5.6.2 Show Cycles for more information.
Table 4-1 Show Cycle Enable Bits
SHEN
00
01
10
11
4
Action
Show cycles disabled, external arbitration enabled
Show cycles enabled, external arbitration disabled
Show cycles enabled, external arbitration enabled
Show cycles enabled, external arbitration enabled;
internal activity is halted by a bus grant
4.2.4 Factory Test Mode
The internal IMB can serve as slave to an external master for direct module testing.
This test mode is reserved for factory test. Slave mode is enabled by holding DATA11
low during reset. The slave enabled (SLVEN) bit is a read-only bit that shows the reset
state of DATA11.
4.2.5 Register Access
The CPU32 can operate at either of two privilege levels. Supervisor level is more privileged than user level — all instructions and system resources are available at supervisor level, but access is restricted at user level. Effective use of privilege level can
protect system resources from uncontrolled access. The state of the S bit in the CPU
status register determines access level, and whether the user or supervisor stack
pointer is used for stacking operations. The SUPV bit places SIM global registers in
either supervisor or user data space. When SUPV = 0, registers with controlled access
are accessible from either the user or supervisor privilege level; when SUPV = 1, registers with controlled access are restricted to supervisor access only.
4.2.6 Reset Status
The reset status register (RSR) latches internal MCU status during reset. Refer to
4.6.9 Reset Status Register for more information.
4.2.7 Bus Monitor
The internal bus monitor checks data and size acknowledge (DSACK) or autovector
(AVEC) signal response times during normal bus cycles. The monitor asserts the internal bus error (BERR) signal when the response time is excessively long.
MOTOROLA
4-4
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
DSACK and AVEC response times are measured in clock cycles. Maximum allowable
response time can be selected by setting the bus monitor timing (BMT) field in the system protection control register (SYPCR). Table 4-2 shows the periods allowed.
Table 4-2 Bus Monitor Period
BMT
00
01
10
11
Bus Monitor Time-Out Period
64 System Clocks
32 System Clocks
16 System Clocks
8 System Clocks
The monitor does not check DSACK response on the external bus unless the CPU32
initiates a bus cycle. The BME bit in SYPCR enables the internal bus monitor for internal to external bus cycles. If a system contains external bus masters, an external bus
monitor must be implemented and the internal-to-external bus monitor option must be
disabled.
When monitoring transfers to an 8-bit port, the bus monitor does not reset until both
byte accesses of a word transfer are completed. Monitor time-out period must be at
least twice the number of clocks that a single byte access requires.
4.2.8 Halt Monitor
The halt monitor responds to an assertion of the HALT signal on the internal bus. Refer
to 4.5.5.2 Double Bus Faults for more information. Halt monitor reset can be inhibited
by the halt monitor (HME) bit in SYPCR.
4.2.9 Spurious Interrupt Monitor
During interrupt exception processing, the CPU32 normally acknowledges an interrupt
request, recognizes the highest priority source, and then acquires a vector or responds to a request for autovectoring. The spurious interrupt monitor asserts the internal bus error signal (BERR) if no interrupt arbitration occurs during interrupt
exception processing. The assertion of BERR causes the CPU32 to load the spurious
interrupt exception vector into the program counter. The spurious interrupt monitor
cannot be disabled. Refer to 4.7 Interrupts for further information. For detailed information about interrupt exception processing, refer to SECTION 5 CENTRAL PROCESSING UNIT.
4.2.10 Software Watchdog
The software watchdog is controlled by the software watchdog enable (SWE) bit in
SYPCR. When enabled, the watchdog requires that a service sequence be written to
software service register SWSR on a periodic basis. If servicing does not take place,
the watchdog times out and asserts the reset signal.
Perform a software watchdog service sequence as follows:
1. Write $55 to SWSR.
2. Write $AA to SWSR.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-5
4
Both writes must occur before time-out in the order listed, but any number of instructions can be executed between the two writes.
Watchdog clock rate is affected by the software watchdog prescale (SWP) and software watchdog timing (SWT) fields in SYPCR.
SWP determines system clock prescaling for the watchdog timer and determines that
one of two options, either no prescaling or prescaling by a factor of 512, can be selected. The value of SWP is affected by the state of the MODCLK pin during reset, as
shown in Table 4-3. System software can change SWP value.
Table 4-3 MODCLK Pin and SWP Bit During Reset
MODCLK
0 (External Clock)
1 (Internal Clock)
4
SWP
1 (÷ 512)
0 (÷ 1)
The SWT field selects the divide ratio used to establish software watchdog time-out
period. Time-out period is given by the following equations.
1
Time-out Period = ------------------------------------------------------------------------------------EXTAL Frequency ⁄ Divide Ratio
or
Divide Ratio
Time-out Period = ------------------------------------------------EXTAL Frequency
Table 4-4 shows the ratio for each combination of SWP and SWT bits. When SWT[1:0]
are modified, a watchdog service sequence must be performed before the new timeout period can take effect.
Table 4-4 Software Watchdog Ratio
SWP
0
SWT
00
Ratio
0
01
211
0
10
213
0
11
215
1
00
218
1
01
220
1
10
222
1
11
224
29
Figure 4-3 is a block diagram of the watchdog timer and the clock control for the periodic interrupt timer.
MOTOROLA
4-6
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
PITR
SWP
PTP
FREEZE
EXTAL
CLOCK
DISABLE
PRESCALER (29)
CLOCK
PRECLK MUX
÷4
PITCLK
8-BIT MODULUS
COUNTER
PIT
INTERRUPT
RESET
SWCLK
LPSTOP
SWT1
SWT0
SWE
15 STAGE
DIVIDER CHAIN (215)
29
211
213
215
PIT BLOCK
Figure 4-3 Periodic Interrupt Timer and Software Watchdog Timer
4.2.11 Periodic Interrupt Timer
The periodic interrupt timer allows the generation of interrupts of specific priority at predetermined intervals. This capability is often used to schedule control system tasks
that must be performed within time constraints. The timer consists of a prescaler, a
modulus counter, and registers that determine interrupt timing, priority and vector assignment. Refer to SECTION 5 CENTRAL PROCESSING UNIT for further information
about interrupt exception processing.
The periodic interrupt modulus counter is clocked by a signal derived from the buffered
crystal oscillator (EXTAL) input pin unless an external frequency source is used. The
value of the periodic timer prescaler (PTP) bit in the periodic interrupt timer register
(PITR) determines system clock prescaling for the watchdog timer. One of two options, either no prescaling, or prescaling by a factor of 512, can be selected. The value
of PTP is affected by the state of the MODCLK pin during reset, as shown in Table 45. System software can change PTP value.
Table 4-5 MODCLK Pin and PTP Bit at Reset
MODCLK
0 (External Clock)
1 (Internal Clock)
PTP
1 (÷ 512)
0 (÷ 1)
Either clock signal (EXTAL or EXTAL ÷ 512) is divided by four before driving the modulus counter (PITCLK). The modulus counter is initialized by writing a value to the periodic timer modulus timer modulus (PITM) field in the PITR. A zero value turns off the
periodic timer. When the modulus counter value reaches zero, an interrupt is generated. The modulus counter is then reloaded with the value in PITM and counting repeats.
If a new value is written to PITR, it is loaded into the modulus counter when the current
count is completed.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-7
4
Use the following expression to calculate timer period.
( PIT Modulus ) ( Prescaler Value ) ( 4 )
PIT Period = ---------------------------------------------------------------------------------------------EXTAL Frequency
Interrupt priority and vectoring are determined by the values of the periodic interrupt
request level (PIRQL) and periodic interrupt vector (PIV) fields in the periodic interrupt
control register (PICR).
Content of PIRQL is compared to the CPU32 interrupt priority mask to determine
whether the interrupt is recognized. Table 4-6 shows priority of PIRQL values. Because of SIM hardware prioritization, a PIT interrupt is serviced before an external interrupt request of the same priority. The periodic timer continues to run when the
interrupt is disabled.
Table 4-6 Periodic Interrupt Priority
PIRQL
000
001
010
011
100
101
110
111
4
Priority Level
Periodic Interrupt Disabled
Interrupt Priority Level 1
Interrupt Priority Level 2
Interrupt Priority Level 3
Interrupt Priority Level 4
Interrupt Priority Level 5
Interrupt Priority Level 6
Interrupt Priority Level 7
The PIV field contains the periodic interrupt vector. The vector is placed on the IMB
when an interrupt request is made. The vector number used to calculate the address
of the appropriate exception vector in the exception vector table. Reset value of the
PIV field is $0F, which corresponds to the uninitialized interrupt exception vector.
4.2.12 Low-Power STOP Operation
When the CPU32 executes the LPSTOP instruction, the current interrupt priority mask
is stored in the clock control logic, internal clocks are disabled according to the state
of the STSIM bit in the SIMCR, and the MCU enters low-power stop mode. The bus
monitor, halt monitor, and spurious interrupt monitor are all inactive during low-power
stop.
During low-power stop, the clock input to the software watchdog timer is disabled and
the timer stops. The software watchdog begins to run again on the first rising clock
edge after low-power stop ends. The watchdog is not reset by low-power stop. A service sequence must be performed to reset the timer.
The periodic interrupt timer does not respond to the LPSTOP instruction, but continues
to run during LPSTOP. To stop the periodic interrupt timer, PITR must be loaded with
a zero value before the LPSTOP instruction is executed. A PIT interrupt, or an external
interrupt request, can bring the MCU out of the low-power stop condition if it has a
higher priority than the interrupt mask value stored in the clock control logic when lowpower stop is initiated. LPSTOP can be terminated by a reset.
MOTOROLA
4-8
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.2.13 Freeze Operation
The FREEZE signal halts MCU operations during debugging. FREEZE is asserted internally by the CPU32 if a breakpoint occurs while background mode is enabled. When
FREEZE is asserted, only the bus monitor, software watchdog, and periodic interrupt
timer are affected. The halt monitor and spurious interrupt monitor continue to operate
normally. Setting the freeze bus monitor (FRZBM) bit in the SIMCR disables the bus
monitor when FREEZE is asserted, and setting the freeze software watchdog
(FRZSW) bit disables the software watchdog and the periodic interrupt timer when
FREEZE is asserted. When FRZSW is set, FREEZE assertion must be at least two
times the PIT clock source period to ensure an accurate number of PIT counts.
4.3 System Clock
The system clock in the SIM provides timing signals for the IMB modules and for an
external peripheral bus. Because the MCU is a fully static design, register and memory
contents are not affected when the clock rate changes. System hardware and software
support changes in clock rate during operation.
The system clock signal can be generated in one of three ways. An internal phaselocked loop can synthesize the clock from either an internal reference or an external
reference, or the clock signal can be input from an external frequency source. Keep
these clock sources in mind while reading the rest of this section. Figure 4-4 is a block
diagram of the system clock. Refer to APPENDIX A ELECTRICAL CHARACTERISTICS for clock specifications.
EXTAL
XTAL
CRYSTAL
OSCILLATOR
PHASE
COMPARATOR
XFC
VDDSYN
LOW-PASS
FILTER
VCO
FEEDBACK DIVIDER
SYSTEM CLOCK CONTROL
CLKOUT
W
Y
X
SYSTEM
CLOCK
32 PLL BLOCK
Figure 4-4 System Clock Block Diagram
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-9
4
4.3.1 Clock Sources
The state of the clock mode (MODCLK) pin during reset determines clock source.
When MODCLK is held high during reset, the clock synthesizer generates a clock signal from either an internal or an external reference frequency — the clock synthesizer
control register (SYNCR) determines operating frequency and mode of operation.
When MODCLK is held low during reset, the clock synthesizer is disabled and an external system clock signal must be applied — SYNCR control bits have no effect.
To generate a reference frequency using the internal oscillator a reference crystal
must be connected between the EXTAL and XTAL pins. Figure 4-5 shows a recommended circuit.
C1
22 pF*
R1
330k
XTAL
R2
10M
4
VSSI
C2
22 pF*
EXTAL
* Resistance and capacitance based on a test circuit constructed with a DAISHINKU DMX-38 32.768-kHz crystal.
Specific components must be based on crystal type. Contact crystal vendor for exact circuit.
32 OSCILLATOR
Figure 4-5 System Clock Oscillator Circuit
If an external reference signal or an external system clock signal is applied via the EXTAL pin, the XTAL pin must be left floating. External reference signal frequency must
be less than or equal to maximum specified reference frequency. External system
clock signal frequency must be less than or equal to maximum specified system clock
frequency.
When an external system clock signal is applied (PLL disabled, MODCLK = 0 during
reset), the duty cycle of the input is critical, especially at operating frequencies close
to maximum. The relationship between clock signal duty cycle and clock signal period
is expressed:
Minumum External Clock Period
Minimum External Clock High ⁄ Low Time
= ---------------------------------------------------------------------------------------------------------------------------------------------------------------------50% – Percentage Variation of External Clock Input Duty Cycle
4.3.2 Clock Synthesizer Operation
VDDSYN is used to power the clock circuits when either an internal or an external reference frequency is applied. A separate power source increases MCU noise immunity
and can be used to run the clock when the MCU is powered down. A quiet power supply must be used as the VDDSYN source. Adequate external bypass capacitors should
be placed as close as possible to the VDDSYN pin to assure stable operating frequenMOTOROLA
4-10
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
cy. When an external system clock signal is applied and the PLL is disabled, VDDSYN
should be connected to the VDD supply. Refer to the SIM Reference Manual (SIMRM/
AD) for more information regarding system clock power supply conditioning.
A voltage controlled oscillator (VCO) generates the system clock signal. To maintain
a 50% clock duty cycle, VCO frequency is either two or four times system clock frequency, depending on the state of the X bit in SYNCR. A portion of the clock signal is
fed back to a divider/counter. The divider controls the frequency of one input to a
phase comparator. The other phase comparator input is a reference signal, either from
the crystal oscillator or from an external source. The comparator generates a control
signal proportional to the difference in phase between the two inputs. The signal is lowpass filtered and used to correct VCO output frequency.
Filter geometry can vary, depending upon the external environment and required clock
stability. Figure 4-6 shows two recommended filters. XFC pin leakage must be as
specified in APPENDIX A ELECTRICAL CHARACTERISTICS to maintain optimum
stability and PLL performance.
An external filter network connected to the XFC pin is not required when an external
system clock signal is applied and the PLL is disabled. The XFC pin must be left floating in this case.
C3
0.1µF
C1
0.1µF
C3
0.1µF
XFC1
VDDSYN
VSSI
C4
0.01µF
VSSI
NORMAL OPERATING
ENVIRONMENT
C4
0.01µF
C1
0.1µF R1
18kΩ
XFC1, 2
C2
0.01µF
VDDSYN
HIGH-STABILITY OPERATING
ENVIRONMENT
1. Maintain low-leakage on the XFC node. See Appendix A electrical characteristics for more information.
2. Recommended loop filter for reduced sensitivity to low-frequency noise.
16/32 XFC CONN
Figure 4-6 System Clock Filter Networks
The synthesizer locks when VCO frequency is equal to EXTAL frequency. Lock time
is affected by the filter time constant and by the amount of difference between the two
comparator inputs. Whenever comparator input changes, the synthesizer must relock.
Lock status is shown by the SLOCK bit in SYNCR. During power-up, the MCU does
not come out of reset state until the synthesizer locks. Crystal type, characteristic frequency, and layout of external oscillator circuitry affect lock time.
When the clock synthesizer is used, control register SYNCR determines operating frequency and various modes of operation. The SYNCR W bit controls a three-bit prescaler in the feedback divider. Setting W increases VCO speed by a factor of four. The
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-11
4
SYNCR Y field determines the count modulus for a modulo 64 down counter, causing
it to divide by a value of Y + 1. When W or Y values change, VCO frequency changes,
and there is a VCO relock delay. The SYNCR X bit controls a divide-by-two circuit that
is not in the synthesizer feedback loop. When X = 0 (reset state), the divider is enabled, and system clock frequency is one-fourth VCO frequency; setting X disables
the divider, doubling clock speed without changing VCO speed. There is no relock delay when clock speed is changed by the X bit.
Clock frequency is determined by SYNCR bit settings as follows:
F SYSTEM = F REFERENCE [ 4 ( Y + 1 ) ( 2
2W + X
)]
The reset state of SYNCR ($3F00) produces a modulus-64 count.
4
For the device to perform correctly, system clock and VCO frequencies selected by
the W, X, and Y bits must be within the limits specified for the MCU. Do not use a combination of bit values that selects either an operating frequency or a VCO frequency
greater than the maximum specified values in APPENDIX A ELECTRICAL CHARACTERISTICS.
Table 4-7 shows clock control multipliers for all possible combinations of SYNCR bits.
Table 4-8 shows clock frequencies available with a 32.768-kHz reference and a maximum specified clock frequency of 20.97 MHz.
Table 4-7 Clock Control Multipliers
To obtain clock frequency in kilohertz, find counter modulus in the left column, then multiply reference frequency by value
in appropriate prescaler cell.
Modulus
Y
000000
000001
000010
011111
000011
000100
000101
000110
000111
001000
001001
001010
001011
001100
001101
001110
001111
010000
010001
010010
010011
MOTOROLA
4-12
Prescalers
[W:X] = 00
4
8
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
[W:X] = 01
8
16
24
32
40
48
56
64
72
80
88
96
104
112
120
128
136
144
152
160
168
[W:X] = 10
16
32
48
64
80
96
112
128
144
160
176
192
208
224
240
256
272
288
304
320
336
SYSTEM INTEGRATION MODULE
[W:X] = 11
32
64
96
128
160
192
224
256
288
320
352
384
416
448
480
512
544
576
608
640
672
MC68331
USER’S MANUAL
Table 4-7 Clock Control Multipliers (Continued)
To obtain clock frequency in kilohertz, find counter modulus in the left column, then multiply reference frequency by value
in appropriate prescaler cell.
Modulus
Y
010100
010101
010110
010111
011000
011001
011010
011011
011100
011101
011110
100000
100001
100010
100011
100100
100101
100110
100111
101000
101001
101010
101011
101100
101101
101110
101111
110000
110001
110010
110011
110100
110101
110110
110111
111000
111001
111010
111011
111100
111101
111110
111111
MC68331
USER’S MANUAL
Prescalers
[W:X] = 00
88
92
96
100
104
108
112
116
120
124
128
132
136
140
144
148
152
156
160
164
168
172
176
180
184
188
192
196
200
204
208
212
216
220
224
228
232
236
240
244
248
252
256
[W:X] = 01
176
184
192
200
208
216
224
232
240
248
256
264
272
280
288
296
304
312
320
328
336
344
352
360
368
376
384
392
400
408
416
424
432
440
448
456
464
472
480
488
496
504
512
[W:X] = 10
352
368
384
400
416
432
448
464
480
496
512
528
544
560
576
592
608
624
640
656
672
688
704
720
736
752
768
784
800
816
832
848
864
880
896
912
928
944
960
976
992
1008
1024
SYSTEM INTEGRATION MODULE
[W:X] = 11
704
736
768
800
832
864
896
928
960
992
1024
1056
1088
1120
1152
1184
1216
1248
1280
1312
1344
1376
1408
1440
1472
1504
1536
1568
1600
1632
1664
1696
1728
1760
1792
1824
1856
1888
1920
1952
1984
2016
2048
MOTOROLA
4-13
4
Table 4-8 System Frequencies from 32.768-kHz Reference
To obtain clock frequency in kilohertz, find counter modulus in the left column, then look in appropriate prescaler cell.
Shaded cells contain values that exceed specified maximum system frequency.
4
Modulus
Y
000000
000001
000010
000011
000100
000101
000110
000111
001000
001001
001010
001011
001100
001101
001110
001111
010000
010001
010010
010011
010100
010101
010110
010111
011000
011001
011010
011011
011100
011101
011110
011111
100000
100001
100010
100011
100100
100101
100110
100111
101000
101001
101010
101011
101100
MOTOROLA
4-14
Prescaler
[W:X] = 00
131
262
393
524
655
786
918
1049
1180
1311
1442
1573
1704
1835
1966
2097
2228
2359
2490
2621
2753
2884
3015
3146
3277
3408
3539
3670
3801
3932
4063
4194
4325
4456
4588
4719
4850
4981
5112
5243
5374
5505
5636
5767
5898
[W:X] = 01
262
524
786
1049
1311
1573
1835
2097
2359
2621
2884
3146
3408
3670
3932
4194
4456
4719
4981
5243
5505
5767
6029
6291
6554
6816
7078
7340
7602
7864
8126
8389
8651
8913
9175
9437
9699
9961
10224
10486
10748
11010
11272
11534
11796
[W:X] = 10
524
1049
1573
2097
2621
3146
3670
4194
4719
5243
5767
6291
6816
7340
7864
8389
8913
9437
9961
10486
11010
11534
12059
12583
13107
13631
14156
14680
15204
15729
16253
16777
17302
17826
18350
18874
19399
19923
20447
20972
21496
22020
22544
23069
23593
SYSTEM INTEGRATION MODULE
[W:X] = 11
1049
2097
3146
4194
5243
6291
7340
8389
9437
10486
11534
12583
13631
14680
15729
16777
17826
18874
19923
20972
22020
23069
24117
25166
26214
27263
28312
29360
30409
31457
32506
33554
34603
35652
36700
37749
38797
39846
40894
41943
42992
44040
45089
46137
47186
MC68331
USER’S MANUAL
Table 4-8 System Frequencies from 32.768-kHz Reference (Continued)
To obtain clock frequency in kilohertz, find counter modulus in the left column, then look in appropriate prescaler cell.
Shaded cells contain values that exceed specified maximum system frequency.
Modulus
Y
101101
101110
101111
110000
110001
110010
110011
110100
110101
110110
110111
111000
111001
111010
111011
111100
111101
111110
111111
Prescaler
[W:X] = 00
6029
6160
6291
6423
6554
6685
6816
6947
7078
7209
7340
7471
7602
7733
7864
7995
8126
8258
8389
[W:X] = 01
12059
12321
12583
12845
13107
13369
13631
13894
14156
14418
14680
14942
15204
15466
15729
15991
16253
16515
16777
[W:X] = 10
24117
24642
25166
25690
26214
26739
27263
27787
28312
28836
29360
2988
30409
30933
31457
31982
32506
33030
33554
[W:X] = 11
48234
49283
50332
51380
52428
53477
54526
55575
56623
57672
58720
59769
60817
61866
62915
63963
65011
66060
67109
4.3.3 External Bus Clock
The state of the external clock division bit (EDIV) in SYNCR determines clock rate for
the external bus clock signal (ECLK) available on pin ADDR23. ECLK is a bus clock
for MC6800 devices and peripherals. ECLK frequency can be set to system clock frequency divided by eight or system clock frequency divided by sixteen. The clock is enabled by the CS10 field in chip select pin assignment register 1 (CSPAR1). ECLK
operation during low-power stop is described in the following paragraph. Refer to 4.8
Chip Selects for more information about the external bus clock.
4.3.4 Low-Power Operation
Low-power operation is initiated by the CPU32. To reduce power consumption selectively, the CPU can set the STOP bits in each module configuration register. To minimize overall microcontroller power consumption, the CPU can execute the LPSTOP
instruction, which causes the SIM to turn off the system clock.
When individual module STOP bits are set, clock signals inside each module are
turned off, but module registers are still accessible.
When the CPU executes LPSTOP, a special CPU space bus cycle writes a copy of
the current interrupt mask into the clock control logic. The SIM brings the MCU out of
low-power operation when either an interrupt of higher priority than the stored mask or
a reset occurs. Refer to 4.5.4.2 LPSTOP Broadcast Cycle and SECTION 5 CENTRAL PROCESSING UNIT for more information.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-15
4
During a low-power stop, unless the system clock signal is supplied by an external
source and that source is removed, the SIM clock control logic and the SIM clock signal (SIMCLK) continue to operate. The periodic interrupt timer and input logic for the
RESET and IRQ pins are clocked by SIMCLK. The SIM can also continue to generate
the CLKOUT signal while in low-power mode.
The stop mode system integration module clock (STSIM) and stop mode external
clock (STEXT) bits in SYNCR determine clock operation during low-power stop. Table
4-9 is a summary of the effects of STSIM and STEXT. MODCLK value is the logic level
on the MODCLK pin during the last reset before LPSTOP execution. Any clock in the
off state is held low. If the synthesizer VCO is turned off during LPSTOP, there is a
PLL relock delay after the VCO is turned back on.
Table 4-9 Clock Control
4
Mode
LPSTOP
No
Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
Pins
MODCLK
EXTAL
0
External
Clock
0
External
Clock
0
External
Clock
0
External
Clock
0
External
Clock
1
Crystal or
Reference
1
Crystal or
Reference
1
Crystal or
Reference
1
Crystal or
Reference
1
Crystal or
Reference
SYNCR Bits
STSIM
STEXT
X
X
0
0
0
1
1
0
1
1
X
X
0
0
0
1
1
1
SIMCLK
External
Clock
External
Clock
External
Clock
External
Clock
External
Clock
VCO
Clock Status
CLKOUT
External
Clock
Off
ECLK
External
Clock
Off
External
Clock
Off
External
Clock
Off
External
Clock
VCO
External
Clock
VCO
Off
Off
Crystal/
Reference
Off
Off
0
Crystal or
Reference
Crystal or
Reference
VCO
1
VCO
VCO
VCO
Off
4.3.5 Loss of Reference Signal
The state of the reset enable (RSTEN) bit in SYNCR determines what happens when
clock logic detects a reference failure.
When RSTEN is cleared (default state out of reset), the clock synthesizer is forced
into an operating condition referred to as limp mode. Limp mode frequency varies
from device to device, but maximum limp frequency does not exceed one half maximum system clock when X = 0, or maximum system clock frequency when X = 1.
When RSTEN is set, the SIM resets the MCU.
The limp status bit (SLIMP) in SYNCR indicates whether the synthesizer has a reference signal. It is set when a reference failure is detected.
MOTOROLA
4-16
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.4 External Bus Interface
The external bus interface (EBI) transfers information between the internal MCU bus
and external devices. Figure 4-7 shows a basic system with external memory and peripherals.
1
FC
SIZ
CLKOUT
AS
DSACK
DS
CS3
CS5
IRQ
ADDR[23:0]
DATA[15:0]
ASYNC BUS
PERIPHERAL
SIZ
CLK
AS
DSACK
DS
CS
IACK
IRQ
2
ADDR[15:0]
DATA[15:0]
4
MEMORY
MCU
CSBOOT
R/W
ADDR[23:0]
DATA[15:8]
CS
R/W
2
MEMORY
ADDR[23:0]
DATA[7:0]
CS
R/W
1. Can be decoded to provide additional address space.
2. Varies depending upon peripheral memory size.
2
32 EXAMPLE SYS BLOCK
Figure 4-7 MCU Basic System
The external bus has 24 address lines and 16 data lines. The EBI provides dynamic
sizing between 8-bit and 16-bit data accesses. It supports byte, word, and long-word
transfers. Ports are accessed through the use of asynchronous cycles controlled by
the data transfer (SIZ1 and SIZ0) and data size acknowledge pins (DSACK1 and
DSACK0). Multiple bus cycles may be required for a transfer to or from an 8-bit port.
The maximum number of bits transferred during an access is referred to as port width.
Widths of eight and sixteen bits can be accessed by asynchronous bus cycles controlled by the data size (SIZ[1:0]) and the data and size acknowledge (DSACK[1:0])
signals. Multiple bus cycles may be required for a dynamically-sized transfer.
To add flexibility and minimize the necessity for external logic, MCU chip-select logic
can be synchronized with EBI transfers. Refer to 4.8 Chip Selects for more information.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-17
4.4.1 Bus Signals
The address bus provides addressing information to external devices. The data bus
transfers 8-bit and 16-bit data between the MCU and external devices. Strobe signals,
one for the address bus and another for the data bus, indicate the validity of an address and provide timing information for data.
Control signals indicate the beginning of each bus cycle, the address space it is to take
place in, the size of the transfer, and the type of cycle. External devices decode these
signals and respond to transfer data and terminate the bus cycle. The EBI operates in
an asynchronous mode for any port width.
4.4.1.1 Address Bus
Bus signals ADDR[23:0] define the address of the byte (or the most significant byte)
to be transferred during a bus cycle. The MCU places the address on the bus at the
beginning of a bus cycle. The address is valid while AS is asserted.
4
4.4.1.2 Address Strobe
Address strobe AS is a timing signal that indicates the validity of an address on the
address bus and of many control signals. It is asserted one-half clock after the beginning of a bus cycle.
4.4.1.3 Data Bus
Signals DATA[15:0 form a bidirectional, nonmultiplexed parallel bus that transfers data
to or from the MCU. A read or write operation can transfer eight or sixteen bits of data
in one bus cycle. During a read cycle, the data is latched by the MCU on the last falling
edge of the clock for that bus cycle. For a write cycle, all 16 bits of the data bus are
driven, regardless of the port width or operand size. The MCU places the data on the
data bus one-half clock cycle after AS is asserted in a write cycle.
4.4.1.4 Data Strobe
Data strobe (DS) is a timing signal. For a read cycle, the MCU asserts DS to signal an
external device to place data on the bus. DS is asserted at the same time as AS during
a read cycle. For a write cycle, DS signals an external device that data on the bus is
valid. The MCU asserts DS one full clock cycle after the assertion of AS during a write
cycle.
4.4.1.5 Read/Write Signal
The read/write signal (R/W determines the direction of the transfer during a bus cycle.
This signal changes state, when required, at the beginning of a bus cycle, and is valid
while AS is asserted. R/W only transitions when a write cycle is preceded by a read
cycle or vice versa. The signal may remain low for two consecutive write cycles.
4.4.1.6 Size Signals
Size signals (SIZ[1:0]) indicate the number of bytes remaining to be transferred during
an operand cycle. They are valid while the address strobe (AS) is asserted. Table 410 shows SIZ0 and SIZ1 encoding.
MOTOROLA
4-18
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
Table 4-10 Size Signal Encoding
SIZ1
0
1
1
0
SIZ0
1
0
1
0
Transfer Size
Byte
Word
3 Byte
Long Word
4.4.1.7 Function Codes
The CPU generates function code output signals FC[2:0] to indicate the type of activity
occurring on the data or address bus. These signals can be considered address extensions that can be externally decoded to determine which of eight external address
spaces is accessed during a bus cycle.
Address space 7 is designated CPU space. CPU space is used for control information
not normally associated with read or write bus cycles. Function codes are valid while
AS is asserted.
Table 4-11 shows address space encoding.
Table 4-11 Address Space Encoding
FC2
0
0
0
0
1
1
1
1
FC1
0
0
1
1
0
0
1
1
FC0
0
1
0
1
0
1
0
1
Address Space
Reserved
User Data Space
User Program Space
Reserved
Reserved
Supervisor Data Space
Supervisor Program Space
CPU Space
The supervisor bit in the status register determines whether the CPU is operating in
supervisor or user mode. Addressing mode and the instruction being executed determine whether a memory access is to program or data space.
4.4.1.8 Data and Size Acknowledge Signals
During normal bus transfers, external devices assert the data and size acknowledge
signals (DSACK[1:0]) to indicate port width to the MCU. During a read cycle, these signals tell the MCU to terminate the bus cycle and to latch data. During a write cycle, the
signals indicate that an external device has successfully stored data and that the cycle
can terminate. DSACK[1:0] can also be supplied internally by chip-select logic. Refer
to 4.8 Chip Selects for more information.
4.4.1.9 Bus Error Signal
The bus error signal BERR is asserted when a bus cycle is not properly terminated by
DSACK or AVEC assertion. BERR can also be asserted at the same time as DSACK,
provided the appropriate timing requirements are met. Refer to 4.5.5 Bus Exception
Control Cycles for more information.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-19
4
The internal bus monitor can generate the BERR signal for internal and internal-to-external transfers. An external bus master must provide its own BERR generation and
drive the BERR pin, because the internal BERR monitor has no information about
transfers initiated by an external bus master. Refer to 4.5.6 External Bus Arbitration
for more information.
4
4.4.1.10 Halt Signal
The halt signal (HALT) can be asserted by an external device for debugging purposes
to cause single bus cycle operation or (in combination with BERR) a retry of a bus cycle in error. The HALT signal affects external bus cycles only, so a program not requiring the use of external bus may continue executing, unaffected by the HALT signal.
When the MCU completes a bus cycle with the HALT signal asserted, DATA[15:0] is
placed in the high-impedance state, and bus control signals are driven inactive; the address, function code, size, and read/write signals remain in the same state. If HALT is
still asserted once bus mastership is returned to the MCU, the address, function code,
size, and read/write signals are again driven to their previous states. The MCU does
not service interrupt requests while it is halted. Refer to 4.5.5 Bus Exception Control
Cycles for further information.
4.4.1.11 Autovector Signal
The autovector signal AVEC can be used to terminate external interrupt acknowledge
cycles. Assertion of AVEC causes the CPU32 to generate vector numbers to locate an
interrupt handler routine. If it is continuously asserted, autovectors are generated for
all external interrupt requests. AVEC is ignored during all other bus cycles. Refer to
4.7 Interrupts for more information. AVEC for external interrupt requests can also be
supplied internally by chip-select logic. Refer to 4.8 Chip Selects for more information.
The autovector function is disabled when there is an external bus master. Refer to
4.5.6 External Bus Arbitration for more information.
4.4.2 Dynamic Bus Sizing
The MCU dynamically interprets the port size of an addressed device during each bus
cycle, allowing operand transfers to or from 8-bit and 16-bit ports.
During an operand transfer cycle, an external device signals its port size and indicates
completion of the bus cycle to the MCU through the use of the DSACK inputs, as
shown in Table 4-12. Chip-select logic can generate data and size acknowledge signals for an external device. Refer to 4.8 Chip Selects for further information.
Table 4-12 Effect of DSACK Signals
DSACK1
1
1
0
0
DSACK0
1
0
1
0
Result
Insert Wait States in Current Bus Cycle
Complete Cycle — Data Bus Port Size is 8 Bits
Complete Cycle — Data Bus Port Size is 16 Bits
Reserved
If the CPU is executing an instruction that reads a long-word operand from a 16-bit
port, the MCU latches the 16 bits of valid data and then runs another bus cycle to obMOTOROLA
4-20
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
tain the other 16 bits. The operation for an 8-bit port is similar, but requires four read
cycles. The addressed device uses the DSACK signals to indicate the port width. For
instance, a 16-bit device always returns DSACK for a 16-bit port (regardless of whether the bus cycle is a byte or word operation).
Dynamic bus sizing requires that the portion of the data bus used for a transfer to or
from a particular port size be fixed. A 16-bit port must reside on data bus bits [15:0],
and an 8-bit port must reside on data bus bits [15:8]. This minimizes the number of bus
cycles needed to transfer data and ensures that the MCU transfers valid data.
The MCU always attempts to transfer the maximum amount of data on all bus cycles.
For a word operation, it is assumed that the port is 16 bits wide when the bus cycle
begins.
Operand bytes are designated as shown in Figure 4-8. OP[0:3] represent the order of
access. For instance, OP0 is the most significant byte of a long-word operand, and is
accessed first, while OP3, the least significant byte, is accessed last. The two bytes of
a word-length operand are OP0 (most significant) and OP1. The single byte of a bytelength operand is OP0.
Operand
31
Long Word
Three Byte
Word
Byte
24 23
OP0
Byte Order
16 15
OP1
OP2
OP0
OP1
OP0
8 7
0
OP3
OP2
OP1
OP0
Figure 4-8 Operand Byte Order
4.4.3 Operand Alignment
The EBI data multiplexer establishes the necessary connections for different combinations of address and data sizes. The multiplexer takes the two bytes of the 16-bit
bus and routes them to their required positions. Positioning of bytes is determined by
the size and address outputs. SIZ1 and SIZ0 indicate the remaining number of bytes
to be transferred during the current bus cycle. The number of bytes transferred is equal
to or less than the size indicated by SIZ1 and SIZ0, depending on port width.
ADDR0 also affects the operation of the data multiplexer. During an operand transfer,
ADDR[23:1] indicate the word base address of the portion of the operand to be accessed, and ADDR0 indicates the byte offset from the base.
4.4.4 Misaligned Operands
CPU32 architecture uses a basic operand size of 16 bits. An operand is misaligned
when it overlaps a word boundary. This is determined by the value of ADDR0. When
ADDR0 = 0 (an even address), the address is on a word and byte boundary. When
ADDR0 = 1 (an odd address), the address is on a byte boundary only. A byte operand
is aligned at any address; a word or long-word operand is misaligned at an odd address.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-21
4
The largest amount of data that can be transferred by a single bus cycle is an aligned
word. If the MCU transfers a long-word operand through a 16-bit port, the most significant operand word is transferred on the first bus cycle and the least significant operand word is transferred on a following bus cycle.
4.4.5 Operand Transfer Cases
Table 4-13 is a summary of how operands are aligned for various types of transfers.
OPn entries are portions of a requested operand that are read or written during a bus
cycle and are defined by SIZ1, SIZ0, and ADDR0 for that bus cycle. The following
paragraphs discuss all the allowable transfer cases in detail.
Table 4-13 Operand Transfer Cases
Num
4
1
2
3
4
5
6
7
8
9
10
11
12
13
Read Cycles
SIZ ADDR0 DSACK DATA DATA
[1:0]
[15:8]
[7:0]
[1:0]
Byte to 8-Bit Port (Even/Odd)
01
X
10
OP0
—
Byte to 16-Bit Port (Even)
01
0
01
OP0
—
Byte to 16-Bit Port (Odd)
01
1
01
—
OP0
Word to 8-Bit Port (Aligned)
10
0
10
OP0
—
Word to 8-Bit Port (Misaligned)1
10
1
10
OP0
—
Word to 16-Bit Port (Aligned)
10
0
11
OP0
OP1
Word to 16-Bit Port (Misaligned)1
10
1
01
—
OP0
Long Word to 8-Bit Port (Aligned)
00
0
10
OP0
—
Long Word to 8-Bit Port (Misaligned)1
10
1
10
OP0
—
Long Word to 16-Bit Port (Aligned)
00
0
01
OP0
OP1
Long Word to 16-Bit Port (Misaligned)1 10
1
01
—
OP0
3 Byte to 8-Bit Port (Aligned)2
11
0
10
OP0
—
3 Byte to 8-Bit Port (Misaligned)2
11
1
10
OP0
—
Transfer Case
Write Cycles
DATA DATA
[15:8]
[7:0]
OP0
(OP0)
OP0
(OP0)
(OP0)
OP0
OP0
(OP1)
OP0
(OP0)
OP0
OP1
(OP0)
OP0
OP0
(OP1)
OP0
(OP0)
OP0
OP1
(OP0)
OP0
OP0
(OP1)
OP0
(OP0)
Next
Cycle
—
—
—
1
1
—
2
13
12
6
2
5
4
1. The CPU32 does not support misaligned transfers.
2. Three-byte transfer cases occur only as a result of a long word to byte transfer.
4.5 Bus Operation
Internal microcontroller modules are typically accessed in two system clock cycles,
with no wait states. Regular external bus cycles use handshaking between the MCU
and external peripherals to manage transfer size and data. These accesses take three
system clock cycles, again with no wait states. During regular cycles, wait states can
be inserted as needed by bus control logic. Refer to 4.5.2 Regular Bus Cycles for
more information.
Fast-termination cycles, which are two-cycle external accesses with no wait states,
use chip-select logic to generate handshaking signals internally. Chip-select logic can
also be used to insert wait states before internal generation of handshaking signals.
Refer to 4.5.3 Fast Termination Cycles and 4.8 Chip Selects for more information.
Bus control signal timing, as well as chip-select signal timing, are specified in APPENDIX A ELECTRICAL CHARACTERISTICS. Refer to the SIM Reference Manual (SIMRM/AD) for more information about each type of bus cycle.
The MCU is responsible for de-skewing signals it issues at both the start and the end
of a cycle. In addition, the MCU is responsible for de-skewing acknowledge and data
signals from peripheral devices.
MOTOROLA
4-22
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.5.1 Synchronization to CLKOUT
External devices connected to the MCU bus can operate at a clock frequency different
from the frequencies of the MCU as long as the external devices satisfy the interface
signal timing constraints. Although bus cycles are classified as asynchronous, they are
interpreted relative to the MCU system clock output (CLKOUT).
Descriptions are made in terms of individual system clock states, labeled {S0, S1,
S2,..., SN}. The designation “state” refers to the logic level of the clock signal, and
does not correspond to any implemented machine state. A clock cycle consists of two
successive states. Refer to APPENDIX A ELECTRICAL CHARACTERISTICS for
more information.
Bus cycles terminated by DSACK assertion normally require a minimum of three CLKOUT cycles. To support systems that use CLKOUT to generate DSACK and other inputs, asynchronous input setup time and asynchronous input hold times are specified.
When these specifications are met, the MCU is guaranteed to recognize the appropriate signal on a specific edge of the CLKOUT signal.
For a read cycle, when assertion of DSACK is recognized on a particular falling edge
of the clock, valid data is latched into the MCU on the next falling clock edge, provided
that the data meets the data setup time. In this case, the parameter for asynchronous
operation can be ignored.
When a system asserts DSACK for the required window around the falling edge of S2
and obeys the bus protocol by maintaining DSACK and BERR or HALT until and
throughout the clock edge that negates AS, no wait states are inserted. The bus cycle
runs at the maximum speed of three clocks per cycle.
To ensure proper operation in a system synchronized to CLKOUT when either BERR,
or BERR and HALT is asserted after DSACK, BERR (or BERR and HALT) assertion
must satisfy the appropriate data-in setup and hold times before the falling edge of the
clock cycle after DSACK is recognized.
4.5.2 Regular Bus Cycles
The following paragraphs contain a discussion of cycles that use external bus control
logic. Refer to 4.5.3 Fast Termination Cycles for information about fast cycles.
To initiate a transfer, the MCU asserts an address and the SIZ[1:0] signals. The SIZ
signals and ADDR0 are externally decoded to select the active portion of the data bus
(refer to 4.4.2 Dynamic Bus Sizing). When AS, DS, and R/W are valid, a peripheral
device either places data on the bus (read cycle) or latches data from the bus (write
cycle), then asserts a DSACK[1:0] combination that indicates port size.
The DSACK[1:0] signals can be asserted before the data from a peripheral device is
valid on a read cycle. To ensure valid data is latched into the MCU, a maximum period
between DSACK assertion and DS assertion is specified.
There is no specified maximum for the period between the assertion of AS and
DSACK. Although the MCU can transfer data in a minimum of three clock cycles when
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-23
4
the cycle is terminated with DSACK, the MCU inserts wait cycles in clock period increments until either DSACK signal goes low.
NOTE
The SIM bus monitor asserts BERR when response time exceeds a
predetermined limit. Bus monitor period is determined by the BMT
field in SYPCR. The bus monitor cannot be disabled; maximum monitor period is 64 system clock cycles.
If no peripheral responds to an access, or if an access is invalid, external logic should
assert the BERR or HALT signals to abort the bus cycle (when BERR and HALT are
asserted simultaneously, the CPU32 acts as though only BERR is asserted). If bus termination signals are not asserted within a specified period, the bus monitor terminates
the cycle.
4
4.5.2.1 Read Cycle
During a read cycle, the MCU transfers data from an external memory or peripheral
device. If the instruction specifies a long-word or word operation, the MCU attempts to
read two bytes at once. For a byte operation, the MCU reads one byte. The portion of
the data bus from which each byte is read depends on operand size, peripheral address, and peripheral port size. Figure 4-9 is a flowchart of a word read cycle. Refer
to 4.4.2 Dynamic Bus Sizing, 4.4.4 Misaligned Operands, and the SIM Reference
Manual (SIMRM/AD) for more information.
MCU
PERIPHERAL
ADDRESS DEVICE (S0)
1) SET R/W TO READ
2) DRIVE ADDRESS ON ADDR[23:0]
3) DRIVE FUNCTION CODE ON FC[2:0]
4) DRIVE SIZ[1:0] FOR OPERAND SIZE
ASSERT AS AND DS (S1)
DECODE DSACK (S3)
PRESENT DATA (S2)
1) DECODE ADDR, R/W, SIZ[1:0], DS
2) PLACE DATA ON DATA[15:0] OR
DATA[15:8] IF 8-BIT DATA
3) DRIVE DSACK SIGNALS
LATCH DATA (S4)
NEGATE AS AND DS (S5)
START NEXT CYCLE (S0)
TERMINATE CYCLE (S5)
1) REMOVE DATA FROM DATA BUS
2) NEGATE DSACK
RD CYC FLOW
Figure 4-9 Word Read Cycle Flowchart
MOTOROLA
4-24
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.5.2.2 Write Cycle
During a write cycle, the MCU transfers data to an external memory or peripheral device. If the instruction specifies a long-word or word operation, the MCU attempts to
write two bytes at once. For a byte operation, the MCU writes one byte. The portion of
the data bus upon which each byte is written depends on operand size, peripheral address, and peripheral port size.
Refer to 4.4.2 Dynamic Bus Sizing and 4.4.4 Misaligned Operands for more information. Figure 4-10 is a flowchart of a write-cycle operation for a word transfer. Refer
to the SIM Reference Manual (SIMRM/AD) for more information.
MCU
PERIPHERAL
ADDRESS DEVICE (S0)
1) SET R/W TO WRITE
2) DRIVE ADDRESS ON ADDR[23:0]
3) DRIVE FUNCTION CODE ON FC[2:0]
4) DRIVE SIZ[1:0] FOR OPERAND SIZE
4
ASSERT AS (S1)
PLACE DATA ON DATA[15:0] (S2)
ASSERT DS AND WAIT FOR DSACK (S3)
OPTIONAL STATE (S4)
ACCEPT DATA (S2 + S3)
1) DECODE ADDRESS
2) LATCH DATA FROM DATA BUS
3) ASSERT DSACK SIGNALS
NO CHANGE
TERMINATE OUTPUT TRANSFER (S5)
1) NEGATE DS AND AS
2) REMOVE DATA FROM DATA BUS
TERMINATE CYCLE
1) NEGATE DSACK
START NEXT CYCLE
WR CYC FLOW
Figure 4-10 Write Cycle Flowchart
4.5.3 Fast Termination Cycles
When an external device has a fast access time, the chip-select circuit fast-termination
option can provide a two-cycle external bus transfer. Because the chip-select circuits
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-25
are driven from the system clock, the bus cycle termination is inherently synchronized
with the system clock.
If multiple chip selects are to be used to select the same device that can support fast
termination, and match conditions can occur simultaneously, program the DSACK
field in each associated chip-select option register for fast termination. Alternately, program one DSACK field for fast termination and the remaining DSACK fields for external termination.
Fast termination cycles use internal handshaking signals generated by the chip-select
logic. To initiate a transfer, the MCU asserts an address and the SIZ[1:0] signals.
When AS, DS, and R/W are valid, a peripheral device either places data on the bus
(read cycle) or latches data from the bus (write cycle). At the appropriate time, chipselect logic asserts data and size acknowledge signals.
4
The DSACK option fields in the chip-select option registers determine whether internally generated DSACK or externally generated DSACK are used. For fast termination
cycles, the F-term encoding (%1110) must be used. Refer to 4.8.1 Chip-Select Registers for information about fast-termination setup.
To use fast-termination, an external device must be fast enough to have data ready,
within the specified setup time, by the falling edge of S4. Refer to APPENDIX A ELECTRICAL CHARACTERISTICS for tabular information about fast termination timing.
When fast termination is in use, DS is asserted during read cycles but not during write
cycles. The STRB field in the chip-select option register used must be programmed
with the address strobe encoding to assert the chip select signal for a fast-termination
write.
4.5.4 CPU Space Cycles
Function code signals FC[2:0] designate which of eight external address spaces is accessed during a bus cycle. Address space 7 is designated CPU space. CPU space is
used for control information not normally associated with read or write bus cycles.
Function codes are valid only while AS is asserted. Refer to 4.4.1.7 Function Codes
for more information on codes and encoding.
During a CPU space access, ADDR[19:16] are encoded to reflect the type of access
being made. Figure 4-11 shows the three encodings used by 68300 family microcontrollers. These encodings represent breakpoint acknowledge (Type $0) cycles low
power stop broadcast (Type $3) cycles, and interrupt acknowledge (Type $F) cycles.
Refer to 4.7 Interrupts for information about interrupt acknowledge bus cycles.
MOTOROLA
4-26
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
CPU SPACE CYCLES
FUNCTION
CODE
2
0
BREAKPOINT
ACKNOWLEDGE
LOW POWER
STOP BROADCAST
INTERRUPT
ACKNOWLEDGE
ADDRESS BUS
23
19
16
4
2 1 0
1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BKPT# T 0
2
23
0
19
16
0
1 1 1
0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
2
23
0
1 1 1
19
16
0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 LEVEL 1
CPU SPACE
TYPE FIELD
CPU SPACE CYC TIM
Figure 4-11 CPU Space Address Encoding
4.5.4.1 Breakpoint Acknowledge Cycle
Breakpoints stop program execution at a predefined point during system development.
Breakpoints can be used alone or in conjunction with the background debugging
mode. The following paragraphs discuss breakpoint processing when background debugging mode is not enabled. See SECTION 5 CENTRAL PROCESSING UNIT for
more information on exception processing and the background debugging mode.
In M68300 microcontrollers, both hardware and software can initiate breakpoints.
4.5.4.1.1 Software Breakpoints
The CPU32 BKPT instruction allows the user to insert breakpoints through software.
The CPU responds to this instruction by initiating a breakpoint-acknowledge read cycle in CPU space. It places the breakpoint acknowledge (%0000) code on ADDR[19:16], the breakpoint number (bits [2:0] of the BKPT opcode) in ADDR[4:2], and
%0 (indicating a software breakpoint) on ADDR1.
The external breakpoint circuitry decodes the function code and address lines and responds by either asserting BERR or placing an instruction word on the data bus and
asserting DSACK.
If the bus cycle is terminated by DSACK, the CPU32 reads the instruction on the data
bus and inserts the instruction into the pipeline. (For 8-bit ports, this instruction fetch
may require two read cycles.)
If the bus cycle is terminated by BERR, the CPU32 then performs illegal-instruction
exception processing: it acquires the number of the illegal-instruction exception vector,
computes the vector address from this number, loads the content of the vector address
into the PC, and jumps to the exception handler routine at that address.
4.5.4.1.2 Hardware Breakpoints
Assertion of the BKPT input initiates a hardware breakpoint. The CPU responds by initiating a breakpoint-acknowledge read cycle in CPU space. It places $00001E on the
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-27
4
address bus. (The breakpoint acknowledge code of %0000 is placed on ADDR[19:16],
the breakpoint number value of %111 is placed on ADDR[4:2], and ADDR1 is set to 1,
indicating a hardware breakpoint.)
The external breakpoint circuitry decodes the function code and address lines, places
an instruction word on the data bus, and asserts BERR. The CPU then performs hardware breakpoint exception processing: it acquires the number of the hardware breakpoint exception vector, computes the vector address from this number, loads the
content of the vector address into the PC, and jumps to the exception handler routine
at that address. If the external device asserts DSACK rather than BERR, the CPU ignores the breakpoint and continues processing.
4
When BKPT assertion is synchronized with an instruction prefetch, processing of the
breakpoint exception occurs at the end of that instruction. The prefetched instruction
is “tagged” with the breakpoint when it enters the instruction pipeline, and the breakpoint exception occurs after the instruction executes. If the pipeline is flushed before
the tagged instruction is executed, no breakpoint occurs. When BKPT assertion is synchronized with an operand fetch, exception processing occurs at the end of the instruction during which BKPT is latched.
Refer to the CPU32 Reference Manual (CPU32RM/AD) and the SIM Reference Manual (SIMRM/AD) for additional information.
MOTOROLA
4-28
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
BREAKPOINT OPERATION FLOW
CPU32
PERIPHERAL
ACKNOWLEDGE BREAKPOINT
IF BREAKPOINT INSTRUCTION EXECUTED:
1) SET R/W TO READ
2) SET FUNCTION CODE TO CPU SPACE
3) PLACE CPU SPACE TYPE 0 ON ADDR[19:16]
4) PLACE BREAKPOINT NUMBER ON ADDR[4:2]
5) CLEAR T-BIT (ADDR1) TO ZERO
6) SET SIZE TO WORD
7) ASSERT AS AND DS
IF BKPT PIN ASSERTED:
1) SET R/W TO READ
2) SET FUNCTION CODE TO CPU SPACE
3) PLACE CPU SPACE TYPE 0 ON ADDR[19:16]
4) PLACE ALL ONES ON ADDR[4:2]
5) SET T-BIT (ADDR1) TO ONE
6) SET SIZE TO WORD
7) ASSERT AS AND DS
IF BREAKPOINT INSTRUCTION EXECUTED AND
DSACK IS ASSERTED:
1) LATCH DATA
2) NEGATE AS AND DS
3) GO TO (A)
IF BKPT INSTRUCTION EXECUTED:
1) PLACE REPLACEMENT OPCODE ON DATA BUS
2) ASSERT DSACK
OR:
1) ASSERT BERR TO INITIATE EXCEPTION PROCESSING
IF BKPT ASSERTED:
1) ASSERT DSACK
OR:
1) ASSERT BERR TO INITIATE EXCEPTION PROCESSING
IF BKPT PIN ASSERTED AND
DSACK IS ASSERTED:
1) NEGATE AS AND DS
2) GO TO (A)
IF BERR ASSERTED:
1) NEGATE AS AND DS
2) GO TO (B)
(A)
(B)
IF BKPT INSTRUCTION EXECUTED:
1) PLACE LATCHED DATA IN INSTRUCTION PIPELINE
2) CONTINUE PROCESSING
1) NEGATE DSACK OR BERR
IF BKPT PIN ASSERTED:
1) CONTINUE PROCESSING
IF BKPT INSTRUCTION EXECUTED:
1) INITIATE ILLEGAL INSTRUCTION PROCESSING
IF BKPT PIN ASSERTED:
1) INITIATE HARDWARE BREAKPOINT PROCESSING
1110A
Figure 4-12 Breakpoint Operation Flowchart
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-29
4
4.5.4.2 LPSTOP Broadcast Cycle
the STOP bits in each module configuration register or the SIM can turn off system
clocks after execution of the LPSTOP instruction. When the CPU executes LPSTOP,
the LPSTOP broadcast cycle is generated. The SIM brings the MCU out of low-power
mode when either an interrupt of higher priority than the stored mask or a reset occurs.
Refer to 4.3.4 Low-Power Operation and SECTION 5 CENTRAL PROCESSING
UNIT for more information.
During an LPSTOP broadcast cycle, the CPU performs a CPU space write to address
$3FFFE. This write puts a copy of the interrupt mask value in the clock control logic.
The mask is encoded on the data bus as shown in Figure 4-13. The LPSTOP CPU
space cycle is shown externally (if the bus is available) as an indication to external devices that the MCU is going into low-power stop mode. The SIM provides an internally
generated DSACK response to this cycle. The timing of this bus cycle is the same as
for a fast write cycle.
4
15
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
IP MASK
Figure 4-13 LPSTOP Interrupt Mask Level
4.5.5 Bus Exception Control Cycles
An external device or a chip-select circuit must assert at least one of the DSACK[1:0]
signals or the AVEC signal to terminate a bus cycle normally. Bus error processing occurs when bus cycles are not terminated in the expected manner. The internal bus
monitor can be used to generate BERR internally, causing a bus error exception to be
taken. Bus cycles can also be terminated by assertion of the external BERR or HALT
signal, or by assertion of the two signals simultaneously.
Acceptable bus cycle termination sequences are summarized as follows. The case
numbers refer to Table 4-14, which indicates the results of each type of bus cycle termination.
Normal Termination
DSACK is asserted; BERR and HALT remain negated (case 1).
Halt Termination
HALT is asserted at the same time or before DSACK, and BERR remains negated
(case 2).
Bus Error Termination
BERR is asserted in lieu of, at the same time as, or before DSACK (case 3), or after
DSACK (case 4), and HALT remains negated; BERR is negated at the same time
or after DSACK.
MOTOROLA
4-30
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
Retry Termination
HALT and BERR are asserted in lieu of, at the same time as, or before DSACK
(case 5) or after DSACK (case 6); BERR is negated at the same time or after
DSACK; HALT may be negated at the same time or after BERR.
Table 4-14 shows various combinations of control signal sequences and the resulting
bus cycle terminations.
Table 4-14 DSACK, BERR, and HALT Assertion Results
Case
Number
Control
Signal
1
DSACK
BERR
HALT
DSACKBERR
HALT
DSACKBERR
HALT
DSACKBERR
HALT
DSACKBERR
HALT
DSACKBERR
HALT
2
3
4
5
6
NOTES:
N
=
A
=
NA =
X
=
S
=
Asserted on
Rising Edge
of State
N
N+2
A
S
NA
NA
NA
X
A
S
NA
NA
A/S
S
NA/A
X
A
S
NA
X
A
X
A
S
NA
NA
NA/A
X
A
S
A/S
S
A
X
NA
A
NA
A
Result
Normal termination.
Halt termination: normal cycle terminate and halt.
Continue when HALT is negated.
Bus error termination: terminate and take bus error
exception, possibly deferred.
Bus error termination: terminate and take bus error
exception, possibly deferred.
Retry termination: terminate and retry when HALT is
negated.
Retry termination: terminate and retry when HALT is
negated.
The number of current even bus state (S2, S4, etc.).
Signal is asserted in this bus state.
Signal is not asserted in this state.
Don't care.
Signal was asserted in previous state and remains asserted in this state.
To properly control termination of a bus cycle for a retry or a bus error condition,
DSACK, BERR, and HALT must be asserted and negated with the rising edge of the
MCU clock. This ensures that when two signals are asserted simultaneously, the required setup time and hold time for both of them are met for the same falling edge of
the MCU clock. (Refer to APPENDIX A ELECTRICAL CHARACTERISTICS for timing
requirements.) External circuitry that provides these signals must be designed with
these constraints in mind, or else the internal bus monitor must be used.
DSACK, BERR, and HALT may be negated after AS is negated.
WARNING
If DSACK or BERR remain asserted into S2 of the next bus cycle,
that cycle may be terminated prematurely.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-31
4
4.5.5.1 Bus Errors
The CPU32 treats bus errors as a type of exception. Bus error exception processing
begins when the CPU detects assertion of the IMB BERR signal (by the internal bus
monitor or an external source) while the HALT signal remains negated.
BERR assertions do not force immediate exception processing. The signal is synchronized with normal bus cycles and is latched into the CPU32 at the end of the bus cycle
in which it was asserted. Because bus cycles can overlap instruction boundaries, bus
error exception processing may not occur at the end of the instruction in which the bus
cycle begins. Timing of BERR detection/acknowledge is dependent upon several factors:
4
• Which bus cycle of an instruction is terminated by assertion of BERR.
• The number of bus cycles in the instruction during which BERR is asserted.
• The number of bus cycles in the instruction following the instruction in which
BERR is asserted.
• Whether BERR is asserted during a program space access or a data space access.
Because of these factors, it is impossible to predict precisely how long after occurrence of a bus error the bus error exception is processed.
CAUTION
The external bus interface does not latch data when an external bus
cycle is terminated by a bus error. When this occurs during an instruction prefetch, the IMB precharge state (bus pulled high, or $FF)
is latched into the CPU32 instruction register, with indeterminate results.
4.5.5.2 Double Bus Faults
Exception processing for bus error exceptions follows the standard exception processing sequence. Refer to SECTION 5 CENTRAL PROCESSING UNIT for more information about exceptions. However, a special case of bus error, called double bus fault,
can abort exception processing.
BERR assertion is not detected until an instruction is complete. The BERR latch is
cleared by the first instruction of the BERR exception handler. Double bus fault occurs
in two ways:
1. When bus error exception processing begins and a second BERR is detected
before the first instruction of the first exception handler is executed.
2. When one or more bus errors occur before the first instruction after a RESET
exception is executed.
3. A bus error occurs while the CPU32 is loading information from a bus error
stack frame during a return from exception (RTE) instruction.
Multiple bus errors within a single instruction that can generate multiple bus cycles
cause a single bus error exception after the instruction has been executed.
MOTOROLA
4-32
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
Immediately after assertion of a second BERR, the MCU halts and drives the HALT
line low. Only a reset can restart a halted MCU. However, bus arbitration can still occur
(refer to 4.5.6 External Bus Arbitration). A bus error or address error that occurs after
exception processing has been completed (during the execution of the exception handler routine, or later) does not cause a double bus fault. The MCU continues to retry
the same bus cycle as long as the external hardware requests it.
4.5.5.3 Retry Operation
BERR and HALT during a bus cycle, the MCU enters the retry sequence. A delayed
retry can also occur. The MCU terminates the bus cycle, places the AS and DS signals
in their inactive state, and does not begin another bus cycle until the BERR and HALT
signals are negated by external logic. After a synchronization delay, the MCU retries
the previous cycle using the same address, function codes, data (for a write), and control signals. The BERR signal should be negated before S2 of the read cycle to ensure
correct operation of the retried cycle.
If BR, BERR, and HALT are all asserted on the same cycle, the EBI will enter the rerun
sequence but first relinquishes the bus to an external master. Once the external master returns the bus and negates BERR and HALT, the EBI runs the previous bus cycle.
This feature allows an external device to correct the problem that caused the bus error
and then try the bus cycle again.
The MCU retries any read or write cycle of an indivisible read-modify-write operation
separately; RMC remains asserted during the entire retry sequence. The MCU will not
relinquish the bus while RMC is asserted. Any device that requires the MCU to give up
the bus and retry a bus cycle during a read-modify-write cycle must assert BERR and
BR only (HALT must remain negated). The bus error handler software should examine
the read-modify-write bit in the special status word and take the appropriate action to
resolve this type of fault when it occurs.
4.5.5.4 Halt Operation
When HALT is asserted while BERR is not asserted, the MCU halts external bus activity after negation of DSACK. The MCU may complete the current word transfer in
progress. For a long-word to byte transfer, this could be after S2 or S4. For a word to
byte transfer, activity ceases after S2.
Negating and reasserting HALT according to timing requirements provides single-step
(bus cycle to bus cycle) operation. The HALT signal affects external bus cycles only,
so that a program that does not use external bus can continue executing. During dynamically-sized 8-bit transfers, external bus activity may not stop at the next cycle
boundary. Occurrence of a bus error while HALT is asserted causes the CPU32 to initiate a retry sequence.
When the MCU completes a bus cycle while the HALT signal is asserted, the data bus
goes to high-impedance state and the AS and DS signals are driven to their inactive
states. Address, function code, size, and read/write signals remain in the same state.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-33
4
The halt operation has no effect on bus arbitration (refer to 4.5.6 External Bus Arbitration). However, when external bus arbitration occurs while the MCU is halted, address and control signals go to high-impedance state. If HALT is still asserted when
the MCU regains control of the bus, address, function code, size, and read/write signals revert to the previous driven states. The MCU cannot service interrupt requests
while halted.
4.5.6 External Bus Arbitration
MCU bus design provides for a single bus master at any one time. Either the MCU or
an external device can be master. Bus arbitration protocols determine when an external device can become bus master. Bus arbitration requests are recognized during
normal processing, HALT assertion, and when the CPU has halted due to a double
bus fault.
4
The bus controller in the MCU manages bus arbitration signals so that the MCU has
the lowest priority. External devices that need to obtain the bus must assert bus arbitration signals in the sequences described in the following paragraphs.
Systems that include several devices that can become bus master require external circuitry to assign priorities to the devices, so that when two or more external devices attempt to become bus master at the same time, the one having the highest priority
becomes bus master first. The protocol sequence is:
1. An external device asserts bus request signal (BR);
2. The MCU asserts the bus grant signal (BG) to indicate that the bus is available;
3. An external device asserts the bus grant acknowledge (BGACK) signal to indicate that it has assumed bus mastership.
BR can be asserted during a bus cycle or between cycles. BG is asserted in response
to BR. To guarantee operand coherency, BG is only asserted at the end of operand
transfer. Additionally, BG is not asserted until the end of an indivisible read-modifywrite operation (when RMC is negated).
If more than one external device can be bus master, required external arbitration must
begin when a requesting device receives BG. An external device must assert BGACK
when it assumes mastership, and must maintain BGACK assertion as long as it is bus
master.
Two conditions must be met for an external device to assume bus mastership. The device must receive BG through the arbitration process, and BGACK must be inactive,
indicating that no other bus master is active. This technique allows the processing of
bus requests during data transfer cycles.
BG is negated a few clock cycles after BGACK transition. However, if bus requests are
still pending after BG is negated, the MCU asserts BG again within a few clock cycles.
This additional BG assertion allows external arbitration circuitry to select the next bus
master before the current master has released the bus.
Refer to Figure 4-14, which shows bus arbitration for a single device. The flowchart
shows BR negated at the same time BGACK is asserted.
MOTOROLA
4-34
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
MCU
REQUESTING DEVICE
REQUEST THE BUS
GRANT BUS ARBITRATION
1) ASSERT BUS REQUEST (BR)
1) ASSERT BUS GRANT (BG)
ACKNOWLEDGE BUS MASTERSHIP
TERMINATE ARBITRATION
1) EXTERNAL ARBITRATION DETERMINES
NEXT BUS MASTER
2) NEXT BUS MASTER WAITS FOR BGACK
TO BE NEGATED
3) NEXT BUS MASTER ASSERTS BGACK
TO BECOME NEW MASTER
4) BUS MASTER NEGATES BR
1) NEGATE BG (AND WAIT FOR
BGACK TO BE NEGATED)
OPERATE AS BUS MASTER
1) PERFORM DATA TRANSFERS (READ AND
WRITE CYCLES) ACCORDING TO THE
SAME RULES THE PROCESSOR USES
4
RELEASE BUS MASTERSHIP
RE-ARBITRATE OR RESUME PROCESSOR
OPERATION
1) NEGATE BGACK
BUS ARB FLOW
Figure 4-14 Bus Arbitration Flowchart for Single Request
State changes occur on the next rising edge of CLKOUT after the internal signal is valid. The BG signal transitions on the falling edge of the clock after a state is reached
during which G changes. The bus control signals (controlled by T) are driven by the
MCU immediately following a state change, when bus mastership is returned to the
MCU. State 0, in which G and T are both negated, is the state of the bus arbiter while
the MCU is bus master. Request R and acknowledge A keep the arbiter in state 0 as
long as they are both negated.
4.5.6.1 Slave (Factory Test) Mode Arbitration
This mode is used for factory production testing of internal modules. It is not supported
as a user operating mode. Slave mode is enabled by holding DATA11 low during reset. In slave mode, when BG is asserted, the MCU is slaved to an external master that
has full access to all internal registers.
4.5.6.2 Show Cycles
The MCU normally performs internal data transfers without affecting the external bus,
but it is possible to show these transfers during debugging. AS is not asserted externally during show cycles.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-35
Show cycles are controlled by the SHEN field in the SIMCR (refer to 4.2.3 Show Internal Cycles). This field is cleared by reset. When show cycles are disabled, the address bus, function codes, size, and read/write signals reflect internal bus activity, but
AS and DS are not asserted externally and external data bus pins are in high-impedance state during internal accesses.
When show cycles are enabled, DS is asserted externally during internal cycles, and
internal data is driven out on the external data bus. Because internal cycles normally
continue to run when the external bus is granted, one SHEN encoding halts internal
bus activity while there is an external master.
SIZ[1:0] signals reflect bus allocation during show cycles. Only the appropriate portion
of the data bus is valid during the cycle. During a byte write to an internal address, the
portion of the bus that represents the byte that is not written reflects internal bus conditions, and is indeterminate. During a byte write to an external address, the data multiplexer in the SIM causes the value of the byte that is written to be driven out on both
bytes of the data bus.
4
4.6 Reset
Reset occurs when an active low logic level on the RESET pin is clocked into the SIM.
The RESET input is synchronized to the system clock. If there is no clock when RESET is asserted, reset does not occur until the clock starts. Resets are clocked to allow
completion of write cycles in progress at the time RESET is asserted.
Reset procedures handle system initialization and recovery from catastrophic failure.
The MCU performs resets with a combination of hardware and software. The system
integration module determines whether a reset is valid, asserts control signals, performs basic system configuration and boot ROM selection based on hardware modeselect inputs, then passes control to the CPU32.
4.6.1 Reset Exception Processing
The CPU32 processes resets as a type of asynchronous exception. An exception is
an event that preempts normal processing, and can be caused by internal or external
events. Exception processing makes the transition from normal instruction execution
to execution of a routine that deals with an exception. Each exception has an assigned
vector that points to an associated handler routine. These vectors are stored in the
vector base register (VBR). The VBR contains the base address of a 1024-byte exception vector table, which consists of 256 exception vectors. The CPU32 uses vector
numbers to calculate displacement into the table. Refer to SECTION 5 CENTRAL
PROCESSING UNIT for more information concerning exceptions.
Reset is the highest-priority CPU32 exception. Unlike all other exceptions, a reset occurs at the end of a bus cycle, and not at an instruction boundary. Handling resets in
this way prevents write cycles in progress at the time the reset signal is asserted from
being corrupted. However, any processing in progress is aborted by the reset exception, and cannot be restarted. Only essential reset tasks are performed during exception processing. Other initialization tasks must be accomplished by the exception
handler routine. 4.6.8 Reset Processing Summary contains details of exception processing.
MOTOROLA
4-36
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.6.2 Reset Control Logic
SIM reset control logic determines the cause of a reset, synchronizes reset assertion
if necessary to the completion of the current bus cycle, and asserts the appropriate reset lines. Reset control logic can drive four different internal signals.
1.
2.
3.
4.
EXTRST (external reset) drives the external reset pin.
CLKRST (clock reset) resets the clock module.
MSTRST (master reset) goes to all other internal circuits.
SYSRST (system reset) indicates to internal circuits that the CPU has executed
a RESET instruction.
All resets are gated by CLKOUT. Resets are classified as synchronous or asynchronous. An asynchronous reset can occur on any CLKOUT edge. Reset sources that
cause an asynchronous reset usually indicate a catastrophic failure; thus the reset
control logic responds by asserting reset to the system immediately. (A system reset,
however, caused by the CPU32 RESET instruction, is asynchronous but does not indicate any type of catastrophic failure).
Synchronous resets are timed (CLKOUT) to occur at the end of bus cycles. The internal bus monitor is automatically enabled for synchronous resets. When a bus cycle
does not terminate normally, the bus monitor terminates it.
Refer to Table 4-15 for a summary of reset sources.
Table 4-15 Reset Source Summary
Type
External
Power Up
Source
External
EBI
Timing
Synch
Asynch
Cause
External Signal
VDD
Software Watchdog
HALT
Monitor
Monitor
Asynch
Asynch
Loss of Clock
Test
System
Clock
Test
CPU32
Synch
Synch
Asynch
Time Out
Internal HALT Assertion
(e.g. Double Bus Fault)
Loss of Reference
Test Mode
RESET Instruction
Reset Lines Asserted by Controller
MSTRST
CLKRST
EXTRST
MSTRST
CLKRST
EXTRST
MSTRST
MSTRST
CLKRST
CLKRST
EXTRST
EXTRST
MSTRST
MSTRST
—
CLKRST
—
—
EXTRST
EXTRST
EXTRST
Internal single byte or aligned word writes are guaranteed valid for synchronous resets. External writes are also guaranteed to complete, provided the external configuration logic on the data bus is conditioned as shown in Figure 4-15.
4.6.3 Reset Mode Selection
The logic states of certain data bus pins during reset determine SIM operating configuration. In addition, the state of the MODCLK pin determines system clock source and
the state of the BKPT pin determines what happens during subsequent breakpoint assertions. Table 4-16 is a summary of reset mode selection options.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-37
4
Table 4-16 Reset Mode Selection
Mode Select Pin
DATA0
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
DATA8
DATA9
4
DATA11
MODCLK
BKPT
Default Function
(Pin Left High)
CSBOOT 16-Bit
CS0
CS1
CS2
CS3
CS4
CS5
CS6
CS[7:6]
CS[8:6]
CS[9:6]
CS[10:6]
DSACK[1:0],
AVEC, DS, AS,
SIZE
IRQ[7:1]
MODCLK
Test Mode Disabled
VCO = System Clock
Background Mode Disabled
Alternate Function
(Pin Pulled Low)
CSBOOT 8-Bit
BR
BG
BGACK
FC0
FC1
FC2
ADDR19
ADDR[20:19]
ADDR[21:19]
ADDR[22:19]
ADDR[23:19]
PORTE
PORTF
Test Mode Enabled
EXTAL = System Clock
Background Mode Enabled
4.6.3.1 Data Bus Mode Selection
All data lines have weak internal pull-up drivers. When pins are held high by the internal drivers, the MCU uses a default operating configuration. However, specific lines
can be held low externally to achieve an alternate configuration.
NOTE
External bus loading can overcome the weak internal pull-up drivers
on data bus lines, and hold pins low during reset.
Use an active device to hold data bus lines low. Data bus configuration logic must release the bus before the first bus cycle after reset to prevent conflict with external
memory devices. The first bus cycle occurs ten CLKOUT cycles after RESET is released. If external mode selection logic causes a conflict of this type, an isolation resistor on the driven lines may be required. Figure 4-15 shows a recommended method
for conditioning the mode select signals.
MOTOROLA
4-38
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
DATA15
••
••
••
MODE SELECT
LINES
••
••
••
DATA1
DATA0
VDD VDD
*
*
*
••
••
••
RESET
DS
R/W
*Optional, to prevent conflict on RESET negation.
DATA BUS MODE DECODE
4
Figure 4-15 Data Bus Mode Select Conditioning
Data bus mode select current is specified in APPENDIX A ELECTRICAL CHARACTERISTICS. Do not confuse pin function with pin electrical state. Refer to 4.6.5 Pin
State During Reset for more information.
DATA0 determines the function of the boot ROM chip-select signal (CSBOOT). Unlike
other chip-select signals, CSBOOT is active at the release of reset. During reset exception processing, the MCU fetches initialization vectors beginning at address
$000000 in supervisor program space. An external memory device containing vectors
located at these addresses can be enabled by CSBOOT after a reset. The logic level
of DATA0 during reset selects boot ROM port size for dynamic bus allocation. When
DATA0 is held low, port size is eight bits; when DATA0 is held high, either by the weak
internal pull-up driver or by an external pull-up, port size is 16 bits. Refer to 4.8.4 ChipSelect Reset Operation for more information.
DATA1 and DATA2 determine the functions of CS[2:0] and CS[5:3], respectively. DATA[7:3] determine the functions of an associated chip select and all lower-numbered
chip-selects down through CS6. For example, if DATA5 is pulled low during reset,
CS[8:6] are assigned alternate function as ADDR[21:19], and CS[10:9] remain chipselects. Refer to 4.8.4 Chip-Select Reset Operation for more information.
DATA8 determines the function of the DSACK[1:0], AVEC, DS, AS, and SIZE pins. If
DATA8 is held low during reset, these pins are assigned to I/O port E.
DATA9 determines the function of interrupt request pins IRQ[7:0] and the clock mode
select pin (MODCLK). When DATA9 is held low during reset, these pins are assigned
to I/O port F.
DATA11 determines whether the SIM operates in test mode out of reset. This capability is used for factory testing of the MCU.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-39
4.6.3.2 Clock Mode Selection
The state of the clock mode (MODCLK) pin during reset determines what clock source
the MCU uses. When MODCLK is held high during reset, the clock signal is generated
from a reference frequency. When MODCLK is held low during reset, the clock synthesizer is disabled, and an external system clock signal must be applied. Refer to 4.3
System Clock for more information.
NOTE
The MODCLK pin can also be used as parallel I/O pin PF0. To prevent inadvertent clock mode selection by logic connected to port F,
use an active device to drive MODCLK during reset.
4
4.6.3.3 Breakpoint Mode Selection
The MCU uses internal and external breakpoint (BKPT) signals. During reset exception processing, at the release of the RESET signal, the CPU32 samples these signals
to determine how to handle breakpoints.
If either BKPT signal is at logic level zero when sampled, an internal BDM flag is set,
and the CPU32 enters background debugging mode whenever either BKPT input is
subsequently asserted.
If both BKPT inputs are at logic level one when sampled, breakpoint exception processing begins whenever either BKPT signal is subsequently asserted.
Refer to SECTION 5 CENTRAL PROCESSING UNIT for more information on background debugging mode and exceptions. Refer to 4.5.4 CPU Space Cycles for information concerning breakpoint acknowledge bus cycles.
4.6.4 MCU Module Pin Function During Reset
Usually, module pins default to port functions, and input/output ports are set to input
state. This is accomplished by disabling pin functions in the appropriate control registers, and by clearing the appropriate port data direction registers. Refer to individual
module sections in this manual for more information. Table 4-17 is a summary of module pin function out of reset. Refer to APPENDIX D REGISTER SUMMARY for register
function and reset state.
MOTOROLA
4-40
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
Table 4-17 Module Pin Functions
Module
CPU32
GPT
QSM
Pin Mnemonic
DSI/IFETCH
DSO/IPIPE
BKPT/DSCLK
PGP7/IC4/OC5
PGP[6:3]/OC[4:1]
PGP[2:0]/IC[3:1]
PAI
PCLK
PWMA, PWMB
PQS7/TXD
PQS[6:4]/PCS[3:1]
PQS3/PCS0/SS
PQS2/SCK
PQS1/MOSI
PQS0/MISO
RXD
Function
DSI/IFETCH
DSO/IPIPE
BKPT/DSCLK
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Output
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Input
Discrete Input
RXD
4.6.5 Pin State During Reset
It is important to keep the distinction between pin function and pin electrical state clear.
Although control register values and mode select inputs determine pin function, a pin
driver can be active, inactive or in high-impedance state while reset occurs. During
power-up reset, pin state is subject to the constraints discussed in 4.6.7 Power-On
Reset.
NOTE
Pins that are not used should either be configured as outputs, or (if
configured as inputs) pulled to the appropriate inactive state. This decreases additional IDD caused by digital inputs floating near mid-supply level.
4.6.5.1 Reset States of SIM Pins
Generally, while RESET is asserted, SIM pins either go to an inactive high-impedance
state or are driven to their inactive states. After RESET is released, mode selection
occurs, and reset exception processing begins. Pins configured as inputs during reset
become active high-impedance loads after RESET is released. Inputs must be driven
to the desired active state. Pull-up or pull-down circuitry may be necessary. Pins configured as outputs begin to function after RESET is released. Table 4-18 is a summary
of SIM pin states during reset.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-41
4
Table 4-18 SIM Pin Reset States
Mnemonic
4
CS10/ADDR23
CS[9:6]/ADDR[22:19]/PC[6:3]
ADDR[18:0]
AS/PE5
AVEC/PE2
BERR
CSM/BG
CSE/BGACK
CS0/BR
CLKOUT
CSBOOT
DATA[15:0]
DS/PE4
DSACK0/PE0
DSACK1/PE1
CS5/FC2/PC2
FC1/PC1
CS3/FC0/PC0
HALT
IRQ[7:1]/PF[7:1]
MODCLK/PF0
R/W
RESET
RMC
SIZ[1:0]/PE[7:6]
TSC
State While
RESET
Asserted
1
1
High-Z Output
High-Z Output
Disabled
Disabled
1
1
1
Output
1
Mode Select
Disabled
Disabled
Disabled
1
1
1
Disabled
Disabled
Mode Select
Disabled
Asserted
Disabled
Disabled
Mode Select
Pin State After RESET Released
Pin
Pin State
Pin
Pin State
Function
Function
CS10
1
ADDR23
Unknown
CS[9:6]
1
ADDR[22:19] Unknown
ADDR[18:0]
Unknown
ADDR[18:0]
Unknown
AS
Output
PE5
Input
AVEC
Input
PE2
Input
BERR
Input
BERR
Input
CSM
1
BG
1
CSE
1
BGACK
Input
CS0
1
BR
Input
CLKOUT
Output
CLKOUT
Output
CSBOOT
0
CSBOOT
0
DATA[15:0]
Input
DATA[15:0]
Input
DS
Output
PE4
Input
DSACK0
Input
PE0
Input
DSACK1
Input
PE1
Input
CS5
1
FC2
Unknown
FC1
1
FC1
Unknown
CS3
1
FC0
Unknown
HALT
Input
HALT
Input
IRQ[7:1]
Input
PF[7:1]
Input
MODCLK
Input
PF0
Input
R/W
Output
R/W
Output
RESET
Input
RESET
Input
RMC
Output
PE3
Input
SIZ[1:0]
Unknown
PE[7:6]
Input
TSC
Input
TSC
Input
4.6.5.2 Reset States of Pins Assigned to Other MCU Modules
As a rule, module pins that are assigned to general-purpose I/O ports go to active highimpedance state following reset. Other pin states are determined by individual module
control register settings. Refer to sections concerning modules for details. However,
during power-up reset, module port pins may be in an indeterminate state for a short
period. Refer to 4.6.7 Power-On Reset for more information.
4.6.6 Reset Timing
The RESET input must be asserted for a specified minimum period for reset to occur.
External RESET assertion can be delayed internally for a period equal to the longest
bus cycle time (or the bus monitor time-out period) in order to protect write cycles from
being aborted by reset. While RESET is asserted, SIM pins are either in an inactive,
high impedance state or are driven to their inactive states.
When an external device asserts RESET for the proper period, reset control logic
clocks the signal into an internal latch. The control logic drives the RESET pin low for
an additional 512 CLKOUT cycles after it detects that the RESET signal is no longer
being externally driven, to guarantee this length of reset to the entire system.
MOTOROLA
4-42
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
If an internal source asserts a reset signal, the reset control logic asserts RESET for
a minimum of 512 cycles. If the reset signal is still asserted at the end of 512 cycles,
the control logic continues to assert RESET until the internal reset signal is negated.
After 512 cycles have elapsed, the reset input pin goes to an inactive, high-impedance
state for ten cycles. At the end of this 10-cycle period, the reset input is tested. When
the input is at logic level one, reset exception processing begins. If, however, the reset
input is at logic level zero, the reset control logic drives the pin low for another 512 cycles. At the end of this period, the pin again goes to high-impedance state for ten cycles, then it is tested again. The process repeats until RESET is released.
4.6.7 Power-On Reset
When the SIM clock synthesizer is used to generate system clocks, power-on reset involves special circumstances related to application of system and clock synthesizer
power. Regardless of clock source, voltage must be applied to clock synthesizer power input pin VDDSYN for the MCU to operate. The following discussion assumes that
VDDSYN is applied before and during reset, which minimizes crystal start-up time.
When VDDSYN is applied at power-on, start-up time is affected by specific crystal parameters and by oscillator circuit design. VDD ramp-up time also affects pin state during reset. Refer to APPENDIX A ELECTRICAL CHARACTERISTICS for voltage and
timing specifications.
During power-on reset, an internal circuit in the SIM drives the IMB internal (MSTRST)
and external (EXTRST) reset lines. The circuit releases MSTRST as VDD ramps up to
the minimum specified value, and SIM pins are initialized as shown in Table 4-19. As
VDD reaches specified minimum value, the clock synthesizer VCO begins operation
and clock frequency ramps up to specified limp mode frequency. The external RESET
line remains asserted until the clock synthesizer PLL locks and 512 CLKOUT cycles
elapse line remains asserted until the clock synthesizer PLL locks and 512 CLKOUT
cycles elapse.
The SIM clock synthesizer provides clock signals to the other MCU modules. After the
clock is running and MSTRST is asserted for at least four clock cycles, these modules
reset. VDD ramp time and VCO frequency ramp time determine how long the four cycles take. Worst case is approximately 15 milliseconds. During this period, module
port pins may be in an indeterminate state. While input-only pins can be put in a known
state by external pull-up resistors, external logic on input/output or output-only pins
during this time must condition the lines. Active drivers require high-impedance buffers
or isolation resistors to prevent conflict.
Figure 4-16 is a timing diagram of power-up reset. It shows the relationships between
RESET, VDD, and bus signals.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-43
4
CLKOUT
VCO
LOCK
VDD
512 CLOCKS
10 CLOCKS
RESET
BUS
CYCLES
BUS STATE
UNKNOWN
ADDRESS AND
CONTROL SIGNALS
THREE-STATED
1
NOTES:
1. Internal start-up time.
2. SSP fetched.
3. PC fetched.
4. First instruction fetched.
4
2
3
4
32 POR TIM
Figure 4-16 Power-On Reset
4.6.8 Reset Processing Summary
To prevent write cycles in progress from being corrupted, a reset is recognized at the
end of a bus cycle, and not at an instruction boundary. Any processing in progress at
the time a reset occurs is aborted. After SIM reset control logic has synchronized an
internal or external reset request, it asserts the MSTRST signal.
The following events take place when MSTRST is asserted.
A. Instruction execution is aborted.
B. The status register is initialized.
1. The T0 and T1 bits are cleared to disable tracing.
2. The S bit is set to establish supervisor privilege level.
3. The interrupt priority mask is set to $7, disabling all interrupts below priority
7.
C. The vector base register is initialized to $000000.
The following events take place when MSTRST is negated after assertion.
A. The CPU32 samples the BKPT input.
B. The CPU32 fetches the reset vector:
1. The first long word of the vector is loaded into the interrupt stack pointer.
2. The second long word of the vector is loaded into the program counter.
Vectors can be fetched from internal RAM or from external ROM enabled by
the CSBOOT signal.
C. The CPU32 fetches and begins decoding the first instruction to be executed.
MOTOROLA
4-44
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.6.9 Reset Status Register
The reset status register (RSR) contains a bit for each reset source in the MCU. When
a reset occurs, a bit corresponding to the reset type is set. When multiple causes of
reset occur at the same time, more than one bit in RSR may be set. The reset status
register is updated by the reset control logic when the RESET signal is released. Refer
to APPENDIX D REGISTER SUMMARY.
4.7 Interrupts
Interrupt recognition and servicing involve complex interaction between the system integration module, the central processing unit, and a device or module requesting interrupt service. This discussion provides an overview of the entire interrupt process.
Chip-select logic can also be used to respond to interrupt requests. Refer to 4.8 Chip
Selects for more information.
4.7.1 Interrupt Exception Processing
The CPU32 processes resets as a type of asynchronous exception. An exception is
an event that preempts normal processing. Each exception has an assigned vector in
an exception vector table that points to an associated handler routine. The CPU uses
vector numbers to calculate displacement into the table. During exception processing,
the CPU fetches the appropriate vector and executes the exception handler routine to
which the vector points.
Out of reset, the exception vector table is located beginning at address $000000. This
value can be changed by programming the vector base register (VBR) with a new value, and multiple vector tables can be used. Refer to SECTION 5 CENTRAL PROCESSING UNIT for more information concerning exceptions.
4.7.2 Interrupt Priority and Recognition
The CPU32 provides eight levels of interrupt priority. All interrupts with priorities less
than seven can be masked by the interrupt priority (IP) field in status register.
There are seven interrupt request signals (IRQ[7:1]). These signals are used internally
on the IMB, and are corresponding pins for external interrupt service requests. The
CPU treats all interrupt requests as though they come from internal modules — external interrupt requests are treated as interrupt service requests from the SIM. Each of
the interrupt request signals corresponds to an interrupt priority level. IRQ1 has the
lowest priority and IRQ7 the highest.
Interrupt recognition is determined by interrupt priority level and interrupt priority mask
value, interrupt recognition is determined by interrupt priority level and interrupt priority
mask value. The interrupt priority mask consists of three bits in the CPU32 status register. Binary values %000 to %111 provide eight priority masks. Masks prevent an interrupt request of a priority less than or equal to the mask value from being recognized
and processed. IRQ7, however, is always recognized, even if the mask value is %111.
IRQ[7:1] are active-low level-sensitive inputs. The low on the pin must remain asserted
until an interrupt acknowledge cycle corresponding to that level is detected.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-45
4
IRQ7 is transition-sensitive as well as level-sensitive: a level-7 interrupt is not detected
unless a falling edge transition is detected on the IRQ7 line. This prevents redundant
servicing and stack overflow. A nonmaskable interrupt is generated each time IRQ7 is
asserted as well as each time the priority mask changes from %111 to a lower number
while IRQ7 is asserted.
Interrupt requests are sampled on consecutive falling edges of the system clock. Interrupt request input circuitry has hysteresis: to be valid, a request signal must be asserted for at least two consecutive clock periods. Valid requests do not cause
immediate exception processing, but are left pending. Pending requests are processed at instruction boundaries or when exception processing of higher-priority exceptions is complete.
4
The CPU32 does not latch the priority of a pending interrupt request. If an interrupt
source of higher priority makes a service request while a lower priority request is pending, the higher priority request is serviced. If an interrupt request with a priority equal
to or lower than the current IP mask value is made, the CPU32 does not recognize the
occurrence of the request. If simultaneous interrupt requests of different priorities are
made, and both have a priority greater than the mask value, the CPU32 recognizes
the higher-level request.
4.7.3 Interrupt Acknowledge and Arbitration
When the CPU32 detects one or more interrupt requests of a priority higher than the
interrupt priority mask value, it places the interrupt request level on the address bus
and initiates a CPU space read cycle. The request level serves two purposes: it is decoded by modules or external devices that have requested interrupt service, to determine whether the current interrupt acknowledge cycle pertains to them, and it is
latched into the interrupt priority mask field in the CPU32 status register, to preclude
further interrupts of lower priority during interrupt service.
Modules or external devices that have requested interrupt service must decode the interrupt priority mask value placed on the address bus during the interrupt acknowledge
cycle and respond if the priority of the service request corresponds to the mask value.
However, before modules or external devices respond, interrupt arbitration takes
place.
Arbitration is performed by means of serial contention between values stored in individual module interrupt arbitration (IARB) fields. Each module that can make an interrupt service request, including the SIM, has an IARB field in its configuration register.
IARB fields can be assigned values from %0000 to %1111. In order to implement an
arbitration scheme, each module that can initiate an interrupt service request must be
assigned a unique, non-zero IARB field value during system initialization. Arbitration
priorities range from %0001 (lowest) to %1111 (highest) — if the CPU recognizes an
interrupt service request from a source that has an IARB field value of %0000, a spurious interrupt exception is processed.
WARNING
Do not assign the same arbitration priority to more than one module.
When two or more IARB fields have the same nonzero value, the
MOTOROLA
4-46
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
CPU32 interprets multiple vector numbers at the same time, with unpredictable consequences.
Because the EBI manages external interrupt requests, the SIM IARB value is used for
arbitration between internal and external interrupt requests. The reset value of IARB
for the SIM is %1111, and the reset IARB value for all other modules is %0000.
Although arbitration is intended to deal with simultaneous requests of the same priority, it always takes place, even when a single source is requesting service. This is important for two reasons: the EBI does not transfer the interrupt acknowledge read cycle
to the external bus unless the SIM wins contention, and failure to contend causes the
interrupt acknowledge bus cycle to be terminated early, by a bus error.
When arbitration is complete, the module with the highest arbitration priority must terminate the bus cycle. Internal modules place an interrupt vector number on the data
bus and generate appropriate internal cycle termination signals. In the case of an external interrupt request, after the interrupt acknowledge cycle is transferred to the external bus, the appropriate external device must decode the mask value and respond
with a vector number, then generate data and size acknowledge (DSACK) termination
signals, or it must assert the autovector (AVEC) request signal. If the device does not
respond in time, the EBI bus monitor asserts the bus error signal BERR, and a spurious interrupt exception is taken.
Chip-select logic can also be used to generate internal AVEC or DSACK signals in response to interrupt requests from external devices (refer to 4.8.3 Using Chip-Select
Signals for Interrupt Acknowledge). Chip-select address match logic functions only
after the EBI transfers an interrupt acknowledge cycle to the external bus following
IARB contention. If a module makes an interrupt request of a certain priority, and the
appropriate chip-select registers are programmed to generate AVEC or DSACK signals in response to an interrupt acknowledge cycle for that priority level, chip-select
logic does not respond to the interrupt acknowledge cycle, and the internal module
supplies a vector number and generates internal cycle termination signals.
For periodic timer interrupts, the PIRQ field in the periodic interrupt control register (PICR) determines PIT priority level. A PIRQ value of %000 means that PIT interrupts are
inactive. By hardware convention, when the CPU32 receives simultaneous interrupt
requests of the same level from more than one SIM source (including external devices), the periodic interrupt timer is given the highest priority, followed by the IRQ pins.
4.7.4 Interrupt Processing Summary
A summary of the entire interrupt processing sequence follows. When the sequence
begins, a valid interrupt service request has been detected and is pending.
A. The CPU finishes higher priority exception processing or reaches an instruction
boundary.
B. The processor state is stacked. The S bit in the status register is set, establishing supervisor access level, and bits T1 and T0 are cleared, disabling tracing.
C. The interrupt acknowledge cycle begins:
1. FC[2:0] are driven to %111 (CPU space) encoding.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-47
4
D.
E.
4
F.
G.
2. The address bus is driven as follows: ADDR[23:20] = %1111; ADDR[19:16]
= %1111, which indicates that the cycle is an interrupt acknowledge CPU
space cycle; ADDR[15:4] = %111111111111; ADDR[3:1] = the priority of
the interrupt request being acknowledged; and ADDR0 = %1.
3. The request level is latched from the address bus into the interrupt priority
mask field in the status or condition code register.
Modules that have requested interrupt service decode the priority value in ADDR[3:1]. If request priority is the same as acknowledged priority, arbitration by
IARB contention takes place.
After arbitration, the interrupt acknowledge cycle is completed in one of the following ways:
1. When there is no contention (IARB = %0000), the spurious interrupt monitor asserts BERR, and the CPU generates the spurious interrupt vector
number.
2. The dominant interrupt source supplies a vector number and DSACK signals appropriate to the access. The CPU acquires the vector number.
3. The AVEC signal is asserted (the signal can be asserted by the dominant
interrupt source or the pin can be tied low), and the CPU generates an autovector number corresponding to interrupt priority.
4. The bus monitor asserts BERR and the CPU32 generates the spurious interrupt vector number.
The vector number is converted to a vector address.
The content of the vector address is loaded into the PC, and the processor
transfers control to the exception handler routine.
4.7.5 Interrupt Acknowledge Bus Cycles
Interrupt acknowledge bus cycles are CPU32 space cycles that are generated during
exception processing. For further information about the types of interrupt acknowledge
bus cycles determined by AVEC or DSACK, refer to APPENDIX A ELECTRICAL
CHARACTERISTICS and the SIM Reference Manual (SIMRM/AD).
4.8 Chip Selects
Typical microcontrollers require additional hardware to provide external select and address decode signals. The MCU includes 12 programmable chip-select circuits that
can provide 2- to 20-clock-cycle access to external memory and peripherals. Address
block sizes of two Kbytes to one Mbyte can be selected. Figure 4-17 is a diagram of
a basic system that uses chip selects.
MOTOROLA
4-48
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
1
FC
SIZ
CLKOUT
AS
DSACK
DS
CS3
CS5
IRQ
ADDR[23:0]
DATA[15:0]
ASYNC BUS
PERIPHERAL
SIZ
CLK
AS
DSACK
DS
CS
IACK
IRQ
2
ADDR[15:0]
DATA[15:0]
MEMORY
MCU
CSBOOT
R/W
ADDR[23:0]
DATA[15:8]
CS
R/W
2
4
MEMORY
ADDR[23:0]
DATA[7:0]
CS
R/W
1. Can be decoded to provide additional address space.
2. Varies depending upon peripheral memory size.
2
32 EXAMPLE SYS BLOCK
Figure 4-17 Basic MCU System
Chip-select assertion can be synchronized with bus control signals to provide output
enable, read/write strobe, or interrupt acknowledge signals. Chip select logic can also
generate DSACK and AVEC signals internally. Each signal can also be synchronized
with the ECLK signal available on ADDR23.
When a memory access occurs, chip-select logic compares address space type, address, type of access, transfer size, and interrupt priority (in the case of interrupt acknowledge) to parameters stored in chip-select registers. If all parameters match, the
appropriate chip-select signal is asserted. Select signals are active low. If a chip-select
function is given the same address as a microcontroller module or an internal memory
array, an access to that address goes to the module or array, and the chip-select signal is not asserted. The external address and data buses do not reflect the internal access.
All chip-select circuits are configured for operation out of reset. However, all chip-select signals except CSBOOT are disabled, and cannot be asserted until the BYTE field
in the corresponding option register is programmed to a nonzero value, selecting a
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-49
transfer size. The chip-select option must not be written until a base address has been
written to a proper base address register. CSBOOT is automatically asserted out of
reset. Alternate functions for chip-select pins are enabled if appropriate data bus pins
are held low at the release of the reset signal (refer to 4.6.3.1 Data Bus Mode Selection for more information). Figure 4-18 is a functional diagram of a single chip-select
circuit.
INTERNAL
SIGNALS
BASE ADDRESS REGISTER
ADDRESS
ADDRESS COMPARATOR
BUS CONTROL
OPTION COMPARE
TIMING
AND
CONTROL
PIN
OPTION REGISTER
4
AVEC
AVEC
GENERATOR
DSACK
GENERATOR
PIN
ASSIGNMENT
REGISTER
PIN
DATA
REGISTER
DSACK
CHIP SEL BLOCK
Figure 4-18 Chip-Select Circuit Block Diagram
4.8.1 Chip-Select Registers
Each chip-select pin can have one or more functions. Ship-select pin assignment registers (CSPAR[0:1]) determine functions of the pins. Pin assignment registers also determine port size (8- or 16-bit) for dynamic bus allocation. A pin data register (PORTC)
latches data for chip-select pins that are used for discrete output.
Blocks of addresses are assigned to each chip-select function. Block sizes of two
Kbytes to one Mbyte can be selected by writing values to the appropriate base address
register (CSBAR[0:10], CSBARBT). Address blocks for separate chip-select functions
can overlap.
Chip select option registers (CSOR[0:10], CSORBT) determine timing of and conditions for assertion of chip-select signals. Eight parameters, including operating mode,
access size, synchronization, and wait state insertion can be specified.
Initialization software usually resides in a peripheral memory device controlled by the
chip-select circuits. A set of special chip-select functions and registers (CSORBT, CSBARBT) is provided to support bootstrap operation.
Comprehensive address maps and register diagrams are provided in APPENDIX D
REGISTER SUMMARY.
MOTOROLA
4-50
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
4.8.1.1 Chip-Select Pin Assignment Registers
The pin assignment registers contain twelve 2-bit fields (CS[10:0] and CSBOOT) that
determine the functions of the chip-select pins. Each pin has two or three possible
functions, as shown in Table 4-19.
Table 4-19 Chip-Select Pin Functions
16-Bit
Chip Select
CSBOOT
CS0
CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8
CS9
CS10
8-Bit
Chip Select
CSBOOT
CS0
CS1
CS2
CS3
CS4
CS5
CS6
CS7
CS8
CS9
CS10
Alternate
Function
CSBOOT
BR
BG
BGACK
FC0
FC1
FC2
ADDR19
ADDR20
ADDR21
ADDR22
ADDR23
Discrete
Output
—
—
—
—
PC0
PC1
PC2
PC3
PC4
PC5
PC6
ECLK
4
Table 4-20 shows pin assignment field encoding. Pins that have no discrete output
function do not use the %00 encoding.
Table 4-20 Pin Assignment Field Encoding
Bit Field
00
01
10
11
Description
Discrete Output
Alternate Function
Chip Select (8-Bit Port)
Chip Select (16-Bit Port)
Port size determines the way in which bus transfers to an external address are allocated. Port size of eight bits or sixteen bits can be selected when a pin is assigned as
a chip select. Port size and transfer size affect how the chip-select signal is asserted.
Refer to 4.8.1.3 Chip-Select Option Registers for more information.
Out of reset, chip-select pin function is determined by the logic level on a corresponding data bus pin. These pins have weak internal pull-up drivers, but can be held low
by external devices. (Refer to 4.6.3.1 Data Bus Mode Selection for more information.) Either 16-bit chip-select function (%11) or alternate function (%01) can be selected during reset. All pins except the boot ROM select pin (CSBOOT) are disabled out
of reset. There are twelve chip-select functions and only eight associated data bus
pins. There is not a one-to-one correspondence. Refer to 4.8.4 Chip-Select Reset
Operation for more detailed information.
The CSBOOT signal is normally enabled out of reset. The state of the DATA0 line during reset determines what port width CSBOOT uses. If DATA0 is held high (either by
the weak internal pull-up driver or by an external pull-up device), 16-bit width is selected. If DATA0 is held low, 8-bit port size is selected.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-51
A pin programmed as a discrete output drives an external signal to the value specified
in the pin data register. No discrete output function is available on pins CSBOOT, BR,
BG, or BGACK. ADDR23 provides ECLK output rather than a discrete output signal.
When a pin is programmed for discrete output or alternate function, internal chip-select
logic still functions and can be used to generate DSACK or AVEC internally on an address and control signal match.
4.8.1.2 Chip-Select Base Address Registers
Each chip select has an associated base address register. A base address is the lowest address in the block of addresses enabled by a chip select. Block size is the extent
of the address block above the base address. Block size is determined by the value
contained in a BLKSZ field. Block addresses for different chip selects can overlap.
4
The BLKSZ field determines which bits in the base address field are compared to corresponding bits on the address bus during an access. Provided other constraints determined by option register fields are also satisfied, when a match occurs, the
associated chip-select signal is asserted. Table 4-21 shows BLKSZ encoding.
Table 4-21 Block Size Encoding
BLKSZ[2:0]
000
001
010
011
100
101
110
111
Block Size
2 Kbyte
8 Kbyte
16 Kbyte
64 Kbyte
128 Kbyte
256 Kbyte
512 Kbyte
1 Mbyte
Address Lines Compared
ADDR[23:11]
ADDR[23:13]
ADDR[23:14]
ADDR[23:16]
ADDR[23:17]
ADDR[23:18]
ADDR[23:19]
ADDR[23:20]
The chip-select address compare logic uses only the most significant bits to match an
address within a block. The value of the base address must be a multiple of block size.
Base address register diagrams show how base register bits correspond to address
lines.
After reset, the MCU fetches the initialization routine from the address contained in the
reset vector, located beginning at address $000000 of program space. To support
bootstrap operation from reset, the base address field in chip-select base address register boot (CSBARBT) has a reset value of all zeros. A memory device containing the
reset vector and initialization routine can be automatically enabled by CSBOOT after
a reset. The block size field in CSBARBT has a reset value of 512 Kbytes. Refer to
4.8.4 Chip-Select Reset Operation for more information.
4.8.1.3 Chip-Select Option Registers
Option register fields determine timing of and conditions for assertion of chip-select
signals. To assert a chip-select signal, and to provide DSACK or autovector support,
other constraints set by fields in the option register and in the base address register
must also be satisfied. Table 4-22 is a summary of option register functions.
MOTOROLA
4-52
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
Table 4-22 Option Register Function Summary
MODE
0 = ASYNC*
1 = SYNC
BYTE
00 = Disable
01 = Lower
10 = Upper
*11 = Both
R/W
00 = Rsvd
01 = Read
10 = Write
11 = Both
STRB
0 = AS
1 = DS
DSACK
0000 = 0 WAIT
0001 = 1 WAIT
0010 = 2 WAIT
0011 = 3 WAIT
0100 = 4 WAIT
0101 = 5 WAIT
0110 = 6 WAIT
0111 = 7 WAIT
1000 = 8 WAIT
1001 = 9 WAIT
1010 = 10 WAIT
1011 = 11 WAIT
1100 = 12 WAIT
1101 = 13 WAIT
1110 = F term
1111 = External
SPACE
IPL
AVEC
00 = CPU SP
000 = All*
0 = Off*
01 = User SP 001 = Priority 1 1 = On
10 = Supv SP 010 = Priority 2
11 = S/U SP* 011 = Priority 3
100 = Priority 4
101 = Priority 5
110 = Priority 6
111 = Priority 7
*Use this value when function is not required for chip-select operation.
The MODE bit determines whether chip-select assertion simulates an asynchronous
bus cycle, or is synchronized to the M6800-type bus clock signal (ECLK) available on
ADDR23 (refer to 4.3 System Clock for more information on ECLK).
The BYTE field controls bus allocation for chip-select transfers. Port size, set when a
chip select is enabled by a pin assignment register, affects signal assertion. When an
8-bit port is assigned, any BYTE field value other than %00 enables the chip select
signal. When a 16-bit port is assigned, however, BYTE field value determines when
the chip select is enabled. The BYTE fields for CS[10:0] are cleared during reset. However, both bits in the boot ROM option register (CSORBT) BYTE field are set (%11)
when the reset signal is released.
The R/W field causes a chip-select signal to be asserted only for a read, only for a
write, or for both read and write. Use this field in conjunction with the STRB bit to generate asynchronous control signals for external devices.
The STRB bit controls the timing of a chip-select assertion in asynchronous mode. Selecting address strobe causes a chip-select signal to be asserted synchronized with
the address strobe. Selecting data strobe causes a chip-select signal to be asserted
synchronized with the data strobe. This bit has no effect in synchronous mode.
The DSACK field specifies the source of data strobe acknowledge signals used in
asynchronous mode. It also allows the user to optimize bus speed in a particular application by controlling the number of wait states that are inserted.
The SPACE field determines the address space in which a chip select is asserted. An
access must have the space type represented by SPACE encoding in order for a chipselect signal to be asserted.
The IPL field contains an interrupt priority mask that is used when chip-select logic is
set to trigger on external interrupt acknowledge cycles. When the SPACE field is set
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-53
4
to %00 (CPU space), interrupt priority (ADDR[3:1]) is compared to IPL value. If the values are the same, and other option register constraints are satisfied, a chip select signal is asserted. This field only affects the response of chip selects and does not affect
interrupt recognition by the CPU. Encoding %000 causes a chip-select signal to be asserted regardless of interrupt acknowledge cycle priority, provided all other constraints
are met.
The AVEC bit selects one of two methods of acquiring an interrupt vector during an
external interrupt acknowledge cycle. The internal autovector signal is generated only
in response to interrupt requests from the SIM IRQ pins.
4.8.1.4 PORTC Data Register
The PORTC data register latches data for PORTC pins programmed as discrete outputs. When a pin is assigned as a discrete output, the value in this register appears at
the output. PC[6:0] correspond to CS[9:3]. Bit 7 is not used. Writing to this bit has no
effect, and it always reads zero.
4
4.8.2 Chip-Select Operation
When the MCU makes an access, enabled chip-select circuits compare the following
items:
1. Function codes to SPACE fields, and to the IPL field if the SPACE field encoding is not for CPU32 space.
2. Appropriate ADDR bits to base address fields.
3. Read/write status to R/W fields.
4. ADDR0 and/or SIZ bits to the BYTE field (16-bit ports only).
5. Priority of the interrupt being acknowledged (ADDR[3:1]) to IPL fields (when the
access is an interrupt acknowledge cycle).
When a match occurs, the chip-select signal is asserted. Assertion occurs at the same
time as AS or DS assertion in asynchronous mode. Assertion is synchronized with
ECLK in synchronous mode. In asynchronous mode, the value of the DSACK field determines whether DSACK is generated internally. DSACK also determines the number
of wait states inserted before internal DSACK assertion.
The speed of an external device determines whether internal wait states are needed.
Normally, wait states are inserted into the bus cycle during S3 until a peripheral asserts DSACK. If a peripheral does not generate DSACK, internal DSACK generation
must be selected and a predetermined number of wait states can be programmed into
the chip-select option register.
Refer to the SIM Reference Manual (SIMRM/AD) for further information.
4.8.3 Using Chip-Select Signals for Interrupt Acknowledge
Ordinary I/O bus cycles use supervisor space access, but interrupt acknowledge bus
cycles use CPU space access. Refer to 4.5.4 CPU Space Cycles for more information. There are no differences in flow for chip selects in each type of space, but base
and option registers must be properly programmed for each type of external bus cycle.
MOTOROLA
4-54
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
During a CPU space cycle, bits [15:3] of the appropriate base register must be configured to match ADDR[23:11], as the address is compared to an address generated by
the CPU.
Figure 4-19 shows CPU space encoding for an interrupt acknowledge cycle. FC[2:0]
are set to %111, designating CPU space access. ADDR[3:1] indicate interrupt priority,
and the space type field (ADDR[19:16]) is set to %1111, the interrupt acknowledge
code. The rest of the address lines are set to one.
INTERRUPT
ACKNOWLEDGE
FUNCTION
CODE
ADDRESS BUS
2
0
1 1 1
23
19
16
0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 LEVEL 1
CPU SPACE
TYPE FIELD
CPU SPACE IACK TIM
Figure 4-19 CPU Space Encoding for Interrupt Acknowledge
Because address match logic functions only after the EBI transfers an interrupt acknowledge cycle to the external address bus following IARB contention, chip-select
logic generates AVEC or DSACK signals only in response to interrupt requests from
external IRQ pins. If an internal module makes an interrupt request of a certain priority,
and the chip-select base address and option registers are programmed to generate
AVEC or DSACK signals in response to an interrupt acknowledge cycle for that priority
level, chip-select logic does not respond to the interrupt acknowledge cycle, and the
internal module supplies a vector number and generates an internal DSACK signal to
terminate the cycle.
Perform the following operations before using a chip select to generate an interrupt acknowledge signal.
1. Program the base address field to all ones.
2. Program block size to no more than 64 Kbytes, so that the address comparator
checks ADDR[19:16] against the corresponding bits in the base address register. (The CPU32 places the CPU32 space type on ADDR[19:16].)
3. Set the R/W field to read only. An interrupt acknowledge cycle is performed as
a read cycle.
4. Set the BYTE field to lower byte when using a 16-bit port, as the external vector
for a 16-bit port is fetched from the lower byte. Set the BYTE field to upper byte
when using an 8-bit port.
If an interrupting device does not provide a vector number, an autovector acknowledge
must be generated. Asserting AVEC, either by asserting the AVEC pin or by generating AVEC internally using the chip-select option register, terminates the bus cycle.
4.8.4 Chip-Select Reset Operation
The least significant bits of each of the 2-bit CS[10:0] pin assignment fields in CSPAR0
and CSPAR1 each have a reset value of one. The reset values of the most significant
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-55
4
bits of each field are determined by the states of DATA[7:1] during reset. There are
weak internal pull-up drivers for each of the data lines, so that chip-select operation
will be selected by default out of reset. However, the internal pull-up drivers can be
overcome by bus loading effects — to insure a particular configuration out of reset, use
an active device to put the data lines in a known state during reset. The base address
fields in chip-select base address registers CSBAR[0:10] and chip select option registers CSOR[0:10] have the reset values shown in Table 4-23. The BYTE fields of
CSOR[0:10] have a reset value of “disable”, so that a chip-select signal cannot be asserted until the base and option registers are initialized.
Table 4-23 Chip Select Base and Option Register Reset Values
Fields
Base Address
Block Size
Async/Sync Mode
Upper/Lower Byte
Read/Write
AS/DS
DSACK
Address Space
IPL
Autovector
4
Reset Values
$000000
2 Kbyte
Asynchronous Mode
Disabled
Reserved
AS
No Wait States
CPU Space
Any Level
External Interrupt Vector
Following reset, the MCU fetches initial stack pointer and program counter values from
the exception vector table, beginning at $000000 in supervisor program space. The
CSBOOT chip-select signal is used to select an external boot ROM mapped to a base
address of $000000. In order to do this, the reset values of the fields that control CSBOOT must be different from those of other chip select signals.
The MSB of the CSBOOT field in CSPAR0 has a reset value of one, so that chip-select
function is selected by default out of reset. The BYTE field in option register CSORBT
has a reset value of “both bytes” so that the select signal is enabled out of reset. The
LSB value of the CSBOOT field, determined by the logic level of DATA0 during reset,
selects boot ROM port size. When DATA0 is held low during reset, port size is eight
bits. When DATA0 is held high during reset, port size is 16 bits. DATA0 has a weak
internal pull-up driver, so that a 16-bit port will be selected by default out of reset. However, the internal pull-up driver can be overcome by bus loading effects — to insure a
particular configuration out of reset, use an active device to put DATA0 in a known
state during reset.
The base address field in chip-select base address register boot (CSBARBT) has a
reset value of all zeros, so that when the initial access to address $000000 is made,
an address match occurs, and the CSBOOT signal is asserted. The block size field in
CSBARBT has a reset value of 1 Mbyte. Table 4-24 shows CSBOOT reset values.
MOTOROLA
4-56
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
Table 4-24 CSBOOT Base and Option Register Reset Values
Fields
Base Address
Block Size
Async/Sync Mode
Upper/Lower Byte
Read/Write
AS/DS
DSACK
Address Space
IPL
Autovector
Reset Values
$000000
1 Mbyte
Asynchronous Mode
Both Bytes
Read/Write
AS
13 Wait States
Supervisor/User Space
Any Level
Interrupt Vector Externally
4.9 Parallel Input/Output Ports
Fifteen SIM pins can be configured for general-purpose discrete input and output. Although these pins are organized into two ports, port E and port F, function assignment
is by individual pin. Pin assignment registers, data direction registers, and data registers are used to implement discrete I/O.
4.9.1 Pin Assignment Registers
Bits in the port E and port F pin assignment registers (PEPAR and PFPAR) control the
functions of the pins in each port. Any bit set to one defines the corresponding pin as
a bus control signal. Any bit cleared to zero defines the corresponding pin as an I/O
pin.
4.9.2 Data Direction Registers
Bits in the port E and port F data direction registers (DDRE and DDRF) control the direction of the pin drivers when the pins are configured as I/O. Any bit in a register set
to one configures the corresponding pin as an output. Any bit in a register cleared to
zero configures the corresponding pin as an input. These registers can be read or written at any time. Writes have no effect.
4.9.3 Data Registers
A write to the port E and port F data registers (PORTE and PORTF) is stored in an
internal data latch, and if any pin in the corresponding port is configured as an output,
the value stored for that bit is driven out on the pin. A read of a data register returns
the value at the pin only if the pin is configured as a discrete input. Otherwise, the value
read is the value stored in the register. Both data registers can be accessed in two locations. Registers can be read or written at any time.
4.10 Factory Test
The test submodule supports scan-based testing of the various MCU modules. It is integrated into the SIM to support production test. Test submodule registers are intended for Motorola use only. Register names and addresses are provided in APPENDIX
D REGISTER SUMMARY to show the user that these addresses are occupied. The
QUOT pin is also used for factory test.
MC68331
USER’S MANUAL
SYSTEM INTEGRATION MODULE
MOTOROLA
4-57
4
4
MOTOROLA
4-58
SYSTEM INTEGRATION MODULE
MC68331
USER’S MANUAL
SECTION 5 CENTRAL PROCESSING UNIT
The CPU32, the instruction processing module of the M68300 family, is based on the
industry-standard MC68000 processor. It has many features of the MC68010 and
MC68020, as well as unique features suited for high-performance controller applications. This section is an overview of the CPU32. For detailed information concerning
CPU operation, refer to the CPU32 Reference Manual (CPU32RM/AD).
5.1 General
Ease of programming is an important consideration in using a microcontroller. The
CPU32 instruction format reflects a philosophy emphasizing register-memory interaction. There are eight multifunction data registers and seven general-purpose addressing registers.
All data resources are available to all operations requiring those resources. The data
registers readily support 8-bit (byte), 16-bit (word), and 32-bit (long-word) operand
lengths for all operations. Word and long-word operations support address manipulation. Although the program counter (PC) and stack pointers (SP) are special-purpose
registers, they are also available for most data addressing activities. Ease of program
checking and diagnosis is further enhanced by trace and trap capabilities at the instruction level.
A block diagram of the CPU32 is shown in Figure 5-1. The major blocks operate in a
highly independent fashion that maximizes concurrence of operation while managing
the essential synchronization of instruction execution and bus operation. The bus controller loads instructions from the data bus into the decode unit. The sequencer and
control unit provide overall chip control, managing the internal buses, registers, and
functions of the execution unit.
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-1
5
DECODE
BUFFER
STAGE
C
STAGE
B
STAGE
A
INSTRUCTION PIPELINE
CONTROL STORE
PROGRAM
COUNTER
SECTION
DATA
SECTION
CONTROL LOGIC
EXECUTION UNIT
MICROSEQUENCER AND CONTROL
5
WRITE PENDING
BUFFER
PREFETCH
CONTROLLER
MICROBUS
CONTROLLER
ADDRESS
BUS
BUS CONTROL
SIGNALS
DATA
BUS
1127A
Figure 5-1 CPU32 Block Diagram
5.2 CPU32 Registers
The CPU32 programming model consists of two groups of registers that correspond
to the user and supervisor privilege levels. User programs can use only the registers
of the user model. The supervisor programming model, which supplements the user
programming model, is used by CPU32 system programmers who wish to protect sensitive operating system functions. The supervisor model is identical to that of the
MC68010 and later processors.
The CPU32 has eight 32-bit data registers, seven 32-bit address registers, a 32-bit
program counter, separate 32-bit supervisor and user stack pointers, a 16-bit status
register, two alternate function code registers, and a 32-bit vector base register (see
Figure 5-2 and Figure 5-3).
MOTOROLA
5-2
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
31
16 15
8 7
0
D0
D1
D2
D3
D4
D5
D6
D7
31
16 15
0
A0
A1
A2
A3
A4
A5
A6
31
DATA REGISTERS
16 15
ADDRESS REGISTERS
0
A7 (USP) USER STACK POINTER
31
0
7
PC
PROGRAM COUNTER
CCR
CONDITION CODE REGISTER
0
Figure 5-2 User Programming Model
31
16 15
0
A7’ (SSP) SUPERVISOR STACK POINTER
15
8 7
0
(CCR)
31
SR
STATUS REGISTER
VBR
VECTOR BASE REGISTER
SFC
DFC
ALTERNATE FUNCTION
CODE REGISTERS
0
2
0
Figure 5-3 Supervisor Programming Model Supplement
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-3
5
5.2.1 Data Registers
The eight data registers can store data operands of 1,8, 16, 32, and 64 bits and addresses of 16 or 32 bits. The following data types are supported:
5
• Bits
• Packed Binary-Coded Decimal Digits
• Byte Integers (8 bits)
• Word Integers (16 bits)
• Long-Word Integers (32 bits)
• Quad-Word Integers (64 bits)
Each of data registers D7–D0 is 32 bits wide. Byte operands occupy the low-order 8
bits; word operands, the low-order 16 bits; and long-word operands, the entire 32 bits.
When a data register is used as either a source or destination operand, only the appropriate low-order byte or word (in byte or word operations, respectively) is used or
changed; the remaining high-order portion is unaffected. The least significant bit (LSB)
of a long-word integer is addressed as bit zero, and the most significant bit (MSB) is
addressed as bit 31. Figure 5-4 shows the organization of various types of data in the
data registers.
Quad-word data consists of two long words and represents the product of 32-bit multiply or the dividend of 32-bit divide operations (signed and unsigned). Quad-words
may be organized in any two data registers without restrictions on order or pairing.
There are no explicit instructions for the management of this data type, although the
MOVEM instruction can be used to move a quad-word into or out of the registers.
Binary-coded decimal (BCD) data represents decimal numbers in binary form. CPU32
BCD instructions use a format in which a byte contains two digits. The four LSB contain the least significant digit, and the four MSB contain the most significant digit. The
ABCD, SBCD, and NBCD instructions operate on two BCD digits packed into a single
byte.
MOTOROLA
5-4
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
31
MSB
30
1
0
LSB
BYTE
31
24 23
16 15
8 7
0
HIGH-ORDER BYTE
MIDDLE HIGH BYTE
MIDDLE LOW BYTE
LOW-ORDER BYTE
16-BIT WORD
31
16 15
HIGH-ORDER WORD
0
LOW-ORDER WORD
LONG WORD
31
0
LONG WORD
QUAD-WORD
63
MSB
62
32
ANY Dx
31
1
ANY Dy
0
LSB
Figure 5-4 Data Organization in Data Registers
5.2.2 Address Registers
Each address register and stack pointer is 32 bits wide and holds a 32-bit address. Address registers cannot be used for byte-sized operands. Therefore, when an address
register is used as a source operand, either the low-order word or the entire long-word
operand is used, depending upon the operation size. When an address register is
used as the destination operand, the entire register is affected, regardless of the operation size. If the source operand is a word size, it is sign-extended to 32 bits. Address registers are used primarily for addresses and to support address computation.
The instruction set includes instructions that add to, subtract from, compare, and move
the contents of address registers. Figure 5-5 shows the organization of addresses in
address registers.
31
16 15
SIGN EXTENDED
0
16-BIT ADDRESS OPERAND
31
0
FULL 32-BIT ADDRESS OPERAND
Figure 5-5 Address Organization in Address Registers
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-5
5
5.2.3 Program Counter
The PC contains the address of the next instruction to be executed by the CPU32. During instruction execution and exception processing, the processor automatically increments the contents of the PC or places a new value in the PC as appropriate.
5.2.4 Control Registers
The control registers described in this section contain control information for supervisor functions and vary in size. With the exception of the condition code register (the
user portion of the status register), they are accessed only by instructions at the supervisor privilege level.
5
5.2.4.1 Status Register
The status register (SR) stores the processor status. It contains the condition codes
that reflect the results of a previous operation and can be used for conditional instruction execution in a program. The condition codes are extend (X), negative (N), zero
(Z), overflow (V), and carry (C). The user (low-order) byte containing the condition
codes is the only portion of the SR information available at the user privilege level; it
is referenced as the condition code register (CCR) in user programs.
At the supervisor privilege level, software can access the full status register. The upper
byte of this register includes the interrupt priority (IP) mask (three bits), two bits for
placing the processor in one of two tracing modes or disabling tracing, and the supervisor/user bit for placing the processor at the desired privilege level.
Undefined bits in the status register are reserved by Motorola for future definition. The
undefined bits are read as zeros and should be written as zeros for future compatibility.
All operations to the SR and CCR are word-size operations, but for all CCR operations,
the upper byte is read as all zeros and is ignored when written, regardless of privilege
level.
Refer to APPENDIX D REGISTER SUMMARY for bit/field definitions and a diagram
of the status register.
5.2.4.2 Alternate Function Code Registers
Alternate function code registers (SFC and DFC) contain 3-bit function codes. Function codes can be considered extensions of the 24-bit linear address that optionally
provide as many as eight 16-Mbyte address spaces. The processor automatically generates function codes to select address spaces for data and programs at the user and
supervisor privilege levels and to select a CPU address space used for processor
functions (such as breakpoint and interrupt acknowledge cycles).
Registers SFC and DFC are used by the MOVES instruction to specify explicitly the
function codes of the memory address. The MOVEC instruction is used to transfer values to and from the alternate function code registers. This is a long-word transfer; the
upper 29 bits are read as zeros and are ignored when written.
MOTOROLA
5-6
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
5.2.5 Vector Base Register (VBR)
The VBR contains the base address of the 1024-byte exception vector table, consisting of 256 exception vectors. Exception vectors contain the memory addresses of routines that begin execution at the completion of exception processing. Refer to 5.9
Exception Processing for more information on the VBR and exception processing.
5.3 Memory Organization
Memory is organized on a byte-addressable basis in which lower addresses correspond to higher order bytes. For example, the address N of a long-word data item corresponds to the address of the most significant byte of the highest order word. The
address of the most significant byte of the low-order word is N + 2, and the address of
the least significant byte of the long word is N + 3. The CPU32 requires long-word and
word data and instructions to be aligned on word boundaries (refer to Figure 5-6).
Data misalignment is not supported.
5
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-7
7
6
5
BIT DATA
1 BYTE = 8 BITS
4
3
2
1
0
INTEGER DATA
1 BYTE = 8 BITS
8 7
15
MSB
BYTE 0
0
LSB
BYTE 1
BYTE 2
BYTE 3
WORD = 16 BITS
15
0
WORD 0
MSB
LSB
WORD 1
WORD 2
5
LONG WORD = 32 BITS
15
MSB
0
HIGH ORDER
LONG WORD 0
LOW ORDER
LSB
LONG WORD 1
LONG WORD 2
ADDRESS 1
ADDRESS = 32 BITS
15
MSB
0
HIGH ORDER
ADDRESS 0
LSB
LOW ORDER
ADDRESS 1
ADDRESS 2
MSB = Most Significant Bit
LSB = Least Significant Bit
DECIMAL DATA
15
BCD DIGITS = 1 BYTE
8 7
12 11
BCD 0
MSD
BCD 4
BCD 1
BCD 5
LSD
4 3
0
BCD 2
BCD 3
BCD 6
BCD 7
MSD = Most Significant Digit
LSD = Least Significant Digit
1125A
Figure 5-6 Memory Operand Addressing
MOTOROLA
5-8
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
5.4 Virtual Memory
The full addressing range of the CPU32 on the MC68331 is 16 Mbytes in each of eight
address spaces. Even though most systems implement a smaller physical memory,
the system can be made to appear to have a full 16 Mbytes of memory available to
each user program by using virtual memory techniques.
A system that supports virtual memory has a limited amount of high-speed physical
memory that can be accessed directly by the processor and maintains an image of a
much larger virtual memory on a secondary storage device. When the processor attempts to access a location in the virtual memory map that is not resident in physical
memory, a page fault occurs. The access to that location is temporarily suspended
while the necessary data is fetched from secondary storage and placed in physical
memory. The suspended access is then restarted or continued.
The CPU32 uses instruction restart, which requires that only a small portion of the internal machine state be saved. After correcting the fault, the machine state is restored,
and the instruction is fetched and started again. This process is completely transparent to the application program.
5.5 Addressing Modes
Addressing in the CPU32 is register-oriented. Most instructions allow the results of the
specified operation to be placed either in a register or directly in memory. There is no
need for extra instructions to store register contents in memory.
There are seven basic addressing modes:
• Register Direct
• Register Indirect
• Register Indirect with Index
• Program Counter Indirect with Displacement
• Program Counter Indirect with Index
• Absolute
• Immediate
The register indirect addressing modes include postincrement, predecrement, and offset capability. The program counter indirect mode also has index and offset capabilities. In addition to these addressing modes, many instructions implicitly specify the
use of the status register, stack pointer, and/or program counter.
5.6 Processing States
The processor is always in one of four processing states: normal, exception, halted, or
background. The normal processing state is associated with instruction execution; the
bus is used to fetch instructions and operands and to store results.
The exception processing state is associated with interrupts, trap instructions, tracing,
and other exception conditions. The exception may be internally generated explicitly
by an instruction or by an unusual condition arising during the execution of an instruction. Exception processing can be forced externally by an interrupt, a bus error, or a
reset.
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-9
5
The halted processing state is an indication of catastrophic hardware failure. For example, if during the exception processing of a bus error another bus error occurs, the
processor assumes that the system is unusable and halts.
The background processing state is initiated by breakpoints, execution of special instructions, or a double bus fault. Background processing is enabled by pulling BKPT
low during RESET. Background processing allows interactive debugging of the system via a simple serial interface.
5.7 Privilege Levels
The processor operates at one of two levels of privilege: user or supervisor. Not all instructions are permitted to execute at the user level, but all instructions are available
at the supervisor level. Effective use of privilege level can protect system resources
from uncontrolled access. The state of the S bit in the status register determines the
privilege level and whether the user stack pointer (USP) or supervisor stack pointer
(SSP) is used for stack operations.
5
5.8 Instructions
The CPU32 instruction set is summarized in Table 5-1. The instruction set of the
CPU32 is very similar to that of the MC68020. Two new instructions have been added
to facilitate controller applications: low-power stop (LPSTOP) and table lookup and interpolate (TBLS, TBLSN, TBLU, TBLUN).
The following MC68020 instructions are not implemented on the CPU32:
BFxxx
— Bit Field Instructions (BFCHG, BFCLR, BFEXTS, BFEXTU,
BFFFO, BFINS, BFSET, BFTST)
CALLM, RTM
— Call Module, Return Module
CAS, CAS2
— Compare and Swap (Read-Modify-Write Instructions)
cpxxx
— Coprocessor Instructions (cpBcc, cpDBcc, cpGEN, cpRESTORE,
cpSAVE, cpScc, cpTRAPcc)
PACK, UNPK
— Pack, Unpack BCD Instructions
Memory
— Memory Indirect Addressing Modes
The CPU32 traps on unimplemented instructions or illegal effective addressing
modes, allowing user-supplied code to emulate unimplemented capabilities or to define special purpose functions. However, Motorola reserves the right to use all currently unimplemented instruction operation codes for future M68000 core enhancements.
MOTOROLA
5-10
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
Table 5-1 Instruction Set Summary
Instruction
ABCD
Syntax
Dn, Dn–
(An), – (An)
Dn, <ea>
<ea>, Dn
<ea>, An
#<data>, <ea>
#<data>, <ea>
Dn, Dn–
(An), – (An)
<ea>, Dn
Dn, <ea>
#<data>, <ea>
#<data>, CCR
#<data>, SR
Operand Size
8
8
8, 16, 32
8, 16, 32
16, 32
8, 16, 32
8, 16, 32
8, 16, 32
8, 16, 32
8, 16, 32
8, 16, 32
8, 16, 32
8
16
BGND
Dn, Dn
#<data>, Dn
<ea>
Dn, Dn
#<data>, Dn
<ea>
<label>
Dn, <ea>
#<data>, <ea>
Dn, <ea>
#<data>, <ea>
none
8, 16, 32
8, 16, 32
16
8, 16, 32
8, 16, 32
16
8, 16, 32
8, 32
8, 32
8, 32
8, 32
none
BKPT
#<data>
none
BRA
BSET
CHK
CHK2
<label>
Dn, <ea>
#<data>, <ea>
<label>
Dn, <ea>
#<data>, <ea>
<ea>, Dn
<ea>, Rn
8, 16, 32
8, 32
8, 32
8, 16, 32
8, 32
8, 32
16, 32
8, 16, 32
CLR
CMP
CMPA
CMPI
CMPM
CMP2
DBcc
<ea>
<ea>, Dn
<ea>, An
#<data>, <ea>
(An) +, (An) +
<ea>, Rn
Dn, <label>
8, 16, 32
8, 16, 32
16, 32
8, 16, 32
8, 16, 32
8, 16, 32
16
DIVS/DIVU
<ea>, Dn
32/16 ⇒ 16: 16
ADD
ADDA
ADDI
ADDQ
ADDX
AND
ANDI
ANDI to CCR
ANDI to SR1
ASL
ASR
Bcc
BCHG
BCLR
BSR
BTST
MC68331
USER’S MANUAL
Operation
Source10 + Destination10+ X ⇒ Destination
Source + Destination ⇒ Destination
Source + Destination ⇒ Destination
Immediate data + Destination ⇒ Destination
Immediate data + Destination ⇒ Destination
Source + Destination + X ⇒ Destination
Source · Destination ⇒ Destination
Data · Destination ⇒ Destination
Source · CCR ⇒ CCR
Source · SR ⇒ SR
If condition true, then PC + d ⇒ PC
(<bit number> of destination ⇒ Z ⇒
bit of destination
(<bit number> of destination ⇒ Z;
0 ⇒ bit of destination
If background mode enabled, then enter
background mode, else format/vector offset ⇒ – (SSP);
PC ⇒ – (SSP); SR ⇒ – (SSP); (vector) ⇒ PC
If breakpoint cycle acknowledged, then execute
returned operation word, else trap as illegal
instruction.
PC + d ⇒ PC
(<bit number> of destination ⇒ Z;
1 ⇒ bit of destination
SP – 4 ⇒ SP; PC ⇒ (SP); PC + d ⇒ PC
(<bit number> of destination ⇒ Z
If Dn < 0 or Dn < (ea), then CHK exception
If Rn < lower bound or Rn > upper bound, then
CHK exception
0 ⇒ Destination
(Destination – Source), CCR shows results
(Destination – Source), CCR shows results
(Destination – Data), CCR shows results
(Destination – Source), CCR shows results
Lower bound Rn Upper bound, CCR shows result
If condition false, then Dn – 1 ⇒ PC;
if Dn ≠ (– 1), then PC + d ⇒ PC
Destination / Source ⇒ Destination
(signed or unsigned)
CENTRAL PROCESSING UNIT
MOTOROLA
5-11
5
Table 5-1 Instruction Set Summary (Continued)
Instruction
DIVSL/DIVUL
EOR
EORI
EORI to CCR
EORI to SR1
EXG
EXT
EXTB
ILLEGAL
5
JMP
JSR
LEA
LINK
LPSTOP1
LSL
LSR
MOVE
MOVEA
MOVEA1
MOVE from CCR
MOVE to CCR
MOVE from SR1
MOVE to SR1
MOVE USP1
MOVEC1
MOVEM
MOVEP
MOVEQ
MOVES1
MULS/MULU
NBCD
MOTOROLA
5-12
Syntax
〈ea〉, Dr : Dq
〈ea〉, Dq
〈ea〉, Dr : Dq
Dn, 〈ea〉
#〈data〉, 〈ea〉
#〈data〉, CCR
#〈data〉, SR
Rn, Rn
Dn
Dn
Dn
none
Operand Size
64/32 ⇒ 32 : 32
32/32 ⇒ 32
32/32 ⇒ 32 : 32
8, 16, 32
8, 16, 32
8
16
32
8 ⇒ 16
16 ⇒ 32
8 ⇒ 32
none
〈ea〉
〈ea〉
〈ea〉, An
An, #〈d〉
#〈data〉
Dn, Dn
#〈data〉, Dn
〈ea〉
Dn, Dn
#〈data〉, Dn
〈ea〉
〈ea〉, 〈ea〉
〈ea〉, An
USP, An
An, USP
CCR, 〈ea〉
〈ea〉, CCR
SR, 〈ea〉
<ea>, SR
none
none
32
16, 32
none
8, 16, 32
8, 16, 32
16
8, 16, 32
8, 16, 32
16
8, 16, 32
16, 32 ⇒ 32
32
32
16
16
16
16
USP, An
An, USP
Rc, Rn
Rn, Rc
list, <ea>
<ea>, list
Dn, (d16, An)
(d16, An), Dn
32
32
32
32
16, 32
16, 32 ⇒ 32
16, 32
#<data>, Dn
Rn, <ea>
<ea>, Rn
<ea>, Dn
<ea>, Dl
<ea>, Dh : Dl
<ea>
8 ⇒ 32
8, 16, 32
16 * 16 ⇒ 32
32 * 32 ⇒ 32
32 * 32 ⇒ 64
8
8
Operation
Destination / Source ⇒ Destination
(signed or unsigned)
Source ⊕ Destination ⇒ Destination
Data ⊕ Destination ⇒ Destination
Source ⊕ CCR ⇒ CCR
Source ⊕ SR ⇒ SR
Rn ⇒ Rn
Sign extended Destination ⇒ Destination
Sign extended Destination ⇒ Destination
SSP – 2 ⇒ SSP; vector offset ⇒ (SSP);
SSP – 4 ⇒ SSP; PC ⇒ (SSP);
SSP – 2 ⇒ SSP; SR ⇒ (SSP);
illegal instruction vector address ⇒ PC
Destination ⇒ PC
SP – 4 ⇒ SP; PC ⇒ (SP); destination ⇒ PC
〈ea〉 ⇒ An
SP – 4 ⇒ SP, An ⇒ (SP); SP ⇒ An, SP + d ⇒ SP
Data ⇒ SR; interrupt mask ⇒ EBI; STOP
Source ⇒ Destination
Source ⇒ Destination
USP ⇒ An
An ⇒ USP
CCR ⇒ Destination
Source ⇒ CCR
SR ⇒ Destination
Source ⇒ SR
USP ⇒ AnAn ⇒ USP
Rc ⇒ RnRn ⇒ Rc
Listed registers ⇒ Destination
Source ⇒ Listed registers
Dn [31 : 24] ⇒ (An + d); Dn [23 : 16] ⇒ (An + d + 2);
Dn [15 : 8] ⇒ (An + d + 4); Dn [7 : 0] ⇒ (An + d + 6)
(An + d) ⇒ Dn [31 : 24]; (An + d + 2) ⇒ Dn [23 : 16];
(An + d + 4) ⇒ Dn [15 : 8]; (An + d + 6) ⇒ Dn [7 : 0]
Immediate data ⇒ Destination
Rn ⇒ Destination using DFC
Source using SFC ⇒ Rn
Source * Destination ⇒ Destination
(signed or unsigned)
0 – Destination10 – X ⇒ Destination
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
Table 5-1 Instruction Set Summary (Continued)
Instruction
NEG
NEGX
NOP
NOT
OR
Syntax
<ea>
<ea>
none
<ea>
<ea>, Dn
Dn, <ea>
#<data>, <ea>
#<data>, CCR
#<data>, SR
Operand Size
8, 16, 32
8, 16, 32
none
8, 16, 32
8, 16, 32
8, 16, 32
8, 16, 32
16
16
Operation
0 – Destination ⇒ Destination
0 – Destination – X ⇒ Destination
PC + 2 ⇒ PC
Destination ⇒ Destination
Source; Destination ⇒ Destination
<ea>
none
32
none
SP – 4 ⇒ SP; <ea> ⇒ SP
Assert RESET line
RTE1
Dn, Dn
#<data>, Dn
<ea>
Dn, Dn
#<data>, Dn
<ea>
Dn, Dn
#<data>,
Dn<ea>
Dn, Dn
#<data>, Dn
<ea>
#<d>
none
8, 16, 32
8, 16, 32
16
8, 16, 32
8, 16, 32
16
8, 16, 32
8, 16, 32
16
8, 16, 32
8, 16, 32
16
16
none
RTR
none
none
RTS
SBCD
none
Dn, Dn
– (An), – (An)
<ea>
none
88
ORI
ORI to CCR
ORI to SR1
PEA
RESET1
ROL
ROR
ROXL
ROXR
RTD
Scc
STOP1
SUB
SUBA
SUBI
SUBQ
SUBX
SWAP
TBLS/TBLU
8
5
(SP) ⇒ PC; SP + 4 + d ⇒ SP
(SP) ⇒ SR; SP + 2 ⇒ SP; (SP) ⇒ PC;
SP + 4 ⇒ SP;
restore stack according to format
(SP) ⇒ CCR; SP + 2 ⇒ SP; (SP) ⇒ PC;
SP + 4 ⇒ SP
(SP) ⇒ PC; SP + 4 ⇒ SP
Destination10 – Source10 – X ⇒ Destination
#<data>
16
If condition true, then destination bits are set to 1;
else, destination bits are cleared to 0
Data ⇒ SR; STOP
<ea>, Dn
Dn, <ea>
<ea>, An
#<data>, <ea>
#<data>, <ea>
Dn, Dn
– (An), – (An)
Dn
<ea>, Dn
Dym : Dyn, Dn
8, 16, 32
Destination – Source ⇒ Destination
16, 32
8, 16, 32
8, 16, 32
8, 16, 32
8, 16, 32
16
8, 16, 32
Destination – Source ⇒ Destination
Destination – Data ⇒ Destination
Destination – Data ⇒ Destination
Destination – Source – X ⇒ Destination
TBLSN/TBLUN
<ea>, Dn
Dym : Dyn, Dn
8, 16, 32
TRAP
#<data>
none
MC68331
USER’S MANUAL
Data; Destination ⇒ Destination
Source; CCR ⇒ SR
Source; SR ⇒ SR
Dyn – Dym ⇒ Temp
(Temp * Dn [7 : 0]) ⇒ Temp
(Dym * 256) + Temp ⇒ Dn
Dyn – Dym ⇒ Temp
(Temp * Dn [7 : 0]) / 256 ⇒ Temp
Dym + Temp ⇒ Dn
SSP – 2 ⇒ SSP; format/vector offset ⇒ (SSP);
SSP – 4 ⇒ SSP; PC ⇒ (SSP); SR ⇒ (SSP);
vector address ⇒ PC
CENTRAL PROCESSING UNIT
MOTOROLA
5-13
Table 5-1 Instruction Set Summary (Continued)
Instruction
TRAPcc
TRAPV
TST
UNLK
Syntax
none
#<data>
none
<ea>
An
Operand Size
none
16, 32
none
8, 16, 32
32
Operation
If cc true, then TRAP exception
If V set, then overflow TRAP exception
Source – 0, to set condition codes
An ⇒ SP; (SP) ⇒ An, SP + 4 ⇒ SP
NOTE:
1. Privileged instruction
5.8.1 M68000 Family Compatibility
It is the philosophy of the M68000 family that all user-mode programs can execute unchanged on a more advanced processor, and supervisor-mode programs and exception handlers should require only minimal alteration.
5
The CPU32 can be thought of as an intermediate member of the M68000 Family. Object code from an MC68000 or MC68010 may be executed on the CPU32, and many
of the instruction and addressing mode extensions of the MC68020 are also supported. Refer to the CPU32 reference manual for a detailed comparison of the CPU32 and
MC68020 instruction set.
5.8.2 Special Control Instructions
Low power stop (LPSTOP) and table lookup and interpolate (TBL) instructions have
been added to the MC68000 instruction set for use in controller applications.
5.8.2.1 Low Power Stop (LPSTOP)
In applications where power consumption is a consideration, the CPU32 forces the device into a low power standby mode when immediate processing is not required. The
low power stop mode is entered by executing the LPSTOP instruction. The processor
remains in this mode until a user-specified (or higher) interrupt level or reset occurs.
5.8.2.2 Table Lookup and Interpolate (TBL)
To maximize throughput for real-time applications, reference data is often precalculated and stored in memory for quick access. Storage of many data points can require
an inordinate amount of memory. The table instruction requires that only a sample of
data points be stored, reducing memory requirements. The TBL instruction recovers
intermediate values using linear interpolation. Results can be rounded with a roundto-nearest algorithm.
5.9 Exception Processing
Exception processing is a special condition that preempts normal processing. Exception processing is the transition from normal mode program execution to execution of
a routine that deals with an exception.
MOTOROLA
5-14
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
5.9.1 Exception Vectors
An exception vector is the address of a routine that handles an exception. The vector
base register (VBR) contains the base address of a 1024-byte exception vector table,
which consists of 256 exception vectors. Sixty-four vectors are defined by the processor, and 192 vectors are reserved for user definition as interrupt vectors. Except for
the reset vector, each vector in the table is one long word in length. The reset vector
is two long words in length. Refer to Table 5-2 for information on vector assignment.
CAUTION
Because there is no protection on the 64 processor-defined vectors,
external devices can access vectors reserved for internal purposes.
This practice is strongly discouraged.
All exception vectors, except the reset vector, are located in supervisor data space.
The reset vector is located in supervisor program space. Only the initial reset vector is
fixed in the processor memory map. When initialization is complete, there are no fixed
assignments. Since the VBR stores the vector table base address, the table can be
located anywhere in memory. It can also be dynamically relocated for each task executed by an operating system.
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-15
5
Table 5-2 Exception Vector Assignments
5
Vector
Number
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16–23
24
25
26
27
28
29
30
31
32–47
48–58
59–63
64–255
Vector Offset
Dec
Hex
Space
0
000
SP
4
004
SP
8
008
SD
12
00C
SD
16
010
SD
20
014
SD
24
018
SD
28
01C
SD
32
020
SD
36
024
SD
40
028
SD
44
02C
SD
48
030
SD
52
034
SD
56
038
SD
60
03C
SD
64
040
SD
92
05C
96
060
SD
100
064
SD
104
068
SD
108
06C
SD
112
070
SD
116
074
SD
120
078
SD
124
07C
SD
128
080
SD
188
0BC
192
0C0
SD
232
0E8
236
0EC
SD
252
0FC
256
100
SD
1020
3FC
Assignment
Reset: Initial Stack Pointer
Reset: Initial Program Counter
Bus Error
Address Error
Illegal Instruction
Zero Division
CHK, CHK2 Instructions
TRAPcc, TRAPV Instructions
Privilege Violation
Trace
Line 1010 Emulator
Line 1111 Emulator
Hardware Breakpoint
(Reserved, Coprocessor Protocol Violation)
Format Error and Uninitialized Interrupt
Format Error and Uninitialized Interrupt
(Unassigned, Reserved)
Spurious Interrupt
Level 1 Interrupt Autovector
Level 2 Interrupt Autovector
Level 3 Interrupt Autovector
Level 4 Interrupt Autovector
Level 5 Interrupt Autovector
Level 6 Interrupt Autovector
Level 7 Interrupt Autovector
Trap Instruction Vectors (0–15)
(Reserved, Coprocessor)
(Unassigned, Reserved)
User Defined Vectors (192)
Each vector is assigned an 8-bit number. Vector numbers for some exceptions are obtained from an external device; others are supplied by the processor. The processor
multiplies the vector number by four to calculate vector offset, then adds the offset to
the contents of the VBR. The sum is the memory address of the vector.
5.9.2 Types of Exceptions
An exception can be caused by internal or external events.
An internal exception can be generated by an instruction or by an error. The TRAP,
TRAPcc, TRAPV, BKPT, CHK, CHK2, RTE, and DIV instructions can cause exceptions during normal execution. Illegal instructions, instruction fetches from odd addresses, word or long-word operand accesses from odd addresses, and privilege
violations also cause internal exceptions.
MOTOROLA
5-16
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
Sources of external exception include interrupts, breakpoints, bus errors, and reset requests. Interrupts are peripheral device requests for processor action. Breakpoints are
used to support development equipment. Bus error and reset are used for access control and processor restart.
5.9.3 Exception Processing Sequence
For all exceptions other than a reset exception, exception processing occurs in the following sequence. Refer to 4.6 Reset for details of reset processing.
As exception processing begins, the processor makes an internal copy of the status
register. After the copy is made, the processor state bits in the status register are
changed — the S bit is set, establishing supervisor access level, and bits T1 and T0
are cleared, disabling tracing. For reset and interrupt exceptions, the interrupt priority
mask is also updated.
Next, the exception number is obtained. For interrupts, the number is fetched from
CPU space $F (the bus cycle is an interrupt acknowledge). For all other exceptions,
internal logic provides a vector number.
Next, current processor status is saved. An exception stack frame is created and
placed on the supervisor stack. All stack frames contain copies of the status register
and the program counter for use by RTE. The type of exception and the context in
which the exception occurs determine what other information is stored in the stack
frame.
Finally, the processor prepares to resume normal execution of instructions. The exception vector offset is determined by multiplying the vector number by four, and the
offset is added to the contents of the VBR to determine displacement into the exception vector table. The exception vector is loaded into the program counter. If no other
exception is pending, the processor will resume normal execution at the new address
in the PC.
5.10 Development Support
The following features have been implemented on the CPU32 to enhance the instrumentation and development environment:
• M68000 Family Development Support
• Background Debugging Mode
• Deterministic Opcode Tracking
• Hardware Breakpoints
5.10.1 M68000 Family Development Support
All M68000 Family members include features to facilitate applications development.
These features include the following:
Trace on Instruction Execution — M68000 Family processors include an instructionby-instruction tracing facility as an aid to program development. The MC68020,
MC68030, MC68040, and CPU32 also allow tracing only of those instructions
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-17
5
causing a change in program flow. In the trace mode, a trace exception is generated after an instruction is executed, allowing a debugger program to monitor the
execution of a program under test.
Breakpoint Instruction — An emulator may insert software breakpoints into the target
code to indicate when a breakpoint has occurred. On the MC68010, MC68020,
MC68030, and CPU32, this function is provided via illegal instructions, $4848–
$484F, to serve as breakpoint instructions.
Unimplemented Instruction Emulation — During instruction execution, when an attempt is made to execute an illegal instruction, an illegal instruction exception occurs. Unimplemented instructions (F-line, A-line,...) utilize separate exception
vectors to permit efficient emulation of unimplemented instructions in software.
5
5.10.2 Background Debugging Mode
Microcomputer systems generally provide a debugger, implemented in software, for
system analysis at the lowest level. The background debugging mode (BDM) on the
CPU32 is unique in that the debugger has been implemented in CPU microcode.
BDM incorporates a full set of debugging options: registers can be viewed or altered,
memory can be read or written to, and test features can be invoked.
A resident debugger simplifies implementation of an in-circuit emulator. In a common
setup (see Figure 5-7), emulator hardware replaces the target system processor. A
complex, expensive pod-and-cable interface provides a communication path between
the target system and the emulator.
By contrast, an integrated debugger supports use of a bus state analyzer (BSA) for incircuit emulation. The processor remains in the target system (see Figure 5-8) and the
interface is simplified. The BSA monitors target processor operation and the on-chip
debugger controls the operating environment. Emulation is much “closer” to target
hardware, and many interfacing problems (e.g., limitations on high-frequency operation, AC and DC parametric mismatches, and restrictions on cable length) are minimized.
TARGET
SYSTEM
IN-CIRCUIT
EMULATOR
TARGET
MCU
1128A
Figure 5-7 Common In-Circuit Emulator Diagram
MOTOROLA
5-18
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
TARGET
SYSTEM
BUS STATE
ANALYZER
TARGET
MCU
1129A
Figure 5-8 Bus State Analyzer Configuration
5.10.2.1 Enabling BDM
Accidentally entering BDM in a non-development environment can lock up the CPU32
when the serial command interface is not available. For this reason, BDM is enabled
during reset via the breakpoint (BKPT) signal.
BDM operation is enabled when BKPT is asserted (low), at the rising edge of RESET.
BDM remains enabled until the next system reset. A high BKPT signal on the trailing
edge of RESET disables BDM. BKPT is latched again on each rising transition of RESET. BKPT is synchronized internally, and must be held low for at least two clock cycles prior to negation of RESET.
BDM enable logic must be designed with special care. If hold time on BKPT extends
into the first bus cycle following reset, the bus cycle could inadvertently be tagged with
a breakpoint. Refer to the SIM Reference Manual (SIMRM/AD) for timing information.
5.10.2.2 BDM Sources
When BDM is enabled, any of several sources can cause the transition from normal
mode to BDM. These sources include external breakpoint hardware, the BGND instruction, a double bus fault, and internal peripheral breakpoints. If BDM is not enabled
when an exception condition occurs, the exception is processed normally. Table 5-3
summarizes the processing of each source for both enabled and disabled cases. As
shown in Table 5-3, the BKPT instruction never causes a transition into BDM.
Table 5-3 BDM Source Summary
Source
BKPT
Double Bus Fault
BGND Instruction
BKPT Instruction
MC68331
USER’S MANUAL
BDM Enabled
Background
Background
Background
Opcode Substitution/
Illegal Instruction
CENTRAL PROCESSING UNIT
BDM Disabled
Breakpoint Exception
Halted
Illegal Instruction
Opcode Substitution/
Illegal Instruction
MOTOROLA
5-19
5
5.10.2.2.1 External BKPT Signal
Once enabled, BDM is initiated whenever assertion of BKPT is acknowledged. If BDM
is disabled, a breakpoint exception (vector $0C) is acknowledged. The BKPT input has
the same timing relationship to the data strobe trailing edge as does read cycle data.
There is no breakpoint acknowledge bus cycle when BDM is entered.
5.10.2.2.2 BGND Instruction
An illegal instruction, $4AFA, is reserved for use by development tools. The CPU32
defines $4AFA (BGND) to be a BDM entry point when BDM is enabled. If BDM is disabled, an illegal instruction trap is acknowledged.
5
5.10.2.2.3 Double Bus Fault
The CPU32 normally treats a double bus fault, or two bus faults in succession, as a
catastrophic system error, and halts. When this condition occurs during initial system
debug (a fault in the reset logic), further debugging is impossible until the problem is
corrected. In BDM, the fault can be temporarily bypassed, so that the origin of the fault
can be isolated and eliminated.
5.10.2.2.4 Peripheral Breakpoints
CPU32 peripheral breakpoints are implemented in the same way as external breakpoints — peripherals request breakpoints by asserting the BKPT signal. Consult the
appropriate peripheral user's manual for additional details on the generation of peripheral breakpoints.
5.10.2.3 Entering BDM
When the processor detects a breakpoint or a double bus fault, or decodes a BGND
instruction, it suspends instruction execution and asserts the FREEZE output. This is
the first indication that the processor has entered BDM. Once FREEZE has been asserted, the CPU enables the serial communication hardware and awaits a command.
The CPU writes a unique value indicating the source of BDM transition into temporary
register A (ATEMP) as part of the process of entering BDM. A user can poll ATEMP
and determine the source (see Table 5-4) by issuing a read system register command
(RSREG). ATEMP is used in most debugger commands for temporary storage — it is
imperative that the RSREG command be the first command issued after transition into
BDM.
Table 5-4 Polling the BDM Entry Source
Source
Double Bus Fault
BGND Instruction
Hardware Breakpoint
ATEMP[31:16]
SSW*
$0000
$0000
ATEMP[15:0]
$FFFF
$0001
$0000
*Special status word (SSW) is described in detail in the CPU32 Reference Manual (CPU32RM/AD).
A double bus fault during initial stack pointer/program counter (SP/PC) fetch sequence
is distinguished by a value of $FFFFFFFF in the current instruction PC. At no other
time will the processor write an odd value into this register.
MOTOROLA
5-20
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
5.10.2.4 BDM Commands
Commands consist of one 16-bit operation word and can include one or more 16-bit
extension words. Each incoming word is read as it is assembled by the serial interface.
The microcode routine corresponding to a command is executed as soon as the command is complete. Result operands are loaded into the output shift register to be shifted out as the next command is read. This process is repeated for each command until
the CPU returns to normal operating mode. Table 5-5 is a summary of background
mode commands.
Table 5-5 Background Mode Command Summary
Command
Read D/A Register
Write D/A Register
Read System Register
Write System Register
Read Memory Location
Write Memory Location
Dump Memory Block
Fill Memory Block
Resume Execution
Patch User Code
Reset Peripherals
No Operation
Mnemonic
RDREG/RAREG
Description
Read the selected address or data register and
return the results via the serial interface.
WDREG/WAREG The data operand is written to the specified address or data register.
RSREG
The specified system control register is read. All
registers that can be read in supervisor mode can
be read in background mode.
WSREG
The operand data is written into the specified system control register.
READ
Read the sized data at the memory location specified by the long-word address. The source function code register (SFC) determines the address
space accessed.
WRITE
Write the operand data to the memory location
specified by the long-word address. The destination function code (DFC) register determines the
address space accessed.
DUMP
Used in conjunction with the READ command to
dump large blocks of memory. An initial READ is
executed to set up the starting address of the
block and retrieve the first result. Subsequent operands are retrieved with the DUMP command.
FILL
Used in conjunction with the WRITE command to
fill large blocks of memory. An initial WRITE is executed to set up the starting address of the block
and supply the first operand. Subsequent operands are written with the FILL command.
GO
The pipe is flushed and re-filled before resuming
instruction execution at the current PC.
CALL
Current program counter is stacked at the location of the current stack pointer. Instruction execution begins at user patch code.
RST
Asserts RESET for 512 clock cycles. The CPU is
not reset by this command. Synonymous with the
CPU RESET instruction.
NOP
NOP performs no operation and may be used as
a null command.
5.10.2.5 Background Mode Registers
BDM processing uses three special purpose registers to keep track of program context
during development. A description of each follows.
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-21
5
5.10.2.5.1 Fault Address Register (FAR)
The FAR contains the address of the faulting bus cycle immediately following a bus or
address error. This address remains available until overwritten by a subsequent bus
cycle. Following a double bus fault, the FAR contains the address of the last bus cycle.
The address of the first fault (if there was one) is not visible to the user.
5.10.2.5.2 Return Program Counter (RPC)
The RPC points to the location where fetching will commence after transition from
background mode to normal mode. This register should be accessed to change the
flow of a program under development. Changing the RPC to an odd value will cause
an address error when normal mode prefetching begins.
5
5.10.2.5.3 Current Instruction Program Counter (PCC)
The PCC holds a pointer to the first word of the last instruction executed prior to transition into background mode. Due to instruction pipelining, the instruction pointed to
may not be the instruction which caused the transition. An example is a breakpoint on
a released write. The bus cycle may overlap as many as two subsequent instructions
before stalling the instruction sequencer. A breakpoint asserted during this cycle will
not be acknowledged until the end of the instruction executing at completion of the bus
cycle. PCC will contain $00000001 if BDM is entered via a double bus fault immediately out of reset.
5.10.2.6 Returning from BDM
BDM is terminated when a resume execution (GO) or call user code (CALL) command
is received. Both GO and CALL flush the instruction pipeline and refetch instructions
from the location pointed to by the RPC.
The return PC and the memory space referred to by the status register SUPV bit reflect
any changes made during BDM. FREEZE is negated prior to initiating the first
prefetch. Upon negation of FREEZE, the serial subsystem is disabled, and the signals
revert to IPIPE/IFETCH functionality.
5.10.2.7 Serial Interface
Communication with the CPU32 during BDM occurs via a dedicated serial interface,
which shares pins with other development features. Figure 5-9 is a block diagram of
the interface. The BKPT signal becomes the serial clock (DSCLK); serial input data
(DSI) is received on IFETCH, and serial output data (DSO) is transmitted on IPIPE.
MOTOROLA
5-22
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
CPU
DEVELOPMENT SYSTEM
INSTRUCTION
REGISTER BUS
DATA
16
16
0
COMMAND LATCH
RCV DATA LATCH
DSI
SERIAL IN
PARALLEL OUT
PARALLEL IN
SERIAL OUT
DSO
PARALLEL IN
SERIAL OUT
SERIAL IN
PARALLEL OUT
5
16
STATUS
RESULT LATCH
EXECUTION
UNIT
16
SYNCHRONIZE
MICROSEQUENCER
STATUS
M
CONTROL
LOGIC
DATA
DSCLK
CONTROL
LOGIC
SERIAL
CLOCK
32 DEBUG I/O BLOCK
Figure 5-9 Debug Serial I/O Block Diagram
The serial interface uses a full-duplex synchronous protocol similar to the serial peripheral interface (SPI) protocol. The development system serves as the master of the
serial link since it is responsible for the generation of DSCLK. If DSCLK is derived from
the CPU32 system clock, development system serial logic is unhindered by the operating frequency of the target processor. Operable frequency range of the serial clock
is from DC to one-half the processor system clock frequency.
The serial interface operates in full-duplex mode —data is transmitted and received
simultaneously by both master and slave devices. In general, data transitions occur on
the falling edge of DSCLK and are stable by the following rising edge of DSCLK. Data
is transmitted MSB first, and is latched on the rising edge of DSCLK.
The serial data word is 17 bits wide — 16 data bits and a status/control bit. Bit 16 indicates the status of CPU-generated messages as shown in Table 5-6.
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-23
16
15
0
S/C
DATA FIELD
⇑
STATUS CONTROL BIT
Figure 5-10 BDM Serial Data Word
Table 5-6 CPU Generated Message Encoding
Bit 16
0
0
1
1
1
5
Data
xxxx
FFFF
0000
0001
FFFF
Message Type
Valid Data Transfer
Command Complete; Status OK
Not Ready with Response; Come Again
BERR Terminated Bus Cycle; Data Invalid
Illegal Command
Command and data transfers initiated by the development system should clear bit 16.
The current implementation ignores this bit; however, Motorola reserves the right to
use this bit for future enhancements.
5.10.2.8 Recommended BDM Connection
In order to provide for use of development tools when an MCU is installed in a system,
Motorola recommends that appropriate signal lines be routed to a male Berg connector or double-row header installed on the circuit board with the MCU, as shown in the
following figure.
DS
1
2
BERR
GND
3
4
BKPT/DSCLK
GND
5
6
FREEZE
RESET
7
8
IFETCH/DSI
VDD
9
10
IPIPE/DSO
32 BERG
Figure 5-11 BDM Connector Pinout
5.10.3 Deterministic Opcode Tracking
CPU32 function code outputs are augmented by two supplementary signals to monitor
the instruction pipeline. The instruction pipe (IPIPE) output indicates the start of each
new instruction and each mid-instruction pipeline advance. The instruction fetch
MOTOROLA
5-24
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
(IFETCH) output identifies the bus cycles in which the operand is loaded into the instruction pipeline. Pipeline flushes are also signaled with IFETCH. Monitoring these
two signals allows a bus analyzer to synchronize itself to the instruction stream and
monitor its activity.
5.10.4 On-Chip Breakpoint Hardware
An external breakpoint input and on-chip breakpoint hardware allow a breakpoint trap
on any memory access. Off-chip address comparators preclude breakpoints unless
show cycles are enabled. Breakpoints on instruction prefetches that are ultimately
flushed from the instruction pipeline are not acknowledged; operand breakpoints are
always acknowledged. Acknowledged breakpoints initiate exception processing at the
address in exception vector number 12, or alternately enter background mode.
5.11 Loop Mode Instruction Execution
The CPU32 has several features that provide efficient execution of program loops.
One of these features is the DBcc looping primitive instruction. To increase the performance of the CPU32, a loop mode has been added to the processor. The loop mode
is used by any single word instruction that does not change the program flow. Loop
mode is implemented in conjunction with the DBcc instruction. Figure 5-12 shows the
required form of an instruction loop for the processor to enter loop mode.
ONE WORD INSTRUCTION
DBCC
DBCC DISPLACEMENT
$FFFC = – 4
1126A
Figure 5-12 Loop Mode Instruction Sequence
The loop mode is entered when the DBcc instruction is executed, and the loop displacement is –4. Once in loop mode, the processor performs only the data cycles associated with the instruction and suppresses all instruction fetches. The termination
condition and count are checked after each execution of the data operations of the
looped instruction. The CPU32 automatically exits the loop mode on interrupts or other
exceptions. All single word instructions that do not cause a change of flow can be
looped.
MC68331
USER’S MANUAL
CENTRAL PROCESSING UNIT
MOTOROLA
5-25
5
5
MOTOROLA
5-26
CENTRAL PROCESSING UNIT
MC68331
USER’S MANUAL
SECTION 6QUEUED SERIAL MODULE
This section is an overview of queued serial module (QSM) function. Refer to the QSM
Reference Manual (QSMRM/AD) for complete information about the QSM.
6.1 General
The QSM contains two serial interfaces, the queued serial peripheral interface (QSPI)
and the serial communication interface (SCI). Figure 6-1 is a block diagram of the
QSM.
MISO/PQS0
MOSI/PQS1
SCK/PQS2
PCS0/SS/PQS3
PCS1/PQS4
PCS2/PQS5
PCS3/PQS6
QSPI
PORT QS
IMB
INTERFACE
LOGIC
TXD/PQS7
SCI
RXD
QSM BLOCK
Figure 6-1 QSM Block Diagram
The QSPI provides easy peripheral expansion or interprocessor communication
through a full-duplex, synchronous, three-line bus. Four programmable peripheral chip
selects can select up to 16 peripheral devices. A self-contained RAM queue allows up
to sixteen serial transfers of eight to sixteen bits each or transmission of a 256-bit data
stream without CPU intervention. A special wraparound mode supports continuous
sampling of a serial peripheral, with automatic QSPI RAM updating, for efficient interfacing to A/D converters.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-1
6
The SCI provides a standard nonreturn to zero (NRZ) mark/space format. It will operate in either full- or half-duplex mode. There are separate transmitter and receiver enable bits and dual data buffers. A modulus-type baud rate generator provides rates
from 64 to 524 kbaud with a 16.78-MHz system clock, or 110 to 655 kbaud with a
20.97-MHz system clock. Word length of either eight or nine bits can be selected. Optional parity generation and detection provide either even or odd parity check capability. Advanced error detection circuitry catches glitches of up to 1/16 of a bit time in
duration. Wakeup functions allow the CPU to run uninterrupted until meaningful data
is available.
6
6.2 QSM Registers and Address Map
There are four types of QSM registers: QSM global registers, QSM pin control registers, QSPI registers, and SCI registers. Global registers and pin control registers are
discussed in 6.2.1 QSM Global Registers and 6.2.2 QSM Pin Control Registers.
QSPI and SCI registers are discussed in 6.3 Queued Serial Peripheral Interface and
6.4 Serial Communication Interface. Writes to unimplemented register bits have no
meaning or effect, and reads from unimplemented bits always return a logic zero value.
The QSM address map includes the QSM registers and the QSPI RAM. The module
mapping (MM) bit in the SIM configuration register (SIMCR) defines the most significant bit (ADDR23) of the IMB address for each module in the MCU.
Refer to APPENDIX D REGISTER SUMMARY for a QSM address map and register
bit/field definitions. SECTION 4 SYSTEM INTEGRATION MODULE contains more information about how the state of MM affects the system.
6.2.1 QSM Global Registers
The QSM configuration register (QSMCR) contains parameters for interfacing to the
CPU32 and the intermodule bus. The QSM test register (QTEST) is used during factory test of the QSM. The QSM interrupt level register (QILR) interrupt level register
(QILR) determines the priority of interrupts requested by the QSM and the vector used
when an interrupt is acknowledged. The QSM interrupt vector register (QIVR) interrupt
vector register (QIVR) contains the interrupt vector for both QSM submodules. QILR
and QIVR are 8-bit registers located at the same word address. Refer to APPENDIX
D REGISTER SUMMARY for register bit and field definitions.
6.2.1.1 Low-Power Stop Operation
When the STOP bit in the QSMCR is set, the system clock input to the QSM is disabled
and the module enters a low-power operating state. QSMCR is the only register guaranteed to be readable while STOP is asserted. The QSPI RAM is not readable, but
writes to RAM or any register are guaranteed valid while STOP is asserted. STOP can
be set by the CPU and by reset.
System software must stop the QSPI and SCI before asserting STOP to prevent data
corruption and simplify restart. Disable both SCI receiver and transmitter after transfers in progress are complete. Halt the QSPI by setting the HALT bit in SPCR3 and
MOTOROLA
6-2
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
then setting STOP after the HALTA flag is set. Refer to SECTION 4 SYSTEM INTEGRATION MODULE for more information about low-power operation.
6.2.1.2 Freeze Operation
The freeze (FRZ[1:0]) bits in the QSMCR are used to determine what action is taken
by the QSM when the IMB FREEZE signal is asserted. FREEZE is asserted when the
CPU enters background debugging mode. At the present time, FRZ0 has no effect;
setting FRZ1 causes the QSPI to halt on the first transfer boundary following FREEZE
assertion. Refer to SECTION 5 CENTRAL PROCESSING UNIT for more information
about background debugging mode.
6.2.1.3 QSM Interrupts
Both the QSPI and SCI can make interrupt requests on the IMB. Each has a separate
interrupt request priority register, but a single vector register is used to generate exception vector numbers.
The values of the ILQSPI and ILSCI fields in the QILR determine the priority of QSPI
and SCI interrupt requests. The values in these fields correspond to internal interrupt
request signals IRQ[7:1]. A value of %111 causes IRQ7 to be asserted when a QSM
interrupt request is made; lower field values cause corresponding lower-numbered interrupt request signals to be asserted. Setting field value to %000 disables interrupts.
If ILQSPI and ILSCI have the same nonzero value, and the QSPI and SCI make simultaneous interrupt requests, the QSPI has priority.
When the CPU32 acknowledges an interrupt request, it places the value in the interrupt priority (IP) mask in the CPU status register on the address bus. The QSM compares IP mask value to request priority to determine whether it should contend for
arbitration priority. Arbitration priority is determined by the value of the IARB field in the
QSMCR. Each module that generates interrupts must have a nonzero IARB value. Arbitration is performed by means of serial assertion of IARB field bit values.
When the QSM wins interrupt arbitration, it responds to the CPU interrupt acknowledge cycle by placing an interrupt vector number on the data bus. The vector number
is used to calculate displacement into the CPU32 exception vector table. SCI and
QSPI vector numbers are generated from the value in the QIVR INTV field. The values
of bits INTV[7:1] are the same for QSPI and SCI, but the value of INTV0 is supplied by
the QSM when an interrupt request is made. INTV0 = 0 for SCI interrupt requests;
INTV0 = 1 for QSPI requests.
At reset, INTV is initialized to $0F, the uninitialized interrupt vector number. To enable
interrupt-driven serial communication, a user-defined vector number ($40–$FF) must
be written to QIVR, and interrupt handler routines must be located at the addresses
pointed to by the corresponding vector. CPU writes to INTV0 have no meaning or effect. Reads of INTV0 return a value of one.
Refer to SECTION 5 CENTRAL PROCESSING UNIT and SECTION 4 SYSTEM INTEGRATION MODULE for more information about exceptions and interrupts.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-3
6
6.2.2 QSM Pin Control Registers
The QSM uses nine pins. Eight of the pins can be used for serial communication or for
parallel I/O. Clearing a bit in the port QS pin assignment register (PQSPAR) assigns
the corresponding pin to general-purpose I/O; setting a bit assigns the pin to the QSPI.
PQSPAR does not affect operation of the SCI.
The port QS data direction register (DDRQS) determines whether pins are inputs or
outputs. Clearing a bit makes the corresponding pin an input; setting a bit makes the
pin an output. DDRQS affects both QSPI function and I/O function. DDQS1 determines the direction of the TXD pin only when the SCI transmitter is disabled. When the
SCI transmitter is enabled, the TXD pin is an output. PQSPAR and DDRQS are 8-bit
registers located at the same word address. Table 6-1 is a summary of QSM pin functions.
The port QS data register (PORTQS) latches I/O data. Writes to PORTQS drive pins
defined as outputs. PORTQS reads return data present on the pins when the read is
made. To avoid driving undefined data, first write PORTQS, then configure DDRQS.
6
Table 6-1 QSM Pin Function
QSM Pin
Mode
DDRQS Bit
MISO
Master
DDQS0
Slave
MOSI
Master
DDQS1
Slave
SCK1
Master
DDQS2
Slave
PCS0/SS
Master
DDQS3
Slave
PCS[3:1]
Master
DDQS[4:6]
Slave
TXD2
RXD
Transmit
Receive
DDQS7
None
Bit
State
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
X
NA
Pin Function
Serial Data Input to QSPI
Disables Data Input
Disables Data Output
Serial Data Output from QSPI
Disables Data Output
Serial Data Output from QSPI
Serial Data Input to QSPI
Disables Data Input
Disables Clock Output
Clock Output from QSPI
Clock Input to QSPI
Disables Clock Input
Assertion Causes Mode Fault
Chip-Select Output
QSPI Slave Select Input
Disables Select Input
Disables Chip-Select Output
Chip-Select Output
Inactive
Inactive
Serial Data Output from SCI
Serial Data Input to SCI
1. PQS2 is a digital I/O pin unless the SPI is enabled (SPE in SPCR1 set), in which case it becomes the SPI
serial clock SCK.
2. PQS7 is a digital I/O pin unless the SCI transmitter is enabled (TE in SCCR1 set), in which case it becomes
SCI serial output TXD and DDRQS has no effect.
MOTOROLA
6-4
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
6.3 Queued Serial Peripheral Interface
The queued serial peripheral interface (QSPI) communicates with external devices
through a synchronous serial bus. The QSPI is fully compatible with SPI systems
found on other Motorola products, but has enhanced capabilities. The QSPI can perform full duplex three-wire or half duplex two-wire transfers. A variety of transfer rate,
clocking, and interrupt-driven communication options are available.
Serial transfer of any number of bits from eight to sixteen can be specified. Programmable transfer length simplifies interfacing to a number of devices that require different
data lengths.
An inter-transfer delay of 17 to 8192 system clocks can be specified (default is 17 system clocks). Programmable delay simplifies the interface to a number of devices that
require different delays between transfers.
A dedicated 80-byte RAM is used to store received data, data to be transmitted, and
a queue of commands. The CPU can access these locations directly. Serial peripherals can be treated like memory-mapped parallel devices.
The command queue allows the QSPI to perform up to 16 serial transfers without CPU
intervention. Each queue entry contains all the information needed by the QSPI to independently complete one serial transfer.
A pointer identifies the queue location containing the command for the next serial
transfer. Normally, the pointer address is incremented after each serial transfer, but
the CPU can change the pointer value at any time. Multiple-task support can be provided by segmenting the queue.
The QSPI has four peripheral chip-select pins. Chip-select signals simplify interfacing
by reducing CPU intervention. If chip-select signals are externally decoded, 16 independent select signals can be generated. Each chip-select pin can drive up to four independent peripherals, depending on loading.
Wraparound operating mode allows continuous execution of queued commands. In
wraparound mode, newly received data replaces previously received data in receive
RAM. Wraparound can simplify the interface with A/D converters by continuously updating conversion values stored in the RAM.
Continuous transfer mode allows simultaneous transfer of an uninterrupted bit stream.
Any number of bits in a range from 8 to 256 can be transferred without CPU intervention. Longer transfers are possible, but minimal CPU intervention is required to prevent
loss of data. A standard delay of 17 system clocks is inserted between each queue
entry transfer.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-5
6
QUEUE CONTROL
BLOCK
QUEUE
POINTER
COMPARATOR
4
DONE
END QUEUE
POINTER
80-BYTE
QSPI RAM
ADDRESS
REGISTER
4
CONTROL
LOGIC
6
STATUS
REGISTER
CONTROL
REGISTERS
CHIP SELECT
4
4
COMMAND
DELAY
COUNTER
MSB
LSB
8/16-BIT SHIFT REGISTER
PROGRAMMABLE
LOGIC ARRAY
Rx/Tx DATA REGISTER
M
S
M
S
MOSI
MISO
PCS0/SS
3
PCS [3:1]
BAUD RATE
GENERATOR
SCK
QSPI BLOCK
Figure 6-2 QSPI Block Diagram
6.3.1 QSPI Registers
The programmer's model for the QSPI consists of the QSM global and pin control registers, four QSPI control registers (SPCR[0:3]), a status register (SPCR), and the 80byte QSPI RAM.
Registers and RAM can be read and written by the CPU. Refer to APPENDIX D REGISTER SUMMARY for register bit and field definitions.
MOTOROLA
6-6
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
6.3.1.1 Control Registers
Control registers contain parameters for configuring the QSPI and enabling various
modes of operation. The CPU has read and write access to all control registers, but
the QSM has read-only access to all bits except the SPE bit in SPCR1. Control registers must be initialized before the QSPI is enabled to ensure defined operation.
SPCR1 must be written last because it contains the QSPI enable bit (SPE).
Writing a new value to any control register except SPCR2 while the QSPI is enabled
disrupts operation. SPCR2 is buffered. New SPCR2 values become effective after
completion of the current serial transfer. Rewriting NEWQP in SPCR2 causes execution to restart at the designated location. Reads of SPCR2 return the current value of
the register, not of the buffer.
Writing the same value into any control register except SPCR2 while the QSPI is enabled has no effect on QSPI operation.
6.3.1.2 Status Register
The QSPI status register (SPSR) contains information concerning the current serial
transmission. Only the QSPI can set the bits in this register. The CPU reads the SPSR
to obtain QSPI status information and writes it to clear status flags.
6.3.2 QSPI RAM
The QSPI contains an 80-byte block of dual-access static RAM that can be accessed
by both the QSPI and the CPU. The RAM is divided into three segments: receive data
RAM, transmit data RAM, and command control data RAM. Receive data is information received from a serial device external to the MCU. Transmit data is information
stored by the CPU for transmission to an external device. Command control data is
used to perform transfers. Refer to Figure 6-3, which shows RAM organization.
D00
D1E
RR0
RR1
RR2
D20
TR0
TR1
TR2
D40
CR0
CR1
CR2
RECEIVE
RAM
TRANSMIT
RAM
COMMAND
RAM
RRD
RRE
RRF
TRD
TRE
TRF
CRD
CRE
CRF
WORD
D3E
D4F
WORD
BYTE
QSPI RAM MAP
Figure 6-3 QSPI RAM
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-7
6
6.3.2.1 Receive RAM
Data received by the QSPI is stored in this segment. The CPU reads this segment to
retrieve data from the QSPI. Data stored in receive RAM is right-justified. Unused bits
in a receive queue entry are set to zero by the QSPI upon completion of the individual
queue entry. The CPU can access the data using byte, word, or long-word addressing.
The CPTQP value in SPSR shows which queue entries have been executed. The CPU
uses this information to determine which locations in receive RAM contain valid data
before reading them.
6.3.2.2 Transmit RAM
Data that is to be transmitted by the QSPI is stored in this segment. The CPU normally
writes one word of data into this segment for each queue command to be executed.
6
Information to be transmitted must be written to transmit RAM in a right-justified format. The QSPI cannot modify information in the transmit RAM. The QSPI copies the
information to its data serializer for transmission. Information remains in transmit RAM
until overwritten.
6.3.2.3 Command RAM
Command RAM is used by the QSPI in master mode. The CPU writes one byte of control information to this segment for each QSPI command to be executed. The QSPI
cannot modify information in command RAM.
Command RAM consists of 16 bytes. Each byte is divided into two fields. The peripheral chip-select field enables peripherals for transfer. The command control field provides transfer options.
A maximum of 16 commands can be in the queue. Queue execution by the QSPI proceeds from the address in NEWQP through the address in ENDQP (both of these
fields are in SPCR2).
6.3.3 QSPI Pins
The QSPI uses seven pins. These pins can be configured for general-purpose I/O
when not needed for QSPI application. When used for QSPI functions, the MOSI, MISO, and SS pins should have pull-up resistors.
Table 6-2 shows QSPI input and output pins and their functions.
MOTOROLA
6-8
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
Table 6-2 QSPI Pin Function
Pin/Signal Name
Master In Slave Out
Mnemonic
MISO
Master Out Slave In
MOSI
Serial Clock
SCK
Peripheral Chip Selects
Slave Select
PCS[3:1]
SS
Peripheral Chip Select 0
PCS0
Mode
Master
Slave
Master
Slave
Master
Slave
Master
Master
Slave
Master
Function
Serial Data Input to QSPI Serial
Data Output from QSPI
Serial Data Output from QSPI
Serial Data Input to QSPI
Clock Output from QSPI
Clock Input to QSPI
Select Peripherals
Causes Mode Fault
Initiates Serial Transfer
Selects Peripherals
6.3.4 QSPI Operation
The QSPI uses a dedicated 80-byte block of static RAM accessible by both the QSPI
and the CPU to perform queued operations. The RAM is divided into three segments.
There are 16 command control bytes, 16 transmit data words, and 16 receive data
words. QSPI RAM is organized so that one byte of command control data, one word
of transmit data, and one word of receive data correspond to one queue entry, $0–$F.
The CPU initiates QSPI operation by setting up a queue of QSPI commands in command RAM, writing transmit data into transmit RAM, then enabling the QSPI. The
QSPI executes the queued commands, sets a completion flag (SPIF), and then either
interrupts the CPU or waits for CPU intervention.
There are four queue pointers. The CPU can access three of them through fields in
QSPI registers. The new queue pointer (NEWQP), in SPCR2, points to the first command in the queue. An internal queue pointer points to the command currently being
executed. The completed queue pointer (CPTQP), in SPSR, points to the last command executed. The end queue pointer (ENDQP), contained in SPCR2, points to the
final command in the queue.
The internal pointer is initialized to the same value as NEWQP. During normal operation, the command pointed to by the internal pointer is executed, the value in the internal pointer is copied into CPTQP, the internal pointer is incremented, and then the
sequence repeats. Execution continues at the internal pointer address unless the
NEWQP value is changed. After each command is executed, ENDQP and CPTQP are
compared. When a match occurs, the SPIF flag is set and the QSPI stops unless wraparound mode is enabled.
At reset, NEWQP is initialized to $0. When the QSPI is enabled, execution begins at
queue address $0 unless another value has been written into NEWQP. ENDQP is initialized to $0 at reset, but should be changed to show the last queue entry before the
QSPI is enabled. NEWQP and ENDQP can be written at any time. When the NEWQP
value changes, the internal pointer value also changes. However, if NEWQP is written
while a transfer is in progress, the transfer is completed normally. Leaving NEWQP
and ENDQP set to $0 causes a single transfer to occur when the QSPI is enabled.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-9
6
6.3.5 QSPI Operating Modes
The QSPI operates in either master or slave mode. Master mode is used when the
MCU originates data transfers. Slave mode is used when an external device initiates
serial transfers to the MCU through the QSPI. Switching between the modes is controlled by MSTR in SPCR0. Before either mode is entered, appropriate QSM and QSPI
registers must be initialized properly.
In master mode, the QSPI executes a queue of commands defined by control bits in
each command RAM queue entry. Chip-select pins are activated, data is transmitted
from transmit RAM and received by the receive RAM.
In slave mode, operation proceeds in response to SS pin activation by an external bus
master. Operation is similar to master mode, but no peripheral chip selects are generated, and the number of bits transferred is controlled in a different manner. When the
QSPI is selected, it automatically executes the next queue transfer to exchange data
with the external device correctly.
6
Although the QSPI inherently supports multimaster operation no special arbitration
mechanism is provided. A mode fault flag (MODF) indicates a request for SPI master
arbitration. System software must provide arbitration. Note that unlike previous SPI
systems, MSTR is not cleared by a mode fault being set nor are the QSPI pin output
drivers disabled. The QSPI and associated output drivers must be disabled by clearing
SPE in SPCR1.
Figure 6-4 shows QSPI initialization; Figure 6-5 and Figure 6-6 show QSPI master
and slave operation. The CPU must initialize the QSM global and pin registers and the
QSPI control registers before enabling the QSPI for either mode of operation (refer to
6.5 QSM Initialization). The command queue must be written before the QSPI is enabled for master mode operation. Any data to be transmitted should be written into
transmit RAM before the QSPI is enabled. During wraparound operation, data for subsequent transmissions can be written at any time.
MOTOROLA
6-10
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
BEGIN
CPU INITIALIZES
QSM GLOBAL REGISTERS
CPU INITIALIZES
QSM PIN REGISTERS
INITIALIZATION OF
QSPI BY THE CPU
CPU INITIALIZES
QSPI CONTROL REGISTERS
6
CPU INITIALIZES
QSPI RAM
CPU ENABLES QSPI
MSTR = 1
?
NO
YES
A1
A2
QSPI FLOW 1
Figure 6-4 Flowchart of QSPI Initialization Operation
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-11
QSPI CYCLE BEGINS
(MASTER MODE)
A1
IS QSPI
DISABLED
?
YES
NO
HAS NEWQP
BEEN WRITTEN
?
YES
WORKING QUEUE POINTER
CHANGED TO NEWQP
NO
6
READ COMMAND CONTROL
AND TRANSMIT DATA
FROM RAM USING QUEUE
POINTER ADDRESS
ASSERT PERIPHERAL
CHIP-SELECT(S)
IS PCS TO
SCK DELAY
PROGRAMMED
?
YES
EXECUTE PROGRAMMED DELAY
NO
EXECUTE STANDARD DELAY
EXECUTE SERIAL TRANSFER
STORE RECEIVED DATA
IN RAM USING QUEUE
POINTER ADDRESS
B1
QSPI FLOW 2
Figure 6-5 Flowchart of QSPI Master Operation (Part 1)
MOTOROLA
6-12
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
QSPI CYCLE BEGINS
(SLAVE MODE)
A2
IS QSPI
DISABLED
?
YES
NO
HAS NEWQP
BEEN WRITTEN
?
YES
QUEUE POINTER
CHANGED TO NEWQP
NO
6
READ TRANSMIT DATA
FROM RAM USING QUEUE
POINTER ADDRESS
IS SLAVE
SELECT PIN
ASSERTED
?
YES
NO
EXECUTE SERIAL TRANSFER
WHEN SCK RECEIVED
STORE RECEIVED DATA
IN RAM USING QUEUE
POINTER ADDRESS
WRITE QUEUE POINTER TO
CPTQP STATUS BITS
B2
QSPI FLOW 3
Figure 6-5 Flowchart of QSPI Master Operation (Part 2)
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-13
B1
WRITE QUEUE POINTER
TO CPTQP STATUS BITS
IS CONTINUE
BIT ASSERTED
?
6
YES
NO
NEGATE PERIPHERAL
CHIP-SELECT(S)
IS DELAY
AFTER TRANSFER
ASSERTED
?
YES
EXECUTE PROGRAMMED DELAY
NO
EXECUTE STANDARD DELAY
C
QSPI FLOW 4
Figure 6-5 Flowchart of QSPI Master Operation (Part 3)
MOTOROLA
6-14
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
B2
IS QSPI
DISABLED
?
YES
NO
HAS NEWQP
BEEN WRITTEN
?
YES
QUEUE POINTER
CHANGED TO NEWQP
NO
READ TRANSMIT DATA
FROM RAM USING QUEUE
POINTER ADDRESS
IS SLAVE
SELECT PIN
ASSERTED
?
6
YES
NO
EXECUTE SERIAL TRANSFER
WHEN SCK RECEIVED
STORE RECEIVED DATA
IN RAM USING QUEUE
POINTER ADDRESS
WRITE QUEUE POINTER TO
CPTQP STATUS BITS
C
QSPI FLOW 5
Figure 6-6 Flowchart of QSPI Slave Operation (Part 1)
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-15
C
IS THIS THE
LAST COMMAND
IN THE QUEUE
?
YES
ASSERT SPIF
STATUS FLAG
NO
IS INTERRUPT
ENABLE BIT SPIFIE
ASSERTED
?
YES
INTERRUPT CPU
NO
IS WRAP
ENABLE BIT
ASSERTED
?
INCREMENT WORKING
QUEUE POINTER
6
YES
RESET WORKING QUEUE
POINTER TO NEWQP OR $0000
NO
DISABLE QSPI
A1
IS HALT
OR FREEZE
ASSERTED
?
YES
HALT QSPI AND
ASSERT HALTA
NO
IS INTERRUPT
ENABLE BIT HMIE
ASSERTED
?
YES
INTERRUPT CPU
NO
IS HALT
OR FREEZE
ASSERTED
?
YES
NO
A2
QSPI FLOW 6
Figure 6-6 Flowchart of QSPI Slave Operation (Part 2)
MOTOROLA
6-16
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
Normally, the SPI bus performs synchronous bidirectional transfers. The serial clock
on the SPI bus master supplies the clock signal (SCK) to time the transfer of data. Four
possible combinations of clock phase and polarity can be specified by the CPHA and
CPOL bits in SPCR0.
Data is transferred with the most significant bit first. The number of bits transferred per
command defaults to eight, but can be set to any value from eight to sixteen bits by
writing a value into the BITSE field in command RAM.
Typically, SPI bus outputs are not open-drain unless multiple SPI masters are in the
system. If needed, the WOMQ bit in SPCR0 can be set to provide wired-OR, opendrain outputs. An external pull-up resistor should be used on each output line. WOMQ
affects all QSPI pins regardless of whether they are assigned to the QSPI or used as
general-purpose I/O.
6.3.5.1 Master Mode
Setting the MSTR bit in SPCR0 selects master mode operation. In master mode, the
QSPI can initiate serial transfers, but cannot respond to externally initiated transfers.
When the slave select input of a device configured for master mode is asserted, a
mode fault occurs.
Before QSPI operation is initiated, QSM register PQSPAR must be written to assign
necessary pins to the QSPI. The pins necessary for master mode operation are MISO
and MOSI, SCK, and one or more of the chip-select pins. MISO is used for serial data
input in master mode, and MOSI is used for serial data output. Either or both may be
necessary, depending on the particular application. SCK is the serial clock output in
master mode.
Before master mode operation is initiated, QSM register DDRQS must be written to
direct the data flow on the QSPI pins used. Configure the SCK, MOSI and appropriate
chip-select pins PCS[3:0]/SS as outputs. The MISO pin must be configured as an input.
After pins are assigned and configured, write appropriate data to the command queue.
If data is to be transmitted, write the data to transmit RAM. Initialize the queue pointers
as appropriate.
Data transfer is synchronized with the internally-generated serial clock (SCK). Control
bits, CPHA and CPOL, in SPCR0, control clock phase and polarity. Combinations of
CPHA and CPOL determine upon which SCK edge to drive outgoing data from the
MOSI pin and to latch incoming data from the MISO pin.
Baud rate is selected by writing a value from 2 to 255 into the SPBR field in SPCR0.
The QSPI uses a modulus counter to derive SCK baud rate from the MCU system
clock.
The following expressions apply to SCK baud rate:
System Clock
SCK Baud Rate = -----------------------------------2 × SPBR
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-17
6
or
System Clock
SPBR = ---------------------------------------------------------------------------------------( 2 × SCK ) × ( Baud Rate Desired )
Giving SPBR a value of zero or one disables the baud rate generator. SCK is disabled
and assumes its inactive state value.
The DSCK field in command RAM determines the delay period from chip-select assertion until the leading edge of the serial clock. The DSCKL field in SPCR1 determines
the period of delay before the assertion of SCK. The following expression determines
the actual delay before SCK:
DSCKL
PCS to SCK Delay = -----------------------------------------------------------------System Clock Frequency
where DSCKL equals {1, 2, 3,..., 127}.
When DSCK equals zero, DSCKL is not used. Instead, the PCS valid-to-SCK transition is one-half the DSCK period.
6
There are two transfer length options. The user can choose a default value of eight
bits, or a programmed value of eight to sixteen bits, inclusive. The programmed value
must be written into the BITS field in SPCR0. The BITSE field in command RAM determines whether the default value (BITSE = 0) or the BITS value (BITSE = 1) is used.
Table 6-3 shows BITS field encoding.
Table 6-3 BITS Encoding
BITS
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Bits per Transfer
16
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
8
9
10
11
12
13
14
15
Delay after transfer can be used to provide a peripheral deselect interval. A delay can
also be inserted between consecutive transfers to allow serial A/D converters to complete conversion. There are two transfer delay options. The user can choose to delay
a standard period after serial transfer is complete or can specify a delay period. Writing
a value to the DTL field in SPCR1 specifies a delay period. The DT bit in command
RAM determines whether the standard delay period (DT = 0) or the specified delay peMOTOROLA
6-18
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
riod (DT = 1) is used. The following expression is used to calculate the delay:
32 × DTL
Delay after Transfer = -----------------------------------------------------------------System Clock Frequency
where DTL equals {1, 2, 3,..., 255}.
A zero value for DTL causes a delay-after-transfer value of 8192/system clock.
17
Standard Delay after Transfer = -----------------------------------System Clock
Adequate delay between transfers must be specified for long data streams because
the QSPI requires time to load a transmit RAM entry for transfer. Receiving devices
need at least the standard delay between successive transfers. If the system clock is
operating at a slower rate, the delay between transfers must be increased proportionately.
Operation is initiated by setting the SPE bit in SPCR1. Shortly after SPE is set, the
QSPI executes the command at the command RAM address pointed to by NEWQP.
Data at the pointer address in transmit RAM is loaded into the data serializer and
transmitted. Data that is simultaneously received is stored at the pointer address in receive RAM.
When the proper number of bits have been transferred, the QSPI stores the working
queue pointer value in CPTQP, increments the working queue pointer, and loads the
next data for transfer from transmit RAM. The command pointed to by the incremented
working queue pointer is executed next, unless a new value has been written to
NEWQP. If a new queue pointer value is written while a transfer is in progress, that
transfer is completed normally.
When the CONT bit in command RAM is set, PCS pins are continuously driven in
specified states during and between transfers. If the chip-select pattern changes during or between transfers, the original pattern is driven until execution of the following
transfer begins. When CONT is cleared, the data in register PORTQS is driven between transfers.
When the QSPI reaches the end of the queue, it sets the SPIF flag. If the SPIFIE bit
in SPCR2 is set, an interrupt request is generated when SPIF is asserted. At this point,
the QSPI clears SPE and stops unless wraparound mode is enabled.
6.3.5.2 Master Wraparound Mode
Wraparound mode is enabled by setting the WREN bit in SPCR2. The queue can wrap
to pointer address $0 or to the address pointed to by NEWQP, depending on the state
of the WRTO bit in SPCR2.
In wraparound mode, the QSPI cycles through the queue continuously, even while the
QSPI is requesting interrupt service. SPE is not cleared when the last command in the
queue is executed. New receive data overwrites previously received data in receive
RAM. Each time the end of the queue is reached, the SPIF flag is set. SPIF is not automatically reset. If interrupt-driven SPI service is used, the service routine must clear
the SPIF bit to abort the current request. Additional interrupt requests during servicing
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-19
6
can be prevented by clearing SPIFIE, but SPIFIE is buffered. Clearing it does not abort
a current request.
There are two recommended methods of exiting wraparound mode: clearing the
WREN bit or setting the HALT bit in SPCR3. Exiting wraparound mode by clearing
SPE is not recommended, as clearing SPE may abort a serial transfer in progress. The
QSPI sets SPIF, clears SPE, and stops the first time it reaches the end of the queue
after WREN is cleared. After HALT is set, the QSPI finishes the current transfer, then
stops executing commands. After the QSPI stops, SPE can be cleared.
6.3.5.3 Slave Mode
Clearing the MSTR bit in SPCR0 selects slave mode operation. In slave mode, the
QSPI is unable to initiate serial transfers. Transfers are initiated by an external bus
master. Slave mode is typically used on a multi-master SPI bus. Only one device can
be bus master (operate in master mode) at any given time.
6
Before QSPI operation is initiated, QSM register PQSPAR must be written to assign
necessary pins to the QSPI. The pins necessary for slave mode operation are MISO
and MOSI, SCK, and PCS0/SS. MISO is used for serial data output in slave mode, and
MOSI is used for serial data input. Either or both may be necessary, depending on the
particular application. SCK is the serial clock input in slave mode. Assertion of the active-low slave select signal (SS) initiates slave mode operation.
Before slave mode operation is initiated, DDRQS must be written to direct data flow
on the QSPI pins used. Configure the MOSI, SCK and PCS0/SS pins as inputs. The
MISO pin must be configured as an output.
After pins are assigned and configured, write data to be transmitted into transmit RAM.
Command RAM is not used in slave mode and does not need to be initialized. Unused
portions of QSPI RAM can be used by the CPU as general-purpose RAM. Initialize the
queue pointers as appropriate.
When SPE is set and MSTR is clear, a low state on the slave select (PCS0/SS) pin
begins slave mode operation at the address indicated by NEWQP. Data that is received is stored at the pointer address in receive RAM. Data is simultaneously loaded
into the data serializer from the pointer address in transmit RAM and transmitted.
Transfer is synchronized with the externally generated SCK. The CPHA and CPOL
bits determine on which SCK edge to latch incoming data from the MISO pin and to
drive outgoing data from the MOSI pin.
Because the command control segment is not used, the command control bits and peripheral chip-select codes have no effect in slave mode operation. The PCS0/SS pin
is used only as an input.
The SPBR, DT and DSCK bits are not used in slave mode. The QSPI drives neither
the clock nor the chip-select pins and thus cannot control clock rate or transfer delay.
Because the BITSE option is not available in slave mode, the BITS field specifies the
number of bits to be transferred for all transfers in the queue. When the number of bits
MOTOROLA
6-20
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
designated by BITS has been transferred, the QSPI stores the working queue pointer
value in CPTQP, increments the working queue pointer, and loads new transmit data
from transmit RAM into the data serializer. The working queue pointer address is used
the next time PCS0/SS is asserted, unless the CPU writes to NEWQP first.
The QSPI shifts one bit for each pulse of SCK until the slave select input goes high. If
SS goes high before the number of bits specified by the BITS field is transferred, the
QSPI resumes operation at the same pointer address the next time SS is asserted.
The maximum value that the BITS field can have is 16. If more than 16 bits are transmitted before SS is negated, pointers are incremented and operation continues. The
QSPI transmits as many bits as it receives at each queue address, until the BITS value
is reached or SS is negated. SS does not need to go high between transfers as the
QSPI transfers data until reaching the end of the queue, whether SS remains low or is
toggled between transfers.
When the QSPI reaches the end of the queue, it sets the SPIF flag. If the SPIFIE bit
in SPCR2 is set, an interrupt request is generated when SPIF is asserted. At this point,
the QSPI clears SPE and stops unless wraparound mode is enabled.
6.3.5.4 Slave Wraparound Mode
Slave wraparound mode is enabled by setting the WREN bit in SPCR2. The queue can
wrap to pointer address $0 or to the address pointed to by NEWQP, depending on the
state of the WRTO bit in SPCR2. Slave wraparound operation is identical to master
wraparound operation.
6.3.6 Peripheral Chip Selects
Peripheral chip-select signals are used to select an external device for serial data
transfer. Chip-select signals are asserted when a command in the queue is executed.
Signals are asserted at a logic level corresponding to the value of the PCS bits in the
command. More than one chip-select signal can be asserted at a time, and more than
one external device can be connected to each PCS pin, provided proper fanout is observed. PCS0 shares a pin with the slave select (SS) signal, which initiates slave mode
serial transfer. If SS is taken low when the QSPI is in master mode, a mode fault occurs.
To set up a chip-select function, set the appropriate bit in PQSPAR, then configure the
chip-select pin as an output by setting the appropriate bit in DDRQS. The value of the
bit in PORTQS that corresponds to the chip-select pin determines the base state of
the chip-select signal. If base state is zero, chip-select assertion must be active high
(PCS bit in command RAM must be set); if base state is one, assertion must be active
low (PCS bit in command RAM must be cleared). PORTQS bits are cleared during reset. If no new data is written to PORTQS before pin assignment and configuration as
an output, base state of chip-select signals is zero and chip-select pins are configured
for active-high operation.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-21
6
6.4 Serial Communication Interface
The serial communication interface (SCI) communicates with external devices through
an asynchronous serial bus. The SCI uses a standard nonreturn to zero (NRZ) transmission format. The SCI is fully compatible with other Motorola SCI systems, such as
those in M68HC11 and M68HC05 devices. Figure 6-7 is a block diagram of the SCI
transmitter; Figure 6-8 is a block diagram of the SCI receiver.
6.4.1 SCI Registers
The SCI programming model includes the QSM global and pin control registers, and
four SCI registers. There are two SCI control registers (SCCR0 and SCCR1), one status register (SCSR), and one data register (SCDR). Refer to APPENDIX D REGISTER SUMMARY for register bit and field definition.
6
6.4.1.1 Control Registers
SCCR0 contains the baud rate selection field. Baud rate must be set before the SCI is
enabled. The CPU can read and write this register at any time.
SCCR1 contains a number of SCI configuration parameters, including transmitter and
receiver enable bits, interrupt enable bits, and operating mode enable bits. The CPU
can read and write this register at any time. The SCI can modify the RWU bit under
certain circumstances.
Changing the value of SCI control bits during a transfer operation may disrupt operation. Before changing register values, allow the SCI to complete the current transfer,
then disable the receiver and transmitter.
MOTOROLA
6-22
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
(WRITE-ONLY)
TRANSMITTER
BAUD RATE
CLOCK
SCDR Tx BUFFER
START
2
1
0
PIN BUFFER
AND CONTROL
L
FORCE PIN
DIRECTION
(OUT)
TDRE
TC
SBK
RWU
0
15
SCSR (STATUS REGISTER)
0
TCIE
TIE
SCCR1 (CONTROL REGISTER 1)
RE
TE
ILIE
TCIE
RIE
TIE
M
WAKE
PE
PT
WOMS
ILT
LOOPS
0
TRANSMITTER
CONTROL LOGIC
15
OPEN DRAIN OUTPUT MODE ENABLE
PARITY
GENERATOR
3
TxD
RDRF
RAF
IDLE
OR
NF
FE
PF
4
JAM ENABLE
5
SHIFT ENABLE
6
TRANSFER Tx BUFFER
SIZE 8/9
H (8) 7
BREAK–JAM 0's
10 (11) - BIT
Tx SHIFT REGISTER
PREAMBLE–JAM 1's
STOP
MDDR7
MDDR5
TDRE
TC
SCI Rx
REQUESTS
SCI INTERRUPT
REQUEST
INTERNAL
DATA BUS
68300 SCI TX BLOCK
Figure 6-7 SCI Transmitter Block Diagram
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-23
6
RxD
DATA
RECOVERY
PIN BUFFER
START
÷16
STOP
RECEIVER
BAUD RATE
CLOCK
10 (11) - BIT
Rx SHIFT REGISTER
H (8) 7 6 5 4 3 2 1 0 L
MSB
ALL ONES
PARITY
DETECT
15
SCCR1 (CONTROL REGISTER 1)
SBK
RWU
RE
ILIE
TE
TCIE
RIE
TIE
WAKE
M
PE
PT
WOMC
ILT
LOOPS
0
SCDR Rx BUFFER
15
SCI Tx
REQUESTS
SCSR (STATUS REGISTER)
FE
PF
(READ-ONLY)
RAF
IDLE
OR
NF
TDRE
TC
RDRF
6
0
WAKEUP
LOGIC
0
SCI INTERRUPT
REQUEST
INTERNAL
DATA BUS
68300 SCI RX BLOCK
Figure 6-8 SCI Receiver Block Diagram
MOTOROLA
6-24
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
6.4.1.2 Status Register
The SCI status register (SCSR) contains flags that show SCI operating conditions.
These flags are cleared either by SCI hardware or by a read/write sequence. In general, flags are cleared by reading the SCSR, then reading (receiver status bits) or writing (transmitter status bits) the SCDR. A long-word read can consecutively access
both the SCSR and SCDR. This action clears receive status flag bits that were set at
the time of the read, but does not clear TDRE or TC flags.
If an internal SCI signal for setting a status bit comes after the CPU has read the asserted status bits, but before the CPU has written or read the SCDR, the newly set status bit is not cleared. The SCSR must be read again with the bit set, and the SCDR
must be written or read before the status bit is cleared.
Reading either byte of the SCSR causes all 16 bits to be accessed, and any status bit
already set in either byte is cleared on a subsequent read or write of the SCDR.
6.4.1.3 Data Register
The SCDR contains two data registers at the same address. The RDR is a read-only
register that contains data received by the SCI serial interface. The data comes into
the receive serial shifter and is transferred to the RDR. The TDR is a write-only register
that contains data to be transmitted. The data is first written to the TDR, then transferred to the transmit serial shifter, where additional format bits are added before transmission. R[7:0]/T[7:0] contain either the first eight data bits received when the SCDR
is read, or the first eight data bits to be transmitted when the SCDR is written. R8/T8
are used when the SCI is configured for 9-bit operation. When it is configured for 8-bit
operation, they have no meaning or effect.
6.4.2 SCI Pins
Two unidirectional pins, TXD (transmit data) and RXD (receive data), are associated
with the SCI. TXD can be used by the SCI or for general-purpose I/O. Function is assigned by the port QS pin assignment register (PQSPAR). The receive data (RXD) pin
is dedicated to the SCI. Table 6-4 shows SCI pin function.
Table 6-4 SCI Pin Function
Pin Names
Receive Data
Mnemonics
RXD
Transmit Data
TXD
Mode
Receiver Disabled
Receiver Enabled
Transmitter Disabled
Transmitter Enabled
Function
Not Used
Serial Data Input to SCI
General-Purpose I/O
Serial Data Output from SCI
6.4.3 SCI Operation
SCI status flags in the SPSR support polled operation, or interrupt-driven operation
can be employed by the interrupt enable bits in SCCR1.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-25
6
6.4.3.1 Definition of Terms
Bit-Time — The time required to transmit or receive one bit of data; one cycle of the
baud frequency.
Start Bit — One bit-time of logic zero that indicates the beginning of a data frame. A
start bit must begin with a one-to-zero transition and be preceded by at least three receive time (RT) samples of logic one.
Stop Bit — One bit-time of logic one that indicates the end of a data frame.
Frame — A complete unit of serial information. The SCI can use 10-bit or 11-bit
frames.
Data Frame — A start bit, a specified number of data or information bits, and at least
one stop bit.
Idle Frame — A frame that consists of consecutive ones. An idle frame has no start bit.
6
Break Frame — A frame that consists of consecutive zeros. A break frame has no stop
bits.
6.4.3.2 Serial Formats
All data frames must have a start bit and at least one stop bit. Receiving and transmitting devices must use the same data frame format. The SCI provides hardware support for both ten-bit and eleven-bit frames. The serial mode (M) bit in SCI control
register one (SCCR1) specifies the number of bits per frame.
The most common ten-bit data frame format for NRZ serial interface consists of one
start bit, eight data bits (LSB first), and one stop bit. The most common eleven-bit data
frame contains one start bit, eight data bits, a parity or control bit, and one stop bit.
Ten-bit and eleven-bit frames are shown in Table 6-5.
Table 6-5 Serial Frame Formats
Start
1
1
1
Data
7
7
8
Start
1
1
Data
7
8
10-Bit Frames
Parity/Control
—
1
—
11-Bit Frames
Parity/Control
1
1
Stop
2
1
1
Stop
2
1
6.4.3.3 Baud Clock
The SCI baud clock is programmed by writing a 13-bit value to the baud rate (SCBR)
field in SCI control register zero (SCCR0). Baud clock is derived from the MCU system
clock by a modulus counter. Writing a value of zero to SCBR disables the baud rate
generator. Baud clock rate is calculated as follows:
MOTOROLA
6-26
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
System Clock
SCI Baud Clock Rate = -----------------------------------32 × SCBR
where SCBR is in the range {1, 2, 3,..., 8191}.
The SCI receiver operates asynchronously. An internal clock is necessary to synchronize with an incoming data stream. The SCI baud clock generator produces a receive
time (RT) sampling clock with a frequency 16 times that of the SCI baud clock. The
SCI determines the position of bit boundaries from transitions within the received
waveform, and adjusts sampling points to the proper positions within the bit period.
6.4.3.4 Parity Checking
The parity type (PT) bit in SCCR1 selects either even (PT = 0) or odd (PT = 1) parity.
PT affects received and transmitted data. The parity enable (PE) bit in SCCR1 determines whether parity checking is enabled (PE = 1) or disabled (PE = 0). When PE is
set, the MSB of the data in a frame is used for the parity function. For transmitted data,
a parity bit is generated; for received data, the parity bit is checked. When parity checking is enabled, the parity flag (PF) in the SCI status register (SCSR) is set if a parity
error is detected.
Enabling parity affects the number of data bits in a frame, which can in turn affect
frame size. Table 6-6 shows possible data and parity formats.
Table 6-6 Effect of Parity Checking on Data Size
M
0
0
1
1
PE
0
1
0
1
Result
8 Data Bits
7 Data Bits, 1 Parity Bit
9 Data Bits
8 Data Bits, 1 Parity Bit
6.4.3.5 Transmitter Operation
The transmitter consists of a serial shifter and a parallel data register (TDR) located in
the SCI data register (SCDR). The serial shifter cannot be directly accessed by the
CPU. The transmitter is double-buffered, which means that data can be loaded into
the TDR while other data is shifted out. The transmitter enable (TE) bit in SCCR1 enables (TE = 1) and disables (TE = 0) the transmitter.
Shifter output is connected to the TXD pin while the transmitter is operating (TE = 1,
or TE = 0 and transmission in progress). Wired-OR operation should be specified
when more than one transmitter is used on the same SCI bus. The wired-OR mode
select bit (WOMS) in SCCR1 determines whether TXD is an open-drain (wired-OR)
output or a normal CMOS output. An external pull-up resistor on the TXD pin is necessary for wired-OR operation. WOMS controls TXD function whether the pin is used
for SCI transmissions (TE = 1) or as a general-purpose I/O pin.
Data to be transmitted is written to TDR, then transferred to the serial shifter. The
transmit data register empty (TDRE) flag in SCSR shows the status of TDR. When
TDRE = 0, TDR contains data that has not been transferred to the shifter. Writing to
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-27
6
TDR again overwrites the data. TDRE is set when the data in TDR is transferred to the
shifter. Before new data can be written to TDR, however, the processor must clear
TDRE by writing to SCSR. If new data is written to TDR without first clearing TDRE,
the data will not be transmitted.
The transmission complete (TC) flag in SCSR shows transmitter shifter state. When
TC = 0, the shifter is busy. TC is set when all shifting operations are completed. TC is
not automatically cleared. The processor must clear it by first reading SCSR while TC
is set, then writing new data to TDR.
The state of the serial shifter is checked when the TE bit is set. If TC = 1, an idle frame
is transmitted as a preamble to the following data frame. If TC = 0, the current operation continues until the final bit in the frame is sent, then the preamble is transmitted.
The TC bit is set at the end of preamble transmission.
6
The send break (SBK) bit in SCCR1 is used to insert break frames in a transmission.
A nonzero integer number of break frames is transmitted while SBK is set. Break transmission begins when SBK is set, and ends with the transmission in progress at the
time either SBK or TE are cleared. If SBK is set while a transmission is in progress,
that transmission finishes normally before the break begins. To assure the minimum
break time, toggle SBK quickly to one and back to zero. The TC bit is set at the end of
break transmission. After break transmission, at least one bit-time of logic level one
(mark idle) is transmitted to ensure that a subsequent start bit can be detected.
If TE remains set, after all pending idle, data and break frames are shifted out, TDRE
and TC are set and TXD is held at logic level one (mark).
When TE is cleared, the transmitter is disabled after all pending idle, data and break
frames are transmitted. The TC flag is set, and the TXD pin reverts to control by PQSPAR and DDRQS. Buffered data is not transmitted after TE is cleared. To avoid losing
data in the buffer, do not clear TE until TDRE is set.
Some serial communication systems require a mark on the TXD pin even when the
transmitter is disabled. Configure the TXD pin as an output (DDRQS), then write a one
to PORTQS bit 7. When the transmitter releases control of the TXD pin, it reverts to
driving a logic one output.
To insert a delimiter between two messages, to place nonlistening receivers in wakeup
mode between transmissions, or to signal a retransmission by forcing an idle line, clear
and then set TE before data in the serial shifter has shifted out. The transmitter finishes
the transmission, then sends a preamble. After the preamble is transmitted, if TDRE
is set, the transmitter will mark idle. Otherwise, normal transmission of the next sequence will begin.
Both TDRE and TC have associated interrupts. The interrupts are enabled by the
transmit interrupt enable (TIE) and transmission complete interrupt enable (TCIE) bits
in SCCR1. Service routines can load the last byte of data in a sequence into the TDR,
then terminate the transmission when a TDRE interrupt occurs.
MOTOROLA
6-28
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
6.4.3.6 Receiver Operation
The receiver enable (RE) bit in SCCR1 enables (RE = 1) and disables (RE = 0) the
transmitter. The receiver contains a receive serial shifter and a parallel receive data
register (RDR) located in the SCI data register (SCDR). The serial shifter cannot be
directly accessed by the CPU. The receiver is double-buffered, allowing data to be
held in RDR while other data is shifted in.
Receiver bit processor logic drives a state machine that determines the logic level for
each bit-time. This state machine controls when the bit processor logic is to sample
the RXD pin and also controls when data is to be passed to the receive serial shifter.
A receive time (RT) clock is used to control sampling and synchronization. Data is
shifted into the receive serial shifter according to the most recent synchronization of
the RT clock with the incoming data stream. From this point on, data movement is synchronized with the MCU system clock. Operation of the receiver state machine is detailed in the QSM Reference Manual (QSMRM/AD).
The number of bits shifted in by the receiver depends on the serial format. However,
all frames must end with at least one stop bit. When the stop bit is received, the frame
is considered to be complete, and the received data in the serial shifter is transferred
to the RDR. The receiver data register flag (RDRF) is set when the data is transferred.
Noise errors, parity errors, and framing errors can be detected while a data stream is
being received. Although error conditions are detected as bits are received, the noise
flag (NF), the parity flag (PF), and the framing error (FE) flag in SCSR are not set until
data is transferred from the serial shifter to RDR.
RDRF must be cleared before the next transfer from the shifter can take place. If
RDRF is set when the shifter is full, transfers are inhibited and the overrun error (OR)
flag in the SCSR is set. OR indicates that the CPU needs to service RDR faster. When
OR is set, the data in RDR is preserved, but the data in the serial shifter is lost. Because framing, noise, and parity errors are detected while data is in the serial shifter,
FE, NF, and PF cannot occur at the same time as OR.
When the CPU reads the SCSR and the SCDR in sequence, it acquires status and
data, and also clears the status flags. Reading the SCSR acquires status and arms
the clearing mechanism. Reading the SCDR acquires data and clears the SCSR.
When RIE in SCCR1 is set, an interrupt request is generated whenever RDRF is set.
Because receiver status flags are set at the same time as RDRF, they do not have
separate interrupt enables.
6.4.3.7 Idle-Line Detection
During a typical serial transmission, frames are transmitted isochronously and no idle
time occurs between frames. Even when all the data bits in a frame are logic ones, the
start bit provides one logic zero bit-time during the frame. An idle line is a sequence of
contiguous ones equal to the current frame size. Frame size is determined by the state
of the M bit in SCCR1.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-29
6
The SCI receiver has both short and long idle-line detection capability. Idle-line detection is always enabled. The idle line type (ILT) bit in SCCR1 determines which type of
detection is used. When an idle line condition is detected, the IDLE flag in SCSR is set.
For short idle-line detection, the receiver bit processor counts contiguous logic one bittimes whenever they occur. Short detection provides the earliest possible recognition
of an idle line condition, because the stop bit and contiguous logic ones before and
after it are counted. For long idle-line detection, the receiver counts logic ones after
the stop bit is received. Only a complete idle frame causes the IDLE flag to be set.
In some applications, CPU overhead can cause a bit-time of logic level one to occur
between frames. This bit-time does not affect content, but if it occurs after a frame of
ones when short detection is enabled, the receiver flags an idle line.
6
When the idle line interrupt enable (ILIE) bit in SCCR1 is set, an interrupt request is
generated when the IDLE flag is set. The flag is cleared by reading SCSR and SCDR
in sequence. IDLE is not set again until after at least one frame has been received
(RDRF = 1). This prevents an extended idle interval from causing more than one interrupt.
6.4.3.8 Receiver Wakeup
The receiver wakeup function allows a transmitting device to direct a transmission to
a single receiver or to a group of receivers by sending an address frame at the start of
a message. Hardware activates each receiver in a system under certain conditions.
Resident software must process address information and enable or disable receiver
operation.
A receiver is placed in wakeup mode by setting the receiver wakeup (RWU) bit in
SCCR1. While RWU is set, receiver status flags and interrupts are disabled. Although
the CPU can clear RWU, it is normally cleared by hardware during wakeup.
The WAKE bit in SCCR1 determines which type of wakeup is used. When WAKE = 0,
idle-line wakeup is selected. When WAKE = 1, address-mark wakeup is selected. Both
types require a software-based device addressing and recognition scheme.
Idle-line wakeup allows a receiver to sleep until an idle line is detected. When an idleline is detected, the receiver clears RWU and wakes up. The receiver waits for the first
frame of the next transmission. The byte is received normally, transferred to register
RDR, and the RDRF flag is set. If software does not recognize the address, it can set
RWU and put the receiver back to sleep. For idle-line wakeup to work, there must be
a minimum of one frame of idle line between transmissions. There must be no idle time
between frames within a transmission.
Address-mark wakeup uses a special frame format to wake up the receiver. When the
MSB of an address-mark frame is set, that frame contains address information. The
first frame of each transmission must be an address frame. When the MSB of a frame
is set, the receiver clears RWU and wakes up. The byte is received normally, transferred to register RDR, and the RDRF flag is set. If software does not recognize the
address, it can set RWU and put the receiver back to sleep. Address-mark wakeup alMOTOROLA
6-30
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
lows idle time between frames and eliminates idle time between transmissions. However, there is a loss of efficiency because of an additional bit-time per frame.
6.4.3.9 Internal Loop
The LOOPS bit in SCCR1 controls a feedback path on the data serial shifter. When
LOOPS is set, SCI transmitter output is fed back into the receive serial shifter. TXD is
asserted (idle line). Both transmitter and receiver must be enabled before entering
loop mode.
6.5 QSM Initialization
After reset, the QSM remains in an idle state until initialized. A general sequence guide
for initialization follows.
A. Global
1. Configuration register (QSMCR)
a. Write an interrupt arbitration priority value into the IARB field.
b. Clear the FREEZE and/or STOP bits for normal operation.
2. Interrupt vector and interrupt level registers (QIVR and QILR)
a. Write QSPI/SCI interrupt vector into QIVR.
b. Write QSPI (ILSPI) and SCI (ILSCI) interrupt priorities into QILR.
3. Port data and data direction registers (PORTQS and DDRQS)
a. Write a data word to PORTQS.
b. Establish direction of QSM pins used for I/O by writing to DDRQS.
4. Assign pin functions by writing to the pin assignment register (PQSPAR)
B. Queued Serial Peripheral Interface
1. Write appropriate values to QSPI command RAM.
2. QSPI control register zero (SPCR0)
a. Write a transfer rate value into the BR field.
b. Determine clock phase (CPHA), and clock polarity (CPOL).
c. Determine number of bits to be transferred in a serial operation (BIT).
d. Select master or slave operating mode (MSTR).
e. Enable or disable wired-OR operation (WOMQ).
3. QSPI control register one (SPCR1)
a. Establish a delay following serial transfer by writing to the DTL field.
b. Establish a delay before serial transfer by writing to the DSCKL field.
4. QSPI control register two (SPCR2)
a. Write an initial queue pointer value into the NEWQP field.
b. Write a final queue pointer value into the ENDQP field.
c. Enable or disable queue wraparound (WREN).
d. Write wraparound address into the WRTO field.
e. Enable or disable QSPI flag interrupt (SPIFIE).
5. QSPI control register three (SPCR3)
a. Enable or disable halt at end of queue (HALT).
b. Enable or disable halt and mode fault interrupts (HMIE).
c. Enable or disable loopback (LOOPQ).
6. To enable the QSPI, set the SPE bit in SPCR1.
MC68331
USER’S MANUAL
QUEUED SERIAL MODULE
MOTOROLA
6-31
6
6
C. Serial Communication Interface (SCI)
1. SCI control register zero (SCCR0)
a. Write a transfer rate (baud) value into the BR field.
2. SCI control register one (SCCR1)
a. Select serial mode (M)
b. Enable use (PE) and type (PT) of parity check.
c. Select use (RWU) and type (WAKE) of receiver wakeup.
d. Enable idle-line detection (ILT) and interrupt (ILIE).
e. Enable or disable wired-OR operation (WOMS).
f. Enable or disable break transmission (BK).
3. To receive
a. Set the receiver (RE) and receiver interrupt (RIE) bits in SCCR1.
4. To transmit
a. Set transmitter (TE) and transmitter interrupt (TIE).
b. Clear the transmitter data register empty (TDRE) and transmit complete
(TC) indicators by reading the serial communication interface status register (SCSR).
c. Write transmit data to the serial communication data register (SCDR).
MOTOROLA
6-32
QUEUED SERIAL MODULE
MC68331
USER’S MANUAL
SECTION 7GENERAL-PURPOSE TIMER
This section is an overview of GPT function. Refer to the GPT Reference Manual (GPTRM/AD) for complete information about the GPT module.
7.1 General
The 11-channel general-purpose timer (GPT) is used in systems where a moderate
level of CPU control is required. The GPT consists of a capture/compare unit, a pulse
accumulator, and two pulse-width modulators. A bus interface unit connects the GPT
to the intermodule bus (IMB).
The capture/compare unit features three input capture channels, four output compare
channels, and one channel that can be selected as an input capture or output compare
channel. These channels share a 16-bit free-running counter which derives its clock
from a nine-stage prescaler or from the external clock input signal, PCLK.
Pulse accumulator channel logic includes an 8-bit counter; the pulse accumulator can
operate in either event counting mode or gated time accumulation mode.
Pulse-width modulator outputs are periodic waveforms whose duty cycles can be independently selected and modified by user software. The PWM circuits share a 16-bit
free-running counter that can be clocked by the same nine-stage prescaler used by
the capture/compare unit or by the PCLK input.
All GPT pins can also be used for general-purpose input/output. The input capture and
output compare pins form a bidirectional 8-bit parallel port (PORTGP). PWM pins are
outputs only. PAI and PCLK pins are inputs only.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-1
7
IC1/PGP0
IC2/PGP1
IC3/PGP2
CAPTURE/COMPARE UNIT
PULSE ACCUMULATOR
OC1/PGP3
OC2/OC1/PGP4
OC3/OC1/PGP5
OC4/OC1/PGP6
IC4/OC5/OC1/PGP7
PAI
PRESCALER
PCLK
PWM UNIT
PWMA
PWMB
BUS INTERFACE
7
IMB
GPT BLOCK
Figure 7-1 GPT Block Diagram
7.2 GPT Registers and Address Map
The GPT programming model consists of a configuration register (GPTMCR), parallel
I/O registers (DDRGP, PORTGP), capture/compare registers (TCNT, TCTL1, TCTL2,
TIC[1:3], TOC[1:4], TI4/O5, CFORC), pulse accumulator registers (PACNT, PACTL),
pulse-width modulation registers (PWMA, PWMB, PWMC, PWMCNT, PWMBUFA,
PWMBUFB), status registers (TFLG1, TFLG2) and interrupt control registers (TMSK1,
TMSK2). Functions of the module configuration register are discussed in 7.3 Special
Modes of Operation and 7.4 Polled and Interrupt-Driven Operation. Other register
functions are discussed in the appropriate sections.
All registers can be accessed using byte or word operations. Certain capture/compare
registers and pulse-width modulation registers must be accessed by word operations
to ensure coherency. If byte accesses are used to read a register such as the timer
counter register (TCNT), there is a possibility that data in the byte not being accessed
will change while the other byte is read. Both bytes must be accessed at the same
time.
The modmap (MM) bit in the system integration module configuration register (SIMCR) defines the most significant bit (ADDR23) of the IMB address for each register in
the MCU.
Refer to APPENDIX D REGISTER SUMMARY for a GPT address map and register
bit/field descriptions. SECTION 4 SYSTEM INTEGRATION MODULE contains more
information about how the state of MM affects the system.
MOTOROLA
7-2
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
7.3 Special Modes of Operation
The GPT module configuration register (GPTMCR) module configuration register
(GPTMCR) is used to control special GPT operating modes. These include low-power
stop mode, freeze mode, single-step mode, and test mode. Normal GPT operation can
be polled or interrupt-driven. Refer to 7.4 Polled and Interrupt-Driven Operation for
more information.
7.3.1 Low-Power Stop Mode
Low-power stop operation is initiated by setting the STOP bit in GPTMCR. In stop
mode the system clock to the module is turned off. The clock remains off until STOP
is negated or a reset occurs. All counters and prescalers within the timer stop counting
while the STOP bit is set. Only the module configuration register (GPTMCR) and the
interrupt configuration register (ICR) should be accessed while in the stop mode. Accesses to other GPT registers cause unpredictable behavior. Low-power stop can also
be used to disable module operation during debugging.
7.3.2 Freeze Mode
The freeze (FRZ[1:0]) bits in GPTMCR are used to determine what action is taken by
the GPT when the IMB FREEZE signal is asserted. FREEZE is asserted when the
CPU enters background debugging mode. At the present time, FRZ1 has no effect;
setting FRZ0 causes the GPT to enter freeze mode. Refer to SECTION 5 CENTRAL
PROCESSING UNIT for more information on background debugging mode.
Freeze mode freezes the current state of the timer. The prescaler and the pulse accumulator do not increment and changes to the pins are ignored (input pin synchronizers
are not clocked). All of the other timer functions that are controlled by the CPU will operate normally; for example, registers can be written to change pin directions, force
output compares, and read or write I/O pins.
While the FREEZE signal is asserted, the CPU has write access to registers and bits
that are normally read-only, or write-once. The write-once bits can be written to as often as needed. The prescaler and the pulse accumulator remain stopped and the input
pins are ignored until the FREEZE signal is negated (the CPU is no longer in BDM),
the FRZ0 bit is cleared, or the MCU is reset.
Activities that are in progress prior to FREEZE assertion are completed. For example,
if an input edge on an input capture pin is detected just as the FREEZE signal is asserted, the capture occurs and the corresponding interrupt flag is set.
7.3.3 Single-Step Mode
Two bits in GPTMCR support GPT debugging without using BDM. When the STOPP
bit is asserted, the prescaler and the pulse accumulator stop counting and changes at
input pins are ignored. Reads of the GPT pins return the state of the pin when STOPP
was set. After STOPP is set, the INCP bit can be set to increment the prescaler and
clock the input synchronizers once. The INCP bit is self-negating after the prescaler is
incremented. INCP can be set repeatedly. The INCP bit has no effect when the
STOPP bit is not set.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-3
7
7.3.4 Test Mode
Test mode is used during Motorola factory testing. The GPT has no dedicated testmode control register; all GPT testing is done under control of the system integration
module.
7.4 Polled and Interrupt-Driven Operation
Normal GPT function can be polled or interrupt-driven. All GPT functions have an associated status flag and an associated interrupt. The timer interrupt flag registers
(TFLG1 and TFLG2) contain status flags used for polled and interrupt-driven operation. The timer mask registers (TMSK1 and TMSK2) contain interrupt control bits. Control routines can monitor GPT operation by polling the status registers. When an event
occurs, the control routine transfers control to a service routine that handles that event.
If interrupts are enabled for an event, the GPT requests interrupt service when the
event occurs. Using interrupts does not require continuously polling the status flags to
see if an event has taken place. However, status flags must be cleared after an interrupt is serviced, in order to disable the interrupt request.
7
7.4.1 Polled Operation
When an event occurs in the GPT, that event sets a status flag in TFLG1 or TFLG2.
The GPT sets the flags; they cannot be set by the CPU. TFLG1 and TFLG2 are 8-bit
registers that can be accessed individually or as one 16-bit register. The registers are
initialized to zero at reset. Table 7-1 shows status flag assignment.
Table 7-1 GPT Status Flags
Flag
Mnemonic
IC1F
IC2F
IC3F
OC1F
OC2F
OC3F
OC4F
I4/O5F
TOF
PAOVF
PAIF
Register
Assignment
TFLG1
TFLG1
TFLG1
TFLG1
TFLG1
TFLG1
TFLG1
TFLG1
TFLG2
TFLG2
TFLG2
Source
Input Capture 1
Input Capture 2
Input Capture 3
Output Compare 1
Output Compare 2
Output Compare 3
Output Compare 4
Input Capture 4/Output Compare 5
Timer Overflow
Pulse Accumulator Overflow
Pulse Accumulator Input
For each bit in TFLG1 and TFLG2 there is a corresponding bit in TMSK1 and TMSK2
in the same bit position. If a mask bit is set and an associated event occurs, a hardware
interrupt request is generated.
To re-enable a status flag after an event occurs, the status flags must be cleared. Status registers are cleared in a particular sequence. The register must first be read for
set flags, then zeros must be written to the flags that are to be cleared. If a new event
occurs between the time that the register is read and the time that it is written, the associated flag is not cleared.
MOTOROLA
7-4
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
7.4.2 GPT Interrupts
The GPT has 11 internal sources that can cause it to request interrupt service (refer
to Table 7-2). Setting bits in TMSK1 and TMSK2 enables specific interrupt sources.
TMSK1 and TMSK2 are 8-bit registers that can be addressed individually or as one
16-bit register. The registers are initialized to zero at reset. For each bit in TMSK1 and
TMSK2 there is a corresponding bit in TFLG1 and TFLG2 in the same bit position.
TMSK2 also controls the operation of the timer prescaler. Refer to 7.7 Prescaler for
more information.
The value of the interrupt level (IRL) field in the interrupt control register (ICR) determines the priority of GPT interrupt requests. IRL values correspond to MCU interrupt
request signals IRQ[7:1]. IRQ7 is the highest priority interrupt request signal; IRQ1 is
the lowest-priority signal. A value of %111 causes IRQ7 to be asserted when a GPT
interrupt request is made; lower field values cause corresponding lower-priority interrupt request signals to be asserted. Setting field value to %000 disables interrupts.
Table 7-2 GPT Interrupt Sources
Name
—
IC1
IC2
IC3
OC1
OC2
OC3
OC4
IC4/OC5
TO
PAOV
PAI
Source
Number
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
Source
Adjusted Channel
Input Capture 1
Input Capture 2
Input Capture 3
Output Compare 1
Output Compare 2
Output Compare 3
Output Compare 4
Input Capture 4/Output Compare 5
Timer Overflow
Pulse Accumulator Overflow
Pulse Accumulator Input
Vector
Number
IVBA : 0000
IVBA : 0001
IVBA : 0010
IVBA : 0011
IVBA : 0100
IVBA : 0101
IVBA : 0110
IVBA : 0111
IVBA : 1000
IVBA : 1001
IVBA : 1010
IVBA : 1011
The CPU32 recognizes only interrupt request signals of a priority greater than the status register interrupt priority (IP) mask value. When the CPU acknowledges an interrupt request, the priority of the acknowledged request is written to the IP mask and
driven out on the IMB address lines.
When the IP mask value driven out on the address lines is the same as the IRL value,
the GPT contends for arbitration priority. GPT arbitration priority is determined by the
value of the IARB field in GPTMCR. Each MCU module that can make interrupt requests must be assigned a nonzero IARB value in order to implement an arbitration
scheme. Arbitration is performed by means of serial assertion of IARB field bit values.
When the GPT wins interrupt arbitration, it responds to the CPU interrupt acknowledge
cycle by placing an interrupt vector number on the data bus. The vector number is
used to calculate displacement into the CPU32 exception vector table. Vector numbers are formed by concatenating the value in the ICR IVBA field with a 4-bit value
supplied by the GPT when an interrupt request is made. Hardware prevents the vector
number from changing while it is being driven out on the IMB. Vector number assignment is shown in Table 7-2.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-5
7
At reset, IVBA is initialized to $0. To enable interrupt-driven timer operation, the upper
nibble ($4–$F) of a user-defined vector number ($40–$FF) must be written to IVBA,
and interrupt handler routines must be located at the addresses pointed to by the corresponding vector. Note that IVBA must be written before GPT interrupts are enabled,
or the GPT could supply a vector number ($00 to $0F) that corresponds to an assigned
or reserved exception vector.
The internal GPT interrupt priority hierarchy is shown in Table 7-2. The lower the interrupt source number, the higher the priority. A single GPT interrupt source can be
given priority over all other GPT interrupt sources by assigning the priority adjust field
(PAB) in the ICR a value equal to its source number.
Interrupt requests are asserted until associated status flags are cleared. Status flags
must be cleared in a particular sequence. The status register must first be read for set
flags, then zeros must be written to the flags that are to be cleared. If a new event occurs between the time that the register is read and the time that it is written, the associated flag is not cleared.
7
Refer to SECTION 5 CENTRAL PROCESSING UNIT and SECTION 4 SYSTEM INTEGRATION MODULE for more information about exceptions and interrupts.
7.5 Pin Descriptions
The GPT uses 12 pins. Each pin can perform more than one function. Descriptions of
GPT pins divided into functional groups follow.
7.5.1 Input Capture Pins (IC[1:3])
Each of these pins is associated with a single GPT input capture function. Each pin
has hysteresis. Any pulse longer than two system clocks is guaranteed to be valid and
any pulse shorter than one system clock is ignored. Each pin has an associated 16-bit
capture register that holds the captured counter value. These pins can also be used
for general-purpose I/O. Refer to 7.8.2 Input Capture Functions for more information.
7.5.2 Input Capture/Output Compare Pin (IC4/OC5)
This pin can be configured for use by either an input capture or an output compare
function. It has an associated 16-bit register that is used for holding either the input
capture value or the output match value. When used for input capture the pin has the
same hysteresis as other input capture pins. The pin can be used for general-purpose
I/O. Refer to 7.8.2 Input Capture Functions and 7.8.3 Output Compare Functions
for more information.
7.5.3 Output Compare Pins (OC[1:4])
These pins are used for GPT output compare functions. Each pin has an associated
16-bit compare register and a 16-bit comparator. Pins OC2, OC3, and OC4 are associated with a specific output compare function. The OC1 function can affect the output
of all compare pins. If the OC1 pin is not needed for an output compare function it can
MOTOROLA
7-6
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
be used to output the clock selected for the timer counter register. Any of these pins
can also be used for general-purpose I/O. Refer to 7.8.3 Output Compare Functions
for more information.
7.5.4 Pulse Accumulator Input Pin (PAI)
The PAI pin connects a discrete signal to the pulse accumulator for timed or gated
pulse accumulation. PAI has hysteresis. Any pulse longer than two system clocks is
guaranteed to be valid and any pulse shorter than one system clock is ignored. It can
be used as a general-purpose input pin. Refer to 7.10 Pulse Accumulator for more
information.
7.5.5 Pulse-Width Modulation (PWMA, PWMB)
PWMA and PWMB pins carry pulse-width modulator outputs. The modulators can be
programmed to generate a periodic waveform of variable frequency and duty cycle.
PWMA can be used to output the clock selected as the input to the PWM counter.
These pins can also be used for general-purpose output. Refer to 7.11 Pulse-Width
Modulation Unit for more information.
7.5.6 Auxiliary Timer Clock Input (PCLK)
PCLK connects an external clock to the GPT. The external clock can be used as the
clock source for the capture/compare unit or the PWM unit in place of one of the prescaler outputs. PCLK has hysteresis. Any pulse longer than two system clocks is guaranteed to be valid and any pulse shorter than one system clock is ignored. This pin
can also be used as a general-purpose input pin. Refer to 7.7 Prescaler for more information.
7.6 General-Purpose I/O
Any GPT pin can be used for general-purpose I/O when it is not used for another purpose. Capture/compare pins are bidirectional, others can be used only for output or
input. I/O direction is controlled by a data direction bit in the port GP data direction register (DDRGP).
Parallel data is read from and written to the port GP data register (PORTGP). Pin data
can be read even when pins are configured for a timer function. Data read from PORTGP always reflects the state of the external pin, while data written to PORTGP may
not always affect the external pin.
Data written to PORTGP does not immediately affect pins used for output compare
functions, but the data is latched. When an output compare function is disabled, the
last data written to PORTGP is driven out on the associated pin if it is configured as
an output. Data written to PORTGP can cause input captures if the corresponding pin
is configured for input capture function.
The pulse accumulator input (PAI and the external clock input (PCLK) pins provide
general-purpose input. The state of these pins can be read by accessing the PAIS and
PCLKS bits in the pulse accumulator control register (PACTL).
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-7
7
Pulse-width modulation A and B (PWMA/PWMB) output pins can serve as generalpurpose outputs. The force PWM value (FPWMx) and the force logic one (F1x) bits in
the compare force (CFORC) and PWM control (PWMC) registers, respectively, control
their operation.
7.7 Prescaler
Capture/compare and PWM units have independent 16-bit free-running counters as a
main timing component. These counters derive their clocks from the prescaler or from
the PCLK input. Figure 7-2 is a prescaler block diagram.
In the prescaler, the system clock is divided by a nine-stage divider chain. Prescaler
outputs equal to system clock divided by 2, 4, 8, 16, 32, 64, 128, 256 and 512 are provided. Connected to these outputs are two multiplexers, one for the capture/compare
unit, the other for the PWM unit.
7
Multiplexers can each select one of seven prescaler taps or an external input from the
PCLK pin. Multiplexer output for the timer counter (TCNT) is selected by bits CPR[2:0]
in timer interrupt mask register 2 (TMSK2). Multiplexer output for the PWM counter
(PWMCNT) is selected by bits PPR[2:0] in PWM control register C (PWMC).
After reset, the GPT is configured to use system clock divided by four for TCNT and
system clock divided by two for PWMCNT. Initialization software can change the division factor. The PPR bits can be written at any time but the CPR bits can only be written once after reset unless the GPT is in test or freeze mode.
The prescaler can be read at any time. In freeze mode the prescaler can also be written. Word accesses must be used to ensure coherency. If coherency is not needed
byte accesses can be used. The prescaler value is contained in bits [8:0] while bits
[15:9] are unimplemented and are read as zeros.
MOTOROLA
7-8
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
SYSTEM CLOCK
÷512
÷4
÷8
÷16
÷32
÷64
÷128
÷256
÷512
÷2
DIVIDER
EXT.
TO PULSE ACCUMULATOR
TO PULSE ACCUMULATOR
TO PULSE ACCUMULATOR
CPR2 CPR1 CPR0
÷256
÷128
÷64
÷32
÷16
÷8
÷4
EXT.
÷128
÷64
÷32
÷16
÷8
÷4
÷2
EXT.
PCLK
PIN
SELECT
TO CAPTURE/
COMPARE
TIMER
7
SELECT
TO
PWM UNIT
SYNCHRONIZER AND
DIGITAL FILTER
PPR2 PPR1 PPR0
GPT PRESCALER BLOCK
Figure 7-2 Prescaler Block Diagram
Multiplexer outputs (including the PCLK signal) can be connected to external pins) can
be connected to external pins. The CPROUT bit in the TMSK2 register configures the
OC1 pin to output the TCNT clock and the PPROUT bit in the PWMC register configures the PWMA pin to output the PWMC clock. CPROUT and PPROUT can be written
at any time. Clock signals on OC1 and PWMA do not have a 50% duty cycle. They
have the period of the selected clock but are high for only one system clock time.
The prescaler also supplies three clock signals to the pulse accumulator clock select
mux. These are the system clock divided by 512, the external clock signal from the
PCLK pin and the capture/compare clock signal.
7.8 Capture/Compare Unit
The capture/compare unit contains the timer counter (TCNT), the input capture (IC)
functions and the output compare (OC) functions. Figure 7-3 is a block diagram of the
capture/compare unit.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-9
PCLK
SYSTEM
CLOCK
PRESCALER–DIVIDE BY
4, 8, 16, 32, 64, 128, OR 256
TCNT (HI)
TCNT (LO)
16-BIT FREE-RUNNING
COUNTER
1 OF 8 SELECT
CPR2 CPR1 CPR0
TOI
TOF
INTERRUPT
REQUESTS
16-BIT TIMER BUS
TMSK1
IC1I
TFLG1
16-BIT LATCH CLK
TIC1 (HI)
TIC1 (LO)
16-BIT LATCH CLK
TIC2 (HI)
TIC2 (LO)
16-BIT LATCH CLK
TIC3 (HI)
TIC3 (LO)
16-BIT TIMER BUS
PGP0
IC1
BIT-1
PGP1
IC2
BIT-2
PGP2
IC3
BIT-3
PGP3
OC1
BIT-4
PGP4
OC2/
OC1
BIT-5
PGP5
OC3/
OC1
BIT-6
PGP6
OC4/
OC1
BIT-7
PGP7
IC4/
OC5/
OC1
3
IC3F
OC1I
BIT-0
2
IC2F
IC3I
PIN
FUNCTIONS
1
IC1F
IC2I
7
9
4
CFORC
16-BIT COMPARATOR =
TOC1 (HI)
TOC1 (LO)
OC1F
FOC1
OC2I
16-BIT COMPARATOR =
TOC2 (HI)
TOC2 (LO)
5
OC2F
FOC2
OC3I
16-BIT COMPARATOR =
TOC3 (HI)
TOC3 (LO)
6
OC3F
FOC3
OC4I
16-BIT COMPARATOR =
TOC4 (HI)
TOC4 (LO)
7
OC4F
FOC4
I4/O5I
16-BIT COMPARATOR =
TI4/O5 (HI) TI4/O5 (LO)
16-BIT LATCH CLK
8
OC5
I4/O5F
FOC5
IC4
I4/O5
STATUS
FLAGS
FORCE
OUTPUT
COMPARE
INTERRUPT
ENABLES
PARALLEL
PORT PIN
CONTROL
16/32 CC BLOCK
Figure 7-3 Capture/Compare Unit Block Diagram
MOTOROLA
7-10
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
7.8.1 Timer Counter
The timer counter (TCNT) is the key timing component in the capture/compare unit.
The timer counter is a 16-bit free-running counter that starts counting after the processor comes out of reset. The counter cannot be stopped during normal operation. After
reset, the GPT is configured to use the system clock divided by four as the input to the
counter. The prescaler divides the system clock and provides selectable input frequencies. User software can configure the system to use one of seven prescaler outputs or an external clock.
The counter can be read any time without affecting its value. Because the GPT is interfaced to the IMB and the IMB supports a 16-bit bus, a word read gives a coherent
value. If coherency is not needed, byte accesses can be made. The counter is set to
$0000 during reset and is normally a read-only register. In test mode and freeze mode,
any value can be written to the timer counter.
When the counter rolls over from $FFFF to $0000, the timer overflow flag (TOF) in timer interrupt flag register 2 (TFLG2) is set. An interrupt can be enabled by setting the
corresponding interrupt enable bit (TOI) in timer interrupt mask register 2 (TMSK2).
Refer to 7.4.2 GPT Interrupts for more information.
7.8.2 Input Capture Functions
All GPT input capture functions use the same 16-bit timer counter (TCNT). Each input
capture pin has a dedicated 16-bit latch and input edge-detection/selection logic. Each
input capture function has an associated status flag, and can cause the GPT to make
an interrupt service request.
When a selected edge transition occurs on an input capture pin, the associated 16-bit
latch captures the content of TCNT and sets the appropriate status flag. An interrupt
request can be generated when the transition is detected.
Edge-detection logic consists of control bits that enable edge detection and select a
transition to detect. The EDGxA and EDGxB bits in timer control register 2 (TCTL2)
determine whether the input capture functions detect rising edges only, falling edges
only, or both rising and falling edges. Clearing both bits disables the input capture
function. Input capture functions operate independently of each other and can capture
the same TCNT value if individual input edges are detected within the same timer
count cycle.
Input capture interrupt logic includes a status flag, which indicates that an edge has
been detected, and an interrupt enable bit. An input capture event sets the ICxF bit in
the timer interrupt flag register 1 (TFLG1) and causes the GPT to make an interrupt
request if the corresponding ICxI bit is set in the timer interrupt mask register 1
(TMSK1). If the ICxI bit cleared, software must poll the status flag to determine that an
event has occurred. Refer to 7.4 Polled and Interrupt-Driven Operation for more information.
Input capture events are generally asynchronous to the timer counter. Because of this,
input capture signals are conditioned by a synchronizer and digital filter. Events are
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-11
7
synchronized with the system clock so that latching of TCNT content and counter incrementation occur on opposite half-cycles of the system clock. Inputs have hysteresis. Capture of any transition longer than two system clocks is guaranteed; any
transition shorter than one system clock has no effect.
Figure 7-4 shows the relationship of system clock to synchronizer output. The value
latched into the capture register is the value of the counter several system clock cycles
after the transition that triggers the edge detection logic. There can be up to one clock
cycle of uncertainty in latching of the input transition. Maximum time is determined by
the system clock frequency.
The input capture register is a 16-bit register. A word access is required to ensure coherency. If coherency is not required, byte accesses can be used to read the register.
Input capture registers can be read at any time without affecting their values.
FSYS(PH1)
7
CAPTURE/COMPARE
CLOCK
TCNT
$0101
$0102
EXTERNAL PIN
SYNCHRONIZER
OUTPUT
$0102
CAPTURE REGISTER
ICF FLAG
1153A
Figure 7-4 Input Capture Timing Example
An input capture occurs every time a selected edge is detected, even when the input
capture status flag is set. This means that the value read from the input capture register corresponds to the most recent edge detected, which may not be the edge that
caused the status flag to be set.
7.8.3 Output Compare Functions
Each GPT output compare pin has an associated 16-bit compare register and a 16-bit
comparator. Each output compare function has an associated status flag, and can
cause the GPT to make an interrupt service request. Output compare logic is designed
to prevent false compares during data transition times.
MOTOROLA
7-12
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
When the programmed content of an output compare register matches the value in
TCNT, an output compare status flag (OCxF) bit in TFLG1 is set. If the appropriate interrupt enable bit (OCxI) in TMSK1 is set, an interrupt request is made when a match
occurs. Refer to 7.4.2 GPT Interrupts for more information.
Operation of output compare 1 differs from that of the other output compare functions.
OC1 control logic can be programmed to make state changes on other OC pins when
an OC1 match occurs. Control bits in the timer compare force register (CFORC) allow
for early forced compares.
7.8.3.1 Output Compare 1
Output compare 1 can affect any or all of OC[1:5] when an output match occurs. In
addition to allowing generation of multiple control signals from a single comparison operation, this function makes it possible for two or more output compare functions to
control the state of a single OC pin. Output pulses as short as one timer count can be
generated in this way.
The OC1 action mask register (OC1M) and the OC1 action data register (OC1D) control OC1 function. Setting a bit in OC1M selects a corresponding bit in the GPT parallel
data port. Bits in OC1D determine whether selected bits are to be set or cleared when
an OC1 match occurs. Pins must be configured as outputs in order for the data in the
register to be driven out on the corresponding pin. If an OC1 match and another output
match occur at the same time and both attempt to alter the same pin, the OC1 function
controls the state of the pin.
7.8.3.2 Forced Output Compare
Timer compare force register (CFORC) is used to make forced compares. The action
taken as a result of a forced compare is the same as when an output compare match
occurs, except that status flags are not set. Forced channels take programmed actions
immediately after the write to CFORC.
The CFORC register is implemented as the upper byte of a 16-bit register which also
contains the PWM control register C (PWMC). It can be accessed as eight bits or a
word access can be used. Reads of force compare bits (FOC) have no meaning and
always return zeros. These bits are self-negating.
7.9 Input Capture 4/Output Compare 5
The IC4/OC5 pin can be used for input capture, output compare, or general-purpose
I/O. A function enable bit (I4/O5) in the pulse accumulator control register (PACTL)
configures the pin for input capture (IC4) or output compare function (OC5). Both bits
are cleared during reset, configuring the pin as an input, but also enabling the OC5
function. IC4/OC5 I/O functions are controlled by the I4/O5 bit in the port GP data direction register (DDRGP).
The 16-bit register (TI4/O5) used with the IC4/OC5 function acts as an input capture
register or as an output compare register depending on which function is selected.
When used as the input capture 4 register, it cannot be written except in test or freeze
mode.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-13
7
7.10 Pulse Accumulator
The pulse accumulator counter (PACNT) is an 8-bit read/write up-counter. PACNT can
operate in external event counting or gated time accumulation modes. Figure 7-5 is a
block diagram of the pulse accumulator.
In event counting mode, the counter increments each time a selected transition of the
pulse accumulator input (PAI) pin is detected. The maximum clocking rate is the system clock divided by four.
In gated time accumulation mode a clock increments PACNT while the PAI pin is in
the active state. There are four possible clock sources.
Two bits in the TFLG2 register show pulse accumulator status. The pulse accumulator
flag (PAIF) indicates that a selected edge has been detected at the PAI pin. The pulse
accumulator overflow flag (PAOVF) indicates that the pulse accumulator count has
rolled over from $FF to $00. This can be used to extend the range of the counter beyond eight bits.
7
An interrupt request can be made when each of the status flags is set. However, operation of the PAI interrupt depends on operating mode. In event counting mode, an
interrupt is requested when the edge being counted is detected. In gated mode, the
request is made when the PAI input changes from active to inactive state. Interrupt requests are enabled by the PAOVI and PAII bits in the TMSK2 register.
Bits in the pulse accumulator control register (PACTL) control the operation of PACNT.
The PAMOD bit selects event counting or gated operation. In event counting mode,
the PEDGE control bit determines whether a rising or falling edge is detected; in gated
mode, PEDGE specifies the active state of the gate signal. Bits PACLK[1:0] select the
clock source used in gated mode.
PACTL and PACNT are implemented as one 16-bit register, but can be accessed with
byte or word access cycles. Both registers are cleared at reset, but the PAIS and
PCLKS bits show the state of the PAI and PCLK pins.
The PAI pin can also be used for general-purpose input. The logic state of the PAIS
bit in PACTL shows the state of the pin.
MOTOROLA
7-14
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
10
INTERRUPT
REQUESTS
TMSK2
EDGE
DETECT
LOGIC
SYNCHRONIZER
&
DIGITAL FILTER
PAI
PAIF
PAOVF
PAII
PAOVI
11
TFLG2
OVERFLOW
2:1
MUX
PACNT
8-BIT COUNTER
7
PEDGE
PAMOD
PAEN
PAIS
ENABLE
PACLK0
PACLK1
PCLKS
PACTL
PCLK
TCNT OVERFLOW
CAPTURE/COMPARE CLK
PRESCALER ÷ 512
INTERNAL
DATA BUS
MUX
16/32 PLS ACC BLOCK
Figure 7-5 Pulse Accumulator Block Diagram
7.11 Pulse-Width Modulation Unit
The pulse-width modulation (PWM) unit has two output channels, PWMA and PWMB.
A single clock output from the prescaler multiplexer drives a 16-bit counter that is used
to control both channels. Figure 7-6 is a block diagram of the pulse-width modulation
unit.
The PWM unit has two operational modes. Fast mode uses a clocking rate equal to 1/
256 of the prescaler output rate; slow mode uses a rate equal to 1/32768 of the prescaler output rate. The duty cycle ratios of the two PWM channels can be individually
controlled by software. The PWMA pin can also output the clock that drives the PWM
counter. PWM pins can also be used as output pins.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-15
16-BIT DATA BUS
PWMBUFA REGISTER
PWMBUFB REGISTER
COMPARATOR A
COMPARATOR B
PWMA
PIN
R
LATCH
S
F1A
BIT
ZERO DETECTOR
SFA
BIT
MULTIPLEXER A
16-BIT COUNTER
R
LATCH
S
PWMB
PIN
8-BIT
PWMB REGISTER
8-BIT
7
PWMA REGISTER
ZERO DETECTOR
F1B
BIT
MULTIPLEXER B
SFB
BIT
16-BIT TIMER BUS
FROM
PRESCALER
16/32 PWM BLOCK
Figure 7-6 PWM Block Diagram
7.11.1 PWM Counter
The 16-bit counter in the PWM unit is similar to the timer counter in the capture/compare unit. During reset, the GPT is configured to use the system clock divided by two
to drive the counter. Initialization software can reconfigure the counter to use one of
seven prescaler outputs or an external clock input from the PCLK pin.
MOTOROLA
7-16
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
The PWM count register (PWMCNT) can be read at any time without affecting its value. A read must be a word access to ensure coherence, but byte accesses can be
made if coherence is not needed. The counter is cleared to $0000 during reset and is
a read-only register except in freeze or test mode.
Fifteen of the sixteen counter bits are output to multiplexers A and B. The multiplexers
provide the fast and slow modes of the PWM unit. Mode for PWMA is selected by the
SFA bit in the PWM control register C (PWMC). Mode for PWMB is selected by the
SFB bit in the same register.
PWMA, PWMB, and PPR[2:0] bits in PWMC control PWM output frequency. In fast
mode, bits [7:0] of PWMCNT are used to clock the PWM logic; in slow mode, bits [14:7]
are used. The period of a PWM output in is 128 times longer than the fast mode period.
Table 7-3 shows a range of PWM output frequencies using a 16.78-MHz system clock
and 20.97-MHz system clock.
Table 7-3 PWM Frequency Ranges
Using 16.78-MHz/20.97-MHz System Clocks
PPR
Prescaler Tap
[2:0]
16.78 MHz
20.97 MHz
000 Div 2 = 8.39 MHz Div 2 = 10.5 MHz
001 Div 4 = 4.19 MHz Div 4 = 5.25 MHz
010 Div 8 = 2.10 MHz Div 8 = 2.62 MHz
011 Div 16 = 1.05 MHz Div 16 = 1.31 MHz
100 Div 32 = 524 kHz Div 32 = 655 kHz
101 Div 64 = 262 kHz Div 64 = 328 kHz
110 Div 128 = 131 kHz Div 128 = 164 kHz
111
PCLK
PCLK
SFA/B = 0
16.78 MHz
20.97 MHz
32.8 kHz
41 kHz
16.4 kHz
20.5 kHz
8.19 kHz
10.2 kHz
4.09 kHz
5.15 kHz
2.05 kHz
2.56 kHz
1.02 kHz
1.28 kHz
512 Hz
641 Hz
PCLK/256
PCLK/256
SFA/B = 1
16.78 MHz 20.97 MHz
256 Hz
320 Hz
128 Hz
160 Hz
64.0 Hz
80.0 Hz
32.0 Hz
40.0 Hz
16.0 Hz
20.0 Hz
8.0 Hz
10.0 Hz
4.0 Hz
5.0 Hz
PCLK/32768 PCLK/32768
7.11.2 PWM Function
The pulse width values of the PWM outputs are determined by control registers PWMA
and PWMB. PWMA and PWMB are 8-bit registers implemented as two bytes of a 16bit register. PWMA and PWMB can be accessed as separate bytes or as one 16-bit
register. A value of $00 loaded into either register causes the corresponding output pin
to output a continuous logic level zero signal. A value of $80 causes the corresponding
output signal to have a 50% duty cycle, and so on, to the maximum value of $FF, which
corresponds to an output which is at logic level one for 255/256 of the cycle.
Setting the F1A (for PWMA) or F1B (for PWMB) bits in the register causes the corresponding pin to output a continuous logic level one signal. The logic level of the associated pin does not change until the end of the current cycle. F1A and F1B are the
lower two bits of CFORC, but can be accessed at the same word address as PWMC.
Data written to PWMA and PWMB is not used until the end of a complete cycle. This
prevents spurious short or long pulses when register values are changed. The current
duty cycle value is stored in the appropriate PWM buffer register (PWMBUFA or PWMBUFB). The new value is transferred from the PWM register to the buffer register at
the end of the current cycle.
MC68331
USER’S MANUAL
GENERAL-PURPOSE TIMER
MOTOROLA
7-17
7
Registers PWMA, PWMB, and PWMC are reset to $00 during reset. These registers
may be written or read at any time. PWMC is implemented as the lower byte of a 16bit register. The upper byte is the CFORC register. The buffer registers, PWMBUFA
and PWMBUFB, are read-only at all times and may be accessed as separate bytes or
as one 16-bit register.
Pins PWMA and PWMB can also be used for general-purpose output. The values of
the F1A and F1B bits in PWMC are driven out on the corresponding PWM pins when
normal PWM operation is disabled. When read, the F1A and F1B bits reflect the states
of the PWMA and PWMB pins.
7
MOTOROLA
7-18
GENERAL-PURPOSE TIMER
MC68331
USER’S MANUAL
APPENDIX A ELECTRICAL CHARACTERISTICS
This appendix contains electrical specification tables and reference timing diagrams.
Table A-1 Maximum Ratings
Num
Rating
1,2 , 7
Symbol
Value
Unit
1
Supply Voltage
VDD
–0.3 to +6.5
V
2
Input Voltage1, 2, 3, 5, 7
Vin
–0.3 to +6.5
V
3
Instantaneous Maximum Current
ID
25
mA
Single pin limit (applies to all pins)1, 5, 6, 7
4
Operating Maximum Current
Digital Input Disruptive Current 4,5,6,7,8
VNEGCLMAP ≅ – 0.3 V
VPOSCLAMP ≅ VDD + 0.3
IID
–500 to 500
µA
5
Operating Temperature Range
MC68331 No Suffix
MC68331 “C” Suffix
MC68331 “V” Suffix
MC68331 “M” Suffix
TA
TL to TH
0 to 70
–40 to 85
–40 to 105
–40 to 125
°C
6
Storage Temperature Range
Tstg
–55 to 150
°C
A
1. Permanent damage can occur if maximum ratings are exceeded. Exposure to voltages or
currents in excess of recommended values affects device reliability. Device modules may
not operate normally while being exposed to electrical extremes.
2. Although sections of the device contain circuitry to protect against damage from high static
voltages or electrical fields, take normal precautions to avoid exposure to voltages higher
than maximum-rated voltages.
3. All pins except TSTME/TSC
4. All functional non-supply pins are internally clamped to VSS. All functional pins except EXTAL and XFC are internally clamped to VDD.
5. Input must be current limited to the value specified. To determine the value of the required
current-limiting resistor, calculate resistance values for positive and negative clamp voltages, then use the larger of the two values.
6. Power supply must maintain regulation within operating VDD range during instantaneous and
operating maximum current conditions.
7. This parameter is periodically sampled rather than 100% tested.
8. Total input current for all digital input-only and all digital input/output pins must not exceed
10 mA. Exceeding this limit can cause disruption of normal operation.
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-1
Table A-2 Typical Ratings, 16.78 MHz Operation
Num
1
Rating
Supply Voltage
Symbol
Value
Unit
VDD
5.0
V
25
°C
75
125
3
mA
µA
mA
5.0
V
1.0
4.0
100
50
mA
mA
µA
µA
455
mW
2
Operating Temperature
TA
3
VDD Supply Current
RUN
LPSTOP, VCO off
LPSTOP, External clock, maxi fsys
IDD
4
Clock Synthesizer Operating Voltage
VDDSYN
5
VDDSYN Supply Current
VCO on, maximum fsys
External Clock, maximum fsys
LPSTOP, VCO off
VDD powered down
IDDSYN
6
Power Dissipation
PD
Table A-2a Typical Ratings, 20.97 MHz Operation
A
Num
1
Symbol
Value
Unit
VDD
5.0
V
25
°C
113
125
3.75
mA
µA
µA
5.0
V
1.0
5.0
100
50
mA
mA
µA
µA
570
mW
2
Operating Temperature
TA
3
VDD Supply Current
RUN
LPSTOP, VCO off
LPSTOP, External clock, maxi fsys
IDD
4
Clock Synthesizer Operating Voltage
VDDSYN
5
VDDSYN Supply Current
VCO on, maximum fsys
External Clock, maximum fsys
LPSTOP, VCO off
VDD powered down
IDDSYN
6
MOTOROLA
A-2
Rating
Supply Voltage
Power Dissipation
PD
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
Table A-3 Thermal Characteristics
Num
1
Rating
Symbol
Value
Unit
°C/W
ΘϑΑ
Thermal Resistance
Plastic 132-Pin Surface Mount
Plastic 144-Pin Surface Mount
Thin Plastic 144-Pin Surface Mount
38
46
49
NOTES:
The average chip-junction temperature (TJ) in C can be obtained from:
TJ = TA + (PD × ΘϑΑ)
(1)
where
TA
=
Ambient Temperature, °C
ΘϑΑ =
Package Thermal Resistance, Junction-to-Ambient, °C/W
PD
=
PINT + PI/O
PINT =
IDD × VDD, Watts — Chip Internal Power
PI/O =
Power Dissipation on Input and Output Pins — User Determined
For most applications PI/O < PINT and can be neglected. An approximate relationship between PD and
TJ (if PI/O is neglected) is:
PD = K ÷ (TJ + 273°C)
(2)
Solving equations 1 and 2 for K gives:
K = PD + (TA + 273°C) + ΘϑΑ × PD2
(3)
where K is a constant pertaining to the particular part. K can be determined from equation (3) by measuring PD (at equilibrium) for a known TA. Using this value of K, the values of PD and TJ can be obtained by solving equations (1) and (2) iteratively for any value of TA.
Table A-4 16.78 MHz Clock Control Timing
(VDD and VDDSYN = 5.0 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH,
32.768 kHz reference)
Num
1
2
Characteristic
PLL Reference Frequency Range
Symbol
Min
Max
Unit
fref
25
50
kHz
dc
16.78
fsys
0.131
16.78
dc
16.78
—
20
1
System Frequency
On-Chip PLL System Frequency
External Clock Operation
3
PLL Lock Time2,3,4,5
tlpll
6
4
VCO Frequency
fVCO
5
Limp Mode Clock Frequency
SYNCR X bit = 0
SYNCR X bit = 1
flimp
CLKOUT Stability2,3,4,7
Short term (5 µs interval)
Long term (500 µs interval)
Cstab
6
MC68331
USER’S MANUAL
2 (fsys max)
MHz
ms
MHz
MHz
—
—
fsys max/2
fsys max
–0.5
–0.05
0.5
0.05
%
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-3
A
Table A-4a 20.97 MHz Clock Control Timing
(VDD and VDDSYN = 5.0 Vdc ±5%, VSS = 0 Vdc, TA = TL to TH,
32.768 kHz reference)
Num
Characteristic
1
PLL Reference Frequency Range
2
System Frequency1
On-Chip PLL System Frequency
Symbol
Min
fref
fsys
External Clock Operation
Unit
25
50
kHz
dc
20.97
0.131
20.97
dc
20.97
MHz
3
PLL Lock Time2,3,4,5
tlpll
—
20
ms
4
VCO Frequency6
fVCO
—
2 (fsys max)
MHz
5
Limp Mode Clock Frequency
SYNCR X bit = 0
SYNCR X bit = 1
flimp
—
—
fsys max/2
fsys max
CLKOUT Stability2,3,4,7
Short term (5 µs interval)
Long term (500 µs interval)
Cstab
–0.5
–0.05
0.5
0.05
6
A
Max
MHz
%
Notes for Tables A–4 and A–4a
1. All internal registers retain data at 0 Hz
2 This parameter is periodically sampled rather than 100% tested.
3. Assumes that a low-leakage external filter network is used to condition clock synthesizer input voltage. Total
external resistance from the XFC pin due to external leakage must be greater than 15 M ∫ to guarantee this
specification. Filter network geometry can vary depending upon operating environment (See 4.3 System
Clock).
4. Proper layout procedures must be followed to achieve specifications.
5. Assumes that stable VDDSYN is applied, and that the crystal oscillator is stable. Lock time is measured from
the time VDD and VDDSYN are valid until RESET is released. This specification also applies to the period
required for PLL lock after changing the W and Y frequency control bits in the synthesizer control register
(SYNCR) while the PLL is running, and to the period required for the clock to lock after LPSTOP.
6. Internal VCO frequency (fVCO) is determined by SYNCR W and Y bit values. The SYNCR X bit controls a
divide-by-two circuit that is not in the synthesizer feedback loop. When X = 0, the divider is enabled, and fsys
= fVCO ÷ 4. When X = 1, the divider is disabled, and fsys = fVCO ÷ 2. X must equal one when operating at
maximum specified fsys.
7. Stability is the average deviation from the programmed frequency measured over the specified interval at
maximum fsys. Measurements are made with the device powered by filtered supplies and clocked by a stable external clock signal. Noise injected into the PLL circuitry via VDDSYN and VSS and variation in crystal
oscillator frequency increase the Cstab percentage for a given interval. When clock stability is a critical constraint on control system operation, this parameter should be measured during functional testing of the final
system.
MOTOROLA
A-4
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
Table A-5 16.78 MHz DC Characteristics
(VDD and VDDSYN = 5.0 Vdc ± 10%, VSS = 0 Vdc, TA = TL to TH)
Num
Characteristic
Symbol
Min
Max
Unit
VIH
0.7 (VDD)
VDD + 0.3
V
Input Low Voltage
VIL
VSS – 0.3
0.2 (VDD)
V
Input Hysteresis1
VHYS
0.5
—
V
Iin
–2.5
2.5
µA
–2.5
2.5
1
Input High Voltage
2
3
4
2
Input Leakage Current
Vin = VDD or VSS
Input-only pins
µA
High Impedance (Off-State) Leakage Current2
Vin = VDD or VSS
All input/output and output pins
IOZ
6
CMOS Output High Voltage2, 3
IOH = –10.0 µA
Group 1, 2, 4 input/output and all output pins
VOH
VDD – 0.2
—
V
7
CMOS Output Low Voltage2
IOL = 10.0 µA
Group 1, 2, 4 input/output and all output pins
VOL
—
0.2
V
8
Output High Voltage2, 3
IOH = –0.8 mA
VOH
VDD – 0.8
—
V
—
—
—
0.4
0.4
0.4
1.6 (VDD)
9.1
—
–15
–120
—
IDD
SIDD
SIDD
—
—
—
124
350
5
mA
µA
mA
VDDSYN
4.5
5.5
V
IDDSYN
IDDSYN
SIDDSYN
IDDSYN
—
—
—
—
1
5
150
100
mA
mA
µA
µA
PD
—
690
mW
Cin
—
—
10
20
pF
CL
—
—
—
—
90
100
130
200
pF
5
9
Group 1, 2, 4 input/output and all output pins
Output Low Voltage2
IOL = 1.6 mA Group 1 I/O Pins, CLKOUT, FREEZE/QUOT, IPIPE
IOL = 5.3 mA
Group 2 and Group 4 I/O Pins, CSBOOT, BG/CS
IOL = 12 mA
Group 3
10
Three State Control Input High Voltage
11
Data Bus Mode Select Pull-up Current5
Vin = VIL
Vin = VIH
12
13
14
15
VOL
VIHTSC
IMSP
DATA[15:0]
DATA[15:0]
VDD Supply Current6
RUN 4
LPSTOP, 32.768 kHz crystal, VCO Off (STSIM = 0)
LPSTOP (External clock input frequency = maximum fsys)
Clock Synthesizer Operating Voltage
V
V
µA
Current6
VDDSYN Supply
32.768 kHz crystal, VCO on, maximum fsys
External Clock, maximum fsys
LPSTOP, 32.768 kHz crystal, VCO off (STSIM = 0)
32.768 kHz crystal, VDD powered down
Power Dissipation8
2, 9
All input-only pins
All input/output pins
16
Input Capacitance
17
Load Capacitance2
Group 1 I/O Pins and CLKOUT, FREEZE/QUOT, IPIPE
Group 2 I/O Pins and CSBOOT, BG/CS
Group 3 I/O pins
Group 4 I/O pins
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-5
A
Table A-5a 20.97 MHz DC Characteristics
(VDD and VDDSYN = 5.0 Vdc ± 5%, VSS = 0 Vdc, TA = TL to TH)
Num
Symbol
Min
Max
Unit
VIH
0.7 (VDD)
VDD + 0.3
V
Input Low Voltage
VIL
VSS – 0.3
0.2 (VDD)
V
Input Hysteresis1
VHYS
0.5
—
V
Iin
–2.5
2.5
µA
–2.5
2.5
Input High Voltage
2
3
4
2
Input Leakage Current
Vin = VDD or VSS
Input-only pins
µA
High Impedance (Off-State) Leakage Current2
Vin = VDD or VSS
All input/output and output pins
IOZ
6
CMOS Output High Voltage2, 3
IOH = –10.0 µA
Group 1, 2, 4 input/output and all output pins
VOH
VDD – 0.2
—
V
7
CMOS Output Low Voltage2
IOL = 10.0 µA
Group 1, 2, 4 input/output and all output pins
VOL
—
0.2
V
8
Output High Voltage2, 3
IOH = –0.8 mA
VOH
VDD – 0.8
—
V
—
—
—
0.4
0.4
0.4
1.6 (VDD)
9.1
—
–15
–120
—
IDD
SIDD
SIDD
—
—
—
140
350
5
mA
µA
mA
VDDSYN
4.75
5.25
V
IDDSYN
IDDSYN
SIDDSYN
IDDSYN
—
—
—
—
2
6
150
100
mA
mA
µA
µA
PD
—
766
mW
Cin
—
—
10
20
pF
CL
—
—
—
—
90
100
130
200
pF
5
A
Characteristic
1
9
Group 1, 2, 4 input/output and all output pins
Output Low Voltage2
IOL = 1.6 mA Group 1 I/O Pins, CLKOUT, FREEZE/QUOT, IPIPE
IOL = 5.3 mA
Group 2 and Group 4 I/O Pins, CSBOOT, BG/CS
IOL = 12 mA
Group 3
10
Three State Control Input High Voltage
11
5
12
13
14
15
VOL
VIHTSC
Data Bus Mode Select Pull-up Current
Vin = VIL
Vin = VIH
IMSP
DATA[15:0]
DATA[15:0]
VDD Supply Current6
RUN 4
LPSTOP, 32.768 kHz crystal, VCO Off (STSIM = 0)
LPSTOP (External clock input frequency = maximum fsys)
Clock Synthesizer Operating Voltage
V
V
µA
Current6
VDDSYN Supply
32.768 kHz crystal, VCO on, maximum fsys
External Clock, maximum fsys
LPSTOP, 32.768 kHz crystal, VCO off (STSIM = 0)
32.768 kHz crystal, VDD powered down
Power Dissipation7
2, 8
All input-only pins
All input/output pins
16
Input Capacitance
17
Load Capacitance2
Group 1 I/O Pins and CLKOUT, FREEZE/QUOT, IPIPE
Group 2 I/O Pins and CSBOOT, BG/CS
Group 3 I/O pins
Group 4 I/O pins
MOTOROLA
A-6
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
Notes for Tables A–5 and A–5a
1. Applies to:
Port E [7:4] — SIZ[1:0], AS, DS
Port F [7:0] — IRQ[7:1], MODCLK
Port GP [7:0] — IC4/OC5/OC1, IC[3:1], OC[4:1]/OC1
Port QS [7:0] — TXD, PCS[3:1],ÊPCS0/SS, SCK, MOSI, MISO
BKPT/DSCLK, IFETCH, RESET, RXD, TSTME/TSC
EXTAL (when PLL enabled)
2. Input-Only Pins: EXTAL, TSTME/TSC, BKPT, RXD
Output-Only Pins: CSBOOT, BG/CS, CLKOUT, FREEZE/QUOT, IPIPE
Input/Output Pins:
Group 1:
Port GP [7:0] — IC4/OC5/OC1, IC[3:1], OC[4:1]/OC1
DATA[15:0], IFETCH
Group 2 :
Port C [6:0] — ADDR[22:19]/CS[9:6], FC[2:0]/CS[5:3]
Port E [7:0] — SIZ[1:0], AS, DS, AVEC, RMC, DSACK[1:0]
Port F [&:0] — IRQ[7:1], MODCLK
Port QS [7:3] — TXD, PCS[3:1],ÊPCS0/SS
ADDR23/CS10/ECLK, ADDR[18:0], R/W, BERR, BR/CS0, BGACK/CS2
Group 3:
HALT, RESET
Group 4:
MISO, MOSI, SCK
3. Does not apply to HALT and RESET because they are open drain pins. Does not apply to Port QS [7:0] (TXD,
PCS[3:1],ÊPCS0/SS, SCK, MOSI, MISO) in wired-OR mode.
4. Current measured with system clock frequency of 16.78 MHz, all modules active.
5. Use of an active pulldown device is recommended.
6. Total operating current is the sum of the appropriate IDD and IDDSYN values. IDD values include supply currents for
device modules powered by VDDE and VDDI pins.
7. Power dissipation measured at specified system clock frequency, all modules active. Power dissipation can be calculated using the expression:
PD = Maximum VDD (IDD + IDDSYN)
IDD includes supply currents for all device modules powered by VDDE and VDDI pins.
8. This parameter is periodically sampled rather than 100% tested.
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-7
A
Table A-6 16.78 MHz AC Timing
(VDD and VDDSYN = 5.0 Vdc ± 10%, VSS = 0 Vdc, TA = TL to TH)
A
Num
F1
1
1A
1B
2, 3
2A, 3A
2B, 3B
4, 5
4A, 5A
4B, 5B
6
7
8
9
9A
9C
11
12
12A
13
14
14A
14B
15
16
17
18
20
21
22
23
24
25
26
27
27A
28
29
29A
30
30A
31
33
35
37
Characteristic
Frequency of Operation (32.768 kHz crystal)2
Clock Period
ECLK Period
External Clock Input Period3
Clock Pulse Width
ECLK Pulse Width
External Clock Input High/Low Time3
Clock Rise and Fall Time
Rise and Fall Time — All Outputs except CLKOUT
External Clock Rise and Fall Time4
Clock High to Address, FC, SIZE, RMC Valid
Clock High to Address, Data, FC, SIZE, RMC High Impedance
Clock High to Address, FC, SIZE, RMC Invalid
Clock Low to AS, DS, CS Asserted
AS to DS or CS Asserted (Read)5
Clock Low to IFETCH, IPIPE Asserted
Address, FC, SIZE, RMC Valid
to AS, CS Asserted
Clock Low to AS, DS, CS Negated
Clock Low to IFETCH, IPIPE Negated
AS, DS, CS Negated to
Address, FC, SIZE Invalid (Address Hold)
AS, CS Width Asserted
DS, CS Width Asserted (Write)
AS, CS Width Asserted (Fast Write Cycle)
AS, DS, CS Width Negated6
Clock High to AS, DS, R/W High Impedance
AS, DS, CS Negated to R/W Negated
Clock High to R/W High
Clock High to R/W Low
R/W Asserted to AS, CS Asserted
R/W Low to DS, CS Asserted (Write)
Clock High to Data Out Valid
Data Out Valid to Negating Edge of AS, CS
DS, CS Negated to Data Out Invalid (Data Out Hold)
Data Out Valid to DS, CS Asserted (Write)
Data In Valid to Clock Low (Data Setup)
Late BERR, HALT Asserted to Clock Low (Setup Time)
AS, DS Negated to DSACK[1:0], BERR, HALT, AVEC Negated
DS, CS Negated to Data In Invalid (Data In Hold)7
DS, CS Negated to Data In High Impedance7, 8
CLKOUT Low to Data In Invalid (Fast Cycle Hold)7
CLKOUT Low to Data In High Impedance7
DSACK[1:0] Asserted to Data In Valid9
Clock Low to BG Asserted/Negated
BR Asserted to BG Asserted (RMC Not Asserted)10
BGACK Asserted to BG Negated
MOTOROLA
A-8
Symbol
f
tcyc
tEcyc
tXcyc
tCW
tECW
tXCHL
tCrf
trf
tXCrf
tCHAV
tCHAZx
tCHAZn
tCLSA
tSTSA
tCLIA
tAVSA
Min
0.13
59.6
476
59.6
24
236
29.8
—
—
—
0
0
0
2
–15
2
15
Max
16.78
—
—
—
—
—
—
5
8
5
29
59
—
25
15
22
—
Unit
MHz
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
tCLSN
tCLIN
tSNAI
2
2
15
29
22
—
ns
ns
ns
tSWA
100
45
40
40
—
15
0
0
15
70
—
15
15
15
5
20
0
0
—
15
—
—
—
1
1
—
—
—
—
59
—
29
29
—
—
29
—
—
—
—
—
80
—
55
—
90
50
29
—
2
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
tcyc
tcyc
tSWAW
tSWDW
tSN
tCHSZ
tSNRN
tCHRH
tCHRL
tRAAA
tRASA
tCHDO
tDVASN
tSNDOI
tDVSA
tDICL
tBELCL
tSNDN
tSNDI
tSHDI
tCLDI
tCLDH
tDADI
tCLBAN
tBRAGA
tGAGN
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
Table A-6 16.78 MHz AC Timing, (Continued)
(VDD and VDDSYN = 5.0 Vdc ± 10%, VSS = 0 Vdc, TA = TL to TH)
Num
39
39A
46
46A
47A
47B
48
53
54
55
56
57
70
71
72
73
74
75
76
77
78
Characteristic
BG Width Negated
BG Width Asserted
R/W Width Asserted (Write or Read)
R/W Width Asserted (Fast Write or Read Cycle)
Asynchronous Input Setup Time
BR, BGACK, DSACK[1:0], BERR, AVEC, HALT
Asynchronous Input Hold Time
DSACK[1:0] Asserted to BERR, HALT Asserted11
Data Out Hold from Clock High
Clock High to Data Out High Impedance
R/W Asserted to Data Bus Impedance Change
RESET Pulse Width (Reset Instruction)
BERR Negated to HALT Negated (Rerun)
Clock Low to Data Bus Driven (Show)
Data Setup Time to Clock Low (Show)
Data Hold from Clock Low (Show)
BKPT Input Setup Time
BKPT Input Hold Time
Mode Select Setup Time
Mode Select Hold Time
RESET Assertion Time12
RESET Rise Time13
Symbol
tGH
tGA
tRWA
tRWAS
tAIST
Min
2
1
150
90
5
Max
—
—
—
—
—
Unit
tcyc
tcyc
ns
ns
ns
tAIHT
tDABA
tDOCH
tCHDH
tRADC
tHRPW
tBNHN
tSCLDD
tSCLDS
tSCLDH
tBKST
tBKHT
tMSS
tMSH
tRSTA
tRSTR
15
—
0
—
40
512
0
0
15
10
15
10
20
0
4
—
—
30
—
28
—
—
—
29
—
—
—
—
—
—
—
10
ns
ns
ns
ns
ns
tcyc
ns
ns
ns
ns
ns
ns
tcyc
ns
tcyc
tcyc
Table A-6a 20.97 MHz AC Timing
(VDD and VDDSYN = 5.0 Vdc ± 5%, VSS = 0 Vdc, TA = TL to TH)
Num
F1
1
1A
1B
2, 3
2A, 3A
2B, 3B
4, 5
4A, 5A
4B, 5B
6
7
8
9
9A
9C
11
12
12A
13
Characteristic
Frequency of Operation (32.768 kHz crystal)2
Clock Period
ECLK Period
External Clock Input Period3
Clock Pulse Width
ECLK Pulse Width
External Clock Input High/Low Time3
Clock Rise and Fall Time
Rise and Fall Time — All Outputs except CLKOUT
External Clock Rise and Fall Time4
Clock High to Address, FC, SIZE, RMC Valid
Clock High to Address, Data, FC, SIZE, RMC High Impedance
Clock High to Address, FC, SIZE, RMC Invalid
Clock Low to AS, DS, CS Asserted
AS to DS or CS Asserted (Read)5
Clock Low to IFETCH, IPIPE Asserted
Address, FC, SIZE, RMC Valid
to AS, CS Asserted
Clock Low to AS, DS, CS Negated
Clock Low to IFETCH, IPIPE Negated
AS, DS, CS Negated to
Address, FC, SIZE Invalid (Address Hold)
MC68331
USER’S MANUAL
Symbol
f
tcyc
tEcyc
tXcyc
tCW
tECW
tXCHL
tCrf
trf
tXCrf
tCHAV
tCHAZx
tCHAZn
tCLSA
tSTSA
tCLIA
tAVSA
Min
0.13
47.7
381
47.7
18.8
183
23.8
—
—
—
0
0
0
0
–10
2
10
Max
20.97
—
—
—
—
—
—
5
8
5
23
47
—
23
10
22
—
Unit
MHz
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
tCLSN
tCLIN
tSNAI
2
2
10
23
22
—
ns
ns
ns
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-9
A
Table A-6a 20.97 MHz AC Timing, (Continued)
(VDD and VDDSYN = 5.0 Vdc ± 5%, VSS = 0 Vdc, TA = TL to TH)
A
Num
14
14A
14B
15
16
17
18
20
21
22
23
24
25
26
27
27A
28
29
29A
30
30A
31
33
35
37
39
39A
46
46A
47A
47B
48
53
54
55
56
57
70
71
72
73
74
75
76
77
78
Characteristic
AS, CS Width Asserted
DS, CS Width Asserted (Write)
AS, CS Width Asserted (Fast Write Cycle)
AS, DS, CS Width Negated6
Clock High to AS, DS, R/W High Impedance
AS, DS, CS Negated to R/W Negated
Clock High to R/W High
Clock High to R/W Low
R/W Asserted to AS, CS Asserted
R/W Low to DS, CS Asserted (Write)
Clock High to Data Out Valid
Data Out Valid to Negating Edge of AS, CS
DS, CS Negated to Data Out Invalid (Data Out Hold)
Data Out Valid to DS, CS Asserted (Write)
Data In Valid to Clock Low (Data Setup)
Late BERR, HALT Asserted to Clock Low (Setup Time)
AS, DS Negated to DSACK[1:0], BERR, HALT, AVEC Negated
DS, CS Negated to Data In Invalid (Data In Hold)7
DS, CS Negated to Data In High Impedance7, 8
CLKOUT Low to Data In Invalid (Fast Cycle Hold)7
CLKOUT Low to Data In High Impedance7
DSACK[1:0] Asserted to Data In Valid9
Clock Low to BG Asserted/Negated
BR Asserted to BG Asserted (RMC Not Asserted)10
BGACK Asserted to BG Negated
BG Width Negated
BG Width Asserted
R/W Width Asserted (Write or Read)
R/W Width Asserted (Fast Write or Read Cycle)
Asynchronous Input Setup Time
BR, BGACK, DSACK[1:0], BERR, AVEC, HALT
Asynchronous Input Hold Time
DSACK[1:0] Asserted to BERR, HALT Asserted11
Data Out Hold from Clock High
Clock High to Data Out High Impedance
R/W Asserted to Data Bus Impedance Change
RESET Pulse Width (Reset Instruction)
BERR Negated to HALT Negated (Rerun)
Clock Low to Data Bus Driven (Show)
Data Setup Time to Clock Low (Show)
Data Hold from Clock Low (Show)
BKPT Input Setup Time
BKPT Input Hold Time
Mode Select Setup Time
Mode Select Hold Time
RESET Assertion Time12
RESET Rise Time13,14
MOTOROLA
A-10
Symbol
tSWA
tSWAW
tSWDW
tSN
tCHSZ
tSNRN
tCHRH
tCHRL
tRAAA
tRASA
tCHDO
tDVASN
tSNDOI
tDVSA
tDICL
tBELCL
tSNDN
tSNDI
tSHDI
tCLDI
tCLDH
tDADI
tCLBAN
tBRAGA
tGAGN
tGH
tGA
tRWA
tRWAS
tAIST
Min
80
36
32
32
—
10
0
0
10
54
—
10
10
10
5
15
0
0
—
10
—
—
—
1
1
2
1
115
70
5
Max
—
—
—
—
47
—
23
23
—
—
23
—
—
—
—
—
60
—
48
—
72
46
23
—
2
—
—
—
—
—
Unit
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
ns
tcyc
tcyc
tcyc
tcyc
ns
ns
ns
tAIHT
tDABA
tDOCH
tCHDH
tRADC
tHRPW
tBNHN
tSCLDD
tSCLDS
tSCLDH
tBKST
tBKHT
tMSS
tMSH
tRSTA
tRSTR
12
—
0
—
32
512
0
0
10
10
10
10
20
0
4
—
—
30
—
23
—
—
—
23
—
—
—
—
—
—
—
10
ns
ns
ns
ns
ns
tcyc
ns
ns
ns
ns
ns
ns
tcyc
ns
tcyc
tcyc
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
Notes for Tables A–6 and A–6a:
1. All AC timing is shown with respect to 20% VDD and 70% VDD levels unless otherwise noted.
2. Minimum system clock frequency is four times the crystal frequency, subject to specified limits.
3. When an external clock is used, minimum high and low times are based on a 50% duty cycle. The minimum
allowable tXcyc period is reduced when the duty cycle of the external clock signal varies. The relationship between external clock input duty cycle and minimum tXcyc is expressed:
Minimum tXcyc period = minimum tXCHL / (50% – external clock input duty cycle tolerance).
4. Parameters for an external clock signal applied while the internal PLL is disabled (MODCLK pin held low during
reset). Does not pertain to an external VCO reference applied while the PLL is enabled (MODCLK pin held high
during reset). When the PLL is enabled, the clock synthesizer detects successive transitions of the reference
signal. If transitions occur within the correct clock period, rise/fall times and duty cycle are not critical.
5. Specification 9A is the worst-case skew between AS and DS or CS. The amount of skew depends on the relative
loading of these signals. When loads are kept within specified limits, skew will not cause AS and DS to fall outside the limits shown in specification 9.
6. If multiple chip selects are used, CS width negated (specification 15) applies to the time from the negation of a
heavily loaded chip select to the assertion of a lightly loaded chip select. The CS width negated specification
between multiple chip selects does not apply to chip selects being used for synchronous ECLK cycles.
7. Hold times are specified with respect to DS or CS on asynchronous reads and with respect to CLKOUT on fast
cycle reads. The user is free to use either hold time.
8. Maximum value is equal to (tcyc / 2) + 25 ns.
9. If the asynchronous setup time (specification 47A) requirements are satisfied, the DSACK[1:0] low to data setup
time (specification 31) and DSACK[1:0] low to BERR low setup time (specification 48) can be ignored. The data
must only satisfy the data-in to clock low setup time (specification 27) for the following clock cycle. BERR must
satisfy only the late BERR low to clock low setup time (specification 27A) for the following clock cycle.
10. To ensure coherency during every operand transfer, BG will not be asserted in response to BR until after all
cycles of the current operand transfer are complete and RMC is negated.
11. In the absence of DSACK[1:0], BERR is an asynchronous input using the asynchronous setup time (specification 47A).
12. After external RESET negation is detected, a short transition period (approximately 2 tcyc) elapses, then the SIM
drives RESET low for 512 tcyc.
13. External assertion of the RESET input can overlap internally-generated resets. To insure that an external reset
is recognized in all cases, RESET must be asserted for at least 590 CLKOUT cycles.
14. External logic must pull RESET high during this period in order for normal MCU operation to begin.
15. Address access time = (2.5 + WS) tcyc – tCHAV – tDICL
Chip select access time = (2 + WS) tcyc – tCLSA – tDICL
Where: WS = number of wait states. When fast termination is used (2 clock bus) WS = –1.
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-11
A
1
4
2
3
CLKOUT
5
NOTE: Timing shown with respect to 20% and 70% VDD.
68300 CLKOUT TIM
NOTE: Timing shown with respect to 20% and 70% VDD.
Figure A-1 CLKOUT Output Timing Diagram
A
1B
4B
2B
3B
EXTAL
5B
68300 EXT CLK INPUT TIM
NOTE: Timing shown with respect to 20% and 70% VDD. Pulse width shown with respect to 50% VDD.
Figure A-2 External Clock Input Timing Diagram
1A
4A
2A
3A
ECLK
5A
68300 ECLK OUTPUT TIM
NOTE: Timing shown with respect to 20% and 70% VDD.
Figure A-3 ECLK Output Timing Diagram
MOTOROLA
A-12
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
S0
S1
S2
S3
S4
S5
CLKOUT
6
8
A20–A23
FC0–FC2
SIZ0, SIZ1
11
14
15
AS
9
13
DS
21
9
12
22
14A
A
CS
20
17
R/W
46
DSACK0
47A
28
DSACK1
25
55
D0–D15
54
26
53
BERR
23
48
27A
HALT
73
74
BKPT
68300 RD CYC TIM
Figure A-4 Read Cycle Timing Diagram
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-13
S0
S1
S2
S3
S4
S5
CLKOUT
6
8
A20–A23
FC0–FC2
SIZ0, SIZ1
11
14
15
AS
9
13
DS
21
A
9
12
22
14A
CS
20
17
R/W
46
DSACK0
47A
28
DSACK1
25
55
D0–D15
54
26
53
BERR
23
48
27A
HALT
73
74
BKPT
68300 WR CYC TIM
Figure A-5 Write Cycle Timing Diagram
MOTOROLA
A-14
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
S0
S1
S4
S5
S0
CLKOUT
8
6
A0–A23
FC0–FC2
SIZ0, SIZ1
14B
AS
9
12
DS
A
CS
20
18
R/W
46A
27
30
30A
D0–D15
29A 29
73
BKPT
74
68300 FAST RD CYC TIM
Figure A-6 Fast Termination Read Cycle Timing Diagram
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-15
S0
S1
S4
S5
S0
CLKOUT
6
8
A0–A23
FC0–FC2
SIZ0, SIZ1
14B
AS
9
12
DS
A
CS
20
46A
R/W
24
18
D0–D15
23
25
BKPT
73
74
68300 FAST WR CYC TIM
Figure A-7 Fast Termination Write Cycle Timing Diagram
MOTOROLA
A-16
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
S0
S1
S2
S3
S4
S5
S98
A5
A5
A2
CLKOUT
A0–A23
7
D0–D15
AS
16
DS
R/W
A
DSACK0
DSACK1
47A
BR
39A
35
BG
33
33
BGACK
37
68300 BUS ARB TIM
Figure A-8 Bus Arbitration Timing Diagram — Active Bus Case
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-17
A0
A5
A5
A2
A3
A0
CLKOUT
A0–A23
D0–D15
AS
47A
47A
BR
35
37
BG
A
33
47A
33
BGACK
68300 BUS ARB TIM IDLE
Figure A-9 Bus Arbitration Timing Diagram — Idle Bus Case
S0
S41
S42
S43
S0
S1
S2
CLKOUT
6
8
A0–A23
18
R/W
20
AS
12
9
15
DS
71
70
72
D0–D15
73
74
BKPT
SHOW CYCLE
START OF
EXTERNAL CYCLE
68300 SHW CYC TIM
NOTE: Show cycles can stretch during S42 when bus accesses take longer than two cycles due to wait-state insertion
by IMB modules.
Figure A-10 Show Cycle Timing Diagram
MOTOROLA
A-18
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
S0
S1
S2
S3
S4
S5
S0
S1
S2
S3
S4
S5
CLKOUT
6
8
6
A0–A23
FC0–FC2
SIZ0, SIZ1
14
11
14
11
13
AS
9
9
9
15
12
DS
17
12
21
21
17
CS
18
20
14A
18
46
R/W
46
29
25
55
D0–D15
29A
53
23
27
54
68300 CHIP SEL TIM
NOTE: AS and DS timing shown for reference only.
Figure A-11 Chip Select Timing Diagram
77
78
RESET
75
D0–D15
76
68300 RST/MODE SEL TIM
Figure A-12 Reset and Mode Select Timing Diagram
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-19
A
Table A-7 Background Debugging Mode Timing
(VDD = 5.0 Vdc ± 10%, VSS = 0 Vdc, TA = TL to TH)
Num
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
Characteristic
DSI Input Setup Time
DSI Input Hold Time
DSCLK Setup Time
DSCLK Hold Time
DSO Delay Time
DSCLK Cycle Time
CLKOUT High to FREEZE Asserted/Negated
CLKOUT High to IFETCH High Impedance
CLKOUT High to IFETCH Valid
DSCLK Low Time
FREEZE Asserted to IFETCH Valid
Symbol
tDSISU
tDSIH
tDSCSU
tDSCH
tDSOD
tDSCCYC
tFRZAN
tIFZ
tIF
tDSCLO
tFRZIF
Min
15
10
15
10
—
2
—
—
—
1
TBD
Max
—
—
—
—
25
—
50
50
50
—
—
Unit
ns
ns
ns
ns
ns
tcyc
ns
ns
ns
tcyc
tcyc
Notes:
1. All AC timing is shown with respect to 20% VDD and 70% VDD levels unless otherwise noted.
A
MOTOROLA
A-20
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
CLKOUT
B5
FREEZE
B3
B2
B9
BKPT/DSCLK
B0
IFETCH/DSI
B1
B4
IPIPE/DSO
68300 BKGD DBM SER COM TIM
A
Figure A-13 Background Debugging Mode Timing Diagram —
Serial Communication
CLKOUT
B6
FREEZE
B7
B10
B6
B10
IFETCH/DSI
B8
68300 BKGD DBM FRZ TIM
Figure A-14 Background Debugging Mode Timing Diagram —Freeze Assertion
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-21
Table A-8 16.78 MHz ECLK Bus Timing
(VDD = 5.0 Vdc ± 10%, VSS = 0 Vdc, TA = TL to TH)
Num
A
Characteristic
Valid2
Symbol
Min
Max
Unit
tEAD
—
60
ns
E1
ECLK Low to Address
E2
ECLK Low to Address Hold
tEAH
15
—
ns
E3
ECLK Low to CS Valid (CS delay)
tECSD
—
150
ns
E4
ECLK Low to CS Hold
tECSH
15
—
ns
E5
CS Negated Width
tECSN
30
—
ns
E6
Read Data Setup Time
tEDSR
30
—
ns
E7
Read Data Hold Time
tEDHR
5
—
ns
E8
ECLK Low to Data High Impedance
tEDHZ
—
60
ns
E9
CS Negated to Data Hold (Read)
tECDH
0
—
ns
E10
CS Negated to Data High Impedance
tECDZ
—
1
tcyc
E11
ECLK Low to Data Valid (Write)
tEDDW
—
2
tcyc
E12
ECLK Low to Data Hold (Write)
tEDHW
15
—
ns
tEACC
386
—
ns
E13
3
Address Access Time (Read)
4
E14
Chip Select Access Time (Read)
tEACS
296
—
ns
E15
Address Setup Time
tEAS
1/2
—
tcyc
Table A-8a 20.97 MHz ECLK Bus Timing
(VDD = 5.0 Vdc ± 5%, VSS = 0 Vdc, TA = TL to TH)
Num
E1
Characteristic
2
ECLK Low to Address Valid
Symbol
Min
Max
Unit
tEAD
—
48
ns
E2
ECLK Low to Address Hold
tEAH
10
—
ns
E3
ECLK Low to CS Valid (CS delay)
tECSD
—
120
ns
E4
ECLK Low to CS Hold
tECSH
10
—
ns
E5
CS Negated Width
tECSN
25
—
ns
E6
Read Data Setup Time
tEDSR
25
—
ns
E7
Read Data Hold Time
tEDHR
5
—
ns
E8
ECLK Low to Data High Impedance
tEDHZ
—
48
ns
E9
CS Negated to Data Hold (Read)
tECDH
0
—
ns
E10
CS Negated to Data High Impedance
tECDZ
—
1
tcyc
E11
ECLK Low to Data Valid (Write)
tEDDW
—
2
tcyc
E12
ECLK Low to Data Hold (Write)
tEDHW
10
—
ns
tEACC
308
—
ns
E13
3
Address Access Time (Read)
4
E14
Chip Select Access Time (Read)
tEACS
236
—
ns
E15
Address Setup Time
tEAS
1/2
—
tcyc
Notes for Tables A–8 and A–8a:
1. All AC timing is shown with respect to 20% VDD and 70% VDD levels unless otherwise noted.
2. When the previous bus cycle is not an ECLK cycle, the address may be valid before ECLK goes low.
3. Address access time = tEcyc – tEAD – tEDSR.
4. Chip select access time = tEcyc – tECSD – tEDSR.
MOTOROLA
A-22
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
CLKOUT
3A
2A
ECLK
1A
R/W
E2
E1
A0–A23
E14
E3
E4
E6
CS
E5
E15
E9
E13
D0–D15
READ
WRITE
E7
E8
E10
E11
D0–D15
WRITE
E12
68300 E CYCLE TIM
NOTE: Shown with ECLK = system clock/8 — EDIV bit in clock synthesizer control register (SYNCR) = 0.
Figure A-15 ECLK Timing Diagram
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-23
A
Table A-9 QSPI Timing
(VDD = 5.0 Vdc ± 10%, VSS = 0 Vdc, TA = TL to TH, 200 pF load on all QSPI pins)
Num
Function
Symbol
Operating Frequency
Master
Slave
1
Min
Max
Unit
DC
DC
1/4
1/4
System Clock Frequency
System Clock Frequency
4
4
510
—
tcyc
tcyc
2
2
128
—
tcyc
tcyc
—
2
1/2
—
SCK
tcyc
2 tcyc – 60
2 tcyc – n
255 tcyc
—
ns
ns
17
13
8192
—
tcyc
tcyc
30
20
—
—
ns
ns
0
20
—
—
ns
ns
Cycle Time
Master
Slave
tqcyc
Enable Lead Time
Master
Slave
tlead
Enable Lag Time
Master
Slave
tlag
Clock (SCK) High or Low Time
Master
Slave2
tsw
Sequential Transfer Delay
Master
Slave (Does Not Require Deselect)
ttd
Data Setup Time (Inputs)
Master
Slave
tsu
Data Hold Time (Inputs)
Master
Slave
thi
8
Slave Access Time
ta
—
1
tcyc
9
Slave MISO Disable Time
tdis
—
2
tcyc
10
Data Valid (after SCK Edge)
Master
Slave
tv
—
—
50
50
ns
ns
Data Hold Time (Outputs)
Master
Slave
tho
0
0
—
—
ns
ns
2
3
4
A
fop
5
6
7
11
12
13
Rise Time
Input3
Output
tri
tro
—
—
2
30
µs
ns
Fall Time
Input3
Output
tfi
tfo
—
—
2
30
µs
ns
Notes:
1 All AC timing is shown with respect to 20% VDD and 70% VDD levels unless otherwise noted.
2. In formula, n = External SCK rise + External SCK fall time
3. Data can be recognized properly with longer transition times as long as MOSI/MISO signals from external sources
are at valid VOH/VOL prior to SCK transitioning between valid VOL and VOH. Due to process variation, logic decision
point voltages of the data and clock signals can differ, which can corrupt data if slower transition times are used.
MOTOROLA
A-24
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
2
3
PCS0–PCS3
OUTPUT
13
5
12
SCK
CPOL=0
OUTPUT
4
SCK
CPOL=1
OUTPUT
6
1
4
12
7
MISO
INPUT
MSB IN
13
DATA
LSB IN
11
MOSI
PD
OUTPUT
MSB OUT
MSB IN
10
DATA
PORT DATA
LSB OUT
13
MSB OUT
12
68300 QSPI T MAST CPHA0
Figure A-16 QSPI Timing — Master, CPHA = 0
2
3
PCS0–PCS3
OUTPUT
13
5
12
1
SCK
CPOL=0
OUTPUT
4
1
7
SCK
CPOL=1
OUTPUT
4
MISO
INPUT
13
12
6
MSB IN
DATA
11
MOSI
PORT DATA
OUTPUT
MSB OUT
LSB IN
MSB IN
10
DATA
LSB OUT
13
PORT DATA
MSB OUT
12
68300 QSPI T MAST CPHA1
Figure A-17 QSPI Timing — Master, CPHA = 1
MC68331
USER’S MANUAL
ELECTRICAL CHARACTERISTICS
MOTOROLA
A-25
A
3
2
SS
INPUT
13
5
12
SCK
CPOL=0
INPUT
4
1
4
13
SCK
CPOL=1
INPUT
12
8
MISO
OUTPUT
MSB
11
OUT
11
10
9
DATA
LSB OUT
7
12
6
MOSI
INPUT
A
MSB IN
DATA
MSB OUT
PD
13
LSB IN
MSB IN
68300 QSPI T SLV CPHA0
Figure A-18 QSPI Timing — Slave, CPHA = 0
SS
INPUT
1
13
5
12
SCK
CPOL=0
INPUT
2
4
4
3
12
SCK
CPOL=1
INPUT
10
13
8
MISO
OUTPUT
PD
10
MSB
OUT
DATA
7
MSB IN
9
SLAVE
LSB OUT
PD
12
6
MOSI
INPUT
11
DATA
LSB IN
68300 QSPI T SLV CPHA1
Figure A-19 QSPI Timing — Slave, CPHA = 1
MOTOROLA
A-26
ELECTRICAL CHARACTERISTICS
MC68331
USER’S MANUAL
APPENDIX B MECHANICAL DATA AND ORDERING INFORMATION
This section contains detailed information to be used as a guide when ordering.
MC68331 is available in either a 132-pin or 144-pin plastic surface mount package.
This appendix provides package pin assignment drawings and ordering information.
B
MC68331
USER’S MANUAL
MECHANICAL DATA AND ORDERING INFORMATION
MOTOROLA
B-1
ADDR23/CS10
PC6/ADDR22/CS9
PC5/ADDR21/CS8
PC4/ADDR20/CS7
PC3/ADDR19/CS6
PC2/FC2/CS5
PC1/FC1/CS4
PC0/FC0/CS3
VSS
VSS
NC
PGP0/IC1
PGP1/IC2
PGP2/IC3
PGP3/OC1
PGP4/OC2/OC1
PGP5/OC3/OC1
NC
VSS
VDD
PGP6/OC4/OC1
PGP7/IC4/OC5/OC1
PAI
NC
VSS
VDD
NC
NC
PWMA
PWMB
PCLK
VSS
VDD
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
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
MC68331
VDD
BGACK/CS2
BG/CS1
BR/CS0
CSBOOT
DATA0
DATA1
DATA2
DATA3
VDD
VSS
DATA4
DATA5
DATA6
DATA7
VSS
DATA8
DATA9
DATA10
DATA11
VDD
VSS
DATA12
DATA13
DATA14
DATA15
ADDR0
PE0/DSACK0
PE1/DSACK1
PE2/AVEC
PE3/RMC
PE5/DS
VDD
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
VSS
PQS7/TXD
RXD
IPIPE/DSO
IFETCH/DSI
BKPT/DSCLK
TSC
FREEZE/QUOT
VSS
XTAL
VDDSYN
EXTAL
VDD
XFC
VDD
CLKOUT
VSS
RESET
HALT
BERR
PF7/IRQ7
PF6/IRQ6
PF5/IRQ5
PF4/IRQ4
PF3/IRQ3
PF2/IRQ2
PF1/IRQ1
PF0/MODCLK
R/W
PE7/SIZ1
PE6/SIZ0
PE4/AS
VSS
B
VDD
NC
ADDR1
ADDR2
ADDR3
ADDR4
ADDR5
ADDR6
ADDR7
ADDR8
VDD
VSS
ADDR9
ADDR10
ADDR11
ADDR12
VSS
ADDR13
ADDR14
ADDR15
ADDR16
VDD
VSS
ADDR17
ADDR18
PQS0/MISO
PQS1/MOSI
PQS2/SCK
PQS3/PCS0/SS
PQS4/PCS1
PQS5/PCS2
PQS6/PCS3
VDD
331 132-PIN QFP
Figure B-1 132-Pin Plastic Surface Mount Package Pin Assignments
MOTOROLA
B-2
MECHANICAL DATA AND ORDERING INFORMATION
MC68331
USER’S MANUAL
VDD
BGACK/CS2
BG/CS1
BR/CS0
CSBOOT
DATA0
DATA1
DATA2
DATA3
VDD
VSS
DATA4
DATA5
DATA6
DATA7
NC
VSS
DATA8
NC
DATA9
DATA10
NC
DATA11
VDD
VSS
DATA12
DATA13
DATA14
DATA15
ADDR0
PE0/DSACK0
PE1/DSACK1
PE2/AVEC
PE3/RMC
PE5/DS
VDD
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
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
MC68331
109
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
NC
VSS
PE4/AS
PE6/SIZ0
PE7/SIZ1
R/W
PF0/MODCLK
PF1/IRQ1
PF2/IRQ2
PF3/IRQ3
PF4/IRQ4
PF5/IRQ5
PF6/IRQ6
PF7/IRQ7
BERR
HALT
RESET
VSS
CLKOUT
VDD
NC
XFC
VDD
EXTAL
VDD
XTAL
VSS
FREEZE/QUOT
TSC
BKPT/DSCLK
IFETCH/DSI
IPIPE/DSO
RXD
PQS7/TXD
VSS
NC
VDD
NC
ADDR1
ADDR2
ADDR3
ADDR4
ADDR5
ADDR6
ADDR7
ADDR8
VDD
VSS
ADDR9
ADDR10
ADDR11
ADDR12
NC
VSS
NC
ADDR13
ADDR14
ADDR15
NC
ADDR16
VDD
VSS
ADDR17
ADDR18
PQS0/MISO
PQS1/MOSI
PQS2/SCK
PQS3/PCS0/SS
PQS4/PCS1
PQS5/PCS2
PQS6/PCS3
VDD
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
NC
VSS
FC0/CS3
FC1/CS4
FC2/CS5
ADDR19/CS6
ADDR20/CS7
ADDR21/CS8
ADDR22/CS9
ADDR23/CS10
VDD
VSS
PCLK
PWMB
PWMA
NC
NC
NC
VDD
VSS
NC
PAI
GP7/IC4/OC5/OC1
PGP6/OC4
VDD
VSS
NC
PGP5/OC3/OC1
PGP4/OC2/OC1
PGP3/OC1
PGP2/IC3
PGP1/IC2
PGP0/IC1
NC
VSS
NC
331 144-PIN QFP
Figure B-2 144-Pin Plastic Surface Mount Package Pin Assignments
MC68331
USER’S MANUAL
MECHANICAL DATA AND ORDERING INFORMATION
MOTOROLA
B-3
B
Table B-1 MCU Ordering Information
Package Type
Temperature
Frequency
(MHz)
132-Pin PQFP
–40 to +85 °C
16 MHz
20 MHz
–40 to +105 °C
16 MHz
20 MHz
–40 to +125 °C
16 MHz
20 MHz
144-Pin QFP
B
–40 to +85 °C
16 MHz
20 MHz
–40 to +105 °C
16 MHz
20 MHz
–40 to +125 °C
16 MHz
20 MHz
144-Pin TQFP
–40 to +85 °C
16 MHz
20 MHz
–40 to +105 °C
16 MHz
20 MHz
–40 to +125 °C
16 MHz
20 MHz
Package
Order
Quantity
2 pc tray
36 pc tray
2 pc tray
36 pc tray
2 pc tray
36 pc tray
2 pc tray
36 pc tray
2 pc tray
36 pc tray
2 pc tray
36 pc tray
2 pc tray
44 pc tray
2 pc tray
44 pc tray
2 pc tray
44 pc tray
2 pc tray
44 pc tray
2 pc tray
44 pc tray
2 pc tray
44 pc tray
2 pc tray
60 pc tray
2 pc tray
60 pc tray
2 pc tray
60 pc tray
2 pc tray
60 pc tray
2 pc tray
60 pc tray
2 pc tray
60 pc tray
Order Number
SPAKMC331CFC16
MC68331CFC16*
SPAKMC331CFC20
MC68331CFC20*
SPAKMC331VFC16
MC68331VFC16*
SPAKMC331VFC20
MC68331VFC20*
SPAKMC331MFC16
MC68331MFC16*
SPAKMC331MFC20
MC68331MFC20*
SPAKMC331CFV16
MC68331CFV16*
SPAKMC331CFV20
MC68331CFV20*
SPAKMC331VFV16
MC68331VFV16*
SPAKMC331VFV20
MC68331VFV20*
SPAKMC331MFV16
MC68331MFV16*
SPAKMC331MFV20
MC68331MFV20*
SPAKMC331CPV16
MC68331CPV16*
SPAKMC331CPV20
MC68331CPV20*
SPAKMC331VPV16
MC68331VPV16*
SPAKMC331VPV20
MC68331VPV20*
SPAKMC331MPV16
MC68331MPV16*
SPAKMC331MPV20
MC68331MPV20*
*Quantity orders are available as shown in Table B–2. Contact your Motorola representative for ordering numbers.
Table B-2 Quantity Order Suffix
FC
36
180
360
MOTOROLA
B-4
FV
44
220
440
PV
60
300
600
MECHANICAL DATA AND ORDERING INFORMATION
MC68331
USER’S MANUAL
APPENDIX CDEVELOPMENT SUPPORT
This section serves as a brief reference to Motorola development tools for the
MC68331 microcontroller. Information provided is complete as of the time of publication, but new systems and software are continually being developed. In addition, a
growing number of third-party tools are available. The Motorola MCU Tool Box
(MCUTLBX/D Rev. C) provides an up-to-date list of development tools. Contact your
Motorola representative for further information.
Table C-1 MC68331 Development Tools
Microcontroller Part
Number
MC68331
Modular Development
System
M68MMDS1632
Modular Evaluation
System
M68MEVB1632
C.1 M68MMDS1632 Modular Development System
M68MMDS1632 Motorola Modular Development System (MMDS) is a development
tool for evaluating M68HC16 and M68300 MCU-based systems. The MMDS1632 is
an emulator, bus state analyzer, and control station for debugging hardware and software. A separately purchased active probe completes MMDS functionality with regard
to a particular MCU or MCU family. The many active probes available let your MMDS
emulate a variety of different MCUs. Contact your Motorola sales representative, who
will assist you in selecting and configuring the modular system that fits your needs. A
full-featured development system, the MMDS provides both in-circuit emulation and
bus analysis capabilities, including:
• Real-time in-circuit emulation at maximum speed of 20 MHz (can be upgraded to
33 MHz)
• Built-in emulation memory
— 1 Mbyte main emulation memory (fast termination, 2 bus cycle)
— 4 Kbytes dual-port emulation memory
• Real-time bus analysis
— Instruction disassembly
— State-machine-controlled triggering
• Four hardware breakpoints, bitwise masking
• Analog/digital emulation
• Synchronized signal output
• Built-in AC power supply, 85–264 V, 50–60 Hz, FCC and EC EMI compliant
• RS-232 connection to host capable of communicating at 1200, 2400, 4800, 9600,
19200, 38400, or 57600 baud
MC68331
USER’S MANUAL
DEVELOPMENT SUPPORT
MOTOROLA
C-1
C
C.2 M68MEVB1632 Modular Evaluation Board
M68MEVB1632 Modular Evaluation Board (MEVB) is a development tool for evaluating M68HC16 and M68300 MCU-based systems. The MEVB consists of the
M68HC16MPFB modular platform board, an MCU personality board (MPB), an in-circuit debugger printed circuit board (ICD16 or ICD32), and development software.
MEVB features include:
C
• An economical means of evaluating target systems incorporating M68HC16 and
M68300 HCMOS MCU devices.
• Expansion memory sockets for installing RAM, EPROM, or EEPROM.
— Data RAM: 32K X 16, 128K X 16, or 512K X 16
— EPROM/EEPROM: 32K X 16, 64K X 16, 128K X 16, 256K X 16, or 512K X 16
— Fast RAM: 32K X 16 or 128K X 16
• Background-mode operation, for detailed operation from a personal computer
platform without an on-board monitor.
• Integrated assembly/editing/evaluation/programming environment for easy development.
• As many as seven software breakpoints.
• Re-usable ICD hardware for your target application debug or control.
• Two RS-232C terminal input/output (I/O) ports for user evaluation of the serial
communication interface.
• Logic analyzer pod connectors.
• Port replacement unit (PRU) to rebuild I/O ports lost to address/data/control.
• On-board VPP (+12 Vdc) generation for MCU and flash EEPROM programming.
MOTOROLA
C-2
DEVELOPMENT SUPPORT
MC68331
USER’S MANUAL
APPENDIX D REGISTER SUMMARY
This appendix contains address maps, register diagrams, and bit/field definitions for
the MCU. More detailed information about register function is provided in the appropriate sections of the manual.
Except for central processing unit resources, information is presented in the intermodule bus address order shown in Table D-1.
Table D-1 Module Address Map
Module
GPT
SIM
QSM
Size (Bytes)
64
128
512
Base Address
$YFF900
$YFFA00
$YFFC00
Control registers for all the modules in the microcontroller are mapped into a 4-Kbyte
block. The state of the module mapping (MM) bit in the SIM configuration register
(SIMCR) determines where the control registers block is located in the system memory map. When MM = 0, register addresses range from $7FF000 to $7FFFFF; when
MM = 1, register addresses range from $FFF000 to $FFFFFF.
In the module memory maps in this appendix, the “Access” column specifies which
registers are accessible at the supervisor privilege level only and which registers can
be assigned to either the supervisor or user privilege level.
D.1 Central Processing Unit
CPU32 registers are not part of the module address map. The following diagram is a
functional representation of CPU resources.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-1
D
D.1.1 CPU32 Register Model
31
16 15
8 7
0
D0
D1
D2
D3
DATA REGISTERS
D4
D5
D6
D7
31
16 15
0
A0
A1
A2
D
A3
ADDRESS REGISTERS
A4
A5
A6
31
16 15
0
A7 (USP) USER STACK POINTER
31
0
7
PC
PROGRAM COUNTER
CCR
CONDITION CODE REGISTER
0
Figure D-1 User Programming Model
31
16 15
15
0
8 7
A7 (SSP)
SUPERVISOR STACK POINTER
SR
STATUS REGISTER
VBR
VECTOR BASE REGISTER
SFC
ALTERNATE FUNCTION
DFC
CODE REGISTERS
0
(CCR)
31
0
2
0
Figure D-2 Supervisor Programming Model Supplement
MOTOROLA
D-2
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.1.2 — Status Register
15
14
T[1:0]
13
12
11
S
0
0
1
0
0
10
8
IP
7
6
5
4
3
2
1
0
0
0
0
X
N
Z
V
C
0
0
0
U
U
U
U
U
RESET:
0
0
1
1
1
The status register (SR) contains condition codes, an interrupt priority mask, and three
control bits. The condition codes are contained in the condition code register (CCR),
the lower byte of the SR. (The lower and upper bytes of the status register are also
referred to as the user and system bytes, respectively.) At the user privilege level, only
the CCR is available. At the supervisor level, software can access the full status register.
T[1:0] — Trace Enable
00 = No tracing
01 = Trace on change of flow
10 = Trace on instruction execution
11 = Undefined; reserved
D
S — Supervisor/User State
0 = CPU operates at user privilege level
1 = CPU operates at supervisor privilege level
IP[2:0] — Interrupt Priority Mask
The priority value in this field (0 to 7) is used to mask interrupts.
X — Extend Flag
Used in multiple-precision arithmetic operations. In many instructions it is set to the
same value as the C bit.
N — Negative Flag
Set when the MSB of a result register is set.
Z — Zero Flag
Set when all bits of a result register are zero.
V — Overflow Flag
Set when two's complement overflow occurs as the result of an operation.
C — Carry Flag
Set when a carry or borrow occurs during an arithmetic operation. Also used during
shift and rotate instructions to facilitate multiple word operations.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-3
D.2 General-Purpose Timer
Table D-2 displays the GPT address map. The column labeled “Access” indicates the
privilege level at which the CPU must be operating to access the register. A designation of “S” indicates that supervisor access is required: a designation of “S/U” indicates
that the register can be programmed to the desired privilege level.
Table D-2 GPT Address Map
Access
S
S
S
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
D
Address 15
8 7
0
$YFF900
GPT MODULE CONFIGURATION (GPTMCR)
$YFF902
(RESERVED FOR TEST)
$YFF904
INTERRUPT CONFIGURATION (ICR)
$YFF906 PGP DATA DIRECTION (DDRGP)
PGP DATA (PORTGP)
$YFF908
OC1 ACTION MASK (OC1M)
OC1 ACTION DATA (OC1D)
$YFF90A
TIMER COUNTER (TCNT)
$YFF90C
PA CONTROL (PACTL)
PA COUNTER (PACNT)
$YFF90E
INPUT CAPTURE 1 (TIC1)
$YFF910
INPUT CAPTURE 2 (TIC2)
$YFF912
INPUT CAPTURE 3 (TIC3)
$YFF914
OUTPUT COMPARE 1 (TOC1)
$YFF916
OUTPUT COMPARE 2 (TOC2)
$YFF918
OUTPUT COMPARE 3 (TOC3)
$YFF91A
OUTPUT COMPARE 4 (TOC4)
$YFF91C
INPUT CAPTURE 4/OUTPUT COMPARE 5 (TI4/O5)
$YFF91E
TIMER CONTROL 1 (TCTL1)
TIMER CONTROL 2 (TCTL2)
$YFF920
TIMER MASK 1 (TMSK1)
TIMER MASK 2 (TMSK2)
$YFF922
TIMER FLAG 1 (TFLG1)
TIMER FLAG 2 (TFLG2)
$YFF924
FORCE COMPARE (CFORC)
PWM CONTROL C (PWMC)
$YFF926
PWM CONTROL A (PWMA)
PWM CONTROL B (PWMB)
$YFF928
PWM COUNT (PWMCNT)
$YFF92A
PWMA BUFFER (PWMBUFA)
PWMB BUFFER (PWMBUFB)
$YFF92C
GPT PRESCALER (PRESCL)
$YFF92E –
NOT USED
$YFF93F
Y = M111, where M is the logic state of the module mapping (MM) bit in the SIMCR.
D.2.1 GPTMCR — GPT Module Configuration Register
$YFF900
15
14
13
12
11
10
9
8
7
6
5
4
STOP
FRZ1
FRZ0
STOPP
INCP
0
0
0
SUPV
0
0
0
0
0
0
0
0
0
0
1
0
0
0
3
0
IARB
RESET:
0
0
0
0
0
GPTMCR bits control freeze, low-power stop, and single-step modes.
STOP — Stop Clocks
0 = Internal clocks not shut down
1 = Internal clocks shut down
MOTOROLA
D-4
REGISTER SUMMARY
MC68331
USER’S MANUAL
FRZ[1:0] — FREEZE Response
FRZ1 is not used; FRZ0 encoding determines response to the IMB FREEZE signal.
0 = Ignore IMB FREEZE signal
1 = Freeze the current state of the GPT
STOPP — Stop Prescaler
0 =Normal operation
1 =Stop prescaler and pulse accumulator from incrementing. Ignore changes to input pins.
INCP — Increment Prescaler
0 =Has no meaning
1 =If STOPP is asserted, increment prescaler once and clock input synchronizers
once.
SUPV — Supervisor/Unrestricted Data Space
0 =Registers with access controlled by the SUPV bit are accessible from either the
user or supervisor privilege level.
1 =Registers with access controlled by the SUPV bit are restricted to supervisor
access only.
IARB[3:0] — Interrupt Arbitration
Each module that generates interrupts must have an IARB value. IARB values are
used to arbitrate between interrupt requests of the same priority.
D.2.2 GPTMTR — GPT Module Test Register (Reserved)
$YFF902
This address is currently unused and returns zeros when read. It is reserved for GPT
factory test.
D.2.3 ICR — GPT Interrupt Configuration Register
15
12
IPA
11
10
0
8
$YFF904
7
4
IPL
IVBA
3
2
1
0
0
0
0
0
0
0
0
0
RESET:
0
0
0
0
0
0
0
0
0
0
0
0
ICR fields determine internal and external interrupt priority, and provide the upper nibble of the interrupt vector number supplied to the CPU when an interrupt is acknowledged.
IPA — Interrupt Priority Adjust
Specifies which of the 11 internal GPT interrupt sources is assigned highest priority.
IPL — Interrupt Priority Level
Specifies the priority level of GPT interrupt requests.
IVBA — Interrupt Vector Base Address
Contains the most significant nibble of interrupt vector numbers supplied by the GPT.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-5
D
D.2.4 DDRGP — Port GP Data Direction Register
PORTGP — Port GP Data Register
15
8
$YFF906
$YFF907
7
0
DDRGP
PORTGP
RESET:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
When GPT pins are used as an 8-bit port, DDRGP determines whether pins are input
or output and PORTGP holds the 8-bit data.
DDRGP[7:0] — Parallel Data Direction Register
0 = Input only
1 = Output
PORTGP[7:0] — Parallel Data Register
D
D.2.5 OC1M— OC1 Action Mask Register
OC1D — OC1 Action Data Register
15
11
OC1M
10
9
8
0
0
0
0
0
0
$YFF908
$YFF909
7
3
OC1D
2
1
0
0
0
0
0
0
0
RESET:
0
0
0
0
0
0
0
0
0
0
All OC outputs can be controlled by the action of OC1. OC1M contains a mask that
determines which pins are affected. OC1D determines what outputs are affected.
OC1M[5:1] — OC1 Mask
0 = Corresponding output compare pin is not affected by OC1 compare.
1 = Corresponding output compare pin is affected by OC1 compare.
OC1M[5:1] correspond to OC[5:1].
OC1D[5:1] — OC1 Data
0 =If OC1 mask bit is set, clear corresponding output compare pin on OC1 match.
1 =If OC1 mask bit is set, set corresponding output compare pin on OC1 match.
OC1D[5:1] correspond to OC[5:1].
D.2.6 TCNT — Timer Counter Register
$YFF90A
TCNT is the 16-bit free-running counter associated with the input capture, output compare, and pulse accumulator functions of the GPT module.
MOTOROLA
D-6
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.2.7 PACTL — Pulse Accumulator Control Register
PACNT — Pulse Accumulator Counter
15
14
13
12
11
10
9
PAIS
PAEN
PAMOD
PEDGE
PCLKS
I4/O5
0
0
0
U
0
8
$YFF90C
$YFF90D
7
0
PACLK
PACNT
RESET:
U
0
0
0
0
0
0
0
0
0
0
PACTL enables the pulse accumulator and selects either event counting or gated
mode. In event counting mode, PACNT is incremented each time an event occurs. In
gated mode, it is incremented by an internal clock.
PAIS — PAI Pin State (Read Only)
PAEN — Pulse Accumulator Enable
0 = Pulse accumulator disabled
1 = Pulse accumulator enabled
D
PAMOD — Pulse Accumulator Mode
0 = External event counting
1 = Gated time accumulation
PEDGE — Pulse Accumulator Edge Control
The effects of PEDGE and PAMOD are shown in the following table.
PAMOD
0
0
1
1
PEDGE
0
1
0
1
Effect
PAI Falling Edge Increments Counter
PAI Rising Edge Increments Counter
Zero on PAI Inhibits Counting
One on PAI Inhibits Counting
PCLKS — PCLK Pin State (Read Only)
I4/O5 — Input Capture 4/Output Compare 5
0 = Output compare 5 enabled
1 = Input capture 4 enabled
PACLK[1:0] — Pulse Accumulator Clock Select (Gated Mode)
PACLK[1:0]
00
01
10
11
Pulse Accumulator Clock Selected
System Clock Divided by 512
Same Clock Used to Increment TCNT
TOF Flag from TCNT
External Clock, PCLK
PACNT — Pulse Accumulator Counter
Eight-bit read/write counter used for external event counting or gated time accumulation.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-7
D.2.8 TIC[1:3] — Input Capture Registers 1–3
$YFF90E–$YFF912
The input capture registers are 16-bit read-only registers used to latch the value of
TCNT when a specified transition is detected on the corresponding input capture pin.
They are reset to $FFFF.
D.2.9 TOC[1:4] — Output Compare Registers 1–4
$YFF914–$YFF91A
The 16-bit read/write output compare registers can be used as output waveform controls or as elapsed time indicators. For output compare functions, they are written to a
desired match value and compared against TCNT to control specified pin actions.
They are reset to $FFFF.
D.2.10 TI4/O5 — Input Capture 4/Output Compare 5 Register
$YFF91C
This register serves either as input capture register 4 or output compare register 5, depending on the state of I4/O5 in PACTL.
D
D.2.11 TCTL1/TCTL2 — Timer Control Registers 1 and 2
15
14
13
12
11
10
9
8
OM5
OL5
OM4
OL4
OM3
OL3
OM2
OL2
0
0
0
0
0
0
7
6
$YFF91E
5
EDGE4
4
3
EDGE3
2
1
EDGE2
0
EDGE1
RESET:
0
0
0
0
0
0
0
0
0
0
TCTL1 determines output compare mode and output logic level. TCTL2 determines
the type of input capture to be performed.
OM/OL[5:2] — Output Compare Mode Bits and Output Compare Level Bits
Each pair of bits specifies an action to be taken when output comparison is successful.
OM/OL[5:2]
00
01
10
11
Action Taken
Timer Disconnected from Output Logic
Toggle OCx Output Line
Clear OCx Output Line to zero
Set OCx Output Line to one
EDGE[4:1] — Input Capture Edge Control
Each pair of bits configures input sensing logic for the corresponding input capture.
EDGE[4:1]
00
01
10
11
MOTOROLA
D-8
Configuration
Capture Disabled
Capture on Rising Edge Only
Capture on Falling Edge Only
Capture on Any (Rising or Falling) Edge
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.2.12 TMSK1/TMSK2 — Timer Interrupt Mask Registers 1 and 2
15
14
11
I4/O5I
10
OCI
8
ICI
$YFF920
7
6
5
4
3
TOI
0
PAOVI
PAII
CPROUT
0
0
0
0
0
2
0
CPR
RESET:
0
0
0
0
0
0
0
0
0
0
0
TMSK1 enables OC and IC interrupts. TMSK2 controls pulse accumulator interrupts
and TCNT functions.
I4/O5I — Input Capture 4/Output Compare 5 Interrupt Enable
0 = IC4/OC5 interrupt disabled
1 = IC4/OC5 interrupt requested when I4/O5F flag in TFLG1 is set
OCI[4:1] — Output Compare Interrupt Enable
0 = OC interrupt disabled
1 = OC interrupt requested when OC flag set
OCI[4:1] correspond to OC[4:1].
D
ICI[3:1] — Input Capture Interrupt Enable
0 = IC interrupt disabled
1 = IC interrupt requested when IC flag set
ICI[3:1] correspond to IC[3:1].
TOI — Timer Overflow Interrupt Enable
0 = Timer overflow interrupt disabled
1 = Interrupt requested when TOF flag is set
PAOVI — Pulse Accumulator Overflow Interrupt Enable
0 = Pulse accumulator overflow interrupt disabled
1 = Interrupt requested when PAOVF flag is set
PAII — Pulse Accumulator Input Interrupt Enable
0 = Pulse accumulator interrupt disabled
1 = Interrupt requested when PAIF flag is set
CPROUT — Capture/Compare Unit Clock Output Enable
0 = Normal operation for OC1 pin
1 = TCNT clock driven out OC1 pin
CPR[2:0] — Timer Prescaler/PCLK Select Field
This field selects one of seven prescaler taps or PCLK to be TCNT input.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-9
D.2.13 TFLG1/TFLG2 — Timer Interrupt Flag Registers 1 and 2
15
14
11
I4/O5F
10
8
OCF
ICF
$YFF922
7
6
5
4
3
2
1
0
TOF
0
PAOVF
PAIF
0
0
0
0
0
0
0
0
0
0
0
0
RESET:
0
0
0
0
0
0
0
0
These registers show condition flags that correspond to GPT events. If the corresponding interrupt enable bit in TMSK1/TMSK2 is set, an interrupt occurs.
I4/O5F — Input Capture 4/Output Compare 5 Flag
When I4/O5 in PACTL is zero, this flag is set each time TCNT matches the TOC5 value in TI4/O5. When I4/O5 in PACTL is one, the flag is set each time a selected edge
is detected at the I4/O5 pin.
D
OCF[4:1] — Output Compare Flags
An output compare flag is set each time TCNT matches the corresponding TOC register. OCF[4:1] correspond to OC[4:1].
ICF[3:1] — Input Capture Flags
A flag is set each time a selected edge is detected at the corresponding input capture
pin. ICF[3:1] correspond to IC[3:1].
TOF — Timer Overflow Flag
This flag is set each time TCNT advances from a value of $FFFF to $0000.
PAOVF — Pulse Accumulator Overflow Flag
This flag is set each time the pulse accumulator counter advances from a value of $FF
to $00.
PAIF — Pulse Accumulator Flag
In event counting mode, this flag is set when an active edge is detected on the PAI pin.
In gated time accumulation mode, it is set at the end of the timed period.
D.2.14 CFORC — Compare Force Register
PWMC — PWM Control Register C
15
11
FOC
$YFF924
$YFF925
10
9
8
7
0
FPWMA
FPWMB
PPROUT
0
0
0
0
6
4
PPR
3
2
1
0
SFA
SFB
F1A
F1B
0
0
0
0
RESET:
0
0
0
0
0
0
0
0
Setting a bit in CFORC causes a specific output on OC or PWM pins. PWMC sets
PWM operating conditions.
FOC[5:1] — Force Output Compare
0 = Has no meaning.
1 = Causes pin action programmed for corresponding OC pin, but the OC flag is
not set.
FOC[5:1] correspond to OC[5:1].
MOTOROLA
D-10
REGISTER SUMMARY
MC68331
USER’S MANUAL
FPWMA — Force PWMA Value
0 = Normal PWMA operation.
1 = The value of F1A is driven out on the PWMA pin, regardless of the state of
PPROUT.
FPWMB — Force PWMB Value
0 = Normal PWMB operation.
1 = The value of F1B is driven out on the PWMB pin.
PPROUT — PWM Clock Output Enable
0 = Normal PWM operation on PWMA.
1 = TCNT clock driven out PWMA pin.
PPR[2:0] — PWM Prescaler/PCLK Select
This field selects one of seven prescaler taps or PCLK to be PWMCNT input.
PPR[2:0]
000
001
010
011
100
101
110
111
System Clock
Divide-by Factor
2
4
8
16
32
64
128
PCLK
D
SFA — PWMA Slow/Fast Select
0 = PWMA period is 256 PWMCNT increments long.
1 = PWMA period is 32768 PWMCNT increments long.
SFB — PWMB Slow/Fast Select
0 = PWMB period is 256 PWMCNT increments long.
1 = PWMB period is 32768 PWMCNT increments long.
The following table shows a range of PWM output frequencies using a 16.78-MHz system clock and 20.97 system clock.
PPR
[2:0]
000
001
010
011
100
101
110
111
Prescaler Tap
16.78 MHz
20.97 MHz
Div 2 = 8.39 MHz
Div 2 = 10.5 MHz
Div 4 = 4.19 MHz
Div 4 = 5.25 MHz
Div 8 = 2.10 MHz
Div 8 = 2.62 MHz
Div 16 = 1.05 MHz Div 16 = 1.31 MHz
Div 32 = 524 kHz
Div 32 = 655 kHz
Div 64 = 262 kHz
Div 64 = 328 kHz
Div 128 = 131 kHz Div 128 = 164 kHz
PCLK
PCLK
SFA/B = 0
16.78 MHz
20.97 MHz
32.8 kHz
41 kHz
16.4 kHz
20.5 kHz
8.19 kHz
10.2 kHz
4.09 kHz
5.15 kHz
2.05 kHz
2.56 kHz
1.02 kHz
1.28 kHz
512 Hz
641 Hz
PCLK/256
PCLK/256
SFA/B = 1
16.78 MHz
20.97 MHz
256 Hz
320 Hz
128 Hz
160 Hz
64.0 Hz
80.0 Hz
32.0 Hz
40.0 Hz
16.0 Hz
20.0 Hz
8.0 Hz
10.0 Hz
4.0 Hz
5.0 Hz
PCLK/32768 PCLK/32768
F1A — Force Logic Level One on PWMA
0 = Force logic level zero output on PWMA pin.
1 = Force logic level one output on PWMA pin.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-11
F1B — Force Logic Level One on PWMB
0 = Force logic level zero output on PWMB pin.
1 = Force logic level one output on PWMB pin.
D.2.15 PWMA/PWMB — PWM Registers A/B
$YFF926, $YFF927
The value in these registers determines pulse width of the corresponding PWM output.
A value of $00 corresponds to continuously low output; a value of $80 to 50% duty cycle. Maximum value ($FF) selects an output that is high for 255/256 of the period.
Writes to these registers are buffered by PWMBUFA and PWMBUFB.
D.2.16 PWMCNT — PWM Count Register
$YFF928
PWMCNT is the 16-bit free-running counter used for GPT PWM functions.
D
D.2.17 PWMBUFA — PWM Buffer Register A
$YFF92A
PWMBUFB — PWM Buffer Register B
$YFF92B
To prevent glitches when PWM duty cycle is changed, the contents of PWMA and
PWMB are transferred to these read-only registers at the end of each duty cycle. Reset state is $0000.
D.2.18 PRESCL — GPT Prescaler
$YFF92C
The 9-bit prescaler value can be read from bits [8:0] at this address. Bits [15:9] always
read as zeros. Reset state is $0000.
MOTOROLA
D-12
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.3 System Integration Module
Table D-3 displays the SIM address map. The column labeled “Access” indicates the
privilege level at which the CPU must be operating to access the register. A designation of “S” indicates that supervisor access is required. A designation of “S/U” indicates
that the register can be programmed to the desired privilege level.
Table D-3 SIM Address Map
Access
S
S
S
S
S
S
S
S
S/U
S/U
S/U
S
S/U
S/U
S/U
S
S
Address
$YFFA00
$YFFA02
$YFFA04
$YFFA06
$YFFA08
$YFFA0A
$YFFA0C
$YFFA0E
$YFFA10
$YFFA12
$YFFA14
$YFFA16
$YFFA18
$YFFA1A
$YFFA1C
$YFFA1E
$YFFA20
S
S
S
S
S
S
S
S
S
S
S
S
S/U
$YFFA22
$YFFA24
$YFFA26
$YFFA28
$YFFA2A
$YFFA2C
$YFFA2E
$YFFA30
$YFFA32
$YFFA34
$YFFA36
$YFFA38
$YFFA3A
$YFFA3C
$YFFA3E
$YFFA40
$YFFA42
$YFFA44
$YFFA46
$YFFA48
$YFFA4A
$YFFA4C
$YFFA4E
S/U
S
S
S
S
S
S
MC68331
USER’S MANUAL
15
8 7
0
SIM CONFIGURATION (SIMCR)
FACTORY TEST (SIMTR)
CLOCK SYNTHESIZER CONTROL (SYNCR)
NOT USED
RESET STATUS REGISTER (RSR)
MODULE TEST E (SIMTRE)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
PORT E DATA (PORTE0)
NOT USED
PORT E DATA (PORTE1)
NOT USED
PORT E DATA DIRECTION (DDRE)
NOT USED
PORT E PIN ASSIGNMENT (PEPAR)
NOT USED
PORT F DATA (PORTF0)
NOT USED
PORT F DATA (PORTF1)
NOT USED
PORT F DATA DIRECTION (DDRF)
NOT USED
PORT F PIN ASSIGNMENT (PFPAR)
NOT USED
SYSTEM PROTECTION CONTROL
(SYPCR)
PERIODIC INTERRUPT CONTROL (PICR)
PERIODIC INTERRUPT TIMING (PITR)
NOT USED
SOFTWARE SERVICE (SWSR)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
TEST MODULE MASTER SHIFT A (TSTMSRA)
TEST MODULE MASTER SHIFT B (TSTMSRB)
TEST MODULE SHIFT COUNT (TSTSC)
TEST MODULE REPETITION COUNTER (TSTRC)
TEST MODULE CONTROL (CREG)
TEST MODULE DISTRIBUTED REGISTER (DREG)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
PORT C DATA (PORTC)
NOT USED
NOT USED
CHIP-SELECT PIN ASSIGNMENT (CSPAR0)
CHIP-SELECT PIN ASSIGNMENT (CSPAR1)
CHIP-SELECT BASE BOOT (CSBARBT)
CHIP-SELECT OPTION BOOT (CSORBT)
CHIP-SELECT BASE 0 (CSBAR0)
CHIP-SELECT OPTION 0 (CSOR0)
REGISTER SUMMARY
MOTOROLA
D-13
D
Table D-3 SIM Address Map
D
Access
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
Address
$YFFA50
$YFFA52
$YFFA54
$YFFA56
$YFFA58
$YFFA5A
$YFFA5C
$YFFA5E
$YFFA60
$YFFA62
$YFFA64
$YFFA66
$YFFA68
$YFFA6A
$YFFA6C
$YFFA6E
$YFFA70
$YFFA72
$YFFA74
$YFFA76
$YFFA78
$YFFA7A
$YFFA7C
$YFFA7E
15
8 7
CHIP-SELECT BASE 1 (CSBAR1)
CHIP-SELECT OPTION 1 (CSOR1)
CHIP-SELECT BASE 2 (CSBAR2)
CHIP-SELECT OPTION 2 (CSOR2)
CHIP-SELECT BASE 3 (CSBAR3)
CHIP-SELECT OPTION 3 (CSOR3)
CHIP-SELECT BASE 4 (CSBAR4)
CHIP-SELECT OPTION 4 (CSOR4)
CHIP-SELECT BASE 5 (CSBAR5)
CHIP-SELECT OPTION 5 (CSOR5)
CHIP-SELECT BASE 6 (CSBAR6)
CHIP-SELECT OPTION 6 (CSOR6)
CHIP-SELECT BASE 7 (CSBAR7)
CHIP-SELECT OPTION 7 (CSOR7)
CHIP-SELECT BASE 8 (CSBAR8)
CHIP-SELECT OPTION 8 (CSOR8)
CHIP-SELECT BASE 9 (CSBAR9)
CHIP-SELECT OPTION 9 (CSOR9)
CHIP-SELECT BASE 10 (CSBAR10)
CHIP-SELECT OPTION 10 (CSOR10)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
0
Y = M111, where M is the logic state of the module mapping (MM) bit in the SIMCR
D.3.1 SIMCR — Module Configuration Register
15
14
13
12
11
10
EXOFF
FRZSW
FRZBM
0
SLVEN
0
0
0
DATA11
0
9
8
SHEN
$YFFA00
7
6
5
4
SUPV
MM
0
0
1
1
0
0
3
0
IARB
RESET:
0
0
0
0
1
1
1
1
SIMCR controls system configuration. SIMCR can be read or written at any time, except for the module mapping (MM) bit, which can only be written once.
EXOFF — External Clock Off
0 = The CLKOUT pin is driven from an internal clock source.
1 = The CLKOUT pin is placed in a high-impedance state.
FRZSW — Freeze Software Enable
0 = When FREEZE is asserted, the software watchdog and periodic interrupt timer
counters continue to run.
1 = When FREEZE is asserted, the software watchdog and periodic interrupt timer
counters are disabled, preventing interrupts during software debug.
MOTOROLA
D-14
REGISTER SUMMARY
MC68331
USER’S MANUAL
FRZBM — Freeze Bus Monitor Enable
0 = When FREEZE is asserted, the bus monitor continues to operate.
1 = When FREEZE is asserted, the bus monitor is disabled.
SLVEN — Factory Test Mode Enabled
0 = IMB is not available to an external master.
1 = An external bus master has direct access to the IMB.
SHEN[1:0] — Show Cycle Enable
This field determines what the EBI does with the external bus during internal transfer
operations.
SUPV — Supervisor/Unrestricted Data Space
The SUPV bit places the SIM global registers in either supervisor or user data space.
0 = Registers with access controlled by the SUPV bit are accessible from either the
user or supervisor privilege level.
1 = Registers with access controlled by the SUPV bit are restricted to supervisor
access only.
MM — Module Mapping
0 = Internal modules are addressed from $7FF000 – $7FFFFF.
1 = Internal modules are addressed from $FFF000 – $FFFFFF.
IARB[3:0] — Interrupt Arbitration Field
Determines SIM interrupt arbitration priority. The reset value is $F (highest priority), to
prevent SIM interrupts from being discarded during initialization.
D.3.2 SIMTR — System Integration Test Register
SIMTR is used for factory test only.
$YFFA02
D.3.3 SYNCR — Clock Synthesizer Control Register
$YFFA04
15
14
W
X
13
8
Y
7
6
5
4
3
2
1
0
EDIV
0
0
SLIMP
SLOCK
RSTEN
STSIM
STEXT
0
0
0
U
U
0
0
0
RESET:
0
0
1
1
1
1
1
1
SYNCR determines system clock operating frequency and mode of operation.
Clock frequency is determined by SYNCR bit settings as follows:
.
W — Frequency Control (VCO)
0 = Base VCO frequency
1 = VCO frequency multiplied by four
X — Frequency Control Bit (Prescale)
0 = VCO frequency divided by four (base system clock frequency)
1 = VCO frequency divided by two (system clock frequency doubles)
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-15
D
Y[5:0] — Frequency Control (Counter)
The Y field is the initial value for the modulus 64 down counter in the synthesizer feedback loop. Values range from 0 to 63.
EDIV — ECLK Divide Rate
0 = ECLK is system clock divided by 8
1 = ECLK is system clock divided by 16
SLIMP — Limp Mode
0 = External crystal is VCO reference
1 = Loss of crystal reference
SLOCK — Synthesizer Lock
0 = VCO is enabled, but has not locked.
1 = VCO has locked on the desired frequency or system clock is external.
D
RSTEN — Reset Enable
0 = Loss of reference causes the MCU to operate in limp mode.
1 = Loss of reference causes system reset.
STSIM — Stop Mode System Integration Clock
0 = SIM clock driven by an external source and VCO off during low-power stop.
1 = SIM clock driven by VCO during low-power stop.
STEXT — Stop Mode External Clock
0 = CLKOUT held low during low-power stop.
1 = CLKOUT driven from SIM clock during low-power stop.
D.3.4 RSR — Reset Status Register
15
$YFFA07
8
NOT USED
7
6
5
4
3
2
1
0
EXT
POW
SW
HLT
0
LOC
SYS
TST
RSR contains a status bit for each reset source in the MCU. RSR is updated when the
MCU comes out of reset. A set bit indicates what type of reset occurred. If multiple
sources assert reset signals at the same time, more than one bit in RSR may be set.
This register can be read at any time; a write has no effect.
EXT — External Reset
Reset caused by an external signal.
POW — Power-Up Reset
Reset caused by the power-up reset circuit.
SW — Software Watchdog Reset
Reset caused by the software watchdog circuit.
HLT — Halt Monitor Reset
Reset caused by the halt monitor.
MOTOROLA
D-16
REGISTER SUMMARY
MC68331
USER’S MANUAL
LOC — Loss of Clock Reset
Reset caused by loss of clock frequency reference.
SYS — System Reset
Reset caused by a RESET instruction.
TST — Test Submodule Reset
Reset caused by the test submodule. Used during system test only.
D.3.5 SIMTRE — System Integration Test Register (ECLK)
Register is used for factory test only.
$YFFA08
D.3.6 PORTE0/PORTE1 — Port E Data Register
15
8
NOT USED
$YFFA11, $YFFA13
7
6
5
4
3
2
1
0
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
U
U
U
U
U
U
U
U
RESET:
PORTE is an internal data latch that can be accessed at two locations. PORTE can be
read or written at any time. If a pin in I/O port E is configured as an output, the corresponding bit value is driven out on the pin. When a pin is configured for output, a read
of PORTE returns the latched bit value; when a pin is configured for input, a read returns the pin logic level.
D.3.7 DDRE — Port E Data Direction Register
15
8
NOT USED
$YFFA15
7
6
5
4
3
2
1
0
DDE7
DDE6
DDE5
DDE4
DDE3
DDE2
DDE1
DDE0
0
0
0
0
0
0
0
0
RESET:
Bits in this register control the direction of the port E pin drivers when pins are configured for I/O. Setting a bit configures the corresponding pin as an output; clearing a bit
configures the corresponding pin as an input. This register can be read or written at
any time.
D.3.8 PEPAR — Port E Pin Assignment Register
15
8
NOT USED
$YFFA17
7
6
5
4
3
2
1
0
PEPA7
PEPA6
PEPA5
PEPA4
PEPA3
PEPA2
PEPA1
PEPA0
DATA8
DATA8
DATA8
DATA8
DATA8
DATA8
DATA8
DATA8
RESET:
Bits in this register determine the function of port E pins. Setting a bit assigns the corresponding pin to a bus control signal; clearing a bit assigns the pin to I/O port E.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-17
D
Table D-4 Port E Pin Assignments
PEPAR Bit
PEPA7
PEPA6
PEPA5
PEPA4
PEPA3
PEPA2
PEPA1
PEPA0
Port E Signal
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
Bus Control Signal
SIZ1
SIZ0
AS
DS
RMC
AVEC
DSACK1
DSACK0
D.3.9 PORTF0/PORTF1 — Port F Data Register
15
8
NOT USED
$YFFA19, $YFFA1B
7
6
5
4
3
2
1
0
PF7
PF6
PF5
PF4
PF3
PF2
PF1
PF0
U
U
U
U
U
U
U
U
RESET:
D
PORTF is an internal data latch that can be accessed at two locations. It can be read
or written at any time. If a pin in I/O port F is configured as an output, the corresponding
bit value is driven out on the pin. When a pin is configured for output, a read of PORTF
returns the latched bit value; when a pin is configured for input, a read returns the pin
logic level.
D.3.10 DDRF — Port F Data Direction Register
15
8
NOT USED
$YFFA1D
7
6
5
4
3
2
1
0
DDF7
DDF6
DDF5
DDF4
DDF3
DDF2
DDF1
DDF0
0
0
0
0
0
0
0
0
RESET:
Bits in this register control the direction of the port F pin drivers when pins are configured for I/O. Setting a bit configures the corresponding pin as an output; clearing a bit
configures the corresponding pin as an input. This register can be read or written at
any time.
D.3.11 PFPAR — Port F Pin Assignment Register
15
8
NOT USED
$YFFA1F
7
6
5
4
3
2
1
0
PFPA7
PFPA6
PFPA5
PFPA4
PFPA3
PFPA2
PFPA1
PFPA0
DATA9
DATA9
DATA9
DATA9
DATA9
DATA9
DATA9
DATA9
RESET:
Bits in this register determine the function of port F pins. Setting a bit assigns the corresponding pin to a control signal; clearing a bit assigns the pin to port F.
MOTOROLA
D-18
REGISTER SUMMARY
MC68331
USER’S MANUAL
Table D-5 Port F Pin Assignments
PFPAR Field
PFPA7
PFPA6
PFPA5
PFPA4
PFPA3
PFPA2
PFPA1
PFPA0
Port F Signal
PF7
PF6
PF5
PF4
PF3
PF2
PF1
PF0
Control Signal
IRQ7
IRQ6
IRQ5
IRQ4
IRQ3
IRQ2
IRQ1
MODCLK
D.3.12 SYPCR — System Protection Control Register
15
8
NOT USED
7
6
SWE
SWP
1
MODCLK
$YFFA21
5
4
SWT
3
2
HME
BME
0
0
1
0
BMT
RESET:
0
0
0
0
SYPCR controls system monitor functions, software watchdog clock prescaling, and
bus monitor timing. This register can be written once following power-on or reset.
SWE — Software Watchdog Enable
0 = Software watchdog disabled
1 = Software watchdog enabled
SWP — Software Watchdog Prescale
0 = Software watchdog clock not prescaled
1 = Software watchdog clock prescaled by 512
SWT[1:0] — Software Watchdog Timing
This field selects software watchdog time-out period.
Table D-6 Software Watchdog Ratio
SWP
0
0
0
0
1
1
1
1
SWT
00
01
10
11
00
01
10
11
Ratio
29
211
213
215
218
220
222
224
HME — Halt Monitor Enable
0 = Disable halt monitor function
1 = Enable halt monitor function
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-19
D
BME — Bus Monitor External Enable
0 = Disable bus monitor function for an internal to external bus cycle.
1 = Enable bus monitor function for an internal to external bus cycle.
BMT[1:0] — Bus Monitor Timing
This field selects bus monitor time-out period.
Table D-7 Bus Monitor Period
BMT
00
01
10
11
Bus Monitor Time-out Period
64 System Clocks
32 System Clocks
16 System Clocks
8 System Clocks
D.3.13 PICR — Periodic Interrupt Control Register
D
15
14
13
12
11
0
0
0
0
0
0
0
0
0
10
8
$YFFA22
7
0
PIRQL
PIV
RESET:
0
0
0
0
0
0
0
0
1
1
1
1
Contains information concerning periodic interrupt priority and vectoring. PICR[10:0]
can be read or written at any time. PICR[15:11] are unimplemented and always return
zero.
PIRQL[2:0] — Periodic Interrupt Request Level
This field determines the priority of periodic interrupt requests.
PIV[7:0] — Periodic Interrupt Vector
The bits of this field contain the periodic interrupt vector number supplied by the SIM
when the CPU acknowledges an interrupt request.
D.3.14 PITR — Periodic Interrupt Timer Register
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
PTP
0
0
0
0
0
0
MODCLK
$YFFA24
7
0
PITM
RESET:
0
0
0
0
0
0
0
0
0
Contains the count value for the periodic timer. This register can be read or written at
any time.
PTP — Periodic Timer Prescaler Control
0 = Periodic timer clock not prescaled
1 = Periodic timer clock prescaled by a value of 512
PITM[7:0] — Periodic Interrupt Timing Modulus
This is the 8-bit timing modulus used to determine periodic interrupt rate. Use the following expression to calculate timer period.
MOTOROLA
D-20
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.3.15 SWSR — Software Service Register
15
8
NOT USED
$YFFA27
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RESET:
When the software watchdog is enabled, a service sequence must be written to this
register within a specific interval. When read, SWSR always returns $00. Register
shown with read value.
D.3.16 TSTMSRA — Master Shift Register A
Register is used for factory test only.
$YFFA30
D.3.17 TSTMSRB — Master Shift Register B
Register is used for factory test only.
$YFFA32
D.3.18 TSTSC — Test Module Shift Count
Register is used for factory test only.
$YFFA34
D.3.19 TSTRC — Test Module Repetition Count
Register is used for factory test only.
$YFFA36
D.3.20 CREG — Test Submodule Control Register
Register is used for factory test only.
$YFFA38
D.3.21 DREG — Distributed Register
Register is used for factory test only.
$YFFA3A
D.3.22 PORTC — Port C Data Register
$YFFA41
15
8
NOT USED
7
6
5
4
3
2
1
0
0
PC6
PC5
PC4
PC3
PC2
PC1
PC0
0
1
1
1
1
1
1
1
RESET:
PORTC latches data for chip-select pins that are used for discrete output.
D.3.23 CSPAR0 — Chip Select Pin Assignment Register 0
15
14
13
0
0
CSPA0[6]
12
11
10
CSPA0[5]
9
8
CSPA0[4]
7
6
CSPA0[3]
5
$YFFA44
4
CSPA0[2]
3
2
1
CSPA0[1]
0
CSBOOT
RESET:
0
0
DATA2
MC68331
USER’S MANUAL
1
DATA2
1
DATA2
1
DATA1
1
REGISTER SUMMARY
DATA1
1
DATA1
1
1
DATA0
MOTOROLA
D-21
D
Table D-8 CSPAR0 Pin Assignments
CSPAR0 Field
CSPA0[6]
CSPA0[5]
CSPA0[4]
CSPA0[3]
CSPA0[2]
CSPA0[1]
CSBOOT
CSPAR0 Signal
CS5
CS4
CS3
CS2
CS1
CS0
CSBOOT
Alternate Signal
FC2
FC1
FC0
BGACK
BG
BR
—
Discrete Output
PC2
PC1
PC0
—
—
—
—
Contains seven 2-bit fields, CSPA0[6:1] and CSBOOT, that determine the functions of
corresponding chip-select pins. CSPAR0[15:14] are not used. These bits always read
zero; write has no effect. CSPAR0 bit 1 always reads one; writes to CSPAR0 bit 1 have
no effect. The alternate functions can be enabled by data bus mode selection during
reset.
D
D.3.24 CSPAR1 — Chip Select Pin Assignment Register 1
15
14
13
12
11
10
9
8
0
0
0
0
0
0
CSPA1[4]
0
0
0
0
0
7
6
5
CSPA1[3]
$YFFA46
4
CSPA1[2]
3
2
1
CSPA1[1]
0
CSPA1[0]
RESET:
0
DATA7
1
DATA6
1
DATA5
1
DATA4
1
DATA3
1
Table D-9 CSPAR1 Pin Assignments
CSPAR1 Field
CSPA1[4]
CSPA1[3]
CSPA1[2]
CSPA1[1]
CSPA1[0]
CSPAR1 Signal
CS10
CS9
CS8
CS7
CS6
Alternate Signal
ADDR23
ADDR22
ADDR21
ADDR20
ADDR19
Discrete Output
ECLK
PC6
PC5
PC4
PC3
Contains five 2-bit fields (CSPA1[4:0]) that determine the functions of corresponding
chip-select pins. CSPAR1[15:10] are not used. These bits always read zero; write has
no effect. The CSPAR1 pin assignments table shows alternate functions that can be
enabled by data bus mode selection during reset.
Table D-10 CSPAR0 and CSPAR1 Pin Assignment Field Encoding
Bit Field
00
01
10
11
Description
Discrete Output*
Alternate Function*
Chip Select (8-Bit Port)
Chip Select (16-Bit Port)
*Does not apply to the CSBOOT field
MOTOROLA
D-22
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.3.25 CSBARBT — Chip Select Base Address Register Boot ROM
$YFFA48
CSBAR[0:10] — Chip Select Base Address Registers
$YFFA4C–$YFFA74
15
14
13
12
11
10
9
8
7
6
5
4
3
ADDR
23
ADDR
22
ADDR
21
ADDR
20
ADDR
19
ADDR
18
ADDR
17
ADDR
16
ADDR
15
ADDR
14
ADDR
13
ADDR
12
ADDR
11
0
0
0
0
0
0
0
0
0
0
0
2
0
BLKSZ
RESET:
0
0
0
0
0
Each chip-select pin has an associated base address register. A base address is the
lowest address in the block of addresses enabled by a chip select. CSBARBT contains
the base address for selection of a bootstrap peripheral memory device. Bit and field
definition for CSBARBT and CSBAR[0:10] are the same, but reset block sizes differ.
ADDR[23:11] — Base Address
This field sets the starting address of a particular address space.
BLKSZ — Block Size
This field determines the size of the block above the base address that is enabled by
the chip select.
Table D-11 Block Size Encoding
BLKSZ[2:0]
000
001
010
011
100
101
110
111
Block Size
2K
8K
16 K
64 K
128 K
256 K
512 K
1M
Address Lines Compared
ADDR[23:11]
ADDR[23:13]
ADDR[23:14]
ADDR[23:16]
ADDR[23:17]
ADDR[23:18]
ADDR[23:19]
ADDR[23:20]
D.3.26 CSORBT — Chip Select Option Register Boot ROM
CSOR[0:10] — Chip Select Option Registers
15
14
MODE
13
12
BYTE
11
R/W
10
9
6
STRB
5
DSACK
$YFFA4A
$YFFA4E–$YFFA76
4
3
SPACE
1
IPL
0
AVEC
RESET:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Contain parameters that support bootstrap operations from peripheral memory devices. Bit and field definitions for CSORBT and CSOR[0:10] are the same.
MODE — Asynchronous Bus/Synchronous E-clock Mode
Synchronous mode cannot be used with internally generated autovectors.
0 = Asynchronous mode selected
1 = Synchronous mode selected
BYTE — Upper/Lower Byte Option
The value in this field determines whether a select signal can be asserted.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-23
D
R/W — Read/Write
This field causes a chip select to be asserted only for a read, only for a write, or for
both read and write.
STRB — Address Strobe/Data Strobe
0 = Address strobe
1 = Data strobe
DSACK — Data Strobe Acknowledge
This field specifies the source of DSACK in asynchronous bus mode and controls wait
state insertion.
SPACE — Address Space Select
This field selects an address space to be used by the chip-select logic.
IPL — Interrupt Priority Level
This field determines interrupt priority level when a chip select is used for interrupt acknowledge. It does not affect CPU interrupt recognition.
D
AVEC — Autovector Enable
Do not enable autovector support when in synchronous mode.
0 = External interrupt vector enabled
1 = Autovector enabled
Table D-12 Option Register Function Summary
MODE
0 = ASYNC
1 = SYNC
MOTOROLA
D-24
BYTE
00 = Disable
01 = Lower
10 = Upper
11 = Both
R/W
00 = Rsvd
01 = Read
10 = Write
11 = Both
STRB
0 = AS
1 = DS
DSACK
0000 = 0 WAIT
0001 = 1 WAIT
0010 = 2 WAIT
0011 = 3 WAIT
0100 = 4 WAIT
0101 = 5 WAIT
0110 = 6 WAIT
0111 = 7 WAIT
1000 = 8 WAIT
1001 = 9 WAIT
1010 = 10 WAIT
1011 = 11 WAIT
1100 = 12 WAIT
1101 = 13 WAIT
1110 = F term
1111 = External
REGISTER SUMMARY
SPACE
IPL
00 = CPU SP
000 = All
01 = User SP 001 = Priority 1
10 = Supv SP 010 = Priority 2
11 = S/U SP 011 = Priority 3
100 = Priority 4
101 = Priority 5
110 = Priority 6
111 = Priority 7
AVEC
0 = Off
1 = On
MC68331
USER’S MANUAL
D.4 Queued Serial Module
Table D-13 displays the QSM address map. The column labeled “Access” indicates
the privilege level at which the CPU must be operating to access the register. A designation of “S” indicates that supervisor access is required: a designation of “S/U” indicates that the register can be programmed to the desired privilege level.
Table D-13 QSM Address Map
Access
S
S
S
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
Address
$YFFC00
$YFFC02
$YFFC04
$YFFC06
$YFFC08
$YFFC0A
$YFFC0C
$YFFC0E
$YFFC10
$YFFC12
$YFFC14
$YFFC16
$YFFC18
$YFFC1A
$YFFC1C
$YFFC1E
$YFFC20–
$YFFCFF
$YFFD00–
$YFFD1F
$YFFD20–
$YFFD3F
$YFFD40–
$YFFD4F
S/U
QUEUE RAM
S/U
QUEUE RAM
S/U
QUEUE RAM
15
8 7
0
QSM MODULE CONFIGURATION (QSMCR)
QSM TEST (QTEST)
QSM INTERRUPT LEVEL (QILR)
QSM INTERRUPT VECTOR (QIVR)
NOT USED
SCI CONTROL 0 (SCCR0)
SCI CONTROL 1 (SCCR1)
SCI STATUS (SCSR)
SCI DATA (SCDR)
NOT USED
NOT USED
NOT USED
PQS DATA (PORTQS)
PQS PIN ASSIGNMENT (PQSPAR)
PQS DATA DIRECTION (DDRQS)
SPI CONTROL 0 (SPCR0)
SPI CONTROL 1 (SPCR1)
SPI CONTROL 2 (SPCR2)
SPI CONTROL 3 (SPCR3)
SPI STATUS (SPSR)
NOT USED
RECEIVE RAM (RR[0:F])
TRANSMIT RAM (TR[0:F])
COMMAND RAM (CR[0:F])
Y = M111, where M is the logic state of the module mapping (MM) bit in the SIMCR.
D.4.1 QSMCR — QSM Configuration Register
$YFFC00
15
14
13
12
11
10
9
8
7
6
5
4
STOP
FRZ1
FRZ0
0
0
0
0
0
SUPV
0
0
0
0
0
0
0
0
0
1
0
0
0
3
0
IARB
RESET:
0
0
0
0
0
0
QSMCR bits enable stop and freeze modes, and determine the arbitration priority of
QSM interrupt requests.
STOP — Stop Enable
0 = Normal QSM clock operation
1 = QSM clock operation stopped
When STOP is set, the QSM enters low-power stop mode. System clock input to the
module is disabled. While STOP is asserted, only QSMCR reads are guaranteed to be
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-25
D
valid, but writes to QSPI RAM or any register are guaranteed valid. STOP is set during
reset. The SCI receiver and transmitter must be disabled before STOP is set. To stop
the QSPI, set the HALT bit in SPCR3, wait until the HALTA flag is set, then set STOP.
FRZ[1:0] — Freeze Control
0 = Ignore the FREEZE signal on the IMB
1 = Halt the QSPI (on a transfer boundary)
FRZ1 determines what action is taken by the QSPI when the FREEZE signal of the
IMB is asserted. FREEZE is asserted whenever the CPU enters background mode.
FRZ0 is reserved for future use.
SUPV — Supervisor/Unrestricted
0 = Supervisor access
1 = User access
IARB — Interrupt Arbitration
Each module that generates interrupts must have an IARB value. IARB values are
used to arbitrate between interrupt requests of the same priority.
D
D.4.2 QTEST — QSM Test Register
Used for factory test only.
$YFFC02
D.4.3 QILR — QSM Interrupt Level Register
QIVR — QSM Interrupt Vector Register
$YFFC04
$YFFC05
15
14
0
0
13
11
10
ILQSPI
8
7
0
ILSCI
INTV
RESET:
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
The values of the ILQSPI and ILSCI fields in QILR determine the priority of QSPI and
SCI interrupt requests. QIVR determines the value of the interrupt vector number the
QSM supplies when it responds to an interrupt acknowledge cycle. At reset, QIVR is
initialized to vector number $0F, the uninitialized interrupt vector number. To use interrupt-driven serial communication, a user-defined vector number must be written to
QIVR.
ILQSPI — Interrupt Level for QSPI
When an interrupt request is made, ILQSPI value determines which of the interrupt request signals is asserted; when a request is acknowledged, the QSM compares this
value to a mask value supplied by the CPU32 to determine whether to respond. ILQSPI must have a value in the range $0 (lowest priority) to $7 (highest priority).
ILSCI — Interrupt Level for SCI
When an interrupt request is made, ILSCI value determines which of the interrupt request signals is asserted. When a request is acknowledged, the QSM compares this
value to a mask value supplied by the CPU32 to determine whether to respond. The
field must have a value in the range $0 (lowest priority) to $7 (highest priority).
If ILQSPI and ILSCI have the same nonzero value, and both submodules simultaneously request interrupt service, the QSPI has priority.
MOTOROLA
D-26
REGISTER SUMMARY
MC68331
USER’S MANUAL
INTV[7:0] — Interrupt Vector Number
The values of INTV[7:1] are the same for both QSPI and SCI interrupt requests; the
value of INTV0 used during an interrupt acknowledge cycle is supplied by the QSM.
INTV0 is at logic level zero during an SCI interrupt and at logic level one during a QSPI
interrupt. A write to INTV0 has no effect. Reads of INTV0 return a value of one.
D.4.4 SCCR0 — SCI Control Register 0
15
14
13
0
0
0
0
0
$YFFC08
12
0
SCBR
RESET:
0
0
0
0
0
0
0
0
0
0
0
1
0
0
SCCR0 contains the SCI baud rate selection field. Baud rate must be set before the
SCI is enabled. The CPU32 can read and write SCCR0 at any time. Changing the value of SCCR0 bits during a transfer operation can disrupt operation.
SCBR — SCI Baud Rate
SCI baud rate is programmed by writing a 13-bit value to this field. Writing a value of
zero to SCBR disables the baud rate generator. Baud clock rate is calculated as follows:
D.4.5 SCCR1 — SCI Control Register 1
$YFFC0A
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
LOOPS
WOMS
ILT
PT
PE
M
WAKE
TIE
TCIE
RIE
ILIE
TE
RE
RWU
SBK
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RESET:
0
0
SCCR1 contains SCI configuration parameters, including transmitter and receiver enable bits, interrupt enable bits, and operating mode enable bits. The CPU can read and
write SCCR0 at any time. The SCI can modify the RWU bit under certain circumstances. Changing the value of SCCR1 bits during a transfer operation can disrupt operation.
LOOPS — Loop Mode
0 = Normal SCI operation, no looping, feedback path disabled
1 = Test SCI operation, looping, feedback path enabled
WOMS — Wired-OR Mode for SCI Pins
0 = If configured as an output, TXD is a normal CMOS output.
1 = If configured as an output, TXD is an open-drain output.
ILT — Idle-Line Detect Type
0 = Short idle-line detect (start count on first one)
1 = Long idle-line detect (start count on first one after stop bit(s))
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-27
D
PT — Parity Type
0 = Even parity
1 = Odd parity
PE — Parity Enable
0 = SCI parity disabled
1 = SCI parity enabled
M — Mode Select
0 = 10-bit SCI frame
1 = 11-bit SCI frame
WAKE — Wakeup by Address Mark
0 = SCI receiver awakened by idle-line detection
1 = SCI receiver awakened by address mark (last bit set)
D
TIE — Transmit Interrupt Enable
0 = SCI TDRE interrupts inhibited
1 = SCI TDRE interrupts enabled
TCIE — Transmit Complete Interrupt Enable
0 = SCI TC interrupts inhibited
1 = SCI TC interrupts enabled
RIE — Receiver Interrupt Enable
0 = SCI RDRF and OR interrupts inhibited
1 = SCI RDRF and OR interrupts enabled
ILIE — Idle-Line Interrupt Enable
0 = SCI IDLE interrupts inhibited
1 = SCI IDLE interrupts enabled
TE — Transmitter Enable
0 = SCI transmitter disabled (TXD pin can be used as I/O)
1 = SCI transmitter enabled (TXD pin dedicated to SCI transmitter)
RE — Receiver Enable
0 = SCI receiver disabled (status bits inhibited)
1 = SCI receiver enabled
RWU — Receiver Wakeup
0 = Normal receiver operation (received data recognized)
1 = Wakeup mode enabled (received data ignored until awakened)
SBK — Send Break
0 = Normal operation
1 = Break frame(s) transmitted after completion of current frame
MOTOROLA
D-28
REGISTER SUMMARY
MC68331
USER’S MANUAL
D.4.6 SCSR — SCI Status Register
15
$YFFC0C
9
NOT USED
8
7
6
5
4
3
2
1
0
TDRE
TC
RDRF
RAF
IDLE
OR
NF
FE
PF
1
1
0
0
0
0
0
0
0
RESET:
SCSR contains flags that show SCI operating conditions. These flags are cleared either by SCI hardware or by a CPU32 read/write sequence. The sequence consists of
reading SCSR, then reading or writing SCDR.
If an internal SCI signal for setting a status bit comes after the CPU32 has read the
asserted status bits, but before the CPU has written or read SCDR, the newly set status bit is not cleared. SCSR must be read again with the bit set and SCDR must be
written or read before the status bit is cleared.
A long-word read can consecutively access both SCSR and SCDR. This action clears
receive status flag bits that were set at the time of the read, but does not clear TDRE
or TC flags. Reading either byte of SCSR causes all 16 bits to be accessed, and any
status bit already set in either byte are cleared on a subsequent read or write of register SCDR.
TDRE — Transmit Data Register Empty
0 = Register TDR still contains data to be sent to the transmit serial shifter.
1 = A new character can now be written to register TDR.
TC — Transmit Complete
0 = SCI transmitter is busy.
1 = SCI transmitter is idle.
RDRF — Receive Data Register Full
0 = Register RDR is empty or contains previously read data.
1 = Register RDR contains new data.
RAF — Receiver Active
0 = SCI receiver is idle.
1 = SCI receiver is busy.
IDLE — Idle-Line Detected
0 = SCI receiver did not detect an idle-line condition.
1 = SCI receiver detected an idle-line condition.
OR — Overrun Error
0 = RDRF is cleared before new data arrives.
1 = RDRF is not cleared before new data arrives.
NF — Noise Error Flag
0 = No noise detected on the received data
1 = Noise occurred on the received data.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-29
D
FE — Framing Error
0 = No framing error on the received data
1 = Framing error or break occurred on the received data.
PF — Parity Error
0 = No parity error on the received data
1 = Parity error occurred on the received data.
D.4.7 SCDR — SCI Data Register
$YFFC0E
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
R8/T8
R7/T7
R6/T6
R5/T5
R4/T4
R3/T3
R2/T2
R1/T1
R0/T0
0
0
0
0
0
0
U
U
U
U
U
U
U
U
U
RESET:
0
D
SCDR consists of two data registers located at the same address. RDR is a read-only
register that contains data received by the SCI serial interface. Data comes into the
receive serial shifter and is transferred to RDR. TDR is a write-only register that contains data to be transmitted. Data is first written to TDR, then transferred to the transmit
serial shifter, where additional format bits are added before transmission. R[7:0]/T[7:0]
contain either the first eight data bits received when SCDR is read, or the first eight
data bits to be transmitted when SCDR is written. R8/T8 are used when the SCI is configured for 9-bit operation. When the SCI is configured for 8-bit operation, R8/T8 have
no meaning or effect.
D.4.8 PORTQS — Port QS Data Register
15
$YFFC15
8
NOT USED
7
PQS7
6
5
4
3
2
1
0
PQS6
PQS5
PQS4
PQS3
PQS2
PQS1
PQS0
0
0
0
0
0
0
RESET:
0
0
PORTQS latches I/O data. Writes drive pins defined as outputs. Reads return data
present on the pins. To avoid driving undefined data, first write a byte to PORTQS,
then configure DDRQS.
D.4.9 PQSPAR — PORT QS Pin Assignment Register
DDRQS — PORT QS Data Direction Register
15
0
14
13
12
11
PQSPA6 PQSPA5 PQSPA4 PQSPA3
10
0
9
8
PQSPA1 PQSPA0
$YFFC16
$YFFC17
7
6
5
4
3
2
1
0
DDQS7
DDQS6
DDQS5
DDQS4
DDQS3
DDQS2
DDQS1
DDQS0
0
0
0
0
0
0
0
0
RESET:
0
0
0
0
0
0
0
0
Clearing a bit in PQSPAR assigns the corresponding pin to general-purpose I/O; setting a bit assigns the pin to the QSPI. PQSPAR does not affect operation of the SCI.
MOTOROLA
D-30
REGISTER SUMMARY
MC68331
USER’S MANUAL
Table D-14 PQSPAR Pin Assignments
PQSPAR Field
PQSPA0
PQSPA1
PQSPA2
PQSPA3
PQSPA4
PQSPA5
PQSPA6
PQSPA7
PQSPAR Bit
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Pin Function
PQS0
MISO
PQS1
MOSI
PQS21
SCK
PQS3
PCS0/SS
PQS4
PCS1
PQS5
PCS2
PQS6
PCS3
PQS72
TXD
D
1. PQS2 is a digital I/O pin unless the SPI is enabled (SPE in SPCR1 set), in which case
it becomes SPI serial clock SCK.
2. PQS7 is a digital I/O pin unless the SCI transmitter is enabled (TE in SCCR1 = 1), in
which case it becomes SCI serial output TXD.
DDRQS determines whether pins are inputs or outputs. Clearing a bit makes the corresponding pin an input; setting a bit makes the pin an output. DDRQS affects both
QSPI function and I/O function.
Table D-15 Effect of DDRQS on PORTQS Pins
Pin
PQS0
PQS1
PQS2
PQS2
PQS3
PQS4
PQS5
PQS6
PQS7
MC68331
USER’S MANUAL
DDRQS Bit
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Pin Function
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
Digital Input
Digital Output
REGISTER SUMMARY
MOTOROLA
D-31
Table D-16 Effect of DDRQS on QSM Pin Function
QSM Pin
Mode
MISO
Master
DDRQS
Bit
DDQS0
Slave
MOSI
Master
DDQS1
Slave
SCK1
Master
DDQS2
Slave
PCS0/SS
D
Master
DDQS3
Slave
PCS[3:1]
Master
DDQS
[4:6]
Slave
TXD2
RXD
Transmit
Receive
DDQS7
None
Bit
State
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
X
NA
Pin Function
Serial Data Input to QSPI
Disables Data Input
Disables Data Output
Serial Data Output from QSPI
Disables Data Output
Serial Data Output from QSPI
Serial Data Input to QSPI
Disables Data Input
Disables Clock Output
Clock Output from QSPI
Clock Input to QSPI
Disables Clock Input
Assertion Causes Mode Fault
Chip-Select Output
QSPI Slave Select Input
Disables Select Input
Disables Chip-Select Output
Chip-Select Output
Inactive
Inactive
Serial Data Output from SCI
Serial Data Input to SCI
1. PQS2 is a digital I/O pin unless the SPI is enabled (SPE in SPCR1 set), in which case it becomes SPI
serial clock SCK.
2. PQS7 is a digital I/O pin unless the SCI transmitter is enabled (TE in SCCR1 =1), in which case it
becomes SCI serial output TXD.
DDRQS determines the direction of the TXD pin only when the SCI transmitter is disabled. When the SCI transmitter is enabled, the TXD pin is an output.
D.4.10 SPCR0 — QSPI Control Register 0
15
14
MSTR
WOMQ
13
10
BITS
$YFFC18
9
8
CPOL
CPHA
0
1
7
0
SP
RESET:
0
0
0
0
0
0
0
0
0
0
0
1
0
0
SPCR0 contains parameters for configuring the QSPI and enabling various modes of
operation. The CPU has read/write access to SPCR0, but the QSM has read access
only. SPCR0 must be initialized before QSPI operation begins. Writing a new value to
SPCR0 while the QSPI is enabled disrupts operation.
MSTR — Master/Slave Mode Select
0 = QSPI is a slave device.
1 = QSPI is system master.
MOTOROLA
D-32
REGISTER SUMMARY
MC68331
USER’S MANUAL
WOMQ — Wired-OR Mode for QSPI Pins
0 = Outputs have normal MOS drivers.
1 = Pins designated for output by DDRQS have open-drain drivers.
BITS — Bits Per Transfer
The BITS field determines the number of serial data bits transferred.
CPOL — Clock Polarity
0 = The inactive state value of SCK is logic level zero.
1 = The inactive state value of SCK is logic level one.
CPHA — Clock Phase
0 =Data captured on the leading edge of SCK and changed on the following edge
of SCK.
1 =Data is changed on the leading edge of SCK and captured on the following
edge of SCK.
SPBR — Serial Clock Baud Rate
QSPI baud rate is selected by writing a value from 2 to 255 into SPBR. Giving BR a
value of zero or one disables SCK (disable state determined by CPOL).
D.4.11 SPCR1 — QSPI Control Register 1
15
14
8
SPE
$YFFC1A
7
0
DSCKL
DTL
RESET:
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
SPCR1 enables the QSPI and specified transfer delays. The CPU32 has read/write
access to SPCR1, but the QSM has read access only to all bits but enable bit SPE.
SPCR1 must be written last during initialization because it contains SPE. Writing a
new value to SPCR1 while the QSPI is enabled disrupts operation.
SPE — QSPI Enable
0 = QSPI is disabled. QSPI pins can be used for general-purpose I/O.
1 = QSPI is enabled. Pins allocated by PQSPAR are controlled by the QSPI.
DSCKL — Delay before SCK
When the DSCK bit in command RAM is set, this field determines the length of delay
from PCS valid to SCK transition. PCS can be any of the four peripheral chip-select
pins.
DTL — Length of Delay after Transfer
When the DT bit in command RAM is set, this field determines the length of delay after
serial transfer.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-33
D
D.4.12 SPCR2 — QSPI Control Register 2
15
14
13
12
SPIFIE
WREN
WRTO
0
0
0
$YFFC1C
11
8
ENDQP
7
6
5
4
0
0
0
0
0
0
0
0
3
0
NEWQP
RESET:
0
0
0
0
0
0
0
0
0
0
SPCR2 contains QSPI queue pointers, wraparound mode control bits, and an interrupt
enable bit. The CPU32 has read/write access to SPCR2, but the QSM has read access only. SPCR2 is buffered. New SPCR2 values become effective only after completion of the current serial transfer. Rewriting NEWQP in SPCR2 causes execution to
restart at the designated location. SPCR2 reads return the value of the register, not
the buffer.
SPIFIE — SPI Finished Interrupt Enable
0 = QSPI interrupts disabled
1 = QSPI interrupts enabled
D
WREN — Wrap Enable
0 = Wraparound mode disabled
1 = Wraparound mode enabled
WRTO — Wrap To
0 = Wrap to pointer address $0
1 = Wrap to address in NEWQP
ENDQP — Ending Queue Pointer
This field contains the last QSPI queue address.
NEWQP — New Queue Pointer Value
This field contains the first QSPI queue address.
D.4.13 SPCR3 — QSPI Control Register 3
SPSR — QSPI Status Register
$YFFC1E
$YFFC1F
15
14
13
12
11
10
9
8
7
6
5
4
0
0
0
0
0
LOOPQ
HMIE
HALT
SPIF
MODF
HALTA
0
0
0
0
0
0
0
0
0
0
0
0
3
0
CPTQP
RESET:
0
0
0
0
0
SPCR3 contains the loop mode enable bit, halt and mode fault interrupt enables, and
the halt control bit. The CPU has read/write access to SPCR3, but the QSM has read
access only. SPCR3 must be initialized before QSPI operation begins. Writing a new
value to SPCR3 while the QSPI is enabled disrupts operation. SPSR contains information concerning the current serial transmission. Only the QSPI can set bits in SPSR.
The CPU reads SPSR to obtain QSPI status information and writes it to clear status
flags.
MOTOROLA
D-34
REGISTER SUMMARY
MC68331
USER’S MANUAL
LOOPQ — QSPI Loop Mode
0 = Feedback path disabled
1 = Feedback path enabled
HMIE — HALTA and MODF Interrupt Enable
0 = HALTA and MODF interrupts disabled
1 = HALTA and MODF interrupts enabled
HALT — Halt
0 = Halt not enabled
1 = Halt enabled
SPIF — QSPI Finished Flag
0 = QSPI not finished
1 = QSPI finished
MODF — Mode Fault Flag
0 =Normal operation
1 =Another SPI node requested to become the network SPI master while the QSPI
was enabled in master mode (SS input taken low).
HALTA — Halt Acknowledge Flag
0 = QSPI not halted
1 = QSPI halted
CPTQP — Completed Queue Pointer
CPTQP points to the last command executed. It is updated when the current command
is complete. When the first command in a queue is executing, CPTQP contains either
the reset value ($0) or a pointer to the last command completed in the previous queue.
D.4.14 RR[0:F] — Receive Data RAM
$YFFD00–$YFFD0E
Data received by the QSPI is stored in this segment. The CPU32 reads this segment
to retrieve data from the QSPI. Data stored in receive RAM is right-justified. Unused
bits in a receive queue entry are set to zero by the QSPI upon completion of the individual queue entry. The CPU can access the data using byte, word, or long-word addressing.
D.4.15 TR[0:F] — Transmit Data RAM
$YFFD20–$YFFD3E
Data that is to be transmitted by the QSPI is stored in this segment. The CPU32 normally writes one word of data into this segment for each queue command to be executed.
Information to be transmitted must be written to transmit data RAM in a right-justified
format. The QSPI cannot modify information in the transmit data RAM. The QSPI copies the information to its data serializer for transmission. Information remains in transmit RAM until overwritten.
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-35
D
D.4.16 CR[0:F] — Command RAM
$YFFD40–$YFFD4F
7
CONT
6
BITSE
5
DT
4
DSCK
3
PCS3
2
PCS2
1
PCS1
0
PCS0*
—
—
—
—
—
—
—
—
CONT
BITSE
DT
DSCK
PCS3
PCS2
PCS1
PCS0*
COMMAND CONTROL
PERIPHERAL CHIP SELECT
*The PCS0 bit represents the dual-function PCS0/SS.
Command RAM is used by the QSPI when in master mode. The CPU32 writes one
byte of control information to this segment for each QSPI command to be executed.
The QSPI cannot modify information in command RAM.
D
Command RAM consists of 16 bytes. Each byte is divided into two fields. The peripheral chip-select field enables peripherals for transfer. The command control field provides transfer options.
A maximum of 16 commands can be in the queue. Queue execution proceeds from
the address in NEWQP through the address in ENDQP (both of these fields are in
SPCR2).
CONT — Continue
0 = Control of chip selects returned to PORTQS after transfer is complete.
1 = Peripheral chip selects remain asserted after transfer is complete.
BITSE — Bits per Transfer Enable
0 = Eight bits
1 = Number of bits set in BITS field of SPCR0
DT — Delay after Transfer
The QSPI provides a variable delay at the end of serial transfer to facilitate interfacing
with peripherals that have a latency requirement. The delay between transfers is determined by the SPCR1 DTL field.
DSCK — PCS to SCK Delay
0 = PCS valid to SCK transition is one-half SCK.
1 = SPCR1 DSCKL field specifies delay from PCS valid to SCK.
PCS[3:0] — Peripheral Chip Select
Peripheral chip-select bits are used to select an external device for serial data transfer.
More than one peripheral chip select may be activated at a time, and more than one
peripheral chip can be connected to each PCS pin, provided proper fanout is observed. PCS0 shares a pin with the slave select (SS) signal, which initiates slave mode
serial transfer. If SS is taken low when the QSPI is in master mode, a mode fault occurs.
MOTOROLA
D-36
REGISTER SUMMARY
MC68331
USER’S MANUAL
Table D-17 MC68331 Module Address Map
(Assumes SIMCR MM = 1)
Access
S
S
S
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
Access
S
S
S
S
S
S
S
S
S/U
S/U
S/U
S
S/U
S/U
S/U
S
S
S
GPT
Address 15
8 7
0
$FFF900
GPT MODULE CONFIGURATION (GPTMCR)
$FFF902
(RESERVED FOR TEST)
$FFF904
INTERRUPT CONFIGURATION (ICR)
$FFF906
PGP DATA DIRECTION (DDRGP)
PGP DATA (PORTGP)
$FFF908
OC1 ACTION MASK (OC1M)
OC1 ACTION DATA (OC1D)
$FFF90A
TIMER COUNTER (TCNT)
$FFF90C
PA CONTROL (PACTL)
PA COUNTER (PACNT)
$FFF90E
INPUT CAPTURE 1 (TIC1)
$FFF910
INPUT CAPTURE 2 (TIC2)
$FFF912
INPUT CAPTURE 3 (TIC3)
$FFF914
OUTPUT COMPARE 1 (TOC1)
$FFF916
OUTPUT COMPARE 2 (TOC2)
$FFF918
OUTPUT COMPARE 3 (TOC3)
$FFF91A
OUTPUT COMPARE 4 (TOC4)
$FFF91C
INPUT CAPTURE 4/OUTPUT COMPARE 5 (TI4/O5)
$FFF91E
TIMER CONTROL 1 (TCTL1)
TIMER CONTROL 2 (TCTL2)
$FFF920
TIMER MASK 1 (TMSK1)
TIMER MASK 2 (TMSK2)
$FFF922
TIMER FLAG 1 (TFLG1)
TIMER FLAG 2 (TFLG2)
$FFF924
FORCE COMPARE (CFORC)
PWM CONTROL C (PWMC)
$FFF926
PWM CONTROL A (PWMA)
PWM CONTROL B (PWMB)
$FFF928
PWM COUNT (PWMCNT)
$FFF92A
PWMA BUFFER (PWMBUFA)
PWMB BUFFER (PWMBUFB)
$FFF92C
GPT PRESCALER (PRESCL)
$FFF92E –
NOT USED
$FFF93F
SIM
Address 15
8 7
0
$FFFA00
MODULE CONFIGURATION (SIMCR)
$FFFA02
FACTORY TEST (SIMTR)
$FFFA04
CLOCK SYNTHESIZER CONTROL (SYNCR)
$FFFA06
NOT USED
RESET STATUS (RSR)
$FFFA08
MODULE TEST E (SIMTRE)
$FFFA0A
NOT USED
NOT USED
$FFFA0C
NOT USED
NOT USED
$FFFA0E
NOT USED
NOT USED
$FFFA10
NOT USED
PORTE DATA (PORTE0)
$FFFA12
NOT USED
PORTE DATA (PORTE1)
$FFFA14
NOT USED
PORTE DATA DIRECTION (DDRE)
$FFFA16
NOT USED
PORTE PIN ASSIGNMENT (PEPAR)
$FFFA18
NOT USED
PORTF DATA (PORTF0)
$FFFA1A
NOT USED
PORTF DATA (PORTF1)
$FFFA1C
NOT USED
PORTF DATA DIRECTION (DDRF)
$FFFA1E
NOT USED
PORTF PIN ASSIGNMENT (PFPAR)
$FFFA20
NOT USED
SYSTEM PROTECTION CONTROL
(SYPCR)
$FFFA22
PERIODIC INTERRUPT CONTROL (PICR)
MC68331
USER’S MANUAL
REGISTER SUMMARY
MOTOROLA
D-37
D
Table D-17 MC68331 Module Address Map, (Continued)
(Assumes SIMCR MM = 1)
SIM (Continued)
Access
S
S
S
S
S
S
S
S
S
S
S
S/U
D
S/U
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
MOTOROLA
D-38
Address
$FFFA24
$FFFA26
$FFFA28
$FFFA2A
$FFFA2C
$FFFA2E
$FFFA30
$FFFA32
$FFFA34
$FFFA36
$FFFA38
$FFFA3A
$FFFA3C
$FFFA3E
$FFFA40
$FFFA42
$FFFA44
$FFFA46
$FFFA48
$FFFA4A
$FFFA4C
$FFFA4E
$FFFA50
$FFFA52
$FFFA54
$FFFA56
$FFFA58
$FFFA5A
$FFFA5C
$FFFA5E
$FFFA60
$FFFA62
$FFFA64
$FFFA66
$FFFA68
$FFFA6A
$FFFA6C
$FFFA6E
$FFFA70
$FFFA72
$FFFA74
$FFFA76
$FFFA78
$FFFA7A
$FFFA7C
$FFFA7E
15
8 7
PERIODIC INTERRUPT TIMING (PITR)
NOT USED
SOFTWARE SERVICE (SWSR)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
TEST MODULE MASTER SHIFT A (TSTMSRA)
TEST MODULE MASTER SHIFT B (TSTMSRB)
TEST MODULE SHIFT COUNT (TSTSC)
TEST MODULE REPETITION COUNTER (TSTRC)
TEST MODULE CONTROL (CREG)
TEST MODULE DISTRIBUTED (DREG)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
PORT C DATA (PORTC)
NOT USED
NOT USED
CHIP-SELECT PIN ASSIGNMENT (CSPAR0)
CHIP-SELECT PIN ASSIGNMENT (CSPAR1)
CHIP-SELECT BASE BOOT (CSBARBT)
CHIP-SELECT OPTION BOOT (CSORBT)
CHIP-SELECT BASE 0 (CSBAR0)
CHIP-SELECT OPTION 0 (CSOR0)
CHIP-SELECT BASE 1 (CSBAR1)
CHIP-SELECT OPTION 1 (CSOR1)
CHIP-SELECT BASE 2 (CSBAR2)
CHIP-SELECT OPTION 2 (CSOR2)
CHIP-SELECT BASE 3 (CSBAR3)
CHIP-SELECT OPTION 3 (CSOR3)
CHIP-SELECT BASE 4 (CSBAR4)
CHIP-SELECT OPTION 4 (CSOR4)
CHIP-SELECT BASE 5 (CSBAR5)
CHIP-SELECT OPTION 5 (CSOR5)
CHIP-SELECT BASE 6 (CSBAR6)
CHIP-SELECT OPTION 6 (CSOR6)
CHIP-SELECT BASE 7 (CSBAR7)
CHIP-SELECT OPTION 7 (CSOR7)
CHIP-SELECT BASE 8 (CSBAR8)
CHIP-SELECT OPTION 8 (CSOR8)
CHIP-SELECT BASE 9 (CSBAR9)
CHIP-SELECT OPTION 9 (CSOR9)
CHIP-SELECT BASE 10 (CSBAR10)
CHIP-SELECT OPTION 10 (CSOR10)
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
NOT USED
REGISTER SUMMARY
0
MC68331
USER’S MANUAL
Table D-17 MC68331 Module Address Map, (Continued)
(Assumes SIMCR MM = 1)
Access
S
S
S
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
S/U
QUEUE
RAM
S/U
QUEUE
RAM
S/U
QUEUE
RAM
QSM
Address 15
8 7
$FFFC00
QSM MODULE CONFIGURATION (QSMCR)
$FFFC02
QSM TEST (QTEST)
$FFFC04
QSM INTERRUPT LEVEL (QILR)
QSM INTERRUPT VECTOR (QIVR)
$FFFC06
NOT USED
$FFFC08
SCI CONTROL 0 (SCCR0)
$FFFC0A
SCI CONTROL 1 (SCCR1)
$FFFC0C
SCI STATUS (SCSR)
$FFFC0E
SCI DATA (SCDR)
$FFFC10
NOT USED
$FFFC12
NOT USED
$FFFC14
NOT USED
PQS DATA (PORTQS)
$FFFC16
PQS PIN ASSIGNMENT (PQSPAR)
PQS DATA DIRECTION (DDRQS)
$FFFC18
SPI CONTROL 0 (SPCR0)
$FFFC1A
SPI CONTROL 1 (SPCR1)
$FFFC1C
SPI CONTROL 2 (SPCR2)
$FFFC1E
SPI CONTROL 3 (SPCR3)
SPI STATUS (SPSR)
$FFFC20–
NOT USED
$FFFCFF
$FFFD00–
RECEIVE RAM (RR[0:F])
$FFFD1F
$FFFD20–
$FFFD3F
TRANSMIT RAM (TR[0:F])
$FFFD40–
$FFFD4F
COMMAND RAM (CR[0:F])
MC68331
USER’S MANUAL
REGISTER SUMMARY
0
MOTOROLA
D-39
D
Table D-18 Register Bit and Field Mnemonics
D
Mnemonic
ADDR[23:11]
AVEC
BITS
BITSE
BLKSZ
BME
BMT[1:0]
BYTE
C
CONT
CPHA
CPOL
CPROUT
CPR[2:0]
CPTQP
CSPA0[6:1]
CSPA1[4:0]
CSBOOT
DDE[7:0]
DDF[7:0]
DDRGP[7:0]
DDQS[7:0]
DSACK
DSCK
DSCKL
DT
DTL
EDGE[4:1]
EDIV
ENDQP
EXOFF
EXT
F1A
F1B
FE
FOC[5:1]
FPWMA
FPWMB
FRZBM
FRZSW
FRZ[1:0]
FRZ[1:0]
HALT
HALTA
HLT
HME
HMIE
MOTOROLA
D-40
Name
Base Address
Autovector Enable
Bits Per Transfer
Bits Per Transfer Enable
Block Size
Bus Monitor External Enable
Bus Monitor Timing
Upper/Lower Byte Option
Carry Flag
Continue
Clock Phase
Clock Polarity
Capture/Compare Clock Output Enable
Timer Prescaler/PCLK Select Field
Completed Queue Pointer
Chip-Select [6:1]
Chip-Select [4:0]
Boot ROM Chip Select
Port E Data Direction
Port F Data Direction
Port GP Data Direction
Port QS Data Direction
Data Strobe Acknowledge
PCS to SCK Delay
Delay Before SCK
Delay After Transfer
Length of Delay After Transfer
Input Capture Edge Control
ECLK Divide Rate
Ending Queue Pointer
External Clock Off
External Reset
Force Logic Level One on PWMA
Force Logic Level One on PWMB
Framing Error
Force Output Compare
Force PWMA Value
Force PWMB Value
Freeze Bus Monitor Enable
Freeze Software Enable
Freeze Response
Freeze1
Halt
Halt Acknowledge Flag
Halt Monitor Reset
Halt Monitor Enable
HALTA and MODF Interrupt Enable
REGISTER SUMMARY
Register Location
CSBAR[0:10], CSBARBT
CSOR[0:10], CSORBT
SPCR0
CR[0:F]
CSBAR[0:10], CSBARBT
SYPCR
SYPCR
CSOR[0:10], CSORBT
CCR
CR[0:F]
SPCR0
SPCR0
TMSK2
TMSK2
SPSR
CSPAR0
CSPAR1
CSPAR0
DDRE
DDRF
DDRGP
DDRQS
CSOR[0:10], CSORBT
CR[0:F]
SPCR1
CR[0:F]
SPCR1
TCTL2
SYNCR
SPCR2
SIMCR
RSR
PWMC
PWMC
SCSR
CFORC
CFORC
CFORC
SIMCR
SIMCR
GPTMCR
QSMCR
SPCR3
SPSR
RSR
SYPCR
SPCR3
MC68331
USER’S MANUAL
Table D-18 Register Bit and Field Mnemonics, (Continued)
Mnemonic
I4/O5
I4/O5F
I4/O5I
IARB[3:0]
ICF[3:1]
ICI[3:1]
IDLE
ILIE
ILQSPI
ILSCI
ILT
INCP
INTV[7:0]
IP[2:0]
IPA
IPL
IVBA
LOC
LOOPQ
LOOPS
M
MM
MODE
MODF
MSTR
N
NEWQP
NF
OC1D[5:1]
OC1M[5:1]
OCF[4:1]
OCI[4:1]
OM[5:2]
OL[5:2]
OR
PACLK[1:0]
PACNT
PAEN
PAIF
PAII
PAIS
PAMOD
PAOVF
PAOVI
PC[6:0]
MC68331
USER’S MANUAL
Name
Input Capture 4/Output Compare 5
Input Capture 4/Output Compare 5
Flag
I4/O5 Interrupt Enable
Interrupt Arbitration
Input Capture Flags
Input Capture Interrupt Enable
Idle-Line Detected
Idle-Line Interrupt Enable
Interrupt Level for QSPI
Interrupt Level for SCI
Idle-Line Detect Type
Increment Prescaler
Interrupt Vector Number
Interrupt Priority Mask
Interrupt Priority Adjust
Interrupt Priority Level
Interrupt Vector Base Address
Loss of Clock Reset
QSPI Loop Mode
Loop Mode
Mode Select
Module Mapping
Asynchronous/Synchronous Mode
Mode Fault Flag
Master/Slave Mode Select
Negative Flag
New Queue Pointer Value
Noise Error
OC1 Data
OC1 Mask
Output Compare Flags
Output Compare Interrupt Enable
Output Compare Mode Bits
Output Compare Level Bits
Overrun Error
Pulse Accumulator Clock Select
(Gated Mode)
Pulse Accumulator Counter
Pulse Accumulator Enable
Pulse Accumulator Flag
Pulse Accumulator Input Interrupt
Enable
PAI Pin State (Read Only)
Pulse Accumulator Mode
Pulse Accumulator Overflow Flag
Pulse Accumulator Overflow Interrupt
Enable
Port C Data
REGISTER SUMMARY
Register Location
PACNT
TFLG1
TMSK1
GPTMCR, QSMCR, SIMCR
TFLG1
TMSK1
SCSR
SCCR1
QILR
QILR
SCCR1
GPTMCR
QIVR
SR
ICR
CSOR[0:10], CSORBT, ICR
ICR
RSR
SPCR3
SCCR1
SCCR1
SIMCR
CSOR[0:10], CSORBT
SPSR
SPCR0
CCR
SPCR2
SCSR
OC1D
OC1M
TFLG1
TMSK1
TCTL1
TCTL1
SCSR
PACNT
PACNT
PACNT
TFLG2
TMSK2
PACNT
PACNT
TFLG2
TMSK2
PORTC
MOTOROLA
D-41
D
Table D-18 Register Bit and Field Mnemonics, (Continued)
D
Mnemonic
PCLKS
PCS[3:0]
PE
PE[7:0]
PEDGE
PEPA[7:0]
PF
PF[7:0]
PFPA[7:0]
PORTGP[7:0]
PIRQL[2:0]
PITM[7:0]
PIV[7:0]
POW
PPROUT
PPR[2:0]
PQS[7:0]
PQSPA[6:0]
PT
PTP
RAF
RDRF
RE
RIE
RR[0:F]
RSTEN
R/W
RWU
R[8:0]/T[8:0]
S
SBK
SCBR
SFA
SFB
SHEN[1:0]
SLIMP
SLOCK
SLVEN
SPACE
SPBR
SPE
SPIF
SPIFIE
STEXT
STOP
STOP
STOPP
STRB
MOTOROLA
D-42
Name
PCLK Pin State (Read Only)
Peripheral Chip Select
Parity Enable
Port E Data
Pulse Accumulator Edge Control
Port E Pin Assignment
Parity Error
Port F Data
Port F Pin Assignment
Port GP Data
Periodic Interrupt Request Level
Periodic Interrupt Timing Modulus
Periodic Interrupt Vector
Power-Up Reset
PWM Clock Output Enable
PWM Prescaler/PCLK Select
Port QS Data
Port QS Pin Assignment
Parity Type
Periodic Timer Prescaler Control
Receiver Active
Receive Data Register Full
Receiver Enable
Receiver Interrupt Enable
Receive Data RAM
Reset Enable
Read/Write
Receiver Wakeup
SCI Receive/Transmit Data
Supervisor/User State
Send Break
SCI Baud Rate
PWMA Slow/Fast Select
PWMB Slow/Fast Select
Show Cycle Enable
LIMP Mode
Synthesizer Lock
Factory Test Mode Enabled
Address Space Select
Serial Clock Baud Rate
QSPI Enable
QSPI Finished Flag
SPI Finished Interrupt Enable
Stop Mode External Clock
Stop Clocks
Stop Enable
Stop Prescaler
Address Strobe/Data Strobe
REGISTER SUMMARY
Register Location
PACNT
CR[0:F]
SCCR1
PORTE
PACNT
PEPAR
SCSR
PORTF
PFPAR
PORTGP
PICR
PITR
PICR
RSR
PWMC
PWMC
PORTQS
PQSPAR
SCCR1
PITR
SCSR
SCSR
SCCR1
SCCR1
QSPI RAM
SYNCR
CSOR[0:10], CSORBT
SCCR1
SCDR
SR
SCCR1
SCCR0
PWMC
PWMC
SIMCR
SYNCR
SYNCR
SIMCR
CSOR[0:10], CSORBT
SPCR0
SPCR1
SPSR
SPCR2
SYNCR
GPTMCR
QSMCR
GPTMCR
CSOR[0:10], CSORBT
MC68331
USER’S MANUAL
Table D-18 Register Bit and Field Mnemonics, (Continued)
Mnemonic
STSIM
SUPV
SW
SWE
SWP
SWT[1:0]
SYS
T[1:0]
TC
TCIE
TDRE
TE
TIE
TOF
TOI
TR[0:F]
TST
V
W
WAKE
WOMQ
WOMS
WREN
WRTO
X
X
Y[5:0]
Z
MC68331
USER’S MANUAL
Name
Stop Mode System Integration Clock
Supervisor/Unrestricted
Software Watchdog Reset
Software Watchdog Enable
Software Watchdog Prescale
Software Watchdog Timing
System Reset
Trace Enable
Transmit Complete
Transmit Complete Interrupt Enable
Transmit Data Register Empty
Transmitter Enable
Transmit Interrupt Enable
Timer Overflow Flag
Timer Overflow Interrupt Enable
Transmit Data RAM
Test Submodule Reset
Overflow Flag
Frequency Control (VCO)
Wakeup by Address Mark
Wired-OR Mode for QSPI Pins
Wired-OR Mode for SCI Pins
Wrap Enable
Wrap To
Extend
Frequency Control Bit (Prescale)
Frequency Control (Counter)
Zero Flag
REGISTER SUMMARY
Register Location
SYNCR
GPTMCR, QSMCR, SIMCR
RSR
SYPCR
SYPCR
SYPCR
RSR
SR
SCSR
SCCR1
SCSR
SCCR1
SCCR1
TFLG2
TMSK2
QSPI RAM
RSR
CCR
SYNCR
SCCR1
SPCR0
SCCR1
SPCR2
SPCR2
CCR
SYNCR
SYNCR
CCR
MOTOROLA
D-43
D
D
MOTOROLA
D-44
REGISTER SUMMARY
MC68331
USER’S MANUAL
INDEX
MC68331
USER’S MANUAL
INDEX
MOTOROLA
I-1
MOTOROLA
I-2
INDEX
MC68331
USER’S MANUAL