- •CONTENTS
- •FIGURES
- •TABLES
- •1.1 Manual Contents
- •1.2 Notational Conventions and Terminology
- •1.3 Related Documents
- •1.4 Application Support Services
- •2.1 Typical Applications
- •2.2 Microcontroller Features
- •2.3 Functional Overview
- •2.3.1 Core
- •2.3.1.3 Register File
- •2.3.2 Memory Controller
- •2.4 Internal Timing
- •2.4.1 Clock and Power Management Logic
- •2.4.2 Internal Timing
- •2.4.2.1 Clock Failure Detection Logic
- •2.4.2.2 External Timing
- •2.4.2.3 Power Management Options
- •2.4.3 Internal Memory
- •2.4.4 Serial Debug Unit
- •2.4.5 Interrupt Service
- •2.5 Internal Peripherals
- •2.5.1 I/O Ports
- •2.5.2 Serial I/O (SIO) Port
- •2.5.3 Synchronous Serial I/O (SSIO) Port
- •2.5.4 Event Processor Array (EPA) and Timer/Counters
- •2.5.7 Stack Overflow Module
- •2.5.8 Watchdog Timer
- •2.6 Special Operating Modes
- •2.7 Chip Configuration Registers
- •3.1 Overview of the Instruction Set
- •3.1.1 BIT Operands
- •3.1.2 BYTE Operands
- •3.1.4 WORD Operands
- •3.1.5 INTEGER Operands
- •3.1.9 Converting Operands
- •3.1.10 Conditional Jumps
- •3.1.11 Floating-Point Operations
- •3.1.12 Extended Instructions
- •3.2 Addressing Modes
- •3.2.1 Direct Addressing
- •3.2.2 Immediate Addressing
- •3.2.3 Indirect Addressing
- •3.2.3.1 Extended Indirect Addressing
- •3.2.3.2 Indirect Addressing with Autoincrement
- •3.2.3.3 Extended Indirect Addressing with Autoincrement
- •3.2.3.4 Indirect Addressing with the Stack Pointer
- •3.2.4 Indexed Addressing
- •3.2.4.3 Extended Indexed Addressing
- •3.2.4.4 Zero-indexed Addressing
- •3.3 Considerations for Crossing Page Boundaries
- •3.4 Software Protection Features and Guidelines
- •4.1 Memory Map Overview
- •4.2 Memory Partitions
- •4.2.1 External Memory
- •4.2.2 Internal ROM
- •4.2.2.1 Program Memory in Page FFH
- •4.2.2.3 Reserved Memory Locations
- •4.2.2.4 Interrupt, PIH, and PTS Vectors
- •4.2.2.5 Chip Configuration Bytes
- •4.2.3 Internal RAM (Code RAM)
- •4.2.4.2 Peripheral SFRs
- •4.2.5 Register File
- •4.2.5.2 Stack Pointer (SP)
- •4.3 Windowing
- •4.3.1 Selecting a Window
- •4.3.2 Addressing a Location Through a Window
- •4.3.2.4 Unsupported Locations Windowing Example
- •4.3.2.5 Using the Linker Locator to Set Up a Window
- •4.3.3 Windowing and Addressing Modes
- •4.4 Controlling Read Access to the Internal ROM
- •4.5 Remapping Internal ROM
- •5.1 Functional Overview
- •5.2 Stack Operations
- •5.3 Stack Overflow Module Registers
- •5.4 Programming the Stack Overflow Module
- •5.4.1 Initializing the Stack Pointer
- •5.4.2 Enabling the Stack Overflow Module and Specifying Stack Boundaries
- •6.1 Overview of the Interrupt Control Circuitry
- •6.2 Interrupt Signals and Registers
- •6.3 Interrupt Sources, Priorities, and Vector Addresses
- •6.3.1 PIH Interrupt Sources, Priorities, and Vector Addresses
- •6.3.1.1 Using Software to Provide the Vector Address
- •6.3.1.2 Providing the Vector Address in Response to a CPU Request
- •6.3.2 Special Interrupts
- •6.3.2.1 Unimplemented Opcode
- •6.3.2.2 Software Trap
- •6.3.2.4 Stack Overflow
- •6.3.3 External Interrupt Signal
- •6.3.4 Shared Interrupt Requests
- •6.4 Interrupt Latency
- •6.4.1 Situations that Increase Interrupt Latency
- •6.4.2 Calculating Latency
- •6.4.2.2 PTS Interrupt Latency
- •6.5 Programming the Interrupts
- •6.5.1 Modifying Interrupt Priorities
- •6.5.2 Determining the Source of an Interrupt
- •6.6 Initializing the PTS Control Blocks
- •6.6.1 Specifying the PTS Count
- •6.6.2 Selecting the PTS Mode
- •6.6.3 Single Transfer Mode
- •6.6.4 Block Transfer Mode
- •6.6.5 Dummy Mode
- •7.1 I/O Ports Overview
- •7.2 Configuring the Port Pins
- •7.2.2 Configuring Ports 3 and 4 (Address/Data Bus)
- •7.2.3 Port Configuration Example
- •7.3.1 Address and Data Signals (Ports 3, 4, and EPORT)
- •7.3.1.1 EPORT Status During Reset, CCB Fetch, Idle, Powerdown, and Hold
- •7.3.5 External Interrupt Signal (Port 2)
- •7.3.6 PWM Signals (Port 11)
- •7.3.7 Serial I/O Port Signals (Ports 2 and 7)
- •7.3.8 Special Operating Mode Signal (Port 5 Pin 7)
- •7.3.9 Synchronous Serial I/O Port Signals (Port 10)
- •7.4 I/O Port Internal Structures
- •7.4.3 Internal Structure for Ports 3 and 4 (Address/Data Bus)
- •8.1 Serial I/O (SIO) Port Functional Overview
- •8.2 Serial I/O Port Signals and Registers
- •8.3 Serial Port Modes
- •8.3.1 Synchronous Mode (Mode 0)
- •8.3.2 Asynchronous Modes (Modes 1, 2, and 3)
- •8.3.2.1 Mode 1
- •8.3.2.2 Mode 2
- •8.3.2.3 Mode 3
- •8.3.2.4 Multiprocessor Communications
- •8.4 Programming the Serial Port
- •8.4.1 Configuring the Serial Port Pins
- •8.4.2 Programming the Control Register
- •8.4.3 Programming the Baud Rate and Clock Source
- •8.4.4 Enabling the Serial Port Interrupts
- •8.4.5 Determining Serial Port Status
- •CHAPTER 9 Synchronous Serial I/O (SSIO) Port
- •9.1 SSIO Port Overview
- •9.1.1 Standard Mode
- •9.1.2 Duplex Mode
- •9.2 SSIO pORT sIGNALS AND rEGISTERS
- •9.3 ssio Port Operation
- •9.3.1 Transmitting and Receiving Data
- •9.3.1.1 Normal Transfers (All Modes)
- •9.3.1.2 Handshaking Transfers (Standard Mode Only)
- •9.4 Programming the SSIO Port
- •9.4.1 Configuring the SSIO Port Pins
- •9.4.2 Configuring the SSIO Registers
- •9.4.2.1 The SSIO Baud (SSIO_BAUD) Register
- •9.4.2.3 The SSIO 0 Clock (SSIO0_CLK) Register
- •9.4.2.4 The SSIO 1 Clock (SSIO1_CLK) Register
- •9.4.3 Enabling the SSIO Interrupts
- •9.5 Programming Considerations
- •9.5.2 Standard Mode Considerations
- •9.5.3 Duplex Mode Considerations
- •10.1 PWM FUNCTIONAL OVERVIEW
- •10.2 PWM Signals and Registers
- •10.3 pwm operation
- •10.4 Programming the Frequency and Period
- •10.5 Programming the Duty Cycle
- •10.5.1 Sample Calculations
- •10.5.2 Reading the Current Value of the Down-counter
- •10.5.3 Enabling the PWM Outputs
- •10.5.4 Generating Analog Outputs
- •11.1 EPA Functional Overview
- •11.2 EPA and Timer/Counter Signals and Registers
- •11.3 Timer/Counter Functional Overview
- •11.3.1 Timer Multiplexing on the Time Bus
- •11.4 EPA Channel Functional Overview
- •11.4.1 Operating in Input Capture Mode
- •11.4.2 Operating in Output Compare Mode
- •11.4.3 Operating in Compare Mode with the Output/Simulcapture Channels
- •11.4.4 Generating a 32-bit Time Value
- •11.4.5 Controlling a Pair of Adjacent Pins
- •11.5 Programming the EPA and Timer/Counters
- •11.5.1 Configuring the EPA and Timer/Counter Signals
- •11.5.2 Programming the Timers
- •11.5.3 Programming the Capture/Compare Channels
- •11.5.4 Programming the Compare-only (Output/Simulcapture) Channels
- •11.6 Enabling the EPA Interrupts
- •11.7 Determining Event Status
- •CHAPTER 12 Analog-to-digital (A/D) Converter
- •12.1 A/D Converter Functional Overview
- •12.2 A/D Converter Signals and Registers
- •12.3 A/D Converter Operation
- •12.4 Programming the A/D Converter
- •12.4.1 Programming the A/D Test Register
- •12.4.2 Programming the A/D Result Register (for Threshold Detection Only)
- •12.4.3 Programming the A/D Time Register
- •12.4.4 Programming the A/D Command Register
- •12.4.5 Programming the A/D Scan Register
- •12.4.6 Enabling the A/D Interrupt
- •12.5 Determining A/D Status and Conversion Results
- •12.6 Design Considerations
- •12.6.1 Designing External Interface Circuitry
- •12.6.1.1 Minimizing the Effect of High Input Source Resistance
- •12.6.1.2 Suggested A/D Input Circuit
- •12.6.1.3 Analog Ground and Reference Voltages
- •12.6.2 Understanding A/D Conversion Errors
- •CHAPTER 13 Minimum Hardware Considerations
- •13.1 Minimum Connections
- •13.1.1 Unused Inputs
- •13.1.2 I/O Port Pin Connections
- •13.2 Applying and Removing Power
- •13.3 Noise Protection Tips
- •13.4 The On-chip Oscillator Circuitry
- •13.5 Using an External Clock Source
- •13.6 Resetting the Microcontroller
- •13.6.1 Generating an External Reset
- •13.6.2 Issuing the Reset (RST) Instruction
- •13.6.3 Issuing an Illegal IDLPD Key Operand
- •13.6.4 Enabling the Watchdog Timer
- •13.6.5 Detecting Clock Failure
- •13.7 Identifying the Reset Source
- •14.1 Special Operating Mode Signals and Registers
- •14.2 Reducing Power Consumption
- •14.3 Idle Mode
- •14.3.1 Enabling and Disabling Idle Mode
- •14.3.2 Entering and Exiting Idle Mode
- •14.4 Powerdown Mode
- •14.4.1 Enabling and Disabling Powerdown Mode
- •14.4.2 Entering Powerdown Mode
- •14.4.3 Exiting Powerdown Mode
- •14.4.3.1 Generating a Hardware Reset
- •14.4.3.2 Asserting the External Interrupt Signal
- •14.4.3.3 Selecting an External Capacitor
- •14.5 ONCE Mode
- •CHAPTER 15 Interfacing with External Memory
- •15.1 Internal and External Addresses
- •15.2 External Memory Interface Signals and Registers
- •15.3 The Chip-select Unit
- •15.3.1 Defining Chip-select Address Ranges
- •15.3.2 Controlling Bus Parameters
- •15.3.3 Chip-select Unit Initial Conditions
- •15.3.4 Programming the Chip-select Registers
- •15.3.5 Example of a Chip-select Setup
- •15.4 Chip Configuration Registers and Chip Configuration Bytes
- •15.5 Bus Width and Multiplexing
- •15.5.1 A 16-bit Example System
- •15.5.2 16-bit Bus Timings
- •15.5.3 8-bit Bus Timings
- •15.5.4 Comparison of Multiplexed and Demultiplexed Buses
- •15.6 Wait States (Ready Control)
- •15.7 Bus-hold Protocol
- •15.7.1 Enabling the Bus-hold Protocol
- •15.7.2 Disabling the Bus-hold Protocol
- •15.7.3 Hold Latency
- •15.7.4 Regaining Bus Control
- •15.8 Write-control Modes
- •15.9 System Bus AC Timing Specifications
- •15.9.1 Deferred Bus-cycle Mode
- •15.9.2 Explanation of AC Symbols
- •15.9.3 AC Timing Definitions
- •16.1 Serial Debug Unit (SDU) Functional Overview
- •16.2 SDU Signals and Registers
- •16.3 SDU Operation
- •16.3.1 SDU State Machine
- •16.3.2 Code RAM Access State Machine
- •16.3.3 Minimizing Latency
- •16.4 Code RAM Access
- •16.4.1 Code RAM Data Transfer
- •16.4.2 Code RAM Access Instructions
- •16.4.3 Code RAM Data Transfer Example
- •16.5 SDU Interface Connector
- •17.1 Signals and Registers
- •17.2 Memory Protection Options
- •17.3 Entering Test-ROM Routines
- •17.3.1 Power-up and Power-down Sequences
- •17.4 ROM-dump Routine and Circuit
- •17.5 Serial Port Mode Routine
- •17.5.1 Serial Port RISM
- •17.5.2 Serial Port Mode Circuit
- •17.6 SDU RISM Execution Routine
- •17.6.1 SDU RISM Data Transfer
- •17.6.1.1 SDU RISM Data Transfer Before
- •17.6.1.2 SDU RISM Data Transfer After
- •17.6.2 SDU RISM Execution Circuit
- •17.7 RISM Command Descriptions
- •17.8 Executing Programs from Register RAM
- •17.9 RISM Command Examples
- •17.9.1 Serial Port Mode RISM Read Command Example
- •17.9.2 Serial Port Mode RISM Write Command Example
- •17.9.3 SDU RISM Execution Write Command Example
- •17.9.4 SDU RISM Execution Go Command Example
- •B.1 Functional Groupings of Signals
- •B.2 Signal Descriptions
- •B.3 Default Conditions
8XC196EA USER’S MANUAL
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
3 |
2 |
1 |
|
|
|
39 |
|
|
|
|
|
|
|
|
|
||
Execution |
|
|
Ending |
|
|
"NORML" |
End |
Vector to PTS |
|
PTS |
PTS |
||||||||
|
|
|
|
|
|||||||||||||||
|
Instruction |
|
|
"NORML" |
|
Control Block |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interrupt |
|
|
|
|
|
|
|
|
|
|
|
|
|
PTS Interrupt Routine |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interrupt Pending Bit |
|
|
Set |
|
|
|
|
|
|
|
|
|
Cleared |
|
|
|
|
||
Response Time |
|
|
|
|
|
Latency Time |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
43 State Times |
|
|
|
|
|
|
|
|
A0142-02 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
Figure 6-7. PTS Interrupt Response Time |
|
|
|
|
||||||||||||
|
|
|
Table 6-6. Execution Times for PTS Cycles |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
PTS Mode |
|
|
|
|
|
|
|
Execution Time (in State Times) |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single transfer mode |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
register/register† |
|
|
|
|
|
|
|
|
22 per byte or word transfer + 1 |
|
|
|
|
||||||
memory/register† |
|
|
|
|
|
|
|
|
25 per byte or word transfer + 1 |
|
|
|
|
||||||
memory/memory† |
|
|
|
|
|
|
|
|
28 per byte or word transfer + 1 |
|
|
|
|
||||||
Block transfer mode |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
register/register† |
|
|
|
|
|
|
|
|
14 + 8 per byte or word transfer (1 minimum) |
||||||||||
memory/register† |
|
|
|
|
|
|
|
|
17 + 8 per byte or word transfer (1 minimum) |
||||||||||
memory/memory† |
|
|
|
|
|
|
|
|
20 + 8 per byte or word transfer (1 minimum) |
||||||||||
Dummy mode |
|
|
|
|
|
|
|
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Missed-event mode |
|
|
|
|
|
|
|
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
†Register indicates an access to the register file or a peripheral SFR. Memory indicates an access to a memory-mapped register, I/O, or memory. See Table 6-4 on page 6-7 for address information.
6.5PROGRAMMING THE INTERRUPTS
Table 6-7 describes how to program each maskable interrupt.
6-18
STANDARD AND PTS INTERRUPTS
Table 6-7. Programming the Interrupts
To perform this function: |
Your code must: |
|
|
Enable interrupt controller service for the |
Execute the EI instruction. |
maskable interrupts |
|
Disable interrupt controller service for the |
Execute the DI instruction. |
maskable interrupts, including the end- |
|
of-PTS interrupts |
|
Enable PTS service for the maskable |
Execute the EPTS instruction. |
interrupts (Notes 1, 2) |
|
Disable PTS service for the maskable |
Execute the DPTS instruction. |
interrupts |
|
Disable an individual maskable interrupt |
Clear the interrupt’s mask bit in the INT_MASK or INT_MASK1 |
|
register (Figure 6-8 or 6-9). |
Disable a PIH interrupt source |
Clear the interrupt’s mask bit in the PIHx_INT_MASK register |
|
(Figure 6-10 or 6-11). |
Enable a maskable interrupt for standard |
Set the interrupt’s mask bit in the INT_MASK or INT_MASK1 |
interrupt service (Note 3) |
register (Figure 6-8 or 6-9) and clear its PTS select bit (Figure |
|
6-12). |
Enable a maskable interrupt for PTS |
Set the interrupt’s mask bit in the INT_MASK or INT_MASK1 |
interrupt service |
register (Figure 6-8 or 6-9) and set its PTS select bit (Figure |
|
6-12). |
Enable a PIH interrupt for standard |
First enable the PIH interrupt source and select standard |
interrupt service |
interrupt service: |
|
Set the interrupt’s mask bit in the PIHx_INT_MASK register |
|
(Figure 6-10 or 6-11) and clear its PTS select bit in the |
|
PIHx_PTSSEL register (Figure 6-12). |
|
Then enable the PIHx_INT interrupt request: |
|
Set its mask bit in the INT_MASK or INT_MASK1 register |
|
(Figure 6-8 or 6-9) and clear its PTS select bit (Figure 6-12). |
Enable a PIH interrupt for PTS interrupt |
First enable the PIH interrupt source and select PTS interrupt |
service |
service: |
|
Set the interrupt’s mask bit in the PIHx_INT_MASK register |
|
(Figure 6-10 or 6-11) and set its PTS select bit in the |
|
PIHx_PTSSEL register (Figure 6-12). |
|
Then enable the PIHx_PTS interrupt: |
|
Set its mask bit in the INT_MASK or INT_MASK1 register |
|
(Figure 6-8 or 6-9) and set its PTS select bit (Figure 6-12). |
NOTES:
1.When you assign an interrupt to the PTS, you must set up a PTS control block (PTSCB) for each interrupt source (see “Initializing the PTS Control Blocks” on page 6-30).
2.PTS service is not useful for shared interrupts because the PTS cannot readily determine the source of these interrupts.
3.Never select standard interrupt service for the PIHx_PTS interrupt. If you do, the interrupt controller will try to service the PIHx_PTS interrupt. If no normal interrupts are pending in the PIH, the PIH responds with a dummy interrupt and does not clear the PTS interrupt pending bit. The PIH will continue to request service, causing an infinite loop.
6-19
8XC196EA USER’S MANUAL
INT_MASK |
Address: |
0008H |
|
Reset State: |
00H |
The interrupt mask (INT_MASK) register enables or disables (masks) individual interrupt requests. (The EI and DI instructions enable and disable servicing of all maskable interrupts.) INT_MASK is the low byte of the processor status word (PSW). PUSHF or PUSHA saves the contents of this register onto the stack and then clears this register. Interrupt calls cannot occur immediately following a push instruction. POPF or POPA restores it.
7 |
|
|
|
|
|
|
|
|
|
0 |
SDU |
EXTINT |
|
RI1 |
TI1 |
|
|
AD |
EPAx_OVR |
RI0 |
TI0 |
|
|
|
|
|
|
|
|
|
|
|
Bit |
|
|
|
|
|
Function |
|
|
|
|
Number |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
7:0 |
Setting a bit enables the corresponding interrupt. |
|
|
|
||||||
|
Bit Mnemonic Interrupt Description |
|
|
|
|
|||||
|
SDU |
Serial Debug Unit lnterrupt |
|
|
|
|||||
|
EXTINT |
External Interrupt Pin |
|
|
|
|
||||
|
RI1 |
SIO1 Receive |
|
|
|
|
||||
|
TI1 |
SIO1 Transmit |
|
|
|
|
||||
|
AD |
A/D Conversion Complete |
|
|
|
|||||
|
EPAx_OVR |
EPA Channel 3–16 Overrun |
|
|
|
|||||
|
RI0 |
SIO0 Receive |
|
|
|
|
||||
|
TI0 |
SIO0 Transmit |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
Figure 6-8. Interrupt Mask (INT_MASK) Register
6-20
STANDARD AND PTS INTERRUPTS
INT_MASK1 |
Address: |
0013H |
|
Reset State: |
00H |
The interrupt mask 1 (INT_MASK1) register enables or disables (masks) individual interrupt requests. (The EI and DI instructions enable and disable servicing of all maskable interrupts.) INT_MASK1 can be read from or written to as a byte register. PUSHA saves this register on the stack and POPA restores it.
|
7 |
|
|
|
|
|
|
|
|
|
0 |
|
|
NMI |
STACK |
|
PIH0_PTS |
PIH0_INT |
|
PIH1_PTS |
PIH1_INT |
SSIO1 |
SSIO0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bit |
|
|
|
|
|
|
Function |
|
|
|
|
|
Number |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
7:0 |
Setting a bit enables the corresponding interrupt. |
|
|
|
|
||||||
|
|
Bit Mnemonic |
Interrupt Description |
|
|
|
|
|||||
|
|
NMI† |
|
Nonmaskable Interrupt |
|
|
|
|
||||
|
|
STACK† |
|
Stack Overflow Error |
|
|
|
|
||||
|
|
PIH0_PTS |
|
PIH0 PTS Service Request |
|
|
|
|
||||
|
|
PIH0_INT |
|
PIH0 Interrupt Request |
|
|
|
|
||||
|
|
PIH1_PTS |
|
PIH1 PTS Service Request |
|
|
|
|
||||
|
|
PIH1_INT |
|
PIH1 Interrupt Request |
|
|
|
|
||||
|
|
SSIO1 |
|
SSIO1 Transfer |
|
|
|
|
|
|
||
|
|
SSIO0 |
|
SSIO0 Transfer |
|
|
|
|
|
|
||
|
|
† The NMI and stack overflow interrupts are always enabled. These nonfunctional mask |
|
|||||||||
|
|
bits exist for design symmetry with the INT_PEND1 register. Always write zeros to these |
|
|||||||||
|
|
bits. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
||||||||
|
|
Figure 6-9. Interrupt Mask 1 (INT_MASK1) Register |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
PIH0_INT_MASK |
|
|
|
|
|
|
Address: |
1E98H |
|
||
|
|
|
|
|
|
|
|
|
Reset State: |
0000H |
|
The PIH0 interrupt mask (PIH0_INT_MASK) register enables or disables (masks) individual interrupt requests to peripheral interrupt handler 0. (The EI and DI instructions enable and disable servicing of all maskable interrupts.)
15 |
|
|
|
|
|
|
|
|
8 |
EPA15 |
EPA14 |
|
EPA13 |
EPA12 |
|
EPA11 |
EPA10 |
EPA9 |
EPA8 |
7 |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
EPA7 |
EPA6 |
|
EPA5 |
EPA4 |
|
EPA3 |
EPA2 |
EPA1 |
EPA0 |
|
|
|
|
|
|
|
|
|
|
Bit |
|
|
|
|
|
Function |
|
|
|
Number |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
15:0 |
Setting a bit enables the corresponding interrupt request to peripheral interrupt handler 0. |
||||||||
|
Bit Mnemonic Interrupt Description |
|
|
|
|||||
|
EPA15:0 |
EPA Capture/Compare Channels 0–15 |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
Figure 6-10. PIH0 Interrupt Mask (PIH0_INT_MASK) Register
6-21
8XC196EA USER’S MANUAL
PIH1_INT_MASK |
Address: |
1EA8H |
|
Reset State: |
0000H |
The PIH1 interrupt mask (PIH1_INT_MASK) register enables or disables (masks) individual interrupt requests to the peripheral interrupt handler 1. (The EI and DI instructions enable and disable servicing of all maskable interrupts.)
15 |
|
|
|
|
|
|
|
|
|
8 |
EPA16 |
OS7 |
OS6 |
OS5 |
|
OS4 |
|
OS3 |
OS2 |
OS1 |
|
7 |
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
OS0 |
OVRTM1 |
OVRTM2 |
OVRTM3 |
|
OVRTM4 |
|
OVR0 |
OVR1 |
OVR2 |
|
|
|
|
|
|
|
|
|
|
|
|
Bit |
|
|
|
|
|
Function |
|
|
|
|
Number |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
15:0 |
Setting a bit enables the corresponding interrupt request to peripheral interrupt handler 1. |
|||||||||
|
Bit Mnemonic |
Interrupt Description |
|
|
|
|||||
|
EPA16 |
|
EPA Capture/Compare Channel 16 |
|
|
|||||
|
OS7:0 |
|
Output Simulcapture Channel 0–7 |
|
|
|
||||
|
OVRTM1:4 |
Timer 1–4 Overflow/Underflow |
|
|
|
|||||
|
OVR0:2 |
|
EPA Channel 0–2 Capture Overrun |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Figure 6-11. PIH1 Interrupt Mask (PIH1_INT_MASK) Register
6-22
STANDARD AND PTS INTERRUPTS
PTSSEL |
Address: |
0004H |
|
Reset State: |
0000H |
The PTS select (PTSSEL) register selects either a PTS microcode routine or a standard interrupt service routine for each interrupt request. Setting a bit selects a PTS microcode routine; clearing a bit selects a standard interrupt service routine. In PTS modes that use the PTSCOUNT register, hardware clears the corresponding PTSSEL bit when PTSCOUNT reaches zero. The end-of-PTS interrupt service routine must reset the PTSSEL bit to re-enable the PTS channel.
15
— |
— |
PIH0_PTS |
0 |
7 |
|
|
|
|
|
|
|
SDU |
EXTINT |
RI1 |
TI1 |
|
|
|
|
8
PIH1_PTS |
0 |
SSIO1 |
SSIO0 |
|
|
|
0 |
|
|
|
|
AD |
EPAx_OVR |
RI0 |
TI0 |
|
|
|
|
Bit |
|
Function |
|
Number |
|
|
|
|
|
|
|
|
|
||
15, 14 |
Reserved; for compatibility with future devices, write zeros to these bits. |
||
|
|
||
12, 10 |
To guarantee proper device operation, write zeros to these bits. |
||
|
|
||
13, 11, |
Setting a bit causes the corresponding interrupt to be handled by a PTS microcode routine. |
||
9:0 |
The PTS interrupt vector locations are as follows: |
|
|
|
|
||
|
Bit Mnemonic |
Interrupt |
PTS Vector |
|
PIH0_PTS† |
PIH0 PTS Service Request |
see PIH0_PTSSEL |
|
PIH1_PTS† |
PIH1 PTS Service Request |
see PIH1_PTSSEL |
|
SSIO1 |
SSIO 1 Transfer |
FF2052H |
|
SSIO0 |
SSIO 0 Transfer |
FF2050H |
|
SDU |
Serial Debug Unit lnterrupt |
FF204EH |
|
EXTINT |
External Interrupt Pin |
FF204CH |
|
RI1 |
SIO1 Receive |
FF204AH |
|
TI1 |
SIO1 Transmit |
FF2048H |
|
AD |
A/D Conversion Complete |
FF2046H |
|
EPAx_OVR |
EPA Channel 3–16 Overrun |
FF2044H |
|
RI0 |
SIO0 Receive |
FF2042H |
|
TI0 |
SIO0 Transmit |
FF2040H |
|
† Unless these interrupts are masked in the INT_MASK1 register, always write ones to |
||
|
these bits. |
|
|
|
|
|
|
Figure 6-12. PTS Select (PTSSEL) Register
6-23
8XC196EA USER’S MANUAL
PIH0_PTSSEL |
Address: |
1E96H |
|
Reset State: |
0000H |
The PTS select (PIH0_PTSSEL) register for the peripheral interrupt handler 0 selects either a PTS service request or a standard interrupt service request for the corresponding interrupt. Setting a bit selects a PTS service request; clearing a bit selects a standard interrupt service request. In PTS modes that use the PTSCOUNT register, hardware clears the corresponding bit in both the PIH0_PTSSEL and PTSSEL registers when PTSCOUNT reaches zero. The end-of-PTS interrupt service routine must reset the PIH0_PTSSEL bit to re-enable the PTS channel.
15
EPA15 |
EPA14 |
EPA13 |
EPA12 |
7 |
|
|
|
|
|
|
|
EPA7 |
EPA6 |
EPA5 |
EPA4 |
|
|
|
|
8
EPA11 |
EPA10 |
EPA9 |
EPA8 |
|
|
|
0 |
|
|
|
|
EPA3 |
EPA2 |
EPA1 |
EPA0 |
|
|
|
|
Bit
Function
Number
15:0 Setting a bit causes the peripheral interrupt handler 0 (PIH0) to generate the PIH0_PTS interrupt request when the corresponding interrupt is generated and enabled.
The PTS interrupt vector locations are as follows:
Bit Mnemonic |
Interrupt |
PTS Vector |
EPA15 |
EPA Capture/Compare Channel 15 |
FF20FEH |
EPA14 |
EPA Capture/Compare Channel 14 |
FF20FAH |
EPA13 |
EPA Capture/Compare Channel 13 |
FF20F6H |
EPA12 |
EPA Capture/Compare Channel 12 |
FF20F2H |
EPA11 |
EPA Capture/Compare Channel 11 |
FF20EEH |
EPA10 |
EPA Capture/Compare Channel 10 |
FF20EAH |
EPA9 |
EPA Capture/Compare Channel 9 |
FF20E6H |
EPA8 |
EPA Capture/Compare Channel 8 |
FF20E2H |
EPA7 |
EPA Capture/Compare Channel 7 |
FF20DEH |
EPA6 |
EPA Capture/Compare Channel 6 |
FF20DAH |
EPA5 |
EPA Capture/Compare Channel 5 |
FF20D6H |
EPA4 |
EPA Capture/Compare Channel 4 |
FF20D2H |
EPA3 |
EPA Capture/Compare Channel 3 |
FF20CEH |
EPA2 |
EPA Capture/Compare Channel 2 |
FF20CAH |
EPA1 |
EPA Capture/Compare Channel 1 |
FF20C6H |
EPA0 |
EPA Capture/Compare Channel 0 |
FF20C2H |
Figure 6-13. PIH0 PTS Select (PIH0_PTSSEL) Register
6-24