电子工程世界电子工程世界电子工程世界

型号

产品描述

搜索

S9S08AW32E5MFDE

器件型号:S9S08AW32E5MFDE
器件类别:半导体    嵌入式处理器和控制器   
文件大小:28353.32KB,共10页
厂商名称:NXP
厂商官网:https://www.nxp.com
下载文档

器件描述

8-bit Microcontrollers - MCU AUTO MOS12 M75B 8BIT

参数

产品属性属性值
产品种类:
Product Category:
8-bit Microcontrollers - MCU
制造商:
Manufacturer:
NXP
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
QFN-48
系列:
Series:
S08AW
Core:HCS08
Data Bus Width:8 bit
Maximum Clock Frequency:40 MHz
Program Memory Size:32 kB
Data RAM Size:2 kB
Number of I/Os:38 I/O
最大工作温度:
Maximum Operating Temperature:
+ 125 C
封装:
Packaging:
Tray
商标:
Brand:
NXP / Freescale
高度:
Height:
1 mm
接口类型:
Interface Type:
I2C, SCI, SPI
长度:
Length:
7 mm
最小工作温度:
Minimum Operating Temperature:
- 40 C
Moisture Sensitive:Yes
Number of Timers/Counters:2 Timer
Processor Series:S08AW
Program Memory Type:Flash
工厂包装数量:
Factory Pack Quantity:
260
电源电压-最大:
Supply Voltage - Max:
5.5 V
电源电压-最小:
Supply Voltage - Min:
2.7 V
宽度:
Width:
7 mm
单位重量:
Unit Weight:
0.003961 oz

S9S08AW32E5MFDE器件文档内容

Freescale Semiconductor                                      Document Number: QFN_Addendum

Addendum                                                                               Rev. 0, 07/2014

Addendum for New QFN

Package Migration

This addendum provides the changes to the 98A case outline numbers for products covered in this book.

Case outlines were changed because of the migration from gold wire to copper wire in some packages. See

the table below for the old (gold wire) package versus the new (copper wire) package.

To view the new drawing, go to Freescale.com and search on the new 98A package number for your

device.

For more information about QFN package use, see EB806: Electrical Connection Recommendations for

the Exposed Pad on QFN and DFN Packages.

© Freescale Semiconductor, Inc., 2014. All rights reserved.
   Part Number         Package Description       Original (gold wire)         Current (copper wire)

                                                 package document number      package document number

MC68HC908JW32   48 QFN                           98ARH99048A                  98ASA00466D

MC9S08AC16

MC9S908AC60

MC9S08AC128

MC9S08AW60

MC9S08GB60A

MC9S08GT16A

MC9S08JM16

MC9S08JM60

MC9S08LL16

MC9S08QE128

MC9S08QE32

MC9S08RG60

MCF51CN128

MC9RS08LA8      48 QFN                           98ARL10606D                  98ASA00466D

MC9S08GT16A     32 QFN                           98ARH99035A                  98ASA00473D

MC9S908QE32     32 QFN                           98ARE10566D                  98ASA00473D

MC9S908QE8      32 QFN                           98ASA00071D                  98ASA00736D

MC9S08JS16      24 QFN                           98ARL10608D                  98ASA00734D

MC9S08QB8

MC9S08QG8       24 QFN                           98ARL10605D                  98ASA00474D

MC9S08SH8       24 QFN                           98ARE10714D                  98ASA00474D

MC9RS08KB12     24 QFN                           98ASA00087D                  98ASA00602D

MC9S08QG8       16 QFN                           98ARE10614D                  98ASA00671D

MC9RS08KB12     8 DFN                            98ARL10557D                  98ASA00672D

MC9S08QG8

MC9RS08KA2      6 DFN                            98ARL10602D                  98ASA00735D

                       Addendum  for  New   QFN  Package Migration,  Rev.  0

2                                                                             Freescale Semiconductor
MC9S08AW60

MC9S08AW48

MC9S08AW32

MC9S08AW16

Data Sheet

HCS08

Microcontrollers

MC9S08AW60

Rev 2

12/2006

freescale.com
MC9S08AW60 Features

8-Bit  HCS08 Central Processor Unit (CPU)                 •  IIC — Inter-integrated circuit bus module to

•      40-MHz HCS08 CPU (central processor unit)             operate at up to 100 kbps with maximum bus

•      20-MHz internal bus frequency                         loading; capable of higher baud rates with

•      HC08 instruction set with added BGND                  reduced loading

       instruction                                        •  Timers — One 2-channel and one 6-channel

•      Single-wire background debug mode interface           16-bit timer/pulse-width modulator (TPM)

•      Breakpoint capability to allow single breakpoint      module: Selectable input capture, output

       setting during in-circuit debugging (plus two         compare, and edge-aligned PWM capability on

       more breakpoints in on-chip debug module)             each channel. Each timer module may be

                                                             configured for buffered, centered PWM

•      On-chip real-time in-circuit emulation (ICE) with     (CPWM) on all channels

       two comparators (plus one in BDM), nine            •  KBI — Up to 8-pin keyboard interrupt module

       trigger modes, and on-chip bus capture buffer.

       Typically shows approximately 50 instructions      Input/Output

       before or after the trigger point.                 •  Up to 54 general-purpose input/output (I/O)

•      Support for up to 32 interrupt/reset sources          pins

Memory Options                                            •  Software-selectable pullups on ports when

•      Up to 60 KB of on-chip in-circuit programmable        used as inputs

       FLASH memory with block protection and             •  Software-selectable slew rate control on ports

       security options                                      when used as outputs

•      Up to 2 KB of on-chip RAM                          •  Software-selectable drive strength on ports

                                                             when used as outputs

Clock Source Options                                      •  Master reset pin and power-on reset (POR)

•      Clock source options include crystal, resonator,   •  Internal pullup on RESET, IRQ, and BKGD/MS

       external clock, or internally generated clock         pins to reduce customer system cost

       with precision NVM trimming

                                                          Package Options

System Protection                                         MC9S08AW60/48/32

•      Optional computer operating properly (COP)         •  64-pin quad flat package (QFP)

       reset

•      Low-voltage detection with reset or interrupt      •  64-pin low-profile quad flat package (LQFP)

•      Illegal opcode detection with reset                •  48-pin low-profile quad flat package (QFN)

•      Illegal address detection with reset (some         •  44-pin low-profile quad flat package (LQFP)

       devices don’t have illegal addresses)              MC9S08AW16

Power-Saving Modes                                        •  48-pin low-profile quad flat package (QFN)

•      Wait plus two stops                                •  44-pin low-profile quad flat package (LQFP)

Peripherals

•      ADC — Up to 16-channel, 10-bit

       analog-to-digital converter with automatic

       compare function

•      SCI — Two serial communications interface

       modules with optional 13-bit break

•      SPI — Serial peripheral interface module
MC9S08AW60 Data Sheet

Covers: MC9S08AW60

MC9S08AW48

MC9S08AW32

MC9S08AW16

MC9S08AW60

Rev 2

12/2006
Revision History

To provide the most up-to-date information, the revision of our documents on the World Wide Web will be

the most current. Your printed copy may be an earlier revision. To verify you have the latest information

available, refer to:

http://freescale.com/

The following revision history table summarizes changes contained in this document. For your

convenience, the page number designators have been linked to the appropriate location.

Revision  Revision                                           Description of Changes

Number    Date

1         1/2006       Initial external release.

                       Includes KBI block changes; new VOL / IOL figures; RIDD spec changes; SC part

2         12/2006      numbers with ICG trim modifications; addition of Temp Sensor to ADC. Resolved

                       the stop IDD issues, added RTI figure, bandgap information, and incorporated

                       electricals edits and any ProjectSync issues.

This product incorporates SuperFlash® technology licensed from SST.

Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc.

© Freescale Semiconductor, Inc., 2006. All rights reserved.
                         List of Chapters

Chapter                  Title                         Page

Chapter 1                Introduction...................................................................................... 19

Chapter 2                Pins and Connections ..................................................................... 23

Chapter 3                Modes of Operation ......................................................................... 33

Chapter 4                Memory ............................................................................................. 39

Chapter 5                Resets, Interrupts, and System Configuration ............................. 65

Chapter 6                Parallel Input/Output ....................................................................... 81

Chapter 7                Central Processor Unit (S08CPUV2) ............................................ 109

Chapter 8                Internal Clock Generator (S08ICGV4) .......................................... 129

Chapter 9                Keyboard Interrupt (S08KBIV1) .................................................... 157

Chapter 10               Timer/PWM (S08TPMV2) ............................................................... 165

Chapter 11               Serial Communications Interface (S08SCIV2)............................. 181

Chapter 12               Serial Peripheral Interface (S08SPIV3) ........................................ 199

Chapter 13               Inter-Integrated Circuit (S08IICV1) ............................................... 215

Chapter 14               Analog-to-Digital Converter (S08ADC10V1)................................ 233

Chapter 15               Development Support ................................................................... 261

Appendix A               Electrical Characteristics and Timing Specifications ................ 283

Appendix B               Ordering Information and Mechanical Drawings........................ 309

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                           7
                         Contents

Section Number           Title                         Page

                         Chapter 1

                         Introduction

1.1  Overview .........................................................................................................................................19

1.2  MCU Block Diagrams .....................................................................................................................19

1.3  System Clock Distribution ..............................................................................................................21

                         Chapter 2

                         Pins and Connections

2.1  Introduction .....................................................................................................................................23

2.2  Device Pin Assignment ...................................................................................................................24

2.3  Recommended System Connections ...............................................................................................26

     2.3.1  Power (VDD, 2 x VSS, VDDAD, VSSAD) .........................................................................28

     2.3.2  Oscillator (XTAL, EXTAL) ............................................................................................28

     2.3.3  RESET Pin ......................................................................................................................29

     2.3.4  Background/Mode Select (BKGD/MS) .........................................................................29

     2.3.5  ADC Reference Pins (VREFH, VREFL) ...........................................................................29

     2.3.6  External Interrupt Pin (IRQ) ...........................................................................................29

     2.3.7  General-Purpose I/O and Peripheral Ports .....................................................................30

                         Chapter 3

                         Modes of Operation

3.1  Introduction .....................................................................................................................................33

3.2  Features ...........................................................................................................................................33

3.3  Run Mode ........................................................................................................................................33

3.4  Active Background Mode ................................................................................................................33

3.5  Wait Mode .......................................................................................................................................34

3.6  Stop Modes ......................................................................................................................................34

     3.6.1  Stop2 Mode ....................................................................................................................35

     3.6.2  Stop3 Mode ....................................................................................................................36

     3.6.3  Active BDM Enabled in Stop Mode ...............................................................................36

     3.6.4  LVD Enabled in Stop Mode ...........................................................................................37

     3.6.5  On-Chip Peripheral Modules in Stop Modes .................................................................37

                         Chapter 4

                         Memory

4.1  MC9S08AW60 Series Memory Map ..............................................................................................39

     4.1.1  Reset and Interrupt Vector Assignments ........................................................................42

4.2  Register Addresses and Bit Assignments ........................................................................................43

4.3  RAM ................................................................................................................................................49

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                                      9
Section Number  Title                                     Page

4.4  FLASH ............................................................................................................................................50

     4.4.1  Features ...........................................................................................................................51

     4.4.2  Program and Erase Times ...............................................................................................51

     4.4.3  Program and Erase Command Execution .......................................................................52

     4.4.4  Burst Program Execution ...............................................................................................53

     4.4.5  Access Errors ..................................................................................................................55

     4.4.6  FLASH Block Protection ...............................................................................................55

     4.4.7  Vector Redirection ..........................................................................................................56

4.5  Security ............................................................................................................................................56

4.6  FLASH Registers and Control Bits .................................................................................................58

     4.6.1  FLASH Clock Divider Register (FCDIV) ......................................................................58

     4.6.2  FLASH Options Register (FOPT and NVOPT) .............................................................59

     4.6.3  FLASH Configuration Register (FCNFG) .....................................................................60

     4.6.4  FLASH Protection Register (FPROT and NVPROT) ....................................................61

     4.6.5  FLASH Status Register (FSTAT) ...................................................................................61

     4.6.6  FLASH Command Register (FCMD) ............................................................................63

                Chapter 5

            Resets, Interrupts, and System Configuration

5.1  Introduction .....................................................................................................................................65

5.2  Features ...........................................................................................................................................65

5.3  MCU Reset ......................................................................................................................................65

5.4  Computer Operating Properly (COP) Watchdog .............................................................................66

5.5  Interrupts .........................................................................................................................................66

     5.5.1  Interrupt Stack Frame .....................................................................................................67

     5.5.2  External Interrupt Request (IRQ) Pin .............................................................................68

     5.5.3  Interrupt Vectors, Sources, and Local Masks .................................................................69

5.6  Low-Voltage Detect (LVD) System ................................................................................................71

     5.6.1  Power-On Reset Operation .............................................................................................71

     5.6.2  LVD Reset Operation .....................................................................................................71

     5.6.3  LVD Interrupt Operation ................................................................................................71

     5.6.4  Low-Voltage Warning (LVW) ........................................................................................71

5.7  Real-Time Interrupt (RTI) ...............................................................................................................71

5.8  MCLK Output .................................................................................................................................72

5.9  Reset, Interrupt, and System Control Registers and Control Bits ...................................................72

     5.9.1  Interrupt Pin Request Status and Control Register (IRQSC) .........................................73

     5.9.2  System Reset Status Register (SRS) ...............................................................................74

     5.9.3  System Background Debug Force Reset Register (SBDFR) ..........................................75

     5.9.4  System Options Register (SOPT) ...................................................................................75

     5.9.5  System MCLK Control Register (SMCLK) ...................................................................76

     5.9.6  System Device Identification Register (SDIDH, SDIDL) ..............................................77

     5.9.7  System Real-Time Interrupt Status and Control Register (SRTISC) .............................78

                MC9S08AW60 Data Sheet, Rev 2

10                                                        Freescale Semiconductor
Section Number           Title                              Page

     5.9.8   System Power Management Status and Control 1 Register (SPMSC1) .........................79

     5.9.9   System Power Management Status and Control 2 Register (SPMSC2) .........................80

                         Chapter 6

                         Parallel Input/Output

6.1  Introduction .....................................................................................................................................81

6.2  Features ...........................................................................................................................................81

6.3  Pin Descriptions ..............................................................................................................................82

     6.3.1   Port A ..............................................................................................................................82

     6.3.2   Port B ..............................................................................................................................82

     6.3.3   Port C ..............................................................................................................................83

     6.3.4   Port D ..............................................................................................................................83

     6.3.5   Port E ..............................................................................................................................84

     6.3.6   Port F ..............................................................................................................................85

     6.3.7   Port G ..............................................................................................................................85

6.4  Parallel I/O Control .........................................................................................................................86

6.5  Pin Control ......................................................................................................................................87

     6.5.1   Internal Pullup Enable ....................................................................................................87

     6.5.2   Output Slew Rate Control Enable ..................................................................................87

     6.5.3   Output Drive Strength Select ..........................................................................................87

6.6  Pin Behavior in Stop Modes ............................................................................................................88

6.7  Parallel I/O and Pin Control Registers ............................................................................................88

     6.7.1   Port A I/O Registers (PTAD and PTADD) .....................................................................88

     6.7.2   Port A Pin Control Registers (PTAPE, PTASE, PTADS) ..............................................89

     6.7.3   Port B I/O Registers (PTBD and PTBDD) .....................................................................91

     6.7.4   Port B Pin Control Registers (PTBPE, PTBSE, PTBDS) ..............................................92

     6.7.5   Port C I/O Registers (PTCD and PTCDD) .....................................................................94

     6.7.6   Port C Pin Control Registers (PTCPE, PTCSE, PTCDS) ..............................................95

     6.7.7   Port D I/O Registers (PTDD and PTDDD) ....................................................................97

     6.7.8   Port D Pin Control Registers (PTDPE, PTDSE, PTDDS) .............................................98

     6.7.9   Port E I/O Registers (PTED and PTEDD) ....................................................................100

     6.7.10  Port E Pin Control Registers (PTEPE, PTESE, PTEDS) .............................................101

     6.7.11  Port F I/O Registers (PTFD and PTFDD) ....................................................................103

     6.7.12  Port F Pin Control Registers (PTFPE, PTFSE, PTFDS) ..............................................104

     6.7.13  Port G I/O Registers (PTGD and PTGDD) ..................................................................106

     6.7.14  Port G Pin Control Registers (PTGPE, PTGSE, PTGDS) ...........................................107

                         Chapter 7

                         Central Processor Unit (S08CPUV2)

7.1  Introduction ...................................................................................................................................109

     7.1.1   Features .........................................................................................................................109

7.2  Programmer’s Model and CPU Registers .....................................................................................110

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                                      11
Section Number  Title                                Page

     7.2.1  Accumulator (A) ...........................................................................................................110

     7.2.2  Index Register (H:X) ....................................................................................................110

     7.2.3  Stack Pointer (SP) .........................................................................................................111

     7.2.4  Program Counter (PC) ..................................................................................................111

     7.2.5  Condition Code Register (CCR) ...................................................................................111

7.3  Addressing Modes .........................................................................................................................113

     7.3.1  Inherent Addressing Mode (INH) ................................................................................113

     7.3.2  Relative Addressing Mode (REL) ................................................................................113

     7.3.3  Immediate Addressing Mode (IMM) ...........................................................................113

     7.3.4  Direct Addressing Mode (DIR) ....................................................................................113

     7.3.5  Extended Addressing Mode (EXT) ..............................................................................114

     7.3.6  Indexed Addressing Mode ............................................................................................114

7.4  Special Operations .........................................................................................................................115

     7.4.1  Reset Sequence .............................................................................................................115

     7.4.2  Interrupt Sequence ........................................................................................................115

     7.4.3  Wait Mode Operation ...................................................................................................116

     7.4.4  Stop Mode Operation ...................................................................................................116

     7.4.5  BGND Instruction ........................................................................................................117

7.5  HCS08 Instruction Set Summary ..................................................................................................118

                Chapter 8

                Internal Clock Generator (S08ICGV4)

8.1  Introduction ...................................................................................................................................131

     8.1.1  Features .........................................................................................................................131

     8.1.2  Modes of Operation ......................................................................................................132

     8.1.3  Block Diagram ..............................................................................................................133

8.2  External Signal Description ..........................................................................................................133

     8.2.1  EXTAL — External Reference Clock / Oscillator Input ..............................................133

     8.2.2  XTAL — Oscillator Output ..........................................................................................133

     8.2.3  External Clock Connections .........................................................................................134

     8.2.4  External Crystal/Resonator Connections ......................................................................134

8.3  Register Definition ........................................................................................................................135

     8.3.1  ICG Control Register 1 (ICGC1) .................................................................................135

     8.3.2  ICG Control Register 2 (ICGC2) .................................................................................137

     8.3.3  ICG Status Register 1 (ICGS1) ....................................................................................138

     8.3.4  ICG Status Register 2 (ICGS2) ....................................................................................139

     8.3.5  ICG Filter Registers (ICGFLTU, ICGFLTL) ...............................................................139

     8.3.6  ICG Trim Register (ICGTRM) .....................................................................................140

8.4  Functional Description ..................................................................................................................140

     8.4.1  Off Mode (Off) .............................................................................................................141

     8.4.2  Self-Clocked Mode (SCM) ...........................................................................................141

     8.4.3  FLL Engaged, Internal Clock (FEI) Mode ...................................................................142

                MC9S08AW60 Data Sheet, Rev 2

12                                                   Freescale Semiconductor
Section Number           Title                          Page

      8.4.4   FLL Engaged Internal Unlocked ..................................................................................143

      8.4.5   FLL Engaged Internal Locked ......................................................................................143

      8.4.6   FLL Bypassed, External Clock (FBE) Mode ...............................................................143

      8.4.7   FLL Engaged, External Clock (FEE) Mode .................................................................143

      8.4.8   FLL Lock and Loss-of-Lock Detection ........................................................................144

      8.4.9   FLL Loss-of-Clock Detection ......................................................................................145

      8.4.10  Clock Mode Requirements ...........................................................................................146

      8.4.11  Fixed Frequency Clock .................................................................................................147

      8.4.12  High Gain Oscillator .....................................................................................................147

8.5   Initialization/Application Information ..........................................................................................147

      8.5.1   Introduction ..................................................................................................................147

      8.5.2   Example #1: External Crystal = 32 kHz, Bus Frequency = 4.19 MHz ........................149

      8.5.3   Example #2: External Crystal = 4 MHz, Bus Frequency = 20 MHz ............................151

      8.5.4   Example #3: No External Crystal Connection, 5.4 MHz Bus Frequency ....................153

      8.5.5   Example #4: Internal Clock Generator Trim ................................................................155

                         Chapter 9

                         Keyboard Interrupt (S08KBIV1)

9.1   Introduction ...................................................................................................................................157

9.2   Keyboard Pin Sharing ....................................................................................................................157

9.3   Features .........................................................................................................................................158

      9.3.1   KBI Block Diagram ......................................................................................................160

9.4   Register Definition ........................................................................................................................160

      9.4.1   KBI Status and Control Register (KBI1SC) .................................................................161

      9.4.2   KBI Pin Enable Register (KBI1PE) .............................................................................162

9.5   Functional Description ..................................................................................................................162

      9.5.1   Pin Enables ...................................................................................................................162

      9.5.2   Edge and Level Sensitivity ...........................................................................................162

      9.5.3   KBI Interrupt Controls .................................................................................................163

                         Chapter 10

                         Timer/PWM (S08TPMV2)

10.1  Introduction ...................................................................................................................................165

10.2  Features .........................................................................................................................................165

      10.2.1  Features .........................................................................................................................167

      10.2.2  Block Diagram ..............................................................................................................167

10.3  External Signal Description ..........................................................................................................169

      10.3.1  External TPM Clock Sources .......................................................................................169

      10.3.2  TPMxCHn — TPMx Channel n I/O Pins .....................................................................169

10.4  Register Definition ........................................................................................................................169

      10.4.1  Timer x Status and Control Register (TPMxSC) ..........................................................170

      10.4.2  Timer x Counter Registers (TPMxCNTH:TPMxCNTL) .............................................171

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                                      13
Section Number  Title                                       Page

      10.4.3  Timer x Counter Modulo Registers (TPMxMODH:TPMxMODL) .............................172

      10.4.4  Timer x Channel n Status and Control Register (TPMxCnSC) ....................................173

      10.4.5  Timer x Channel Value Registers (TPMxCnVH:TPMxCnVL) ....................................174

10.5  Functional Description ..................................................................................................................175

      10.5.1  Counter .........................................................................................................................175

      10.5.2  Channel Mode Selection ...............................................................................................176

      10.5.3  Center-Aligned PWM Mode ........................................................................................178

10.6  TPM Interrupts ..............................................................................................................................179

      10.6.1  Clearing Timer Interrupt Flags .....................................................................................179

      10.6.2  Timer Overflow Interrupt Description ..........................................................................179

      10.6.3  Channel Event Interrupt Description ............................................................................180

      10.6.4  PWM End-of-Duty-Cycle Events .................................................................................180

                Chapter 11

                Serial Communications Interface (S08SCIV2)

11.1  Introduction ...................................................................................................................................181

      11.1.1  Features .........................................................................................................................183

      11.1.2  Modes of Operation ......................................................................................................183

      11.1.3  Block Diagram ..............................................................................................................183

11.2  Register Definition ........................................................................................................................185

      11.2.1  SCI Baud Rate Registers (SCIxBDH, SCIxBHL) ........................................................186

      11.2.2  SCI Control Register 1 (SCIxC1) .................................................................................187

      11.2.3  SCI Control Register 2 (SCIxC2) .................................................................................188

      11.2.4  SCI Status Register 1 (SCIxS1) ....................................................................................189

      11.2.5  SCI Status Register 2 (SCIxS2) ....................................................................................191

      11.2.6  SCI Control Register 3 (SCIxC3) .................................................................................191

      11.2.7  SCI Data Register (SCIxD) ..........................................................................................192

11.3  Functional Description ..................................................................................................................192

      11.3.1  Baud Rate Generation ...................................................................................................193

      11.3.2  Transmitter Functional Description ..............................................................................193

      11.3.3  Receiver Functional Description ..................................................................................194

      11.3.4  Interrupts and Status Flags ...........................................................................................196

      11.3.5  Additional SCI Functions .............................................................................................197

                Chapter 12

                Serial Peripheral Interface (S08SPIV3)

      12.0.1  Features .........................................................................................................................201

      12.0.2  Block Diagrams ............................................................................................................201

      12.0.3  SPI Baud Rate Generation ............................................................................................203

12.1  External Signal Description ..........................................................................................................204

      12.1.1  SPSCK — SPI Serial Clock .........................................................................................204

      12.1.2  MOSI — Master Data Out, Slave Data In ....................................................................204

                MC9S08AW60 Data Sheet, Rev 2

14                                                          Freescale Semiconductor
Section Number           Title                                Page

      12.1.3  MISO — Master Data In, Slave Data Out ....................................................................204

      12.1.4  SS — Slave Select ........................................................................................................204

12.2  Modes of Operation .......................................................................................................................205

      12.2.1  SPI in Stop Modes ........................................................................................................205

12.3  Register Definition ........................................................................................................................205

      12.3.1  SPI Control Register 1 (SPI1C1) ..................................................................................205

      12.3.2  SPI Control Register 2 (SPI1C2) ..................................................................................206

      12.3.3  SPI Baud Rate Register (SPI1BR) ...............................................................................207

      12.3.4  SPI Status Register (SPI1S) ..........................................................................................208

      12.3.5  SPI Data Register (SPI1D) ...........................................................................................209

12.4  Functional Description ..................................................................................................................210

      12.4.1  SPI Clock Formats ........................................................................................................210

      12.4.2  SPI Interrupts ................................................................................................................213

      12.4.3  Mode Fault Detection ...................................................................................................213

                         Chapter 13

                         Inter-Integrated Circuit (S08IICV1)

13.1  Introduction ...................................................................................................................................215

      13.1.1  Features .........................................................................................................................217

      13.1.2  Modes of Operation ......................................................................................................217

      13.1.3  Block Diagram ..............................................................................................................218

13.2  External Signal Description ..........................................................................................................218

      13.2.1  SCL — Serial Clock Line .............................................................................................218

      13.2.2  SDA — Serial Data Line ..............................................................................................218

13.3  Register Definition ........................................................................................................................218

      13.3.1  IIC Address Register (IIC1A) .......................................................................................219

      13.3.2  IIC Frequency Divider Register (IIC1F) ......................................................................219

      13.3.3  IIC Control Register (IIC1C) ........................................................................................222

      13.3.4  IIC Status Register (IIC1S) ..........................................................................................223

      13.3.5  IIC Data I/O Register (IIC1D) ......................................................................................224

13.4  Functional Description ..................................................................................................................225

      13.4.1  IIC Protocol ..................................................................................................................225

13.5  Resets ............................................................................................................................................228

13.6  Interrupts .......................................................................................................................................228

      13.6.1  Byte Transfer Interrupt .................................................................................................229

      13.6.2  Address Detect Interrupt ...............................................................................................229

      13.6.3  Arbitration Lost Interrupt .............................................................................................229

13.7  Initialization/Application Information ..........................................................................................230

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                                       15
Section Number  Title                                     Page

                Chapter 14

                Analog-to-Digital Converter (S08ADC10V1)

14.1  Overview .......................................................................................................................................233

14.2  Channel Assignments ....................................................................................................................233

      14.2.1   Alternate Clock .............................................................................................................234

      14.2.2   Hardware Trigger ..........................................................................................................234

      14.2.3   Temperature Sensor ......................................................................................................235

      14.2.4   Features .........................................................................................................................237

      14.2.5   Block Diagram ..............................................................................................................237

14.3  External Signal Description ..........................................................................................................238

      14.3.1   Analog Power (VDDAD) ................................................................................................239

      14.3.2   Analog Ground (VSSAD) ..............................................................................................239

      14.3.3   Voltage Reference High (VREFH) .................................................................................239

      14.3.4   Voltage Reference Low (VREFL) ..................................................................................239

      14.3.5   Analog Channel Inputs (ADx) ......................................................................................239

14.4  Register Definition ........................................................................................................................239

      14.4.1   Status and Control Register 1 (ADC1SC1) ..................................................................239

      14.4.2   Status and Control Register 2 (ADC1SC2) ..................................................................241

      14.4.3   Data Result High Register (ADC1RH) ........................................................................242

      14.4.4   Data Result Low Register (ADC1RL) ..........................................................................242

      14.4.5   Compare Value High Register (ADC1CVH) ................................................................243

      14.4.6   Compare Value Low Register (ADC1CVL) .................................................................243

      14.4.7   Configuration Register (ADC1CFG) ............................................................................243

      14.4.8   Pin Control 1 Register (APCTL1) ................................................................................245

      14.4.9   Pin Control 2 Register (APCTL2) ................................................................................246

      14.4.10  Pin Control 3 Register (APCTL3) ................................................................................247

14.5  Functional Description ..................................................................................................................248

      14.5.1   Clock Select and Divide Control ..................................................................................248

      14.5.2   Input Select and Pin Control .........................................................................................249

      14.5.3   Hardware Trigger ..........................................................................................................249

      14.5.4   Conversion Control .......................................................................................................249

      14.5.5   Automatic Compare Function ......................................................................................252

      14.5.6   MCU Wait Mode Operation .........................................................................................252

      14.5.7   MCU Stop3 Mode Operation .......................................................................................252

      14.5.8   MCU Stop1 and Stop2 Mode Operation ......................................................................253

14.6  Initialization Information ..............................................................................................................253

      14.6.1   ADC Module Initialization Example ...........................................................................253

14.7  Application Information ................................................................................................................255

      14.7.1   External Pins and Routing ............................................................................................255

      14.7.2   Sources of Error ............................................................................................................257

                MC9S08AW60 Data Sheet, Rev 2

16                                                        Freescale Semiconductor
Section Number           Title                                      Page

                         Chapter 15

                         Development Support

15.1  Introduction ...................................................................................................................................261

      15.1.1  Features .........................................................................................................................262

15.2  Background Debug Controller (BDC) ..........................................................................................262

      15.2.1  BKGD Pin Description .................................................................................................263

      15.2.2  Communication Details ................................................................................................264

      15.2.3  BDC Commands ...........................................................................................................268

      15.2.4  BDC Hardware Breakpoint ..........................................................................................270

15.3  On-Chip Debug System (DBG) ....................................................................................................271

      15.3.1  Comparators A and B ...................................................................................................271

      15.3.2  Bus Capture Information and FIFO Operation .............................................................271

      15.3.3  Change-of-Flow Information ........................................................................................272

      15.3.4  Tag vs. Force Breakpoints and Triggers .......................................................................272

      15.3.5  Trigger Modes ..............................................................................................................273

      15.3.6  Hardware Breakpoints ..................................................................................................275

15.4  Register Definition ........................................................................................................................275

      15.4.1  BDC Registers and Control Bits ...................................................................................275

      15.4.2  System Background Debug Force Reset Register (SBDFR) ........................................277

      15.4.3  DBG Registers and Control Bits ..................................................................................278

                         Appendix A

              Electrical Characteristics and Timing Specifications

A.1   Introduction ....................................................................................................................................283

A.2   Parameter Classification.................................................................................................................283

A.3   Absolute Maximum Ratings...........................................................................................................283

A.4   Thermal Characteristics..................................................................................................................285

A.5   ESD Protection and Latch-Up Immunity .......................................................................................286

A.6   DC Characteristics..........................................................................................................................287

A.7   Supply Current Characteristics.......................................................................................................291

A.8   ADC Characteristics.......................................................................................................................293

A.9   Internal Clock Generation Module Characteristics ........................................................................296

      A.9.1   ICG Frequency Specifications.......................................................................................297

A.10  AC Characteristics..........................................................................................................................300

      A.10.1  Control Timing ..............................................................................................................300

      A.10.2  Timer/PWM (TPM) Module Timing.............................................................................302

A.11  SPI Characteristics .........................................................................................................................303

A.12  FLASH Specifications....................................................................................................................306

A.13  EMC Performance..........................................................................................................................307

      A.13.1  Radiated Emissions .......................................................................................................307

      A.13.2  Conducted Transient Susceptibility...............................................................................307

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                                     17
Section Number  Title                                     Page

                Appendix B

            Ordering Information and Mechanical Drawings

B.1  Ordering Information .....................................................................................................................309

B.2  Orderable Part Numbering System ................................................................................................310

     B.2.1  Consumer and Industrial Orderable Part Numbering System .......................................310

     B.2.2  Automotive Orderable Part Numbering System............................................................310

B.3  Mechanical Drawings.....................................................................................................................310

                MC9S08AW60 Data Sheet, Rev 2

18                                                        Freescale Semiconductor
Chapter 1

Introduction

1.1  Overview

The MC9S08AW60, MC9S08AW48, MC9S08AW32, and MC9S08AW16 are members of the low-cost,

high-performance HCS08 family of 8-bit microcontroller units (MCUs). All MCUs in the family use the

enhanced HCS08 core and are available with a variety of modules, memory sizes, memory types, and

package types. Refer to Table 1-1 for memory sizes and package types.

Table 1-2 summarizes the peripheral availability per package type for the devices available in the

MC9S08AW60 Series.

                                 Table 1-1.  Devices in the MC9S08AW60 Series

                         Device  FLASH            RAM                               Package

           MC9S08AW60            63,280                                             64 QFP

           MC9S08AW48            49,152           2048                              64 LQFP

                                 32,768                                             48 QFN

           MC9S08AW32                                                               44 LQFP

           MC9S08AW16            16,384           1024                              48 QFN

                                                                                    44 LQFP

                                 Table 1-2. Peripherals Available per Package Type

                                                  Package Options

           Feature               64-pin           48-pin                            44-pin

                         ADC     16-channel       8-channel                         8-channel

                         IIC                 yes  yes                               yes

                         IRQ                 yes  yes                               yes

                         KBI1                8    7                                 6

                         SCI1                yes  yes                               yes

                         SCI2                yes  yes                               yes

                         SPI1                yes  yes                               yes

                         TPM1    6-channel        4-channel                         4-channel

           TPM1CLK                           yes  no                                no

                         TPM2    2-channel        2-channel                         2-channel

           TPM2CLK                           yes  no                                no

           I/O pins                          54   38                                34

1.2  MCU Block Diagrams

The block diagram shows the structure of the MC9S08AW60 Series.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                              19
Chapter 1 Introduction

              HCS08 CORE                        DEBUG                                                    PORT A  8

                                                MODULE (DBG)                                                        PTA7– PTA0

BKGD/MS  BDC              CPU

                                                                                                         PORT B  8  PTB7/AD1P7–

                                                                                                                    PTB0/AD1P0

RESET    HCS08 SYSTEM CONTROL

         RESETS AND INTERRUPTS                                                RxD2                                  PTC6

         MODES OF OPERATION                     SERIAL COMMUNICATIONS                                               PTC5/RxD2

