- •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.4CONTROLLING READ ACCESS TO THE INTERNAL ROM
The LOC bit in CCR0 (Figure 4-8) controls read access to the internal ROM. Clear the LOC bit in CCB0 to enable read protection. To allow authorized access for program verification, program a security key into special-purpose memory (locations FF2020–FF202FH). Once a security key is programmed, you must supply a matching key to gain access to the internal ROM. (See Chapter 17, “Using the Test-ROM Routines,” for additional information.)
4-26
MEMORY PARTITIONS
CCR0 |
no direct access† |
The chip configuration 0 (CCR0) register controls ROM access, enables or disables the IDLPD #1 and IDLPD #2 instructions and selects the write-control mode. It also contains the bus-control parameters for fetching chip configuration byte 1.
7 |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
LOC |
1 |
|
WS1 |
|
WS0 |
|
DEMUX |
BHE# |
|
BW16 |
|
PD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Bit |
Bit |
|
|
|
|
|
Function |
|
|
|
|||
Number |
Mnemonic |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||
7 |
LOC |
Lock Bit |
|
|
|
|
|
|
|
|
|||
|
|
|
This bit controls read access to the ROM during normal operation. |
||||||||||
|
|
|
0 |
= read protect |
|
|
|
|
|
|
|
||
|
|
|
1 |
= no protection |
|
|
|
|
|
|
|
||
|
|
|
Refer to “Controlling Read Access to the Internal ROM” on page 4-26 for |
||||||||||
|
|
|
details. |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|||||||
6 |
1 |
|
To guarantee proper operation, write one to this bit. |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|||
5:4 |
WS1:0 |
Wait States |
|
|
|
|
|
|
|
|
|||
|
|
|
These bits, along with the READY pin, control the number of wait states |
||||||||||
|
|
|
that are used for an external fetch of chip configuration byte 1 (CCB1). |
||||||||||
|
|
|
WS1 WS0 |
|
|
|
|
|
|
|
|
||
|
|
|
0 |
0 |
|
zero wait states |
|
|
|
|
|
||
|
|
|
0 |
1 |
|
one wait state |
|
|
|
|
|
||
|
|
|
1 |
0 |
|
two wait states |
|
|
|
|
|
||
|
|
|
1 |
1 |
|
three wait states |
|
|
|
|
|
||
|
|
|
If READY is low when this number is reached, additional wait states are |
||||||||||
|
|
|
added until READY is pulled high. |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||||||
3 |
DEMUX |
Select Demultiplexed Bus |
|
|
|
|
|
||||||
|
|
|
Selects the demultiplexed bus mode for an external fetch of CCB1: |
||||||||||
|
|
|
0 |
= multiplexed — address and data are multiplexed on AD15:0. |
|
||||||||
|
|
|
1 |
= demultiplexed — data only on AD15:0. |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||
2 |
BHE# |
Write-control Mode |
|
|
|
|
|
|
|
||||
|
|
|
Selects the write-control mode, which determines the functions of the |
||||||||||
|
|
|
BHE#/WRH# and WR#/WRL# pins for external bus cycles: |
|
|||||||||
|
|
|
0 |
= write strobe mode: the BHE#/WRH# pin operates as WRH#, and the |
|||||||||
|
|
|
|
WR#/WRL# pin operates as WRL#. |
|
|
|
||||||
|
|
|
1 |
= standard write-control mode: the BHE#/WRH# pin operates as |
|||||||||
|
|
|
|
BHE#, and the WR#/WRL# pin operates as WR#. |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
†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).
Figure 4-8. Chip Configuration 0 (CCR0) Register
4-27
8XC196EA USER’S MANUAL
CCR0 (Continued) |
no direct access† |
The chip configuration 0 (CCR0) register controls ROM access, enables or disables the IDLPD #1 and IDLPD #2 instructions and selects the write-control mode. It also contains the bus-control parameters for fetching chip configuration byte 1.
7 |
|
|
|
|
|
|
|
|
|
0 |
LOC |
1 |
|
WS1 |
WS0 |
|
DEMUX |
BHE# |
BW16 |
|
PD |
|
|
|
|
|
|
|
|
|
|
|
Bit |
Bit |
|
|
|
Function |
|
|
|
||
Number |
Mnemonic |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||
1 |
BW16 |
Buswidth Control |
|
|
|
|
|
|
||
|
|
|
Selects the bus width for an external fetch of CCB1: |
|
||||||
|
|
|
0 = 8-bit bus |
|
|
|
|
|
|
|
|
|
|
1 = 16-bit bus |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
PD |
Powerdown Enable |
|
|
|
|
|
|
||
|
|
|
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. |
|
|
|
|
|
|
|
|
|
|
0 = disable idle and powerdown modes |
|
|
|
||||
|
|
|
1 = enable idle and powerdown modes |
|
|
|
||||
|
|
|
If your design uses idle or powerdown mode, set this bit when you |
|||||||
|
|
|
program the CCBs. If it does not, clearing this bit when you program the |
|||||||
|
|
|
CCBs will prevent accidental entry into idle or powerdown mode. |
|
||||||
|
|
|
(Chapter 14, “Special Operating Modes,” discusses idle and powerdown |
|||||||
|
|
|
modes.) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
†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).
Figure 4-8. Chip Configuration 0 (CCR0) Register (Continued)
4-28
MEMORY PARTITIONS
4.5REMAPPING INTERNAL ROM
The 83C196EA has 8 Kbytes of ROM (FF2000–FF3FFFH). The upper 7-Kbyte section (FF2400–FF3FFFH) is used for storing application code and data; the lower 1-Kbyte section (FF2000–FF23FFH) stores boot code, chip configuration bytes (CCBs), and interrupt vectors.
To optimize your application, you may want to make the application data in FF2400–FF3FFFH accessible as near data in page 00H, while still allowing the application code to execute in page FFH. To accomplish this, set the REMAP bit (CCB1.2) when you program the CCBs, and hold EA# high during reset. This combination forces all accesses to FF2000–FF3FFFH to the internal ROM and “shadows” the contents of FF2400–FF3FFFH into page 00H. Mapping the ROM contents into both pages 00H and FFH allows you to access data and constants as near data and near constants in page 00H and execute code in page FFH.
The EA# input controls whether accesses to FF2000–FF3FFFH are directed to internal ROM or an external memory device. When accesses are directed to internal ROM, the REMAP bit (CCB1.2) controls whether the upper 7-Kbyte section (FF2400–FF3FFFH) of internal ROM is mapped into page FFH only or into both pages FFH and 00H. The REMAP bit is loaded from the CCB and the state of EA# is latched upon leaving reset; neither can be changed until the next reset. You can read IRAM_CON (Figure 4-3 on page 4-10) to determine the state of the EA# pin (bit 7 contains the complement of EA#) and read CCR1 (Figure 4-9) to determine the state of the REMAP bit.
NOTE
The EA# input is effective only for accesses to the internal ROM (FF2000– FF3FFFH). For accesses to any other location, the state of EA# is irrelevant. The REMAP bit is effective only for accesses to FF2400–FF3FFFH and only when EA# is inactive. When EA# is active, execution is external and the REMAP bit is ignored.
With EA# active, the REMAP bit (CCB1.2) is ignored. Accesses to FF2400–FF3FFFH are directed to external memory (1F2400–1F3FFFH). Data in this area must be accessed with extended instructions.
With EA# inactive and remapping disabled (CCB1.2 = 0), accesses to FF2400–FF3FFFH are directed to internal ROM (FF2400–FF3FFFH). Data in this area must be accessed with extended instructions.
With EA# inactive and remapping enabled (CCB1.2 = 1), you can access the contents of FF2400– FF3FFFH in two ways:
•in internal ROM (FF2400–FF3FFFH) using extended instructions, and
•in internal ROM (002400–003FFFH) using nonextended instructions. This makes the far data in FF2000–FF3FFFH accessible as near data.
4-29
8XC196EA USER’S MANUAL
An advantage of remapping ROM is that it makes the data in ROM accessible as near data in internal memory page 00H. The data can then be accessed more quickly with nonextended instructions. An advantage of not remapping ROM is that the corresponding area in memory page 00H is available for storing additional near data.
CCR1 |
no direct access† |
The chip configuration 1 (CCR1) register controls the clock failure detection circuitry, deferred mode, and the watchdog timer, selects the 64-Kbyte or 2-Mbyte addressing mode, and controls whether the upper 7-Kbyte section of internal ROM (FF2400–FF3FFFH) is mapped into page FFH only or into both pages FFH and 00H.
7 |
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
CFD |
|
DM |
0 |
|
|
WDD |
|
REMAP |
MODE64 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Bit |
Bit |
|
|
|
|
|
|
Function |
|
|
|
|
Number |
Mnemonic |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|||||||||
7 |
1 |
To guarantee proper operation, write one to this bit. |
|
|||||||||
|
|
|
|
|
|
|
|
|
||||
6 |
CFD |
Clock-failure Detection |
|
|
|
|
|
|
||||
|
|
This bit enables or disables the clock failure detection circuitry. |
|
|||||||||
|
|
1 |
= enables clock-failure detection circuitry |
|
|
|
||||||
|
|
0 |
= disables clock-failure detection circuitry |
|
|
|
||||||
|
|
(See “Clock Failure Detection Logic” on page 2-12.) |
|
|||||||||
|
|
|
|
|
|
|
|
|
||||
5 |
DM |
Deferred Mode |
|
|
|
|
|
|
||||
|
|
Enables the deferred bus-cycle mode. If the microcontroller is using a |
||||||||||
|
|
demultiplexed bus and deferred mode is enabled, a delay of 2t occurs in |
||||||||||
|
|
the first bus cycle following a chip-select output change, the first write |
||||||||||
|
|
cycle following a read cycle, and the first read cycle following a write |
||||||||||
|
|
cycle. (See “Deferred Bus-cycle Mode” on page 15-41.) |
|
|||||||||
|
|
0 |
= deferred bus-cycle mode disabled |
|
|
|
||||||
|
|
1 |
= deferred bus-cycle mode enabled |
|
|
|
||||||
|
|
|
|
|||||||||
4 |
0 |
To guarantee proper operation, write zero to this bit. |
|
|||||||||
|
|
|
|
|
|
|
|
|
||||
3 |
WDD |
Watchdog Timer Disable |
|
|
|
|
|
|
||||
|
|
Selects whether the watchdog timer is always enabled or disabled until |
||||||||||
|
|
the first time it is cleared. If this bit is clear, the watchdog is enabled at |
||||||||||
|
|
reset, so software must clear the watchdog within 64K state times to |
||||||||||
|
|
prevent another reset. If this bit is set, the watchdog is disabled until the |
||||||||||
|
|
first time you clear it. (See “Enabling the Watchdog Timer” on page |
|
|||||||||
|
|
13-12.) |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
= always enabled |
|
|
|
|
|
|
|||
|
|
1 |
= disabled at reset; enabled the first time it is cleared |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
†The CCRs are loaded with the contents of the chip configuration bytes (CCBs) after reset. Locate your CCBs at addresses FF2018H (CCB0) and FF201AH (CCB1).
Figure 4-9. Chip Configuration 1 (CCR1) Register
4-30
MEMORY PARTITIONS
CCR1 (Continued) |
no direct access† |
The chip configuration 1 (CCR1) register controls the clock failure detection circuitry, deferred mode, and the watchdog timer, selects the 64-Kbyte or 2-Mbyte addressing mode, and controls whether the upper 7-Kbyte section of internal ROM (FF2400–FF3FFFH) is mapped into page FFH only or into both pages FFH and 00H.
7 |
|
|
|
|
|
|
|
|
|
|
0 |
1 |
CFD |
DM |
0 |
|
|
WDD |
|
REMAP |
MODE64 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
Bit |
Bit |
|
|
|
|
Function |
|
|
|
||
Number |
Mnemonic |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|||
2 |
REMAP |
Internal ROM Mapping |
|
|
|
|
|
|
|||
|
|
The EA# pin controls whether accesses to FF2000–FF3FFFH are |
|
||||||||
|
|
directed to internal ROM or to external memory. When EA# is low |
|
||||||||
|
|
(external execution), REMAP is ignored. When EA# is high (internal |
|
||||||||
|
|
execution), REMAP controls whether the upper 7-Kbyte area (FF2400– |
|||||||||
|
|
FF3FFFH) of internal ROM is mapped only into page FFH or into both |
|||||||||
|
|
pages FFH and 00H. |
|
|
|
|
|
|
|||
|
|
0 = ROM maps to page FFH only |
|
|
|
|
|||||
|
|
1 = ROM maps to page FFH and page 00H |
|
|
|
||||||
|
|
(See “Remapping Internal ROM” on page 4-29.) |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||
1 |
MODE64 |
Addressing Mode |
|
|
|
|
|
|
|||
|
|
Selects 64-Kbyte or 2-Mbyte addressing. |
|
|
|
||||||
|
|
0 = selects 2-Mbyte addressing |
|
|
|
|
|||||
|
|
1 = selects 64-Kbyte addressing |
|
|
|
|
|||||
|
|
In 2-Mbyte mode, code can execute from almost anywhere in the |
|
||||||||
|
|
address space. In 64-Kbyte mode, code can execute only from page |
|||||||||
|
|
FFH. (See “Fetching Code and Data in the 2-Mbyte and 64-Kbyte Modes” |
|||||||||
|
|
on page 4-31 for more information.) |
|
|
|
|
|||||
|
|
|
|
||||||||
0 |
0 |
Reserved; for compatibility with future devices, write zero to this bit. |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
†The CCRs are loaded with the contents of the chip configuration bytes (CCBs) after reset. Locate your CCBs at addresses FF2018H (CCB0) and FF201AH (CCB1).
Figure 4-9. Chip Configuration 1 (CCR1) Register (Continued)
4.6FETCHING CODE AND DATA IN THE 2-MBYTE AND 64-KBYTE MODES
When the microcontroller leaves reset, the MODE64 bit (CCB1.1) selects the 2-Mbyte or 64Kbyte mode. The mode cannot be changed until the next reset. (Typically, the CCBs are programmed once when our program is compiled and are not changed during normal operation.)
In 64-Kbyte mode, code must execute from page FFH and data must reside in page 00H. In 2- Mbyte mode, code can execute from any page. Data must reside in page 00H for nonextended instructions, but it can reside in any page for extended instructions. In either mode, data and constants that reside in page 00H are called near data and near constants. Data outside page 00H are called far data.
4-31
5
Stack Overflow
Module