- •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
CHAPTER 15 INTERFACING WITH EXTERNAL MEMORY
The microcontroller can interface with a variety of external memory devices. Three chip-selects can be individually programmed for bus width, the number of wait states, and a multiplexed or demultiplexed address/data bus. Other features of the external memory interface include ready control for inserting additional wait states, a bus-hold protocol that enables external devices to take control of the bus, and two write-control modes for writing words and bytes to memory. These features provide a great deal of flexibility when interfacing with external memory systems.
In addition to describing the signals and registers related to external memory, this chapter discusses the process of fetching the chip configuration bytes and configuring the external bus. It also provides examples of external memory configurations and chip-select setup.
15.1 INTERNAL AND EXTERNAL ADDRESSES
The address that external devices see is different from the address that the microcontroller generates internally. The microcontroller has 24 address bits internally, but only 21 address pins (A20:0) externally. The absence of the upper three address bits at the external pins causes different internal addresses to have the same external address. For example, the internal addresses FF2080H, 7F2080H, and 1F2080H all appear at the 21 external pins as 1F2080H. The upper three bits of the internal address have no effect on the external address.
The address seen by an external device also depends on the number of address lines that the external system uses. If the address on the external pins (A20:0) is 1F2080H, and only A17:0 are connected to the external device, the external device sees 32080H. The upper five address lines (A20:16) are implemented by the EPORT. Table 15-1 shows how the external address depends on the number of EPORT lines used to address the external device.
Table 15-1. Example of Internal and External Addresses
|
Address on the |
EPORT Pins |
Address Seen by |
|
Internal Address |
Microcontroller |
Connected to the |
||
External Device |
||||
|
Pins |
External Device |
||
|
|
|||
|
|
|
|
|
|
|
A16 |
12080H |
|
|
|
|
|
|
|
|
A17:16 |
32080H |
|
xF2080H |
|
|
|
|
1F2080H |
A18:16 |
72080H |
||
(x = 1, 3, 5, 7, 9, B, D, F) |
||||
|
|
|
||
|
|
A19:16 |
F2080H |
|
|
|
|
|
|
|
|
A20:16 |
1F2080H |
|
|
|
|
|
15-1
8XC196EA USER’S MANUAL
Table 15-1. Example of Internal and External Addresses (Continued)
|
Address on the |
EPORT Pins |
Address Seen by |
|
Internal Address |
Microcontroller |
Connected to the |
||
External Device |
||||
|
Pins |
External Device |
||
|
|
|||
|
|
|
|
|
|
|
A16 |
12080H |
|
|
|
|
|
|
|
|
A17:16 |
32080H |
|
xF2080H |
|
|
|
|
0F2080H |
A18:16 |
72080H |
||
(x = 0, 2, 4, 6, 8, A, C, E) |
||||
|
|
|
||
|
|
A19:16 |
F2080H |
|
|
|
|
|
|
|
|
A20:16 |
0F2080H |
|
|
|
|
|
15.2 EXTERNAL MEMORY INTERFACE SIGNALS AND REGISTERS
Table 15-2 lists the signals and Table 15-3 lists the registers that are discussed in this chapter. Some of the microcontroller port pins can function as either bus-control signals or general purpose I/O signals. “Using the Special-function Signals” on page 7-11 describes how to configure a port pin as either a general purpose I/O signal or a bus-control signal.
Table 15-2. Bus-control Signals
Signal |
Port Pin |
Type |
Description |
|
Name |
||||
|
|
|
||
|
|
|
|
|
A15:0 |
— |
O |
System Address Bus |
|
|
|
|
These address pins provide address bits 0–15 during the entire |
|
|
|
|
external memory cycle during both multiplexed and demultiplexed bus |
|
|
|
|
modes. |
|
|
|
|
|
|
A20:16 |
EPORT.4:0 |
O |
Address Pins 16–20 |
|
|
|
|
These address pins provide address bits 16–20 during the entire |
|
|
|
|
external memory cycle during both multiplexed and demultiplexed bus |
|
|
|
|
modes, supporting extended addressing of the 2-Mbyte address |
|
|
|
|
space. |
|
|
|
|
NOTE: Internally, there are 24 address bits; however, only 21 exter- |
|
|
|
|
nal address pins (A20:0) are implemented. The internal |
|
|
|
|
address space is 16 Mbytes (000000–FFFFFFH) and the |
|
|
|
|
external address space is 2 Mbytes (000000–1FFFFFH). |
|
|
|
|
The microcontroller resets to FF2080H in internal memory or |
|
|
|
|
1F2080H in external memory. |
|
|
|
|
A20:16 share package pins with EPORT.4:0. |
|
|
|
|
|
15-2
|
|
|
|
|
|
INTERFACING WITH EXTERNAL MEMORY |
|
|
|
Table 15-2. Bus-control Signals (Continued) |
|||||
|
|
|
|
|
|
|
|
Signal |
Port Pin |
|
Type |
|
|
|
Description |
Name |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
AD15:0 |
P4.7:0 |
|
I/O |
Address/Data Lines |
|
||
|
P3.7:0 |
|
|
The function of these pins depends on the bus width and mode. When |
|||
|
|
|
|
||||
|
|
|
|
a bus access is not occurring, these pins revert to their I/O port |
|||
|
|
|
|
function. |
|
|
|
|
|
|
|
16-bit Multiplexed Bus Mode: |
|||
|
|
|
|
AD15:0 drive address bits 0–15 during the first half of the bus cycle |
|||
|
|
|
|
and drive or receive data during the second half of the bus cycle. |
|||
|
|
|
|
8-bit Multiplexed Bus Mode: |
|||
|
|
|
|
AD15:8 drive address bits 8–15 during the entire bus cycle. AD7:0 |
|||
|
|
|
|
drive address bits 0–7 during the first half of the bus cycle and drive or |
|||
|
|
|
|
receive data during the second half of the bus cycle. |
|||
|
|
|
|
16-bit Demultiplexed Mode: |
|||
|
|
|
|
AD15:0 drive or receive data during the entire bus cycle. |
|||
|
|
|
|
8-bit Demultiplexed Mode: |
|||
|
|
|
|
AD7:0 drive or receive data during the entire bus cycle. AD15:8 drive |
|||
|
|
|
|
the data that is currently on the high byte of the internal bus. |
|||
|
|
|
|
|
|
||
ALE |
P5.0 |
|
O |
Address Latch Enable |
|
||
|
|
|
|
This active-high output signal is asserted only during external memory |
|||
|
|
|
|
cycles. ALE signals the start of an external bus cycle and indicates |
|||
|
|
|
|
that valid address information is available on the system address/data |
|||
|
|
|
|
bus (A20:16 and AD15:0 for a multiplexed bus; A20:0 for a |
|||
|
|
|
|
demultiplexed bus). |
|
||
|
|
|
|
An external latch can use this signal to demultiplex address bits 0–15 |
|||
|
|
|
|
from the address/data bus in multiplexed mode. |
|||
|
|
|
|
ALE shares a package pin with P5.0. |
|||
|
|
|
|
|
|
||
BHE# |
P5.5 |
|
O |
Byte High Enable† |
|
||
|
|
|
|
During 16-bit bus cycles, this active-low output signal is asserted for |
|||
|
|
|
|
word and high-byte reads and writes to external memory. BHE# |
|||
|
|
|
|
indicates that valid data is being transferred over the upper half of the |
|||
|
|
|
|
system data bus. Use BHE#, in conjunction with address bit 0 (A0 for |
|||
|
|
|
|
a demultiplexed address bus, AD0 for a multiplexed address/data |
|||
|
|
|
|
bus), to determine which memory byte is being transferred over the |
|||
|
|
|
|
system bus: |
|
||
|
|
|
|
BHE# |
AD0 or A0 |
Byte(s) Accessed |
|
|
|
|
|
0 |
|
0 |
both bytes |
|
|
|
|
0 |
|
1 |
high byte only |
|
|
|
|
1 |
|
0 |
low byte only |
|
|
|
|
BHE# shares a package pin with P5.5 and WRH#. |
|||
|
|
|
|
† |
When this pin is configured as a special-function signal |
||
|
|
|
|
|
(P5_MODE.5 = 1), the chip configuration register 0 (CCR0) |
||
|
|
|
|
|
determines whether it functions as BHE# or WRH#. CCR0.2 = 1 |
||
|
|
|
|
|
selects BHE#; CCR0.2 = 0 selects WRH#. |
||
|
|
|
|
|
|
|
|
15-3
8XC196EA USER’S MANUAL
Table 15-2. Bus-control Signals (Continued)
Signal |
Port Pin |
Type |
Description |
|
Name |
||||
|
|
|
||
|
|
|
|
|
BREQ# |
P5.4 |
O |
Bus Request |
|
|
|
|
This active-low output signal is asserted during a hold cycle when the |
|
|
|
|
bus controller has a pending external memory cycle. When the bus- |
|
|
|
|
hold protocol is enabled (WSR.7 is set), the P5.4/BREQ# pin can |
|
|
|
|
function only as BREQ#, regardless of the configuration selected |
|
|
|
|
through the port configuration registers (P5_MODE, P5_DIR, and |
|
|
|
|
P5_REG). An attempt to change the pin configuration is ignored until |
|
|
|
|
the bus-hold protocol is disabled (WSR.7 is cleared). |
|
|
|
|
The microcontroller can assert BREQ# at the same time as or after it |
|
|
|
|
asserts HLDA#. Once it is asserted, BREQ# remains asserted until |
|
|
|
|
HOLD# is deasserted. |
|
|
|
|
BREQ# shares a package pin with P5.4 and TMODE#. |
|
|
|
|
|
|
CLKOUT |
P2.7 |
O |
Clock Output |
|
|
|
|
Output of the internal clock generator. You can select one of five |
|
|
|
|
frequencies: f, f/2, f/4, f/8, or f/16. CLKOUT has a 50% duty cycle. |
|
|
|
|
CLKOUT shares a package pin with P2.7 |
|
|
|
|
|
|
CS2:0# |
EPORT.7:5 |
O |
Chip-select Lines 0–2 |
|
|
|
|
The active-low output CSx# is asserted during an external memory |
|
|
|
|
cycle when the address to be accessed is in the range programmed |
|
|
|
|
for chip select x. If the external memory address is outside the range |
|
|
|
|
assigned to the three chip selects, no chip-select output is asserted |
|
|
|
|
and the bus configuration defaults to the CS2# values. |
|
|
|
|
Immediately following reset, CS0# is automatically assigned to the |
|
|
|
|
range FF2000–FF20FFH (1F2000–1F20FFH if external). |
|
|
|
|
CS2:0# share package pins with EPORT.7:5. |
|
|
|
|
|
|
EA# |
— |
I |
External Access |
|
|
|
|
This input determines whether memory accesses to the upper 7 |
|
|
|
|
Kbytes of ROM (FF2400–FF3FFFH) are directed to internal or |
|
|
|
|
external memory. These accesses are directed to internal memory if |
|
|
|
|
EA# is held high and to external memory if EA# is held low. For an |
|
|
|
|
access to any other memory location, the value of EA# is irrelevant. |
|
|
|
|
EA# is sampled and latched only on the rising edge of RESET#. |
|
|
|
|
Changing the level of EA# after reset has no effect. |
|
|
|
|
|
|
HLDA# |
P2.6 |
O |
Bus Hold Acknowledge |
|
|
|
|
This active-low output indicates that the CPU has released the bus as |
|
|
|
|
the result of an external device asserting HOLD#. When the bus-hold |
|
|
|
|
protocol is enabled (WSR.7 is set), the P2.6/HLDA# pin can function |
|
|
|
|
only as HLDA#, regardless of the configuration selected through the |
|
|
|
|
port configuration registers (P2_MODE, P2_DIR, and P2_REG). An |
|
|
|
|
attempt to change the pin configuration is ignored until the bus-hold |
|
|
|
|
protocol is disabled (WSR.7 is cleared). |
|
|
|
|
HLDA# shares a package pin with P2.6 and ONCE#. |
|
|
|
|
|
15-4
|
|
|
|
INTERFACING WITH EXTERNAL MEMORY |
|
|
Table 15-2. Bus-control Signals (Continued) |
||
|
|
|
|
|
Signal |
Port Pin |
|
Type |
Description |
Name |
|
|||
|
|
|
|
|
|
|
|
|
|
HOLD# |
P2.5 |
|
I |
Bus Hold Request |
|
|
|
|
An external device uses this active-low input signal to request control |
|
|
|
|
of the bus. When the bus-hold protocol is enabled (WSR.7 is set), the |
|
|
|
|
P2.5/HOLD# pin can function only as HOLD#, regardless of the |
|
|
|
|
configuration selected through the port configuration registers |
|
|
|
|
(P2_MODE, P2_DIR, and P2_REG). An attempt to change the pin |
|
|
|
|
configuration is ignored until the bus-hold protocol is disabled (WSR.7 |
|
|
|
|
is cleared). |
|
|
|
|
HOLD# shares a package pin with P2.5. |
|
|
|
|
|
INST |
P5.1 |
|
O |
Instruction Fetch |
|
|
|
|
When high, INST indicates that an instruction is being fetched from |
|
|
|
|
external memory. The signal remains high during the entire bus cycle |
|
|
|
|
of an external instruction fetch. INST is low for data accesses, |
|
|
|
|
including interrupt vector fetches and chip configuration byte reads. |
|
|
|
|
INST is low during internal memory fetches. |
|
|
|
|
INST shares a package pin with P5.1. |
|
|
|
|
|
RD# |
P5.3 |
|
O |
Read |
|
|
|
|
Read-signal output to external memory. RD# is asserted only during |
|
|
|
|
external memory reads. |
|
|
|
|
RD# shares a package pin with P5.3. |
|
|
|
|
|
READY |
P5.6 |
|
I |
Ready Input |
|
|
|
|
This active-high input can be used to insert wait states in addition to |
|
|
|
|
those programmed in the chip configuration byte 0 (CCB0) and the |
|
|
|
|
bus control x register (BUSCONx). CCB0 is programmed with the |
|
|
|
|
minimum number of wait states (0–3) for an external fetch of CCB1, |
|
|
|
|
and BUSCONx is programmed with the minimum number of wait |
|
|
|
|
states (0–3) for all external accesses to the address range assigned to |
|
|
|
|
the chip-select x channel. If READY is low when the programmed |
|
|
|
|
number of wait states is reached, additional wait states are added until |
|
|
|
|
READY is pulled high. |
|
|
|
|
READY shares a package pin with P5.6. |
|
|
|
|
|
WR# |
P5.2 |
|
O |
Write† |
|
|
|
|
This active-low output indicates that an external write is occurring. |
|
|
|
|
This signal is asserted only during external memory writes. |
|
|
|
|
WR# shares a package pin with P5.2 and WRL#. |
|
|
|
|
† When this pin is configured as a special-function signal |
|
|
|
|
(P5_MODE.2 = 1), the chip configuration register 0 (CCR0) |
|
|
|
|
determines whether it functions as WR# or WRL#. CCR0.2 = 1 |
|
|
|
|
selects WR#; CCR0.2 = 0 selects WRL#. |
|
|
|
|
|
15-5
8XC196EA USER’S MANUAL
Table 15-2. Bus-control Signals (Continued)
Signal |
Port Pin |
Type |
Description |
|
Name |
||||
|
|
|
||
|
|
|
|
|
WRH# |
P5.5 |
O |
Write High† |
|
|
|
|
During 16-bit bus cycles, this active-low output signal is asserted for |
|
|
|
|
high-byte writes and word writes to external memory. During 8-bit bus |
|
|
|
|
cycles, WRH# is asserted for all write operations. |
|
|
|
|
WRH# shares a package pin with P5.5 and BHE#. |
|
|
|
|
† When this pin is configured as a special-function signal |
|
|
|
|
(P5_MODE.5 = 1), the chip configuration register 0 (CCR0) |
|
|
|
|
determines whether it functions as BHE# or WRH#. CCR0.2 = 1 |
|
|
|
|
selects BHE#; CCR0.2 = 0 selects WRH#. |
|
|
|
|
|
|
WRL# |
P5.2 |
O |
Write Low† |
|
|
|
|
During 16-bit bus cycles, this active-low output signal is asserted for |
|
|
|
|
low-byte writes and word writes to external memory. During 8-bit bus |
|
|
|
|
cycles, WRL# is asserted for all write operations. |
|
|
|
|
WRL# shares a package pin with P5.2 and WR#. |
|
|
|
|
† When this pin is configured as a special-function signal |
|
|
|
|
(P5_MODE.2 = 1), the chip configuration register 0 (CCR0) |
|
|
|
|
determines whether it functions as WR# or WRL#. CCR0.2 = 1 |
|
|
|
|
selects WR#; CCR0.2 = 0 selects WRL#. |
|
|
|
|
|
15-6
|
|
INTERFACING WITH EXTERNAL MEMORY |
|
|
Table 15-3. External Memory Interface Registers |
||
|
|
|
|
Register |
Address |
Description |
|
Mnemonic |
|||
|
|
||
|
|
|
|
ADDRCOM0 |
1E78H |
Address Compare |
|
ADDRCOM1 |
1E80H |
Holds address bits 8–20 of the base address of the address range assigned |
|
ADDRCOM2 |
1E88H |
||
to CSx#. |
|||
|
|
||
|
|
|
|
ADDRMSK0 |
1E7AH |
Address Mask |
|
ADDRMSK1 |
1E82H |
Determines the size of the address range (256 bytes–2 Mbyte) assigned to |
|
ADDRMSK2 |
1E8AH |
||
CSx#. |
|||
|
|
||
|
|
|
|
BUSCON0 |
1E7CH |
Bus Control |
|
BUSCON1 |
1E84H |
Determines the bus configuration for external accesses to the address range |
|
BUSCON2 |
1E8CH |
||
assigned to CSx#. The bus parameters are 8- or 16-bit bus width, |
|||
|
|
||
|
|
multiplexed or demultiplexed address/data lines, and the number of wait |
|
|
|
states inserted into each bus cycle. |
|
|
|
|
|
CCR0 |
† |
Chip Configuration 0 |
|
|
|
Enables or disables the IDLPD #1 and IDLPD #2 instructions. When |
|
|
|
enabled, the IDLPD #1 instruction causes the microcontroller to enter idle |
|
|
|
mode and the IDLPD #2 instruction causes the microcontroller to enter |
|
|
|
powerdown mode. This register also selects the write-control mode and |
|
|
|
contains the bus-control parameters for fetching chip configuration byte 1. |
|
|
|
|
|
CCR1 |
† |
Chip Configuration 1 |
|
|
|
Selects the 64-Kbyte or 2-Mbyte addressing mode and controls whether the |
|
|
|
internal ROM is mapped only into page FFH or into both pages FFH and |
|
|
|
00H. |
|
|
|
|
|
EP_DIR |
1FE3H |
Extended Port Direction |
|
|
|
In I/O mode, each bit of the extended port I/O direction (EP_DIR) register |
|
|
|
controls the configuration of the corresponding pin. Clearing a bit configures |
|
|
|
a pin as a complementary signal; setting a bit configures a pin as an open- |
|
|
|
drain signal. |
|
|
|
Any pin that is configured for its extended-address function is forced to the |
|
|
|
complementary output mode except during reset, hold, idle, and powerdown. |
|
|
|
|
|
EP_MODE |
1FE1H |
Extended Port Mode |
|
|
|
The EPORT pins 0–4 can function as general-purpose I/O signals or as |
|
|
|
extended address signals. EPORT pins 5–7 can function as general-purpose |
|
|
|
I/O signals or as chip-select signals. |
|
|
|
Each bit of the extended port mode (EP_MODE) register controls whether |
|
|
|
the corresponding pin functions as a general-purpose I/O signal or as an |
|
|
|
extended-address signal. Setting a bit configures a pin as an extended- |
|
|
|
address signal; clearing a bit configures a pin as a general-purpose I/O |
|
|
|
signal. |
|
|
|
|
|
EP_PIN |
1FE7H |
Extended Port Input |
|
|
|
Each bit of the extended port input (EP_PIN) register reflects the current |
|
|
|
state of the corresponding pin, regardless of the pin configuration. |
|
|
|
|
†The CCRs are loaded with the contents of the chip configuration bytes (CCBs) after reset. The CCBs reside at addresses FF2018H (CCB0) and FF201AH (CCB1).
15-7
8XC196EA USER’S MANUAL
Table 15-3. External Memory Interface Registers (Continued)
Register |
Address |
Description |
|
Mnemonic |
|||
|
|
||
|
|
|
|
EP_REG |
1FE5H |
Extended Port Data Output |
|
|
|
The EPORT pins 0–4 can function as general purpose I/O signals or as |
|
|
|
extended address signals. EPORT pins 5–7 can function as general purpose |
|
|
|
I/O signals or as chip-select signals. |
|
|
|
For I/O Mode (EP_MODE.x = 0) |
|
|
|
When a port pin is configured as a complementary output (EP_DIR.x = |
|
|
|
0), setting the corresponding EP_REG bit drives a one on the pin and |
|
|
|
clearing the corresponding EP_REG bit drives a zero on the pin. |
|
|
|
When a port pin is configured as a high impedance input or an open-drain |
|
|
|
output (EP_DIR.x = 1), clearing the corresponding EP_REG bit drives a |
|
|
|
zero on the pin and setting the corresponding EP_REG bit floats the pin, |
|
|
|
making it available as a high impedance input. |
|
|
|
For Special-function Mode (EP_MODE.x = 1) |
|
|
|
When an EPORT pin is configured as a special-function signal (either a |
|
|
|
chip-select or an extended-address signal), the EP_REG bit value is |
|
|
|
immaterial because the address bus or the chip-select unit controls the |
|
|
|
pin. |
|
|
|
|
|
P2_DIR |
1FD2H |
Port Direction Register |
|
P5_DIR |
1FF3H |
Each bit controls the configuration of the corresponding pin. Clearing a bit |
|
|
|
||
|
|
configures a pin as a complementary output; setting a bit configures a pin as |
|
|
|
a high-impedance input or an open-drain output. |
|
|
|
|
|
P2_MODE |
1FD0H |
Port Mode Register |
|
P5_MODE |
1FF1H |
Each bit controls the mode of the corresponding pin. Setting a bit configures |
|
|
|
||
|
|
a pin as a special-function signal; clearing a bit configures a pin as a general- |
|
|
|
purpose I/O signal. |
|
|
|
|
|
P2_PIN |
1FD6H |
Port Pin Register |
|
P5_PIN |
1FF7H |
Each bit reflects the current state of the corresponding pin, regardless of the |
|
|
|
||
|
|
pin’s mode and configuration. |
|
|
|
|
|
P2_REG |
1FD4H |
Port Data Output Register |
|
P5_REG |
1FF5H |
For I/O Mode (Px_MODE.x = 0) |
|
|
|
||
|
|
When a port pin is configured as a complementary output (Px_DIR.x = 0), |
|
|
|
setting the corresponding port data bit drives a one on the pin, and |
|
|
|
clearing the corresponding port data bit drives a zero on the pin. |
|
|
|
When a port pin is configured as a high-impedance input or an open- |
|
|
|
drain output (Px_DIR.x = 1), clearing the corresponding port data bit |
|
|
|
drives a zero on the pin, and setting the corresponding port data bit floats |
|
|
|
the pin, making it available as a high-impedance input. |
|
|
|
For Special-function Mode (Px_MODE.x = 1) |
|
|
|
When a port pin is configured as an output (either complementary or |
|
|
|
open-drain), the corresponding port data bit value is immaterial because |
|
|
|
the corresponding on-chip peripheral or system function controls the pin. |
|
|
|
To configure a pin as a high-impedance input, set both the Px_DIR and |
|
|
|
Px_REG bits. |
|
|
|
|
†The CCRs are loaded with the contents of the chip configuration bytes (CCBs) after reset. The CCBs reside at addresses FF2018H (CCB0) and FF201AH (CCB1).
15-8