IRQ      POWER MANAGEMENT                       INTERFACE MODULE (SCI2)                                  PORT C     PTC4

                                                                              TxD2                                  PTC3/TxD2

         RTI              COP                                                 SDA1                                  PTC2/MCLK

                                                IIC MODULE (IIC1)             SCL1                                  PTC1/SDA1

         IRQ              LVD                                                                                       PTC0/SCL1

VDDAD                                                                         AD1P7–AD1P0             8

VSSAD                                           10-BIT                        8  AD1P15–AD1P8

VREFL                                           ANALOG-TO-DIGITAL

VREFH                                           CONVERTER (ADC1)                                                    PTD7/AD1P15/KBI1P7

                                                                                                                    PTD6/AD1P14/TPM1CLK

                                                                                                         PORT D     PTD5/AD1P13

              USER FLASH                                                                                            PTD4/AD1P12/TPM2CLK

         (AW60 = 63,280 BYTES)                                                                                      PTD3/AD1P11/KBI1P6

         (AW48 = 49,152 BYTES)                                                                                      PTD2/AD1P10/KBI1P5

         (AW32 = 32,768 BYTES)                                                                                      PTD1/AD1P9

         (AW16 = 16,384 BYTES)                                                                                      PTD0/AD1P8

                                                                              SPSCK1                                PTE7/SPSCK1

                                                SERIAL PERIPHERAL             MOSI1                                 PTE6/MOSI1

              USER RAM                          INTERFACE MODULE (SPI1)       MISO1

         AW60/48/32 = 2048 BYTES                                              SS1                                   PTE5/MISO1

         AW16 = 1024 BYTES                                                                                          PTE4/SS1

                                                                              TPM1CLK                    PORT E     PTE3/TPM1CH1

                                                6-CHANNEL TIMER/PWM                                                 PTE2/TPM1CH0

         INTERNAL CLOCK                         MODULE (TPM1)                 TPM1CH5–

                                                                              TPM1CH0        6

         GENERATOR (ICG)                                                      RxD1

                                                                              TxD1                                  PTE1/RxD1

                                                SERIAL COMMUNICATIONS                                               PTE0/TxD1

         LOW-POWER OSCILLATOR                   INTERFACE MODULE (SCI1)                                             PTF7

                                                                                                                    PTF6

VDD                                                                           TPM2CLK                               PTF5/TPM2CH1

              VOLTAGE                           2-CHANNEL TIMER/PWM                                      PORT F     PTF4/TPM2CH0

VSS           REGULATOR                         MODULE (TPM2)                 TPM2CH1–TPM2CH0

                                                                                                   2                PTF3/TPM1CH5

                                                                              KBI1P7–KBI1P5     3                   PTF2/TPM1CH4

                                                8-BIT KEYBOARD                                                      PTF1/TPM1CH3

                                                INTERRUPT MODULE (KBI1)       KBI1P4–KBI1P0           5             PTF0/TPM1CH2

                                                                              EXTAL                                 PTG6/EXTAL

                                                                              XTAL                                  PTG5/XTAL

NOTES:                                                                                                   PORT G

    1. Port pins are software configurable with pullup device if input port.                                        PTG4/KBI1P4

    2. Pin contains software-configurable pullup/pulldown device if IRQ is enabled                                  PTG3/KBI1P3

        (IRQPE = 1). Pulldown is enabled if rising edge detect is selected (IRQEDG = 1)                             PTG2/KBI1P2

    3.  IRQ does not have a clamp diode to VDD. IRQ should not be driven above VDD.                                 PTG1/KBI1P1

    4.  Pin contains integrated pullup device.                                                                      PTG0/KBI1P0

    5. Pins PTD7, PTD3, PTD2, and PTG4 contain both pullup and pulldown devices.

        Pulldown enabled when KBI is enabled (KBIPEn = 1) and rising edge is selected

        (KBEDGn = 1).

                                  Figure 1-1. MC9S08AW60 Series Block Diagram

                                                MC9S08AW60 Data Sheet, Rev 2

20                                                                                                               Freescale Semiconductor
                                                                                                                              Chapter 1 Introduction

Table  1-3  lists  the  functional versions of the on-chip modules.

                                      Table 1-3. Versions of On-Chip Modules

                                                    Module                                          Version

                                Analog-to-Digital Converter          (S08ADC10)                           1

                                Internal Clock Generator                            (S08ICG)              4

                                Inter-Integrated Circuit                            (S08IIC)              1

                                Keyboard Interrupt                                  (S08KBI)              1

                                Serial Communications Interface                     (S08SCI)              2

                                Serial Peripheral Interface                         (S08SPI)              3

                                Timer Pulse-Width Modulator                         (S08TPM)              2

                                Central Processing Unit                             (S08CPU)              2

                                Debug Module                                        (DBG)                 2

1.3         System         Clock Distribution

                           SYSTEM                              TPM1  TPM2                     IIC1           SCI1       SCI2  SPI1

                           CONTROL

            ICGERCLK           LOGIC

            FFE                       RTI

                           ÷2

     ICG                              FIXED FREQ CLOCK (XCLK)

                   ICGOUT       ÷2    BUSCLK

            ICGLCLK*

                           CPU                      BDC                                             ADC1           RAM        FLASH

                                                                                    ADC has min and max                       FLASH has frequency

            * ICGLCLK is the alternate BDC clock source for the MC9S08AW60 Series.  frequency requirements.                   requirements for program

                                                                                    See Chapter 14,                           and erase operation.

                                                                                    “Analog-to-Digital Converter              See Appendix A, “Electrical

                                                                                    (S08ADC10V1) and                          Characteristics and Timing

                                                                                    Appendix A, “Electrical                   Specifications.

                                                                                    Characteristics and Timing

                                                                                    Specifications

                                      Figure 1-2. System Clock Distribution Diagram

Some of the modules inside the MCU have clock source choices. Figure 1-2 shows a                                        simplified clock

connection diagram. The ICG supplies the clock sources:

•         ICGOUT is an output of the ICG module. It is one of the following:

          — The external crystal oscillator

          — An external clock source

                                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                             21
Chapter 1 Introduction

       — The output of the digitally-controlled oscillator (DCO) in the frequency-locked loop

       sub-module

       — Control bits inside the ICG determine which source is connected.

    •  FFE is a control signal generated inside the ICG. If the frequency of ICGOUT > 4 × the frequency

       of ICGERCLK, this signal is a logic 1 and the fixed-frequency clock will be ICGERCLK/2.

       Otherwise the fixed-frequency clock will be BUSCLK.

    •  ICGLCLK — Development tools can select this internal self-clocked source (~ 8 MHz) to speed

       up BDC communications in systems where the bus clock is slow.

    •  ICGERCLK — External reference clock can be selected as the real-time interrupt clock source.

       Can also be used as the ALTCLK input to the ADC module.

                        MC9S08AW60 Data Sheet, Rev 2

22                                                                         Freescale Semiconductor
Chapter 2

Pins and Connections

2.1  Introduction

This chapter describes signals that connect to package pins. It includes a pinout diagram, a table of signal

properties, and detailed discussion of signals.

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       23
Chapter  2 Pins and Connections

2.2      Device Pin Assignment

                               PTC5/RxD2  PTC3/TxD2   PTC2/MCLK   PTC1/SDA1    PTC0/SCL1  VSS  PTG6/EXTAL   PTG5/XTAL    BKGD/MS      VREFL  VREFH  PTD7/KBI1P7/AD1P15  PTD6/TPM1CLK/AD1P14  PTD5/AD1P13  PTD4/TPM2CLK/AD1P12  PTG4/KBI1P4

                               64                                                                                                                                                                                              49

         PTC4          1                  63          62          61           60         59   58           57           56           55     54     53                  52                   51           50                                    48  PTG3/KBI1P3

         IRQ               2                                                                                                                                                                                                                47      PTD3/KBI1P6/AD1P11

         RESET             3                                                                                                                                                                                                                46      PTD2/KBI1P5/AD1P10

         PTF0/TPM1CH2      4                                                                                                                                                                                                                45      VSSAD

         PTF1/TPM1CH3      5                                                                                                                                                                                                                44      VDDAD

         PTF2/TPM1CH4      6                                                                                                                                                                                                                43      PTD1/AD1P9

         PTF3/TPM1CH5      7                                                                                                                                                                                                                42      PTD0/AD1P8

         PTF4/TPM2CH0      8                                                                                                                                                                                                                41      PTB7/AD1P7

                                                                                               64-Pin QFP

         PTC6              9                                                                   64-Pin LQFP                                                                                                                                  40      PTB6/AD1P6

         PTF7              10                                                                                                                                                                                                               39      PTB5/AD1P5

         PTF5/TPM2CH1      11                                                                                                                                                                                                               38      PTB4/AD1P4

         PTF6              12                                                                                                                                                                                                               37      PTB3/AD1P3

         PTE0/TxD1         13                                                                                                                                                                                                               36      PTB2/AD1P2

         PTE1/RxD1         14                                                                                                                                                                                                               35      PTB1/AD1P1

         PTE2/TPM1CH0      15                                                                                                                                                                                                               34      PTB0/AD1P0

         PTE3/TPM1CH1  16                                                                                                                                                                                                                       33  PTA7

                                          18          19          20           21         22   23           24           25           26     27     28                  29                   30           31

                              17                                                                                                                                                                                               32

                              PTE4/SS1    PTE5/MISO1  PTE6/MOSI1  PTE7/SPSCK1  VSS        VDD  PTG0/KBI1P0  PTG1/KBI1P1  PTG2/KBI1P2  PTA0   PTA1   PTA2                PTA3                 PTA4         PTA5                 PTA6

                           Figure                     2-1.        MC9S08AW60                                Series in                 64-Pin        QFP/LQFP                                              Package

                                                                               MC9S08AW60 Data Sheet, Rev 2

24                                                                                                                                                                                                                                              Freescale Semiconductor
                                                                                                                                                                               Chapter 2 Pins      and  Connections

                                         PTC5/RxD2  PTC3/TxD2   PTC2/MCLK   PTC1/SDA1    PTC0/SCL1  VSS  PTG6/EXTAL   PTG5/XTAL    BKGD/MS      VREFL  VREFH  PTG4/KB1IP4

                                         48         47          46          45           44         43   42           41           40           39     38     37

                          PTC4       1                                                                                                                                     36  PTG3/KBI1P3

                          IRQ        2                                                                                                                                     35  PTD3/KBI1P6/AD1P11

                          RESET      3                                                                                                                                     34  PTD2/KBI1P5/AD1P10

           PTF0/TPM1CH2              4                                                                                                                                     33  VSSAD

           PTF1/TPM1CH3              5                                                                                                                                     32  VDDAD

           PTF4/TPM2CH0              6                                                       48-Pin QFN                                                                    31  PTD1/AD1P9

           PTF5/TPM2CH1              7                                                                                                                                     30  PTD0/AD1P8

                          PTF6       8                                                                                                                                     29  PTB3/AD1P3

                          PTE0/TxD1  9                                                                                                                                     28  PTB2/AD1P2

                          PTE1/RxD1  10                                                                                                                                    27  PTB1/AD1P1

           PTE2/TPM1CH0              11                                                                                                                                    26  PTB0/AD1P0

           PTE3/TPM1CH1              12                                                                                                                                    25  PTA7

                                        13          14          15          16           17         18   19           20           21           22     23     24

                                        PTE4/SS1    PTE5/MISO1  PTE6/MOSI1  PTE7/SPSCK1  VSS        VDD  PTG0/KBI1P0  PTG1/KBI1P1  PTG2/KBI1P2  PTA0   PTA1   PTA2

                          Figure         2-2.       MC9S08AW60 Series in                                                           48-Pin             QFN     Package

                                                                MC9S08AW60 Data Sheet, Rev 2

Freescale  Semiconductor                                                                                                                                                                                25
Chapter 2 Pins and Connections

                                             PTC5/RxD2  PTC3/TxD2   PTC2/MCLK   PTC1/SDA1    PTC0/SCL1  VSS  PTG6/EXTAL   PTG5/XTAL    BKGD/MS      VREFL  VREFH

                                             44                                                                                                            34

          PTC4                       1                  43          42          41           40         39   38           37           36           35

                                                                                                                                                                     33  PTG3/KBI1P3

                                IRQ      2                                                                                                                       32      PTD3/KBI1P6/AD1P11

          RESET                          3                                                                                                                       31      PTD2/KBI1P5/AD1P10

          PTF0/TPM1CH2                   4                                                                                                                       30      VSSAD

          PTF1/TPM1CH3                   5                                                                                                                       29      VDDAD

          PTF4/TPM2CH0                   6                                                   44-Pin LQFP                                                         28      PTD1/AD1P9

          PTF5/TPM2CH1                   7                                                                                                                       27      PTD0/AD1P8

          PTE0/TxD1                      8                                                                                                                       26      PTB3/AD1P3

          PTE1/RxD1                      9                                                                                                                       25      PTB2/AD1P2

          PTE2/TPM1CH0                   10                                                                                                                24            PTB1/AD1P1

          PTE3/TPM1CH1               11                                                                                                                              23  PTB0/AD1P0

                                                        13          14          15           16         17   18           19           20           21

                                            12                                                                                                             22

                                            PTE4/SS1    PTE5/MISO1  PTE6/MOSI1  PTE7/SPSCK1  VSS        VDD  PTG0/KBI1P0  PTG1/KBI1P1  PTG2/KBI1P2  PTA0   PTA1

                                Figure 2-3. MC9S08AW60 Series in 44-Pin LQFP Package

2.3       Recommended System Connections

Figure 2-4 shows pin connections that are common to almost all MC9S08AW60 Series application

systems.

                                                                    MC9S08AW60 Data Sheet, Rev 2

26                                                                                                                                                                              Freescale Semiconductor
                                                                                              Chapter 2 Pins and Connections

                                                                VREFH       MC9S08AW60

                                               CBYAD            VDDAD

                                               0.1 μF                                         PTA0

                                                                VSSAD                         PTA1

        SYSTEM                  VDD                             VREFL                         PTA2

        POWER                                                   VDD                           PTA3

                    +                                                                   PORT

                5V       CBLK   +         CBY                                           A     PTA4

                         10 μF            0.1 μF                                              PTA5

                                                                VSS (x2)                      PTA6

                                                                                              PTA7

        NOTE 1                  RF                                                            PTB0/AD1P0

                                               RS               XTAL

                                                                NOTE 2                        PTB1/AD1P1

                C1       X1          C2                                                       PTB2/AD1P2

                                                                EXTAL                   PORT  PTB3/AD1P3

                                                                NOTE 2                  B     PTB4/AD1P4

        BACKGROUND HEADER                                                                     PTB5/AD1P5

                                                                                              PTB6/AD1P6          I/O AND

VDD                             1                                                             PTB7/AD1P7    PERIPHERAL

                                                                      BKGD/MS

                                     VDD                                                      PTC0/SCL1     INTERFACE TO

                                                                                              PTC1/SDA1     APPLICATION

                                          4.7 kΩ–10 kΩ                                        PTC2/MCLK

                                                                                                                  SYSTEM

                                                                       RESET            PORT  PTC3/TxD2

                                          0.1  μF  VDD                 NOTE 3           C     PTC4

        OPTIONAL                                       4.7 kΩ–                                PTC5/RxD2

        MANUAL         ASYNCHRONOUS                    10 kΩ                                  PTC6

        RESET            INTERRUPT                                     IRQ

                         INPUT                          0.1 μF         NOTE 3

                                                                                              PTD0/AD1P8

                                     PTG0/KBI1P0                                              PTD1/AD1P9

                                     PTG1/KBI1P1                                              PTD2/AD1P10/KBI1P5

                                     PTG2/KBI1P2                PORT                    PORT  PTD3/AD1P11/KBI1P6

                                     PTG3/KBI1P3                G                       D     PTD4/AD1P12/TPM2CLK

                                     PTG4/KBI1P4                                              PTD5/AD1P13

                                     PTG5/XTAL                                                PTD6/AD1P14/TPM1CLK

                                     PTG6/EXTAL                                               PTD7/AD1P15/KBI1P7

NOTES:

1. Not required if                 PTF0/TPM1CH2                                               PTE0/TxD1

using the internal                                                                            PTE1/RxD1

clock option.                      PTF1/TPM1CH3

2. These are the                   PTF2/TPM1CH4                                               PTE2/TPM1CH0

same pins as                       PTF3/TPM1CH5                 PORT                    PORT  PTE3/TPM1CH1

PTG5 and PTG6                      PTF4/TPM2CH0                 F                       E     PTE4/SS1

3. RC filters on                                                                              PTE5/MISO1

RESET and IRQ                      PTF5/TPM2CH1

are recommended                           PTF6                                                PTE6/MOSI1

for EMC-sensitive                         PTF7                                                PTE7/SPSCK1

applications.

                                          Figure 2-4.           Basic System   Connections

                                                   MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                    27
Chapter 2 Pins and Connections

2.3.1        Power (VDD, 2 x VSS, VDDAD, VSSAD)

VDD and VSS are the primary power supply pins for the MCU. This voltage source supplies power to all

I/O buffer circuitry and to an internal voltage regulator. The internal voltage regulator provides regulated

lower-voltage source to the CPU and other internal circuitry of the MCU.

Typically, application systems have two separate capacitors across the power pins. In this case, there

should be a bulk electrolytic capacitor, such as a 10-μF tantalum capacitor, to provide bulk charge storage

for the overall system and a 0.1-μF ceramic bypass capacitor located as near to the paired VDD and VSS

power pins as practical to suppress high-frequency noise. The MC9S08AW60 has a second VSS pin. This

pin should be connected to the system ground plane or to the primary VSS pin through a low-impedance

connection.

VDDAD and VSSAD are the analog power supply pins for the MCU. This voltage source supplies power to

the ADC module. A 0.1-μF ceramic bypass capacitor should be located as near to the analog power pins

as practical to suppress high-frequency noise.

2.3.2        Oscillator (XTAL, EXTAL)

Out of reset, the MCU uses an internally generated clock (self-clocked mode — fSelf_reset) equivalent to

about 8-MHz crystal rate. This frequency source is used during reset startup and can be enabled as the

clock source for stop recovery to avoid the need for a long crystal startup delay. This MCU also contains

a trimmable internal clock generator (ICG) module that can be used to run the MCU. For more information

on the ICG, see the Chapter 8, “Internal Clock Generator (S08ICGV4).”

The oscillator amplitude on XTAL and EXTAL is gain limited for low-power oscillation. Typically, these

pins have a 1-V peak-to-peak signal. For noisy environments, the high gain output (HGO) bit can be set to

enable rail-to-rail oscillation.

The oscillator in this MCU is a Pierce oscillator that can accommodate a crystal or ceramic resonator in

either of two frequency ranges selected by the RANGE bit in the ICGC1 register. Rather than a crystal or

ceramic resonator, an external oscillator can be connected to the EXTAL input pin.

Refer to Figure 2-4 for the following discussion. RS (when used) and RF should be low-inductance

resistors such as carbon composition resistors. Wire-wound resistors, and some metal film resistors, have

too much inductance. C1 and C2 normally should be high-quality ceramic capacitors that are specifically

designed for high-frequency applications.

RF is used to provide a bias path to keep the EXTAL input in its linear range during crystal startup and its

value is not generally critical. Typical systems use 1 MΩ to 10 MΩ. Higher values are sensitive to humidity

and lower values reduce gain and (in extreme cases) could prevent startup.

C1 and C2 are typically in the 5-pF to 25-pF range and are chosen to match the requirements of a specific

crystal or resonator. Be sure to take into account printed circuit board (PCB) capacitance and MCU pin

capacitance when sizing C1 and C2. The crystal manufacturer typically specifies a load capacitance which

is the series combination of C1 and C2 which are usually the same size. As a first-order approximation,

use 10 pF as an estimate of combined pin and PCB capacitance for each oscillator pin (EXTAL and

XTAL).

                                  MC9S08AW60 Data Sheet, Rev 2

28                                                                                  Freescale Semiconductor
                                                                                      Chapter 2 Pins and Connections

2.3.3  RESET Pin

RESET is a dedicated pin with a pullup device built in. It has input hysteresis, a high current output driver,

and no output slew rate control. Internal power-on reset and low-voltage reset circuitry typically make

external reset circuitry unnecessary. This pin is normally connected to the standard 6-pin background

debug connector so a development system can directly reset the MCU system. If desired, a manual external

reset can be added by supplying a simple switch to ground (pull reset pin low to force a reset).

Whenever any reset is initiated (whether from an external signal or from an internal system), the reset pin

is driven low for approximately 34 bus cycles, released, and sampled again approximately 38 bus cycles

later. If reset was caused by an internal source such as low-voltage reset or watchdog timeout, the circuitry

expects the reset pin sample to return a logic 1. The reset circuitry decodes the cause of reset and records

it by setting a corresponding bit in the system control reset status register (SRS).

In EMC-sensitive applications, an external RC filter is recommended on the reset pin. See Figure 2-4 for

an example.

2.3.4  Background/Mode Select (BKGD/MS)

While in reset, the BKGD/MS pin functions as a mode select pin. Immediately after reset rises the pin

functions as the background pin and can be used for background debug communication. While functioning

as a background/mode select pin, the pin includes an internal pullup device, input hysteresis, a standard

output driver, and no output slew rate control.

If nothing is connected to this pin, the MCU will enter normal operating mode at the rising edge of reset.

If a debug system is connected to the 6-pin standard background debug header, it can hold BKGD/MS low

during the rising edge of reset which forces the MCU to active background mode.

The BKGD pin is used primarily for background debug controller (BDC) communications using a custom

protocol that uses 16 clock cycles of the target MCU’s BDC clock per bit time. The target MCU’s BDC

clock could be as fast as the bus clock rate, so there should never be any significant capacitance connected

to the BKGD/MS pin that could interfere with background serial communications.

Although the BKGD pin is a pseudo open-drain pin, the background debug communication protocol

provides brief, actively driven, high speedup pulses to ensure fast rise times. Small capacitances from

cables and the absolute value of the internal pullup device play almost no role in determining rise and fall

times on the BKGD pin.

2.3.5  ADC Reference Pins (VREFH, VREFL)

The VREFH and VREFL pins are the voltage reference high and voltage reference low inputs respectively

for the ADC module.

2.3.6  External Interrupt Pin (IRQ)

The IRQ pin is the input source for the IRQ interrupt and is also the input for the BIH and BIL instructions.

If the IRQ function is not enabled, this pin does not perform any function.

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                         29
Chapter 2 Pins and Connections

When IRQ is configured as the IRQ input and is set to detect rising edges, a pulldown device rather than

a pullup device is enabled.

In EMC-sensitive applications, an external RC filter is recommended on the IRQ pin. See Figure 2-4 for

an example.

2.3.7       General-Purpose I/O and Peripheral Ports

The remaining pins are shared among general-purpose I/O and on-chip peripheral functions such as timers

and serial I/O systems. Immediately after reset, all of these pins are configured as high-impedance

general-purpose inputs with internal pullup devices disabled.

                                                   NOTE

             To avoid extra current drain from floating input pins, the reset initialization

             routine in the application program should either enable on-chip pullup

             devices or change the direction of unused pins to outputs so the pins do not

             float.

For information about controlling these pins as general-purpose I/O pins, see Chapter 6, “Parallel

Input/Output.” For information about how and when on-chip peripheral systems use these pins, refer to the

appropriate chapter from Table 2-1.

                                     Table 2-1. Pin Sharing Priority

       Lowest <- Pin Function Priority -> Highest                     Reference1

Port Pins    Alternate Function      Alternate Function

PTB7–PTB0    AD1P7–AD1P0                                 Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

PTC5, PTC3   RxD2–TxD2                                   Chapter  11, “Serial Communications Interface (S08SCIV2)”

PTC2         MCLK                                        Chapter  5, “Resets, Interrupts, and System Configuration”

PTC1–PTC0    SCL1–SDA1                                   Chapter  13, “Inter-Integrated Circuit (S08IICV1)”

PTD7         KBI1P7                  AD1P15              Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

                                                         Chapter  9, “Keyboard Interrupt (S08KBIV1)”

PTD6         TPM1CLK                 AD1P14              Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

                                                         Chapter  10, “Timer/PWM (S08TPMV2)”

PTD5         AD1P13                  AD1P13              Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

PTD4         TPM2CLK                 AD1P12              Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

                                                         Chapter  10, “Timer/PWM (S08TPMV2)”

PTD3–PTD2    KBI1P6–KBI1P5           AD1P11–AD1P10       Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

                                                         Chapter  9, “Keyboard Interrupt (S08KBIV1)”

PTD1–PTD0    AD1P9–AD1P8                                 Chapter  14, “Analog-to-Digital Converter (S08ADC10V1)”

PTE7         SPSCK1                                      Chapter  12, “Serial Peripheral Interface (S08SPIV3)”

PTE6         MOSI1

PTE5         MISO1

PTE4         SS1

PTE3–PTE2    TPM1CH1–                                    Chapter  10, “Timer/PWM (S08TPMV2)”

             TPM1CH0

PTE1–PTE0    RxD1–TxD1                                   Chapter  11, “Serial Communications Interface (S08SCIV2)”

PTF5–PTF4    TPM2CH1–                                    Chapter  10, “Timer/PWM (S08TPMV2)”

             TPM2CH0

                                     MC9S08AW60 Data Sheet, Rev 2

30                                                                                   Freescale Semiconductor
                                                                                Chapter 2 Pins and Connections

                                  Table 2-1. Pin Sharing Priority

   Lowest <- Pin Function Priority -> Highest                                   Reference1

   Port Pins  Alternate Function  Alternate Function

   PTF3–PTF0  TPM1CH5–                                Chapter 10, “Timer/PWM (S08TPMV2)”

              TPM1CH2

   PTG4–PTG0  KBI1P4–KBI1P0                           Chapter 9, “Keyboard Interrupt (S08KBIV1)”

   PTG6–PTG5  EXTAL–XTAL                              Chapter 8, “Internal Clock Generator (S08ICGV4)”

1  See the listed chapter for information about modules that share these pins.

   When an on-chip peripheral system is controlling a pin, data direction control bits still determine what is

   read from port data registers even though the peripheral module controls the pin direction by controlling

   the enable for the pin’s output buffer. See the Chapter 6, “Parallel Input/Output” chapter for more details.

   Pullup enable bits for each input pin control whether on-chip pullup devices are enabled whenever the pin

   is acting as an input even if it is being controlled by an on-chip peripheral module. When the PTD7, PTD3,

   PTD2, and PTG4 pins are controlled by the KBI module and are configured for rising-edge/high-level

   sensitivity, the pullup enable control bits enable pulldown devices rather than pullup devices.

                                               NOTE

              When an alternative function is first enabled it is possible to get a spurious

              edge to the module, user software should clear out any associated flags

              before interrupts are enabled. Table 2-1 illustrates the priority if multiple

              modules are enabled. The highest priority module will have control over the

              pin. Selecting a higher priority pin function with a lower priority function

              already enabled can cause spurious edges to the lower priority module. It is

              recommended that all modules that share a pin be disabled before enabling

              another module.

                                  MC9S08AW60 Data Sheet, Rev 2

   Freescale Semiconductor                                                                                       31
Chapter  2  Pins  and  Connections

                                    MC9S08AW60 Data Sheet, Rev 2

32                                                                Freescale Semiconductor
Chapter 3

Modes of Operation

3.1  Introduction

The operating modes of the MC9S08AW60 Series are described in this chapter. Entry into each mode, exit

from each mode, and functionality while in each of the modes are described.

3.2  Features

•    Active background mode for code development

•    Wait mode:

     — CPU shuts down to conserve power

     — System clocks running

     — Full voltage regulation maintained

•    Stop modes:

     — System clocks stopped; voltage regulator in standby

     — Stop2 — Partial power down of internal circuits, RAM contents retained

     — Stop3 — All internal circuits powered for fast recovery

3.3  Run Mode

This is the normal operating mode for the MC9S08AW60 Series. This mode is selected when the

BKGD/MS pin is high at the rising edge of reset. In this mode, the CPU executes code from internal

memory with execution beginning at the address fetched from memory at $FFFE:$FFFF after reset.

3.4  Active Background Mode

The active background mode functions are managed through the background debug controller (BDC) in

the HCS08 core. The BDC, together with the on-chip debug module (DBG), provide the means for

analyzing MCU operation during software development.

Active background mode is entered in any of five ways:

•    When the BKGD/MS pin is low at the rising edge of reset

•    When a BACKGROUND command is received through the BKGD pin

•    When a BGND instruction is executed

•    When encountering a BDC breakpoint

•    When encountering a DBG breakpoint

                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                 33
Chapter 3 Modes of Operation

After entering active background mode, the CPU is held in a suspended state waiting for serial background

commands rather than executing instructions from the user’s application program.

Background commands are of two types:

    •  Non-intrusive commands, defined as commands that can be issued while the user program is

       running. Non-intrusive commands can be issued through the BKGD pin while the MCU is in run

       mode; non-intrusive commands can also be executed when the MCU is in the active background

       mode. Non-intrusive commands include:

       — Memory access commands

       — Memory-access-with-status commands

       — BDC register access commands

       — The BACKGROUND command

    •  Active background commands, which can only be executed while the MCU is in active background

       mode. Active background commands include commands to:

       — Read or write CPU registers

       — Trace one user program instruction at a time

       — Leave active background mode to return to the user’s application program (GO)

The active background mode is used to program a bootloader or user application program into the FLASH

program memory before the MCU is operated in run mode for the first time. When the MC9S08AW60

Series is shipped from the Freescale Semiconductor factory, the FLASH program memory is erased by

default unless specifically noted so there is no program that could be executed in run mode until the

FLASH memory is initially programmed. The active background mode can also be used to erase and

reprogram the FLASH memory after it has been previously programmed.

For additional information about the active background mode, refer to Chapter 15, “Development

Support.”

3.5        Wait Mode

Wait mode is entered by executing a WAIT instruction. Upon execution of the WAIT instruction, the CPU

enters a low-power state in which it is not clocked. The I bit in CCR is cleared when the CPU enters the

wait mode, enabling interrupts. When an interrupt request occurs, the CPU exits the wait mode and

resumes processing, beginning with the stacking operations leading to the interrupt service routine.

While the MCU is in wait mode, there are some restrictions on which background debug commands can

be used. Only the BACKGROUND command and memory-access-with-status commands are available

when the MCU is in wait mode. The memory-access-with-status commands do not allow memory access,

but they report an error indicating that the MCU is in either stop or wait mode. The BACKGROUND

command can be used to wake the MCU from wait mode and enter active background mode.

3.6        Stop Modes

One of two stop modes is entered upon execution of a STOP instruction when the STOPE bit in the system

option register is set. In both stop modes, all internal clocks are halted. If the STOPE bit is not set when

                                      MC9S08AW60 Data Sheet, Rev 2

34                                                                                Freescale Semiconductor
                                                                                        Chapter 3 Modes of Operation

the CPU executes a STOP instruction, the MCU will not enter either of the stop modes and an illegal

opcode reset is forced. The stop modes are selected by setting the appropriate bits in SPMSC2.

HCS08 devices that are designed for low voltage operation (1.8V to 3.6V) also include stop1 mode. The

MC9S08AW60 Series family of devices does not include stop1 mode.

Table 3-1 summarizes the behavior of the MCU in each of the stop modes.

                                       Table 3-1. Stop Mode Behavior

                         CPU, Digital

   Mode   PPDC           Peripherals,  RAM      ICG   ADC1              Regulator      I/O Pins  RTI

                         FLASH

   Stop2         1       Off           Standby  Off   Disabled          Standby        States    Optionally on

                                                                                        held

   Stop3         0       Standby       Standby  Off1  Optionally on     Standby        States    Optionally on

                                                                                        held

1  Crystal oscillator can be configured to run in stop3. Please see the ICG registers.

3.6.1     Stop2 Mode

The stop2 mode provides very low standby power consumption and maintains the contents of RAM and

the current state of all of the I/O pins. To enter stop2, the user must execute a STOP instruction with stop2

selected (PPDC = 1) and stop mode enabled (STOPE = 1). In addition, the LVD must not be enabled to

operate in stop (LVDSE = 0 or LVDE = 0). If the LVD is enabled in stop, then the MCU enters stop3 upon

the execution of the STOP instruction regardless of the state of PPDC.

Before entering stop2 mode, the user must save the contents of the I/O port registers, as well as any other

memory-mapped registers which they want to restore after exit of stop2, to locations in RAM. Upon exit

of stop2, these values can be restored by user software before pin latches are opened.

When the MCU is in stop2 mode, all internal circuits that are powered from the voltage regulator are turned

off, except for the RAM. The voltage regulator is in a low-power standby state, as is the ADC. Upon entry

into stop2, the states of the I/O pins are latched. The states are held while in stop2 mode and after exiting

stop2 mode until a logic 1 is written to PPDACK in SPMSC2.

Exit from stop2 is done by asserting either of the wake-up pins: RESET or IRQ, or by an RTI interrupt.

IRQ is always an active low input when the MCU is in stop2, regardless of how it was configured before

entering stop2.

                                                NOTE

                 Although this IRQ pin is automatically configured as active low input, the

                 pullup associated with the IRQ pin is not automatically enabled. Therefore,

                 if an external pullup is not used, the internal pullup must be enabled by

                 setting IRQPE in IRQSC.

Upon wake-up from stop2 mode, the MCU will start up as from a power-on reset (POR) except pin states

remain latched. The CPU will take the reset vector. The system and all peripherals will be in their default

reset states and must be initialized.

                                       MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                         35
Chapter 3 Modes of Operation

After waking up from stop2, the PPDF bit in SPMSC2 is set. This flag may be used to direct user code to

go to a stop2 recovery routine. PPDF remains set and the I/O pin states remain latched until a logic 1 is

written to PPDACK in SPMSC2.

To maintain I/O state for pins that were configured as general-purpose I/O, the user must restore the

contents of the I/O port registers, which have been saved in RAM, to the port registers before writing to

the PPDACK bit. If the port registers are not restored from RAM before writing to PPDACK, then the

register bits will assume their reset states when the I/O pin latches are opened and the I/O pins will switch

to their reset states.

For pins that were configured as peripheral I/O, the user must reconfigure the peripheral module that

interfaces to the pin before writing to the PPDACK bit. If the peripheral module is not enabled before

writing to PPDACK, the pins will be controlled by their associated port control registers when the I/O

latches are opened.

3.6.2  Stop3 Mode

Stop3 mode is entered by executing a STOP instruction under the conditions as shown in Table 3-1. The

states of all of the internal registers and logic, RAM contents, and I/O pin states are maintained.

Stop3 can be exited by asserting RESET, or by an interrupt from one of the following sources: the real-time

interrupt (RTI), LVD, ADC, IRQ, or the KBI.

If stop3 is exited by means of the RESET pin, then the MCU is reset and operation will resume after taking

the reset vector. Exit by means of one of the internal interrupt sources results in the MCU taking the

appropriate interrupt vector.

3.6.3  Active BDM Enabled in Stop Mode

Entry into the active background mode from run mode is enabled if the ENBDM bit in BDCSCR is set.

