Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. MC68HC05P9A/D HC 5 MC68HC05P9A HCMOS Microcontroller Unit TECHNICAL DATA For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc. List of Sections Table of Contents . . . . . . . . . . . . . . . . . . . . . . . . . 5 Freescale Semiconductor, Inc... Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Pin Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Central Processor Unit (CPU) . . . . . . . . . . . . . . . 27 Resets and Interrupts. . . . . . . . . . . . . . . . . . . . . . 49 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . 59 Parallel I/O Ports . . . . . . . . . . . . . . . . . . . . . . . . . 65 Computer Operating Properly Watchdog (COP) . . . . . . . . . . . . . . . . . . . . . . 79 Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Serial Input/Output Port (SIOP). . . . . . . . . . . . . 103 Analog-to-Digital Converter (ADC). . . . . . . . . 117 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Literature Updates . . . . . . . . . . . . . . . . . . . . . . . 153 MOTOROLA List of Sections For More Information On This Product, Go to: www.freescale.com 3 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... List of Sections 4 List of Sections For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Table of Contents Introduction Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Package Types and Order Numbers . . . . . . . . . . . . . . . . . . . . . . . . . .12 Mask Selectable Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Pin Descriptions Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Pin Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Memory Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Input/Output Register Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 ROM Security Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Self-Check Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 CPU Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 CPU Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Arithmetic/Logic Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 CPU Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Instruction Set Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 Opcode Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 MOTOROLA Table of Contents For More Information On This Product, Go to: www.freescale.com 5 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Table of Contents Resets and Interrupts Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 Low-Voltage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Low-Power Modes Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 Halt Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 Port A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Port B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Port C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Port D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 COP Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 COP Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Timer Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 I/O Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 6 Table of Contents For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Table of Contents SIOP Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 I/O Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 ADC Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Timing and Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . .121 I/O Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Specifications Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127 Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 Operating Temperature Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 Thermal Characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 Power Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 5.0 V DC Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . .130 3.3 V DC Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . .132 Driver Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 Typical Supply Current vs. Internal Clock Frequency . . . . . . . . . . . .135 Maximum Supply Current vs. Internal Clock Frequency . . . . . . . . . .136 5.0 V Control Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 3.3 V Control Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138 Test Load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 Mechanical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 MOTOROLA Table of Contents For More Information On This Product, Go to: www.freescale.com 7 Freescale Semiconductor, Inc. Table of Contents Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141 Literature Updates Literature Distribution Centers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153 Mfax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154 Motorola SPS World Marketing World Wide Web Server . . . . . . . . .154 CSIC Microcontroller Division’s Web Site . . . . . . . . . . . . . . . . . . . . .154 Freescale Semiconductor, Inc... Index 8 Table of Contents For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Introduction Contents Freescale Semiconductor, Inc... Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Package Types and Order Numbers . . . . . . . . . . . . . . . . . . . . . . . . . .12 Mask Selectable Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 1-mc68hc05p9a MOTOROLA Introduction For More Information On This Product, Go to: www.freescale.com 9 Freescale Semiconductor, Inc. Introduction Freescale Semiconductor, Inc... Features • Four Peripheral Modules – 16-Bit Input Capture/Output Compare Timer – Synchronous Serial I/O Port (SIOP) – 4-Channel, 8-Bit Analog-to-Digital Converter (ADC) – Computer Operating Properly (COP) Watchdog • 20 Bidirectional I/O Port Pins and One Input-Only Port Pin – High Current Source Sink on PC0 and PC1 – Mask Programmable Pullups/Interrupts on PA0–PA7, a Keyboard Scan Feature • On-Chip Oscillator with Connections for: – Crystal – Ceramic Resonator – External Clock – Resistor Capacitor (RC) Oscillator • 2112 Bytes of ROM – 48 Bytes of Page Zero ROM – Eight Locations for User Vectors – ROM Security • 128 Bytes of User RAM • Selfcheck ROM • Memory-Mapped Input/Output (I/O) Registers • Fully Static Operation with No Minimum Clock Speed • Power-Saving Stop and Wait Modes 2-mc68hc05p9a 10 Introduction For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Introduction Structure Structure PA7 RESET ACCUMULATOR M68HC05 MCU SDI SDO INDEX REGISTER RESET VRH STACK POINTER 0 0 0 0 0 0 0 0 1 1 AN0 PROGRAM COUNTER 0 0 0 AN1 AN2 CONDITION CODE REGISTER 1 1 1 H I N C Z AN3 PORT A PA5 DIVIDE BY 2 INTERNAL CLOCK COP WATCHDOG VDD VSS PB7/SCK PB6/SDI PB5/SDO PC7/VRH PC6/AN0 PC5/AN1 PC4/AN2 PC3/AN3 PC2 PC1 PORT D INTERNAL OSCILLATOR PA2 PC0 TO ADC AND SIOP DATA DIRECTION REGISTER D OSC2 PA3 PA0 CPU CLOCK OSC1 PA4 PA1 PORT B SIOP SCK IRQ PA6 PORT C ARITHMETIC/LOGIC UNIT CPU CONTROL DATA DIRECTION REGISTER C RAM — 128 BYTES x 8 ADC Freescale Semiconductor, Inc... SELFCHECK ROM — 240 BYTES x 8 DATA DIRECTION REGISTER B DATA DIRECTION REGISTER A ROM — 2112 BYTES x 8 PD5 PD7/TCAP TCAP POWER DIVIDE BY 4 CAPTURE/COMPARE TIMER TCMP Figure 1. MC68HC05P9A Block Diagram 3-mc68hc05p9a MOTOROLA Introduction For More Information On This Product, Go to: www.freescale.com 11 Freescale Semiconductor, Inc. Introduction Package Types and Order Numbers Table 1. Order Numbers Package Type Case Outline Freescale Semiconductor, Inc... Plastic DIP(1) Pin Count Operating Temperature 28 0 to +70 °C –40 to +85 °C –40 to +105 °C –40 to +125 °C MC68HC05P9AP MC68HC05P9ACP MC68HC05P9AVP MC68HC05P9AMP 28 0 to +70 °C –40 to +85 °C –40 to +105 °C –40 to +125 °C MC68HC05P9ADW MC68HC05P9ACDW MC68HC05P9AVDW MC68HC05P9AMDW 710 SOIC(2) 751F Order Number 1. DIP = dual in-line package 2. SOIC = small outline integrated circuit Mask Selectable Options The options in Table 2 are user selectable mask options. Table 2. User Selectable Mask Options Feature Option COP Watchdog Enabled or Disabled External Interrupt Pin Triggering Negative-Edge Triggering Only or Negative-Edge and Low-Level Triggering SIOP Data Format MSB First or LSB First Enabled Pin-by-Pin Keyscan Pullups/Interrupts on Port A or Disabled Pin-by-Pin STOP Instruction Enabled or Disabled (Convert to HALT) 4-mc68hc05p9a 12 Introduction For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Pin Descriptions Contents Freescale Semiconductor, Inc... Pin Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Pin Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 VDD and VSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 OSC1 and OSC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Crystal Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Ceramic Resonator Connections . . . . . . . . . . . . . . . . . . . . . . . .16 RC Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 External Clock Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 IRQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 PA7–PA0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 PB7/SCK–PB5/SDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 PC7/VRH–PC0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 PD7/TCAP and PD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 TCMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 5-mc68hc05p9a MOTOROLA Pin Descriptions For More Information On This Product, Go to: www.freescale.com 13 Freescale Semiconductor, Inc. Pin Descriptions Pin Assignments Freescale Semiconductor, Inc... RESET VDD IRQ OSC1 PA7 OSC2 PA6 PD7/TCAP PA5 TCMP PA4 PD5 PA3 PC0 PA2 PC1 PA1 PC2 PA0 PC3/AN3 PB5/SDO PC4/AN2 PB6/SDI PC5/AN1 PB7/SCK PC6/AN0 VSS PC7/VRH Figure 2. Pin Assignments 6-mc68hc05p9a 14 Pin Descriptions For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Pin Descriptions Pin Functions Pin Functions VDD and VSS are the power supply and ground pins. The MCU operates from a single 5-V power supply. OSC1 and OSC2 MCU C1 0.1 µF VSS Very fast signal transitions occur on the MCU pins, placing high short-duration current demands on the power supply. To prevent noise problems, take special care to provide good power supply bypassing at the MCU as Figure 3 shows. Place the bypass capacitors as close as possible to the MCU. C2 is an optional bulk current bypass capacitor for use in applications that require the port pins to source high current levels. VDD Freescale Semiconductor, Inc... VDD and VSS C2 + VDD Figure 3. Bypassing Recommendation The OSC1 and OSC2 pins are the connections for the on-chip oscillator. The oscillator can be driven by any of the following: • Crystal • Ceramic resonator • RC Oscillator • External clock signal The frequency of the on-chip oscillator is fOSC. The MCU divides the internal oscillator output by two to produce the internal clock with a frequency of fOP. 7-mc68hc05p9a MOTOROLA Pin Descriptions For More Information On This Product, Go to: www.freescale.com 15 Freescale Semiconductor, Inc. Pin Descriptions Ceramic Resonator Connections 10 MΩ OSC2 OSC1 MCU XTAL 27 pF 27 pF Figure 4. Crystal Connections Use an AT-cut crystal. Do not use a strip or tuning fork crystal. The MCU may overdrive or have the incorrect characteristic impedance for a strip or tuning fork crystal. To reduce cost, use a ceramic resonator in place of the crystal. Figure 5 shows a ceramic resonator circuit. For the values of any external components, follow the recommendations of the resonator manufacturer. The load capacitance values used in the oscillator circuit design should include all stray layout capacitances. To minimize output distortion, mount the resonator and capacitors as close as possible to the pins. MCU CERAMIC RESONATOR OSC2 NOTE: The circuit in Figure 4 shows a typical crystal oscillator circuit for an AT-cut, parallel resonant crystal. Follow the crystal supplier’s recommendations, as the crystal parameters determine the external component values required to provide reliable startup and maximum stability. The load capacitance values used in the oscillator circuit design should include all stray layout capacitances. To minimize output distortion, mount the crystal and capacitors as close as possible to the pins. OSC1 Freescale Semiconductor, Inc... Crystal Connections Figure 5. Ceramic Resonator Connections 8-mc68hc05p9a 16 Pin Descriptions For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Pin Descriptions Pin Functions External Clock Connections The lowest cost oscillator is the RC oscillator configuration where a resistor is connected between the two oscillator pins as shown in Figure 6. The internal startup resistor of approximately 2 MΩ is not recommended between OSC1 and OSC2 for the RC-type oscillator. MCU OSC1 OSC2 R Figure 6. RC Oscillator Connections An external clock from another CMOS-compatible device can drive the OSC1 input, with the OSC2 pin unconnected, as Figure 7 shows. MCU OSC2 Freescale Semiconductor, Inc... RC Oscillator Because the frequency stability of ceramic resonators is not as high as that of crystal oscillators, using a ceramic resonator may degrade the performance of the ADC. OSC1 NOTE: UNCONNECTED RESET IRQ A logic 0 on the RESET pin forces the MCU to a known startup state. The RESET pin input circuit contains an internal Schmitt trigger to improve noise immunity. EXTERNAL CMOS CLOCK Figure 7. External Clock Connections The IRQ pin has the following functions: • Applying asynchronous external interrupt signals • Applying VTST, the mode detection voltage 9-mc68hc05p9a MOTOROLA Pin Descriptions For More Information On This Product, Go to: www.freescale.com 17 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... Pin Descriptions PA7–PA0 PA7–PA0 are general-purpose bidirectional I/O port pins. Use data direction register A to configure port A pins as inputs or outputs. PA7–PA0 also have mask selectable interrupt/pullup options. PB7/SCK– PB5/SDO Port B is a 3-pin bidirectional I/O port that shares its pins with the SIOP. Use data direction register B to configure port B pins as inputs or outputs. PC7/VRH–PC0 Port C is an 8-pin bidirectional I/O port that shares five of its pins with the ADC. Use data direction register C to configure port C pins as inputs or outputs. PD7/TCAP and PD5 Port D is a 2-pin I/O port that shares one of its pins with the capture/compare timer. Use data direction register D to configure port D pins as inputs or outputs. TCMP The TCMP pin is the output compare pin for the capture/compare timer. 10-mc68hc05p9a 18 Pin Descriptions For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Memory Freescale Semiconductor, Inc... Contents Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 Input/Output Register Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 RAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 ROM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 ROM Security Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24 Self-Check Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25 Features • 2104 Bytes of ROM – 48 Bytes of Page Zero ROM – Eight Locations for User Vectors • 128 Bytes of User RAM • 240 Selfcheck ROM 5-mc68hc05p9a MOTOROLA Memory For More Information On This Product, Go to: www.freescale.com 19 Freescale Semiconductor, Inc. Memory Freescale Semiconductor, Inc... Memory Map $0000 ↓ $001F I/O Registers (32 Bytes) $0020 ↓ $004F Page Zero User ROM (48 Bytes) $0050 ↓ $007F Unimplemented (48 Bytes) Port A Data Register (PORTA) Port B Data Register (PORTB) Port C Data Register (PORTC) Port D Data Register (PORTD) Data Direction Register A (DDRA) Data Direction Register B (DDRB) Data Direction Register C (DDRC) Data Direction Register D (DDRD) Timer Control Register (TCR) Timer Status Register (TSR) Input Capture Register High (ICRH) Input Capture Register Low (ICRL) Output Compare Register High (OCRH) Output Compare Register Low (OCRL) Timer Register High (TRH) Timer Register Low (TRL) Alternate Timer Register High (ATRH) Alternate Timer Register Low (ATRL) Unimplemented ADC Data Register (ADDR) $0000 $0001 $0002 $0003 $0004 $0005 $0006 $0007 $0008 $0009 $000A $000B $000C $000D $000E $000F $0010 $0011 $0012 $0013 $0014 $0015 $0016 $0017 $0018 $0019 $001A $001B $001C $001D ADC Status/Control Register (ADSCR) $001E Reserved $001F Timer Interrupt Vector High $1FF8 Unimplemented $0080 ↓ $00FF RAM (128 Bytes) $0100 ↓ $08FF User ROM (2048 Bytes) SIOP Control Register (SCR) SIOP Status Register (SSR) SIOP Data Register (SDR) Unimplemented $0900 ↓ $1EFF Unimplemented (5632 Bytes) $1F00 ↓ $1FEF Self Check ROM (240 Bytes) $1FF0 COP Control Register $1FF1 ↓ $1FF7 Reserved $1FF8 ↓ $1FFF User Vector (8 Bytes) Timer Interrupt Vector Low $1FF9 External Interrupt Vector High $1FFA External Interrupt Vector Low $1FFB Software Interrupt Vector High $1FFC Software Interrupt Vector Low $1FFD Reset Vector High $1FFE Reset Vector Low $1FFF Figure 8. Memory Map 6-mc68hc05p9a 20 Memory For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Memory Input/Output Register Summary Input/Output Register Summary Addr. $0000 Freescale Semiconductor, Inc... $0001 $0002 $0003 Name R/W Bit 7 Read: PA7 Port A Data Register (PORTA) Write: Reset: Port B Data Register (PORTB) Port C Data Register (PORTC) Port D Data Register (PORTD) $0004 Data Direction Register A (DDRA) $0005 Data Direction Register B (DDRB) $0006 Data Direction Register C (DDRC) $0007 Data Direction Register D (DDRD) $0008 Unimplemented $0009 Unimplemented Read: Write: Reset: Read: Write: Reset: Read: Write: Reset: PB7 6 5 4 3 2 1 Bit 0 PA6 PA5 PA4 PA3 PA2 PA1 PA0 0 0 0 PC2 PC1 PC0 0 0 0 Unaffected by reset PB6 0 PB5 0 Unaffected by reset PC7 PC6 PC5 PC4 PC3 Unaffected by reset PD7 0 1 PD5 0 Unaffected by reset Read: DDRA7 DDRA6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRA0 Write: 0 0 0 0 0 0 0 0 Reset: Read: DDRB7 DDRB6 DDRB5 Write: 0 0 0 Reset: 0 0 0 0 0 0 0 0 0 0 Read: DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 Write: 0 0 0 0 0 0 0 0 Reset: Read: Write: Reset: 0 0 0 0 DDRD5 0 0 0 0 0 0 0 0 0 0 0 = Unimplemented R = Reserved U = Unaffected Figure 9. I/O Register Summary 7-mc68hc05p9a MOTOROLA Memory For More Information On This Product, Go to: www.freescale.com 21 Freescale Semiconductor, Inc. Memory Addr. $000A $000B Freescale Semiconductor, Inc... $000C Name R/W Bit 7 0 Read: SIOP Control Register (SCR) Write: 0 Reset: Read: SPIF Write: 0 Reset: Read: Bit 7 SIOP Data Register (SDR) Write: Reset: SIOP Status Register (SSR) $000D Unimplemented $000E Unimplemented $000F Unimplemented $0010 Unimplemented $0011 Unimplemented $0012 Timer Control Register (TCR) $0013 $0014 $0015 $0016 Timer Status Register (TSR) Input Capture Register High (ICRH) Input Capture Register Low (ICRL) Output Compare Register High (OCRH) Read: Write: Reset: Read: Write: Reset: 6 SPE 5 4 0 MSTR 1 Bit 0 0 0 0 0 0 0 0 0 0 DCOL 0 0 0 0 0 0 0 0 0 0 0 0 0 6 5 4 3 2 1 Bit 0 IEDG OLVL Unaffected by reset 0 0 0 0 0 0 0 U 0 TOF 0 0 0 0 0 0 0 0 0 0 12 11 10 9 Bit 8 2 1 Bit 0 10 9 Bit 8 OCIE TOIE 0 0 ICF OCF Unaffected by reset Read: Bit 15 Write: Reset: 14 Read: Write: Reset: 6 Read: Bit 15 Write: Reset: 2 0 0 ICIE Bit 7 3 13 Unaffected by reset 5 4 3 Unaffected by reset 14 13 12 11 Unaffected by reset = Unimplemented R = Reserved U = Unaffected Figure 9. I/O Register Summary (Continued) 8-mc68hc05p9a 22 Memory For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Memory Input/Output Register Summary Addr. $0017 Name R/W Bit 7 Read: Bit 7 Output Compare Register Low (OCRL) Write: Reset: 6 5 4 3 2 1 Bit 0 6 5 4 3 2 1 Bit 0 Read: Bit 15 Write: Reset: 14 10 9 Bit 8 Read: Write: Reset: 6 1 Bit 0 9 Bit 8 1 Bit 0 2 1 Bit 0 CH2 CH1 CH0 Timer Register High (TRH) $0018 Timer Register Low (TRL) Freescale Semiconductor, Inc... $0019 $001A $001B Alternate Timer Register High (ATRH) Alternate Timer Register Low (ATRL) Unimplemented $001C ADC Data Register (ADDR) $001D $001E ADC Status/Control Register (ADSCR) $001F Reserved $1FF0 COP Register (COPR) Bit 7 Unaffected by reset 13 5 4 3 2 Reset initializes TRL to $FC 14 Read: Write: Reset: 6 Bit 7 13 12 11 10 Reset initializes ATRH to $FF 5 4 3 2 Reset initializes ATRL to $FC Read: Write: Reset: Unaffected by reset Read: Write: Reset: Bit 7 Read: Write: Reset: CCF Read: Write: Reset: 11 Reset initializes TRH to $FF Read: Bit 15 Write: Reset: Read: Write: Reset: 12 6 5 4 3 Unaffected by reset 0 0 0 0 0 0 0 0 R R R R R R R R R R R R R COPC ADRC ADON 0 0 R R Unaffected by reset = Unimplemented R = Reserved U = Unaffected Figure 9. I/O Register Summary (Continued) 9-mc68hc05p9a MOTOROLA Memory For More Information On This Product, Go to: www.freescale.com 23 Freescale Semiconductor, Inc. Memory RAM Freescale Semiconductor, Inc... The 128 addresses from $0080–$00FF are RAM locations. The CPU uses the top 64 RAM addresses, $00C0–$00FF, as the stack. Before processing an interrupt, the CPU uses five bytes of the stack to save the contents of the CPU registers. During a subroutine call, the CPU uses two bytes of the stack to store the return address. The stack pointer decrements when the CPU stores a byte on the stack and increments when the CPU retrieves a byte from the stack. NOTE: Be careful when using nested subroutines or multiple interrupt levels. The CPU may overwrite data in the RAM during a subroutine or during the interrupt stacking operation. ROM The following addresses are mask programmable ROM locations: • $0020–$004F • $0100–$08FF • $1FF8–$1FFF (reserved for user-defined interrupt and reset vectors) ROM Security Feature A security1 feature has been incorporated into the MC68HC05P9A to help prevent externally reading of code in the ROM. This feature aids in keeping customer developed software proprietary. 1. No security feature is absolutely secure. However, Motorola’s strategy is to make reading or copying the ROM difficult for unauthorized users. 10-mc68hc05p9a 24 Memory For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Memory Self-Check Mode Self-Check Mode The self-check program resides at mask ROM locations $1F00 to $1FEF. This program is designed to check the part’s functionality with a minimum of support hardware. The COP subsystem is disabled in the self-check mode so that routines that feed the COP do not exist in the self-check program. Freescale Semiconductor, Inc... The self-check mode is entered on the rising edge of RESET if the IRQ pin is driven to double the supply voltage and the TCAP/PD7 pin is at logic 1. RESET must be held low for 4064 cycles after POR or for a time, tRL, for any other reset. After reset, the I/O, RAM, ROM, timer, and SIOP are tested. Self-check results (using LEDs as monitors) are shown in Table 3. It is not recommended that the user code use any of the self-check code. The self-check code is subject to change at any time to improve testability or manufacturability. Table 3. Self-Check Results PC2 PC1 PC0 0 0 1 Bad I/O 0 1 0 Bad RAM 0 1 1 Bad Timer 1 0 0 Bad ROM 1 0 1 Bad Serial Flashing All Others Remarks Good Device Bad Device 0 indicates LED is on; 1 indicates LED is off. 11-mc68hc05p9a MOTOROLA Memory For More Information On This Product, Go to: www.freescale.com 25 Freescale Semiconductor, Inc. Memory VDD VTST 10 KΩ 4.7 kΩ VDD RESET 1 µF IRQ PA7 PA6 PA5 1 28 2 27 3 26 4 25 5 24 PA4 Freescale Semiconductor, Inc... 6 23 PA3 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15 PA2 PA1 PA0 SDO/PB5 SDI/PB6 SCK/PB7 VSS VDD 10 KΩ OSC1 4 MHz OSC2 TCAP/PD7 TCMP 10 MΩ PD5 20 pF 20 pF PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 470 Ω VDD = 5.0 V VDD 10 KΩ VTST = 10.0 V Figure 10. Self-Check Circuit 12-mc68hc05p9a 26 Memory For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Central Processor Unit CPU Contents Freescale Semiconductor, Inc... Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 CPU Control Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Arithmetic/Logic Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 CPU Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30 Accumulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Index Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Stack Pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 Program Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Condition Code Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Addressing Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Inherent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34 Direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Extended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Indexed, No Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Indexed, 8-Bit Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35 Indexed, 16-Bit Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Relative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 Instruction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Register/Memory Instructions . . . . . . . . . . . . . . . . . . . . . . . . . .37 Read-Modify-Write Instructions . . . . . . . . . . . . . . . . . . . . . . . . .38 Jump/Branch Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 Bit Manipulation Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . .41 Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 Instruction Set Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 Opcode Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 5-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 27 Freescale Semiconductor, Inc. CPU Freescale Semiconductor, Inc... Features • 2.1-MHz Bus Frequency • 8-Bit Accumulator • 8-Bit Index Register • 13-Bit Program Counter • 6-Bit Stack Pointer • Condition Code Register with Five Status Flags • 62 Instructions • Eight Addressing Modes • Power-Saving Stop and Wait Modes Introduction The central processor unit (CPU) consists of a CPU control unit, an arithmetic/logic unit (ALU), and five CPU registers. The CPU control unit fetches and decodes instructions. The ALU executes the instructions. The CPU registers contain data, addresses, and status bits that reflect the results of CPU operations. 6-hc05cpu 28 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Introduction ARITHMETIC/LOGIC UNIT CPU CONTROL UNIT 7 6 5 4 3 2 1 0 ACCUMULATOR (A) 7 6 5 4 3 2 1 0 Freescale Semiconductor, Inc... INDEX REGISTER (X) 15 14 13 12 11 10 9 8 7 6 0 0 0 1 1 15 14 13 12 11 10 9 8 7 6 0 0 0 0 0 0 0 5 4 3 2 1 0 STACK POINTER (SP) 5 4 3 2 1 0 0 PROGRAM COUNTER (PC) 7 6 5 4 3 2 1 0 1 1 1 H I N Z C CONDITION CODE REGISTER (CCR) HALF-CARRY FLAG INTERRUPT MASK NEGATIVE FLAG ZERO FLAG CARRY/BORROW FLAG Figure 11. CPU Programming Model 7-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 29 Freescale Semiconductor, Inc. CPU CPU Control Unit The CPU control unit fetches and decodes instructions during program operation. The control unit selects the memory locations to read and write and coordinates the timing of all CPU operations. Freescale Semiconductor, Inc... Arithmetic/Logic Unit The arithmetic/logic unit (ALU) performs the arithmetic, logic, and manipulation operations decoded from the instruction set by the CPU control unit. The ALU produces the results called for by the program and sets or clears status and control bits in the condition code register (CCR). CPU Registers The M68HC05 CPU contains five registers that control and monitor MCU operation: • Accumulator • Index register • Stack pointer • Program counter • Condition code register CPU registers are not memory mapped. 8-hc05cpu 30 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU CPU Registers Accumulator The accumulator is a general-purpose 8-bit register. The CPU uses the accumulator to hold operands and the results of arithmetic and logic operations. Bit 7 6 5 4 3 2 1 Bit 0 Read: Write: Freescale Semiconductor, Inc... Reset: Unaffected by reset Figure 12. Accumulator (A) Index Register The index register can be used for data storage or as a counter. In the indexed addressing modes, the CPU uses the byte in the index register to determine the effective address of the operand. Bit 7 6 5 4 3 2 1 Bit 0 Read: Write: Reset: Unaffected by reset Figure 13. Index Register (X) Stack Pointer The stack pointer is a 16-bit register that contains the address of the next stack location to be used. During a reset or after the reset stack pointer instruction (RSP), the stack pointer is preset to $00FF. The address in the stack pointer decrements after a byte is stacked and increments before a byte is unstacked. Read: Bit 15 14 13 12 11 10 9 8 7 6 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 5 4 3 2 1 Bit 0 1 1 1 1 1 1 Write: Reset: = Unimplemented Figure 14. Stack Pointer (SP) 9-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 31 Freescale Semiconductor, Inc. CPU The 10 most significant bits of the stack pointer are permanently fixed at 0000000011, so the stack pointer produces addresses from $00C0 to $00FF. If subroutines and interrupts use more than 64 stack locations, the stack pointer wraps around to address $00FF and begins writing over the previously stored data. A subroutine uses two stack locations; an interrupt uses five locations. Freescale Semiconductor, Inc... Program Counter The program counter is a 16-bit register that contains the address of the next instruction or operand to be fetched. The three most significant bits of the program counter are ignored internally and appear as 000. Normally, the address in the program counter automatically increments to the next sequential memory location every time an instruction or operand is fetched. Jump, branch, and interrupt operations load the program counter with an address other than that of the next sequential location. Bit 15 14 13 0 0 0 12 11 10 9 8 7 6 5 4 3 2 Bit 0 1 Read: Write: Reset: Loaded with vector from $1FFE and $1FFF Figure 15. Program Counter (PC) Condition Code Register The condition code register is an 8-bit register whose three most significant bits are permanently fixed at 111. The condition code register contains the interrupt mask and four flags that indicate the results of the instruction just executed. Read: Bit 7 6 5 1 1 1 4 3 2 1 Bit 0 H I N Z C U 1 U U U Write: Reset: 1 1 1 = Unimplemented U = Unaffected Figure 16. Condition Code Register (CCR) 10-hc05cpu 32 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU CPU Registers H — Half-Carry Flag The CPU sets the half-carry flag when a carry occurs between bits 3 and 4 of the accumulator during an ADD or ADC operation. The half-carry flag is required for binary-coded decimal (BCD) arithmetic operations. I — Interrupt Mask Freescale Semiconductor, Inc... Setting the interrupt mask disables interrupts. If an interrupt request occurs while the interrupt mask is logic zero, the CPU saves the CPU registers on the stack, sets the interrupt mask, and then fetches the interrupt vector. If an interrupt request occurs while the interrupt mask is set, the interrupt request is latched. Normally, the CPU processes the latched interrupt as soon as the interrupt mask is cleared again. A return from interrupt (RTI) instruction pulls the CPU registers from the stack, restoring the interrupt mask to its cleared state. After any reset, the interrupt mask is set and can be cleared only by a software instruction. N — Negative Flag The CPU sets the negative flag when an arithmetic operation, logical operation, or data manipulation produces a negative result. Z — Zero Flag The CPU sets the zero flag when an arithmetic operation, logical operation, or data manipulation produces a result of $00. C — Carry/Borrow Flag The CPU sets the carry/borrow flag when an addition operation produces a carry out of bit 7 of the accumulator or when a subtraction operation requires a borrow. Some logical operations and data manipulation instructions also clear or set the carry/borrow flag. 11-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 33 Freescale Semiconductor, Inc. CPU Instruction Set Freescale Semiconductor, Inc... The MCU instruction set has 62 instructions and uses eight addressing modes. The instructions include all those of the M146805 CMOS Family plus one more: the unsigned multiply (MUL) instruction. The MUL instruction allows unsigned multiplication of the contents of the accumulator (A) and the index register (X). The high-order product is stored in the index register, and the low-order product is stored in the accumulator. Addressing Modes The CPU uses eight addressing modes for flexibility in accessing data. The addressing modes provide eight different ways for the CPU to find the data required to execute an instruction. The eight addressing modes are: • Inherent • Immediate • Direct • Extended • Indexed, no offset • Indexed, 8-bit offset • Indexed, 16-bit offset • Relative Inherent Inherent instructions are those that have no operand, such as return from interrupt (RTI) and stop (STOP). Some of the inherent instructions act on data in the CPU registers, such as set carry flag (SEC) and increment accumulator (INCA). Inherent instructions require no operand address and are one byte long. Immediate Immediate instructions are those that contain a value to be used in an operation with the value in the accumulator or index register. Immediate instructions require no operand address and are two bytes long. The opcode is the first byte, and the immediate data value is the second byte. 12-hc05cpu 34 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... CPU Instruction Set Direct Direct instructions can access any of the first 256 memory locations with two bytes. The first byte is the opcode, and the second is the low byte of the operand address. In direct addressing, the CPU automatically uses $00 as the high byte of the operand address. Extended Extended instructions use three bytes and can access any address in memory. The first byte is the opcode; the second and third bytes are the high and low bytes of the operand address. When using the Motorola assembler, the programmer does not need to specify whether an instruction is direct or extended. The assembler automatically selects the shortest form of the instruction. Indexed, No Offset Indexed instructions with no offset are 1-byte instructions that can access data with variable addresses within the first 256 memory locations. The index register contains the low byte of the effective address of the operand. The CPU automatically uses $00 as the high byte, so these instructions can address locations $0000–$00FF. Indexed, no offset instructions are often used to move a pointer through a table or to hold the address of a frequently used RAM or I/O location. Indexed, 8-Bit Offset Indexed, 8-bit offset instructions are 2-byte instructions that can access data with variable addresses within the first 511 memory locations. The CPU adds the unsigned byte in the index register to the unsigned byte following the opcode. The sum is the effective address of the operand. These instructions can access locations $0000–$01FE. Indexed 8-bit offset instructions are useful for selecting the kth element in an n-element table. The table can begin anywhere within the first 256 memory locations and could extend as far as location 510 ($01FE). The k value is typically in the index register, and the address of the beginning of the table is in the byte following the opcode. 13-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 35 Freescale Semiconductor, Inc. CPU Indexed, 16-Bit Offset Indexed, 16-bit offset instructions are 3-byte instructions that can access data with variable addresses at any location in memory. The CPU adds the unsigned byte in the index register to the two unsigned bytes following the opcode. The sum is the effective address of the operand. The first byte after the opcode is the high byte of the 16-bit offset; the second byte is the low byte of the offset. Freescale Semiconductor, Inc... Indexed, 16-bit offset instructions are useful for selecting the kth element in an n-element table anywhere in memory. As with direct and extended addressing, the Motorola assembler determines the shortest form of indexed addressing. Relative Relative addressing is only for branch instructions. If the branch condition is true, the CPU finds the effective branch destination by adding the signed byte following the opcode to the contents of the program counter. If the branch condition is not true, the CPU goes to the next instruction. The offset is a signed, two’s complement byte that gives a branching range of –128 to +127 bytes from the address of the next location after the branch instruction. When using the Motorola assembler, the programmer does not need to calculate the offset, because the assembler determines the proper offset and verifies that it is within the span of the branch. 14-hc05cpu 36 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Instruction Set Freescale Semiconductor, Inc... Instruction Types Register/ Memory Instructions The MCU instructions fall into the following five categories: • Register/Memory Instructions • Read-Modify-Write Instructions • Jump/Branch Instructions • Bit Manipulation Instructions • Control Instructions These instructions operate on CPU registers and memory locations. Most of them use two operands. One operand is in either the accumulator or the index register. The CPU finds the other operand in memory. Table 4. Register/Memory Instructions Instruction Mnemonic Add Memory Byte and Carry Bit to Accumulator ADC Add Memory Byte to Accumulator ADD AND Memory Byte with Accumulator AND Bit Test Accumulator BIT Compare Accumulator CMP Compare Index Register with Memory Byte CPX EXCLUSIVE OR Accumulator with Memory Byte EOR Load Accumulator with Memory Byte LDA Load Index Register with Memory Byte LDX Multiply MUL OR Accumulator with Memory Byte ORA Subtract Memory Byte and Carry Bit from Accumulator SBC Store Accumulator in Memory STA Store Index Register in Memory STX Subtract Memory Byte from Accumulator SUB 15-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 37 Freescale Semiconductor, Inc. CPU Read-ModifyWrite Instructions NOTE: These instructions read a memory location or a register, modify its contents, and write the modified value back to the memory location or to the register. Do not use read-modify-write operations on write-only registers. Table 5. Read-Modify-Write Instructions Freescale Semiconductor, Inc... Instruction Mnemonic Arithmetic Shift Left (Same as LSL) ASL Arithmetic Shift Right ASR Bit Clear BCLR(1) Bit Set BSET(1) Clear Register CLR Complement (One’s Complement) COM Decrement DEC Increment INC Logical Shift Left (Same as ASL) LSL Logical Shift Right LSR Negate (Two’s Complement) NEG Rotate Left through Carry Bit ROL Rotate Right through Carry Bit ROR Test for Negative or Zero TST(2) 1. Unlike other read-modify-write instructions, BCLR and BSET use only direct addressing. 2. TST is an exception to the read-modify-write sequence because it does not write a replacement value. 16-hc05cpu 38 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Instruction Set Jump/Branch Instructions Jump instructions allow the CPU to interrupt the normal sequence of the program counter. The unconditional jump instruction (JMP) and the jump-to-subroutine instruction (JSR) have no register operand. Branch instructions allow the CPU to interrupt the normal sequence of the program counter when a test condition is met. If the test condition is not met, the branch is not performed. Freescale Semiconductor, Inc... The BRCLR and BRSET instructions cause a branch based on the state of any readable bit in the first 256 memory locations. These 3-byte instructions use a combination of direct addressing and relative addressing. The direct address of the byte to be tested is in the byte following the opcode. The third byte is the signed offset byte. The CPU finds the effective branch destination by adding the third byte to the program counter if the specified bit tests true. The bit to be tested and its condition (set or clear) is part of the opcode. The span of branching is from –128 to +127 from the address of the next location after the branch instruction. The CPU also transfers the tested bit to the carry/borrow bit of the condition code register. 17-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 39 Freescale Semiconductor, Inc. CPU Table 6. Jump and Branch Instructions Freescale Semiconductor, Inc... Instruction Mnemonic Branch if Carry Bit Clear BCC Branch if Carry Bit Set BCS Branch if Equal BEQ Branch if Half-Carry Bit Clear BHCC Branch if Half-Carry Bit Set BHCS Branch if Higher BHI Branch if Higher or Same BHS Branch if IRQ Pin High BIH Branch if IRQ Pin Low BIL Branch if Lower BLO Branch if Lower or Same BLS Branch if Interrupt Mask Clear BMC Branch if Minus BMI Branch if Interrupt Mask Set BMS Branch if Not Equal BNE Branch if Plus BPL Branch Always BRA Branch if Bit Clear Branch Never Branch if Bit Set BRCLR BRN BRSET Branch to Subroutine BSR Unconditional Jump JMP Jump to Subroutine JSR 18-hc05cpu 40 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Instruction Set Bit Manipulation Instructions The CPU can set or clear any writable bit in the first 256 bytes of memory, which includes I/O registers and on-chip RAM locations. The CPU can also test and branch based on the state of any bit in any of the first 256 memory locations. Table 7. Bit Manipulation Instructions Instruction Freescale Semiconductor, Inc... Bit Clear BCLR Branch if Bit Clear BRCLR Branch if Bit Set BRSET Bit Set Control Instructions Mnemonic BSET These instructions act on CPU registers and control CPU operation during program execution. Table 8. Control Instructions Instruction Mnemonic Clear Carry Bit CLC Clear Interrupt Mask CLI No Operation NOP Reset Stack Pointer RSP Return from Interrupt RTI Return from Subroutine RTS Set Carry Bit SEC Set Interrupt Mask SEI Stop Oscillator and Enable IRQ Pin STOP Software Interrupt SWI Transfer Accumulator to Index Register TAX Transfer Index Register to Accumulator TXA Stop CPU Clock and Enable Interrupts WAIT 19-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 41 Freescale Semiconductor, Inc. CPU Instruction Set Summary H I N Z C A ← (A) + (M) + (C) Add with Carry ↕ — A ← (A) + (M) Add without Carry ↕ — A ← (A) ∧ (M) Logical AND Arithmetic Shift Left (Same as LSL) C C b7 BCLR n opr Clear Bit n BCS rel BEQ rel BHCC rel BHCS rel Branch if Carry Bit Set (Same as BLO) Branch if Equal Branch if Half-Carry Bit Clear Branch if Half-Carry Bit Set — — ↕ ↕ ↕ ↕ ↕ ↕ — ↕ ↕ b0 Arithmetic Shift Right Branch if Carry Bit Clear ↕ — — ↕ 0 b7 ↕ — — ↕ ↕ ↕ b0 PC ← (PC) + 2 + rel ? C = 0 — — — — — Mn ← 0 — — — — — PC ← (PC) + 2 + rel ? C = 1 PC ← (PC) + 2 + rel ? Z = 1 PC ← (PC) + 2 + rel ? H = 0 PC ← (PC) + 2 + rel ? H = 1 — — — — — — — — — — — — — — — — — — — — IMM DIR EXT IX2 IX1 IX IMM DIR EXT IX2 IX1 IX IMM DIR EXT IX2 IX1 IX DIR INH INH IX1 IX DIR INH INH IX1 IX REL DIR (b0) DIR (b1) DIR (b2) DIR (b3) DIR (b4) DIR (b5) DIR (b6) DIR (b7) REL REL REL REL A9 B9 C9 D9 E9 F9 AB BB CB DB EB FB A4 B4 C4 D4 E4 F4 38 48 58 68 78 37 47 57 67 77 24 11 13 15 17 19 1B 1D 1F 25 27 28 29 ii dd hh ll ee ff ff ii dd hh ll ee ff ff ii dd hh ll ee ff ff dd ff dd ff rr dd dd dd dd dd dd dd dd rr rr rr rr Cycles Description Operand ADC #opr ADC opr ADC opr ADC opr,X ADC opr,X ADC ,X ADD #opr ADD opr ADD opr ADD opr,X ADD opr,X ADD ,X AND #opr AND opr AND opr AND opr,X AND opr,X AND ,X ASL opr ASLA ASLX ASL opr,X ASL ,X ASR opr ASRA ASRX ASR opr,X ASR ,X BCC rel Operation Effect on CCR Opcode Freescale Semiconductor, Inc... Source Form Address Mode Table 9. Instruction Set Summary 2 3 4 5 4 3 2 3 4 5 4 3 2 3 4 5 4 3 5 3 3 6 5 5 3 3 6 5 3 5 5 5 5 5 5 5 5 3 3 3 3 20-hc05cpu 42 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Instruction Set Branch if Higher Branch if Higher or Same Branch if IRQ Pin High Branch if IRQ Pin Low Bit Test Accumulator with Memory Byte Branch if Lower (Same as BCS) Branch if Lower or Same Branch if Interrupt Mask Clear Branch if Minus Branch if Interrupt Mask Set Branch if Not Equal Branch if Plus Branch Always Branch Never BRSET n opr rel Branch if Bit n Set BSET n opr Set Bit n PC ← (PC) + 2 + rel ? C ∨ Z = 0 PC ← (PC) + 2 + rel ? C = 0 PC ← (PC) + 2 + rel ? IRQ = 1 PC ← (PC) + 2 + rel ? IRQ = 0 (A) ∧ (M) PC ← (PC) + 2 + rel ? C = 1 PC ← (PC) + 2 + rel ? C ∨ Z = 1 PC ← (PC) + 2 + rel ? I = 0 PC ← (PC) + 2 + rel ? N = 1 PC ← (PC) + 2 + rel ? I = 1 PC ← (PC) + 2 + rel ? Z = 0 PC ← (PC) + 2 + rel ? N = 0 PC ← (PC) + 2 + rel ? 1 = 1 — — — — — — — — — — — — — — — — — — — — — — ↕ ↕ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — PC ← (PC) + 2 + rel ? Mn = 0 — — — — ↕ PC ← (PC) + 2 + rel ? 1 = 0 — — — — — PC ← (PC) + 2 + rel ? Mn = 1 — — — — ↕ Mn ← 1 — — — — — REL REL REL REL IMM DIR EXT IX2 IX1 IX REL REL REL REL REL REL REL REL DIR (b0) DIR (b1) DIR (b2) DIR (b3) DIR (b4) DIR (b5) DIR (b6) DIR (b7) REL DIR (b0) DIR (b1) DIR (b2) DIR (b3) DIR (b4) DIR (b5) DIR (b6) DIR (b7) DIR (b0) DIR (b1) DIR (b2) DIR (b3) DIR (b4) DIR (b5) DIR (b6) DIR (b7) 22 24 2F 2E A5 B5 C5 D5 E5 F5 25 23 2C 2B 2D 26 2A 20 01 03 05 07 09 0B 0D 0F 21 00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E rr rr rr rr ii dd hh ll ee ff ff rr rr rr rr rr rr rr rr dd rr dd rr dd rr dd rr dd rr dd rr dd rr dd rr rr dd rr dd rr dd rr dd rr dd rr dd rr dd rr dd rr dd dd dd dd dd dd dd dd Cycles H I N Z C BRCLR n opr rel Branch if Bit n Clear BRN rel Description Operand BHI rel BHS rel BIH rel BIL rel BIT #opr BIT opr BIT opr BIT opr,X BIT opr,X BIT ,X BLO rel BLS rel BMC rel BMI rel BMS rel BNE rel BPL rel BRA rel Operation Effect on CCR Opcode Freescale Semiconductor, Inc... Source Form Address Mode Table 9. Instruction Set Summary (Continued) 3 3 3 3 2 3 4 5 4 3 3 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 3 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 21-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 43 Freescale Semiconductor, Inc. CPU Table 9. Instruction Set Summary (Continued) Operand Cycles Description Opcode Operation Effect on CCR Address Mode Freescale Semiconductor, Inc... Source Form — — — — — REL AD rr 6 — — — — 0 — 0 — — — INH INH DIR INH INH IX1 IX IMM DIR EXT IX2 IX1 IX DIR INH INH IX1 IX IMM DIR EXT IX2 IX1 IX DIR INH INH IX1 IX IMM DIR EXT IX2 IX1 IX DIR INH INH IX1 IX 98 9A 3F 4F 5F 6F 7F A1 B1 C1 D1 E1 F1 33 43 53 63 73 A3 B3 C3 D3 E3 F3 3A 4A 5A 6A 7A A8 B8 C8 D8 E8 F8 3C 4C 5C 6C 7C H I N Z C BSR rel Branch to Subroutine CLC CLI CLR opr CLRA CLRX CLR opr,X CLR ,X CMP #opr CMP opr CMP opr CMP opr,X CMP opr,X CMP ,X COM opr COMA COMX COM opr,X COM ,X CPX #opr CPX opr CPX opr CPX opr,X CPX opr,X CPX ,X DEC opr DECA DECX DEC opr,X DEC ,X EOR #opr EOR opr EOR opr EOR opr,X EOR opr,X EOR ,X INC opr INCA INCX INC opr,X INC ,X Clear Carry Bit Clear Interrupt Mask PC ← (PC) + 2; push (PCL) SP ← (SP) – 1; push (PCH) SP ← (SP) – 1 PC ← (PC) + rel C←0 I←0 M ← $00 A ← $00 X ← $00 M ← $00 M ← $00 Clear Byte Compare Accumulator with Memory Byte Complement Byte (One’s Complement) Compare Index Register with Memory Byte M ← (M) = $FF – (M) A ← (A) = $FF – (A) X ← (X) = $FF – (X) M ← (M) = $FF – (M) M ← (M) = $FF – (M) (X) – (M) M ← (M) – 1 A ← (A) – 1 X ← (X) – 1 M ← (M) – 1 M ← (M) – 1 Decrement Byte EXCLUSIVE OR Accumulator with Memory Byte Increment Byte (A) – (M) A ← (A) ⊕ (M) M ← (M) + 1 A ← (A) + 1 X ← (X) + 1 M ← (M) + 1 M ← (M) + 1 — — 0 1 — — — ↕ — — ↕ — — ↕ — — ↕ — — ↕ — — ↕ ↕ ↕ ↕ ↕ 1 ↕ ↕ — ↕ — ↕ — dd ff ii dd hh ll ee ff ff dd ff ii dd hh ll ee ff ff dd ff ii dd hh ll ee ff ff dd ff 2 2 5 3 3 6 5 2 3 4 5 4 3 5 3 3 6 5 2 3 4 5 4 3 5 3 3 6 5 2 3 4 5 4 3 5 3 3 6 5 22-hc05cpu 44 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Instruction Set H I N Z C Unconditional Jump PC ← Jump Address Jump to Subroutine PC ← (PC) + n (n = 1, 2, or 3) Push (PCL); SP ← (SP) – 1 Push (PCH); SP ← (SP) – 1 PC ← Effective Address A ← (M) Load Accumulator with Memory Byte — — ↕ C 0 b7 C b7 Unsigned Multiply Negate Byte (Two’s Complement) — — ↕ ↕ — ↕ — ↕ ↕ b0 0 Logical Shift Right — — — — — — — ↕ X ← (M) Load Index Register with Memory Byte Logical Shift Left (Same as ASL) — — — — — — — 0 ↕ ↕ b0 X : A ← (X) × (A) M ← –(M) = $00 – (M) A ← –(A) = $00 – (A) X ← –(X) = $00 – (X) M ← –(M) = $00 – (M) M ← –(M) = $00 – (M) No Operation 0 — — — 0 — — ↕ ↕ ↕ — — — — — Logical OR Accumulator with Memory A ← (A) ∨ (M) — — ↕ ↕ — DIR EXT IX2 IX1 IX DIR EXT IX2 IX1 IX IMM DIR EXT IX2 IX1 IX IMM DIR EXT IX2 IX1 IX DIR INH INH IX1 IX DIR INH INH IX1 IX INH DIR INH INH IX1 IX INH IMM DIR EXT IX2 IX1 IX BC CC DC EC FC BD CD DD ED FD A6 B6 C6 D6 E6 F6 AE BE CE DE EE FE 38 48 58 68 78 34 44 54 64 74 42 30 40 50 60 70 9D AA BA CA DA EA FA dd hh ll ee ff ff dd hh ll ee ff ff ii dd hh ll ee ff ff ii dd hh ll ee ff ff dd ff dd ff dd ff ii dd hh ll ee ff ff Cycles Description Operand JMP opr JMP opr JMP opr,X JMP opr,X JMP ,X JSR opr JSR opr JSR opr,X JSR opr,X JSR ,X LDA #opr LDA opr LDA opr LDA opr,X LDA opr,X LDA ,X LDX #opr LDX opr LDX opr LDX opr,X LDX opr,X LDX ,X LSL opr LSLA LSLX LSL opr,X LSL ,X LSR opr LSRA LSRX LSR opr,X LSR ,X MUL NEG opr NEGA NEGX NEG opr,X NEG ,X NOP ORA #opr ORA opr ORA opr ORA opr,X ORA opr,X ORA ,X Operation Effect on CCR Opcode Freescale Semiconductor, Inc... Source Form Address Mode Table 9. Instruction Set Summary (Continued) 2 3 4 3 2 5 6 7 6 5 2 3 4 5 4 3 2 3 4 5 4 3 5 3 3 6 5 5 3 3 6 5 11 5 3 3 6 5 2 2 3 4 5 4 3 23-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 45 Freescale Semiconductor, Inc. CPU Table 9. Instruction Set Summary (Continued) 39 49 59 69 79 36 46 56 66 76 9C dd Rotate Byte Left through Carry Bit C ↕ INH 80 9 — — — — — INH 81 6 IMM DIR EXT IX2 IX1 IX INH INH DIR EXT IX2 IX1 IX INH DIR EXT IX2 IX1 IX IMM DIR EXT IX2 IX1 IX A2 B2 C2 D2 E2 F2 99 9B B7 C7 D7 E7 F7 8E BF CF DF EF FF A0 B0 C0 D0 E0 F0 — — ↕ b7 C Rotate Byte Right through Carry Bit b7 Return from Interrupt RTS Return from Subroutine Subtract Memory Byte and Carry Bit from Accumulator A ← (A) – (M) – (C) C←1 I←1 Set Carry Bit Set Interrupt Mask Store Accumulator in Memory M ← (A) Stop Oscillator and Enable IRQ Pin Store Index Register In Memory Subtract Memory Byte from Accumulator ↕ — — ↕ ↕ ↕ b0 SP ← $00FF SP ← (SP) + 1; Pull (CCR) SP ← (SP) + 1; Pull (A) SP ← (SP) + 1; Pull (X) SP ← (SP) + 1; Pull (PCH) SP ← (SP) + 1; Pull (PCL) SP ← (SP) + 1; Pull (PCH) SP ← (SP) + 1; Pull (PCL) Reset Stack Pointer ↕ b0 — — — — — ↕ ↕ ↕ — — ↕ ↕ ↕ ↕ — — — — 1 — 1 — — — — — ↕ ↕ — — 0 — — — M ← (X) A ← (A) – (M) — — ↕ — — ↕ ↕ — ↕ ↕ ff dd ff ii dd hh ll ee ff ff dd hh ll ee ff ff dd hh ll ee ff ff ii dd hh ll ee ff ff Cycles Operand DIR INH INH IX1 IX DIR INH INH IX1 IX INH Description H I N Z C RTI SBC #opr SBC opr SBC opr SBC opr,X SBC opr,X SBC ,X SEC SEI STA opr STA opr STA opr,X STA opr,X STA ,X STOP STX opr STX opr STX opr,X STX opr,X STX ,X SUB #opr SUB opr SUB opr SUB opr,X SUB opr,X SUB ,X Opcode ROL opr ROLA ROLX ROL opr,X ROL ,X ROR opr RORA RORX ROR opr,X ROR ,X RSP Operation Effect on CCR Address Mode Freescale Semiconductor, Inc... Source Form 5 3 3 6 5 5 3 3 6 5 2 2 3 4 5 4 3 2 2 4 5 6 5 4 2 4 5 6 5 4 2 3 4 5 4 3 24-hc05cpu 46 CPU For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. CPU Instruction Set Freescale Semiconductor, Inc... SWI H I N Z C Software Interrupt PC ← (PC) + 1; Push (PCL) SP ← (SP) – 1; Push (PCH) SP ← (SP) – 1; Push (X) SP ← (SP) – 1; Push (A) — 1 — — — SP ← (SP) – 1; Push (CCR) SP ← (SP) – 1; I ← 1 PCH ← Interrupt Vector High Byte PCL ← Interrupt Vector Low Byte X ← (A) — — — — — TAX Transfer Accumulator to Index Register TST opr TSTA TSTX Test Memory Byte for Negative or Zero TST opr,X TST ,X TXA Transfer Index Register to Accumulator WAIT Stop CPU Clock and Enable Interrupts A Accumulator C Carry/borrow flag CCR Condition code register dd Direct address of operand dd rr Direct address of operand and relative offset of branch instruction DIR Direct addressing mode ee ff High and low bytes of offset in indexed, 16-bit offset addressing EXT Extended addressing mode ff Offset byte in indexed, 8-bit offset addressing H Half-carry flag hh ll High and low bytes of operand address in extended addressing I Interrupt mask ii Immediate operand byte IMM Immediate addressing mode INH Inherent addressing mode IX Indexed, no offset addressing mode IX1 Indexed, 8-bit offset addressing mode IX2 Indexed, 16-bit offset addressing mode M Memory location N Negative flag n Any bit Opcode Map (M) – $00 A ← (X) — — ↕ ↕ — INH 83 INH DIR INH INH IX1 IX INH INH 97 3D 4D 5D 6D 7D 9F 8F — — — — — — 0 — — — opr Operand (one or two bytes) PC Program counter PCH Program counter high byte PCL Program counter low byte REL Relative addressing mode rel Relative program counter offset byte rr Relative program counter offset byte SP Stack pointer X Index register Z Zero flag # Immediate value ∧ Logical AND ∨ Logical OR ⊕ Logical EXCLUSIVE OR () Contents of –( ) Negation (two’s complement) ← Loaded with ? If : Concatenated with ↕ Set or cleared — Not affected Cycles Description Operand Operation Effect on CCR Opcode Source Form Address Mode Table 9. Instruction Set Summary (Continued) 10 dd ff 2 4 3 3 5 4 2 2 The opcode map is provided in Table 10. 25-hc05cpu MOTOROLA CPU For More Information On This Product, Go to: www.freescale.com 47 48 CPU For More Information On This Product, Go to: www.freescale.com F E D C B A 9 8 7 6 5 4 3 2 1 0 MSB LSB 1 2 Branch REL 3 DIR 4 5 6 Read-Modify-Write INH INH IX1 7 IX INH = Inherent IMM = Immediate DIR = Direct EXT = Extended REL = Relative IX = Indexed, No Offset IX1 = Indexed, 8-Bit Offset IX2 = Indexed, 16-Bit Offset 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 EOR IMM 2 2 ADC IMM 2 2 ORA IMM 2 2 ADD IMM 2 2 2 SUB IMM 2 2 CMP IMM 2 2 SBC IMM 2 2 CPX IMM 2 2 AND IMM 2 2 BIT IMM 2 2 LDA IMM 2 A IMM MSB 0 LSB 0 5 SUB IX2 2 5 CMP IX2 2 5 SBC IX2 2 5 CPX IX2 2 5 AND IX2 2 5 BIT IX2 2 5 LDA IX2 2 6 STA IX2 2 5 EOR IX2 2 5 ADC IX2 2 5 ORA IX2 2 5 ADD IX2 2 4 JMP IX2 2 7 JSR IX2 2 5 LDX IX2 2 6 STX IX2 2 D 4 SUB IX1 1 4 CMP IX1 1 4 SBC IX1 1 4 CPX IX1 1 4 AND IX1 1 4 BIT IX1 1 4 LDA IX1 1 5 STA IX1 1 4 EOR IX1 1 4 ADC IX1 1 4 ORA IX1 1 4 ADD IX1 1 3 JMP IX1 1 6 JSR IX1 1 4 LDX IX1 1 5 STX IX1 1 E IX1 MSB of Opcode in Hexadecimal 4 SUB EXT 3 4 CMP EXT 3 4 SBC EXT 3 4 CPX EXT 3 4 AND EXT 3 4 BIT EXT 3 4 LDA EXT 3 5 STA EXT 3 4 EOR EXT 3 4 ADC EXT 3 4 ORA EXT 3 4 ADD EXT 3 3 JMP EXT 3 6 JSR EXT 3 4 LDX EXT 3 5 STX EXT 3 C Register/Memory EXT IX2 3 SUB DIR 3 3 CMP DIR 3 3 SBC DIR 3 3 CPX DIR 3 3 AND DIR 3 3 BIT DIR 3 3 LDA DIR 3 4 STA DIR 3 3 EOR DIR 3 3 ADC DIR 3 3 ORA DIR 3 3 ADD DIR 3 2 JMP DIR 3 5 JSR DIR 3 3 LDX DIR 3 4 STX DIR 3 B DIR 5 Number of Cycles BRSET0 Opcode Mnemonic 3 DIR Number of Bytes/Addressing Mode 2 6 BSR REL 2 2 LDX 2 IMM 2 2 TAX INH 2 CLC INH 2 2 SEC INH 2 2 CLI INH 2 2 SEI INH 2 2 RSP INH 2 NOP INH 2 9 2 STOP INH 2 2 WAIT TXA INH 1 INH 10 SWI INH 9 RTI INH 6 RTS INH 8 Control INH INH LSB of Opcode in Hexadecimal 5 5 3 5 3 3 6 5 BRSET0 BSET0 BRA NEG NEGA NEGX NEG NEG 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 1 5 5 3 BRCLR0 BCLR0 BRN 3 DIR 2 DIR 2 REL 1 5 5 3 11 BRSET1 BSET1 BHI MUL 3 DIR 2 DIR 2 REL 1 INH 5 5 3 5 3 3 6 5 BRCLR1 BCLR1 BLS COM COMA COMX COM COM 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 1 5 5 3 5 3 3 6 5 BRSET2 BSET2 BCC LSR LSRA LSRX LSR LSR 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 BRCLR2 BCLR2 BCS/BLO 3 DIR 2 DIR 2 REL 5 5 3 5 3 3 6 5 BRSET3 BSET3 BNE ROR RORA RORX ROR ROR 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 5 3 3 6 5 BRCLR3 BCLR3 BEQ ASR ASRA ASRX ASR ASR 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 5 3 3 6 5 BRSET4 BSET4 BHCC ASL/LSL ASLA/LSLA ASLX/LSLX ASL/LSL ASL/LSL 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 5 3 3 6 5 BRCLR4 BCLR4 BHCS ROL ROLA ROLX ROL ROL 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 5 3 3 6 5 BRSET5 BSET5 BPL DEC DECA DECX DEC DEC 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 BRCLR5 BCLR5 BMI 3 DIR 2 DIR 2 REL 5 5 3 5 3 3 6 5 BRSET6 BSET6 BMC INC INCA INCX INC INC 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 4 3 3 5 4 BRCLR6 BCLR6 BMS TST TSTA TSTX TST TST 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 5 5 3 BRSET7 BSET7 BIL 3 DIR 2 DIR 2 REL 1 5 5 3 5 3 3 6 5 BRCLR7 BCLR7 BIH CLR CLRA CLRX CLR CLR 3 DIR 2 DIR 2 REL 2 DIR 1 INH 1 INH 2 IX1 1 IX 1 0 Bit Manipulation DIR DIR Table 10. Opcode Map Freescale Semiconductor, Inc... STX LDX JSR JMP ADD ORA ADC EOR STA LDA BIT AND CPX SBC CMP SUB F IX IX IX 4 IX 3 IX 5 IX 2 IX 3 IX 3 IX 3 IX 3 IX 4 IX 3 IX 3 IX 3 IX 3 IX 3 IX 3 3 F E D C B A 9 8 7 6 5 4 3 2 1 0 MSB LSB Freescale Semiconductor, Inc. CPU 26-hc05cpu MOTOROLA Freescale Semiconductor, Inc. Resets and Interrupts Contents Freescale Semiconductor, Inc... Resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 Power-On Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50 External Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51 COP Watchdog Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 Low-Voltage Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Software Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 External Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53 Timer Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Input Capture Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Output Compare Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55 Timer Overflow Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 Interrupt Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56 5-mc68hc05p9a MOTOROLA Resets and Interrupts For More Information On This Product, Go to: www.freescale.com 49 Freescale Semiconductor, Inc. Resets and Interrupts Resets Freescale Semiconductor, Inc... A reset immediately stops the operation of the instruction being executed, initializes certain control bits, and loads the program counter with a user-defined reset vector address. The following sources can generate resets: • Power-on reset (POR) circuit • RESET pin • COP watchdog VDD POWER-ON RESET COP WATCHDOG (MASK OPTION) RESET S D INTERNAL CLOCK Q RST TO CPU AND SUBSYSTEMS CK RESET LATCH Figure 17. Reset Sources Power-On Reset NOTE: A positive transition on the VDD pin generates a power-on reset. The power-on reset is strictly for power-up conditions and cannot be used to detect drops in power supply voltage. A 4064 tCYC (internal clock cycle) delay after the oscillator becomes active allows the clock generator to stabilize. If the RESET pin is at logic 0 at the end of 4064 tCYC, the MCU remains in the reset condition until the signal on the RESET pin goes to logic 1. 6-mc68hc05p9a 50 Resets and Interrupts For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Resets and Interrupts Resets VDD (NOTE 1) 4064 tCYC OSC1 PIN INTERNAL CLOCK INTERNAL ADDRESS BUS 1FFE 1FFE 1FFE 1FFE 1FFE Freescale Semiconductor, Inc... INTERNAL DATA BUS 1FFE 1FFF NEW PCH NEW PCL NOTES: 1. Power-on reset threshold is typically between 1 V and 2 V. 2. Internal clock, internal address bus, and internal data bus are not available externally. Figure 18. Power-On Reset Timing External Reset A logic 0 applied to the RESET pin for one and one-half tCYC generates an external reset. A Schmitt trigger senses the logic level at the RESET pin. INTERNAL CLOCK INTERNAL ADDRESS BUS 1FFE INTERNAL DATA BUS 1FFE 1FFE 1FFE NEW PCH 1FFF NEW PCL NEW PC NEW PC DUMMY OP CODE tRL RESET NOTES: 1. Internal clock, internal address bus, and internal data bus are not available externally. 2. The next rising edge of the internal clock after the rising edge of RESET initiates the reset sequence. Figure 19. External Reset Timing Table 11. External Reset Timing Characteristic RESET Pulse Width Symbol Min Max Unit tRL 1.5 — tCYC 7-mc68hc05p9a MOTOROLA Resets and Interrupts For More Information On This Product, Go to: www.freescale.com 51 Freescale Semiconductor, Inc. Resets and Interrupts COP Watchdog Reset A timeout of the COP watchdog generates a COP reset. The COP watchdog is part of a software error detection system and must be cleared periodically to start a new timeout period. To clear the COP watchdog and prevent a COP reset, write a logic 0 to bit 0 (COPC) of the COP register at location $1FF0. Low-Voltage Protection Freescale Semiconductor, Inc... A drop in power supply voltage below the minimum operating VDD voltage is called a brownout condition. A brownout while the MCU is in a non-reset state can corrupt MCU operation and necessitate a power-on reset to resume operation. The best protection against brownout is an undervoltage sensing circuit that pulls the RESET pin low when it detects a low-power supply voltage. The undervoltage sensing circuit may be made of discrete components or an integrated circuit can be used. For information about brownout and the COP watchdog, see the Computer Operating Properly Watchdog section. 8-mc68hc05p9a 52 Resets and Interrupts For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Resets and Interrupts Interrupts Interrupts Freescale Semiconductor, Inc... The following sources can generate interrupts: • SWI instruction • IRQ pin • Capture/compare timer An interrupt temporarily stops normal program execution to process a particular event. An interrupt does not stop the operation of the instruction being executed, but takes effect when the current instruction completes its execution. Interrupt processing automatically saves the CPU registers on the stack and loads the program counter with a user-defined interrupt vector address. Software Interrupt The software interrupt (SWI) instruction causes a non-maskable interrupt. External Interrupt An interrupt signal on the IRQ pin latches an external interrupt request. When the CPU completes its current instruction, it tests the IRQ latch. If the IRQ latch is set, the CPU then tests the I bit in the condition code register. If the I bit is clear, the CPU then begins the interrupt sequence. The CPU clears the IRQ latch during interrupt processing, so that another interrupt signal on the IRQ pin can latch another interrupt request during the interrupt service routine. As soon as the I bit is cleared during the return from interrupt, the CPU can recognize the new interrupt request. Figure 20 shows the IRQ pin interrupt logic. 9-mc68hc05p9a MOTOROLA Resets and Interrupts For More Information On This Product, Go to: www.freescale.com 53 Freescale Semiconductor, Inc. Resets and Interrupts EDGE ONLY MASK OPTION EDGE AND LEVEL VDD Freescale Semiconductor, Inc... FROM OTHER PORT B PINS D Q C Q R EXTERNAL INTERRUPT REQUEST I BIT (FROM CCR) IRQ RESET EXTERNAL INTERRUPT VECTOR FETCH Figure 20. External Interrupt Logic Setting the I bit in the condition code register disables external interrupts. Interrupt triggering sensitivity of the IRQ pin is a mask option. The IRQ pin can be negative-edge triggered or negative-edge- and low-level triggered. The level-sensitive triggering option allows multiple external interrupt sources to be wire-ORed to the IRQ pin. An external interrupt request, shown in Figure 21, is latched as long as any source is holding the IRQ pin low. tILIL IRQ/VPP PIN IRQ1 . . . IRQn tILIH tILIH IRQ (INTERNAL) Figure 21. External Interrupt Timing 10-mc68hc05p9a 54 Resets and Interrupts For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Resets and Interrupts Interrupts Table 12. External Interrupt Timing (VDD = 5.0 Vdc)(1) Characteristic Symbol Min Max Unit Interrupt Pulse Width Low (Edge-Triggered) tILIH 125 — ns Interrupt Pulse Period tILIL Note(2) — tCYC 1. VDD = 5.0 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH 2. The minimum tILIL should not be less than the number of interrupt service routine cycles plus 19 tCYC. Freescale Semiconductor, Inc... Table 13. External Interrupt Timing (VDD = 3.3 Vdc)(1) Characteristic Symbol Min Max Unit Interrupt Pulse Width Low (Edge-Triggered) tILIH 250 — ns Interrupt Pulse Period tILIL Note(2) — tCYC 1. VDD = 3.3 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH 2. The minimum tILIL should not be less than the number of interrupt service routine cycles plus 19 tCYC. Timer Interrupts The capture/compare timer can generate the following interrupts: • Input capture interrupt • Output compare interrupt • Timer overflow interrupt Setting the I bit in the condition code register disables timer interrupts. Input Capture Interrupt An input capture interrupt request occurs if the input capture flag, ICF, becomes set while the input capture interrupt enable bit, ICIE, is also set. ICF is in the timer status register, and ICIE is in the timer control register. Output Compare Interrupt An output compare interrupt request occurs if the output compare flag, OCF, becomes set while the output compare interrupt enable bit, OCIE, is also set. OCF is in the timer status register, and OCIE is in the timer control register. 11-mc68hc05p9a MOTOROLA Resets and Interrupts For More Information On This Product, Go to: www.freescale.com 55 Freescale Semiconductor, Inc. Resets and Interrupts A timer overflow interrupt request occurs if the timer overflow flag, TOF, becomes set while the timer overflow interrupt enable bit, TOIE, is also set. TOF is in the timer status register, and TOIE is in the timer control register. Interrupt Processing The CPU takes the following actions to begin servicing an interrupt: Freescale Semiconductor, Inc... Timer Overflow Interrupt • Stores the CPU registers on the stack in the order shown in Figure 22 • Sets the I bit in the condition code register to prevent further interrupts • Loads the program counter with the contents of the appropriate interrupt vector locations: – $1FFC and $1FFD (software interrupt vector) – $1FFA and $1FFB (external interrupt vector) – $1FF8 and $1FF9 (timer interrupt vector) The return from interrupt (RTI) instruction causes the CPU to recover the CPU registers from the stack as shown in Figure 22. 12-mc68hc05p9a 56 Resets and Interrupts For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Resets and Interrupts Interrupts $00C0 (BOTTOM OF STACK) $00C1 $00C2 Freescale Semiconductor, Inc... UNSTACKING ORDER • • • • • • 5 1 4 2 ACCUMULATOR 3 3 INDEX REGISTER 2 4 PROGRAM COUNTER (HIGH BYTE) 1 5 PROGRAM COUNTER (LOW BYTE) CONDITION CODE REGISTER STACKING ORDER • • • • • • $00FD $00FE $00FF (TOP OF STACK) Figure 22. Interrupt Stacking Order Table 14. Reset/Interrupt Vector Addresses Function Source Local Mask Global Mask Priority (1 = Highest) Vector Address Reset Power-On RESET Pin COP Watchdog(1) None None None None 1 1 1 $1FFE–$1FFF Software Interrupt (SWI) User Code None None External Interrupt IRQ Pin None I Bit 2 $1FFA–$1FFB Timer Interrupts ICF Bit OCF Bit TOF Bit ICIE Bit OCIE Bit TOIE Bit I Bit 3 $1FF8–$1FF9 Same Priority as $1FFC–$1FFD Instruction 1. The COP watchdog is a mask option. 13-mc68hc05p9a MOTOROLA Resets and Interrupts For More Information On This Product, Go to: www.freescale.com 57 Freescale Semiconductor, Inc. Resets and Interrupts FROM RESET YES I BIT SET? NO Freescale Semiconductor, Inc... EXTERNAL INTERRUPT? YES CLEAR IRQ LATCH. NO TIMER INTERRUPT? YES STACK PC, X, A, CCR. SET I BIT. LOAD PC WITH INTERRUPT VECTOR. NO FETCH NEXT INSTRUCTION. SWI INSTRUCTION? YES NO RTI INSTRUCTION? NO YES UNSTACK CCR, A, X, PC. EXECUTE INSTRUCTION. Figure 23. Interrupt Flowchart 14-mc68hc05p9a 58 Resets and Interrupts For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Low-Power Modes Freescale Semiconductor, Inc... Contents Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 Halt Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 Stop Mode The STOP instruction puts the MCU in its lowest power-consumption mode and has the following effects on the MCU: • Stops the internal oscillator, the CPU clock, and the internal clock, turning off the capture/compare timer, the COP watchdog, the SIOP, and the ADC • Clears the I bit in the condition code register, enabling external interrupts • Clears the ICIE, OCIE, and TOIE bits in the timer control register, disabling further timer interrupts The STOP instruction does not affect any other registers or any I/O lines. The following events bring the MCU out of stop mode: • An external interrupt signal on the IRQ pin or a high-to-low transition on the IRQ pin loads the program counter with the contents of locations $1FFA and $1FFB. The timer resumes counting from the last value before the STOP instruction. 5-mc68hc05p9a MOTOROLA Low-Power Modes For More Information On This Product, Go to: www.freescale.com 59 Freescale Semiconductor, Inc. Low-Power Modes • External reset — A logic 0 on the RESET pin resets the MCU and loads the program counter with the contents of locations $1FFE and $1FFF. The timer begins counting from $FFFC. When the MCU exits stop mode, processing resumes after a stabilization delay of 4064 oscillator cycles. Freescale Semiconductor, Inc... An active edge on the PD7/TCAP pin during stop mode sets the ICF flag when an external interrupt brings the MCU out of stop mode. An external interrupt also latches the value in the timer registers into the input capture registers. If a reset brings the MCU out of stop mode, then an active edge on the PD7/TCAP pin during stop mode has no effect on the ICF flag or the input capture registers. See Figure 24 for stop recovery timing information. OSC (NOTE 1) tRL RESET IRQ/VPP (NOTE 2) tILIH 4064 tCYC IRQ/VPP (NOTE 3) INTERNAL CLOCK INTERNAL ADDRESS BUS 1FFE (NOTE 4) 1FFE 1FFE 1FFE NOTES: 1. Internal clocking from OSC1 pin 2. Edge-triggered external interrupt mask option 3. Edge- and level-triggered external interrupt mask option 4. Reset vector shown as example 1FFE 1FFF RESET OR INTERRUPT VECTOR FETCH Figure 24. Stop Recovery Timing 6-mc68hc05p9a 60 Low-Power Modes For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Low-Power Modes Halt Mode Halt Mode NOTE: Halt mode is NOT designed for intentional use. Halt mode is only provided to keep the COP watchdog timer active in the event a STOP instruction is executed inadvertently. This mode of operation is usually achieved by invoking wait mode. Freescale Semiconductor, Inc... Execution of the STOP instruction when STOP is disabled mask option is selected placing the MCU in this low-power mode. Halt mode consumes the same amount of power as wait mode (both halt and wait modes consume more power than stop mode). In halt mode, the internal clock is halted, suspending all processor and internal bus activity. Internal timer clocks remain active, permitting interrupts to be generated from the 16-bit timer or a reset to be generated from the COP watchdog timer. Execution of the STOP instruction automatically clears the I bit in the condition code register, enabling the IRQ external interrupt. All other registers, memory, and input/output lines remain in their previous states. If the 16-bit timer interrupt is enabled, it will cause the processor to exit the halt mode and resume normal operation. The halt mode also can be exited when an IRQ external interrupt or external RESET occurs. When exiting the halt mode, the internal clock will resume after a delay of one to 4064 internal clock cycles. This varied delay time is the result of the halt mode exit circuitry testing the oscillator stabilization delay timer (a feature of the stop mode), which has been free-running (a feature of the wait mode). Figure 25 shows the sequence of events caused by the STOP/HALT instruction. 7-mc68hc05p9a MOTOROLA Low-Power Modes For More Information On This Product, Go to: www.freescale.com 61 Freescale Semiconductor, Inc. Low-Power Modes STOP HALT MOR SWAIT BIT SET? EXTERNAL OSCILLATOR ACTIVE AND INTERNAL TIMER CLOCK ACTIVE Y N STOP INTERNAL PROCESSOR CLOCK, CLEAR I BIT IN CCR STOP EXTERNAL OSCILLATOR, STOP INTERNAL TIMER CLOCK, RESET STARTUP DELAY Y Freescale Semiconductor, Inc... STOP INTERNAL PROCESSOR CLOCK, CLEAR I BIT IN CCR EXTERNAL RESET? N EXTERNAL RESET? Y Y IRQ EXTERNAL INTERRUPT? N N IRQ EXTERNAL INTERRUPT? N Y Y TIMER INTERNAL INTERRUPT? RESTART EXTERNAL OSCILLATOR, START STABILIZATION DELAY N Y END OF STABILIZATION DELAY? COP INTERNAL RESET? Y N N RESTART INTERNAL PROCESSOR CLOCK 1. 2. FETCH RESET VECTOR OR SERVICE INTERRUPT A. STACK B. SET I BIT C. VECTOR TO INTERRUPT ROUTINE Figure 25. STOP/HALT Flowcharts 8-mc68hc05p9a 62 Low-Power Modes For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Low-Power Modes Wait Mode Wait Mode The WAIT instruction puts the MCU in an intermediate power-consumption mode and has the following effects on the MCU: • Clears the I bit in the condition code register, enabling interrupts • Stops the CPU clock, but allows the internal clock to drive the capture/compare timer, the COP watchdog, and the ADC Freescale Semiconductor, Inc... The WAIT instruction does not affect any other registers or any I/O lines. The following conditions restart the CPU clock and bring the MCU out of wait mode: • External interrupt — A high-to-low transition on the IRQ pin loads the program counter with the contents of locations $1FFA and $1FFB. • Timer interrupt — Input capture, output compare, and timer overflow interrupt requests load the program counter with the contents of locations $1FF8 and $1FF9. • COP watchdog reset — A timeout of the COP watchdog resets the MCU and loads the program counter with the contents of locations $1FFE and $1FFF. Software can enable timer interrupts so that the MCU can periodically exit wait mode to reset the COP watchdog. • External reset — A logic 0 on the RESET pin resets the MCU and loads the program counter with the contents of locations $1FFE and $1FFF. Figure 26 shows the sequence of events caused by the WAIT instruction. Figure 27 shows the effect of the STOP and WAIT instructions on the CPU clock and the timer clock. 9-mc68hc05p9a MOTOROLA Low-Power Modes For More Information On This Product, Go to: www.freescale.com 63 Freescale Semiconductor, Inc. Low-Power Modes WAIT CLEAR I BIT IN CCR STOP CPU CLOCK NO Freescale Semiconductor, Inc... RESET? YES EXTERNAL INTERRUPT? NO YES TIMER INTERRUPT? NO YES OTHER ON-CHIP INTERRUPT SOURCES? NO RESTART CPU CLOCK (1) FETCH RESET VECTOR OR (2) SERVICE INTERRUPT a. SAVE CPU REGISTERS ON STACK b. SET I BIT IN CCR c. VECTOR TO INTERRUPT SERVICE ROUTINE Figure 26. WAIT Instruction Flowchart WAIT STOP OSC1 OSC2 INTERNAL OSCILLATOR ÷2 INTERNAL CLOCK ÷2 CPU CLOCK TIMER CLOCK ADC CLOCK Figure 27. STOP/WAIT Clock Logic 10-mc68hc05p9a 64 Low-Power Modes For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Contents Freescale Semiconductor, Inc... Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66 Port A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Port A Data Register (PORTA) . . . . . . . . . . . . . . . . . . . . . . . . . . .67 Data Direction Register A (DDRA) . . . . . . . . . . . . . . . . . . . . . . . . .68 Port A I/O Pin Interrupts/Pullups . . . . . . . . . . . . . . . . . . . . . . . . . .70 Port B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Port B Data Register (PORTB) . . . . . . . . . . . . . . . . . . . . . . . . . . .70 Data Direction Register B (DDRB) . . . . . . . . . . . . . . . . . . . . . . . . .71 Port C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Port C Data Register (PORTC) . . . . . . . . . . . . . . . . . . . . . . . . . . .73 Data Direction Register C (DDRC) . . . . . . . . . . . . . . . . . . . . . . . . .74 PC0–PC1 High Current Sink/Source Capability . . . . . . . . . . . . . . .75 Port D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76 Port D Data Register (PORTD) . . . . . . . . . . . . . . . . . . . . . . . . . . .76 Data Direction Register D (DDRD) . . . . . . . . . . . . . . . . . . . . . . . . .77 5-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 65 Freescale Semiconductor, Inc. Parallel I/O Ports Introduction Twenty bidirectional pins and one input-only pin form four parallel input/output (I/O) ports. All the bidirectional port pins are programmable as inputs or outputs. Freescale Semiconductor, Inc... NOTE: Addr. $0000 $0001 $0002 $0003 Connect any unused I/O pins to an appropriate logic level, either VDD or VSS. Although the I/O ports do not require termination for proper operation, termination reduces excess current consumption and the possibility of electrostatic damage. Name: R/W Bit 7 Read: Port A Data Register (PORTA) PA7 Write: Reset: Port B Data Register (PORTB) Port C Data Register (PORTC) Port D Data Register (PORTD) $0004 Data Direction Register A (DDRA) $0005 Data Direction Register B (DDRB) Read: Write: Reset: Read: Write: Reset: Read: Write: Reset: PB7 6 5 4 3 2 1 Bit 0 PA6 PA5 PA4 PA3 PA2 PA1 PA0 0 0 0 PC2 PC1 PC0 0 0 0 Unaffected by reset PB6 0 PB5 0 Unaffected by reset PC7 PC6 PC5 PC4 PC3 Unaffected by reset PD7 0 1 PD5 0 Unaffected by reset Read: DDRA7 DDRA6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRA0 Write: Reset: 0 0 0 0 0 0 0 0 Read: DDRB7 DDRB6 DDRB5 Write: Reset: 0 0 0 0 0 0 0 0 0 0 0 0 0 = Unimplemented Figure 28. Parallel I/O Port Register Summary 6-mc68hc05p9a 66 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Port A Addr. Name: R/W Bit 7 6 5 4 3 2 1 Bit 0 Read: $0006 Data Direction Register C (DDRC) DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 Write: Reset: 0 0 0 0 0 0 0 0 $0007 Data Direction Register D (DDRD) Read: Write: Reset: 0 0 0 0 DDRD5 0 0 0 0 0 0 0 0 0 0 0 = Unimplemented Freescale Semiconductor, Inc... Figure 28. Parallel I/O Port Register Summary (Continued) Port A Port A is an 8-bit general-purpose I/O port. Port A Data Register (PORTA) The port A data register contains a latch for each of the eight port A pins. $0000 Bit 7 6 5 4 3 2 1 Bit 0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 Read: Write: Reset: Unaffected by reset Figure 29. Port A Data Register (PORTA) PA[7:0] — Port A Data Bits These read/write bits are software programmable. Data direction of each port A pin is under the control of the corresponding bit in data direction register A. Reset has no effect on port A data. 7-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 67 Freescale Semiconductor, Inc. Parallel I/O Ports Data Direction Register A (DDRA) Data direction register A determines whether each port A pin is an input or an output. $0004 Bit 7 6 5 4 3 2 1 Bit 0 DDRA7 DDRA6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRA0 0 0 0 0 0 0 0 0 Read: Write: Reset: Freescale Semiconductor, Inc... Figure 30. Data Direction Register A (DDRA) DDRA[7:0] — Data Direction Register A Bits These read/write bits control port A data direction. Reset clears DDRA[7:0], configuring all eight port A pins as inputs. 1 = Corresponding port A pin configured as output 0 = Corresponding port A pin configured as input NOTE: Avoid glitches on port A pins by writing to the port A data register before changing data direction register A bits from 0 to 1. Figure 31 shows the I/O logic of port A. Writing a logic 1 to a DDRA bit enables the output buffer for the corresponding port A pin; a logic 0 disables the output buffer. When bit DDRAx is a logic 1, reading address $0000 reads the PAx data latch. When bit DDRAx is a logic 0, reading address $0000 reads the voltage level on the pin. The data latch can always be written, regardless of the state of its data direction bit. Table 16 summarizes the operation of the port A pins. Table 15. Port A Pin Operation Accesses to Data Bit Data Direction Bit I/O Pin Mode Read Write 0 Input, Hi-Z(1) Pin Latch(2) 1 Output Latch Latch 1. Hi-Z = high impedance 2. Writing affects data register, but does not affect input. 8-mc68hc05p9a 68 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Port A VDD VDD DISABLED PORT A EXTERNAL INTERRUPT MASK OPTION ENABLED READ $0004 INTERNAL DATA BUS Freescale Semiconductor, Inc... WRITE $0004 RESET WRITE $0000 DATA DIRECTION REGISTER A BIT DDRA7 PORT A DATA REGISTER BIT PA7 PAX READ $0000 EDGE ONLY SOFTWARE CONTROLLED OPTION EDGE AND LEVEL VDD FROM OTHER PORT A PINS D Q C Q R EXTERNAL INTERRUPT REQUEST I BIT (FROM CCR) IRQ RESET EXTERNAL INTERRUPT VECTOR FETCH Figure 31. Port A I/O Logic 9-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 69 Freescale Semiconductor, Inc. Parallel I/O Ports Port A I/O Pin Interrupts/Pullups If the port A interrupt/pullup enabled mask option is selected the PA0–PA7 pins will function as external interrupt pins when configured as inputs. (See External Interrupt on page 53.) Port B Freescale Semiconductor, Inc... Port B is a 3-bit I/O port that shares its pins with the serial I/O port (SIOP). NOTE: Port B Data Register (PORTB) Do not use port B for general-purpose I/O while the SIOP is enabled. The port B data register contains a latch for each of the three port B pins. $0001 Bit 7 6 5 PB7 PB6 PB5 Read: 4 3 2 1 Bit 0 0 0 0 0 0 Write: Reset: Alternate Function: Unaffected by reset SCK SDI SDO = Unimplemented Figure 32. Port B Data Register (PORTB) PB[7:5] — Port B Data Bits These read/write bits are software programmable bits. Data direction of each port B pin is under the control of the corresponding bit in data direction register B. Reset has no effect on port B data. NOTE: Writing to data direction register B does not affect the data direction of port B pins that are being used by the SIOP. However, data direction register B always determines whether reading port B returns the states of the latches or the states of the pins. 10-mc68hc05p9a 70 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Port B SCK — Serial Clock When the SIOP is enabled, SCK is the SIOP clock output (in master mode) or the SIOP clock input (in slave mode). SDI — Serial Data Input When the SIOP is enabled, SDI is the SIOP data input. SDO — Serial Data Output Freescale Semiconductor, Inc... When the SIOP is enabled, SDO is the SIOP data output. Data Direction Register B (DDRB) NOTE: Data direction register B determines whether each port B pin is an input or an output. Enabling and then disabling the SIOP configures data direction register B for SIOP operation and can also change the port B data register. After disabling the SIOP, initialize data direction register B and the port B data register as your application requires. $0005 Bit 7 6 5 DDRB7 DDRB6 DDRB5 0 0 0 Read: 4 3 2 1 Bit 0 0 0 0 0 0 0 0 0 0 0 Write: Reset: = Unimplemented Figure 33. Data Direction Register B (DDRB) DDRB[7:5] — Data Direction Register B Bits These read/write bits control port B data direction. Reset clears DDRB[7:5], configuring all three port B pins as inputs. 1 = Corresponding port B pin configured as output 0 = Corresponding port B pin configured as input NOTE: Avoid glitches on port B pins by writing to the port B data register before changing data direction register B bits from 0 to 1. Figure 34 shows the I/O logic of port B. 11-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 71 Freescale Semiconductor, Inc. Parallel I/O Ports READ DATA DIRECTION REGISTER B ($0005) INTERNAL DATA BUS WRITE DATA DIRECTION REGISTER B ($0005) RESET WRITE PORT B DATA REGISTER ($0001) DDRBx PBx PBx Freescale Semiconductor, Inc... READ PORT B DATA REGISTER ($0001) Figure 34. Port B I/O Logic Writing a logic 1 to a DDRB bit enables the output buffer for the corresponding port B pin; a logic 0 disables the output buffer. When bit DDRBx is a logic 1, reading address $0001 reads the PBx data latch. When bit DDRBx is a logic 0, reading address $0001 reads the voltage level on the pin. The data latch can always be written, regardless of the state of its data direction bit. Table 16 summarizes the operation of the port B pins. Table 16. Port B Pin Operation Accesses to Data Bit Data Direction Bit I/O Pin Mode Read Write 0 Input, Hi-Z(1) Pin Latch(2) 1 Output Latch Latch 1. Hi-Z = high impedance 2. Writing affects data register, but does not affect input. 12-mc68hc05p9a 72 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Port C Port C Port C is an 8-bit I/O port that shares five of its pins with the A/D converter (ADC). The five shared pins are available for general-purpose I/O functions when the ADC is disabled. Freescale Semiconductor, Inc... Port C Data Register (PORTC) The port C data register contains a latch for each of the eight port C pins. $0002 Bit 7 6 5 4 3 2 1 Bit 0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 Read: Write: Reset: Alternate Function: Unaffected by reset VRH AN0 AN1 AN2 AN3 Figure 35. Port C Data Register (PORTC) PC[7:0] — Port C Data Bits These read/write bits are software programmable. Data direction of each port C pin is under the control of the corresponding bit in data direction register C. Reset has no effect on port C data. VRH — Voltage Reference High Bit When the ADC is turned on, the PC7/VRH pin is configured as an input and is the positive ADC reference voltage. AN[3:0] — Analog Input Bits When the ADC is turned on, the AN0–AN3 pin that is selected as the analog input is configured as an input. Unused analog inputs can be used as digital inputs, but pins PC3/AN3, PC4/AN2, PC5/AN1, and PC6/AN0 cannot be used as digital outputs while the ADC is on. Only pins PC0, PC1, and PC2 can be used as digital outputs when the ADC is on. 13-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 73 Freescale Semiconductor, Inc. Parallel I/O Ports The port C data register reads normally while the ADC is on, except that the bit corresponding to the currently selected ADC input pin reads as logic 0. Writing to bits PC7–PC3 while the ADC is on can produce unpredictable ADC results. Freescale Semiconductor, Inc... Data Direction Register C (DDRC) Data direction register C determines whether each port C pin is an input or an output. $0006 Bit 7 6 5 4 3 2 1 Bit 0 DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0 0 0 0 0 0 0 0 0 Read: Write: Reset: Figure 36. Data Direction Register C (DDRC) DDRC[7:0] — Data Direction Register C Bits These read/write bits control port C data direction. Reset clears DDRC[7:0], configuring all port C pins as inputs. 1 = Corresponding port C pin configured as output 0 = Corresponding port C pin configured as input NOTE: Avoid glitches on port C pins by writing to the port C data register before changing data direction register C bits from 0 to 1. Writing to bits DDRC7–DDRC3 while the ADC is on can produce unpredictable ADC results. Figure 37 shows the I/O logic of port C. 14-mc68hc05p9a 74 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Port C READ DATA DIRECTION REGISTER C ($0006) INTERNAL DATA BUS WRITE DATA DIRECTION REGISTER C ($0006) RESET WRITE PORT C DATA REGISTER ($0002) DDRCx HIGH CURRENT SOURCE/SINK CAPABILITY (PINS PA0–PA1 ONLY) PCx PCx Freescale Semiconductor, Inc... READ PORT C DATA REGISTER ($0002) Figure 37. Port C I/O Logic Writing a logic 1 to a DDRC bit enables the output buffer for the corresponding port C pin; a logic 0 disables the output buffer. When bit DDRCx is a logic 1, reading address $0002 reads the PCx data latch. When bit DDRCx is a logic 0, reading address $0002 reads the voltage level on the pin. The data latch can always be written, regardless of the state of its data direction bit. Table 16 summarizes the operation of the port C pins. Table 17. Port C Pin Operation Accesses to Data Bit Data Direction Bit I/O Pin Mode Read Write 0 Input, Hi-Z(1) Pin Latch(2) 1 Output Latch Latch 1. Hi-Z = high impedance 2. Writing affects data register, but does not affect input. PC0–PC1 High Current Sink/Source Capability The outputs for the lower two bits of port C (PC0–PC1) can source/sink relatively high current. (See 5.0 V DC Electrical Characteristics on page 130 and 3.3 V DC Electrical Characteristics on page 132 for details.) 15-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 75 Freescale Semiconductor, Inc. Parallel I/O Ports Port D Freescale Semiconductor, Inc... Port D is a 2-bit port with one I/O pin and one input-only pin. Port D shares the input-only pin, PD7/TCAP, with the capture/compare timer. PD7/TCAP is the timer input capture pin. The PD7/TCAP pin can always be a general-purpose input, even if input capture interrupts are enabled. Port D Data Register (PORTD) The port D data register contains a latch for each of the two port D pins. $0003 Bit 7 6 Read: PD7 0 5 4 3 2 1 Bit 0 1 0 0 0 0 PD5 Write: Reset: Alternate Function: Unaffected by reset TCAP = Unimplemented Figure 38. Port D Data Register (PORTD) PD7 and PD5 — Port D Data Bits These read/write bits are software programmable. Data direction of each port D pin is under the control of the corresponding bit in data direction register D. Reset has no effect on port D data. TCAP — Timer Capture TCAP is the input capture pin for the timer. 16-mc68hc05p9a 76 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Parallel I/O Ports Port D Data Direction Register D (DDRD) Data direction register D determines whether each port D pin is an input or an output. $0007 Bit 7 6 Read: 0 0 5 4 3 2 1 Bit 0 0 0 0 0 0 0 0 0 0 0 DDRD5 Write: Reset: 0 0 0 = Unimplemented Freescale Semiconductor, Inc... Figure 39. Data Direction Register D (DDRD) DDRD5 — Data Direction Register D Bit This read/write bit controls the data direction of pin PD5. Reset clears DDRD5, configuring PD5 as an input. 1 = PD5 configured as output 0 = PD5 configured as input NOTE: Avoid glitches on port D pins by writing to the port D data register before changing data direction register D bits from 0 to 1. Figure 40 shows the I/O logic of port D. READ DATA DIRECTION REGISTER D ($0007) INTERNAL DATA BUS WRITE DATA DIRECTION REGISTER D ($0007) RESET WRITE PORT D DATA REGISTER ($0003) DDRDx PDx PDx READ PORT D DATA REGISTER ($0003) Figure 40. Port D I/O Logic Writing a logic 1 to a DDRD bit enables the output buffer for the corresponding port D pin; a logic 0 disables the output buffer. 17-mc68hc05p9a MOTOROLA Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com 77 Freescale Semiconductor, Inc. Parallel I/O Ports When bit DDRDx is a logic 1, reading address $0003 reads the PDx data latch. When bit DDRDx is a logic 0, reading address $0003 reads the voltage level on the pin. The data latch can always be written, regardless of the state of its data direction bit. Table 16 summarizes the operation of the port D pins. Table 18. Port D Pin Operation Accesses to Data Bit Freescale Semiconductor, Inc... Data Direction Bit I/O Pin Mode Read Write 0 Input, Hi-Z(1) Pin Latch(2) 1 Output Latch Latch 1. Hi-Z = high impedance 2. Writing affects data register, but does not affect input. 18-mc68hc05p9a 78 Parallel I/O Ports For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Computer Operating Properly Watchdog COP Freescale Semiconductor, Inc... Contents Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 COP Watchdog Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80 COP Watchdog Timeout Period . . . . . . . . . . . . . . . . . . . . . . . . . . .80 Clearing the COP Watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 COP Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Halt Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83 Features • Protection from runaway software • 131,072/fop timeout period • Wait mode operation • Halt mode operation 5-cop0cop MOTOROLA COP For More Information On This Product, Go to: www.freescale.com 79 Freescale Semiconductor, Inc. COP Introduction Freescale Semiconductor, Inc... The purpose of the computer operating properly (COP) watchdog is to reset the MCU in case of software failure. Software that is operating properly periodically services the COP watchdog and prevents the reset from occurring. The COP watchdog function is selectable with a mask option. Operation COP Watchdog Timeout NOTE: The COP watchdog is a 16-bit counter that generates a reset if allowed to time out. Periodically clearing the counter starts a new timeout period and prevents the COP from resetting the MCU. A COP watchdog timeout indicates that the software is not executing instructions in the correct sequence. The internal clock drives the COP watchdog. Therefore, the COP watchdog cannot generate a reset for errors that cause the internal clock to stop. The COP watchdog also depends on a power supply voltage at or above a minimum specification and is not guaranteed to protect against brownout. For information about brownout protection, see the Resets and Interrupts section. COP Watchdog Timeout Period Use the following formula to calculate the COP timeout period: 131 ,072 cycles COP Timeout Period = --------------------------------------f BUS where crystal frequency f BUS = --------------------------------------------2 6-cop0cop 80 COP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. COP Interrupts Clearing the COP Watchdog To clear the COP watchdog and prevent a COP reset, write a logic 0 to bit 0 (COPC) of the COP register at location $1FF0. If the main program executes within the COP timeout period, the clearing routine needs to be executed only once. If the main program takes longer than the COP timeout period, the clearing routine must be executed more than once. Freescale Semiconductor, Inc... NOTE: Place the clearing routine in the main program and not in an interrupt routine. Clearing the COP watchdog in an interrupt routine might prevent COP watchdog timeouts even though the main program is not operating properly. Interrupts The COP watchdog does not generate interrupts. COP Register The COP register is a write-only register that returns the contents of EPROM location $1FF0 when read. $1FF0 Bit 7 6 5 4 3 2 1 Bit 0 Read: D7 D6 D5 D4 D3 D2 D1 D0 Write: Reset: COPC U U U = Unimplemented U U U U 0 U = Unaffected Figure 41. COP Register (COPR) COPC — COP Clear COPC is a write-only bit. Periodically writing a logic 0 to COPC prevents the COP watchdog from resetting the MCU. Reset clears the COPC bit. 7-cop0cop MOTOROLA COP For More Information On This Product, Go to: www.freescale.com 81 Freescale Semiconductor, Inc. COP Low-Power Modes The STOP, HALT, and WAIT instructions put the MCU in low-power consumption standby modes. Freescale Semiconductor, Inc... Stop Mode The STOP instruction clears the COP watchdog counter. Upon exit from stop mode by external reset: • The COP counter begins counting from $0000. • The COP counter is cleared again after the 4064-cycle oscillator stabilization delay. Upon exit from stop mode by external interrupt: • The COP counter begins counting from $0000. • The COP counter is not cleared again after the oscillator stabilization delay and has a count of 4064 when the program resumes. Halt Mode NOTE: Halt mode is NOT designed for intentional use. Halt mode is only provided to keep the COP watchdog timer active in the event a STOP instruction is executed inadvertently. This mode of operation is usually achieved by invoking wait mode. Execution of the STOP instruction when STOP is disabled mask option is selected placing the MCU in this low-power mode. Halt mode consumes the same amount of power as wait mode (both halt and wait modes consume more power than stop mode). Upon exit from halt mode by COP reset or external reset: • The COP counter begins counting from $0000 • the COP counter resumes counting after a delay of one to 4064 cycles 8-cop0cop 82 COP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. COP Low-Power Modes The COP watchdog continues to operate normally after a WAIT instruction. Software should periodically take the MCU out of wait mode and write to the COPC bit to prevent a COP watchdog timeout. Freescale Semiconductor, Inc... Wait Mode MOTOROLA COP For More Information On This Product, Go to: www.freescale.com 83 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... COP 84 COP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer Contents Freescale Semiconductor, Inc... Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Pin Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 PD7/TCAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 TCMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Input Capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Output Compare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 I/O Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 Timer Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 Timer Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96 Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98 Alternate Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 Input Capture Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100 Output Compare Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102 5-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 85 Freescale Semiconductor, Inc. Timer Freescale Semiconductor, Inc... Features • Programmable Polarity of Input Capture Edge • Programmable Polarity of Output Compare Signal • Alternate Counter Registers • 16-Bit Counter • Interrupt-Driven Operation with Three Maskable Interrupt Flags: – Input Capture – Output Compare – Timer Overflow Introduction The timer provides a timing reference for MCU operations. The input capture and output compare functions provide a means to latch the times at which external events occur, to measure input waveforms, and to generate output waveforms and timing delays. Figure 42 shows the structure of the timer module. 6-tim1ic1oc_a 86 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer Introduction EDGE SELECT/ DETECT LOGIC TCAP IEDG ICRH ICRL TRH TRL ATRH ATRL Freescale Semiconductor, Inc... INTERNAL CLOCK (XTAL ÷ 2) ÷4 16-BIT COUNTER 16-BIT COMPARATOR OCRH PIN CONTROL LOGIC TCMP OCRL OLVL INTERNAL DATA BUS TIMER OVERFLOW OCIE OCF TOIE TOF TIMER INTERRUPT REQUEST ICIE ICF Figure 42. Timer Block Diagram 7-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 87 Freescale Semiconductor, Inc. Timer Addr. $0012 $0013 Freescale Semiconductor, Inc... $0014 $0015 Name R/W Bit 7 Read: Timer Control Register (TCR) ICIE Write: Reset: 0 Timer Status Register (TSR) Input Capture Register High (ICRH) Input Capture Register Low (ICRL) $0016 Output Compare Register High (OCRH) $0017 $0018 $0019 $001A $001B Output Compare Register Low (OCRL) Timer Register High (TRH) Timer Register Low (TRL) Alternate Timer Register High (ATRH) Alternate Timer Register Low (ATRL) 6 5 4 3 2 1 Bit 0 OCIE TOIE 0 0 0 IEDG OLVL 0 0 0 0 0 U 0 ICF OCF TOF 0 0 0 0 0 U U U 0 0 0 0 0 Read: Bit 15 Write: Reset: 14 13 12 11 10 9 Bit 8 Read: Write: Reset: 6 2 1 Bit 0 10 9 Bit 8 2 1 Bit 0 10 9 Bit 8 2 1 Bit 0 10 9 Bit 8 1 Bit 0 Read: Write: Reset: Bit 7 5 4 3 Unaffected by reset Read: Bit 15 Write: Reset: Read: Write: Reset: Unaffected by reset Bit 7 14 13 12 11 Unaffected by reset 6 5 4 3 Unaffected by reset Read: Bit 15 Write: Reset: 14 Read: Write: Reset: 6 Bit 7 13 12 11 Reset initializes TRH to $FF 5 4 3 Reset initializes TRL to $FC Read: Bit 15 Write: Reset: 14 Read: Write: Reset: 6 Bit 7 13 12 11 Reset initializes ATRH to $FF 5 4 3 2 Reset initializes ATRL to $FC = Unimplemented U = Unaffected Figure 43. Timer I/O Register Summary 8-tim1ic1oc_a 88 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer Operation Operation Freescale Semiconductor, Inc... The timing reference for the input capture and output compare functions is a 16-bit free-running counter. The counter is preceded by a divide-byfour prescaler and rolls over every 218 cycles. Timer resolution with a 4MHz crystal is 2 µs. Software can read the value in the counter at any time without affecting the counter sequence. Because of the 16-bit timer architecture, the I/O registers for the input capture and output compare functions are pairs of 8-bit registers. Pin Functions The timer uses two pins. PD7/TCAP PD7/TCAP is the input capture pin. When an active edge occurs on PD7/TCAP, the timer transfers the current counter value to the input capture registers. PD7/TCAP is also an I/O port pin. TCMP TCMP is the output-only output compare pin. When the counter value matches the value written in the output compare registers, the timer transfers the output level bit, OLVL, to the TCMP pin. Input Capture The input capture function is a means to record the time at which an external event occurs. When the input capture circuitry detects an active edge on the PD7/TCAP pin, it latches the contents of the timer registers into the input capture registers. The polarity of the active edge is programmable. Latching values into the input capture registers at successive edges of the same polarity measures the period of the input signal on the PD7/TCAP pin. Latching the counter values at successive edges of opposite polarity measures the pulse width of the signal. Figure 44 shows the logic of the input capture function. 9-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 89 Freescale Semiconductor, Inc. Timer EDGE SELECT/ DETECT LOGIC TCAP IEDG ICRH ICRL TRH TRL ICF TIMER INTERRUPT REQUEST Freescale Semiconductor, Inc... ICIE Figure 44. Input Capture Operation Output Compare The output compare function is a means of generating an output signal when the 16-bit counter reaches a selected value. Software writes the selected value into the output compare registers. On every fourth internal clock cycle the output compare circuitry compares the value of the counter to the value written in the output compare registers. When a match occurs, the timer transfers the programmable output level bit (OLVL) from the timer control register to the TCMP pin. Software can use the output compare register to measure time periods, to generate timing delays, or to generate a pulse of specific duration or a pulse train of specific frequency and duty cycle on the TCMP pin. Figure 45 shows the logic of the output compare function. 16-BIT COUNTER PIN CONTROL LOGIC 16-BIT COMPARATOR OCRH ($0016) TCMP OCRL ($0017) OLVL OCF OCIE TIMER INTERRUPT REQUEST Figure 45. Output Compare Operation 10-tim1ic1oc_a 90 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer Timing Timing Table 19. Timer Characteristics (VDD = 5.0 Vdc)(1) Freescale Semiconductor, Inc... Characteristic Symbol Min Max Unit Timer Resolution(2) tRESL 4.0 — tCYC Input Capture Pulse Width tH, tL 125 — ns Input Capture Pulse Period tTLTL — tCYC Note (3) 1. VDD = 5.0 Vdc ± 10%, TA = TL to TH unless otherwise noted. 2. A 2-bit prescaler in the timer is the limiting factor as it counts 4 tCYC. 3. The minimum tTLTL should not be less than the number of interrupt service routine cycles plus 19 tCYC. Table 20. Timer Characteristics (VDD = 3.3 Vdc)(1) Characteristic Symbol Min Max Unit Timer Resolution(2) tRESL 4.0 — tCYC Input Capture Pulse Width tH, tL 250 — ns Input Capture Pulse Period tTLTL — tCYC Note (3) 1. VDD = 3.3 Vdc ± 10%, TA = TL to TH unless otherwise noted. 2. A 2-bit prescaler in the timer is the limiting factor as it counts 4 tCYC. 3. The minimum tTLTL should not be less than the number of interrupt service routine cycles plus 19 tCYC. tTLTL tTH tTL Figure 46. Input Capture Characteristics 11-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 91 Freescale Semiconductor, Inc. Timer INTERNAL BUS CLOCK INTERNAL RESET Freescale Semiconductor, Inc... TIMER CLOCKS T00 T01 T10 T11 16-BIT COUNTER $FFFC $FFFE $FFFD $FFFF RESET (EXTERNAL OR END OF POR) Figure 47. Timer Reset Timing INTERNAL BUS CLOCK T00 T01 TIMER CLOCKS T10 T11 16-BIT COUNTER $FFEB $FFEC $FFED $FFEE $FFEF INPUT CAPTURE EDGE INPUT CAPTURE LATCH INPUT CAPTURE REGISTER PREVIOUSLY CAPTURED VALUE $FFED INPUT CAPTURE FLAG NOTE: If the input capture edge occurs in the shaded area between T10 states, then the input capture flag becomes set during the next T11 state. Figure 48. Input Capture Timing 12-tim1ic1oc_a 92 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer Timing INTERNAL BUS CLOCK T00 T01 TIMER CLOCKS T10 T11 Freescale Semiconductor, Inc... 16-BIT COUNTER OUTPUT COMPARE REGISTERS $FFEB $FFEC $FFED $FFEF $FFEE $FFED CPU WRITES $FFED COMPARE REGISTER LATCH OUTPUT COMPARE FLAG AND TCMP NOTES: 1. A write to the output compare registers may occur at any time, but a compare only occurs at timer state T01. Therefore, the compare may follow the write by up to four cycles. 2. The output compare flag is set at the timer state T11 that follows the comparison latch. Figure 49. Output Compare Timing INTERNAL BUS CLOCK T00 T01 TIMER CLOCKS T10 T11 16-BIT COUNTER $FFFF $0000 $0001 $0002 OVERFLOW FLAG (TOF) Figure 50. Timer Overflow Timing 13-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 93 Freescale Semiconductor, Inc. Timer Interrupts Freescale Semiconductor, Inc... The following timer sources can generate interrupts: • Input capture flag (ICF) — The ICF bit is set when an edge of the selected polarity occurs on the input capture pin. The input capture interrupt enable bit, ICIE, enables ICF interrupt requests. • Output compare flag (OCF) — The OCF bit is set when the counter value matches the value written in the output compare registers. The output compare interrupt enable bit, OCIE, enables OCF interrupt requests. • Timer overflow flag (TOF) — The TOF bit is set when the counter value rolls over from $FFFF to $0000. The timer overflow enable bit (TOIE) enables timer overflow interrupt requests. Table 21 summarizes the timer interrupt sources. Table 21. Timer Interrupt Sources Source Local Mask Global Mask Priority (1 = Highest) ICF Bit OCF Bit TOF Bit ICIE Bit OCIE Bit TOIE Bit I Bit 3 I/O Registers The following registers control and monitor the operation of the timer: • Timer control register (TCR) • Timer status register (TSR) • Timer registers (TRH and TRL) • Alternate timer registers (ATRH and ATRL) • Input capture registers (ICRH and ICRL) • Output compare registers (OCRH and OCRL) 14-tim1ic1oc_a 94 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer I/O Registers Freescale Semiconductor, Inc... Timer Control Register The timer control register (TCR) performs the following functions: • Enables input capture interrupts • Enables output compare interrupts • Enables timer overflow interrupts • Controls the active edge polarity of the TCAP signal • Controls the active level of the TCMP output $0012 Bit 7 6 5 4 3 2 1 Bit 0 ICIE OCIE TOIE 0 0 0 IEDG OLVL 0 0 0 0 0 0 U 0 Read: Write: Reset: U = Unaffected Figure 51. Timer Control Register (TCR) ICIE — Input Capture Interrupt Enable This read/write bit enables interrupts caused by an active signal on the PD7/TCAP pin. Reset clears the ICIE bit. 1 = Input capture interrupts enabled 0 = Input capture interrupts disabled OCIE — Output Compare Interrupt Enable This read/write bit enables interrupts caused by an active signal on the TCMP pin. Reset clears the OCIE bit. 1 = Output compare interrupts enabled 0 = Output compare interrupts disabled TOIE — Timer Overflow Interrupt Enable This read/write bit enables interrupts caused by a timer overflow. Reset clears the TOIE bit. 1 = Timer overflow interrupts enabled 0 = Timer overflow interrupts disabled Bits 4–2 — Unused These are read/write bits that always read as logic 0s. 15-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 95 Freescale Semiconductor, Inc. Timer IEDG — Input Edge The state of this read/write bit determines whether a positive or negative transition on the PD7/TCAP pin triggers a transfer of the contents of the timer registers to the input capture registers. Reset has no effect on the IEDG bit. 1 = Positive edge (low-to-high transition) triggers input capture 0 = Negative edge (high-to-low transition) triggers input capture Freescale Semiconductor, Inc... OLVL — Output Level The state of this read/write bit determines whether a logic 1 or a logic 0 appears on the TCMP pin when a successful output compare occurs. Reset clears the OLVL bit. 1 = TCMP goes high on output compare 0 = TCMP goes low on output compare Timer Status Register The timer status register (TSR) contains flags for the following events: • An active signal on the PD7/TCAP pin, transferring the contents of the timer registers to the input capture registers • A match between the 16-bit counter and the output compare registers, transferring the OLVL bit to the TCMP pin • A timer rollover from $FFFF to $0000 $0013 Bit 7 6 5 4 3 2 1 Bit 0 Read: ICF OCF TOF 0 0 0 0 0 U U U 0 0 0 0 0 Write: Reset: = Unimplemented U = Unaffected Figure 52. Timer Status Register (TSR) 16-tim1ic1oc_a 96 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer I/O Registers ICF — Input Capture Flag The ICF bit is automatically set when an edge of the selected polarity occurs on the PD7/TCAP pin. Clear the ICF bit by reading the timer status register with ICF set, and then reading the low byte of the input capture registers. Reset has no effect on ICF. 1 = Input capture 0 = No input capture OCF — Output Compare Flag Freescale Semiconductor, Inc... The OCF bit is automatically set when the value of the timer registers matches the contents of the output compare registers. Clear the OCF bit by reading the timer status register with OCF set, and then reading the low byte of the output compare registers. Reset has no effect on OCF. 1 = Output compare 0 = No output compare TOF — Timer Overflow Flag The TOF bit is automatically set when the 16-bit counter rolls over from $FFFF to $0000. Clear the TOF bit by reading the timer status register with TOF set, and then reading the low byte of the timer registers. Reset has no effect on TOF. 1 = Timer overflow 0 = No timer overflow 17-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 97 Freescale Semiconductor, Inc. Timer Timer Registers The read-only timer registers (TRH and TRL) contain the current high and low bytes of the 16-bit counter. Reading TRH before reading TRL causes TRL to be latched until TRL is read. Reading TRL after reading the timer status register clears the timer overflow flag (TOF). Writing to the timer registers has no effect. $0018 Bit 7 6 5 4 3 2 1 Bit 0 Read: Bit 15 14 13 12 11 10 9 Bit 8 Freescale Semiconductor, Inc... Write: Reset: Reset initializes TRH to $FF $0019 Bit 7 6 5 4 3 2 1 Bit 0 Read: Bit 7 6 5 4 3 2 1 Bit 0 Write: Reset: Reset initializes TRL to $FC = Unimplemented Figure 53. Timer Registers (TRH and TRL) Reading TRH returns the current value of the high byte of the counter and causes the low byte to be latched into a buffer. The buffer value remains fixed even if the high byte is read more than once. Reading TRL reads the transparent low byte buffer and completes the read sequence of the timer registers. INTERNAL DATA BUS LATCH READ TRH BUFFER TRH ($0018) TRL ($0019) Figure 54. Timer Register Reads NOTE: To prevent interrupts from occurring between readings of TRH and TRL, set the interrupt mask (I bit) in the condition code register before reading TRH, and clear the mask after reading TRL. 18-tim1ic1oc_a 98 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer I/O Registers Alternate Timer Registers The read-only alternate timer registers (ATRH and ATRL) contain the current high and low bytes of the 16-bit counter. Reading ATRH before reading ATRL causes ATRL to be latched until ATRL is read. Reading does not affect the timer overflow flag (TOF). Writing to the alternate timer registers has no effect. $001A Bit 7 6 5 4 3 2 1 Bit 0 Read: Bit 15 14 13 12 11 10 9 Bit 8 Freescale Semiconductor, Inc... Write: Reset: Reset initializes ATRH to $FF $001B Bit 7 6 5 4 3 2 1 Bit 0 Read: Bit 7 6 5 4 3 2 1 Bit 0 Write: Reset: Reset initializes ATRL to $FC = Unimplemented Figure 55. Alternate Timer Registers (ATRH and ATRL) Reading ATRH returns the current value of the high byte of the counter and causes the low byte to be latched into a buffer. INTERNAL DATA BUS LATCH READ ATRH ATRH ($001A) BUFFER ATRL ($001B) Figure 56. Alternate Timer Register Reads NOTE: To prevent interrupts between readings of ATRH and ATRL, set the interrupt mask (I bit) in the condition code register before reading ATRH, and clear the mask after reading ATRL. 19-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 99 Freescale Semiconductor, Inc. Timer Freescale Semiconductor, Inc... Input Capture Registers When a selected edge occurs on the TCAP pin, the current high and low bytes of the 16-bit counter are latched into the read-only input capture registers (ICRH and ICRL). Reading ICRH before reading ICRL inhibits further captures until ICRL is read. Reading ICRL after reading the timer status register clears the input capture flag (ICF). Writing to the input capture registers has no effect. $0014 Bit 7 6 5 4 3 2 1 Bit 0 Read: Bit 15 14 13 12 11 10 9 Bit 8 Write: Reset: Unaffected by reset $0015 7 6 5 4 3 2 1 0 Read: Bit 7 6 5 4 3 2 1 Bit 0 Write: Reset: Unaffected by reset = Unimplemented Figure 57. Input Capture Registers (ICRH and ICRL) NOTE: To prevent interrupts between readings of ICRH and ICRL, set the interrupt mask (I bit) in the condition code register before reading ICRH, and clear the mask after reading ICRL. 20-tim1ic1oc_a 100 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Timer I/O Registers Output Compare Registers When the value of the 16-bit counter matches the value in the read/write output compare registers (OCRH and OCRL), the planned TCMP pin action takes place. Writing to OCRH before writing to OCRL inhibits timer compares until OCRL is written. Reading or writing to OCRL after reading the timer status register clears the output compare flag (OCF). $0016 Bit 7 6 5 4 3 2 1 Bit 0 Bit 15 14 13 12 11 10 9 Bit 8 Read: Freescale Semiconductor, Inc... Write: Reset: $0017 Unaffected by reset Bit 7 6 5 4 3 2 1 Bit 0 Bit 7 6 5 4 3 2 1 Bit 0 Read: Write: Reset: Unaffected by reset Figure 58. Output Compare Registers (OCRH and OCRL) To prevent OCF from being set between the time it is read and the time the output compare registers are updated, use the following procedure: 1. Disable interrupts by setting the I bit in the condition code register. 2. Write to OCRH. Compares are now inhibited until OCRL is written. 3. Clear bit OCF by reading the timer status register (TSR). 4. Enable the output compare function by writing to OCRL. 5. Enable interrupts by clearing the I bit in the condition code register. 21-tim1ic1oc_a MOTOROLA Timer For More Information On This Product, Go to: www.freescale.com 101 Freescale Semiconductor, Inc. Timer Low-Power Modes The STOP and WAIT instructions put the MCU in low-power consumption standby modes. Freescale Semiconductor, Inc... Stop Mode The STOP instruction suspends the timer counter. Upon exit from stop mode by external reset: • The timer counter resumes counting from $FFFC. • An input capture edge during stop mode does not affect the ICF bit or the input capture registers. Upon exit from stop mode by external interrupt: Wait Mode • The counter resumes counting from the suspended value. • An input capture edge during stop mode sets the ICF bit and transfers the suspended timer counter value to the input capture registers. The timer remains active after a WAIT instruction. Any enabled timer interrupt request can bring the MCU out of wait mode. 22-tim1ic1oc_a 102 Timer For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Serial Input/Output Port SIOP Contents Freescale Semiconductor, Inc... Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 Pin Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 PB7/SCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 PB5/SDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 PB6/SDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108 Data Movement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109 Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111 I/O Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 SIOP Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112 SIOP Status Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 SIOP Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116 5-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 103 Freescale Semiconductor, Inc. SIOP Freescale Semiconductor, Inc... Features • Master or Slave Operation • Programmable MSB-First or LSB-First Operation • Interrupt-Driven Operation with Transfer Complete Flag • Data Collision Flag • Master Mode Frequency = Bus Frequency ÷ 4 • Maximum Slave Mode Frequency = Bus Frequency ÷ 4 • No Minimum Slave Mode Frequency Introduction The serial input/output port (SIOP) is a 3-wire master/slave communication port with serial clock, data input, and data output connections. The SIOP enables high-speed synchronous serial data transfer between the MCU and peripheral devices. Shift registers used with the SIOP can increase the number of parallel I/O pins controlled by the MCU. More powerful peripherals such as analog-to-digital converters and real-time clocks are also compatible with the SIOP. Figure 59 shows the structure of the SIOP module. 6-mc68hc05p9a 104 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SIOP Introduction INTERNAL BUS SIOP DATA REGISTER 7 6 5 4 3 2 1 PB5/SDO 0 PB7/SCK LSB OR MSB SHIFT CLOCK SPIF/DCOL MASK OPTION PB6/SDI Freescale Semiconductor, Inc... SIOP CONTROL PIN CONTROL LOGIC AND DDR SPE MSTR M S SPIF DCOL INTERNAL CLOCK (fOSC ÷ 2) DIVIDE BY 4 CLOCK LOGIC Figure 59. SIOP Block Diagram Addr. $000A $000B $000C Name SIOP Control Register (SCR) SIOP Status Register (SSR) SIOP Data Register (SDR) Read: Write: Reset: Read: Write: Reset: Read: Write: Reset: Bit 7 0 6 SPE 5 0 4 MSTR 3 0 2 0 1 0 Bit 0 0 0 0 0 0 0 0 0 0 SPIF DCOL 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 Bit 0 Unaffected by reset = Unimplemented Figure 60. SIOP I/O Register Summary 7-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 105 Freescale Semiconductor, Inc. SIOP Operation The master MCU initiates and controls the transfer of data to and from one or more slave peripheral devices. In master mode, a transmission is initiated by writing to the SIOP data register (SDR). Data written to the SDR is parallel-loaded and shifted out serially to the slave device(s). Freescale Semiconductor, Inc... Many simple slave devices are designed to only receive data from a master or to only supply data to a master. For example, when a serial-to-parallel shift register is used as an 8-bit port, the master MCU initiates transfers of 8-bit data values to the shift register. Since the serial-to-parallel shift register does not send any data to the master, the MCU ignores whatever it receives as a result of the transmission. The SIOP is simpler than the serial peripheral interface (SPI) on some other Motorola MCUs in that: • The polarity of the serial clock is fixed. • There is no slave select pin. • The direction of serial data does not automatically switch as on the SPI because the SIOP is not intended for use in multimaster systems. Most applications use one MCU as the master to initiate and control data transfer between one or more slave peripheral devices. A mask option allows the SIOP to transfer data MSB first or LSB first. 8-mc68hc05p9a 106 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SIOP Operation Pin Functions Freescale Semiconductor, Inc... NOTE: The SIOP uses three pins and shares them with port B: • PB7/SCK • PB6/SDI • PB5/SDO Do not use the PB7/SCK, PB6/SDI, or PB5/SDO pins for general-purpose I/O while the SIOP is enabled. When bit 6 (SPE) of the SIOP control register (SCR) is set, the SIOP is enabled and the PB7/SCK, PB5/SDO, and PB6/SDI pins are dedicated to SIOP functions. Clearing SPE disables the SIOP and the SIOP pins become standard I/O port pins. NOTE: PB7/SCK Enabling and then disabling the SIOP configures the data direction register bits associated with the SIOP pins for SIOP operation and can also change the associated port data register. After disabling the SIOP, initialize the data direction register and the port data register as the application requires. The PB7/SCK pin synchronizes the movement of data into and out of the MCU through the PB6/SDI and PB5/SDO pins. In master mode, the PB7/SCK pin is an output. The serial clock frequency in master mode is one-fourth the internal clock frequency. In slave mode, the PB7/SCK pin is an input. The maximum serial clock frequency in slave mode is one-fourth the internal clock rate. Slave mode has no minimum serial clock frequency. 9-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 107 Freescale Semiconductor, Inc. SIOP Freescale Semiconductor, Inc... Figure 61 shows the timing relationships among the serial clock, data input, and data output. The state of the serial clock between transmissions is a logic 1. The first falling edge on the PB7/SCK pin signals the beginning of a transmission, and data appears at the PB5/SDO pin. Data is captured at the PB6/SDI pin on the rising edge of the serial clock, and the transmission ends on the eighth rising edge of the serial clock. SERIAL CLOCK SAMPLE INPUT DATA OUTPUT (MSB-FIRST OPTION) MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB DATA OUTPUT (LSB-FIRST OPTION) LSB BIT 1 BIT 2 BIT 3 BIT 4 BIT 5 BIT 6 MSB Figure 61. SIOP Data/Clock Timing PB5/SDO The PB5/SDO pin is the SIOP data output. Between transfers, the state of the PB5/SDO pin reflects the value of the last bit shifted out on the previous transmission, if there was one. To preset the beginning state, write to the corresponding port data bit before enabling the SIOP. On the first falling edge on the PB7/SCK pin, the first data bit to be shifted out appears at the PB5/SDO pin. PB6/SDI The PB6/SDI pin is the SIOP data input. Valid SDI data must be present for an SDI setup time, tS, before the rising edge of the serial clock and must remain valid for an SDI hold time, tH, after the rising edge of the serial clock. (See Table 22 and Table 23.) 10-mc68hc05p9a 108 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SIOP Operation Freescale Semiconductor, Inc... Data Movement Connecting the SIOP data register of a master MCU with the SIOP of a slave MCU forms a 16-bit circular shift register. During an SIOP transfer, the master shifts out the contents of its SIOP data register on its PB5/SDO pin. At the same time, the slave MCU shifts out the contents of its SIOP data register on its PB5/SDO pin. Figure 62 shows how the master and slave exchange the contents of their data registers. SIOP SHIFT REGISTER SDO SDO SDI SDI SIOP SHIFT REGISTER SIOP IN SLAVE MODE SIOP IN MASTER MODE SCK SCK Figure 62. Master/Slave SIOP Shift Register Operation 11-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 109 Freescale Semiconductor, Inc. SIOP Timing tSCK tSCKL SCK Freescale Semiconductor, Inc... tV tHO SDO MSB BIT 1 LSB tH tS SDI VALID DATA MSB LSB Figure 63. SIOP Timing Table 22. SIOP Timing (VDD = 5.0 Vdc)(1) Characteristic Symbol Min Max Unit Frequency of Operation Master Slave fSIOP(M) fSIOP(S) fOSC/8d c fOSC/8 fOSC/8 MHz kHz Cycle Time Master Slave tSCK(M) tSCK(S) 4.0 — 4.0 1920 tCYC(2) ns tSCKL 932 — ns SDO Data Valid Time tV — 200 ns SDO Hold Time tHO 0 — ns SDI Setup Time tS 100 — ns SDI Hold Time tH 100 — ns Clock (SCK) Low Time (fOP = 2.1 MHz)(3)(4) 1. VDD = 5.0 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH unless otherwise noted. 2. tCYC = 1 ÷ fOP 3. fOSC = crystal frequency; fOP = fOSC ÷ 2 = 2.1 MHz maximum 4. In master mode, the frequency of SCK is fOP ÷ 4. 12-mc68hc05p9a 110 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SIOP Interrupts Table 23. SIOP Timing (VDD = 3.3 Vdc)(1) Characteristic Symbol Min Max Unit Frequency of Operation Master Slave fSIOP (M) fSIOP(S) fOSC/8 dc fOSC/8 fOSC/8 MHz kHz Cycle Time Master Slave tSCK(M) tSCK(S) 4.0 — 4.0 4000 tCYC(2) tSCKL 1980 — ns SDO Data Valid Time tV — 400 ns SDO Hold Time tHO 0 — ns SDI Setup Time tS 200 — ns SDI Hold Time tH 200 — ns Freescale Semiconductor, Inc... Clock (SCK) Low Time (fOP = 1.0 MHz)(3) (4) 1. VDD = 3.3 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH unless otherwise noted 2. tCYC = 1 ÷ fOP 3. fOSC = crystal frequency; fOP = fOSC ÷ 2 = 1.0 MHz maximum 4. In master mode, the frequency of SCK is fOP ÷ 4. Interrupts The SIOP does not generate interrupt requests. 13-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 111 Freescale Semiconductor, Inc. SIOP I/O Registers Freescale Semiconductor, Inc... The following registers control and monitor SIOP operation: SIOP Control Register • SIOP control register (SCR) • SIOP status register (SSR) • SIOP data register (SDR) The read/write SIOP control register (SCR) contains two bits. One bit enables the SIOP, and the other configures the SIOP for master mode or for slave mode. $000A Bit 7 Read: 0 6 5 4 0 SPE 3 2 1 Bit 0 0 0 0 0 0 0 0 0 MSTR Write: Reset: 0 0 0 0 = Unimplemented Figure 64. SIOP Control Register (SCR) SPE — SIOP Enable This read/write bit enables the SIOP. Setting SPE initializes the data direction register as follows: • The PB6/SDI pin is an input. • The PB5/SDO pin is an output. • The PB7/SCK pin is an input in slave mode and an output in master mode. Clearing SPE disables the SIOP and returns the port to its normal I/O functions. The data direction register and the port data register remain in their SIOP-initialized state. NOTE: After clearing SPE, be sure to initialize the port for its intended I/O use. 14-mc68hc05p9a 112 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SIOP I/O Registers Clearing SPE during a transmission aborts the transmission, resets the bit counter, and returns the port to its normal I/O function. Reset clears SPE. 1 = SIOP enabled 0 = SIOP disabled MSTR — Master Mode Select Freescale Semiconductor, Inc... This read/write bit configures the SIOP for master mode. Setting MSTR initializes the PB7/SCK pin as the serial clock output. Clearing MSTR initializes the PB7/SCK pin as the serial clock input. MSTR can be set at any time regardless of the state of SPE. Reset clears MSTR. 1 = Master mode selected 0 = Slave mode selected 15-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 113 Freescale Semiconductor, Inc. SIOP SIOP Status Register The read-only SIOP status register (SSR) contains two bits. One bit indicates that a SIOP transfer is complete, and the other indicates that an invalid access of the SIOP data register occurred while a transfer was in progress. $000B Bit 7 6 5 4 3 2 1 Bit 0 Read: SPIF DCOL 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Write: Freescale Semiconductor, Inc... Reset: = Unimplemented Figure 65. SIOP Status Register (SSR) SPIF — Serial Peripheral Interface Flag This clearable, read-only bit is set automatically on the eighth rising edge on the PB7/SCK pin and indicates that a data transmission took place. SPIF does not inhibit further transmissions. Clear SPIF by reading the SIOP status register while SPIF is set and then reading or writing the SIOP data register. Reset clears SPIF. 1 = Transmission complete 0 = Transmission not complete 16-mc68hc05p9a 114 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. SIOP I/O Registers DCOL — Data Collision Flag Freescale Semiconductor, Inc... This clearable, read-only bit is automatically set if the SIOP data register is accessed while a data transfer is in progress. Reading or writing the SIOP data register while a transmission is in progress causes invalid data to be transmitted or read. Clear DCOL by reading the SIOP status register with SPIF set and then accessing the SIOP data register. Because the clearing sequence accesses the SIOP data register, the sequence has to be completed before another transmission starts or DCOL is set again. To clear DCOL when SPIF is not set, turn off the SIOP by writing a 0 to SPE and then turn it back on by writing a 1 to SPE. Reset clears DCOL. 1 = Invalid access of SDR 0 = Valid access of SDR SIOP Data Register The SIOP data register (SDR) is both the transmit data register and the receive data register. To read or write the SIOP data register, the SPE bit in the SIOP control register must be set. $000C Bit 7 6 5 4 3 2 1 Bit 0 Bit 7 6 5 4 3 2 1 Bit 0 Read: Write: Reset: Unaffected by reset Figure 66. SIOP Data Register (SDR) With the SIOP configured for master mode, writing to the SIOP data register initiates a serial transfer. This register is not buffered. Writing to the SIOP data register overwrites the previous contents. Reading or writing to the SIOP data register while a transmission is in progress can cause invalid data to be transmitted or received. 17-mc68hc05p9a MOTOROLA SIOP For More Information On This Product, Go to: www.freescale.com 115 Freescale Semiconductor, Inc. SIOP Low-Power Modes The WAIT and STOP instructions put the MCU in low-power consumption standby modes. Freescale Semiconductor, Inc... Stop Mode The STOP instruction suspends the clock to the SIOP. When the MCU exits stop mode, processing resumes after the internal oscillator stabilization delay of 4064 oscillator cycles. A STOP instruction in a master SIOP does not suspend the clock to slave SIOPs. Wait Mode The WAIT instruction suspends the clock to the SIOP. When the MCU exits wait mode, processing resumes immediately. A WAIT instruction in a master SIOP does not suspend the clock to slave SIOPs. 18-mc68hc05p9a 116 SIOP For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Analog-to-Digital Converter ADC Freescale Semiconductor, Inc... Contents Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118 Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 Pin Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 PC7/VRH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119 PC6/AN0–PC3/AN3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120 Timing and Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . .121 I/O Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 ADC Status and Control Register . . . . . . . . . . . . . . . . . . . . . . . .122 ADC Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Low-Power Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Wait Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Features • 8-Bit Conversions with ± 1.5-LSB Precision • Four External and Three Internal Analog Input Channels • Wait Mode Operation 5-mc68hc05p9a MOTOROLA ADC For More Information On This Product, Go to: www.freescale.com 117 Freescale Semiconductor, Inc. ADC Introduction The ADC consists of a single successive-approximation A/D converter, an input multiplexer to select one of four external or two internal channels, and control circuitry. Figure 67 shows the structure of the ADC module. AN3 COMPARATOR Freescale Semiconductor, Inc... AN2 INPUT MULTIPLEXER AN1 AN1 CH2 CH1 CH0 VSS CCF ADON CONTROL LOGIC INTERNAL CLOCK (XTAL ÷ 2) ADRC INTERNAL DATA BUS DIGITALTO-ANALOG CONVERTER VRH INTERNAL RC OSCILLATOR Figure 67. ADC Block Diagram 6-mc68hc05p9a 118 ADC For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. ADC Operation Table 24. ADC I/O Register Summary Addr. Name R/W Bit 7 Read: Bit 7 Write: Reset: $001D ADC Data Register (ADDR) Freescale Semiconductor, Inc... $001E ADC Status/Control Register (ADSCR) Read: Write: Reset: CCF 0 6 6 5 5 4 4 3 3 2 2 1 1 Bit 0 Bit 0 CH2 CH1 CH0 0 0 0 Unaffected by reset ADRC ADON 0 0 0 0 0 0 = Unimplemented Operation The A/D conversion process is ratiometric, using two reference voltages, VRH and VSS. Conversion accuracy is guaranteed only if VRH is equal to VDD. Pin Functions PC7/VRH The ADC uses five pins and shares them with port C: • PC7/VRH • PC6/AN0, PC5/AN1, PC4/AN2, and PC3/AN3 The voltage reference high pin (PC7/VRH) supplies the high reference voltage for the ratiometric conversion process. For ratiometric conversion, the supply voltage of the analog source should be the same as VRH and be referenced to VSS. 7-mc68hc05p9a MOTOROLA ADC For More Information On This Product, Go to: www.freescale.com 119 Freescale Semiconductor, Inc. ADC Freescale Semiconductor, Inc... PC6/AN0– PC3/AN3 The multiplexer can select one of four external analog input channels (AN0, AN1, AN2, or AN3) for sampling. The conversion takes 32 cycles. The first 12 cycles sample the voltage on the selected input pin by charging an internal capacitor. In the last 20 cycles, a comparator successively compares the output of an internal D/A converter to the sampled analog input. Control logic changes the D/A converter input one bit at a time, starting with the MSB, until the D/A converter output matches the sampled analog input. The conversion is monotonic and has no missing codes. At the end of the conversion, the conversion complete flag (CCF) becomes set, and the CPU takes two cycles to move the result to the ADC data register. NOTE: To prevent excess power dissipation, do not simultaneously use an I/O port pin as a digital input and an analog input. While the ADC is on, the selected analog input reads as logic 0. The port C pins that are not selected read normally. An analog input voltage equal to VRH converts to digital $FF; an input voltage greater than VRH converts to $FF with no overflow. An analog input voltage less than VSS converts to digital $00. For ratiometric conversion, the source of each analog input should use VRH as the supply voltage and be referenced to VSS. The clock frequency must be equal to or greater than 1 MHz. If the internal clock frequency is less than 1MHz, the internal RC oscillator (nominally 1.5 MHz) must be used for the ADC conversion clock. Make this selection by setting the ADRC bit to logic 1 in the ADC status and control register. Interrupts The ADC cannot generate interrupt requests. 8-mc68hc05p9a 120 ADC For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. ADC Timing and Electrical Characteristics Timing and Electrical Characteristics Table 25. ADC Characteristics (VDD = 5.0 Vdc)(1) Freescale Semiconductor, Inc... Characteristic Symbol Min Max Unit Resolution — 8 8 Bit Absolute Accuracy (4.0 > VRH > VDD)(2) — — ±1.5 LSB Conversion Range (PC7/VRH) — VSS VDD V Conversion Time (Includes Sampling Time) External Clock Internal RC Oscillator (ADRC = 1) — 32 32 32 32 tAD(3) µs Monotonicity — Analog Input Voltage VIN VSS VRH V Zero Input Reading (VIN = 0 V) — 00 01 Hex Full-Scale Reading (VIN = VRH) — FE FF Hex Sample Acquisition Time(4) External Clock Internal RC Oscillator (ADRC = 1) — 12 — 12 12 tAD(5) µs Input Capacitance PC6/AN0, PC5/AN1, PC4/AN2, PC3/AN3 CIN — 12 pF Input Leakage(6) PC6/AN0, PC5/AN1, PC4/AN2, PC3/AN3 PC7/VRH — — — ±1 ±1 µA ADC On Current Stabilization Time tADON — 100 µs ADC RC Stabilization Time (ADRC = 1) tADRC — 100 µs Inherent (Within Total Error) 1. VDD = 5.0 Vdc ±10%, VSS = 0 Vdc 2. ADC accuracy may decrease proportionately as VRH is reduced below 4.0 V. 3. tAD = cycle time of the A/D converter 4. Source impedances more than 10 kΩ adversely affect internal RC charging time during input sampling. 5. tAD = tCYC (1 ÷ fOP) if MCU clock is clock source 6. External system error caused by input leakage approximately equals R source times input current. 9-mc68hc05p9a MOTOROLA ADC For More Information On This Product, Go to: www.freescale.com 121 Freescale Semiconductor, Inc. ADC I/O Registers Freescale Semiconductor, Inc... The following registers control and monitor operation of the ADC: ADC Status and Control Register • ADC status and control register (ADSCR) • ADC data register (ADDR) The ADC status and control register (ADSCR) contains a conversion complete flag and four writable control bits. Writing to ADSCR clears the conversion complete flag and starts a new conversion sequence. $001E Bit 7 Read: CCF 6 5 ADRC ADON 0 0 4 3 0 0 2 1 Bit 0 CH2 CH1 CH0 0 0 0 Write: Reset: 0 0 0 = Unimplemented Figure 68. ADC Status and Control Register (ADSCR) CCF — Conversion Complete Flag This read-only bit is automatically set when an analog-to-digital conversion is complete, and a new result can be read from the ADC data register. Clear the CCF bit by writing to the ADC status and control register or by reading the ADC data register. Resets clear the CCF bit. 1 = Conversion complete 0 = Conversion not complete 10-mc68hc05p9a 122 ADC For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. ADC I/O Registers ADRC — ADC RC (Oscillator) This read/write bit turns on the internal RC oscillator to drive the ADC. If the internal clock frequency (fOP) is less than 1 MHz, ADRC must be set. When the RC oscillator is turned on, it requires a time, tADRC, to stabilize, and results can be inaccurate during this time. Resets clear the ADRC bit. 1 = Internal RC oscillator drives ADC 0 = Internal clock drives ADC Freescale Semiconductor, Inc... When the internal RC oscillator is being used as the ADC clock, two limitations apply: • Because of the frequency tolerance of the RC oscillator and its asynchronism with the internal clock, the conversion complete flag must be used to determine when a conversion sequence is complete. • The conversion process runs at the nominal 1.5-MHz rate, but the conversion results must be transferred to the ADC data register synchronously with the internal clock; therefore, the conversion process is limited to a maximum of one channel every internal clock cycle. ADON — ADC On This read/write bit turns on the ADC. When the ADC is on, it requires a time, tADON, for the current sources to stabilize. During this time, results can be inaccurate. Resets clear the ADON bit. 1 = ADC turned on 0 = ADC turned off Bits 4 and 3 — Not used Bits 4 and 3 always read as logic 0s. 11-mc68hc05p9a MOTOROLA ADC For More Information On This Product, Go to: www.freescale.com 123 Freescale Semiconductor, Inc. ADC CH[2:0] — Channel Select Bits These read/write bits select one of eight ADC input channels as shown in Table 26. Channels 0–3 are the input pins, PC3/AN3, PC4/AN2, PC5/AN1, and PC6/AN0. Channels 4–6 can be used for reference measurements. Channel 7 is reserved for factory testing. Freescale Semiconductor, Inc... Table 26. ADC Input Channel Selection CH[2:1:0] Channel Signal 000 0 AN0 001 1 AN1 010 2 AN2 011 3 AN3 100 4 VRH (see Note 1) 101 5 (VRH + VSS) / 2 (see Note 1) 110 6 VSS (see Note 1) 111 7 Reserved NOTE: 1. The accuracy of these measurements are untested and not guaranteed. To prevent excess power dissipation, do not use an ADC pin as an analog input and a digital input at the same time. Using one of the port pins as the ADC input does not affect the ability to use the remaining port pins as digital inputs. Reading a port pin that is selected as an analog input returns a logic 0. 12-mc68hc05p9a 124 ADC For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. ADC Low-Power Modes ADC Data Register The ADC data register (ADDR) is a read-only register that contains the result of the most recent analog-to-digital conversion. $001D Bit 7 6 5 4 3 2 1 Bit 0 Read: Bit 7 6 5 4 3 2 1 Bit 0 Write: Freescale Semiconductor, Inc... Reset: Unaffected by reset Figure 69. ADC Data Register (ADDR) Low-Power Modes Stop Mode The STOP instruction turns off the ADC and aborts any current and pending conversions. Wait Mode The ADC continues to operate normally after the WAIT instruction. To reduce power consumption in wait mode: • If the ADC is not being used, clear both the ADON and ADRC bits before entering wait mode. • If the ADC is being used and the internal clock rate is above 1 MHz, clear the ADRC bit before entering wait mode. 13-mc68hc05p9a MOTOROLA ADC For More Information On This Product, Go to: www.freescale.com 125 Freescale Semiconductor, Inc. Freescale Semiconductor, Inc... ADC 14-mc68hc05p9a 126 ADC For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications Contents Freescale Semiconductor, Inc... Maximum Ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 Operating Temperature Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128 Thermal Characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 Power Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129 5.0 V DC Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . .130 3.3 V DC Electrical Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . .131 Driver Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134 Typical Supply Current vs. Internal Clock Frequency . . . . . . . . . . . .135 Maximum Supply Current vs. Internal Clock Frequency . . . . . . . . . .136 5.0 V Control Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137 3.3 V Control Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138 Test Load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 Mechanical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139 28-Pin PDIP — Case #710 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 28-Pin SOIC — Case #751F . . . . . . . . . . . . . . . . . . . . . . . . . . . .140 5-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 127 Freescale Semiconductor, Inc. Specifications Maximum Ratings Freescale Semiconductor, Inc... Maximum ratings are the extreme limits to which the MCU can be exposed without permanently damaging it. The MCU contains circuitry to protect the inputs against damage from high static voltages; however, do not apply voltages higher than those shown in Table 27. Keep VIN and VOUT within the range VSS ≤ (VIN or VOUT) ≤ VDD. Connect unused inputs to the appropriate voltage level, either VSS or VDD. Table 27. Maximum Ratings Rating Symbol Value Unit VDD –0.3 to +7.0 V I 25 mA Input Voltage VIN VSS – 0.3 to VDD + 0.3 V EPROM Programming Voltage VPP 16.75 V Storage Temperature Range TSTG –65 to +150 °C Supply Voltage Current Drain per Pin (Excluding VDD and VSS) NOTE: This device is not guaranteed to operate properly at the maximum ratings. Refer to 5.0 V DC Electrical Characteristics on page 130 and 3.3 V DC Electrical Characteristics on page 132 for guaranteed operating conditions. Operating Temperature Range Table 28. Operating Temperature Range Package Type Symbol Value Unit TA 0 to 70 –40 to +85 –40 to +105 –40 to +125 °C MC68HC05P9P(1), DW(2) (Standard) MC68HC05P9C(3)P, CDW (Extended) MC68HC05P9V(4)P, VDW (Automotive) MC68HC05P9M(5)P, MDW (Automotive) 1. P = Plastic dual in-line package (PDIP) 2. DW = Small outline integrated circuit (SOIC) 3. C = Extended temperature range (–40 to +85 °C) 4. V = Automotive temperature range (–40 to +105 °C) 5. M = Automotive temperature range (–40 to +125 °C) 6-mc68hc05p9a 128 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications Thermal Characteristics Thermal Characteristics Table 29. Thermal Characteristics Characteristic Symbol Value Unit θJA 60 60 °C/W Freescale Semiconductor, Inc... Thermal Resistance Plastic Dual In-Line Package (PDIP) Small Outline Integrated Circuit (SOIC) Power Considerations The average chip junction temperature, TJ, in °C can be obtained from: T J = T A + (P D × θ JA ) (1) where: TA = ambient temperature in °C θJA = package thermal resistance, junction to ambient in °C/W PD = PINT + PI/O PINT = ICC × VCC = chip internal power dissipation PI/O = power dissipation on input and output pins (user-determined) For most applications, PI/O PINT and can be neglected. Ignoring PI/O, the relationship between PD and TJ is approximately: K P D = ---------------------------------T J + 273 °C Solving equations (1) and (2) for K gives: K = PD × ( TA + 273 °C) + θ JA × ( PD )2 (2) (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. 7-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 129 Freescale Semiconductor, Inc. Specifications 5.0 V DC Electrical Characteristics Table 30. DC Electrical Characteristics (VDD = 5.0 Vdc)(1) Symbol Min Typ(2) Max Unit VOL VOH — VDD – 0.1 — — 0.1 — V Output High Voltage PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC2, PD5, TCMP (ILoad = –0.8 mA) PC1–PC0 (ILoad = –5.0 mA) VOH VDD – 0.8 — — V Output Low Voltage PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC2, PD5, TCMP (ILoad = 1.6 mA) PC1–PC0 (ILoad = 10 mA) VOL — — 0.4 V Input High Voltage PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC0, PD5, PD7/TCAP, IRQ, RESET, OSC1 VIH 0.7 × VDD — VDD V Input Low Voltage PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC0, PD5, PD7/TCAP, IRQ, RESET, OSC1 VIL VSS — 0.2 × VDD V — — — 4.0 2.0 1.3 7.0 4.0 2.0 mA mA mA — — — 2 — — 30 50 100 µA µA µA Characteristic Freescale Semiconductor, Inc... Output Voltage ILoad = 10.0 µA ILoad = –10.0 µA Supply Current(3) (4) (5) Run Mode Wait Mode (ADC On) Wait Mode (ADC Off) Stop Mode 25 °C 0 to 70 °C (Standard) –40 to 125 °C IDD I/O Ports Hi-Z Leakage Current PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC0, PD5 IIL — — ±10 µA ADC Ports Hi-Z Leakage Current IOZ — — ±1 µA Input Current RESET, IRQ, OSC1, PD7/TCAP IIN — — ±1 µA 8-mc68hc05p9a 130 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications 5.0 V DC Electrical Characteristics Table 30. DC Electrical Characteristics (VDD = 5.0 Vdc)(1) (Continued) Symbol Min Typ(2) Max Unit Input Pullup Current(6) PA7–PA0 with Pullup Enabled) IINPU 175 385 750 µA Capacitance Ports (As Inputs or Outputs) RESET, IRQ COUT CIN — — — — 12 8 pF Freescale Semiconductor, Inc... Characteristic 1. VDD = 5.0 Vdc ± 0.3 Vdc, VSS = 0 Vdc, TA = –40 °C to +85 °C, unless otherwise noted. 2. Typical values reflect measurements taken on average processed devices at the midpoint of voltage range, 25 °C only 3. Run (operating) IDD measured using external square wave clock source; all I/O pins configured as inputs, port B = VDD, all other inputs VIL = 0.2 V, VIH = VDD –0.2 V; no DC loads; less than 50 pF on all outputs; CL = 20 pF on OSC2. 4. Wait IDD measured using external square wave clock source; all I/O pins configured as inputs, port B = VDD, all other inputs VIL = 0.2 V, VIH = VDD –0.2 V; no DC loads; less than 50 pF on all outputs; CL = 20 pF on OSC2. Wait IDD is affected linearly by the OSC2 capacitance. 5. Stop mode IDD measured with OSC1 = 0.2 V; all I/O pins configured as inputs, port B = VDD, all other inputs VIL = 0.2 V, VIH = VDD –0.2 V. 6. Input pullup current measured with VIL = 0.2 V. 9-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 131 Freescale Semiconductor, Inc. Specifications 3.3 V DC Electrical Characteristics Table 31. DC Electrical Characteristics (VDD = 3.3 Vdc)(1) Symbol Min Typ(2) Max Unit Output Voltage (ILOAD ≤ 10.0 µA) VOL VOH — VDD – 0.1 — — 0.1 — V Output High Voltage (ILOAD = –0.2 mA) PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC2, PD5, TCMP (ILoad = –0.2 mA) PC1–PC0 (ILoad = 1.2 mA) VOH VDD – 0.3 — — V Output Low Voltage (ILOAD = 0.4 mA) PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC2, PD5, TCMP (ILoad = 0.4 mA) PC1–PC0 (ILoad = 2.5 mA) VOL — — 0.3 V Input High Voltage PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC0, PD5, PD7/TCAP, IRQ, RESET, OSC1 VIH 0.7 × VDD — VDD V Input Low Voltage PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC0, PD5, PD7/TCAP, IRQ, RESET, OSC1 VIL VSS — 0.2 × VDD V Data-Retention Mode Supply Voltage VRM 2.0 — — V — — — 1.3 1.0 0.6 2.5 1.4 1.0 mA mA mA — — — 2.0 — — 20 40 50 µA µA µA Freescale Semiconductor, Inc... Characteristic Supply Current(3) (4) (5) Run Mode Wait Mode (ADC On) Wait Mode (ADC Off) Stop Mode 25 °C 0 to 70 °C (Standard) –40 to 125 °C IDD I/O Ports Hi-Z Leakage Current PA7–PA0, PB7/SCK–PB5/SDO, PC7/VRH–PC0, PD5 IIL — — ±10 µA Input Current RESET, IRQ, OSC1, PD7/TCAP IIN — — ±1 µA 10-mc68hc05p9a 132 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications 3.3 V DC Electrical Characteristics Table 31. DC Electrical Characteristics (VDD = 3.3 Vdc)(1) (Continued) Symbol Min Typ(2) Max Unit Input Pullup Current(6) PA7–PA0 with Pullup Enabled) IINPU 75 175 350 µA Capacitance Ports (As Inputs or Outputs) RESET, IRQ COUT CIN — — — — 12 8 pF Freescale Semiconductor, Inc... Characteristic 1. VDD = 3.3 Vdc ± 0.3 Vdc, VSS = 0 Vdc, TA = –40 °C to +85 °C, unless otherwise noted 2. Typical values reflect measurements taken on average processed devices at the midpoint of voltage range, 25 °C only 3. Run (operating) IDD measured using external square wave clock source; all I/O pins configured as inputs, port B = VDD, all other inputs VIL = 0.2 V, VIH = VDD –0.2 V; no DC loads; less than 50 pF on all outputs; CL = 20 pF on OSC2. 4. Wait IDD measured using external square wave clock source; all I/O pins configured as inputs, port B = VDD, all other inputs VIL = 0.2 V, VIH = VDD –0.2 V; no DC loads; less than 50 pF on all outputs; CL = 20 pF on OSC2. Wait IDD is affected linearly by the OSC2 capacitance. 5. Stop mode IDD measured with OSC1 = 0.2 V; all I/O pins configured as inputs, port B = VDD, all other inputs VIL = 0.2 V, VIH = VDD –0.2 V. 6. Input pullup current measured with VIL = 0.2 V. 11-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 133 Freescale Semiconductor, Inc. Specifications Driver Characteristics VDD = 5.0 V VDD = 3.3 V 0.8 0.8 0.7 0.6 0.6 VDD – VOH (V) Freescale Semiconductor, Inc... VDD – VOH (V) (NOTE 2) 0.7 0.5 0.4 0.3 0.5 0.4 (NOTE 3) 0.3 0.2 0.2 0.1 0.1 0 0 0 –1.0 –2.0 –3.0 –4.0 –5.0 0 –1.0 –2.0 IOH (mA) –3.0 –4.0 –5.0 IOH (mA) NOTES: 1. Shaded area indicates variation in driver characteristics due to changes in temperature and for normal processing tolerances. Within the limited range of values shown, V versus I curves are approximately straight lines. 2. At VDD = 5.0 V, devices are specified and tested for VOL ≤ 800 mV @ IOL = –0.8 mA. 3. At VDD = 3.3 V, devices are specified and tested for VOL ≤ 300 mV @ IOL = –0.2 mA. Figure 70. Typical High-Side Driver Characteristics VDD = 5.0 V VDD = 3.3 V 0.40 0.40 0.35 0.30 0.30 0.25 0.25 VOL (V) VOL (V) (NOTE 2) 0.35 0.20 0.15 0.20 0.15 0.10 0.10 0.05 0.05 0 (NOTE 3) 0 0 2.0 4.0 6.0 8.0 10.0 0 2.0 4.0 IOL (mA) 6.0 8.0 10.0 IOL (mA) NOTES: 1. Shaded area indicates variation in driver characteristics due to changes in temperature and for normal processing tolerances. Within the limited range of values shown, V versus I curves are approximately straight lines. 2. At VDD = 5.0 V, devices are specified and tested for VOL ≤ 400 mV @ IOL = 1.6 mA. 3. At VDD = 3.3 V, devices are specified and tested for VOL ≤ 300 mV @ IOL = 0.4 mA. Figure 71. Typical Low-Side Driver Characteristics 12-mc68hc05p9a 134 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications Typical Supply Current vs. Internal Clock Frequency Typical Supply Current vs. Internal Clock Frequency 5.0 RUN MODE 25 °C 5.5 V 4.0 SUPPLY CURRENT (mA) 3.6 V 3.0 3.0 V 2.0 1.0 0 0.5 0 1.0 1.5 2.0 INTERNAL CLOCK FREQUENCY (MHz) 2.0 1.2 1.0 WAIT MODE 25 °C ADC OFF 5.5 V 0.8 4.5 V 1.0 RUN MODE 25 °C ADC ON 5.5 V 0.5 4.5 V SUPPLY CURRENT (mA) 1.5 SUPPLY CURRENT (mA) Freescale Semiconductor, Inc... 4.5 V 3.6 V 3.6 V 3.0 V 0.6 0.4 0.2 3.0 V 0 0 0 0.5 1.0 1.5 INTERNAL CLOCK FREQUENCY (MHz) 2.0 0 0.5 1.0 1.5 2.0 INTERNAL CLOCK FREQUENCY (MHz) Figure 72. Typical Supply Current vs. Internal Clock Frequency 13-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 135 Freescale Semiconductor, Inc. Specifications Maximum Supply Current vs. Internal Clock Frequency 7.0 2.5 VDD = 5 V ±10% –40 to +125 °C 6.0 Run Mode Run Mode 2.0 Wait Mode (ADC On) Wait Mode (ADC Off) SUPPLY CURRENT (mA) SUPPLY CURRENT (mA) Wait Mode (ADC On) Wait Mode (ADC Off) 5.0 Freescale Semiconductor, Inc... VDD = 3.3 V ±10% –40 to +125 °C 4.0 3.0 2.0 1.5 1.0 0.5 1.0 0 0 0 0.5 1.0 1.5 INTERNAL CLOCK FREQUENCY (MHz) 2.0 0 0.5 1.0 1.5 2.0 INTERNAL CLOCK FREQUENCY (MHz) Figure 73. Maximum Supply Current vs. Internal Clock Frequency 14-mc68hc05p9a 136 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications 5.0 V Control Timing 5.0 V Control Timing Table 32. Control Timing (VDD = 5.0 Vdc)(1) Freescale Semiconductor, Inc... Characteristic Symbol Min Max Unit Oscillator Frequency Crystal External Clock fOSC — dc 4.2 4.2 MHz Internal Operating Frequency (fOSC ÷ 2) Crystal External Clock fOP — dc 2.1 2.1 MHz Cycle Time (1 ÷ fOP) tCYC 480 — ns Crystal Oscillator Startup Time tOXOV — 100 ms Stop Recovery Startup Time (Crystal Oscillator) tILCH — 100 ms tRL 1.5 — tCYC Timer Resolution(2) Input Capture Pulse Width Input Capture Pulse Period tRESL tH, tL tTLTL 4.0 125 Note(3) — — — tCYC ns tCYC Interrupt Pulse Width Low (Edge-Triggered) tILIH 125 — ns Interrupt Pulse Period tILIL Note(4) — tCYC tOH, tOL 90 — ns RC Oscillator Stabilization Time tRCON — 5 µs ADC On Current Stabilization Time tADON — 100 µs RESET Pulse Width OSC1 Pulse Width 1. VDD = 5.0 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH unless otherwise noted 2. A 2-bit prescaler in the timer is the limiting factor as it counts 4 tCYC 3. The minimum tTLTL should not be less than the number of interrupt service routine cycles plus 19 tCYC 4. The minimum tILIL should not be less than the number of interrupt service routine cycles plus 19 tCYC 15-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 137 Freescale Semiconductor, Inc. Specifications 3.3 V Control Timing Table 33. Control Timing (VDD = 3.3 Vdc)(1) Freescale Semiconductor, Inc... Characteristic Symbol Min Max Unit Oscillator Frequency Crystal External Clock fOSC — dc 2.0 2.0 MHz Internal Operating Frequency (fOSC ÷ 2) Crystal External Clock fOP — dc 1.0 1.0 MHz Cycle Time (1 ÷ fOP) tCYC 1 — ms Crystal Oscillator Startup Time tOXOV — 100 ms Stop Recovery Startup Time (Crystal Oscillator) tILCH — 100 ms tRL 1.5 — tCYC Timer Resolution(2) Input Capture Pulse Width Input Capture Pulse Period tRESL tH, tL tTLTL 4.0 250 Note(3) — — — tCYC ns tCYC Interrupt Pulse Width Low (Edge-Triggered) tILIH 250 — ns Interrupt Pulse Period tILIL Note(4) — tCYC tOH, tOL 200 — ns RESET Pulse Width OSC1 Pulse Width 1. VDD = 3.3 Vdc ±10%, VSS = 0 Vdc, TA = TL to TH unless otherwise noted 2. A 2-bit prescaler in the timer is the limiting factor as it counts 4 tCYC 3. The minimum tTLTL should not be less than the number of interrupt service routine cycles plus 19 tCYC 4. The minimum tILIL should not be less than the number of interrupt service routine cycles plus 19 tCYC 16-mc68hc05p9a 138 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Specifications Test Load Test Load VDD PINS R2 R2 C 3.26 kΩ 2.38 kΩ 50 pF PA7–PA0 TEST POINT PB7/SCK–PB5/SDO C Freescale Semiconductor, Inc... R1 R1 PC7/VRH–PC0 Figure 74. Test Load Mechanical Specifications The MC68HC05P9A is available in the following packages: • 710 — Plastic dual in-line package (PDIP) • 751F — Small outline integrated circuit (SOIC) The following figures show the latest packages at the time of this publication. To make sure that you have the latest package specifications, contact one of the following: • Local Motorola Sales Office • Motorola Mfax – Phone 602-244-6609 – EMAIL [email protected] • Worldwide Web (wwweb) at http://design-net.com Follow Mfax or wwweb on-line instructions to retrieve the current mechanical specifications. 17-mc68hc05p9a MOTOROLA Specifications For More Information On This Product, Go to: www.freescale.com 139 Freescale Semiconductor, Inc. Specifications 28-Pin PDIP — Case #710 28 ! ! ! #! %% ! $" ! ! ! ! ! ! ! ! # ! " 15 B 1 14 Freescale Semiconductor, Inc... A L C N H G M K D F J ° ° ° ° 28-Pin SOIC — Case #751F -A28 ! ! % ! ! ! " !" $" !" ! " !" # !" !! $ ! $" ! ! 15 14X -B1 P 14 28X D ! M R X 45° C -T26X -T- G K F J ° ° ° ° 18-mc68hc05p9a 140 Specifications For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... A accumulator (A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 37 ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 117 ADC (analog-to-digital converter) block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 I/O registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 ADC data register (ADDR) . . . . . . . . . . . . . . . . . . . 120, 122–123, 125 ADC status and control register (ADSCR) . . . . . . . . . . . . . . . 120, 122 addressing modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ADON bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123, 125 ADRC bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120, 123, 125 alternate timer registers (ATRH/L) . . . . . . . . . . . . . . . . . . . . . . . . . . 99 ALU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 AN[3:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 analog-to-digital converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 arithmetic/logic unit (ALU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 B brownout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 80 bypass capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 MOTOROLA Index For More Information On This Product, Go to: www.freescale.com 141 Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... C C bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 case outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 140 CCF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120, 122 central processor unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 ceramic resonator circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 CH[2:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 computer operating properly watchdog . . . . . . . . . . . . . . . . . . . . . . 79 condition code register (CCR) . . . . . . . . . . 30, 39, 53, 55–56, 98–101 COP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 COP register (COPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 81 COP watchdog COP in halt mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 COP in stop mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 COP in wait mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 COP register (COPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 timeout period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 COP watchdog reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 80–81 COPC bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 81, 83 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27–28 block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 control unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28, 30 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 instruction set summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 instruction types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 instructions set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 opcode map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 CPU registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 34, 37, 41, 56 accumulator (A) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 37 condition code register (CCR) . . . . . . . . 30, 39, 53, 55–56, 98–101 index register (X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34–37 program counter (PC) . . . . . . . . . . . . . . . . . . . . . . . . 36, 39, 50, 56 stack pointer (SP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 142 Index For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Index crystal AT-cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . strip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tuning fork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . crystal oscillator circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 16 16 Freescale Semiconductor, Inc... D data direction registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 112 data direction register A (DDRA) . . . . . . . . . . . . . . . . . . . . . . 18, 68 data direction register B (DDRB) . . . . . . . . . . . . . . . . . . . . . . 18, 71 data direction register C (DDRC) . . . . . . . . . . . . . . . . . . . . . 18, 74 data direction register D (DDRD) . . . . . . . . . . . . . . . . . . . . . 18, 77 DCOL bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 DDRA[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 DDRB[7:5] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 DDRC[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 DDRD5 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 E electrical specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 3.3 V DC electrical characteristics . . . . . . . . . . . . . . . . . . . . . . 132 5.0 V DC electrical characteristics . . . . . . . . . . . . . . . . . . . . . . 130 control timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137–138 current versus internal clock frequency . . . . . . . . . . . . . . . 135–136 driver characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 operating temperature range . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 power considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 test load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 thermal characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 electrostatic damage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 external interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 53–54, 82, 102 external interrupt vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 external reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51, 82, 102 MOTOROLA Index For More Information On This Product, Go to: www.freescale.com 143 Freescale Semiconductor, Inc. Index H halt mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 effect on COP watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 halt instruction flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Freescale Semiconductor, Inc... I I bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53, 55–56, 98–101 I/O bits ADON bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123, 125 ADRC bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120, 123, 125 AN[3:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 C bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 CCF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120, 122 CH[2:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 COPC bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 81, 83 DCOL bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 DDRA[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 DDRB[7:5] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 DDRC[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 DDRD5 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 I bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53, 55–56, 98–101 ICF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94, 97, 100, 102 ICIE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94–95 IEDG bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 MSTR bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 OCF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94, 97, 101 OCIE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94–95 OLVL bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90, 96 PA[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 PB[7:5] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 PC[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 PD5 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 PD7 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 SPE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 112, 115 SPIF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 TOF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 94, 97–99 TOIE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 94–95 144 Index For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... I/O pins IRQ pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 53 IRQ/VPP pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 OSC1 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 OSC2 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 PB5/SDO pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 107–108, 112 PB6/SDI pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 107–108, 112 PB7/SCK pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 107–108, 112 PC3/AN0 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 PC3/AN3 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119 PC4/AN2 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 PC5/AN1 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 PC6/AN0 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 PC7/VRH pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , 119 PD7/TCAP pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 89, 96–97 RESET pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 50–52 TCMP pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 89–90, 96, 101 VSS pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 I/O port pin termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 I/O registers ADC data register (ADDR) . . . . . . . . . . . . . . . . 120, 122–123, 125 ADC status and control register (ADSCR) . . . . . . . . . . . . 120, 122 alternate timer registers (ATRH/L) . . . . . . . . . . . . . . . . . . . . . . . 99 COP register (COPR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 81 data direction register A (DDRA) . . . . . . . . . . . . . . . . . . . . . . . . . 68 data direction register B (DDRB) . . . . . . . . . . . . . . . . . . . . . . . . . 71 data direction register C (DDRC) . . . . . . . . . . . . . . . . . . . . . . . . 74 data direction register D (DDRD) . . . . . . . . . . . . . . . . . . . . . . . . 77 input capture registers (ICRH/ICRL) . . . . . . . . . . . . . . . . . . . . . . 89 input capture registers (ICRH/L) . . . . . . . . . . . . . . 96–97, 100, 102 output compare registers (OCRH/L) . . . . . . . . . . . . . . . 96–97, 101 output compare registers (OCRH/OCRL) . . . . . . . . . . . . . . . . . . 90 port A data register (PORTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 port B data register (PORTB) . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 port C data register (PORTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 port D data register (PORTD) . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 SIOP control register (SCR) . . . . . . . . . . . . . . . . . . . 107, 112, 115 SIOP data register (SDR) . . . . . . . . . . . . . . . . . . . . . . . . . 114–115 MOTOROLA Index For More Information On This Product, Go to: www.freescale.com 145 Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... SIOP status register (SSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 timer control register (TCR) . . . . . . . . . . . . . . . . . . . . . . . 55–56, 95 timer registers (TRH/L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96–98 timer status register (TSR) . . . . . . . . . . . . . . . 55–56, 96, 100–101 ICF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94, 97, 100, 102 ICIE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94–95 IEDG bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 index register (X) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34–37 input capture interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 input capture registers (ICRH/L) . . . . . . . . . . . . . . 89, 96–97, 100, 102 instruction set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 addressing modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 instruction set summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 instruction types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 opcode map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 internal clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 internal RC oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120, 123 Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 external interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 external interrupt logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 external interrupt timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54–55 interrupt flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 interrupt processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 interrupt sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 interrupt stacking order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 reset/interrupt vector addresses . . . . . . . . . . . . . . . . . . . . . . . . . 57 software interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 timer interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 introduction, MC68HC05P9A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 IRQ latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 IRQ pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 53 IRQ/VPP pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 146 Index For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Index J junction temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Freescale Semiconductor, Inc... L literature updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 low voltage protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 ADC in stop and wait modes . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 COP in stop, halt, and wait modes . . . . . . . . . . . . . . . . . . . . . . . 82 HALT instruction flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 halt mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 SIOP in stop and wait modes . . . . . . . . . . . . . . . . . . . . . . . . . . 116 STOP instruction flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 stop mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 stop recovery timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 STOP/WAIT clock logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 timer in stop and wait modes . . . . . . . . . . . . . . . . . . . . . . . . . . 102 WAIT instruction flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 wait mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 M mask options COP watchdog enable/disable . . . . . . . . . . . . . . . . . . . . . . . . . . 80 SIOP data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 mask selectable options COP watchdog enable/disable . . . . . . . . . . . . . . . . . . . . . . . . . . 12 external interrupt pin enable/disable . . . . . . . . . . . . . . . . . . . . . . 12 keyscan pullups/interrupts on port A enable/disable . . . . . . . . . . 12 SIOP data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 STOP instruction enable/disable . . . . . . . . . . . . . . . . . . . . . . . . . 12 mechanical specifications packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 parallel I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ROM security feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 MSTR bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 MOTOROLA Index For More Information On This Product, Go to: www.freescale.com 147 Freescale Semiconductor, Inc. Index N noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15, 17 Freescale Semiconductor, Inc... O OCF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94, 97, 101 OCIE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94–95 OLVL bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90, 96 on-chip oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 stabilization delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50, 82, 116 opcode map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 operating temperature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 operating temperature range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 order numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 OSC1 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 OSC2 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 output compare interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86, 90 output compare registers (OCRH/L) . . . . . . . . . . . . . . . 90, 96–97, 101 P PA[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 package dimensions PDIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 SOIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 package types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 parallel I/O ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 PB[7:5] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 PB5/SDO pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 107–108, 112 PB6/SDI pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 107–108, 112 PB7/SCK pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71, 107–108, 112 PB7SCK pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 PC[7:0] bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 PC3/AN3 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 PC4/AN2 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 PC5/AN1 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 148 Index For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... PC6/AN0 pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119, 124 PC7/VRH pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73, 119 PD5 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 PD7 bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 PD7/TCAP pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76, 89, 96–97 pin assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 pin descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 pin functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 port A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 67 data direction register A (DDRA) . . . . . . . . . . . . . . . . . . . . . . . . . 68 port A data register (PORTA) . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 port A I/O pin interrupts/pullups . . . . . . . . . . . . . . . . . . . . . . . . . . 70 port B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 70 data direction register B (DDRB) . . . . . . . . . . . . . . . . . . . . . . . . . 71 port B data register (PORTB) . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 port C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 73 data direction register C (DDRC) . . . . . . . . . . . . . . . . . . . . . . . . 74 high current sink/source capability . . . . . . . . . . . . . . . . . . . . . . . 75 PC0–PC1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 port C data register (PORTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 port D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 76 data direction register D (DDRD) . . . . . . . . . . . . . . . . . . . . . . . . 77 port D data register (PORTD) . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 parallel I/O port register summary . . . . . . . . . . . . . . . . . . . . . . . . 66 port A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 port B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 port C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 port D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 power dissipation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124, 129 power supply (VDD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 power-on reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 program counter (PC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 36, 39, 50, 56 MOTOROLA Index For More Information On This Product, Go to: www.freescale.com 149 Freescale Semiconductor, Inc. Index R Freescale Semiconductor, Inc... RAM locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 rc oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 registers ADC I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 CPU registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 parallel I/O port register summary . . . . . . . . . . . . . . . . . . . . . . . . 66 parallel I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 SIOP I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 timer I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 RESET pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17, 50–52 reset sources COP watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 power-on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 RESET pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 reset vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49–50 COP watchdog reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 80 COP watchdog reset operation . . . . . . . . . . . . . . . . . . . . . . . . . . 80 external reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 external reset timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 low-voltage protection reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 power-on reset (POR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 power-on reset (POR) timing . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 reset sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 reset/interrupt vector addresses . . . . . . . . . . . . . . . . . . . . . . . . . 57 resets and interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 S self-check mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 serial input/output port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 SIOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 150 Index For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... SIOP (serial input/output port) block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 I/O registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110–111 SIOP control register (SCR) . . . . . . . . . . . . . . . . . . . . . . 107, 112, 115 SIOP data register (SDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114–115 SIOP status register (SSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 software failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 software interrupt vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 SPE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107, 112, 115 specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 See "electrical specifications." . . . . . . . . . . . . . . . . . . . . . . . . . 128 See "mechanical specifications." . . . . . . . . . . . . . . . . . . . . . . . 139 SPIF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 stack pointer (SP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 stack RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24, 56 stop mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 effect on ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 effect on capture/compare timer . . . . . . . . . . . . . . . . . . . . . . . . 102 effect on COP watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 effect on SIOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 STOP instruction flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 stop recovery timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 STOP/WAIT clock logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 supply voltage (VDD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80, 128 MOTOROLA Index For More Information On This Product, Go to: www.freescale.com 151 Freescale Semiconductor, Inc. Index Freescale Semiconductor, Inc... T TCMP pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 89–90, 96, 101 thermal resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 I/O register summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 I/O registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55, 94 low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89, 99 timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91–93 timer control register (TCR) . . . . . . . . . . . . . . . . . . . . . . . . . 55–56, 95 timer interrupt vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 timer registers (TRH/L) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96–98 timer resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 timer status register (TSR) . . . . . . . . . . . . . . . . . . 55–56, 96, 100–101 TOF bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 94, 97–99 TOIE bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56, 94–95 V VDD power supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 VSS pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 W wait mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 effect on ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 effect on capture/compare timer . . . . . . . . . . . . . . . . . . . . . . . . 102 effect on COP watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 effect on SIOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 STOP/WAIT clock logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 WAIT instruction flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 152 Index For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. Literature Updates Freescale Semiconductor, Inc... This document contains the latest data available at publication time. For updates, contact one of the following: Literature Distribution Centers Call or order literature by mail. USA/Europe: Motorola Literature Distribution P.O. Box 5405 Denver, Colorado 80217 Phone 1-800-441-2447 or 303-675-2140 Japan: Nippon Motorola Ltd. SPD Strategic Planning Office 4-32-1 Nishi-Gotanda Shinagawa-ku Tokyo 141, Japan Phone 81-3-5487-8488 Hong Kong: Motorola Semiconductors H.K. Ltd. 8B Tai Ping Industrial Park 51 Ting Kok Road Tai Po, N.T., Hong Kong Phone 852-26629298 MOTOROLA Literature Updates For More Information On This Product, Go to: www.freescale.com 153 Freescale Semiconductor, Inc. Literature Updates Mfax Freescale Semiconductor, Inc... Call to access this worldwide faxing service. [email protected] TOUCHTONE 602-244-6609 U.S. and Canada Only 1-800-774-1848 Or, on the http://Design-NET.com home page, select the Mfax icon. Obtain a fax of complete, easy-to-use Mfax instructions by entering your FAX number and then pressing the 1 key. Motorola SPS World Marketing World Wide Web Server Use the Internet to access this World Wide Web Server. Use the following URL: http://motorola.com/sps CSIC Microcontroller Division’s Web Site Directly access the CSIC Microcontroller Division’s web site with the following URL: http://Design-net.com/csic/CSIC_home.html 154 Literature Updates For More Information On This Product, Go to: www.freescale.com MOTOROLA Freescale Semiconductor, Inc. MC68HC05P9A Rev. 3 Technical Data Book Please help us to continue improving the quality and usefulness of our data books by filling out this form and sending your comments to us. You can return the form by mail, or FAX it to 512-891-3236. Thank you for your help and continued support! 1. How do you rate the quality of this data book? Freescale Semiconductor, Inc... High Low High Organization Tables Readability Table of contents Accuracy Page size/binding Figures Overall impression 2. Are you able to find the information you need easily? Yes No 3. What are your recommendations for making this data book more useful? 4. What additional information would you like to see included in future data books? For More Information On This Product, Go to: www.freescale.com Low Freescale Semiconductor, Inc. Motorola 6501 William Cannon Drive West Mail Stop OE17 Austin, Texas 78735-8598 USA Attention: CSIC Publications Department CSIC Microcontroller Division Second: fold back along this line Please supply the following information (optional). Name: __________________________________________________________________ Company Name: ________________________________________________________ Title: ____________________________________________________________________ Address: _________________________________________________________________ City: ____________________________________________State: _____Zip:__________ Phone Number: _________________________________________________________ For More Information On This Product, Go to: www.freescale.com First: cut along this line to remove Freescale Semiconductor, Inc... PLEASE PASTE POSTAGE HERE Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. For More Information On This Product, Go to: www.freescale.com Freescale Semiconductor, Inc... Freescale Semiconductor, Inc. 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 which may be provided in Motorola data sheets and/or specifications can and do vary in different applications and actual performance may vary over time. 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. How to reach us: USA/EUROPE/Locations Not Listed: Motorola Literature Distribution; P.O. Box 5405, Denver, Colorado 80217. 1-800-441-2447 or 303-675-2140 Mfax™: [email protected] – TOUCHTONE 602-244-6609, US & Canada ONLY 1-800-774-1848 INTERNET: http://motorola.com/sps JAPAN: Nippon Motorola Ltd. SPD, Strategic Planning Office 4-32-1, Nishi-Gotanda Shinagawa-ku, Tokyo 141, Japan. 81-3-5487-8488 ASIA/PACIFIC: Motorola Semiconductors H.K. Ltd.; 8B Tai Ping Industrial Park, 51 Ting Kok Road, Tai Po, N.T., Hong Kong. 852-26629298 Mfax is a trademark of Motorola, Inc. © Motorola, Inc., 1997 For More Information On This Product, Go to: www.freescale.com MC68HC05P9A/D