This register is described in Chapter 15, “Development Support” of this data sheet. If ENBDM is set when

the CPU executes a STOP instruction, the system clocks to the background debug logic remain active when

the MCU enters stop mode so background debug communication is still possible. In addition, the voltage

regulator does not enter its low-power standby state but maintains full internal regulation. If the user

attempts to enter stop2 with ENBDM set, the MCU will instead enter stop3.

Most background commands are not available in stop mode. The memory-access-with-status commands

do not allow memory access, but they report an error indicating that the MCU is in either stop or wait

mode. The BACKGROUND command can be used to wake the MCU from stop and enter active

background mode if the ENBDM bit is set. After entering background debug mode, all background

commands are available. Table 3-2 summarizes the behavior of the MCU in stop when entry into the

background debug mode is enabled.

                                   MC9S08AW60 Data Sheet, Rev 2

36                                                                         Freescale Semiconductor
                                                                                                 Chapter 3 Modes of Operation

                                       Table 3-2. BDM Enabled Stop Mode Behavior

                         CPU, Digital

   Mode   PPDC           Peripherals,  RAM            ICG         ADC1           Regulator      I/O Pins  RTI

                              FLASH

   Stop3         0            Standby  Standby        Active      Optionally on  Active         States    Optionally on

                                                                                                held

3.6.4     LVD Enabled in Stop Mode

The LVD system is capable of generating either an interrupt or a reset when the supply voltage drops below

the LVD voltage. If the LVD is enabled in stop by setting the LVDE and the LVDSE bits, then the voltage

regulator remains active during stop mode. If the user attempts to enter stop2 with the LVD enabled for

stop, the MCU will instead enter stop3. Table 3-3 summarizes the behavior of the MCU in stop when the

LVD is enabled.

                                       Table 3-3. LVD Enabled Stop Mode Behavior

                         CPU, Digital

   Mode   PPDC           Peripherals,  RAM            ICG         ADC1           Regulator      I/O Pins  RTI

                              FLASH

   Stop3         0            Standby  Standby        Off1        Optionally on  Active         States    Optionally on

                                                                                                held

1  Crystal oscillator can be configured to run in stop3. Please see the ICG registers.

3.6.5     On-Chip Peripheral Modules in Stop Modes

When the MCU enters any stop mode, system clocks to the internal peripheral modules are stopped. Even

in the exception case (ENBDM = 1), where clocks to the background debug logic continue to operate,

clocks to the peripheral systems are halted to reduce power consumption. Refer to Section 3.6.1, “Stop2

Mode,” and Section 3.6.2, “Stop3 Mode,” for specific information on system behavior in stop modes.

                                               Table  3-4.  Stop  Mode Behavior

                                                                           Mode

                                   Peripheral

                                                                  Stop2                Stop3

                         CPU                                      Off                  Standby

                         RAM                                      Standby              Standby

                         FLASH                                    Off                  Standby

                         Parallel  Port Registers                 Off                  Standby

                         ADC1                                     Off            Optionally On1

                         ICG                                      Off            Optionally On2

                         IIC                                      Off                  Standby

                                               MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                  37
Chapter  3  Modes  of  Operation

                                    Table 3-4. Stop Mode Behavior (continued)

                                                                Mode

                                    Peripheral

                                                Stop2                                  Stop3

                          KBI                   Off                                    Optionally On3

                          RTI                   Optionally On4                         Optionally On4

                          SCI                   Off                                    Standby

                          SPI                   Off                                    Standby

                          TPM                   Off                                    Standby

                          Voltage Regulator     Standby                                Standby

                          I/O Pins              States Held                            States Held

                       1  Requires the asynchronous ADC clock and LVD to be enabled, else in

                          standby.

                       2  OSCSTEN set in ICSC1, else in standby. For high frequency range (RANGE

                          in ICSC2 set) requires the LVD to also be enabled in stop3.

                       3  During stop3, KBI pins that are enabled continue to function as interrupt

                          sources that are capable of waking the MCU from stop3.

                       4  This RTI can be enabled to run in stop2 or stop3 with the internal RTI clock

                          source (RTICLKS = 0, in SRTISC). The RTI also can be enabled to run in

                          stop3 with the external clock source (RTICLKS = 1 and OSCSTEN = 1).

                                                MC9S08AW60 Data Sheet, Rev 2

38                                                                                                      Freescale  Semiconductor
Chapter 4

Memory

4.1  MC9S08AW60 Series Memory Map

Figure 4-1 shows the memory map for the MC9S08AW60 and MC9S08AW48 MCUs. Figure 4-2 shows

the memory map for the MC9S08AW32 and MC9S08AW16 MCUs. On-chip memory in the

MC9S08AW60 Series of MCUs consists of RAM, FLASH program memory for nonvolatile data storage,

plus I/O and control/status registers. The registers are divided into three groups:

•    Direct-page registers ($0000 through $006F)

•    High-page registers ($1800 through $185F)

•    Nonvolatile registers ($FFB0 through $FFBF)

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                        39
Chapter  4  Memory

                    $0000                                $0000

                    $006F  DIRECT PAGE REGISTERS                DIRECT PAGE REGISTERS

                    $0070                                $006F

                                        RAM              $0070             RAM

                           2048 BYTES                                      2048 BYTES

                    $086F                                $086F

                    $0870  FLASH                         $0870             RESERVED

                    $17FF  3984 BYTES                                      3984 BYTES

                    $1800                                $17FF

                                                         $1800

                           HIGH PAGE REGISTERS                  HIGH PAGE REGISTERS

                    $185F                                $185F

                    $1860                                $1860

                                                                           RESERVED

                                                                           10,144 BYTES

                                                         $3FFF

                                                         $4000

                           FLASH

                           59,296 BYTES

                                                                           FLASH

                                                                           49,152 BYTES

                    $FFFF                                $FFFF

                           MC9S08AW60                           MC9S08AW48

                           Figure 4-1.  MC9S08AW60  and  MC9S08AW48 Memory Map

                                             MC9S08AW60 Data Sheet, Rev 2

40                                                                                       Freescale Semiconductor
                                                                                      Chapter  4  Memory

           $0000          DIRECT PAGE REGISTERS         $0000  DIRECT PAGE REGISTERS

           $006F                                        $006F         RAM

           $0070                                        $0070

                          RAM                           $046F         1024 BYTES

                          2048 BYTES                    $0470

           $086F                                                      RESERVED

           $0870          RESERVED                                    5008 BYTES

                          3984 BYTES

           $17FF                                        $17FF

           $1800                                        $1800

                          HIGH PAGE REGISTERS                  HIGH PAGE REGISTERS

           $185F                                        $185F

           $1860                                        $1860

                          RESERVED                                    RESERVED

                          26,528 BYTES                                42,912 BYTES

           $7FFF

           $8000

                                                        $BFFF

                                                        $C000

                          FLASH                                       FLASH

                          32,768 BYTES                                16,384 BYTES

           $FFFF                                        $FFFF

                          MC9S08AW32                                  MC9S08AW16

                          Figure 4-2.  MC9S08AW32  and  MC9S08AW16 Memory Map

                                        MC9S08AW60 Data Sheet, Rev 2

Freescale  Semiconductor                                                                          41
Chapter 4 Memory

4.1.1  Reset and Interrupt Vector Assignments

Figure 4-1 shows address assignments for reset and interrupt vectors. The vector names shown in this table

are the labels used in the Freescale-provided equate file for the MC9S08AW60 Series. For more details

about resets, interrupts, interrupt priority, and local interrupt mask controls, refer to Chapter 5, “Resets,

Interrupts, and System Configuration.”

                              Table 4-1. Reset and Interrupt Vectors

                  Address              Vector                         Vector Name

                  (High/Low)

                  $FFC0:FFC1           Unused Vector Space

                                       (available for user program)

                  $FFCA:FFCB

                  $FFCC:FFCD           RTI                            Vrti

                  $FFCE:FFCF           IIC1                           Viic1

                  $FFD0:FFD1           ADC1 Conversion                Vadc1

                  $FFD2:FFD3           KBI1                           Vkeyboard1

                  $FFD4:FFD5           SCI2 Transmit                  Vsci2tx

                  $FFD6:FFD7           SCI2 Receive                   Vsci2rx

                  $FFD8:FFD9           SCI2 Error                     Vsci2err

                  $FFDA:FFDB           SCI1 Transmit                  Vsci1tx

                  $FFDC:FFDD           SCI1 Receive                   Vsci1rx

                  $FFDE:FFDF           SCI1 Error                     Vsci1err

                  $FFE0:FFE1           SPI1                           Vspi1

                  $FFE2:FFE3           TPM2 Overflow                   Vtpm2ovf

                  $FFE4:FFE5           TPM2 Channel 1                 Vtpm2ch1

                  $FFE6:FFE7           TPM2 Channel 0                 Vtpm2ch0

                  $FFE8:FFE9           TPM1 Overflow                   Vtpm1ovf

                  $FFEA:FFEB           TPM1 Channel 5                 Vtpm1ch5

                  $FFEC:FFED           TPM1 Channel 4                 Vtpm1ch4

                  $FFEE:FFEF           TPM1 Channel 3                 Vtpm1ch3

                  $FFF0:FFF1           TPM1 Channel 2                 Vtpm1ch2

                  $FFF2:FFF3           TPM1 Channel 1                 Vtpm1ch1

                  $FFF4:FFF5           TPM1 Channel 0                 Vtpm1ch0

                  $FFF6:FFF7           ICG                            Vicg

                  $FFF8:FFF9           Low Voltage Detect             Vlvd

                  $FFFA:FFFB           IRQ                            Virq

                  $FFFC:FFFD           SWI                            Vswi

                  $FFFE:FFFF           Reset                          Vreset

                                       MC9S08AW60 Data Sheet, Rev 2

42                                                                    Freescale Semiconductor
                                                                                           Chapter 4 Memory

4.2  Register Addresses and Bit Assignments

The registers in the MC9S08AW60 Series are divided into these three groups:

•    Direct-page registers are located in the first 112 locations in the memory map, so they are

     accessible with efficient direct addressing mode instructions.

•    High-page registers are used much less often, so they are located above $1800 in the memory map.

     This leaves more room in the direct page for more frequently used registers and variables.

•    The nonvolatile register area consists of a block of 16 locations in FLASH memory at

     $FFB0–$FFBF.

     Nonvolatile register locations include:

     — Three values which are loaded into working registers at reset

     — An 8-byte backdoor comparison key which optionally allows a user to gain controlled access

     to secure memory

     Because the nonvolatile register locations are FLASH memory, they must be erased and

     programmed like other FLASH memory locations.

Direct-page registers can be accessed with efficient direct addressing mode instructions. Bit manipulation

instructions can be used to access any bit in any direct-page register. Table 4-2 is a summary of all

user-accessible direct-page registers and control bits.

The direct page registers in Table 4-2 can use the more efficient direct addressing mode which only

requires the lower byte of the address. Because of this, the lower byte of the address in column one is

shown in bold text. In Table 4-3 and Table 4-4 the whole address in column one is shown in bold. In

Table 4-2, Table 4-3, and Table 4-4, the register names in column two are shown in bold to set them apart

from the bit names to the right. Cells that are not associated with named bits are shaded. A shaded cell with

a 0 indicates this unused bit always reads as a 0. Shaded cells with dashes indicate unused or reserved bit

locations that could read as 1s or 0s.

                                        MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                        43
Chapter 4 Memory

                         Table 4-2.  Direct-Page Register  Summary     (Sheet 1 of 3)

Address  Register  Name  Bit 7       6            5        4              3            2   1       Bit 0

$0000    PTAD            PTAD7       PTAD6        PTAD5    PTAD4          PTAD3  PTAD2     PTAD1   PTAD0

$0001    PTADD           PTADD7      PTADD6  PTADD5        PTADD4      PTADD3    PTADD2    PTADD1  PTADD0

$0002    PTBD            PTBD7       PTBD6        PTBD5    PTBD4          PTBD3  PTBD2     PTBD1   PTBD0

$0003    PTBDD           PTBDD7      PTBDD6  PTBDD5        PTBDD4      PTBDD3    PTBDD2    PTBDD1  PTBDD0

$0004    PTCD            0           PTCD6   PTCD5         PTCD4       PTCD3     PTCD2     PTCD1   PTCD0

$0005    PTCDD           0           PTCDD6  PTCDD5        PTCDD4      PTCDD3    PTCDD2    PTCDD1  PTCDD0

$0006    PTDD            PTDD7       PTDD6   PTDD5         PTDD4       PTDD3     PTDD2     PTDD1   PTDD0

$0007    PTDDD           PTDDD7      PTDDD6  PTDDD5        PTDDD4      PTDDD3    PTDDD2    PTDDD1  PTDDD0

$0008    PTED            PTED7       PTED6        PTED5    PTED4          PTED3  PTED2     PTED1   PTED0

$0009    PTEDD           PTEDD7      PTEDD6  PTEDD5        PTEDD4      PTEDD3    PTEDD2    PTEDD1  PTEDD0

$000A    PTFD            PTFD7       PTFD6        PTFD5    PTFD4          PTFD3  PTFD2     PTFD1   PTFD0

$000B    PTFDD           PTFDD7      PTFDD6  PTFDD5        PTFDD4      PTFDD3    PTFDD2    PTFDD1  PTFDD0

$000C    PTGD            0           PTGD6   PTGD5         PTGD4       PTGD3     PTGD2     PTGD1   PTGD0

$000D    PTGDD           0           PTGDD6  PTGDD5        PTGDD4      PTGDD3    PTGDD2    PTGDD1  PTGDD0

$000E–   Reserved        —           —            —        —              —            —   —            —

$000F                    —           —            —        —              —            —   —            —

$0010    ADC1SC1         COCO        AIEN         ADCO                           ADCH

$0011    ADC1SC2         ADACT       ADTRG        ACFE     ACFGT          0            0   R            R

$0012    ADC1RH          0           0            0        0              0            0   ADR9    ADR8

$0013    ADC1RL          ADR7        ADR6         ADR5     ADR4           ADR3   ADR2      ADR1    ADR0

$0014    ADC1CVH         0           0            0        0              0            0   ADCV9   ADCV8

$0015    ADC1CVL         ADCV7       ADCV6   ADCV5         ADCV4       ADCV3     ADCV2     ADCV1   ADCV0

$0016    ADC1CFG         ADLPC              ADIV           ADLSMP               MODE            ADICLK

$0017    APCTL1          ADPC7       ADPC6   ADPC5         ADPC4       ADPC3     ADPC2     ADPC1   ADPC0

$0018    APCTL2          ADPC15      ADPC14  ADPC13        ADPC12      ADPC11    ADPC10    ADPC9   ADPC8

$0019    APCTL3          ADPC23      ADPC22  ADPC21        ADPC20      ADPC19    ADPC18    ADPC17  ADPC16

$001A–   Reserved        —           —            —        —              —            —   —            —

$001B                    —           —            —        —              —            —   —            —

$001C    IRQSC           0           0       IRQEDG        IRQPE          IRQF   IRQACK    IRQIE   IRQMOD

$001D    Reserved        —           —            —        —              —            —   —            —

$001E    KBI1SC          KBEDG7      KBEDG6  KBEDG5        KBEDG4         KBF    KBACK     KBIE    KBIMOD

$001F    KBI1PE          KBIPE7      KBIPE6  KBIPE5        KBIPE4      KBIPE3    KBIPE2    KBIPE1  KBIPE0

$0020    TPM1SC          TOF         TOIE    CPWMS         CLKSB       CLKSA          PS2  PS1          PS0

$0021    TPM1CNTH        Bit 15      14           13       12             11           10  9            Bit 8

$0022    TPM1CNTL        Bit 7       6            5        4              3            2   1            Bit 0

$0023    TPM1MODH        Bit 15      14           13       12             11           10  9            Bit 8

$0024    TPM1MODL        Bit 7       6            5        4              3            2   1            Bit 0

$0025    TPM1C0SC        CH0F        CH0IE        MS0B     MS0A           ELS0B  ELS0A     0            0

$0026    TPM1C0VH        Bit 15      14           13       12             11           10  9            Bit 8

$0027    TPM1C0VL        Bit 7       6            5        4              3            2   1            Bit 0

                                     MC9S08AW60 Data       Sheet, Rev  2

44                                                                                         Freescale Semiconductor
                                                                                                 Chapter  4 Memory

                          Table 4-2. Direct-Page Register  Summary (Sheet 2    of 3)

Address    Register Name  Bit 7         6     5            4            3             2       1           Bit 0

$0028      TPM1C1SC       CH1F    CH1IE       MS1B         MS1A         ELS1B  ELS1A          0           0

$0029      TPM1C1VH       Bit 15        14    13           12           11     10             9           Bit 8

$002A      TPM1C1VL       Bit 7         6     5            4            3             2       1           Bit 0

$002B      TPM1C2SC       CH2F    CH2IE       MS2B         MS2A         ELS2B  ELS2A          0           0

$002C      TPM1C2VH       Bit 15        14    13           12           11     10             9           Bit 8

$002D      TPM1C2VL       Bit 7         6     5            4            3             2       1           Bit 0

$002E      TPM1C3SC       CH3F    CH3IE       MS3B         MS3A         ELS3B  ELS3A          0           0

$002F      TPM1C3VH       Bit 15        14    13           12           11     10             9           Bit 8

$0030      TPM1C3VL       Bit 7         6     5            4            3             2       1           Bit 0

$0031      TPM1C4SC       CH4F    CH4IE       MS4B         MS4A         ELS4B  ELS4A          0           0

$0032      TPM1C4VH       Bit 15        14    13           12           11     10             9           Bit 8

$0033      TPM1C4VL       Bit 7         6     5            4            3             2       1           Bit 0

$0034      TPM1C5SC       CH5F    CH5IE       MS5B         MS5A         ELS5B  ELS5A          0           0

$0035      TPM1C5VH       Bit 15        14    13           12           11     10             9           Bit 8

$0036      TPM1C5VL       Bit 7         6     5            4            3             2       1           Bit 0

$0037      Reserved       —             —     —            —            —             —       —           —

$0038      SCI1BDH        0             0     0            SBR12       SBR11   SBR10          SBR9        SBR8

$0039      SCI1BDL        SBR7    SBR6        SBR5         SBR4         SBR3   SBR2           SBR1        SBR0

$003A      SCI1C1         LOOPS   SCISWAI     RSRC         M            WAKE   ILT            PE          PT

$003B      SCI1C2         TIE           TCIE  RIE          ILIE         TE     RE             RWU         SBK

$003C      SCI1S1         TDRE          TC    RDRF         IDLE         OR     NF             FE          PF

$003D      SCI1S2         0             0     0            0            0      BRK13          0           RAF

$003E      SCI1C3         R8            T8    TXDIR        TXINV        ORIE   NEIE           FEIE        PEIE

$003F      SCI1D          Bit 7         6     5            4            3             2       1           Bit 0

$0040      SCI2BDH        0             0     0            SBR12       SBR11   SBR10          SBR9        SBR8

$0041      SCI2BDL        SBR7    SBR6        SBR5         SBR4         SBR3   SBR2           SBR1        SBR0

$0042      SCI2C1         LOOPS   SCISWAI     RSRC         M            WAKE   ILT            PE          PT

$0043      SCI2C2         TIE           TCIE  RIE          ILIE         TE     RE             RWU         SBK

$0044      SCI2S1         TDRE          TC    RDRF         IDLE         OR     NF             FE          PF

$0045      SCI2S2         0             0     0            0            0      BRK13          0           RAF

$0046      SCI2C3         R8            T8    TXDIR        TXINV        ORIE   NEIE           FEIE        PEIE

$0047      SCI2D          Bit 7         6     5            4            3             2       1           Bit 0

$0048      ICGC1          HGO     RANGE       REFS                CLKS         OSCSTEN        LOCD        0

$0049      ICGC2          LOLRE               MFD                      LOCRE                  RFD

$004A      ICGS1                 CLKST        REFST        LOLS         LOCK   LOCS           ERCS        ICGIF

$004B      ICGS2          0             0     0            0            0             0       0           DCOS

$004C      ICGFLTU        0             0     0            0                             FLT

$004D      ICGFLTL                                                FLT

$004E      ICGTRM                                                 TRIM

$004F      Reserved       —             —     —            —            —             —       —           —

                                        MC9S08AW60 Data Sheet, Rev 2

Freescale  Semiconductor                                                                                         45
Chapter 4 Memory

                        Table 4-2. Direct-Page Register Summary (Sheet 3 of 3)

Address  Register Name  Bit 7         6      5      4               3           2      1        Bit 0

$0050    SPI1C1         SPIE          SPE    SPTIE  MSTR            CPOL        CPHA   SSOE     LSBFE

$0051    SPI1C2         0             0      0      MODFEN          BIDIROE     0      SPISWAI  SPC0

$0052    SPI1BR         0       SPPR2        SPPR1  SPPR0           0           SPR2   SPR1     SPR0

$0053    SPI1S          SPRF          0      SPTEF  MODF            0           0      0        0

$0054    Reserved       0             0      0      0               0           0      0        0

$0055    SPI1D          Bit 7         6      5      4               3           2      1        Bit 0

$0056–   Reserved       —             —      —      —               —           —      —        —

$0057                   —             —      —      —               —           —      —        —

$0058    IIC1A                                      ADDR                                        0

$0059    IIC1F                  MULT                                       ICR

$005A    IIC1C          IICEN         IICIE  MST    TX              TXAK        RSTA   0        0

$005B    IIC1S          TCF           IAAS   BUSY   ARBL            0           SRW    IICIF    RXAK

$005C    IIC1D                                             DATA

$005D–   Reserved       —             —      —      —               —           —      —        —

$005F                   —             —      —      —               —           —      —        —

$0060    TPM2SC         TOF           TOIE   CPWMS  CLKSB           CLKSA       PS2    PS1      PS0

$0061    TPM2CNTH       Bit 15        14     13     12              11          10     9        Bit 8

$0062    TPM2CNTL       Bit 7         6      5      4               3           2      1        Bit 0

$0063    TPM2MODH       Bit 15        14     13     12              11          10     9        Bit 8

$0064    TPM2MODL       Bit 7         6      5      4               3           2      1        Bit 0

$0065    TPM2C0SC       CH0F          CH0IE  MS0B   MS0A            ELS0B       ELS0A  0        0

$0066    TPM2C0VH       Bit 15        14     13     12              11          10     9        Bit 8

$0067    TPM2C0VL       Bit 7         6      5      4               3           2      1        Bit 0

$0068    TPM2C1SC       CH1F          CH1IE  MS1B   MS1A            ELS1B       ELS1A  0        0

$0069    TPM2C1VH       Bit 15        14     13     12              11          10     9        Bit 8

$006A    TPM2C1VL       Bit 7         6      5      4               3           2      1        Bit 0

$006B–   Reserved       —             —      —      —               —           —      —        —

$006F                   —             —      —      —               —           —      —        —

                                      MC9S08AW60 Data Sheet, Rev 2

46                                                                                     Freescale Semiconductor
                                                                                              Chapter 4 Memory

High-page registers, shown in Table 4-3, are accessed much less often than other I/O and control   registers

so they have been located outside the direct addressable memory space, starting at $1800.

                         Table 4-3. High-Page Register Summary (Sheet 1 of 2)

Address  Register  Name  Bit 7   6       5        4            3               2           1       Bit 0

$1800    SRS             POR     PIN     COP      ILOP         0               ICG         LVD     0

$1801    SBDFR           0       0       0        0            0               0           0       BDFR

$1802    SOPT            COPE    COPT    STOPE    —            0               0           —       —

$1803    SMCLK           0       0       0        MPE          0                           MCSEL

$1804 –  Reserved        —       —       —        —            —               —           —       —

$1805                    —       —       —        —            —               —           —       —

$1806    SDIDH           REV3    REV2    REV1     REV0         ID11            ID10        ID9     ID8

$1807    SDIDL           ID7     ID6     ID5      ID4          ID3             ID2         ID1     ID0

$1808    SRTISC          RTIF    RTIACK  RTICLKS  RTIE         0               RTIS2       RTIS1   RTIS0

$1809    SPMSC1          LVDF    LVDACK  LVDIE    LVDRE        LVDSE           LVDE        01      BGBE

$180A    SPMSC2          LVWF    LVWACK  LVDV     LVWV         PPDF            PPDACK      —       PPDC

$180B–   Reserved        —       —       —        —            —               —           —       —

$180F                    —       —       —        —            —               —           —       —

$1810    DBGCAH          Bit 15  14      13       12           11              10          9       Bit 8

$1811    DBGCAL          Bit 7   6       5        4            3               2           1       Bit 0

$1812    DBGCBH          Bit 15  14      13       12           11              10          9       Bit 8

$1813    DBGCBL          Bit 7   6       5        4            3               2           1       Bit 0

$1814    DBGFH           Bit 15  14      13       12           11              10          9       Bit 8

$1815    DBGFL           Bit 7   6       5        4            3               2           1       Bit 0

$1816    DBGC            DBGEN   ARM     TAG      BRKEN        RWA             RWAEN       RWB     RWBEN

$1817    DBGT            TRGSEL  BEGIN   0        0            TRG3            TRG2        TRG1    TRG0

$1818    DBGS            AF      BF      ARMF     0            CNT3            CNT2        CNT1    CNT0

$1819–   Reserved        —       —       —        —            —               —           —       —

$181F                    —       —       —        —            —               —           —       —

$1820    FCDIV           DIVLD   PRDIV8  DIV5     DIV4         DIV3            DIV2        DIV1    DIV0

$1821    FOPT            KEYEN   FNORED  0        0            0               0           SEC01   SEC00

$1822    Reserved        —       —       —        —            —               —           —       —

$1823    FCNFG           0       0       KEYACC   0            0               0           0       0

$1824    FPROT           FPS7    FPS6    FPS5     FPS4         FPS3            FPS2        FPS1    FPDIS

$1825    FSTAT           FCBEF   FCCF    FPVIOL   FACCERR      0               FBLANK      0       0

$1826    FCMD            FCMD7   FCMD6   FCMD5    FCMD4        FCMD3           FCMD2       FCMD1   FCMD0

$1827–   Reserved        —       —       —        —            —               —           —       —

$183F                    —       —       —        —            —               —           —       —

$1840    PTAPE           PTAPE7  PTAPE6  PTAPE5   PTAPE4       PTAPE3          PTAPE2      PTAPE1  PTAPE0

$1841    PTASE           PTASE7  PTASE6  PTASE5   PTASE4       PTASE3          PTASE2      PTASE1  PTASE0

$1842    PTADS           PTADS7  PTADS6  PTADS5   PTADS4       PTADS3          PTADS2      PTADS1  PTADS0

$1843    Reserved        —       —       —        —            —               —           —       —

$1844    PTBPE           PTBPE7  PTBPE6  PTBPE5   PTBPE4       PTBPE3          PTBPE2      PTBPE1  PTBPE0

$1845    PTBSE           PTBSE7  PTBSE6  PTBSE5   PTBSE4       PTBSE3          PTBSE2      PTBSE1  PTBSE0

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                   47
   Chapter 4 Memory

                           Table 4-3. High-Page Register Summary (Sheet 2 of 2)

   Address  Register Name  Bit 7                    6  5       4           3       2       1          Bit 0

$1846       PTBDS          PTBDS7            PTBDS6    PTBDS5  PTBDS4      PTBDS3  PTBDS2  PTBDS1  PTBDS0

$1847       Reserved       —                        —  —       —           —       —       —          —

$1848       PTCPE          0                 PTCPE6    PTCPE5  PTCPE4      PTCPE3  PTCPE2  PTCPE1  PTCPE0

$1849       PTCSE          0                 PTCSE6    PTCSE5  PTCSE4      PTCSE3  PTCSE2  PTCSE1  PTCSE0

$184A       PTCDS          0                 PTCDS6    PTCDS5  PTCDS4      PTCDS3  PTCDS2  PTCDS1  PTCDS0

$184B       Reserved       —                        —  —       —           —       —       —          —

$184C       PTDPE          PTDPE7            PTDPE6    PTDPE5  PTDPE4      PTDPE3  PTDPE2  PTDPE1  PTDPE0

$184D       PTDSE          PTDSE7            PTDSE6    PTDSE5  PTDSE4      PTDSE3  PTDSE2  PTDSE1  PTDSE0

$184E       PTDDS          PTDDS7            PTDDS6    PTDDS5  PTDDS4      PTDDS3  PTDDS2  PTDDS1  PTDDS0

$184F       Reserved       —                        —  —       —           —       —       —          —

$1850       PTEPE          PTEPE7            PTEPE6    PTEPE5  PTEPE4      PTEPE3  PTEPE2  PTEPE1  PTEPE0

$1851       PTESE          PTESE7            PTESE6    PTESE5  PTESE4      PTESE3  PTESE2  PTESE1  PTESE0

$1852       PTEDS          PTEDS7            PTEDS6    PTEDS5  PTEDS4      PTEDS3  PTEDS2  PTEDS1  PTEDS0

$1853       Reserved       —                        —  —       —           —       —       —          —

$1854       PTFPE          PTFPE7            PTFPE6    PTFPE5  PTFPE4      PTFPE3  PTFPE2  PTFPE1  PTFPE0

$1855       PTFSE          PTFSE7            PTFSE6    PTFSE5  PTFSE4      PTFSE3  PTFSE2  PTFSE1  PTFSE0

$1856       PTFDS          PTFDS7            PTFDS6    PTFDS5  PTFDS4      PTFDS3  PTFDS2  PTFDS1  PTFDS0

$1857       Reserved       —                        —  —       —           —       —       —          —

$1858       PTGPE          0                 PTGPE6    PTGPE5  PTGPE4      PTGPE3  PTGPE2  PTGPE1  PTGPE0

$1859       PTGSE          0                 PTGSE6    PTGSE5  PTGSE4      PTGSE3  PTGSE2  PTGSE1  PTGSE0

$185A       PTGDS          0                 PTGDS6    PTGDS5  PTGDS4      PTGDS3  PTGDS2  PTGDS1  PTGDS0

$185B–      Reserved       —                        —  —       —           —       —       —          —

$185F                      —                        —  —       —           —       —       —          —

1  This reserved bit must always be written  to 0.

   Nonvolatile FLASH registers, shown in Table 4-4, are located in the FLASH memory. These registers

   include an 8-byte backdoor key which optionally can be used to gain access to secure memory resources.

   During reset events, the contents of NVPROT and NVOPT in the nonvolatile register area of the FLASH

   memory are transferred into corresponding FPROT and FOPT working registers in the high-page registers

   to control security and block protection options.

                                             MC9S08AW60 Data Sheet, Rev 2

   48                                                                                      Freescale Semiconductor
                                                                                            Chapter 4 Memory

                                    Table 4-4. Nonvolatile  Register Summary

Address  Register Name       Bit 7       6           5            4       3        2     1         Bit 0

$FFB0 –  NVBACKKEY                                          8-Byte Comparison Key

$FFB7

$FFB8 –  Reserved            —           —          —             —     —          —     —              —

$FFBB

$FFBC    Reserved for stor-

         age of 250 kHz      —           —          —             —     —          —     —              —

         ICGTRM value

$FFBD    NVPROT              FPS7        FPS6       FPS5          FPS4  FPS3       FPS2  FPS1   FPDIS

$FFBE    Reserved for stor-

         age of 243 kHz      —           —          —             —     —          —     —              —

         ICGTRM value

$FFBF    NVOPT               KEYEN       FNORED      0            0       0        0     SEC01  SEC00

Provided the key enable (KEYEN) bit is 1, the 8-byte comparison key can be used to temporarily

disengage memory security. This key mechanism can be accessed only through user code running in secure

memory. (A security key cannot be entered directly through background debug commands.) This security

key can be disabled completely by programming the KEYEN bit to 0. If the security key is disabled, the

only way to disengage security is by mass erasing the FLASH if needed (normally through the background

debug interface) and verifying that FLASH is blank. To avoid returning to secure mode after the next reset,

program the security bits (SEC01:SEC00) to the unsecured state (1:0).

4.3      RAM

The MC9S08AW60 Series includes static RAM. The locations in RAM below $0100 can be accessed

using the more efficient direct addressing mode, and any single bit in this area can be accessed with the bit

manipulation instructions (BCLR, BSET, BRCLR, and BRSET). Locating the most frequently accessed

program variables in this area of RAM is preferred.

The RAM retains data when the MCU is in low-power wait, stop2, or stop3 mode. At power-on, the

contents of RAM are uninitialized. RAM data is unaffected by any reset provided that the supply voltage

does not drop below the minimum value for RAM retention.

For compatibility with older M68HC05 MCUs, the HCS08 resets the stack pointer to $00FF. In the

MC9S08AW60 Series, it is usually best to re-initialize the stack pointer to the top of the RAM so the direct

page RAM can be used for frequently accessed RAM variables and bit-addressable program variables.

Include the following 2-instruction sequence in your reset initialization routine (where RamLast is equated

to the highest address of the RAM in the Freescale-provided equate file).

         LDHX                #RamLast+1     ;point  one     past  RAM

         TXS                                ;SP<-(H:X-1)

                                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       49
Chapter 4 Memory

When security is enabled, the RAM is considered a secure memory resource and is not accessible through

BDM or through code executing from non-secure memory. See Section 4.5, “Security” for a detailed

description of the security feature.

4.4  FLASH

The FLASH memory is intended primarily for program storage. In-circuit programming allows the

operating program to be loaded into the FLASH memory after final assembly of the application product.

It is possible to program the entire array through the single-wire background debug interface. Because no

special voltages are needed for FLASH erase and programming operations, in-application programming

is also possible through other software-controlled communication paths. For a more detailed discussion of

in-circuit and in-application programming, refer to the HCS08 Family Reference Manual, Volume I,

Freescale Semiconductor document order number HCS08RMv1/D.

                                      MC9S08AW60 Data Sheet, Rev 2

50                                                                  Freescale Semiconductor
                                                                                                      Chapter 4 Memory

4.4.1      Features

Features of the FLASH memory include:

•      FLASH Size

       — MC9S08AW60 — 63280 bytes (124 pages of 512 bytes each)

       — MC9S08AW48 — 49152 bytes (96 pages of 512 bytes each)

       — MC9S08AW32 — 32768 bytes (64 pages of 512 bytes each)

       — MC9S08AW16 — 16384 bytes (32 pages of 512 bytes each)

•      Single power supply program and erase

•      Command interface for fast program and erase operation

•      Up to 100,000 program/erase cycles at typical voltage and temperature

•      Flexible block protection

•      Security feature for FLASH and RAM

•      Auto power-down for low-frequency read accesses

4.4.2      Program and Erase Times

Before any program or erase command can be accepted, the FLASH clock divider register (FCDIV) must

be written to set the internal clock for the FLASH module to a frequency (fFCLK) between 150 kHz and

200 kHz (see Section 4.6.1, “FLASH Clock Divider Register (FCDIV)”). This register can be written only

once, so normally this write is done during reset initialization. FCDIV cannot be written if the access error

flag, FACCERR in FSTAT, is set. The user must ensure that FACCERR is not set before writing to the

FCDIV register. One period of the resulting clock (1/fFCLK) is used by the command processor to time

program and erase pulses. An integer number of these timing pulses are used by the command processor

to complete a program or erase command.

Table 4-5 shows program and erase times. The bus clock frequency and FCDIV determine the frequency

of FCLK (fFCLK). The time for one cycle of FCLK is tFCLK = 1/fFCLK. The times are shown as a number

of cycles of FCLK and as an absolute time for the case where tFCLK = 5 μs. Program and erase times

shown include overhead for the command state machine and enabling and disabling of program and erase

voltages.

                                    Table 4-5. Program and Erase Times

                         Parameter            Cycles of FCLK             Time if FCLK = 200 kHz

              Byte program                    9                               45 μs

              Byte program (burst)            4                               20 μs1

              Page erase                      4000                            20 ms2

              Mass erase                      20,000                          100 ms2

           1  Excluding start/end overhead

           2  Because the page and mass erase times can be longer than the COP watchdog timeout, the

              COP should be serviced during any software erase routine.

                                    MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                        51
Chapter 4 Memory

4.4.3   Program and Erase Command Execution

The steps for executing any of the commands are listed below. The FCDIV register must be initialized and

any error flags cleared before beginning command execution. The command execution steps are:

    1.  Write a data value to an address in the FLASH array. The address and data information from this

        write is latched into the FLASH interface. This write is a required first step in any command

        sequence. For erase and blank check commands, the value of the data is not important. For page

        erase commands, the address may be any address in the 512-byte page of FLASH to be erased. For

        mass erase and blank check commands, the address can be any address in the FLASH memory.

        Whole pages of 512 bytes are the smallest block of FLASH that may be erased. In the 60K version,

        there are two instances where the size of a block that is accessible to the user is less than 512 bytes:

        the first page following RAM, and the first page following the high page registers. These pages are

        overlapped by the RAM and high page registers respectively.

                                           NOTE

                  Do not program any byte in the FLASH more than once after a successful

                  erase operation. Reprogramming bits to a byte which is already

                  programmed is not allowed without first erasing the page in which the byte

                  resides or mass erasing the entire FLASH memory. Programming without

                  first erasing may disturb data stored in the FLASH.

    2.  Write the command code for the desired command to FCMD. The five valid commands are blank

        check ($05), byte program ($20), burst program ($25), page erase ($40), and mass erase ($41).

        The command code is latched into the command buffer.

    3.  Write a 1 to the FCBEF bit in FSTAT to clear FCBEF and launch the command (including its

        address and data information).

A partial command sequence can be aborted manually by writing a 0 to FCBEF any time after the write to

the memory array and before writing the 1 that clears FCBEF and launches the complete command.

Aborting a command in this way sets the FACCERR access error flag which must be cleared before

starting a new command.

A strictly monitored procedure must be obeyed or the command will not be accepted. This minimizes the

possibility of any unintended changes to the FLASH memory contents. The command complete flag

(FCCF) indicates when a command is complete. The command sequence must be completed by clearing

FCBEF to launch the command. Figure 4-3 is a flowchart for executing all of the commands except for

burst programming. The FCDIV register must be initialized before using any FLASH commands. This

only must be done once following a reset.

                                        MC9S08AW60 Data Sheet, Rev 2

52                                                                                Freescale Semiconductor
                                                                                                               Chapter 4 Memory

                                       WRITE TO FCDIV (Note 1)        Note 1: Required only once after reset.

       FLASH PROGRAM AND               START

       ERASE FLOW

                                       FACCERR ?                 0

                                       1

                                       CLEAR ERROR

                                       WRITE TO FLASH

                                 TO BUFFER ADDRESS AND DATA

                                       WRITE COMMAND TO FCMD

                                       WRITE 1 TO FCBEF               Note 2: Wait at least four bus cycles

                                       TO LAUNCH COMMAND                    before checking FCBEF or FCCF.

                                       AND CLEAR FCBEF (Note 2)

                                       FPVIOL OR                 YES        ERROR EXIT

                                       FACCERR ?

                                       NO

                                 0     FCCF ?

                                       1

                                       DONE

                         Figure  4-3.  FLASH Program             and Erase  Flowchart

4.4.4  Burst Program Execution

The burst program command is used to program sequential bytes of data in less time than would be

required using the standard program command. This is possible because the high voltage to the FLASH

array does not need to be disabled between program operations. Ordinarily, when a program or erase

command is issued, an internal charge pump associated with the FLASH memory must be enabled to

supply high voltage to the array. Upon completion of the command, the charge pump is turned off. When

a burst program command is issued, the charge pump is enabled and then remains enabled after completion

of the burst program operation if these two conditions are met:

•      The next burst program command has been queued before the current program operation has

       completed.

•      The next sequential address selects a byte on the same physical row as the current byte being

       programmed. A row of FLASH memory consists of 64 bytes. A byte within a row is selected by

       addresses A5 through A0. A new row begins when addresses A5 through A0 are all zero.

                                    MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                        53
Chapter 4 Memory

The first byte of a series of sequential bytes being programmed in burst mode will take the same amount

of time to program as a byte programmed in standard mode. Subsequent bytes will program in the burst

program time provided that the conditions above are met. In the case the next sequential address is the

beginning of a new row, the program time for that byte will be the standard time instead of the burst time.

This is because the high voltage to the array must be disabled and then enabled again. If a new burst

command has not been queued before the current command completes, then the charge pump will be

disabled and high voltage removed from the array.

                       WRITE TO FCDIV (Note 1)              Note 1: Required only once after reset.

    FLASH BURST        START

    PROGRAM FLOW

                       FACCERR ?                       0

                                                   1

                       CLEAR ERROR

                       FCBEF ?                         0

                       1

                       WRITE TO FLASH

                  TO BUFFER ADDRESS AND DATA

                  WRITE COMMAND ($25) TO FCMD

                       WRITE 1 TO FCBEF                     Note 2: Wait at least four bus cycles before

                       TO LAUNCH COMMAND                    checking FCBEF or FCCF.

                       AND CLEAR FCBEF (Note 2)

                       FPVIO OR                        YES  ERROR EXIT

                       FACCERR ?

                       NO

                  YES  NEW BURST COMMAND ?

                                                   NO

                  0    FCCF ?

                       1

                       DONE

                  Figure 4-4. FLASH Burst Program Flowchart

                       MC9S08AW60 Data Sheet, Rev 2

54                                                                                   Freescale Semiconductor
                                                                             Chapter 4 Memory

4.4.5  Access Errors

An access error occurs whenever the command execution protocol is violated.

Any of the following specific actions will cause the access error flag (FACCERR) in FSTAT to be set.

FACCERR must be cleared by writing a 1 to FACCERR in FSTAT        before any command can be processed.

•      Writing to a FLASH address before the internal FLASH clock frequency has been set by writing

       to the FCDIV register

•      Writing to a FLASH address while FCBEF is not set (A new command cannot be started until the

       command buffer is empty.)

•      Writing a second time to a FLASH address before launching the previous command (There is only

       one write to FLASH for every command.)

•      Writing a second time to FCMD before launching the previous command (There is only one write

       to FCMD for every command.)

•      Writing to any FLASH control register other than FCMD after writing to a FLASH address

•      Writing any command code other than the five allowed codes ($05, $20, $25, $40, or $41) to

       FCMD

•      Accessing (read or write) any FLASH control register other than the write to FSTAT (to clear

       FCBEF and launch the command) after writing the command to FCMD.

•      The MCU enters stop mode while a program or erase command is in progress (The command is

       aborted.)

•      Writing the byte program, burst program, or page erase command code ($20, $25, or $40) with a

       background debug command while the MCU is secured (The background debug controller can

       only do blank check and mass erase commands when the MCU is secure.)

•      Writing 0 to FCBEF to cancel a partial command

4.4.6  FLASH Block Protection

The block protection feature prevents the protected region of FLASH from program or erase changes.

Block protection is controlled through the FLASH Protection Register (FPROT). When enabled, block

protection begins at any 512 byte boundary below the last address of FLASH, $FFFF. (see Section 4.6.4,

“FLASH Protection Register (FPROT and NVPROT)”).

After exit from reset, FPROT is loaded with the contents of the NVPROT location which is in the

nonvolatile register block of the FLASH memory. FPROT cannot be changed directly from application

software so a runaway program cannot alter the block protection settings. Since NVPROT is within the last

512 bytes of FLASH, if any amount of memory is protected, NVPROT is itself protected and cannot be

altered (intentionally or unintentionally) by the application software. FPROT can be written through

background debug commands which allows a way to erase and reprogram a protected FLASH memory.

The block protection mechanism is illustrated below. The FPS bits are used as the upper bits of the last

address of unprotected memory. This address is formed by concatenating FPS7:FPS1 with logic 1 bits as

shown. For example, in order to protect the last 8192 bytes of memory (addresses $E000 through $FFFF),

the FPS bits must be set to 1101 111 which results in the value $DFFF as the last address of unprotected

memory. In addition to programming the FPS bits to the appropriate value, FPDIS (bit 0 of NVPROT) must

                                    MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                    55
Chapter 4 Memory

be programmed to logic 0 to enable block protection. Therefore the value $DE must be programmed into

NVPROT to protect addresses $E000 through $FFFF.

          FPS7         FPS6  FPS5  FPS4  FPS3  FPS2      FPS1  1   1   1   1   1   1   1   1   1

                  A15  A14   A13   A12   A11   A10       A9    A8  A7  A6  A5  A4  A3  A2  A1  A0

                                   Figure 4-5. Block Protection Mechanism

One use for block protection is to block protect an area of FLASH memory for a bootloader program. This

bootloader program then can be used to erase the rest of the FLASH memory and reprogram it. Because

the bootloader is protected, it remains intact even if MCU power is lost in the middle of an erase and

reprogram operation.

4.4.7     Vector Redirection

Whenever any block protection is enabled, the reset and interrupt vectors will be protected. Vector

redirection allows users to modify interrupt vector information without unprotecting bootloader and reset

vector space. Vector redirection is enabled by programming the FNORED bit in the NVOPT register

located at address $FFBF to zero. For redirection to occur, at least some portion but not all of the FLASH

memory must be block protected by programming the NVPROT register located at address $FFBD. All of

the interrupt vectors (memory locations $FFC0–$FFFD) are redirected, though the reset vector

($FFFE:FFFF) is not.

For example, if 512 bytes of FLASH are protected, the protected address region is from $FE00 through

$FFFF. The interrupt vectors ($FFC0–$FFFD) are redirected to the locations $FDC0–$FDFD. Now, if an

SPI interrupt is taken for instance, the values in the locations $FDE0:FDE1 are used for the vector instead

of the values in the locations $FFE0:FFE1. This allows the user to reprogram the unprotected portion of

the FLASH with new program code including new interrupt vector values while leaving the protected area,

which includes the default vector locations, unchanged.

4.5       Security

The MC9S08AW60 Series includes circuitry to prevent unauthorized access to the contents of FLASH and

RAM memory. When security is engaged, FLASH and RAM are considered secure resources. Direct-page

registers, high-page registers, and the background debug controller are considered unsecured resources.

Programs executing within secure memory have normal access to any MCU memory locations and

resources. Attempts to access a secure memory location with a program executing from an unsecured

memory space or through the background debug interface are blocked (writes are ignored and reads return

all 0s).

Security is engaged or disengaged based on the state of two nonvolatile register bits (SEC01:SEC00) in

the FOPT register. During reset, the contents of the nonvolatile location NVOPT are copied from FLASH

into the working FOPT register in high-page register space. A user engages security by programming the

NVOPT location which can be done at the same time the FLASH memory is programmed. The 1:0 state

disengages security and the other three combinations engage security. Notice the erased state (1:1) makes

                                         MC9S08AW60 Data Sheet, Rev 2

56                                                                                     Freescale Semiconductor
                                                                               Chapter 4 Memory

the MCU secure. During development, whenever the FLASH is erased, it is good practice to immediately

program the SEC00 bit to 0 in NVOPT so SEC01:SEC00 = 1:0. This would allow the MCU to remain

unsecured after a subsequent reset.

The on-chip debug module cannot be enabled while the MCU is secure. The separate background debug

controller can still be used for background memory access commands, but the MCU cannot enter active

background mode except by holding BKGD/MS low at the rising edge of reset.

A user can choose to allow or disallow a security unlocking mechanism through an 8-byte backdoor

security key. If the nonvolatile KEYEN bit in NVOPT/FOPT is 0, the backdoor key is disabled and there

is no way to disengage security without completely erasing all FLASH locations. If KEYEN is 1, a secure

user program can temporarily disengage security by:

1.  Writing 1 to KEYACC in the FCNFG register. This makes the FLASH module interpret writes to

    the backdoor comparison key locations (NVBACKKEY through NVBACKKEY+7) as values to

    be compared against the key rather than as the first step in a FLASH program or erase command.

2.  Writing the user-entered key values to the NVBACKKEY through NVBACKKEY+7 locations.

    These writes must be done in order starting with the value for NVBACKKEY and ending with

    NVBACKKEY+7. STHX should not be used for these writes because these writes cannot be done

    on adjacent bus cycles. User software normally would get the key codes from outside the MCU

    system through a communication interface such as a serial I/O.

3.  Writing 0 to KEYACC in the FCNFG register. If the 8-byte key that was just written matches the

    key stored in the FLASH locations, SEC01:SEC00 are automatically changed to 1:0 and security

    will be disengaged until the next reset.

The security key can be written only from secure memory (either RAM or FLASH), so it cannot be entered

through background commands without the cooperation of a secure user program.

The backdoor comparison key (NVBACKKEY through NVBACKKEY+7) is located in FLASH memory

locations in the nonvolatile register space so users can program these locations exactly as they would

program any other FLASH memory location. The nonvolatile registers are in the same 512-byte block of

FLASH as the reset and interrupt vectors, so block protecting that space also block protects the backdoor

comparison key. Block protects cannot be changed from user application programs, so if the vector space

is block protected, the backdoor security key mechanism cannot permanently change the block protect,

security settings, or the backdoor key.

Security can always be disengaged through the background debug interface by taking these steps:

1.  Disable any block protections by writing FPROT. FPROT can be written only with background

    debug commands, not from application software.

2.  Mass erase FLASH if necessary.

3.  Blank check FLASH. Provided FLASH is completely erased, security is disengaged until the next

    reset.

    To avoid returning to secure mode after the next reset, program NVOPT so SEC01:SEC00 = 1:0.

                                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                    57
Chapter 4 Memory

4.6           FLASH Registers and Control Bits

The FLASH module has nine 8-bit registers in the high-page register space, three locations in the

nonvolatile register space in FLASH memory which are copied into three corresponding high-page control

registers at reset. There is also an 8-byte comparison key in FLASH memory. Refer to Table 4-3 and

Table 4-4 for the absolute address assignments for all FLASH registers. This section refers to registers and

control bits only by their names. A Freescale-provided equate or header file normally is used to translate

these names into the appropriate absolute addresses.

4.6.1         FLASH Clock Divider Register (FCDIV)

Bit 7 of this register is a read-only status flag. Bits 6 through 0 may be read at any time but can be written

only one time. Before any erase or programming operations are possible, write to this register to set the

frequency of the clock for the nonvolatile memory system within acceptable limits.

                 7   6              5                 4                            3            2        1                   0

       R      DIVLD

                     PRDIV8         DIV5          DIV4   DIV3                                   DIV2     DIV1                DIV0

     W

    Reset     0      0              0                 0                            0            0        0                   0

                     = Unimplemented or Reserved

                                    Figure 4-6. FLASH Clock Divider Register (FCDIV)

                                    Table 4-6. FCDIV Register Field Descriptions

    Field                                                Description

     7        Divisor Loaded Status Flag — When set, this read-only status flag indicates that the FCDIV register has been

    DIVLD     written since reset. Reset clears this bit and the first write to this register causes this bit to become set regardless

              of the data written.

              0     FCDIV has not been written since reset; erase and program operations disabled for FLASH.

              1     FCDIV has been written since reset; erase and program operations enabled for FLASH.

     6        Prescale (Divide) FLASH Clock by 8

    PRDIV8    0     Clock input to the FLASH clock divider is the bus rate clock.

              1     Clock input to the FLASH clock divider is the bus rate clock divided by 8.

     5:0      Divisor for FLASH Clock Divider — The FLASH clock divider divides the bus rate clock (or the bus rate clock

    DIV[5:0]  divided by 8 if PRDIV8 = 1) by the value in the 6-bit DIV5:DIV0 field plus one. The resulting frequency of the

              internal FLASH clock must fall within the range of 200 kHz to 150 kHz for proper FLASH operations.

              Program/Erase timing pulses are one cycle of this internal FLASH clock which corresponds to a range of 5 μs to

              6.7 μs. The automated programming logic uses an integer number of these pulses to complete an erase or

              program operation. See Equation 4-1, Equation 4-2, and Table 4-6.

                     if PRDIV8 = 0 — fFCLK = fBus ÷ ([DIV5:DIV0] + 1)                                                 Eqn. 4-1

                     if PRDIV8 = 1 — fFCLK = fBus ÷ (8 × ([DIV5:DIV0] + 1))                                           Eqn. 4-2

Table 4-7     shows the appropriate values for PRDIV8 and DIV5:DIV0 for selected bus frequencies.

                                    MC9S08AW60 Data Sheet, Rev 2

58                                                                                                       Freescale Semiconductor
                                                                                                              Chapter 4 Memory

                                        Table  4-7. FLASH    Clock  Divider Settings

fBus              PRDIV8                          DIV5:DIV0                  fFCLK          Program/Erase Timing Pulse

                  (Binary)                        (Decimal)                                       (5 μs Min, 6.7 μs Max)

20 MHz                   1                            12            192.3 kHz                                 5.2 μs

10 MHz                   0                            49            200 kHz                                   5 μs

8 MHz                    0                            39            200 kHz                                   5 μs

4 MHz                    0                            19            200 kHz                                   5 μs

2 MHz                    0                            9             200 kHz                                   5 μs

1 MHz                    0                            4             200 kHz                                   5 μs

200 kHz                  0                            0             200 kHz                                   5 μs

150 kHz                  0                            0             150 kHz                                   6.7 μs

4.6.2      FLASH Options Register (FOPT and NVOPT)

During reset, the contents of the nonvolatile location NVOPT are copied from FLASH into FOPT. Bits 5

through 2 are not used and always read 0. This register may be read at any time, but writes have no meaning

or effect. To change the value in this register, erase and reprogram the NVOPT location in FLASH memory

as usual and then issue a new MCU reset.

              7             6                  5             4      3                 2                    1          0

       R   KEYEN         FNORED                0             0      0                 0               SEC01           SEC00

W

Reset                          This register is loaded from nonvolatile location NVOPT during reset.

                         = Unimplemented or Reserved

                                 Figure 4-7. FLASH Options Register (FOPT)

                                 Table 4-8. FOPT Register Field Descriptions

Field                                                           Description

7          Backdoor Key Mechanism Enable — When this bit is 0, the backdoor key mechanism cannot be used to

KEYEN      disengage security. The backdoor key mechanism is accessible only from user (secured) firmware. BDM

           commands cannot be used to write key comparison values that would unlock the backdoor key. For more detailed

           information about the backdoor key mechanism, refer to Section 4.5, “Security.”

           0     No backdoor key access allowed.

           1     If user firmware writes an 8-byte value that matches the nonvolatile backdoor key (NVBACKKEY through

                 NVBACKKEY+7 in that order), security is temporarily disengaged until the next MCU reset.

6          Vector Redirection Disable — When this bit is 1, then vector redirection is disabled.

FNORED     0     Vector redirection enabled.

           1     Vector redirection disabled.

1:0        Security State Code — This 2-bit field determines the security state of the MCU as shown in Table 4-9. When

SEC0[1:0]  the MCU is secure, the contents of RAM and FLASH memory cannot be accessed by instructions from any

           unsecured source including the background debug interface. For more detailed information about security, refer

           to Section 4.5, “Security.”

                                               MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                      59
Chapter 4 Memory

                                       Table 4-9. Security States

                               SEC01:SEC00                         Description

                               0:0                                 secure

                               0:1                                 secure

                               1:0                                 unsecured

                               1:1                                 secure

SEC01:SEC00       changes  to  1:0 after successful backdoor key entry or a successful         blank  check    of  FLASH.

4.6.3       FLASH Configuration Register (FCNFG)

Bits 7 through 5 may be read or written at any time. Bits 4 through 0 always read 0 and cannot be written.

               7           6        5          4  3                             2                     1            0

       R    0              0                   0  0                             0                     0            0

                               KEYACC

    W

    Reset   0              0        0          0  0                             0                     0            0

                  = Unimplemented or Reserved

                               Figure 4-8. FLASH Configuration Register (FCNFG)

                               Table 4-10. FCNFG Register Field Descriptions

    Field                                         Description

    5       Enable Writing of Access Key — This bit enables writing of the backdoor comparison key. For more       detailed

    KEYACC  information about the backdoor key mechanism, refer to Section 4.5, “Security.”

            0     Writes to $FFB0–$FFB7 are interpreted as the start of a FLASH programming or erase command.

            1     Writes to NVBACKKEY ($FFB0–$FFB7) are interpreted as comparison key writes.

                                    MC9S08AW60 Data Sheet, Rev 2

60                                                                                             Freescale Semiconductor
                                                                                                                 Chapter 4 Memory

4.6.4        FLASH Protection Register (FPROT and NVPROT)

During reset, the contents of the nonvolatile location NVPROT are copied from FLASH into FPROT. This

register may be read at any time.

   •       If FPDIS = 0, then protection can be increased (in other words, a smaller value of FPS can be

           written).

   •       If FPDIS = 1, then writes do not change protection.

                  7         6            5            4         3                  2                       1        0

       R     FPS7           FPS6         FPS5         FPS4      FPS3               FPS2                    FPS1     FPDIS

      W        (1)          (1)          (1)          (1)       (1)                (1)                     (1)      (1)

   Reset                         This register is loaded from nonvolatile location NVPROT during reset.

1  Background commands can be used to change the contents of these bits in FPROT.

                                  Figure 4-9. FLASH Protection Register (FPROT)

                                  Table 4-11. FPROT Register Field Descriptions

   Field                                                    Description

      7:1      FLASH Protect Select Bits — When FPDIS = 0, this 7-bit field determines the ending address of unprotected

   FPS[7:1]    FLASH locations at the high address end of the FLASH. Protected FLASH locations cannot be erased or

               programmed.

      0        FLASH Protection Disable

   FPDIS       0     FLASH block specified by FPS[7:1] is block protected (program and erase not allowed).

               1     No FLASH block is protected.

4.6.5        FLASH Status Register (FSTAT)

Bits 3, 1, and 0 always read 0 and writes have no meaning or effect. The remaining five bits are status                   bits

that can be read at any time. Writes to these bits have special meanings that are discussed in the bit

descriptions.

                  7         6            5            4         3                  2                       1        0

       R                    FCCF                                0                  FBLANK                  0        0

             FCBEF                       FPVIOL       FACCERR

      W

   Reset       1            1            0            0         0                  0                       0        0

                         = Unimplemented or Reserved

                                  Figure 4-10. FLASH Status Register (FSTAT)

                                                   MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                    61
Chapter 4 Memory

                                      Table 4-12. FSTAT Register Field Descriptions

    Field                                        Description

    7       FLASH Command Buffer Empty Flag — The FCBEF bit is used to launch commands. It also indicates that the

    FCBEF   command buffer is empty so that a new command sequence can be executed when performing burst

            programming. The FCBEF bit is cleared by writing a one to it or when a burst program command is transferred

            to the array for programming. Only burst program commands can be buffered.

            0     Command buffer is full (not ready for additional commands).

            1     A new burst program command may be written to the command buffer.

    6       FLASH Command Complete Flag — FCCF is set automatically when the command buffer is empty and no

    FCCF    command is being processed. FCCF is cleared automatically when a new command is started (by writing 1 to

            FCBEF to register a command). Writing to FCCF has no meaning or effect.

            0     Command in progress

            1     All commands complete

    5       Protection Violation Flag — FPVIOL is set automatically when FCBEF is cleared to register a command that

    FPVIOL  attempts to erase or program a location in a protected block (the erroneous command is ignored). FPVIOL is

            cleared by writing a 1 to FPVIOL.

            0     No protection violation.

            1     An attempt was made to erase or program a protected location.

    4       Access Error Flag — FACCERR is set automatically when the proper command sequence is not obeyed exactly

FACCERR     (the erroneous command is ignored), if a program or erase operation is attempted before the FCDIV register has

            been initialized, or if the MCU enters stop while a command was in progress. For a more detailed discussion of

            the exact actions that are considered access errors, see Section 4.4.5, “Access Errors.” FACCERR is cleared by

            writing a 1 to FACCERR. Writing a 0 to FACCERR has no meaning or effect.

            0     No access error.

            1     An access error has occurred.

    2       FLASH Verified as All Blank (erased) Flag — FBLANK is set automatically at the conclusion of a blank check

    FBLANK  command if the entire FLASH array was verified to be erased. FBLANK is cleared by clearing FCBEF to write a

            new valid command. Writing to FBLANK has no meaning or effect.

            0     After a blank check command is completed and FCCF = 1, FBLANK = 0 indicates the FLASH array is not

                  completely erased.

            1     After a blank check command is completed and FCCF = 1, FBLANK = 1 indicates the FLASH array is

                  completely erased (all $FF).

                                                MC9S08AW60 Data Sheet, Rev 2

62                                                                                      Freescale Semiconductor
                                                                                                 Chapter 4 Memory

4.6.6      FLASH Command Register (FCMD)

Only five command codes are recognized in normal user modes as shown in Table 4-14. Refer to

Section 4.4.3, “Program and Erase Command Execution” for a detailed discussion of FLASH

programming and erase operations.

           7             6             5                4          3          2            1            0

       R   0             0             0                0          0          0            0            0

W          FCMD7         FCMD6        FCMD5      FCMD4           FCMD3  FCMD2             FCMD1  FCMD0

Reset      0             0             0                0          0          0            0            0

                                Figure 4-11. FLASH Command Register (FCMD)

                                Table 4-13. FCMD Register Field Descriptions

Field                                                      Description

FCMD[7:0]  FLASH  Command Bits — See Table 4-14

                                       Table     4-14.  FLASH Commands

                         Command                           FCMD         Equate File Label

                         Blank check                       $05                mBlank

                         Byte program                      $20                mByteProg

                  Byte program — burst mode                $25                mBurstProg

                  Page erase (512 bytes/page)              $40                mPageErase

                         Mass erase (all FLASH)            $41                mMassErase

All other command codes are illegal and generate an access error.

It is not necessary to perform a blank check command after a mass erase operation. Only blank check is

required as part of the security unlocking mechanism.

                                       MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                    63
Chapter  4  Memory

                    MC9S08AW60 Data Sheet, Rev 2

64                                                Freescale Semiconductor
Chapter 5

Resets, Interrupts, and System Configuration

5.1  Introduction

This chapter discusses basic reset and interrupt mechanisms and the various sources of reset and interrupts

in the MC9S08AW60 Series. Some interrupt sources from peripheral modules are discussed in greater

detail within other chapters of this data manual. This chapter gathers basic information about all reset and

interrupt sources in one place for easy reference. A few reset and interrupt sources, including the computer

operating properly (COP) watchdog and real-time interrupt (RTI), are not part of on-chip peripheral

systems with their own sections but are part of the system control logic.

5.2  Features

Reset and interrupt features include:

•    Multiple sources of reset for flexible system configuration and reliable operation:

     — Power-on detection (POR)

     — Low voltage detection (LVD) with enable

     — External RESET pin

     — COP watchdog with enable and two timeout choices

     — Illegal opcode

     — Serial command from a background debug host

•    Reset status register (SRS) to indicate source of most recent reset

•    Separate interrupt vectors for each module (reduces polling overhead) (see Table 5-10)

5.3  MCU Reset

Resetting the MCU provides a way to start processing from a known set of initial conditions. During reset,

most control and status registers are forced to initial values and the program counter is loaded from the

reset vector ($FFFE:$FFFF). On-chip peripheral modules are disabled and I/O pins are initially configured

as general-purpose high-impedance inputs with pullup devices disabled. The I bit in the condition code

register (CCR) is set to block maskable interrupts so the user program has a chance to initialize the stack

pointer (SP) and system control settings. SP is forced to $00FF at reset.

The MC9S08AW60 Series has seven sources for reset:

•    Power-on reset (POR)

•    Low-voltage detect (LVD)

•    Computer operating properly (COP) timer

                                       MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       65
Chapter 5 Resets, Interrupts, and System Configuration

    •   Illegal opcode detect

    •   Background debug forced reset

    •   The reset pin (RESET)

    •   Clock generator loss of lock and loss of clock reset

Each of these sources, with the exception of the background debug forced reset, has an associated bit in

the system reset status register. Whenever the MCU enters reset, the internal clock generator (ICG) module

switches to self-clocked mode with the frequency of fSelf_reset selected. The reset pin is driven low for 34

bus cycles where the internal bus frequency is half the ICG frequency. After the 34 bus cycles are

completed, the pin is released and will be pulled up by the internal pullup resistor, unless it is held low

externally. After the pin is released, it is sampled after another 38 bus cycles to determine whether the reset

pin is the cause of the MCU reset.

5.4     Computer Operating Properly (COP) Watchdog

The COP watchdog is intended to force a system reset when the application software fails to execute as

expected. To prevent a system reset from the COP timer (when it is enabled), application software must

reset the COP timer periodically. If the application program gets lost and fails to reset the COP before it

times out, a system reset is generated to force the system back to a known starting point. The COP

watchdog is enabled by the COPE bit in SOPT (see Section 5.9.4, “System Options Register (SOPT)” for

additional information). The COP timer is reset by writing any value to the address of SRS. This write does

not affect the data in the read-only SRS. Instead, the act of writing to this address is decoded and sends a

reset signal to the COP timer.

After any reset, the COP timer is enabled. This provides a reliable way to detect code that is not executing

as intended. If the COP watchdog is not used in an application, it can be disabled by clearing the COPE

bit in the write-once SOPT register. Also, the COPT bit can be used to choose one of two timeout periods

(218 or 213 cycles of the bus rate clock). Even if the application will use the reset default settings in COPE

and COPT, the user should write to write-once SOPT during reset initialization to lock in the settings. That

way, they cannot be changed accidentally if the application program gets lost.

The write to SRS that services (clears) the COP timer should not be placed in an interrupt service routine

(ISR) because the ISR could continue to be executed periodically even if the main application program

fails.

When the MCU is in active background mode, the COP timer is temporarily disabled.

5.5     Interrupts

Interrupts provide a way to save the current CPU status and registers, execute an interrupt service routine

(ISR), and then restore the CPU status so processing resumes where it left off before the interrupt. Other

than the software interrupt (SWI), which is a program instruction, interrupts are caused by hardware events

such as an edge on the IRQ pin or a timer-overflow event. The debug module can also generate an SWI

under certain circumstances.

If an event occurs in an enabled interrupt source, an associated read-only status flag will become set. The

CPU will not respond until and unless the local interrupt enable is a logic 1 to enable the interrupt. The

                                       MC9S08AW60 Data Sheet, Rev 2

66                                                                                 Freescale Semiconductor
                                                                 Chapter 5 Resets, Interrupts, and System Configuration

I bit in the CCR is 0 to allow interrupts. The global interrupt mask (I bit) in the CCR is initially set after

reset which masks (prevents) all maskable interrupt sources. The user program initializes the stack pointer

and performs other system setup before clearing the I bit to allow the CPU to respond to interrupts.

When the CPU receives a qualified interrupt request, it completes the current instruction before responding

to the interrupt. The interrupt sequence obeys the same cycle-by-cycle sequence as the SWI instruction and

consists of:

•       Saving the CPU registers on the stack

•       Setting the I bit in the CCR to mask further interrupts

•       Fetching the interrupt vector for the highest-priority interrupt that is currently pending

•       Filling the instruction queue with the first three bytes of program information starting from the

        address fetched from the interrupt vector locations

While the CPU is responding to the interrupt, the I bit is automatically set to avoid the possibility of another

interrupt interrupting the ISR itself (this is called nesting of interrupts). Normally, the I bit is restored to 0

when the CCR is restored from the value stacked on entry to the ISR. In rare cases, the I bit may be cleared

inside an ISR (after clearing the status flag that generated the interrupt) so that other interrupts can be

serviced without waiting for the first service routine to finish. This practice is not recommended for anyone

other than the most experienced programmers because it can lead to subtle program errors that are difficult

to debug.

The interrupt service routine ends with a return-from-interrupt (RTI) instruction which restores the CCR,

A, X, and PC registers to their pre-interrupt values by reading the previously saved information off the

stack.

                                               NOTE

              For compatibility with the M68HC08, the H register is not automatically

              saved and restored. It is good programming practice to push H onto the stack

              at the start of the interrupt service routine (ISR) and restore it immediately

              before the RTI that is used to return from the ISR.

When two or more interrupts are pending when the I bit is cleared, the highest priority source is serviced

first (see Table 5-1).

5.5.1         Interrupt Stack Frame

Figure 5-1 shows the contents and organization of a stack frame. Before the interrupt, the stack pointer

(SP) points at the next available byte location on the stack. The current values of CPU registers are stored

on the stack starting with the low-order byte of the program counter (PCL) and ending with the CCR. After

stacking, the SP points at the next available location on the stack which is the address that is one less than

the address where the CCR was saved. The PC value that is stacked is the address of the instruction in the

main program that would have executed next if the interrupt had not occurred.

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                 67
Chapter  5  Resets,  Interrupts,  and System Configuration

                                  UNSTACKING               TOWARD LOWER         ADDRESSES

                                     ORDER

                                            7                                0

                                                                                                             SP AFTER

                                                                                                             INTERRUPT STACKING

                                  5      1     CONDITION CODE REGISTER

                                  4      2     ACCUMULATOR

                                  3      3     INDEX REGISTER (LOW BYTE X)*

                                  2      4     PROGRAM COUNTER HIGH

                                  1      5     PROGRAM COUNTER LOW                                           SP BEFORE

                                                                                                             THE INTERRUPT

                                  STACKING                 TOWARD HIGHER ADDRESSES

                                  ORDER

                                            * High byte (H) of index register is not automatically stacked.

                                               Figure 5-1. Interrupt Stack Frame

When an RTI instruction is executed, these values are recovered from the stack in reverse order. As part of

the RTI sequence, the CPU fills the instruction pipeline by reading three bytes of program information,

starting from the PC address recovered from the stack.

The status flag causing the interrupt must be acknowledged (cleared) before returning from the ISR.

Typically, the flag should be cleared at the beginning of the ISR so that if another interrupt is generated by

this same source, it will be registered so it can be serviced after completion of the current ISR.

5.5.2       External Interrupt Request (IRQ) Pin

External interrupts are managed by the IRQSC status and control register. When the IRQ function is

enabled, synchronous logic monitors the pin for edge-only or edge-and-level events. When the MCU is in

stop mode and system clocks are shut down, a separate asynchronous path is used so the IRQ (if enabled)

can wake the MCU.

5.5.2.1     Pin Configuration Options

The IRQ pin enable (IRQPE) control bit in the IRQSC register must be 1 in order for the IRQ pin to act as

the interrupt request (IRQ) input. As an IRQ input, the user can choose the polarity of edges or levels

detected (IRQEDG), whether the pin detects edges-only or edges and levels (IRQMOD), and whether an

event causes an interrupt or only sets the IRQF flag which can be polled by software.

When the IRQ pin is configured to detect rising edges, an optional pulldown resistor is available rather than

a pullup resistor. BIH and BIL instructions may be used to detect the level on the IRQ pin when the pin is

configured to act as the IRQ input.

                                               MC9S08AW60 Data Sheet, Rev 2

68                                                                                                                               Freescale Semiconductor
                                                             Chapter 5 Resets, Interrupts, and System Configuration

                                                       NOTE

         The voltage measured on the pulled up IRQ pin may be as low as

         VDD – 0.7 V. The internal gates connected to this pin are pulled all the way

         to VDD. All other pins with enabled pullup resistors will have an unloaded

         measurement of VDD.

5.5.2.2  Edge and Level Sensitivity

The IRQMOD control bit reconfigures the detection logic so it detects edge events and pin levels. In this

edge detection mode, the IRQF status flag becomes set when an edge is detected (when the IRQ pin

changes from the deasserted to the asserted level), but the flag is continuously set (and cannot be cleared)

as long as the IRQ pin remains at the asserted level.

5.5.3    Interrupt Vectors, Sources, and Local Masks

Table 5-1 provides a summary of all interrupt sources. Higher-priority sources are located toward the

bottom of the table. The high-order byte of the address for the interrupt service routine is located at the

first address in the vector address column, and the low-order byte of the address for the interrupt service

routine is located at the next higher address.

When an interrupt condition occurs, an associated flag bit becomes set. If the associated local interrupt

enable is 1, an interrupt request is sent to the CPU. Within the CPU, if the global interrupt mask (I bit in

the CCR) is 0, the CPU will finish the current instruction, stack the PCL, PCH, X, A, and CCR CPU

registers, set the I bit, and then fetch the interrupt vector for the highest priority pending interrupt.

Processing then continues in the interrupt service routine.

                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                             69
Chapter 5 Resets, Interrupts, and System Configuration

                                Table 5-1.                Vector   Summary

Vector     Vector   Address     Vector Name               Module   Source          Enable        Description

Priority   Number   (High/Low)

    Lower  26       $FFC0/FFC1                                     Unused Vector Space

           through  through                                        (available for user program)

           31       $FFCA/FFCB

           25       $FFCC/FFCD  Vrti                      System   RTIF            RTIE          Real-time interrupt

                                                          control

           24       $FFCE/FFCF  Viic1                     IIC1     IICIF           IICIE         IIC1

           23       $FFD0/FFD1  Vadc1                     ADC1     COCO            AIEN          ADC1

           22       $FFD2/FFD3  Vkeyboard              1  KBI1     KBF             KBIE          KBI1 pins

           21       $FFD4/FFD5  Vsci2tx                   SCI2     TDRE            TIE           SCI2 transmit

                                                                   TC              TCIE

           20       $FFD6/FFD7  Vsci2rx                   SCI2     IDLE            ILIE          SCI2 receive

                                                                   RDRF            RIE

           19       $FFD8/FFD9  Vsci2err                  SCI2     OR              ORIE          SCI2 error

                                                                   NF              NFIE

                                                                   FE              FEIE

                                                                   PF              PFIE

           18       $FFDA/FFDB  Vsci1tx                   SCI1     TDRE            TIE           SCI1 transmit

                                                                   TC              TCIE

           17       $FFDC/FFDD  Vsci1rx                   SCI1     IDLE            ILIE          SCI1 receive

                                                                   RDRF            RIE

           16       $FFDE/FFDF  Vsci1err                  SCI1     OR              ORIE          SCI1 error

                                                                   NF              NFIE

                                                                   FE              FEIE

                                                                   PF              PFIE

           15       $FFE0/FFE1  Vspi1                     SPI1     SPIF            SPIE          SPI1

                                                                   MODF            SPIE

                                                                   SPTEF           SPTIE

           14       $FFE2/FFE3  Vtpm2ovf                  TPM2     TOF             TOIE          TPM2 overflow

           13       $FFE4/FFE5  Vtpm2ch1                  TPM2     CH1F            CH1IE         TPM2 channel 1

           12       $FFE6/FFE7  Vtpm2ch0                  TPM2     CH0F            CH0IE         TPM2 channel 0

           11       $FFE8/FFE9  Vtpm1ovf                  TPM1     TOF             TOIE          TPM1 overflow

           10       $FFEA/FFEB  Vtpm1ch5                  TPM1     CH5F            CH5IE         TPM1 channel 5

           9        $FFEC/FFED  Vtpm1ch4                  TPM1     CH4F            CH4IE         TPM1 channel 4

           8        $FFEE/FFEF  Vtpm1ch3                  TPM1     CH3F            CH3IE         TPM1 channel 3

           7        $FFF0/FFF1  Vtpm1ch2                  TPM1     CH2F            CH2IE         TPM1 channel 2

           6        $FFF2/FFF3  Vtpm1ch1                  TPM1     CH1F            CH1IE         TPM1 channel 1

           5        $FFF4/FFF5  Vtpm1ch0                  TPM1     CH0F            CH0IE         TPM1 channel 0

           4        $FFF6/FFF7  Vicg                      ICG      ICGIF           LOLRE/LOCRE   ICG

                                                                   (LOLS/LOCS)

           3        $FFF8/FFF9  Vlvd                      System   LVDF            LVDIE         Low-voltage detect

                                                          control

           2        $FFFA/FFFB  Virq                      IRQ      IRQF            IRQIE         IRQ pin

           1        $FFFC/FFFD  Vswi                      Core     SWI             —             Software interrupt

                                                                   Instruction

           0        $FFFE/FFFF  Vreset                    System   COP             COPE          Watchdog timer

                                                          control  LVD             LVDRE         Low-voltage detect

Higher                                                             RESET pin       —             External pin

                                                                   Illegal opcode  —             Illegal opcode

                                MC9S08AW60 Data Sheet, Rev 2

70                                                                                               Freescale Semiconductor
                                                            Chapter 5 Resets, Interrupts, and System Configuration

5.6    Low-Voltage Detect (LVD) System

The MC9S08AW60 Series includes a system to protect against low voltage conditions in order to protect

memory contents and control MCU system states during supply voltage variations. The system is

comprised of a power-on reset (POR) circuit and an LVD circuit with a user selectable trip voltage, either

high (VLVDH) or low (VLVDL). The LVD circuit is enabled when LVDE in SPMSC1 is high and the trip

voltage is selected by LVDV in SPMSC2. The LVD is disabled upon entering any of the stop modes unless

the LVDSE bit is set. If LVDSE and LVDE are both set, then the MCU cannot enter stop2, and the current

consumption in stop3 with the LVD enabled will be greater.

5.6.1  Power-On Reset Operation

When power is initially applied to the MCU, or when the supply voltage drops below the VPOR level, the

POR circuit will cause a reset condition. As the supply voltage rises, the LVD circuit will hold the chip in

reset until the supply has risen above the VLVDL level. Both the POR bit and the LVD bit in SRS are set

following a POR.

5.6.2  LVD Reset Operation

The LVD can be configured to generate a reset upon detection of a low voltage condition by setting

LVDRE to 1. After an LVD reset has occurred, the LVD system will hold the MCU in reset until the supply

voltage has risen above the level determined by LVDV. The LVD bit in the SRS register is set following

either an LVD reset or POR.

5.6.3  LVD Interrupt Operation

When a low voltage condition is detected and the LVD circuit is configured for interrupt operation (LVDE

set, LVDIE set, and LVDRE clear), then LVDF will be set and an LVD interrupt will occur.

5.6.4  Low-Voltage Warning (LVW)

The LVD system has a low voltage warning flag to indicate to the user that the supply voltage is

approaching, the LVD voltage. The LVW does not have an interrupt associated with it. There are two user

selectable trip voltages for the LVW, one high (VLVWH) and one low (VLVWL). The trip voltage is selected

by LVWV in SPMSC2. Setting the LVW trip voltage equal to the LVD trip voltage is not recommended.

Typical use of the LVW would be to select VLVWH and VLVDL.

5.7    Real-Time Interrupt (RTI)

The real-time interrupt function can be used to generate periodic interrupts. The RTI can accept two

sources of clocks, the 1-kHz internal clock or an external clock if available. The 1-kHz internal clock

source is completely independent of any bus clock source and is used only by the RTI module and, on some

MCUs, the COP watchdog. To use an external clock source, it must be available and active. The RTICLKS

bit in SRTISC is used to select the RTI clock source.

                             MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                            71
Chapter 5 Resets, Interrupts, and System Configuration

Either RTI clock source can be used when the MCU is in run, wait or stop3 mode. When using the external

oscillator in stop3, it must be enabled in stop (OSCSTEN = 1) and configured for low bandwidth operation

(RANGE = 0). Only the internal 1-kHz clock source can be selected to wake the MCU from stop2 mode.

The SRTISC register includes a read-only status flag, a write-only acknowledge bit, and a 3-bit control

value (RTIS2:RTIS1:RTIS0) used to disable the clock source to the real-time interrupt or select one of

seven wakeup periods. The RTI has a local interrupt enable, RTIE, to allow masking of the real-time

interrupt. The RTI can be disabled by writing each bit of RTIS to zeroes, and no interrupts will be

generated. See Section 5.9.7, “System Real-Time Interrupt Status and Control Register (SRTISC),” for

detailed information about this register.

5.8         MCLK Output

The PTC2 pin is shared with the MCLK clock output. Setting the pin enable bit, MPE, causes the PTC2

pin to output a divided version of the internal MCU bus clock. The divide ratio is determined by the

MCSEL bits. When MPE is set, the PTC2 pin is forced to operate as an output pin regardless of the state

of the port data direction control bit for the pin. If the MCSEL bits are all 0s, the pin is driven low. The

slew rate and drive strength for the pin are controlled by PTCSE2 and PTCDS2, respectively. The

maximum clock output frequency is limited if slew rate control is enabled, see Appendix A, “Electrical

Characteristics and Timing Specifications,” for pin rise and fall times with slew rate enabled.

5.9         Reset, Interrupt, and System Control Registers and Control Bits

One 8-bit register in the direct page register space and eight 8-bit registers in the high-page register space

are related to reset and interrupt systems.

Refer to the direct-page register summary in Chapter 4, “Memory,” of this data sheet for the absolute

address assignments for all registers. This section refers to registers and control bits only by their names.

A Freescale-provided equate or header file is used to translate these names into the appropriate absolute

addresses.

Some control bits in the SOPT and SPMSC2 registers are related to modes of operation. Although brief

descriptions of these bits are provided here, the related functions are discussed in greater detail in

Chapter 3, “Modes of Operation.”

                                           MC9S08AW60 Data Sheet, Rev 2

72                                                                       Freescale Semiconductor
                                                                          Chapter 5 Resets, Interrupts, and System Configuration

5.9.1     Interrupt Pin Request Status and Control Register (IRQSC)

This direct page register includes two unimplemented bits which always read 0, four read/write bits, one

read-only status bit, and one write-only bit. These bits are used to configure the IRQ function, report status,

and acknowledge IRQ events.

             7           6                     5      4                   3     2                       1                   0

       R  0              0                                                IRQF  0

                                     IRQEDG           IRQPE                                      IRQIE              IRQMOD

W                                                                               IRQACK

Reset     0              0                     0      0                   0     0                       0                   0

                         = Unimplemented or Reserved

                Figure 5-2. Interrupt Request Status and Control Register (IRQSC)

                                 Table 5-2. IRQSC Register Field Descriptions

Field                                                             Description

5         Interrupt Request (IRQ) Edge Select — This read/write control bit is used to select the polarity of edges or

IRQEDG    levels on the IRQ pin that cause IRQF to be set. The IRQMOD control bit determines whether the IRQ pin is

          sensitive to both edges and levels or only edges. When the IRQ pin is enabled as the IRQ input and is configured

          to detect rising edges, the optional pullup resistor is re-configured as an optional pulldown resistor.

          0     IRQ is falling edge or falling edge/low-level sensitive.

          1     IRQ is rising edge or rising edge/high-level sensitive.

4         IRQ Pin Enable — This read/write control bit enables the IRQ pin function. When this bit is set the IRQ pin can

IRQPE     be used as an interrupt request. Also, when this bit is set, either an internal pull-up or an internal pull-down

          resistor is enabled depending on the state of the IRQEDG bit.

          0     IRQ pin function is disabled.

          1     IRQ pin function is enabled.

3         IRQ Flag — This read-only status bit indicates when an interrupt request event has occurred.

IRQF      0     No IRQ request.

          1     IRQ event detected.

2         IRQ Acknowledge — This write-only bit is used to acknowledge interrupt request events (write 1 to clear IRQF).

IRQACK    Writing 0 has no meaning or effect. Reads always return logic 0. If edge-and-level detection is selected

          (IRQMOD = 1), IRQF cannot be cleared while the IRQ pin remains at its asserted level.

1         IRQ Interrupt Enable — This read/write control bit determines whether IRQ events generate a hardware

IRQIE     interrupt request.

          0     Hardware interrupt requests from IRQF disabled (use polling).

          1     Hardware interrupt requested whenever IRQF = 1.

0         IRQ Detection Mode — This read/write control bit selects either edge-only detection or edge-and-level

IRQMOD    detection. The IRQEDG control bit determines the polarity of edges and levels that are detected as interrupt

          request events. See Section 5.5.2.2, “Edge and Level Sensitivity” for more details.

          0     IRQ event on falling edges or rising edges only.

          1     IRQ event on falling edges and low levels or on rising edges and high levels.

                                               MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                          73
Chapter 5 Resets, Interrupts, and System Configuration

5.9.2            System Reset Status Register (SRS)

This register includes seven read-only status flags to indicate the source of the most recent reset. When a

debug host forces reset by writing 1 to BDFR in the SBDFR register, none of the status bits in SRS will be

set. Writing any value to this register address clears the COP watchdog timer without affecting the contents

of this register. The reset state of these bits depends on what caused the MCU to reset.

                       7            6               5              4     3               2                   1    0

       R            POR             PIN             COP            ILOP  0               ICG                 LVD  0

    W                                      Writing any value to SIMRS address clears COP watchdog timer.

    POR             1               0               0              0     0               0                   1    0

    LVR:            U               0               0              0     0               0                   1    0

   Any other        0               (1)             (1)            (1)   0               (1)                 0    0

    reset:

              U  =  Unaffected  by  reset

1  Any of these reset sources that are active at the time of reset will cause the corresponding bit(s) to be set; bits corresponding

   to sources that are not active at the time of reset will be cleared.

                                             Figure 5-3. System Reset Status (SRS)

                                             Table 5-3. SRS Register Field Descriptions

    Field                                                                Description

    7               Power-On Reset — Reset was caused by the power-on detection logic. Because the internal supply voltage was

    POR             ramping up at the time, the low-voltage reset (LVR) status bit is also set to indicate that the reset occurred while

                    the internal supply was below the LVR threshold.

                    0     Reset not caused by POR.

                    1     POR caused reset.

    6               External Reset Pin — Reset was caused by an active-low level on the external reset pin.

    PIN             0     Reset not caused by external reset pin.

                    1     Reset came from external reset pin.

    5               Computer Operating Properly (COP) Watchdog — Reset was caused by the COP watchdog timer timing out.

    COP             This reset source may be blocked by COPE = 0.

                    0     Reset not caused by COP timeout.

                    1     Reset caused by COP timeout.

    4               Illegal Opcode — Reset was caused by an attempt to execute an unimplemented or illegal opcode. The STOP

    ILOP            instruction is considered illegal if stop is disabled by STOPE = 0 in the SOPT register. The BGND instruction is

                    considered illegal if active background mode is disabled by ENBDM = 0 in the BDCSC register.

                    0     Reset not caused by an illegal opcode.

                    1     Reset caused by an illegal opcode.

                                                    MC9S08AW60 Data Sheet, Rev 2

74                                                                                                           Freescale Semiconductor
                                                                 Chapter 5 Resets, Interrupts, and System Configuration

                         Table 5-3. SRS Register Field Descriptions (continued)

   Field                                                         Description

   2      Internal Clock Generation Module Reset — Reset was caused by an ICG module reset.

   ICG    0     Reset not caused by ICG module.

          1     Reset caused by ICG module.

   1      Low Voltage Detect — If the LVDRE and LVDSE bits are set and the supply drops below the LVD trip voltage,

   LVD    an LVD reset will occur. This bit is also set by POR.

          0     Reset not caused by LVD trip or POR.

          1     Reset caused by LVD trip or POR.

5.9.3     System Background Debug Force Reset Register (SBDFR)

This register contains a single write-only control bit. A serial background command such as

WRITE_BYTE must be used to write to SBDFR. Attempts to write this register from a user program are

ignored. Reads always return $00.

             7           6         5                  4          3                          2  1        0

       R  0              0         0                  0          0                          0  0        0

   W                                                                                                BDFR1

   Reset  0              0         0                  0          0                          0  0        0

                         = Unimplemented or Reserved

1  BDFR is writable only through serial background debug commands, not from user programs.

                Figure 5-4. System Background Debug Force Reset Register (SBDFR)

                            Table 5-4. SBDFR Register Field Descriptions

   Field                                                         Description

   0      Background Debug Force Reset — A serial background command such as WRITE_BYTE may be used to

   BDFR   allow an external debug host to force a target system reset. Writing logic 1 to this bit forces an MCU reset. This

          bit cannot be written from a user program.

5.9.4     System Options Register (SOPT)

This register may be read at any time. Bits 3 and 2 are unimplemented and always read 0. This is a

write-once register so only the first write after reset is honored. Any subsequent attempt to write to SOPT

(intentionally or unintentionally) is ignored to avoid accidental changes to these sensitive settings. SOPT

should be written during the user’s reset initialization program to set the desired controls even if the desired

settings are the same as the reset settings.

                                   MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                       75
Chapter 5 Resets, Interrupts, and System Configuration

              7  6                      5              4                3              2  1                              0

       R                                                                0              0

           COPE  COPT                   STOPE

    W

    Reset  1     1                      0              1                0              0  1                              1

                 = Unimplemented or Reserved

                       Figure 5-5.                     System Options Register (SOPT)

                                     Table 5-5. SOPT Register Field Descriptions

    Field                                                        Description

    7      COP Watchdog Enable — This write-once bit defaults to 1 after reset.

    COPE   0     COP watchdog timer disabled.

           1     COP watchdog timer enabled (force reset on timeout).

    6      COP Watchdog Timeout — This write-once bit defaults to 1 after reset.

    COPT   0     Short timeout period selected (213 cycles of BUSCLK).

           1     Long timeout period selected (218 cycles of BUSCLK).

    5      Stop Mode Enable — This write-once bit defaults to 0 after reset, which     disables stop mode. If   stop mode   is

    STOPE  disabled and a user program attempts to execute a STOP instruction, an      illegal opcode reset is  forced.

           0     Stop mode disabled.

           1     Stop mode enabled.

5.9.5      System MCLK Control Register (SMCLK)

This register is used to control the MCLK clock output.

              7  6                      5              4                3              2  1                              0

       R   0     0                      0                               0

                                                       MPE                                MCSEL

    W

    Reset  0     0                      0              0                0              0  0                              0

                 = Unimplemented or Reserved

                 Figure 5-6.            System MCLK Control Register (SMCLK)

                       Table 5-6. SMCLK Register Field Descriptions

    Field                                                        Description

    4      MCLK Pin Enable — This bit is used to enable the MCLK function.

    MPE    0     MCLK output disabled.

           1     MCLK output enabled on PTC2 pin.

    2:0    MCLK Divide Select — These bits are used to select the divide ratio for the MCLK output according to the

    MCSEL  formula below when the MCSEL bits are not equal to all zeroes. In the case that the MCSEL bits are all zero and

           MPE is set, the pin is driven low. See Equation 5-1.

                 MCLK frequency = Bus Clock frequency ÷ (2 * MCSEL)                                                  Eqn. 5-1

                                        MC9S08AW60 Data Sheet, Rev 2

76                                                                                        Freescale Semiconductor
                                                           Chapter 5 Resets, Interrupts, and System Configuration

5.9.6     System Device Identification Register (SDIDH, SDIDL)

This read-only register is included so host development systems can identify the HCS08 derivative. This

allows the development software to recognize where specific memory blocks, registers, and control bits

are located in a target MCU.

          7              6    5                       4    3                2                1                     0

       R                                                   ID11             ID10             ID9                   ID8

W

Reset     —              —    —                       —    0                0                0                     0

                         = Unimplemented or Reserved

                         Figure 5-7. System Device Identification Register — High (SDIDH)

                              Table 5-7. SDIDH Register Field Descriptions

Field                                                      Description

7:4       Bits 7:4 are reserved. Reading these bits will result in an indeterminate value; writes have no effect.

Reserved

3:0       Part Identification Number — Each derivative in the HCS08 family has a unique identification number. The

ID[11:8]  MC9S08AW60 Series is hard coded to the value $008. See also ID bits in Table 5-8.

          7              6    5                       4    3                2                1                     0

       R  ID7            ID6  ID5                     ID4  ID3              ID2              ID1                   ID0

W

Reset     0              0    0                       0    1                0                0                     0

                         = Unimplemented or Reserved

                         Figure 5-8. System Device Identification Register — Low (SDIDL)

                              Table 5-8. SDIDL Register Field Descriptions

Field                                                      Description

7:0       Part Identification Number — Each derivative in the HCS08 family has a unique identification  number. The

ID[7:0]   MC9S08AW60 Series is hard coded to the value $008. See also ID bits in Table 5-7.

                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                 77
Chapter 5 Resets, Interrupts, and System Configuration

5.9.7          System Real-Time Interrupt Status and Control Register (SRTISC)

This register contains one read-only status flag, one write-only acknowledge bit, three read/write delay

selects, and three unimplemented bits, which always read 0.

                   7      6                           5           4                3          2           1                      0

       R       RTIF       0                                                        0

                                  RTICLKS                         RTIE                        RTIS2       RTIS1               RTIS0

    W                     RTIACK

    Reset          0      0                          0            0                0          0           0                      0

                          = Unimplemented or Reserved

                          Figure 5-9. System RTI Status and Control Register (SRTISC)

                                  Table 5-9. SRTISC Register Field Descriptions

    Field                                                               Description

    7          Real-Time Interrupt Flag — This read-only status bit indicates the periodic wakeup timer has timed out.

    RTIF       0      Periodic wakeup timer not timed out.

               1      Periodic wakeup timer timed out.

    6          Real-Time Interrupt Acknowledge — This write-only bit is used to acknowledge real-time interrupt request

    RTIACK     (write 1 to clear RTIF). Writing 0 has no meaning or effect. Reads always return logic 0.

    5          Real-Time Interrupt Clock Select — This read/write bit selects the clock source for the real-time interrupt.

    RTICLKS    0      Real-time interrupt request clock source is internal 1-kHz oscillator.

               1      Real-time interrupt request clock source is external clock.

    4          Real-Time Interrupt Enable — This read-write bit enables real-time interrupts.

    RTIE       0      Real-time interrupts disabled.

               1      Real-time interrupts enabled.

    2:0        Real-Time Interrupt Delay Selects — These read/write bits select the wakeup delay for the RTI. The clock

    RTIS[2:0]  source for the real-time interrupt is a self-clocked source which oscillates at about 1 kHz, is independent of other

               MCU clock sources. Using external clock source the delays will be crystal frequency divided by value in

               RTIS2:RTIS1:RTIS0. See Table 5-10.

                                  Table 5-10. Real-Time Interrupt Frequency

    RTIS2:RTIS1:RTIS0             1-kHz Clock Source Delay1                                   Using External Clock Source Delay

                                                                                                 (Crystal Frequency)

            0:0:0                 Disable periodic wakeup timer                               Disable periodic wakeup  timer

            0:0:1                                        8 ms                                        divide by 256

            0:1:0                                        32 ms                                       divide by 1024

            0:1:1                                        64 ms                                       divide by 2048

            1:0:0                                        128 ms                                      divide by 4096

            1:0:1                                        256 ms                                      divide by 8192

            1:1:0                                        512 ms                                      divide by 16384

            1:1:1                                        1.024 s                                     divide by 32768

1   Normal values are shown in this column based on fRTI = 1 kHz. See   Appendix      A, “Electrical Characteristics and Timing

    Specifications,” fRTI  for the tolerance on these values.

                                                      MC9S08AW60 Data Sheet, Rev 2

78                                                                                                        Freescale Semiconductor
                                                                        Chapter 5 Resets, Interrupts, and System Configuration

5.9.8      System Power Management Status and Control 1 Register (SPMSC1)

              7          6                  5                 4                       3  2        1  1               0

       R   LVDF          0                                    LVDRE(2)  LVDSE(2)         LVDE(2)

                                            LVDIE                                                                   BGBE

   W                     LVDACK

   Reset   0             0                  0                 1         1                1        0                  0

                         = Unimplemented or Reserved

1  Bit 1 is a reserved bit that must always be written to 0.

2  This bit can be written only one time after reset. Additional writes are ignored.

           Figure 5-10. System Power Management Status and Control 1 Register (SPMSC1)

                            Table 5-11. SPMSC1 Register Field Descriptions

   Field                                                         Description

   7       Low-Voltage Detect Flag — Provided LVDE = 1, this read-only status bit indicates a low-voltage detect event.

   LVDF

   6       Low-Voltage Detect Acknowledge — This write-only bit is used to acknowledge low voltage detection errors

   LVDACK  (write 1 to clear LVDF). Reads always return 0.

   5       Low-Voltage Detect Interrupt Enable — This read/write bit enables hardware interrupt requests for LVDF.

   LVDIE   0     Hardware interrupt disabled (use polling).

           1     Request a hardware interrupt when LVDF = 1.

   4       Low-Voltage Detect Reset Enable — This read/write bit enables LVDF events to generate a hardware reset

   LVDRE   (provided LVDE = 1).

           0     LVDF does not generate hardware resets.

           1     Force an MCU reset when LVDF = 1.

   3       Low-Voltage Detect Stop Enable — Provided LVDE = 1, this read/write bit determines whether the low-voltage

   LVDSE   detect function operates when the MCU is in stop mode.

           0     Low-voltage detect disabled during stop mode.

           1     Low-voltage detect enabled during stop mode.

   2       Low-Voltage Detect Enable — This read/write bit enables low-voltage detect logic and qualifies the operation

   LVDE    of other bits in this register.

           0     LVD logic disabled.

           1     LVD logic enabled.

   0       Bandgap Buffer Enable — The BGBE bit is used to enable an internal buffer for the bandgap voltage reference

   BGBE    for use by the ADC module on one of its internal channels.

           0     Bandgap buffer disabled.

           1     Bandgap buffer enabled.

                                            MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                        79
Chapter 5 Resets, Interrupts, and System Configuration

5.9.9         System Power Management Status and Control 2 Register (SPMSC2)

This register is used to report the status of the low voltage warning function, and to configure the stop mode

behavior of the MCU.

                 7     6                      5               4     3                  2                   1                      0

       R      LVWF     0                                            PPDF               0                          PPDC1

                                              LVDV            LVWV

    W                  LVWACK                                                          PPDACK

   Power-on   0(2)     0                      0               0     0                  0                   0                      0

    reset:

    LVD       0(2)     0                      U               U     0                  0                   0                      0

    reset:

   Any other  0(2)     0                      U               U     0                  0                   0                      0

    reset:

                    =  Unimplemented          or Reserved                              U = Unaffected  by  reset

1   This bit can be written only one time after reset. Additional writes are ignored.

2   LVWF will be set in the case when VSupply transitions below the trip point or after reset and VSupply is already below VLVW.

              Figure 5-11. System Power Management Status and Control 2 Register (SPMSC2)

                          Table 5-12. SPMSC2 Register Field Descriptions

    Field                                                           Description

    7         Low-Voltage Warning Flag — The LVWF bit indicates the low voltage warning status.

    LVWF      0     Low voltage warning not present.

              1     Low voltage warning is present or was present.

    6         Low-Voltage Warning Acknowledge — The LVWACK bit is the low-voltage warning acknowledge.

    LVWACK    Writing a 1 to LVWACK clears LVWF to a 0 if a low voltage warning is not present.

    5         Low-Voltage Detect Voltage Select — The LVDV bit selects the LVD trip point voltage (VLVD).

    LVDV      0     Low trip point selected (VLVD = VLVDL).

              1     High trip point selected (VLVD = VLVDH).

    4         Low-Voltage Warning Voltage Select — The LVWV bit selects the LVW trip point voltage (VLVW).

    LVWV      0     Low trip point selected (VLVW = VLVWL).

              1     High trip point selected (VLVW = VLVWH).

    3         Partial Power Down Flag — The PPDF bit indicates that the MCU has exited the stop2 mode.

    PPDF      0     Not stop2 mode recovery.

              1     Stop2 mode recovery.

    2         Partial Power Down Acknowledge — Writing a 1 to PPDACK clears the PPDF bit.

    PPDACK

    0         Partial Power Down Control — The write-once PPDC bit controls whether stop2 or stop3 mode is selected.

    PPDC      0     Stop3 mode enabled.

              1     Stop2, partial power down, mode enabled.

                                              MC9S08AW60 Data Sheet, Rev 2

80                                                                                                     Freescale Semiconductor
Chapter 6

Parallel Input/Output

6.1             Introduction

This chapter explains software controls related to parallel input/output (I/O). The MC9S08AW60 has

seven I/O ports which include a total of 54 general-purpose I/O pins. See Chapter 2, “Pins and

Connections” for more information about the logic and hardware aspects of these pins.

Many of these pins are shared with on-chip peripherals such as timer systems, communication systems, or

keyboard interrupts. When these other modules are not controlling the port pins, they revert to

general-purpose I/O control.

Pins that are not used in the application must be terminated. This prevents excess current caused by floating

inputs and enhances immunity during noise or transient events. Termination methods include:

      •  Configuring unused pins as outputs driving high or low

      •  Configuring unused pins as inputs and using internal or external pullups

Never connect unused pins to VDD or VSS.

                                        Table 6-1. KBI and Parallel I/O Interaction

         PTxPEn          PTxDDn         KBIPEn            KBEDGn                     Pullup      Pulldown

   (Pull Enable)      (Data Direction)  (KBI Pin Enable)  (KBI Edge Select)

         0                0             0                 x1                         disabled    disabled

         1                0             0                       x                    enabled     disabled

         x                1             0                       x                    disabled    disabled

         1                x             1                       0                    enabled     disabled

         1                x             1                       1                    disabled    enabled

         0                x             1                       x                    disabled    disabled

1  x  =  Don’t  care

6.2             Features

Parallel I/O and Pin Control features, depending on package choice, include:

      •  A total of 54 general-purpose I/O pins in seven ports

      •  Hysteresis input buffers

      •  Software-controlled pullups on each input pin

                                        MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       81
Chapter  6 Parallel Input/Output

    •    Software-controlled slew rate output buffers

    •    Eight port A pins

    •    Eight port B pins shared with ADC1

    •    Seven port C pins shared with SCI2, IIC1, and MCLK

    •    Eight port D pins shared with ADC1, KBI1, and TPM1 and           TPM2  external  clock  inputs

    •    Eight port E pins shared with SCI1, TPM1, and SPI1

    •    Eight port F pins shared with TPM1 and TPM2

    •    Seven port G pins shared with XTAL, EXTAL, and KBI1

6.3      Pin Descriptions

The MC9S08AW60 Series has a total of 54 parallel I/O pins in seven ports (PTA–PTG). Not all pins are

bonded out in all packages. Consult the pin assignment in Chapter 2, “Pins and Connections,” for available

parallel I/O pins. All of these pins are available for general-purpose I/O when they are not used by other

on-chip peripheral systems.

After reset, the shared peripheral functions are disabled so that the pins are controlled by the parallel I/O.

All of the parallel I/O are configured as inputs (PTxDDn = 0). The pin control functions for each pin are

configured as follows: slew rate control enabled (PTxSEn = 1), low drive strength selected (PTxDSn = 0),

and internal pullups disabled (PTxPEn = 0).

The following paragraphs discuss each port and the software controls that determine each pin’s use.

6.3.1          Port A

       Port A                     Bit 7  6      5      4               3        2         1      Bit 0

                     MCU Pin:     PTA7   PTA6   PTA5   PTA4      PTA3           PTA2      PTA1   PTA0

                                         Figure 6-1. Port A Pin Names

Port A pins are general-purpose I/O pins. Parallel I/O function is controlled by the port A data (PTAD) and

data direction (PTADD) registers which are located in page zero register space. The pin control registers,

pullup enable (PTAPE), slew rate control (PTASE), and drive strength select (PTADS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

6.3.2          Port  B

       Port B                     Bit 7  6      5      4               3        2         1      Bit 0

                     MCU Pin:     PTB7/  PTB6/  PTB5/  PTB4/     PTB3/    PTB2/           PTB1/  PTB0/

                                  AD1P7  AD1P6  AD1P5  AD1P4     AD1P3    AD1P2       AD1P1      AD1P0

                                         Figure 6-2. Port B Pin Names

                                         MC9S08AW60 Data Sheet, Rev 2

82                                                                                        Freescale Semiconductor
                                                                                     Chapter 6 Parallel Input/Output

Port B pins are general-purpose I/O pins. Parallel I/O function is controlled by the port B data (PTBD) and

data direction (PTBDD) registers which are located in page zero register space. The pin control registers,

pullup enable (PTBPE), slew rate control (PTBSE), and drive strength select (PTBDS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

Port B general-purpose I/O are shared with the ADC. Any pin enabled as an ADC input will have the

general-purpose I/O function disabled. Refer to Chapter 14, “Analog-to-Digital Converter

(S08ADC10V1)” for more information about using port B as analog inputs.

6.3.3         Port C

Port C                    Bit 7    6        5        3           3       2           1        Bit 0

              MCU Pin:             PTC6     PTC5/    PTC4     PTC3/      PTC2/       PTC1/    PTC0/

                                            RxD2              TxD2       MCLK        SDA1     SCL1

                                   Figure 6-3. Port C Pin Names

Port C pins are general-purpose I/O pins. Parallel I/O function is controlled by the port C data (PTCD) and

data direction (PTCDD) registers which are located in page zero register space. The pin control registers,

pullup enable (PTCPE), slew rate control (PTCSE), and drive strength select (PTCDS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

Port C general-purpose I/O is shared with SCI2, IIC, and MCLK. When any of these shared functions is

enabled, the direction, input or output, is controlled by the shared function and not by the data direction

register of the parallel I/O port. Also, for pins which are configured as outputs by the shared function, the

output data is controlled by the shared function and not by the port data register.

Refer to Chapter 11, “Serial Communications Interface (S08SCIV2)” for more information about using

port C pins as SCI pins.

Refer to Chapter 13, “Inter-Integrated Circuit (S08IICV1)” for more information about using port C pins

as IIC pins.

Refer to Chapter 5, “Resets, Interrupts, and System Configuration” for more information about using

PTC2 as the MCLK pin.

6.3.4         Port D

Port D                    Bit 7    6        5        4           3       2           1        Bit 0

                          PTD7/    PTD6/    PTD5/    PTD4/    PTD3/      PTD2/       PTD1/    PTD0/

              MCU Pin:    AD1P15/  AD1P14/  AD1P13/  AD1P12/  AD1P11/    AD1P10/     AD1P9    AD1P8

                          KBI1P7   TPM1CLK           TPM2CLK  KBI1P6     KBI1P5

                                   Figure 6-4. Port D Pin Names

Port D pins are general-purpose I/O pins. Parallel I/O function is controlled by the port D data (PTDD) and

data direction (PTDDD) registers which are located in page zero register space. The pin control registers,

                                   MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       83
Chapter 6 Parallel Input/Output

pullup enable (PTDPE), slew rate control (PTDSE), and drive strength select (PTDDS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

Port D general-purpose I/O are shared with the ADC, KBI, and TPM1 and TPM2 external clock inputs.

When any of these shared functions is enabled, the direction, input or output, is controlled by the shared

function and not by the data direction register of the parallel I/O port. When a pin is shared with both the

ADC and a digital peripheral function, the ADC has higher priority. For example, in the case that both the

ADC and the KBI are configured to use PTD7 then the pin is controlled by the ADC module.

Refer to Chapter 10, “Timer/PWM (S08TPMV2)” for more information about using port D pins as TPM

external clock inputs.

Refer to Chapter 14, “Analog-to-Digital Converter (S08ADC10V1)” for more information about using

port D pins as analog inputs.

Refer to Chapter 9, “Keyboard Interrupt (S08KBIV1)” for more information about using port D pins as

keyboard inputs.

6.3.5   Port E

Port E                           Bit 7   6      5      4                  3  2                1     Bit 0

               MCU Pin:          PTE7/   PTE6/  PTE5/  PTE4/  PTE3/          PTE2/    PTE1/         PTE0/

                                 SPSCK1  MOSI1  MISO1  SS1    TPM1CH1        TPM1CH0  RxD1          TxD1

                                            Figure 6-5. Port E Pin Names

Port E pins are general-purpose I/O pins. Parallel I/O function is controlled by the port E data (PTED) and

data direction (PTEDD) registers which are located in page zero register space. The pin control registers,

pullup enable (PTEPE), slew rate control (PTESE), and drive strength select (PTEDS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

Port E general-purpose I/O is shared with SCI1, SPI, and TPM1 timer channels. When any of these shared

functions is enabled, the direction, input or output, is controlled by the shared function and not by the data

direction register of the parallel I/O port. Also, for pins which are configured as outputs by the shared

function, the output data is controlled by the shared function and not by the port data register.

Refer to Chapter 11, “Serial Communications Interface (S08SCIV2)” for more information about using

port E pins as SCI pins.

Refer to Chapter 12, “Serial Peripheral Interface (S08SPIV3)” for more information about using port E

pins as SPI pins.

Refer to Chapter 10, “Timer/PWM (S08TPMV2)” for more information about using port E pins as TPM

channel pins.

                                            MC9S08AW60 Data Sheet, Rev 2

84                                                                                    Freescale Semiconductor
                                                                                      Chapter 6 Parallel Input/Output

6.3.6   Port F

Port F                      Bit 7         6      5        4                3     2            1           Bit 0

               MCU Pin:     PTF7          PTF6   PTF5/    PTF4/      PTF3/    PTF2/       PTF1/     PTF0/

                                                 TPM2CH1  TPM2CH0    TPM1CH5  TPM1CH4  TPM1CH3     TPM1CH2

                                             Figure 6-6. Port F Pin Names

Port F pins are general-purpose I/O pins. Parallel I/O function is controlled by the port F data (PTFD) and

data direction (PTFDD) registers which are located in page zero register space. The pin control registers,

pullup enable (PTFPE), slew rate control (PTFSE), and drive strength select (PTFDS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

Port F general-purpose I/O is shared with TPM1 and TPM2 timer channels. When any of these shared

functions is enabled, the direction, input or output, is controlled by the shared function and not by the data

direction register of the parallel I/O port. Also, for pins which are configured as outputs by the shared

function, the output data is controlled by the shared function and not by the port data register.

Refer to Chapter 10, “Timer/PWM (S08TPMV2)” for more information about using port F pins as TPM

channel pins.

6.3.7   Port G

Port G                             Bit 7     6      5     4                3  2        1           Bit 0

                  MCU Pin:                PTG6/  PTG5/    PTG4/      PTG3/    PTG2/    PTG1/       PTG0/

                                          EXTAL  XTAL     KBI1P4     KBI1P3   KBI1P2   KBI1P1      KBI1P0

                                             Figure 6-7. Port G Pin Names

Port G pins are general-purpose I/O pins. Parallel I/O function is controlled by the port G data (PTGD) and

data direction (PTGDD) registers which are located in page zero register space. The pin control registers,

pullup enable (PTGPE), slew rate control (PTGSE), and drive strength select (PTGDS) are located in the

high page registers. Refer to Section 6.4, “Parallel I/O Control” for more information about

general-purpose I/O control and Section 6.5, “Pin Control” for more information about pin control.

Port G general-purpose I/O is shared with KBI, XTAL, and EXTAL. When a pin is enabled as a KBI input,

the pin functions as an input regardless of the state of the associated PTG data direction register bit. When

the external oscillator is enabled, PTG5 and PTG6 function as oscillator pins. In this case the associated

parallel I/O and pin control registers have no control of the pins.

Refer to Chapter 8, “Internal Clock Generator (S08ICGV4)” for more information about using port G pins

as XTAL and EXTAL pins.

Refer to Chapter 9, “Keyboard Interrupt (S08KBIV1)” for more information about using port G pins as

keyboard inputs.

                                             MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                          85
Chapter 6 Parallel Input/Output

6.4   Parallel I/O Control

Reading and writing of parallel I/O is done through the port data registers. The direction, input or output,

is controlled through the port data direction registers. The parallel I/O port function for an individual pin

is illustrated in the block diagram below.

                                 PTxDDn

                                 D  Q                                       Output Enable

                                 PTxDn

                                 D  Q                                       Output Data

                                                 1

      Port Read

      Data

                                                 0  Synchronizer            Input Data

      BUSCLK

                                    Figure 6-8. Parallel I/O Block Diagram

The data direction control bits determine whether the pin output driver is enabled, and they control what

is read for port data register reads. Each port pin has a data direction register bit. When PTxDDn = 0, the

corresponding pin is an input and reads of PTxD return the pin value. When PTxDDn = 1, the

corresponding pin is an output and reads of PTxD return the last value written to the port data register.

When a peripheral module or system function is in control of a port pin, the data direction register bit still

controls what is returned for reads of the port data register, even though the peripheral system has

overriding control of the actual pin direction.

When a shared analog function is enabled for a pin, all digital pin functions are disabled. A read of the port

data register returns a value of 0 for any bits which have shared analog functions enabled. In general,

whenever a pin is shared with both an alternate digital function and an analog function, the analog function

has priority such that if both the digital and analog functions are enabled, the analog function controls the

pin.

It is a good programming practice to write to the port data register before changing the direction of a port

pin to become an output. This ensures that the pin will not be driven momentarily with an old data value

that happened to be in the port data register.

                                    MC9S08AW60 Data Sheet, Rev 2

86                                                                          Freescale Semiconductor
                                                                                   Chapter 6 Parallel Input/Output

6.5    Pin Control

The pin control registers are located in the high page register block of the memory. These registers are used

to control pullups, slew rate, and drive strength for the I/O pins. The pin control registers operate

independently of the parallel I/O registers.

6.5.1  Internal Pullup Enable

An internal pullup device can be enabled for each port pin by setting the corresponding bit in one of the

pullup enable registers (PTxPEn). The pullup device is disabled if the pin is configured as an output by the

parallel I/O control logic or any shared peripheral function regardless of the state of the corresponding

pullup enable register bit. The pullup device is also disabled if the pin is controlled by an analog function.

6.5.2  Output Slew Rate Control Enable

Slew rate control can be enabled for each port pin by setting the corresponding bit in one of the slew rate

control registers (PTxSEn). When enabled, slew control limits the rate at which an output can transition in

order to reduce EMC emissions. Slew rate control has no effect on pins which are configured as inputs.

6.5.3  Output Drive Strength Select

An output pin can be selected to have high output drive strength by setting the corresponding bit in one of

the drive strength select registers (PTxDSn). When high drive is selected a pin is capable of sourcing and

sinking greater current. Even though every I/O pin can be selected as high drive, the user must ensure that

the total current source and sink limits for the chip are not exceeded. Drive strength selection is intended

to affect the DC behavior of I/O pins. However, the AC behavior is also affected. High drive allows a pin

to drive a greater load with the same switching speed as a low drive enabled pin into a smaller load.

Because of this the EMC emissions may be affected by enabling pins as high drive.

                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                         87
Chapter 6 Parallel Input/Output

6.6         Pin Behavior in Stop Modes

Depending on the stop mode, I/O functions differently as the result of executing a STOP instruction. An

explanation of I/O behavior for the various stop modes follows:

    •       Stop2 mode is a partial power-down mode, whereby I/O latches are maintained in their state as

            before the STOP instruction was executed. CPU register status and the state of I/O registers should

            be saved in RAM before the STOP instruction is executed to place the MCU in stop2 mode. Upon

            recovery from stop2 mode, before accessing any I/O, the user should examine the state of the PPDF

            bit in the SPMSC2 register. If the PPDF bit is 0, I/O must be initialized as if a power on reset had

            occurred. If the PPDF bit is 1, I/O data previously stored in RAM, before the STOP instruction was

            executed, peripherals may require being initialized and restored to their pre-stop condition. The

            user must then write a 1 to the PPDACK bit in the SPMSC2 register. Access to I/O is now permitted

            again in the user’s application program.

    •       In stop3 mode, all I/O is maintained because internal logic circuity stays powered up. Upon

            recovery, normal I/O function is available to the user.

6.7         Parallel I/O and Pin Control Registers

This section provides information about the registers associated with the parallel I/O ports and pin control

functions. These parallel I/O registers are located in page zero of the memory map and the pin control

registers are located in the high page register section of memory.

Refer to tables in Chapter 4, “Memory,” for the absolute address assignments for all parallel I/O and pin

control registers. This section refers to registers and control bits only by their names. A Freescale-provided

equate or header file normally is used to translate these names into the appropriate absolute addresses.

6.7.1       Port A I/O Registers (PTAD and PTADD)

Port A parallel I/O function is controlled by the registers listed below.

            7                    6      5             4                    3         2                 1                          0

       R

            PTAD7                PTAD6  PTAD5         PTAD4          PTAD3           PTAD2             PTAD1  PTAD0

       W

    Reset   0                    0      0             0                    0         0                 0                          0

                                        Figure 6-9.  Port A Data Register (PTAD)

                                        Table 6-2. PTAD Register Field Descriptions

    Field                                                    Description

       7:0  Port A Data Register Bits — For port A pins that are inputs, reads return the logic level on the pin. For port A

PTAD[7:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port A pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTAD to all 0s, but these 0s are not driven out the corresponding pins because reset also configures

            all port pins as high-impedance inputs with pullups disabled.

                                        MC9S08AW60 Data Sheet, Rev 2

88                                                                                                     Freescale Semiconductor
                                                                                             Chapter 6 Parallel Input/Output

               7         6             5               4                          3  2                       1        0

       R

            PTADD7       PTADD6  PTADD5                PTADD4        PTADD3          PTADD2            PTADD1         PTADD0

W

Reset       0            0             0               0                          0  0                 0              0

                         Figure 6-10.  Data Direction for Port A Register (PTADD)

                                 Table 6-3. PTADD Register Field Descriptions

Field                                                                Description

7:0         Data Direction for Port A Bits — These read/write bits control the direction of port A pins and     what  is read for

PTADD[7:0]  PTAD reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port A bit n and PTAD reads return the contents of PTADn.

6.7.2       Port A Pin Control Registers (PTAPE, PTASE, PTADS)

In addition to the I/O control, port A pins are controlled by the registers listed below.

               7         6             5               4                          3  2                       1        0

       R

            PTAPE7       PTAPE6  PTAPE5                PTAPE4        PTAPE3          PTAPE2            PTAPE1         PTAPE0

W

Reset       0            0             0               0                          0  0                 0              0

                         Figure 6-11.  Internal Pullup Enable for Port A (PTAPE)

                                 Table 6-4. PTADD Register Field Descriptions

Field                                                                Description

[7:0]       Internal Pullup Enable for Port A Bits — Each of these control bits determines if the internal pullup device is

PTAPE[7:0]  enabled for the associated PTA pin. For port A pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port A bit n.

            1     Internal pullup device enabled for port A bit n.

                                       MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                       89
Chapter 6 Parallel Input/Output

               7                 6    5                        4       3            2       1                  0

    R

            PTASE7      PTASE6        PTASE5                  PTASE4   PTASE3       PTASE2  PTASE1             PTASE0

    W

    Reset   0                    0    0                        0       0            0       0                  0

                        Figure 6-12.  Output Slew Rate Control Enable for Port A (PTASE)

                                    Table 6-5. PTASE Register Field Descriptions

    Field                                                              Description

    7:0     Output Slew Rate Control Enable for Port A Bits — Each of these control bits determine whether output slew

PTASE[7:0]  rate control is enabled for the associated PTA pin. For port A pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port A bit n.

            1     Output slew rate control enabled for port A bit n.

               7                 6    5                        4       3            2       1                  0

    R

            PTADS7      PTADS6        PTADS5                  PTADS4   PTADS3       PTADS2  PTADS1             PTADS0

    W

    Reset   0                    0    0                        0       0            0       0                  0

                        Figure 6-13.  Output Drive Strength Selection for Port A (PTASE)

                                    Table 6-6. PTASE Register Field Descriptions

    Field                                                              Description

    7:0     Output Drive Strength Selection for Port A Bits — Each of these control bits selects between  low  and high

PTADS[7:0]  output drive for the associated PTA pin.

            0     Low output drive enabled for port A bit n.

            1     High output drive enabled for port A bit n.

                                      MC9S08AW60 Data Sheet, Rev 2

90                                                                                          Freescale Semiconductor
                                                                                                       Chapter 6 Parallel Input/Output

6.7.3       Port B I/O Registers (PTBD and PTBDD)

Port B parallel I/O function is controlled by the registers listed below.

               7         6       5                 4                              3  2                       1                    0

       R

            PTBD7        PTBD6   PTBD5             PTBD4   PTBD3                     PTBD2             PTBD1          PTBD0

W

Reset       0            0       0                 0                              0  0                 0                          0

                                 Figure 6-14.      Port B Data Register (PTBD)

                                 Table 6-7. PTBD Register Field Descriptions

Field                                                 Description

7:0         Port B Data Register Bits — For port B pins that are inputs, reads return the logic level on the pin. For port B

PTBD[7:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port B pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTBD to all 0s, but these 0s are not driven out the corresponding pins because reset also configures

            all port pins as high-impedance inputs with pullups disabled.

               7         6       5                 4                              3  2                       1                    0

       R

           PTBDD7        PTBDD6  PTBDD5            PTBDD4  PTBDD3                    PTBDD2            PTBDD1         PTBDD0

W

Reset       0            0       0                 0                              0  0                 0                          0

                                 Figure 6-15. Data Direction for Port B (PTBDD)

                                 Table 6-8. PTBDD Register Field Descriptions

Field                                                 Description

7:0         Data Direction for Port B Bits — These read/write bits control the direction of port B pins and     what  is read for

PTBDD[7:0]  PTBD reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port B bit n and PTBD reads return the contents of PTBDn.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                              91
Chapter 6 Parallel Input/Output

6.7.4       Port B Pin Control Registers (PTBPE, PTBSE, PTBDS)

In addition to the I/O control, port B pins are controlled by the registers listed below.

               7                 6             5       4               3            2       1       0

       R

            PTBPE7      PTBPE6      PTBPE5             PTBPE4          PTBPE3       PTBPE2  PTBPE1  PTBPE0

    W

    Reset   0                    0             0       0               0            0       0       0

                                 Figure 6-16.  Internal Pullup Enable for Port B (PTBPE)

                                    Table 6-9. PTBPE Register Field Descriptions

    Field                                                              Description

    7:0     Internal Pullup Enable for Port B Bits — Each of these control bits determines if the internal pullup device is

PTBPE[7:0]  enabled for the associated PTB pin. For port B pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port B bit n.

            1     Internal pullup device enabled for port B bit n.

               7                 6             5       4               3            2       1       0

       R

            PTBSE7      PTBSE6      PTBSE5             PTBSE4          PTBSE3       PTBSE2  PTBSE1  PTBSE0

    W

    Reset   0                    0             0       0               0            0       0       0

                                 Figure 6-17.  Output Slew Rate Control Enable (PTBSE)

                                    Table 6-10. PTBSE Register Field Descriptions

    Field                                                              Description

    7:0     Output Slew Rate Control Enable for Port B Bits— Each of these control bits determine whether output slew

PTBSE[7:0]  rate control is enabled for the associated PTB pin. For port B pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port B bit n.

            1     Output slew rate control enabled for port B bit n.

                                               MC9S08AW60 Data Sheet, Rev 2

92                                                                                          Freescale Semiconductor
                                                                                       Chapter 6 Parallel Input/Output

               7         6             5                       4      3         2          1                   0

R

       PTBDS7            PTBDS6        PTBDS5                 PTBDS4  PTBDS3   PTBDS2      PTBDS1              PTBDS0

W

Reset       0            0             0                       0      0         0          0                   0

                         Figure 6-18.  Output Drive Strength Selection for Port B (PTBDS)

                                 Table 6-11. PTBDS Register Field Descriptions

Field                                                             Description

7:0         Output Drive Strength Selection for Port B Bits — Each of these control bits selects between  low  and high

PTBDS[7:0]  output drive for the associated PTB pin.

            0     Low output drive enabled for port B bit n.

            1     High output drive enabled for port B bit n.

                                       MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                  93
Chapter 6 Parallel Input/Output

6.7.5       Port C I/O Registers (PTCD and PTCDD)

Port C parallel I/O function is controlled by the registers listed below.

               7                 6  5              4                              3  2                       1                    0

       R

                         PTCD6      PTCD5          PTCD4   PTCD3                     PTCD2             PTCD1          PTCD0

    W

    Reset   0                    0  0              0                              0  0                 0                          0

                                    Figure 6-19. Port C Data Register (PTCD)

                                    Table 6-12.  PTCD Register Field Descriptions

    Field                                             Description

    6:0     Port C Data Register Bits — For port C pins that are inputs, reads return the logic level on the pin. For port C

PTCD[6:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port C pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTCD to all 0s, but these 0s are not driven out the corresponding pins because reset also

            configures all port pins as high-impedance inputs with pullups disabled.

               7                 6  5              4                              3  2                       1                    0

       R

                  PTCDD6            PTCDD5         PTCDD4  PTCDD3                    PTCDD2            PTCDD1         PTCDD0

    W

    Reset   0                    0  0              0                              0  0                 0                          0

                                    Figure 6-20. Data Direction for Port C (PTCDD)

                                    Table 6-13. PTCDD Register Field Descriptions

    Field                                             Description

    6:0     Data Direction for Port C Bits — These read/write bits control the direction of port C pins and     what  is read for

PTCDD[6:0]  PTCD reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port C bit n and PTCD reads return the contents of PTCDn.

                                    MC9S08AW60 Data Sheet, Rev 2

94                                                                                                     Freescale Semiconductor
                                                                                            Chapter 6 Parallel Input/Output

6.7.6       Port C Pin Control Registers (PTCPE, PTCSE, PTCDS)

In addition to the I/O control, port C pins are controlled by the registers listed below.

               7         6       5                     4               3            2       1       0

       R

                         PTCPE6  PTCPE5                PTCPE4          PTCPE3       PTCPE2  PTCPE1  PTCPE0

W

Reset       0            0       0                     0               0            0       0       0

                         Figure 6-21. Internal Pullup Enable for Port C (PTCPE)

                                 Table 6-14. PTCPE Register Field Descriptions

Field                                                                  Description

6:0         Internal Pullup Enable for Port C Bits — Each of these control bits determines if the internal pullup device is

PTCPE[6:0]  enabled for the associated PTC pin. For port C pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port C bit n.

            1     Internal pullup device enabled for port C bit n.

               7         6       5                     4               3            2       1       0

       R

                         PTCSE6  PTCSE5                PTCSE4          PTCSE3       PTCSE2  PTCSE1  PTCSE0

W

Reset       0            0       0                     0               0            0       0       0

                         Figure 6-22. Output Slew Rate Control Enable for Port C (PTCSE)

                                 Table 6-15. PTCSE Register Field Descriptions

Field                                                                  Description

6:0         Output Slew Rate Control Enable for Port C Bits — Each of these control bits determine whether output slew

PTCSE[6:0]  rate control is enabled for the associated PTC pin. For port C pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port C bit n.

            1     Output slew rate control enabled for port C bit n.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                        95
Chapter 6 Parallel Input/Output

               7                 6  5                          4  3                2              1             0

    R

                  PTCDS6            PTCDS5            PTCDS4      PTCDS3       PTCDS2             PTCDS1        PTCDS0

    W

    Reset   0                    0  0                          0  0                0              0             0

                  Figure 6-23. Output Drive Strength Selection for Port C (PTCDS)

                                    Table 6-16. PTCDS Register Field Descriptions

    Field                                                         Description

    6:0     Output Drive Strength Selection for Port C Bits — Each of these control bits selects  between  low  and high

PTCDS[6:0]  output drive for the associated PTC pin.

            0     Low output drive enabled for port C bit n.

            1     High output drive enabled for port C bit n.

                                    MC9S08AW60 Data Sheet, Rev 2

96                                                                                                Freescale Semiconductor
                                                                                                       Chapter 6 Parallel Input/Output

6.7.7       Port D I/O Registers (PTDD and PTDDD)

Port D parallel I/O function is controlled by the registers listed below.

               7         6       5                 4                              3  2                       1                    0

       R

            PTDD7        PTDD6   PTDD5             PTDD4   PTDD3                     PTDD2             PTDD1          PTDD0

W

Reset       0            0       0                 0                              0  0                 0                          0

                                 Figure 6-24. Port D Data Register (PTDD)

                                 Table 6-17.  PTDD Register Field Descriptions

Field                                                 Description

7:0         Port D Data Register Bits — For port D pins that are inputs, reads return the logic level on the pin. For port D

PTDD[7:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port D pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTDD to all 0s, but these 0s are not driven out the corresponding pins because reset also

            configures all port pins as high-impedance inputs with pullups disabled.

               7         6       5                 4                              3  2                       1                    0

       R

           PTDDD7        PTDDD6  PTDDD5            PTDDD4  PTDDD3                    PTDDD2            PTDDD1         PTDDD0

W

Reset       0            0       0                 0                              0  0                 0                          0

                                 Figure 6-25. Data Direction for Port D (PTDDD)

                                Table 6-18. PTDDD Register Field Descriptions

Field                                                 Description

7:0         Data Direction for Port D Bits — These read/write bits control the direction of port D pins and     what  is read for

PTDDD[7:0]  PTDD reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port D bit n and PTDD reads return the contents of PTDDn.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                              97
Chapter 6 Parallel Input/Output

6.7.8       Port D Pin Control Registers (PTDPE, PTDSE, PTDDS)

In addition to the I/O control, port D pins are controlled by the registers listed below.

               7                 6  5                  4               3            2       1       0

       R

           PTDPE7       PTDPE6      PTDPE5             PTDPE4          PTDPE3       PTDPE2  PTDPE1  PTDPE0

    W

    Reset   0                    0  0                  0               0            0       0       0

                                 Figure 6-26. Internal Pullup Enable for Port D (PTDPE)

                                    Table 6-19.  PTDPE Register Field Descriptions

    Field                                                              Description

    7:0     Internal Pullup Enable for Port D Bits — Each of these control bits determines if the internal pullup device is

PTDPE[7:0]  enabled for the associated PTD pin. For port D pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port D bit n.

            1     Internal pullup device enabled for port D bit n.

               7                 6  5                  4               3            2       1       0

       R

           PTDSE7       PTDSE6      PTDSE5             PTDSE4          PTDSE3       PTDSE2  PTDSE1  PTDSE0

    W

    Reset   0                    0  0                  0               0            0       0       0

                        Figure 6-27. Output Slew Rate Control Enable for Port D (PTDSE)

                                    Table 6-20. PTDSE Register Field Descriptions

    Field                                                              Description

    7:0     Output Slew Rate Control Enable for Port D Bits — Each of these control bits determine whether output slew

PTDSE[7:0]  rate control is enabled for the associated PTD pin. For port D pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port D bit n.

            1     Output slew rate control enabled for port D bit n.

                                    MC9S08AW60 Data Sheet, Rev 2

98                                                                                          Freescale Semiconductor
                                                                                       Chapter 6 Parallel Input/Output

               7         6       5                             4  3            2          1                    0

R

       PTDDS7            PTDDS6  PTDDS5               PTDDS4      PTDDS3       PTDDS2     PTDDS1               PTDDS0

W

Reset       0            0       0                             0  0            0          0                    0

                         Figure 6-28. Output Drive Strength Selection for Port D (PTDDS)

                            Table 6-21.  PTDDS Register Field Descriptions

Field                                                             Description

7:0         Output Drive Strength Selection for Port D Bits — Each of these control bits selects between  low  and high

PTDDS[7:0]  output drive for the associated PTD pin.

            0     Low output drive enabled for port D bit n.

            1     High output drive enabled for port D bit n.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                  99
Chapter 6 Parallel Input/Output

6.7.9       Port E I/O Registers (PTED and PTEDD)

Port E parallel I/O function is controlled by the registers listed below.

               7                 6  5              4                              3  2                 1                          0

       R

            PTED7        PTED6      PTED5          PTED4   PTED3                     PTED2             PTED1   PTED0

     W

Reset       0                    0  0              0                              0  0                 0                          0

                                    Figure 6-29. Port E Data Register (PTED)

                                    Table 6-22.  PTED Register Field Descriptions

     Field                                            Description

     7:0    Port E Data Register Bits — For port E pins that are inputs, reads return the logic level on the pin. For port E

PTED[7:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port E pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTED to all 0s, but these 0s are not driven out the corresponding pins because reset also configures

            all port pins as high-impedance inputs with pullups disabled.

               7                 6  5              4                              3  2                 1                          0

       R

            PTEDD7  PTEDD6          PTEDD5         PTEDD4  PTEDD3                    PTEDD2            PTEDD1  PTEDD0

     W

Reset       0                    0  0              0                              0  0                 0                          0

                                    Figure 6-30. Data Direction for Port E (PTEDD)

                                    Table 6-23. PTEDD Register Field Descriptions

     Field                                            Description

     7:0    Data Direction for Port E Bits — These read/write bits control the direction of port E pins and what is read for

PTEDD[7:0]  PTED reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port E bit n and PTED reads return the contents of PTEDn.

                                    MC9S08AW60 Data Sheet, Rev 2

100                                                                                                    Freescale Semiconductor
                                                                                            Chapter 6 Parallel Input/Output

6.7.10      Port E Pin Control Registers (PTEPE, PTESE, PTEDS)

In addition to the I/O control, port E pins are controlled by the registers listed below.

               7         6       5                     4               3            2       1                               0

R

            PTEPE7       PTEPE6  PTEPE5                PTEPE4          PTEPE3       PTEPE2  PTEPE1  PTEPE0

W

Reset       0            0       0                     0               0            0       0                               0

                         Figure 6-31. Internal Pullup Enable for Port E (PTEPE)

                                 Table 6-24. PTEPE Register Field Descriptions

Field                                                                  Description

7:0         Internal Pullup Enable for Port E Bits— Each of these control bits determines if the internal pullup device is

PTEPE[7:0]  enabled for the associated PTE pin. For port E pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port E bit n.

            1     Internal pullup device enabled for port E bit n.

               7         6       5                     4               3            2       1                               0

R

            PTESE7       PTESE6  PTESE5                PTESE4          PTESE3       PTESE2  PTESE1  PTESE0

W

Reset       0            0       0                     0               0            0       0                               0

                         Figure 6-32. Output Slew Rate Control Enable for Port E (PTESE)

                            Table 6-25.  PTESE Register Field Descriptions

Field                                                                  Description

7:0         Output Slew Rate Control Enable for Port E Bits — Each of these control bits determine whether output slew

PTESE[7:0]  rate control is enabled for the associated PTE pin. For port E pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port E bit n.

            1     Output slew rate control enabled for port E bit n.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                        101
Chapter 6 Parallel Input/Output

               7                 6  5                          4      3             2  1                       0

     R

            PTEDS7  PTEDS6          PTEDS5                    PTEDS4  PTEDS3   PTEDS2  PTEDS1                  PTEDS0

     W

Reset       0                    0  0                          0      0             0  0                       0

                    Figure 6-33. Output Drive Strength Selection for Port E (PTEDS)

                                    Table 6-26.  PTEDS Register Field Descriptions

     Field                                                        Description

     7:0    Output Drive Strength Selection for Port E Bits — Each of these control bits selects between  low  and high

PTEDS[7:0]  output drive for the associated PTE pin.

            0     Low output drive enabled for port E bit n.

            1     High output drive enabled for port E bit n.

                                    MC9S08AW60 Data Sheet, Rev 2

102                                                                                    Freescale Semiconductor
                                                                                                       Chapter 6 Parallel Input/Output

6.7.11      Port F I/O Registers (PTFD and PTFDD)

Port F parallel I/O function is controlled by the registers listed below.

               7         6       5                 4                              3  2                       1                    0

R

            PTFD7        PTFD6   PTFD5             PTFD4   PTFD3                     PTFD2             PTFD1          PTFD0

W

Reset       0            0       0                 0                              0  0                       0                    0

                                 Figure 6-34. Port F Data Register (PTFD)

                                 Table 6-27.  PTFD Register Field Descriptions

Field                                                     Description

7:0         Port F Data Register Bits— For port F pins that are inputs, reads return the logic level on the pin. For port F

PTFD[7:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port F pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTFD to all 0s, but these 0s are not driven out the corresponding pins because reset also configures

            all port pins as high-impedance inputs with pullups disabled.

               7         6       5                 4                              3  2                       1                    0

R

           PTFDD7        PTFDD6  PTFDD5            PTFDD4  PTFDD3                    PTFDD2            PTFDD1         PTFDD0

W

Reset       0            0       0                 0                              0  0                       0                    0

                                 Figure 6-35. Data Direction for Port F (PTFDD)

                                Table 6-28.   PTFDD Register Field Descriptions

Field                                                     Description

7:0         Data Direction for Port F Bits — These read/write bits control the direction of port F pins and     what  is read for

PTFDD[7:0]  PTFD reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port F bit n and PTFD reads return the contents of PTFDn.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                              103
Chapter 6 Parallel Input/Output

6.7.12      Port F Pin Control Registers (PTFPE, PTFSE, PTFDS)

In addition to the I/O control, port F pins are controlled by the registers listed below.

               7                 6  5                  4               3            2       1       0

     R

            PTFPE7      PTFPE6      PTFPE5             PTFPE4          PTFPE3       PTFPE2  PTFPE1  PTFPE0

     W

Reset       0                    0  0                  0               0            0       0       0

                                 Figure 6-36. Internal Pullup Enable for Port F (PTFPE)

                                    Table 6-29.  PTFPE Register Field Descriptions

     Field                                                             Description

     7:0    Internal Pullup Enable for Port F Bits — Each of these control bits determines if the internal pullup device is

PTFPE[7:0]  enabled for the associated PTF pin. For port F pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port F bit n.

            1     Internal pullup device enabled for port F bit n.

               7                 6  5                  4               3            2       1       0

     R

            PTFSE7      PTFSE6      PTFSE5             PTFSE4          PTFSE3       PTFSE2  PTFSE1  PTFSE0

     W

Reset       0                    0  0                  0               0            0       0       0

                        Figure 6-37. Output Slew Rate Control Enable for Port F (PTFSE)

                                    Table 6-30.  PTFSE Register Field Descriptions

     Field                                                             Description

     7:0    Output Slew Rate Control Enable for Port F Bits — Each of these control bits determine whether output slew

PTFSE[7:0]  rate control is enabled for the associated PTF pin. For port F pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port F bit n.

            1     Output slew rate control enabled for port F bit n.

                                    MC9S08AW60 Data Sheet, Rev 2

104                                                                                         Freescale Semiconductor
                                                                                       Chapter 6 Parallel Input/Output

               7         6       5                             4      3         2         1                    0

R

            PTFDS7       PTFDS6  PTFDS5                       PTFDS4  PTFDS3   PTFDS2     PTFDS1               PTFDS0

W

Reset       0            0       0                             0      0         0         0                    0

                         Figure 6-38. Output Drive Strength Selection for Port F (PTFDS)

                                 Table 6-31. PTFDS Register Field Descriptions

Field                                                             Description

7:0         Output Drive Strength Selection for Port F Bits — Each of these control bits selects between  low  and high

PTFDS[7:0]  output drive for the associated PTF pin.

            0     Low output drive enabled for port F bit n.

            1     High output drive enabled for port F bit n.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                           105
Chapter 6 Parallel Input/Output

6.7.13      Port G I/O Registers (PTGD and PTGDD)

Port G parallel I/O function is controlled by the registers listed below.

               7                 6  5              4                              3  2                       1                    0

     R

                         PTGD6      PTGD5          PTGD4   PTGD3                     PTGD2             PTGD1          PTGD0

     W

Reset       0                    0  0              0                              0  0                 0                          0

                                    Figure 6-39. Port G Data Register (PTGD)

                                    Table 6-32. PTGD Register Field Descriptions

     Field                                            Description

     6:0    Port G Data Register Bits — For port G pins that are inputs, reads return the logic level on the pin. For port G

PTGD[6:0]   pins that are configured as outputs, reads return the last value written to this register.

            Writes are latched into all bits of this register. For port G pins that are configured as outputs, the logic level is

            driven out the corresponding MCU pin.

            Reset forces PTGD to all 0s, but these 0s are not driven out the corresponding pins because reset also

            configures all port pins as high-impedance inputs with pullups disabled.

               7                 6  5              4                              3  2                       1                    0

     R

                  PTGDD6            PTGDD5         PTGDD4  PTGDD3                    PTGDD2            PTGDD1         PTGDD0

     W

Reset       0                    0  0              0                              0  0                 0                          0

                                    Figure 6-40. Data Direction for Port G (PTGDD)

                                    Table 6-33.  PTGDD Register Field Descriptions

     Field                                            Description

     6:0    Data Direction for Port G Bits — These read/write bits control the direction of port G pins and     what  is  read       for

PTGDD[6:0]  PTGD reads.

            0     Input (output driver disabled) and reads return the pin value.

            1     Output driver enabled for port G bit n and PTGD reads return the contents of PTGDn.

                                    MC9S08AW60 Data Sheet, Rev 2

106                                                                                                    Freescale Semiconductor
                                                                                            Chapter 6 Parallel Input/Output

6.7.14      Port G Pin Control Registers (PTGPE, PTGSE, PTGDS)

In addition to the I/O control, port G pins are controlled by the registers listed below.

               7         6       5                     4               3            2       1       0

R

                         PTGPE6  PTGPE5                PTGPE4          PTGPE3       PTGPE2  PTGPE1  PTGPE0

W

Reset       0            0       0                     0               0            0       0       0

                         Figure 6-41. Internal Pullup Enable for Port G Bits (PTGPE)

                                 Table 6-34. PTGPE Register Field Descriptions

Field                                                                  Description

6:0         Internal Pullup Enable for Port G Bits — Each of these control bits determines if the internal pullup device is

PTGPE[6:0]  enabled for the associated PTG pin. For port G pins that are configured as outputs, these bits have no effect and

            the internal pullup devices are disabled.

            0     Internal pullup device disabled for port G bit n.

            1     Internal pullup device enabled for port G bit n.

               7         6       5                     4               3            2       1       0

R

                         PTGSE6  PTGSE5                PTGSE4          PTGSE3       PTGSE2  PTGSE1  PTGSE0

W

Reset       0            0       0                     0               0            0       0       0

                  Figure 6-42. Output Slew Rate Control Enable for Port G Bits (PTGSE)

                            Table 6-35.  PTGSE Register Field Descriptions

Field                                                                  Description

6:0         Output Slew Rate Control Enable for Port G Bits— Each of these control bits determine whether output slew

PTGSE[6:0]  rate control is enabled for the associated PTG pin. For port G pins that are configured as inputs, these bits have

            no effect.

            0     Output slew rate control disabled for port G bit n.

            1     Output slew rate control enabled for port G bit n.

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                        107
Chapter 6 Parallel Input/Output

               7                 6  5                          4  3                2              1             0

     R

                  PTGDS6            PTGDS5            PTGDS4      PTGDS3       PTGDS2             PTGDS1        PTGDS0

     W

Reset       0                    0  0                          0  0                0              0             0

                  Figure 6-43. Output Drive Strength Selection for Port G (PTGDS)

                                    Table 6-36. PTGDS Register Field Descriptions

     Field                                                        Description

     6:0    Output Drive Strength Selection for Port G Bits — Each of these control bits selects  between  low  and high

PTGDS[6:0]  output drive for the associated PTG pin.

            0     Low output drive enabled for port G bit n.

            1     High output drive enabled for port G bit n.

                                    MC9S08AW60 Data Sheet, Rev 2

108                                                                                               Freescale Semiconductor
Chapter 7

Central Processor Unit (S08CPUV2)

7.1     Introduction

This section provides summary information about the registers, addressing modes, and instruction set of

the CPU of the HCS08 family. For a more detailed discussion, refer to the HCS08 Family Reference

Manual, volume 1, Freescale Semiconductor document order number HCS08RMV1/D.

The HCS08 CPU is fully source- and object-code-compatible with the M68HC08 CPU. Several

instructions and enhanced addressing modes were added to improve C compiler efficiency and to support

a new background debug system which replaces the monitor mode of earlier M68HC08 microcontrollers

(MCU).

7.1.1   Features

Features of the HCS08 CPU include:

•      Object code fully upward-compatible with M68HC05 and M68HC08 Families

•      All registers and memory are mapped to a single 64-Kbyte address space

•      16-bit stack pointer (any size stack anywhere in 64-Kbyte address space)

•      16-bit index register (H:X) with powerful indexed addressing modes

•      8-bit accumulator (A)

•      Many instructions treat X as a second general-purpose 8-bit register

•      Seven addressing modes:

       — Inherent — Operands in internal registers

       — Relative — 8-bit signed offset to branch destination

       — Immediate — Operand in next object code byte(s)

       — Direct — Operand in memory at 0x0000–0x00FF

       — Extended — Operand anywhere in 64-Kbyte address space

       — Indexed relative to H:X — Five submodes including auto increment

       — Indexed relative to SP — Improves C efficiency dramatically

•      Memory-to-memory data move instructions with four address mode combinations

•      Overflow, half-carry, negative, zero, and carry condition codes support conditional branching on

       the results of signed, unsigned, and binary-coded decimal (BCD) operations

•      Efficient bit manipulation instructions

•      Fast 8-bit by 8-bit multiply and 16-bit by 8-bit divide instructions

•      STOP and WAIT instructions to invoke low-power operating modes

                                    MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                  109
Chapter 7 Central Processor Unit (S08CPUV2)

7.2    Programmer’s Model and CPU Registers

Figure 7-1 shows the five CPU registers. CPU registers are not part of                   the   memory     map.

                                                     7                     0

                                                           ACCUMULATOR        A

                               16-BIT INDEX REGISTER H:X

                       H   INDEX REGISTER (HIGH)     INDEX REGISTER (LOW)     X

                           15                     8  7                     0

                                             STACK POINTER                    SP

                           15                                              0

                                             PROGRAM COUNTER                  PC

                                                     7                     0

                        CONDITION CODE REGISTER      V  1   1  H  I  N  Z  C  CCR

                                                                              CARRY

                                                                              ZERO

                                                                              NEGATIVE

                                                                              INTERRUPT MASK

                                                                              HALF-CARRY (FROM BIT 3)

                                                                              TWO’S COMPLEMENT OVERFLOW

                                                  Figure 7-1. CPU Registers

7.2.1  Accumulator (A)

The A accumulator is a general-purpose 8-bit register. One operand input to the arithmetic logic unit

(ALU) is connected to the accumulator and the ALU results are often stored into the A accumulator after

arithmetic and logical operations. The accumulator can be loaded from memory using various addressing

modes to specify the address where the loaded data comes from, or the contents of A can be stored to

memory using various addressing modes to specify the address where data from A will be stored.

Reset has no effect on the contents of the A accumulator.

7.2.2  Index Register (H:X)

This 16-bit register is actually two separate 8-bit registers (H and X), which often work together as a 16-bit

address pointer where H holds the upper byte of an address and X holds the lower byte of the address. All

indexed addressing mode instructions use the full 16-bit value in H:X as an index reference pointer;

however, for compatibility with the earlier M68HC05 family, some instructions operate only on the

low-order 8-bit half (X).

Many instructions treat X as a second general-purpose 8-bit register that can be used to hold 8-bit data

values. X can be cleared, incremented, decremented, complemented, negated, shifted, or rotated. Transfer

instructions allow data to be transferred from A or transferred to A where arithmetic and logical operations

can then be performed.

For compatibility with the earlier M68HC05 family, H is forced to 0x00 during reset. Reset has no effect

on the contents of X.

                                             MC9S08AW60 Data Sheet, Rev 2

110                                                                                                      Freescale Semiconductor
                                                            Chapter 7 Central Processor Unit (S08CPUV2)

7.2.3     Stack Pointer (SP)

This 16-bit address pointer register points at the next available location on the automatic last-in-first-out

(LIFO) stack. The stack may be located anywhere in the 64-Kbyte address space that has RAM and can

be any size up to the amount of available RAM. The stack is used to automatically save the return address

for subroutine calls, the return address and CPU registers during interrupts, and for local variables. The

AIS (add immediate to stack pointer) instruction adds an 8-bit signed immediate value to SP. This is most

often used to allocate or deallocate space for local variables on the stack.

SP is forced to 0x00FF at reset for compatibility with the earlier M68HC05 family. HCS08 programs

normally change the value in SP to the address of the last location (highest address) in on-chip RAM

during reset initialization to free up direct page RAM (from the end of the on-chip registers to 0x00FF).

The RSP (reset stack pointer) instruction was included for compatibility with the M68HC05 family and is

seldom used in new HCS08 programs because it only affects the low-order half of the stack pointer.

7.2.4     Program Counter (PC)

The program counter is a 16-bit register that contains the address of the next instruction or operand to be

fetched.

During normal program execution, the program counter automatically increments to the next sequential

memory location every time an instruction or operand is fetched. Jump, branch, interrupt, and return

operations load the program counter with an address other than that of the next sequential location. This

is called a change-of-flow.

During reset, the program counter is loaded with the reset vector that is located at 0xFFFE and 0xFFFF.

The vector stored there is the address of the first instruction that will be executed after exiting the reset

state.

7.2.5     Condition Code Register (CCR)

The 8-bit condition code register contains the interrupt mask (I) and five flags that indicate the results of

the instruction just executed. Bits 6 and 5 are set permanently to 1. The following paragraphs describe the

functions of the condition code bits in general terms. For a more detailed explanation of how each

instruction sets the CCR bits, refer to the HCS08 Family Reference Manual, volume 1, Freescale

Semiconductor document order number HCS08RMv1.

                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       111
Chapter 7 Central Processor Unit (S08CPUV2)

                                                 7                    0

                        CONDITION CODE REGISTER  V  1  1  H  I  N  Z  C  CCR

                                                                         CARRY

                                                                         ZERO

                                                                         NEGATIVE

                                                                         INTERRUPT MASK

                                                                         HALF-CARRY (FROM BIT 3)

                                                                         TWO’S COMPLEMENT OVERFLOW

                                             Figure 7-2. Condition Code Register

                                      Table 7-1. CCR Register Field Descriptions

     Field                                                      Description

     7      Two’s Complement Overflow Flag — The CPU sets the overflow flag when a two’s complement overflow occurs.

     V      The signed branch instructions BGT, BGE, BLE, and BLT use the overflow flag.

            0  No overflow

            1  Overflow

     4      Half-Carry Flag — The CPU sets the half-carry flag when a carry occurs between accumulator bits 3 and 4 during

     H      an add-without-carry (ADD) or add-with-carry (ADC) operation. The half-carry flag is required for binary-coded

            decimal (BCD) arithmetic operations. The DAA instruction uses the states of the H and C condition code bits to

            automatically add a correction value to the result from a previous ADD or ADC on BCD operands to correct the

            result to a valid BCD value.

            0  No carry between bits 3 and 4

            1  Carry between bits 3 and 4

     3      Interrupt Mask Bit — When the interrupt mask is set, all maskable CPU interrupts are disabled. CPU interrupts

     I      are enabled when the interrupt mask is cleared. When a CPU interrupt occurs, the interrupt mask is set

            automatically after the CPU registers are saved on the stack, but before the first instruction of the interrupt service

            routine is executed.

            Interrupts are not recognized at the instruction boundary after any instruction that clears I (CLI or TAP). This

            ensures that the next instruction after a CLI or TAP will always be executed without the possibility of an intervening

            interrupt, provided I was set.

            0  Interrupts enabled

            1  Interrupts disabled

     2      Negative Flag — The CPU sets the negative flag when an arithmetic operation, logic operation, or data

     N      manipulation produces a negative result, setting bit 7 of the result. Simply loading or storing an 8-bit or 16-bit value

            causes N to be set if the most significant bit of the loaded or stored value was 1.

            0  Non-negative result

            1  Negative result

     1      Zero Flag — The CPU sets the zero flag when an arithmetic operation, logic operation, or data manipulation

     Z      produces a result of 0x00 or 0x0000. Simply loading or storing an 8-bit or 16-bit value causes Z to be set if the

            loaded or stored value was all 0s.

            0  Non-zero result

            1  Zero result

     0      Carry/Borrow Flag — The CPU sets the carry/borrow flag when an addition operation produces a carry out of bit

     C      7 of the accumulator or when a subtraction operation requires a borrow. Some instructions — such as bit test and

            branch, shift, and rotate — also clear or set the carry/borrow flag.

            0  No carry out of bit 7

            1  Carry out of bit 7

                                                MC9S08AW60 Data Sheet, Rev 2

112                                                                                                 Freescale Semiconductor
                                                          Chapter 7 Central Processor Unit (S08CPUV2)

7.3       Addressing Modes

Addressing modes define the way the CPU accesses operands and data. In the HCS08, all memory, status

and control registers, and input/output (I/O) ports share a single 64-Kbyte linear address space so a 16-bit

binary address can uniquely identify any memory location. This arrangement means that the same

instructions that access variables in RAM can also be used to access I/O and control registers or nonvolatile

program space.

Some instructions use more than one addressing mode. For instance, move instructions use one addressing

mode to specify the source operand and a second addressing mode to specify the destination address.

Instructions such as BRCLR, BRSET, CBEQ, and DBNZ use one addressing mode to specify the location

of an operand for a test and then use relative addressing mode to specify the branch destination address

when the tested condition is true. For BRCLR, BRSET, CBEQ, and DBNZ, the addressing mode listed in

the instruction set tables is the addressing mode needed to access the operand to be tested, and relative

addressing mode is implied for the branch destination.

7.3.1     Inherent Addressing Mode (INH)

In this addressing mode, operands needed to complete the instruction (if any) are located within CPU

registers so the CPU does not need to access memory to get any operands.

7.3.2     Relative Addressing Mode (REL)

Relative addressing mode is used to specify the destination location for branch instructions. A signed 8-bit

offset value is located in the memory location immediately following the opcode. During execution, if the

branch condition is true, the signed offset is sign-extended to a 16-bit value and is added to the current

contents of the program counter, which causes program execution to continue at the branch destination

address.

7.3.3     Immediate Addressing Mode (IMM)

In immediate addressing mode, the operand needed to complete the instruction is included in the object

code immediately following the instruction opcode in memory. In the case of a 16-bit immediate operand,

the high-order byte is located in the next memory location after the opcode, and the low-order byte is

located in the next memory location after that.

7.3.4     Direct Addressing Mode (DIR)

In direct addressing mode, the instruction includes the low-order eight bits of an address in the direct page

(0x0000–0x00FF). During execution a 16-bit address is formed by concatenating an implied 0x00 for the

high-order half of the address and the direct address from the instruction to get the 16-bit address where

the desired operand is located. This is faster and more memory efficient than specifying a complete 16-bit

address for the operand.

                            MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                        113
Chapter 7 Central Processor Unit (S08CPUV2)

7.3.5    Extended Addressing Mode (EXT)

In extended addressing mode, the full 16-bit address of the operand is located in the next two bytes of

program memory after the opcode (high byte first).

7.3.6    Indexed Addressing Mode

Indexed addressing mode has seven variations including five that use the 16-bit H:X index register pair and

two that use the stack pointer as the base reference.

7.3.6.1  Indexed, No Offset (IX)

This variation of indexed addressing uses the 16-bit value in the H:X index register pair as the address of

the operand needed to complete the instruction.

7.3.6.2  Indexed, No Offset with Post Increment (IX+)

This variation of indexed addressing uses the 16-bit value in the H:X index register pair as the address of

the operand needed to complete the instruction. The index register pair is then incremented

(H:X = H:X + 0x0001) after the operand has been fetched. This addressing mode is only used for MOV

and CBEQ instructions.

7.3.6.3  Indexed, 8-Bit Offset (IX1)

This variation of indexed addressing uses the 16-bit value in the H:X index register pair plus an unsigned

8-bit offset included in the instruction as the address of the operand needed to complete the instruction.

7.3.6.4  Indexed, 8-Bit Offset with Post Increment (IX1+)

This variation of indexed addressing uses the 16-bit value in the H:X index register pair plus an unsigned

8-bit offset included in the instruction as the address of the operand needed to complete the instruction.

The index register pair is then incremented (H:X = H:X + 0x0001) after the operand has been fetched. This

addressing mode is used only for the CBEQ instruction.

7.3.6.5  Indexed, 16-Bit Offset (IX2)

This variation of indexed addressing uses the 16-bit value in the H:X index register pair plus a 16-bit offset

included in the instruction as the address of the operand needed to complete the instruction.

7.3.6.6  SP-Relative, 8-Bit Offset (SP1)

This variation of indexed addressing uses the 16-bit value in the stack pointer (SP) plus an unsigned 8-bit

offset included in the instruction as the address of the operand needed to complete the instruction.

                                             MC9S08AW60 Data Sheet, Rev 2

114                                                                        Freescale Semiconductor
                                                                       Chapter 7 Central Processor Unit (S08CPUV2)

7.3.6.7   SP-Relative, 16-Bit Offset (SP2)

This variation of indexed addressing uses the 16-bit value in the stack pointer (SP) plus a 16-bit offset

included in the instruction as the address of the operand needed to complete the instruction.

7.4       Special Operations

The CPU performs a few special operations that are similar to instructions but do not have opcodes like

other CPU instructions. In addition, a few instructions such as STOP and WAIT directly affect other MCU

circuitry. This section provides additional information about these operations.

7.4.1     Reset Sequence

Reset can be caused by a power-on-reset (POR) event, internal conditions such as the COP (computer

operating properly) watchdog, or by assertion of an external active-low reset pin. When a reset event

occurs, the CPU immediately stops whatever it is doing (the MCU does not wait for an instruction

boundary before responding to a reset event). For a more detailed discussion about how the MCU

recognizes resets and determines the source, refer to the Resets, Interrupts, and System Configuration

chapter.

The reset event is considered concluded when the sequence to determine whether the reset came from an

internal source is done and when the reset pin is no longer asserted. At the conclusion of a reset event, the

CPU performs a 6-cycle sequence to fetch the reset vector from 0xFFFE and 0xFFFF and to fill the

instruction queue in preparation for execution of the first program instruction.

7.4.2     Interrupt Sequence

When an interrupt is requested, the CPU completes the current instruction before responding to the

interrupt. At this point, the program counter is pointing at the start of the next instruction, which is where

the CPU should return after servicing the interrupt. The CPU responds to an interrupt by performing the

same sequence of operations as for a software interrupt (SWI) instruction, except the address used for the

vector fetch is determined by the highest priority interrupt that is pending when the interrupt sequence

started.

The CPU sequence for an interrupt is:

1.        Store the contents of PCL, PCH, X, A, and CCR on the stack, in that order.

2.        Set the I bit in the CCR.

3.        Fetch the high-order half of the interrupt vector.

4.        Fetch the low-order half of the interrupt vector.

5.        Delay for one free bus cycle.

6.        Fetch three bytes of program information starting at the address indicated by the interrupt vector

          to fill the instruction queue in preparation for execution of the first instruction in the interrupt

          service routine.

After the CCR contents are pushed onto the stack, the I bit in the CCR is set to prevent other interrupts

while in the interrupt service routine. Although it is possible to clear the I bit with an instruction in the

                                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                         115
Chapter 7 Central Processor Unit (S08CPUV2)

interrupt service routine, this would allow nesting of interrupts (which is not recommended because it

leads to programs that are difficult to debug and maintain).

For compatibility with the earlier M68HC05 MCUs, the high-order half of the H:X index register pair (H)

is not saved on the stack as part of the interrupt sequence. The user must use a PSHH instruction at the

beginning of the service routine to save H and then use a PULH instruction just before the RTI that ends

the interrupt service routine. It is not necessary to save H if you are certain that the interrupt service routine

does not use any instructions or auto-increment addressing modes that might change the value of H.

The software interrupt (SWI) instruction is like a hardware interrupt except that it is not masked by the

global I bit in the CCR and it is associated with an instruction opcode within the program so it is not

asynchronous to program execution.

7.4.3  Wait Mode Operation

The WAIT instruction enables interrupts by clearing the I bit in the CCR. It then halts the clocks to the

CPU to reduce overall power consumption while the CPU is waiting for the interrupt or reset event that

will wake the CPU from wait mode. When an interrupt or reset event occurs, the CPU clocks will resume

and the interrupt or reset event will be processed normally.

If a serial BACKGROUND command is issued to the MCU through the background debug interface while

the CPU is in wait mode, CPU clocks will resume and the CPU will enter active background mode where

other serial background commands can be processed. This ensures that a host development system can still

gain access to a target MCU even if it is in wait mode.

7.4.4  Stop Mode Operation

Usually, all system clocks, including the crystal oscillator (when used), are halted during stop mode to

minimize power consumption. In such systems, external circuitry is needed to control the time spent in

stop mode and to issue a signal to wake up the target MCU when it is time to resume processing. Unlike

the earlier M68HC05 and M68HC08 MCUs, the HCS08 can be configured to keep a minimum set of

clocks running in stop mode. This optionally allows an internal periodic signal to wake the target MCU

from stop mode.

When a host debug system is connected to the background debug pin (BKGD) and the ENBDM control

bit has been set by a serial command through the background interface (or because the MCU was reset into

active background mode), the oscillator is forced to remain active when the MCU enters stop mode. In this

case, if a serial BACKGROUND command is issued to the MCU through the background debug interface

while the CPU is in stop mode, CPU clocks will resume and the CPU will enter active background mode

where other serial background commands can be processed. This ensures that a host development system

can still gain access to a target MCU even if it is in stop mode.

Recovery from stop mode depends on the particular HCS08 and whether the oscillator was stopped in stop

mode. Refer to the Modes of Operation chapter for more details.

                                             MC9S08AW60 Data Sheet, Rev 2

116                                                                        Freescale Semiconductor
                                                            Chapter 7 Central Processor Unit (S08CPUV2)

7.4.5       BGND Instruction

The BGND instruction is new to the HCS08 compared to the M68HC08. BGND would not be used in

normal user programs because it forces the CPU to stop processing user instructions and enter the active

background mode. The only way to resume execution of the user program is through reset or by a host

debug system issuing a GO, TRACE1, or TAGGO serial command through the background debug

interface.

Software-based breakpoints can be set by replacing an opcode at the desired breakpoint address with the

BGND opcode. When the program reaches this breakpoint address, the CPU is forced to active background

mode rather than continuing the user program.

                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                   117
Chapter 7 Central Processor Unit (S08CPUV2)

7.5  HCS08 Instruction Set Summary

Instruction Set Summary Nomenclature

The nomenclature listed here is used in the instruction descriptions in Table 7-2.

Operators

     ()        =  Contents of register or memory location shown inside parentheses

     ←         =  Is loaded with (read: “gets”)

     &         =  Boolean AND

           |   =  Boolean OR

     ⊕         =  Boolean exclusive-OR

     ×         =  Multiply

     ÷         =  Divide

           :   =  Concatenate

     +         =  Add

     –         =  Negate (two’s complement)

CPU registers

     A         =  Accumulator

     CCR       =  Condition code register

     H         =  Index register, higher order (most significant) 8 bits

     X         =  Index register, lower order (least significant) 8 bits

     PC        =  Program counter

     PCH       =  Program counter, higher order (most significant) 8 bits

     PCL       =  Program counter, lower order (least significant) 8 bits

     SP        =  Stack pointer

Memory and addressing

     M         =  A memory location or absolute data, depending on addressing mode

M:M + 0x0001=     A 16-bit value in two consecutive memory locations. The higher-order (most

                  significant) 8 bits are located at the address of M, and the lower-order (least

                  significant) 8 bits are located at the next higher sequential address.

Condition code register (CCR) bits

     V         =  Two’s complement overflow indicator, bit 7

     H         =  Half carry, bit 4

           I   =  Interrupt mask, bit 3

     N         =  Negative indicator, bit 2

     Z         =  Zero indicator, bit 1

     C         =  Carry/borrow, bit 0 (carry out of bit 7)

CCR activity notation

     –         =  Bit not affected

                                             MC9S08AW60 Data Sheet, Rev 2

118                                                                                      Freescale Semiconductor
                                                                      Chapter 7 Central Processor Unit (S08CPUV2)

0            =  Bit forced to 0

1            =  Bit forced to 1

             =  Bit set or cleared according to results of operation

U            =  Undefined after the operation

Machine coding notation

dd           =  Low-order 8 bits of a direct address 0x0000–0x00FF (high byte assumed to be 0x00)

ee           =  Upper 8 bits of 16-bit offset

ff           =  Lower 8 bits of 16-bit offset or 8-bit offset

ii           =  One byte of immediate data

jj           =  High-order byte of a 16-bit immediate data value

kk           =  Low-order byte of a 16-bit immediate data value

hh           =  High-order byte of 16-bit extended address

ll           =  Low-order byte of 16-bit extended address

rr           =  Relative offset

Source form

Everything in the source forms columns, except expressions in italic characters, is literal information that

must appear in the assembly source file exactly as shown. The initial 3- to 5-letter mnemonic is always a

literal expression. All commas, pound signs (#), parentheses, and plus signs (+) are literal characters.

n            —  Any label or expression that evaluates to a single integer in the range 0–7

opr8i        —  Any label or expression that evaluates to an 8-bit immediate value

opr16i       —  Any label or expression that evaluates to a 16-bit immediate value

opr8a        —  Any label or expression that evaluates to an 8-bit value. The instruction treats this 8-bit

                value as the low order 8 bits of an address in the direct page of the 64-Kbyte address

                space (0x00xx).

opr16a       —  Any label or expression that evaluates to a 16-bit value. The instruction treats this

                value as an address in the 64-Kbyte address space.

oprx8        —  Any label or expression that evaluates to an unsigned 8-bit value, used for indexed

                addressing

oprx16       —  Any label or expression that evaluates to a 16-bit value. Because the HCS08 has a

                16-bit address bus, this can be either a signed or an unsigned value.

rel          —  Any label or expression that refers to an address that is within –128 to +127 locations

                from the next address after the last byte of object code for the current instruction. The

                assembler will calculate the 8-bit signed offset and include it in the object code for this

                instruction.

Address modes

INH          =  Inherent (no operands)

IMM          =  8-bit or 16-bit immediate

DIR          =  8-bit direct

EXT          =  16-bit extended

                                 MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                       119
Chapter 7 Central Processor Unit (S08CPUV2)

             IX  =  16-bit indexed no offset

           IX+   =  16-bit indexed no offset, post increment (CBEQ and MOV only)

           IX1   =  16-bit indexed with 8-bit offset from H:X

      IX1+       =  16-bit indexed with 8-bit offset, post increment

                    (CBEQ only)

           IX2   =  16-bit indexed with 16-bit offset from H:X

          REL    =  8-bit relative offset

          SP1    =  Stack pointer with 8-bit offset

          SP2    =  Stack pointer with 16-bit offset

                    Table 7-2. HCS08 Instruction Set Summary (Sheet 1 of 7)

                                                                                             Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                              on CCR                        Mode

      Form          Operation                            Description

                                                                                       V  H  I  N    Z  C

ADC   #opr8i                                                                                               IMM                A9      ii           2

ADC   opr8a                                                                                                DIR                B9      dd           3

ADC   opr16a                                                                                               EXT                C9      hh  ll       4

ADC   oprx16,X      Add with Carry                       A ← (A) + (M) + (C)           ↕  ↕  –  ↕    ↕  ↕  IX2                D9      ee  ff       4

ADC   oprx8,X                                                                                              IX1                E9      ff           3

ADC   ,X                                                                                                   IX                 F9                   3

ADC   oprx16,SP                                                                                            SP2                9ED9    ee  ff       5

ADC   oprx8,SP                                                                                             SP1                9EE9    ff           4

ADD   #opr8i                                                                                               IMM                AB      ii           2

ADD   opr8a                                                                                                DIR                BB      dd           3

ADD   opr16a                                                                                               EXT                CB      hh  ll       4

ADD   oprx16,X      Add without Carry                    A ← (A) + (M)                 ↕  ↕  –  ↕    ↕  ↕  IX2                DB      ee  ff       4

ADD   oprx8,X                                                                                              IX1                EB      ff           3

ADD   ,X                                                                                                   IX                 FB                   3

ADD   oprx16,SP                                                                                            SP2                9EDB    ee  ff       5

ADD   oprx8,SP                                                                                             SP1                9EEB    ff           4

AIS  #opr8i         Add Immediate Value                  SP ← (SP) + (M)               –  –  –  –    –  –  IMM                A7      ii           2

                    (Signed) to Stack Pointer  M  is  sign extended to a 16-bit value

                    Add Immediate Value                  H:X ← (H:X) + (M)

AIX  #opr8i         (Signed) to Index          M  is  sign extended to a 16-bit value  –  –  –  –    –  –  IMM                AF      ii           2

                    Register (H:X)

AND   #opr8i                                                                                               IMM                A4      ii           2

AND   opr8a                                                                                                DIR                B4      dd           3

AND   opr16a                                                                                               EXT                C4      hh  ll       4

AND   oprx16,X      Logical AND                          A ← (A) & (M)                 0  –  –  ↕    ↕  –  IX2                D4      ee  ff       4

AND   oprx8,X                                                                                              IX1                E4      ff           3

AND   ,X                                                                                                   IX                 F4                   3

AND   oprx16,SP                                                                                            SP2                9ED4    ee  ff       5

AND   oprx8,SP                                                                                             SP1                9EE4    ff           4

ASL   opr8a                                                                                                DIR                38      dd           5

ASLA                                                                                                       INH                48                   1

ASLX                Arithmetic Shift Left             C                       0        ↕  –  –  ↕    ↕  ↕  INH                58                   1

ASL   oprx8,X       (Same as LSL)                                                                          IX1                68      ff           5

ASL   ,X                                                 b7  b0                                            IX                 78                   4

ASL   oprx8,SP                                                                                             SP1                9E68    ff           6

ASR   opr8a                                                                                                DIR                37      dd           5

ASRA                                                                                                       INH                47                   1

ASRX                Arithmetic Shift Right                                    C        ↕  –  –  ↕    ↕  ↕  INH                57                   1

ASR   oprx8,X                                            b7  b0                                            IX1                67      ff           5

ASR   ,X                                                                                                   IX                 77                   4

ASR   oprx8,SP                                                                                             SP1                9E67    ff           6

BCC   rel           Branch if Carry Bit Clear            Branch if (C) = 0             –  –  –  –    –  –  REL                24      rr           3

                                               MC9S08AW60 Data Sheet, Rev 2

120                                                                                                                     Freescale Semiconductor
                                                                                Chapter 7 Central Processor Unit (S08CPUV2)

                             Table 7-2. HCS08 Instruction Set Summary (Sheet 2 of 7)

                                                                                   Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                    on CCR                        Mode

          Form            Operation           Description

                                                                             V  H  I  N    Z  C

                                                                                                 DIR (b0)           11      dd           5

                                                                                                 DIR (b1)           13      dd           5

                                                                                                 DIR (b2)           15      dd           5

BCLR      n,opr8a  Clear Bit n in Memory      Mn ← 0                         –  –  –  –    –  –  DIR (b3)           17      dd           5

                                                                                                 DIR (b4)           19      dd           5

                                                                                                 DIR (b5)           1B      dd           5

                                                                                                 DIR (b6)           1D      dd           5

                                                                                                 DIR (b7)           1F      dd           5

BCS   rel          Branch if Carry Bit Set    Branch if (C) = 1              –  –  –  –    –  –  REL                25      rr           3

                   (Same as BLO)

BEQ   rel          Branch if Equal            Branch if (Z) = 1              –  –  –  –    –  –  REL                27      rr           3

                   Branch if Greater Than or

BGE   rel          Equal To                   Branch if (N ⊕ V) = 0          –  –  –  –    –  –  REL                90      rr           3

                   (Signed Operands)

                   Enter Active Background    Waits For and Processes BDM

BGND               if ENBDM = 1               Commands Until GO, TRACE1, or  –  –  –  –    –  –  INH                82                   5+

                                              TAGGO

BGT   rel          Branch if Greater Than     Branch if (Z) | (N ⊕ V) = 0    –  –  –  –    –  –  REL                92      rr           3

                   (Signed Operands)

BHCC      rel      Branch if Half Carry Bit   Branch if (H) = 0              –  –  –  –    –  –  REL                28      rr           3

                   Clear

BHCS      rel      Branch if Half Carry Bit   Branch if (H) = 1              –  –  –  –    –  –  REL                29      rr           3

                   Set

BHI  rel           Branch if Higher           Branch if (C) | (Z) = 0        –  –  –  –    –  –  REL                22      rr           3

BHS   rel          Branch if Higher or Same   Branch if (C) = 0              –  –  –  –    –  –  REL                24      rr           3

                   (Same as BCC)

BIH rel            Branch if IRQ Pin High     Branch if IRQ pin = 1          –  –  –  –    –  –  REL                2F      rr           3

BIL  rel           Branch if IRQ Pin Low      Branch if IRQ pin = 0          –  –  –  –    –  –  REL                2E      rr           3

BIT  #opr8i                                                                                      IMM                A5      ii           2

BIT  opr8a                                                                                       DIR                B5      dd           3

BIT  opr16a                                   (A) & (M)                                          EXT                C5      hh  ll       4

BIT  oprx16,X      Bit Test                   (CCR Updated but Operands      0  –  –  ↕    ↕  –  IX2                D5      ee  ff       4

BIT  oprx8,X                                  Not Changed)                                       IX1                E5      ff           3

BIT  ,X                                                                                          IX                 F5                   3

BIT  oprx16,SP                                                                                   SP2                9ED5    ee  ff       5

BIT  oprx8,SP                                                                                    SP1                9EE5    ff           4

                   Branch if Less Than

BLE  rel           or Equal To                Branch if (Z) | (N ⊕ V) = 1    –  –  –  –    –  –  REL                93      rr           3

                   (Signed Operands)

BLO   rel          Branch if Lower            Branch if (C)    =1            –  –  –  –    –  –  REL                25      rr           3

                   (Same as BCS)

BLS  rel           Branch if Lower or Same    Branch if (C) |  (Z) = 1       –  –  –  –    –  –  REL                23      rr           3

BLT rel            Branch if Less Than        Branch if (N ⊕ V ) = 1         –  –  –  –    –  –  REL                91      rr           3

                   (Signed Operands)

BMC   rel          Branch if Interrupt Mask   Branch if (I) = 0              –  –  –  –    –  –  REL                2C      rr           3

                   Clear

BMI  rel           Branch if Minus            Branch if (N) = 1              –  –  –  –    –  –  REL                2B      rr           3

BMS   rel          Branch if Interrupt Mask   Branch if (I) = 1              –  –  –  –    –  –  REL                2D      rr           3

                   Set

BNE   rel          Branch if Not Equal        Branch if (Z) = 0              –  –  –  –    –  –  REL                26      rr           3

BPL  rel           Branch if Plus             Branch if (N) = 0              –  –  –  –    –  –  REL                2A      rr           3

BRA   rel          Branch Always              No Test                        –  –  –  –    –  –  REL                20      rr           3

                                              MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                  121
Chapter 7 Central Processor Unit (S08CPUV2)

                               Table 7-2. HCS08 Instruction Set Summary (Sheet 3 of 7)

                                                                                         Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                          on CCR                        Mode

       Form                    Operation           Description

                                                                                   V  H  I  N    Z  C

                                                                                                       DIR (b0)           01      dd  rr       5

                                                                                                       DIR (b1)           03      dd  rr       5

                                                                                                       DIR (b2)           05      dd  rr       5

BRCLR      n,opr8a,rel  Branch if Bit n in Memory  Branch if (Mn) = 0              –  –  –  –    –  ↕  DIR (b3)           07      dd  rr       5

                        Clear                                                                          DIR (b4)           09      dd  rr       5

                                                                                                       DIR (b5)           0B      dd  rr       5

                                                                                                       DIR (b6)           0D      dd  rr       5

                                                                                                       DIR (b7)           0F      dd  rr       5

BRN   rel               Branch Never               Uses 3 Bus Cycles               –  –  –  –    –  –  REL                21      rr           3

                                                                                                       DIR (b0)           00      dd  rr       5

                                                                                                       DIR (b1)           02      dd  rr       5

                                                                                                       DIR (b2)           04      dd  rr       5

BRSET      n,opr8a,rel  Branch if Bit n in Memory  Branch if (Mn) = 1              –  –  –  –    –  ↕  DIR (b3)           06      dd  rr       5

                        Set                                                                            DIR (b4)           08      dd  rr       5

                                                                                                       DIR (b5)           0A      dd  rr       5

                                                                                                       DIR (b6)           0C      dd  rr       5

                                                                                                       DIR (b7)           0E      dd  rr       5

                                                                                                       DIR (b0)           10      dd           5

                                                                                                       DIR (b1)           12      dd           5

                                                                                                       DIR (b2)           14      dd           5

BSET   n,opr8a          Set Bit n in Memory        Mn ← 1                          –  –  –  –    –  –  DIR (b3)           16      dd           5

                                                                                                       DIR (b4)           18      dd           5

                                                                                                       DIR (b5)           1A      dd           5

                                                                                                       DIR (b6)           1C      dd           5

                                                                                                       DIR (b7)           1E      dd           5

                                                   PC ← (PC) + 0x0002

BSR   rel               Branch to Subroutine       push (PCL); SP ← (SP) – 0x0001  –  –  –  –    –  –  REL                AD      rr           5

                                                   push (PCH); SP ← (SP) – 0x0001

                                                   PC ← (PC) + rel

CBEQ   opr8a,rel                                   Branch if (A) = (M)                                 DIR                31      dd  rr       5

CBEQA      #opr8i,rel                              Branch if (A) = (M)                                 IMM                41      ii  rr       4

CBEQX      #opr8i,rel   Compare and Branch if      Branch if (X) = (M)             –  –  –  –    –  –  IMM                51      ii  rr       4

CBEQ   oprx8,X+,rel     Equal                      Branch if (A) = (M)                                 IX1+               61      ff  rr       5

CBEQ   ,X+,rel                                     Branch if (A) = (M)                                 IX+                71      rr           5

CBEQ oprx8,SP,rel                                  Branch if (A) = (M)                                 SP1                9E61    ff  rr       6

CLC                     Clear Carry Bit            C←0                             –  –  –  –    –  0  INH                98                   1

CLI                     Clear Interrupt Mask Bit   I←0                             –  –  0  –    –  –  INH                9A                   1

CLR   opr8a                                        M ← 0x00                                            DIR                3F      dd           5

CLRA                                               A ← 0x00                                            INH                4F                   1

CLRX                                               X ← 0x00                                            INH                5F                   1

CLRH                    Clear                      H ← 0x00                        0  –  –  0    1  –  INH                8C                   1

CLR   oprx8,X                                      M ← 0x00                                            IX1                6F      ff           5

CLR   ,X                                           M ← 0x00                                            IX                 7F                   4

CLR   oprx8,SP                                     M ← 0x00                                            SP1                9E6F    ff           6

CMP   #opr8i                                                                                           IMM                A1      ii           2

CMP   opr8a                                                                                            DIR                B1      dd           3

CMP   opr16a                                       (A) – (M)                                           EXT                C1      hh  ll       4

CMP   oprx16,X          Compare Accumulator        (CCR Updated But Operands Not   ↕  –  –  ↕    ↕  ↕  IX2                D1      ee  ff       4

CMP   oprx8,X           with Memory                Changed)                                            IX1                E1      ff           3

CMP   ,X                                                                                               IX                 F1                   3

CMP   oprx16,SP                                                                                        SP2                9ED1    ee  ff       5

CMP   oprx8,SP                                                                                         SP1                9EE1    ff           4

COM   opr8a                                        M ← (M)= 0xFF – (M)                                 DIR                33      dd           5

COMA                                               A ← (A) = 0xFF – (A)                                INH                43                   1

COMX                    Complement                 X ← (X) = 0xFF – (X)            0  –  –  ↕    ↕  1  INH                53                   1

COM   oprx8,X           (One’s Complement)         M ← (M) = 0xFF – (M)                                IX1                63      ff           5

COM   ,X                                           M ← (M) = 0xFF – (M)                                IX                 73                   4

COM   oprx8,SP                                     M ← (M) = 0xFF – (M)                                SP1                9E63    ff           6

CPHX opr16a                                        (H:X) – (M:M + 0x0001)                              EXT                3E      hh  ll       6

CPHX #opr16i            Compare Index Register     (CCR Updated But Operands Not   ↕  –  –  ↕    ↕  ↕  IMM                65      jj  kk       3

CPHX opr8a              (H:X) with Memory          Changed)                                            DIR                75      dd           5

CPHX oprx8,SP                                                                                          SP1                9EF3    ff           6

                                                   MC9S08AW60 Data Sheet, Rev 2

122                                                                                                                 Freescale Semiconductor
                                                                                        Chapter 7 Central Processor Unit (S08CPUV2)

                                   Table 7-2. HCS08 Instruction Set Summary (Sheet 4 of 7)

                                                                                           Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                            on CCR                        Mode

          Form                  Operation                Description

                                                                                     V  H  I  N    Z  C

CPX   #opr8i                                                                                             IMM                A3      ii           2

CPX   opr8a                                                                                              DIR                B3      dd           3

CPX   opr16a            Compare X (Index                         (X) – (M)                               EXT                C3      hh  ll       4

CPX   oprx16,X          Register Low) with         (CCR Updated But Operands Not     ↕  –  –  ↕    ↕  ↕  IX2                D3      ee  ff       4

CPX   oprx8,X           Memory                           Changed)                                        IX1                E3      ff           3

CPX   ,X                                                                                                 IX                 F3                   3

CPX   oprx16,SP                                                                                          SP2                9ED3    ee  ff       5

CPX   oprx8,SP                                                                                           SP1                9EE3    ff           4

                        Decimal Adjust

DAA                     Accumulator After ADD or                 (A)10               U  –  –  ↕    ↕  ↕  INH                72                   1

                        ADC of BCD Values

DBNZ      opr8a,rel                                                                                      DIR                3B      dd  rr       7

DBNZA     rel                                            Decrement A, X, or M                            INH                4B      rr           4

DBNZX     rel           Decrement and Branch if          Branch if (result) ≠ 0      –  –  –  –    –  –  INH                5B      rr           4

DBNZ      oprx8,X,rel   Not Zero                         DBNZX Affects X Not H                           IX1                6B      ff  rr       7

DBNZ      ,X,rel                                                                                         IX                 7B      rr           6

DBNZ      oprx8,SP,rel                                                                                   SP1                9E6B    ff  rr       8

DEC   opr8a                                              M ← (M) – 0x01                                  DIR                3A      dd           5

DECA                                                     A ← (A) – 0x01                                  INH                4A                   1

DECX                    Decrement                        X ← (X) – 0x01              ↕  –  –  ↕    ↕  –  INH                5A                   1

DEC   oprx8,X                                            M ← (M) – 0x01                                  IX1                6A      ff           5

DEC   ,X                                                 M ← (M) – 0x01                                  IX                 7A                   4

DEC   oprx8,SP                                           M ← (M) – 0x01                                  SP1                9E6A    ff           6

DIV                     Divide                           A ← (H:A)÷(X)               –  –  –  –    ↕  ↕  INH                52                   6

                                                         H ← Remainder

EOR   #opr8i                                                                                             IMM                A8      ii           2

EOR   opr8a                                                                                              DIR                B8      dd           3

EOR   opr16a            Exclusive OR                                                                     EXT                C8      hh  ll       4

EOR   oprx16,X          Memory with                      A ← (A ⊕ M)                 0  –  –  ↕    ↕  –  IX2                D8      ee  ff       4

EOR   oprx8,X           Accumulator                                                                      IX1                E8      ff           3

EOR   ,X                                                                                                 IX                 F8                   3

EOR   oprx16,SP                                                                                          SP2                9ED8    ee  ff       5

EOR   oprx8,SP                                                                                           SP1                9EE8    ff           4

INC   opr8a                                              M ← (M) + 0x01                                  DIR                3C      dd           5

INCA                                                     A ← (A) + 0x01                                  INH                4C                   1

INCX                    Increment                        X ← (X) + 0x01              ↕  –  –  ↕    ↕  –  INH                5C                   1

INC   oprx8,X                                            M ← (M) + 0x01                                  IX1                6C      ff           5

INC   ,X                                                 M ← (M) + 0x01                                  IX                 7C                   4

INC   oprx8,SP                                           M ← (M) + 0x01                                  SP1                9E6C    ff           6

JMP   opr8a                                                                                              DIR                BC      dd           3

JMP   opr16a                                                                                             EXT                CC      hh  ll       4

JMP   oprx16,X          Jump                             PC ← Jump Address           –  –  –  –    –  –  IX2                DC      ee  ff       4

JMP   oprx8,X                                                                                            IX1                EC      ff           3

JMP   ,X                                                                                                 IX                 FC                   3

JSR   opr8a                                        PC ← (PC) + n  (n = 1, 2, or 3)                       DIR                BD      dd           5

JSR   opr16a                                       Push  (PCL);  SP ← (SP) – 0x0001                      EXT                CD      hh  ll       6

JSR   oprx16,X          Jump to Subroutine         Push  (PCH);  SP ← (SP) – 0x0001  –  –  –  –    –  –  IX2                DD      ee  ff       6

JSR   oprx8,X                                      PC ← Unconditional Address                            IX1                ED      ff           5

JSR   ,X                                                                                                 IX                 FD                   5

LDA   #opr8i                                                                                             IMM                A6      ii           2

LDA   opr8a                                                                                              DIR                B6      dd           3

LDA   opr16a                                                                                             EXT                C6      hh  ll       4

LDA   oprx16,X          Load Accumulator from                    A ← (M)             0  –  –  ↕    ↕  –  IX2                D6      ee  ff       4

LDA   oprx8,X           Memory                                                                           IX1                E6      ff           3

LDA   ,X                                                                                                 IX                 F6                   3

LDA   oprx16,SP                                                                                          SP2                9ED6    ee  ff       5

LDA   oprx8,SP                                                                                           SP1                9EE6    ff           4

LDHX      #opr16i                                                                                        IMM                45      jj  kk       3

LDHX      opr8a                                                                                          DIR                55      dd           4

LDHX      opr16a        Load Index Register (H:X)                                                        EXT                32      hh  ll       5

LDHX      ,X            from Memory                      H:X ← (M:M + 0x0001)        0  –  –  ↕    ↕  –  IX                 9EAE                 5

LDHX      oprx16,X                                                                                       IX2                9EBE    ee  ff       6

LDHX      oprx8,X                                                                                        IX1                9ECE    ff           5

LDHX      oprx8,SP                                                                                       SP1                9EFE    ff           5

                                                   MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                          123
Chapter 7 Central Processor Unit (S08CPUV2)

                            Table 7-2. HCS08 Instruction Set Summary (Sheet 5 of 7)

                                                                                       Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                        on CCR                        Mode

          Form             Operation                 Description

                                                                                 V  H  I  N    Z  C

LDX   #opr8i                                                                                         IMM                AE      ii           2

LDX   opr8a                                                                                          DIR                BE      dd           3

LDX   opr16a                                                                                         EXT                CE      hh  ll       4

LDX   oprx16,X      Load X (Index Register                   X ← (M)             0  –  –  ↕    ↕  –  IX2                DE      ee  ff       4

LDX   oprx8,X       Low) from Memory                                                                 IX1                EE      ff           3

LDX   ,X                                                                                             IX                 FE                   3

LDX   oprx16,SP                                                                                      SP2                9EDE    ee  ff       5

LDX   oprx8,SP                                                                                       SP1                9EEE    ff           4

LSL   opr8a                                                                                          DIR                38      dd           5

LSLA                                                                                                 INH                48                   1

LSLX                Logical Shift Left         C                              0  ↕  –  –  ↕    ↕  ↕  INH                58                   1

LSL   oprx8,X       (Same as ASL)                    b7               b0                             IX1                68      ff           5

LSL   ,X                                                                                             IX                 78                   4

LSL   oprx8,SP                                                                                       SP1                9E68    ff           6

LSR   opr8a                                                                                          DIR                34      dd           5

LSRA                                                                                                 INH                44                   1

LSRX                Logical Shift Right        0                              C  ↕  –  –  0    ↕  ↕  INH                54                   1

LSR   oprx8,X                                        b7               b0                             IX1                64      ff           5

LSR   ,X                                                                                             IX                 74                   4

LSR   oprx8,SP                                                                                       SP1                9E64    ff           6

MOV opr8a,opr8a                                   (M)destination ← (M)source                         DIR/DIR            4E      dd  dd       5

MOV   opr8a,X+      Move                                                         0  –  –  ↕    ↕  –  DIR/IX+            5E      dd           5

MOV   #opr8i,opr8a                             H:X ← (H:X) + 0x0001 in                               IMM/DIR            6E      ii  dd       4

MOV   ,X+,opr8a                                IX+/DIR and DIR/IX+ Modes                             IX+/DIR            7E      dd           5

MUL                 Unsigned multiply                X:A ← (X) × (A)             –  0  –  –    –  0  INH                42                   5

NEG   opr8a                                       M ← – (M) = 0x00 – (M)                             DIR                30      dd           5

NEGA                                              A ← – (A) = 0x00 – (A)                             INH                40                   1

NEGX                Negate                        X ← – (X) = 0x00 – (X)            –  –  ↕    ↕  ↕  INH                50                   1

NEG   oprx8,X       (Two’s Complement)            M ← – (M) = 0x00 – (M)                             IX1                60      ff           5

NEG   ,X                                          M ← – (M) = 0x00 – (M)                             IX                 70                   4

NEG   oprx8,SP                                    M ← – (M) = 0x00 – (M)                             SP1                9E60    ff           6

NOP                 No Operation                     Uses 1 Bus Cycle            –  –  –  –    –  –  INH                9D                   1

NSA                 Nibble Swap                      A ← (A[3:0]:A[7:4])         –  –  –  –    –  –  INH                62                   1

                    Accumulator

ORA   #opr8i                                                                                         IMM                AA      ii           2

ORA   opr8a                                                                                          DIR                BA      dd           3

ORA   opr16a                                                                                         EXT                CA      hh  ll       4

ORA   oprx16,X      Inclusive OR Accumulator         A ← (A) | (M)               0  –  –  ↕    ↕  –  IX2                DA      ee  ff       4

ORA   oprx8,X       and Memory                                                                       IX1                EA      ff           3

ORA   ,X                                                                                             IX                 FA                   3

ORA   oprx16,SP                                                                                      SP2                9EDA    ee  ff       5

ORA   oprx8,SP                                                                                       SP1                9EEA    ff           4

PSHA                Push Accumulator onto      Push (A); SP ← (SP) – 0x0001      –  –  –  –    –  –  INH                87                   2

                    Stack

PSHH                Push H (Index Register     Push (H); SP ← (SP) – 0x0001      –  –  –  –    –  –  INH                8B                   2

                    High) onto Stack

PSHX                Push X (Index Register     Push (X); SP ← (SP) – 0x0001      –  –  –  –    –  –  INH                89                   2

                    Low) onto Stack

PULA                Pull Accumulator from      SP ← (SP + 0x0001); Pull (A)      –  –  –  –    –  –  INH                86                   3

                    Stack

PULH                Pull H (Index Register     SP ← (SP + 0x0001); Pull (H)      –  –  –  –    –  –  INH                8A                   3

                    High) from Stack

PULX                Pull X (Index Register     SP ← (SP + 0x0001); Pull (X)      –  –  –  –    –  –  INH                88                   3

                    Low) from Stack

ROL   opr8a                                                                                          DIR                39      dd           5

ROLA                                                                                                 INH                49                   1

ROLX                Rotate Left through Carry     C                              ↕  –  –  ↕    ↕  ↕  INH                59                   1

ROL   oprx8,X                                            b7               b0                         IX1                69      ff           5

ROL   ,X                                                                                             IX                 79                   4

ROL   oprx8,SP                                                                                       SP1                9E69    ff           6

                                               MC9S08AW60 Data Sheet, Rev 2

124                                                                                                               Freescale Semiconductor
                                                                                 Chapter 7 Central Processor Unit (S08CPUV2)

                            Table 7-2. HCS08 Instruction Set Summary (Sheet 6 of 7)

                                                                                    Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                     on CCR                        Mode

      Form               Operation           Description

                                                                              V  H  I  N    Z  C

ROR   opr8a                                                                                       DIR                36      dd           5

RORA                                                                                              INH                46                   1

RORX             Rotate Right through                             C           ↕  –  –  ↕    ↕  ↕  INH                56                   1

ROR   oprx8,X    Carry                   b7                   b0                                  IX1                66      ff           5

ROR   ,X                                                                                          IX                 76                   4

ROR   oprx8,SP                                                                                    SP1                9E66    ff           6

RSP              Reset Stack Pointer         SP ← 0xFF                        –  –  –  –    –  –  INH                9C                   1

                                         (High Byte Not Affected)

                                         SP ← (SP) + 0x0001;  Pull (CCR)

                                         SP ← (SP) + 0x0001;      Pull (A)

RTI              Return from Interrupt   SP ← (SP) + 0x0001;      Pull (X)    ↕  ↕  ↕  ↕    ↕  ↕  INH                80                   9

                                         SP ← (SP) + 0x0001;      Pull (PCH)

                                         SP ← (SP) + 0x0001;      Pull (PCL)

RTS              Return from Subroutine  SP ← SP + 0x0001; Pull (PCH)         –  –  –  –    –  –  INH                81                   6

                                         SP ← SP + 0x0001; Pull (PCL)

SBC   #opr8i                                                                                      IMM                A2      ii           2

SBC   opr8a                                                                                       DIR                B2      dd           3

SBC   opr16a                                                                                      EXT                C2      hh  ll       4

SBC   oprx16,X   Subtract with Carry     A ← (A) – (M) – (C)                  ↕  –  –  ↕    ↕  ↕  IX2                D2      ee  ff       4

SBC   oprx8,X                                                                                     IX1                E2      ff           3

SBC   ,X                                                                                          IX                 F2                   3

SBC   oprx16,SP                                                                                   SP2                9ED2    ee  ff       5

SBC  oprx8,SP                                                                                     SP1                9EE2    ff           4

SEC              Set Carry Bit               C←1                              –  –  –  –    –  1  INH                99                   1

SEI              Set Interrupt Mask Bit      I←1                              –  –  1  –    –  –  INH                9B                   1

STA  opr8a                                                                                        DIR                B7      dd           3

STA  opr16a                                                                                       EXT                C7      hh  ll       4

STA  oprx16,X    Store Accumulator in                                                             IX2                D7      ee  ff       4

STA  oprx8,X     Memory                      M ← (A)                          0  –  –  ↕    ↕  –  IX1                E7      ff           3

STA   ,X                                                                                          IX                 F7                   2

STA  oprx16,SP                                                                                    SP2                9ED7    ee  ff       5

STA  oprx8,SP                                                                                     SP1                9EE7    ff           4

STHX opr8a                                                                                        DIR                35      dd           4

STHX opr16a      Store H:X (Index Reg.)  (M:M + 0x0001) ← (H:X)               0  –  –  ↕    ↕  –  EXT                96      hh  ll       5

STHX oprx8,SP                                                                                     SP1                9EFF    ff           5

                 Enable Interrupts:

STOP             Stop Processing         I bit ← 0; Stop Processing           –  –  0  –    –  –  INH                8E                   2+

                 Refer to MCU

                 Documentation

STX  opr8a                                                                                        DIR                BF      dd           3

STX  opr16a                                                                                       EXT                CF      hh  ll       4

STX  oprx16,X    Store X (Low 8 Bits of                                                           IX2                DF      ee  ff       4

STX  oprx8,X     Index Register)             M ← (X)                          0  –  –  ↕    ↕  –  IX1                EF      ff           3

STX   ,X         in Memory                                                                        IX                 FF                   2

STX  oprx16,SP                                                                                    SP2                9EDF    ee  ff       5

STX  oprx8,SP                                                                                     SP1                9EEF    ff           4

SUB   #opr8i                                                                                      IMM                A0      ii           2

SUB   opr8a                                                                                       DIR                B0      dd           3

SUB   opr16a                                                                                      EXT                C0      hh  ll       4

SUB   oprx16,X   Subtract                    A ← (A) – (M)                    ↕  –  –  ↕    ↕  ↕  IX2                D0      ee  ff       4

SUB   oprx8,X                                                                                     IX1                E0      ff           3

SUB   ,X                                                                                          IX                 F0                   3

SUB   oprx16,SP                                                                                   SP2                9ED0    ee  ff       5

SUB  oprx8,SP                                                                                     SP1                9EE0    ff           4

                                         PC ← (PC) + 0x0001

                                         Push (PCL); SP ← (SP) – 0x0001

                                         Push (PCH); SP ← (SP) – 0x0001

                                         Push (X); SP ← (SP) – 0x0001

SWI              Software Interrupt      Push (A); SP ← (SP) – 0x0001         –  –  1  –    –  –  INH                83                   11

                                         Push (CCR); SP ← (SP) – 0x0001

                                             I ← 1;

                                         PCH ← Interrupt Vector High Byte

                                         PCL ← Interrupt Vector Low Byte

                                         MC9S08AW60 Data Sheet, Rev 2

Freescale Semiconductor                                                                                                                   125
Chapter 7 Central Processor Unit (S08CPUV2)

                     Table 7-2. HCS08 Instruction Set Summary (Sheet 7 of 7)

                                                                                   Effect            Address        Opcode      Operand  Bus Cycles1

      Source                                                                    on CCR                        Mode

      Form           Operation                        Description

                                                                             V  H  I  N    Z  C

TAP             Transfer Accumulator to               CCR ← (A)              ↕  ↕  ↕  ↕    ↕  ↕  INH                84                   1

                CCR

TAX             Transfer Accumulator to               X ← (A)                –  –  –  –    –  –  INH                97                   1

                X (Index Register Low)

TPA             Transfer CCR to                       A ← (CCR)              –  –  –  –    –  –  INH                85                   1

                Accumulator

TST   opr8a                                           (M) – 0x00                                 DIR                3D      dd           4

TSTA                                                  (A) – 0x00                                 INH                4D                   1

TSTX            Test for Negative or Zero             (X) – 0x00             0  –  –  ↕    ↕  –  INH                5D                   1

TST   oprx8,X                                         (M) – 0x00                                 IX1                6D      ff           4

TST   ,X                                              (M) – 0x00                                 IX                 7D                   3

TST   oprx8,SP                                        (M) – 0x00                                 SP1                9E6D    ff           5

TSX             Transfer SP to Index Reg.             H:X ← (SP) + 0x0001    –  –  –  –    –  –  INH                95                   2

TXA             Transfer X (Index Reg.                A ← (X)                –  –  –  –    –  –  INH                9F                   1

                Low) to Accumulator

TXS             Transfer Index Reg. to SP             SP ← (H:X) – 0x0001    –  –  –  –    –  –  INH                94                   2

WAIT            Enable Interrupts; Wait               I bit ← 0; Halt CPU    –  –  0  –    –  –  INH                8F                   2+

                for Interrupt

1  Bus clock frequency is one-half of the CPU  clock  frequency.

                                               MC9S08AW60 Data Sheet, Rev 2

126                                                                                                           Freescale Semiconductor
                                                                                                                                     Chapter 7 Central Processor Unit (S08CPUV2)

                                                                    Table 7-3. Opcode                 Map (Sheet 1               of 2)

    Bit-Manipulation        Branch                      Read-Modify-Write                                       Control                                     Register/Memory

00    5    10         5  20       3  30       5     40       1  50        1  60       5  70       4   80        9   90        3  A0       2  B0       3  C0       4   D0       4  E0       3  F0       3

BRSET0     BSET0             BRA         NEG           NEGA        NEGX          NEG         NEG           RTI          BGE          SUB         SUB         SUB         SUB          SUB         SUB

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      2    REL     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

01    5    11         5  21       3  31       5     41       4  51        4  61       5  71       5   81        6   91        3  A1       2  B1       3  C1       4   D1       4  E1       3  F1       3

BRCLR0     BCLR0             BRN        CBEQ        CBEQA       CBEQX           CBEQ        CBEQ          RTS            BLT        CMP         CMP         CMP          CMP         CMP         CMP

3     DIR  2    DIR      2   REL     3   DIR        3   IMM     3   IMM      3   IX1+    2   IX+      1    INH      2    REL     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

02    5    12         5  22       3  32       5     42       5  52        6  62       1  72       1   82        5+  92        3  A2       2  B2       3  C2       4   D2       4  E2       3  F2       3

BRSET1     BSET1             BHI        LDHX            MUL         DIV          NSA         DAA         BGND           BGT          SBC         SBC         SBC         SBC          SBC         SBC

3     DIR  2    DIR      2   REL     3   EXT        1   INH     1   INH      1   INH     1   INH      1    INH      2    REL     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

03    5    13         5  23       3  33       5     43       1  53        1  63       5  73       4   83        11  93        3  A3       2  B3       3  C3       4   D3       4  E3       3  F3       3

BRCLR1     BCLR1             BLS        COM            COMA        COMX         COM         COM           SWI            BLE         CPX         CPX         CPX         CPX          CPX         CPX

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      2    REL     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

04    5    14         5  24       3  34       5     44       1  54        1  64       5  74       4   84        1   94        2  A4       2  B4       3  C4       4   D4       4  E4       3  F4       3

BRSET2     BSET2             BCC         LSR           LSRA        LSRX          LSR         LSR          TAP           TXS         AND         AND          AND         AND         AND          AND

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

05    5    15         5  25       3  35       4     45       3  55        4  65       3  75       5   85        1   95        2  A5       2  B5       3  C5       4   D5       4  E5       3  F5       3

BRCLR2     BCLR2             BCS        STHX           LDHX        LDHX         CPHX        CPHX          TPA           TSX          BIT         BIT         BIT          BIT         BIT         BIT

3     DIR  2    DIR      2   REL     2   DIR        3   IMM     2   DIR      3   IMM     2   DIR      1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

06    5    16         5  26       3  36       5     46       1  56        1  66       5  76       4   86        3   96        5  A6       2  B6       3  C6       4   D6       4  E6       3  F6       3

BRSET3     BSET3             BNE         ROR           RORA        RORX          ROR         ROR          PULA         STHX          LDA         LDA         LDA          LDA         LDA         LDA

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      3    EXT     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

07    5    17         5  27       3  37       5     47       1  57        1  67       5  77       4   87        2   97        1  A7       2  B7       3  C7       4   D7       4  E7       3  F7       2

BRCLR3     BCLR3             BEQ         ASR           ASRA        ASRX          ASR         ASR         PSHA            TAX         AIS         STA         STA          STA         STA         STA

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

08    5    18         5  28       3  38       5     48       1  58        1  68       5  78       4   88        3   98        1  A8       2  B8       3  C8       4   D8       4  E8       3  F8       3

BRSET4     BSET4            BHCC         LSL           LSLA        LSLX          LSL         LSL          PULX          CLC         EOR         EOR         EOR          EOR         EOR         EOR

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

09    5    19         5  29       3  39       5     49       1  59        1  69       5  79       4   89        2   99        1  A9       2  B9       3  C9       4   D9       4  E9       3  F9       3

BRCLR4     BCLR4            BHCS         ROL           ROLA        ROLX          ROL         ROL         PSHX           SEC         ADC         ADC          ADC         ADC         ADC          ADC

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

0A    5    1A         5  2A       3  3A       5     4A       1  5A        1  6A       5  7A       4   8A        3   9A        1  AA       2  BA       3  CA       4   DA       4  EA       3  FA       3

BRSET5     BSET5             BPL         DEC           DECA        DECX          DEC         DEC          PULH           CLI        ORA         ORA         ORA          ORA         ORA         ORA

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

0B    5    1B         5  2B       3  3B       7     4B       4  5B        4  6B       7  7B       6   8B        2   9B        1  AB       2  BB       3  CB       4   DB       4  EB       3  FB       3

BRCLR5     BCLR5             BMI        DBNZ        DBNZA       DBNZX           DBNZ        DBNZ         PSHH            SEI        ADD         ADD          ADD         ADD         ADD          ADD

3     DIR  2    DIR      2   REL     3   DIR        2   INH     2   INH      3   IX1     2        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

0C    5    1C         5  2C       3  3C       5     4C       1  5C        1  6C       5  7C       4   8C        1   9C        1              BC       3  CC       4   DC       4  EC       3  FC       3

BRSET6     BSET6             BMC         INC           INCA        INCX          INC         INC         CLRH           RSP                      JMP         JMP         JMP          JMP         JMP

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH                 2   DIR     3   EXT      3   IX2     2    IX1    1        IX

0D    5    1D         5  2D       3  3D       4     4D       1  5D        1  6D       4  7D       3                 9D        1  AD       5  BD       5  CD       6   DD       6  ED       5  FD       5

BRCLR6     BCLR6             BMS         TST           TSTA        TSTX          TST         TST                        NOP          BSR         JSR         JSR          JSR         JSR         JSR

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX                1    INH     2   REL     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

0E    5    1E         5  2E       3  3E       6     4E       5  5E        5  6E       4  7E       5   8E        2+  9E           AE       2  BE       3  CE       4   DE       4  EE       3  FE       3

BRSET7     BSET7             BIL        CPHX            MOV         MOV          MOV         MOV         STOP          Page 2        LDX         LDX         LDX          LDX         LDX         LDX

3     DIR  2    DIR      2   REL     3   EXT        3   DD      2   DIX+     3   IMD     2   IX+D     1    INH                   2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

0F    5    1F         5  2F       3  3F       5     4F       1  5F        1  6F       5  7F       4   8F        2+  9F        1  AF       2  BF       3  CF       4   DF       4  EF       3  FF       2

BRCLR7     BCLR7             BIH         CLR           CLRA        CLRX          CLR         CLR          WAIT          TXA          AIX         STX         STX          STX         STX         STX

3     DIR  2    DIR      2   REL     2   DIR        1   INH     1   INH      2   IX1     1        IX  1    INH      1    INH     2   IMM     2   DIR     3   EXT      3   IX2     2    IX1    1        IX

INH   Inherent               REL        Relative                    SP1      Stack Pointer, 8-Bit Offset

IMM   Immediate              IX         Indexed, No Offset          SP2      Stack Pointer, 16-Bit Offset

DIR   Direct                 IX1        Indexed, 8-Bit Offset       IX+      Indexed, No Offset with

EXT   Extended               IX2        Indexed, 16-Bit Offset               Post Increment

DD    DIR to DIR             IMD        IMM to DIR                  IX1+     Indexed, 1-Byte Offset with

IX+D  IX+ to DIR             DIX+       DIR to IX+                           Post Increment                                                  Opcode in

                                                                                                                                          Hexadecimal    F0       3   HCS08 Cycles

                                                                                                                                                             SUB      Instruction Mnemonic

                                                                                                                                     Number of Bytes     1        IX  Addressing Mode

                                                                             MC9S08AW60 Data Sheet, Rev 2

   Freescale Semiconductor                                                                                                                                                                        127
Chapter 7 Central Processor  Unit     (S08CPUV2)

                                                  Table 7-3. Opcode                         Map (Sheet    2  of  2)

Bit-Manipulation  Branch              Read-Modify-Write                                          Control                                 Register/Memory

                                                                   9E60     6                                                                     9ED0    5  9EE0    4

                                                                      NEG                                                                            SUB        SUB

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                   9E61     6                                                                     9ED1    5  9EE1    4

                                                                      CBEQ                                                                           CMP        CMP

                                                                   4     SP1                                                                      4     SP2  3     SP1

                                                                                                                                                  9ED2    5  9EE2    4

                                                                                                                                                     SBC        SBC

                                                                                                                                                  4     SP2  3     SP1

                                                                   9E63     6                                                                     9ED3    5  9EE3    4  9EF3     6

                                                                      COM                                                                            CPX        CPX        CPHX

                                                                   3     SP1                                                                      4     SP2  3     SP1  3     SP1

                                                                   9E64     6                                                                     9ED4    5  9EE4    4

                                                                      LSR                                                                            AND        AND

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                                                                                                  9ED5    5  9EE5    4

                                                                                                                                                     BIT        BIT

                                                                                                                                                  4     SP2  3     SP1

                                                                   9E66     6                                                                     9ED6    5  9EE6    4

                                                                      ROR                                                                            LDA        LDA

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                   9E67     6                                                                     9ED7    5  9EE7    4

                                                                      ASR                                                                            STA        STA

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                   9E68     6                                                                     9ED8    5  9EE8    4

                                                                      LSL                                                                            EOR        EOR

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                   9E69     6                                                                     9ED9    5  9EE9    4

                                                                      ROL                                                                            ADC        ADC

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                   9E6A     6                                                                     9EDA    5  9EEA    4

                                                                      DEC                                                                            ORA        ORA

                                                                   3     SP1                                                                      4     SP2  3     SP1

                                                                   9E6B     8                                                                     9EDB    5  9EEB    4

                                                                      DBNZ                                                                           ADD        ADD

                                                                   4     SP1                                                                      4     SP2  3     SP1

                                                                   9E6C     6

                                                                      INC

                                                                   3     SP1

                                                                   9E6D     5

                                                                      TST

                                                                   3     SP1

                                                                                                             9EAE     5  9EBE     6   9ECE     5  9EDE    5  9EEE    4  9EFE     5

                                                                                                                LDHX        LDHX         LDHX        LDX        LDX        LDHX

                                                                                                             2       IX  4     IX2    3     IX1   4     SP2  3     SP1  3     SP1

                                                                   9E6F     6                                                                     9EDF    5  9EEF    4  9EFF     5

                                                                      CLR                                                                            STX        STX        STHX

                                                                   3     SP1                                                                      4     SP2  3     SP1  3     SP1

INH   Inherent    REL     Relative                SP1              Stack Pointer, 8-Bit Offset

IMM   Immediate   IX      Indexed, No Offset      SP2              Stack Pointer, 16-Bit Offset

DIR   Direct      IX1     Indexed, 8-Bit Offset   IX+              Indexed, No Offset with

EXT   Extended    IX2     Indexed, 16-Bit Offset                   Post Increment

DD    DIR to DIR  IMD     IMM to DIR              IX1+             Indexed, 1-Byte Offset with

IX+D  IX+ to DIR  DIX+    DIR to IX+                               Post Increment

Note: All Sheet 2 Opcodes are Preceded by the Page 2 Prebyte (9E)                                         Prebyte (9E) and Opcode in

                                                                                                                      Hexadecimal     9E60     6  HCS08 Cycles

                                                                                                                                         NEG      Instruction Mnemonic

                                                                                                                 Number of Bytes      3     SP1   Addressing Mode

                                                                   MC9S08AW60 Data Sheet, Rev 2

128