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

型号

产品描述

搜索
 

ST72P325AR6T3

器件型号:ST72P325AR6T3
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:STMICROELECTRONICS
厂商官网:http://www.st.com/
下载文档

器件描述

8-BIT, FLASH, 8 MHz, MICROCONTROLLER, PQFP64

参数

ST72P325AR6T3外部数据总线宽度 0.0
ST72P325AR6T3输入输出总线数量 48
ST72P325AR6T3端子数量 64
ST72P325AR6T3最小工作温度 -40 Cel
ST72P325AR6T3最大工作温度 85 Cel
ST72P325AR6T3线速度 8 MHz
ST72P325AR6T3加工封装描述 10 X 10 MM, PLASTIC, LQFP-64
ST72P325AR6T3reach_compliant Yes
ST72P325AR6T3欧盟RoHS规范 Yes
ST72P325AR6T3状态 Active
ST72P325AR6T3microprocessor_microcontroller_peripheral_ic_type MICROCONTROLLER
ST72P325AR6T3ADC通道 YES
ST72P325AR6T3地址总线宽度 0.0
ST72P325AR6T3位数 8
ST72P325AR6T3clock_frequency_max 16 MHz
ST72P325AR6T3cpu_family ST72
ST72P325AR6T3DAC通道 NO
ST72P325AR6T3DMA通道 NO
ST72P325AR6T3jesd_30_code S-PQFP-G64
ST72P325AR6T3jesd_609_code e4
ST72P325AR6T3moisture_sensitivity_level 3
ST72P325AR6T3包装材料 PLASTIC/EPOXY
ST72P325AR6T3package_code LFQFP
ST72P325AR6T3package_equivalence_code QFP64,.47SQ,20
ST72P325AR6T3包装形状 SQUARE
ST72P325AR6T3包装尺寸 FLATPACK, LOW PROFILE, FINE PITCH
ST72P325AR6T3peak_reflow_temperature__cel_ 260
ST72P325AR6T3power_supplies 3.3/5
ST72P325AR6T3PWM通道 YES
ST72P325AR6T3qualification_status COMMERCIAL
ST72P325AR6T3ram__bytes_ 2048
ST72P325AR6T3ROM编程 FLASH
ST72P325AR6T3rom__words_ 61440
ST72P325AR6T3seated_height_max 1.6 mm
ST72P325AR6T3sub_category Microcontrollers
ST72P325AR6T3最大供电电压 8 mA
ST72P325AR6T3额定供电电压 5 V
ST72P325AR6T3最小供电电压 4.5 V
ST72P325AR6T3最大供电电压 5.5 V
ST72P325AR6T3表面贴装 YES
ST72P325AR6T3工艺 CMOS
ST72P325AR6T3温度等级 INDUSTRIAL
ST72P325AR6T3端子涂层 NICKEL PALLADIUM GOLD
ST72P325AR6T3端子形式 GULL WING
ST72P325AR6T3端子间距 0.5000 mm
ST72P325AR6T3端子位置 QUAD
ST72P325AR6T3time_peak_reflow_temperature_max__s_ 30
ST72P325AR6T3length 10 mm
ST72P325AR6T3width 10 mm

文档预览

ST72P325AR6T3器件文档内容

                                                              ST72325xx

                        8-bit MCU with 16 to 60K Flash/ROM, ADC, CSS,
                                                5 timers, SPI, SCI, I2C interface

Features                                               LQFP64                          LQFP44 LQFP48 LQFP32
                                                       10 x 10
Memories                                                                              10 x 10 7 x 7  7x7

    16K to 60K dual voltage High Density Flash        LQFP64                          SDIP42         SDIP32
     (HDFlash) or up to 32K ROM with read-out          14 x 14                         600 mil        400 mil
     protection capability. In-Application Program-
     ming and In-Circuit Programming for HDFlash          Configurable watchdog timer
     devices                                              Two 16-bit timers with: 2 input captures, 2 out-

    512 to 2048 bytes RAM                                  put compares, external clock input on one tim-
    HDFlash endurance: 100 cycles, data reten-             er, PWM and pulse generator modes
                                                          8-bit PWM Auto-reload timer with: 2 input cap-
     tion: 40 years at 85C                                 tures, 4 PWM outputs, output compare and
Clock, reset and supply management                         time base interrupt, external clock with event
                                                            detector
    Enhanced low voltage supervisor (LVD) for          3 Communication interfaces
     main supply and auxiliary voltage detector
     (AVD) with interrupt capability                      SPI synchronous serial interface
                                                          SCI asynchronous serial interface
    Clock sources: crystal/ceramic resonator os-          I2C multimaster interface
     cillators, internal RC oscillator and bypass for   1 Analog peripheral (low current coupling)
     external clock
                                                          10-bit ADC with up to 16 robust input ports
    PLL for 2x frequency multiplication                Instruction set
    Four Power Saving Modes: Halt, Active-Halt,
                                                          8-bit Data Manipulation
     Wait and Slow                                        63 Basic Instructions
    Clock Security System                                 17 main Addressing Modes
Interrupt management                                     8 x 8 Unsigned Multiply Instruction
                                                        Development tools
    Nested interrupt controller
    14 interrupt vectors plus TRAP and RESET             Full hardware/software development package
    Top Level Interrupt (TLI) pin on 64-pin devices       DM (Debug module)
    9/6 external interrupt lines (on 4 vectors)
Up to 48 I/O ports

    48/36/32/24 multifunctional bidirectional I/O
     lines

    34/26/22/17 alternate function lines
    16/13/12/10 high sink outputs
5 timers

    Main Clock Controller with: Real time base,
     Beep and Clock-out capabilities

Table 1. Device summary

                                ST72325S4 /            ST72325S6 /                                 ST72325R9 /
                        ST72325J4 / ST72325K4  ST72325J6 / ST72325K6
Features                                                                               ST72325J7   ST72325AR9 /

                                                                                                   ST72325C9 /ST72325J9

Program memory - bytes   Flash/ROM 16K                 Flash/ROM 32K                   Flash 48K      Flash 60K

RAM (stack) - bytes      512 (256)                     1024(256)                       1536 (256)     2048(256)

Operating Voltage                                      3.8V to 5.5V

Temp. Range                                            up to -40C to +125C

Package                 LQFP48(S), LQFP44/SDIP42 (J), LQFP48(S) , LQFP44/ SDIP42 (J),  LQFP44 (J)  LQFP64 14x14(R), LQFP64
                                                                                                     10x10(AR), LQFP48(C),
                        LQFP32/DIP32 (K)               LQFP32/DIP32 (K)                                      LQFP44 (J)

October 2008                                   Rev 4                                                             1/197

                                                                                                                     1
                               Table of Contents

1 DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 PIN DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 REGISTER & MEMORY MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 FLASH PROGRAM MEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    4.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
    4.2 MAIN FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
    4.3 STRUCTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

          4.3.1 Read-out Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
    4.4 ICC INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    4.5 ICP (IN-CIRCUIT PROGRAMMING) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
    4.6 IAP (IN-APPLICATION PROGRAMMING) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
    4.7 RELATED DOCUMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

          4.7.1 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5 CENTRAL PROCESSING UNIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    5.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
    5.2 MAIN FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
    5.3 CPU REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6 SUPPLY, RESET AND CLOCK MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
    6.1 PHASE LOCKED LOOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
    6.2 MULTI-OSCILLATOR (MO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
    6.3 RESET SEQUENCE MANAGER (RSM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

          6.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
          6.3.2 Asynchronous External RESET pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
          6.3.3 External Power-On RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
          6.3.4 Internal Low Voltage Detector (LVD) RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
          6.3.5 Internal Watchdog RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
    6.4 SYSTEM INTEGRITY MANAGEMENT (SI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
          6.4.1 Low Voltage Detector (LVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
          6.4.2 Auxiliary Voltage Detector (AVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
          6.4.3 Clock Security System (CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
          6.4.4 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
          6.4.5 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
7 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
    7.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
    7.2 MASKING AND PROCESSING FLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
    7.3 INTERRUPTS AND LOW POWER MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
    7.4 CONCURRENT & NESTED MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
    7.5 INTERRUPT REGISTER DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
    7.6 EXTERNAL INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
          7.6.1 I/O Port Interrupt Sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
    7.7 EXTERNAL INTERRUPT CONTROL REGISTER (EICR) . . . . . . . . . . . . . . . . . . . . . . . . . 43
8 POWER SAVING MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 9. 7. . 45
    8.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
    8.2 SLOW MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2/197

1
                               Table of Contents

    8.3 WAIT MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
    8.4 ACTIVE-HALT AND HALT MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

          8.4.1 ACTIVE-HALT MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
          8.4.2 HALT MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9 I/O PORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
    9.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
    9.2 FUNCTIONAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
          9.2.1 Input Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
          9.2.2 Output Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
          9.2.3 Alternate Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
    9.3 I/O PORT IMPLEMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
    9.4 LOW POWER MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
    9.5 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
          9.5.1 I/O Port Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
10 ON-CHIP PERIPHERALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
    10.1 WATCHDOG TIMER (WDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
          10.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
          10.1.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
          10.1.3 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
          10.1.4 How to Program the Watchdog Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
          10.1.5 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
          10.1.6 Hardware Watchdog Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
          10.1.7 Using Halt Mode with the WDG (WDGHALT option) . . . . . . . . . . . . . . . . . . . . . . . 59
          10.1.8 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
          10.1.9 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
    10.2 MAIN CLOCK CONTROLLER WITH REAL TIME CLOCK AND BEEPER (MCC/RTC) . . 61
          10.2.1 Programmable CPU Clock Prescaler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
          10.2.2 Clock-out Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
          10.2.3 Real Time Clock Timer (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
          10.2.4 Beeper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
          10.2.5 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
          10.2.6 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
          10.2.7 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
    10.3 PWM AUTO-RELOAD TIMER (ART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
          10.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
          10.3.2 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
          10.3.3 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
    10.4 16-BIT TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
          10.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
          10.4.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
          10.4.3 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
          10.4.4 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
          10.4.5 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
          10.4.6 Summary of Timer Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
          10.4.7 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
    10.5 SERIAL PERIPHERAL INTERFACE (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

                                                                                                                                                        3/197

                                                                                                                          1
                               Table of Contents

          10.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
          10.5.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
          10.5.3 General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
          10.5.4 Clock Phase and Clock Polarity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
          10.5.5 Error Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
          10.5.6 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
          10.5.7 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
          10.5.8 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
    10.6 SERIAL COMMUNICATIONS INTERFACE (SCI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

          10.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
          10.6.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
          10.6.3 General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
          10.6.4 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
          10.6.5 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
          10.6.6 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
          10.6.7 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
    10.7 I2C BUS INTERFACE (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

          10.7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
          10.7.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
          10.7.3 General Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
          10.7.4 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
          10.7.5 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
          10.7.6 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
          10.7.7 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
    10.8 10-BIT A/D CONVERTER (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

          10.8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
          10.8.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
          10.8.3 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
          10.8.4 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
          10.8.5 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
          10.8.6 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
11 INSTRUCTION SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
    11.1 CPU ADDRESSING MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

          11.1.1 Inherent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
          11.1.2 Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
          11.1.3 Direct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
          11.1.4 Indexed (No Offset, Short, Long) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
          11.1.5 Indirect (Short, Long) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
          11.1.6 Indirect Indexed (Short, Long) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
          11.1.7 Relative mode (Direct, Indirect) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
    11.2 INSTRUCTION GROUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

12 ELECTRICAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
    12.1 PARAMETER CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

          12.1.1 Minimum and Maximum values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
          12.1.2 Typical values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
          12.1.3 Typical curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. 9. 7. 142
          12.1.4 Loading capacitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
          12.1.5 Pin input voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

4/197
                               Table of Contents

    12.2 ABSOLUTE MAXIMUM RATINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
          12.2.1 Voltage Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
          12.2.2 Current Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
          12.2.3 Thermal Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

    12.3 OPERATING CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
          12.3.1 General Operating Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
          12.3.2 Operating Conditions with Low Voltage Detector (LVD) . . . . . . . . . . . . . . . . . . . 145
          12.3.3 Auxiliary Voltage Detector (AVD) Thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
          12.3.4 External Voltage Detector (EVD) Thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

    12.4 SUPPLY CURRENT CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
          12.4.1 CURRENT CONSUMPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
          12.4.2 Supply and Clock Managers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
          12.4.3 On-Chip Peripherals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

    12.5 CLOCK AND TIMING CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
          12.5.1 General Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
          12.5.2 External Clock Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
          12.5.3 Crystal and Ceramic Resonator Oscillators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
          12.5.4 RC Oscillators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
          12.5.5 Clock Security System (CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
          12.5.6 PLL Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

    12.6 MEMORY CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
          12.6.1 RAM and Hardware Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
          12.6.2 FLASH Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

    12.7 EMC CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
          12.7.1 Functional EMS (Electro Magnetic Susceptibility) . . . . . . . . . . . . . . . . . . . . . . . . 156
          12.7.2 Electro Magnetic Interference (EMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
          12.7.3 Absolute Maximum Ratings (Electrical Sensitivity) . . . . . . . . . . . . . . . . . . . . . . . 158

    12.8 I/O PORT PIN CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
          12.8.1 General Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
          12.8.2 Output Driving Current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

    12.9 CONTROL PIN CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
          12.9.1 Asynchronous RESET Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
          12.9.2 ICCSEL/VPP Pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

    12.10TIMER PERIPHERAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
          12.10.1 8-Bit PWM-ART Auto-Reload Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
          12.10.2 16-Bit Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

    12.11COMMUNICATION INTERFACE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . 166
          12.11.1 SPI - Serial Peripheral Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
          12.11.2 I2C - Inter IC Control Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

    12.1210-BIT ADC CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
          12.12.1 Analog Power Supply and Reference Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
          12.12.2 General PCB Design Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
          12.12.3 ADC Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

13 PACKAGE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
    13.1 PACKAGE MECHANICAL DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
    13.2 THERMAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

                                                                                                                                                        5/197
                               Table of Contents

    13.3 SOLDERING INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
14 ST72325 DEVICE CONFIGURATION AND ORDERING INFORMATION . . . . . . . . . . . . . . . 181

    14.1 FLASH OPTION BYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
    14.2 DEVICE ORDERING INFORMATION AND TRANSFER OF CUSTOMER CODE . . . . . 183
    14.3 DEVELOPMENT TOOLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

          14.3.1 Starter kits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
          14.3.2 Development and debugging tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
          14.3.3 Programming tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
          14.3.4 Socket and Emulator Adapter Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
    14.4 ST7 APPLICATION NOTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
15 KNOWN LIMITATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
    15.1 ALL DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
          15.1.1 Unexpected Reset Fetch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
          15.1.2 External interrupt missed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
          15.1.3 Clearing active interrupts outside interrupt routine . . . . . . . . . . . . . . . . . . . . . . . 193
          15.1.4 SCI Wrong Break duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
          15.1.5 16-bit Timer PWM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
          15.1.6 TIMD set simultaneously with OC interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
          15.1.7 I2C Multimaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
          15.1.8 Pull-up always active on PE2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
          15.1.9 ADC accuracy 16/32K Flash devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
16 REVISION HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

                                                                                                                           197

6/197
                                                                                                 ST72325xx

1 DESCRIPTION                                                              HALT mode when the application is in idle or
                                                                           stand-by state.
The ST72F325 Flash and ST72325 ROM devices
are members of the ST7 microcontroller family de-                          Typical applications are consumer, home, office
signed for mid-range applications.                                         and industrial products.

They are derivatives of the ST72321 and ST72324                             The devices feature an on-chip Debug Module
devices, with enhanced characteristics and robust                          (DM) to support in-circuit debugging (ICD). For a
Clock Security System.                                                     description of the DM registers, refer to the ST7
                                                                           ICC Protocol Reference Manual.
All devices are based on a common industry-
standard 8-bit core, featuring an enhanced instruc-                        Main Differences with ST72321:
tion set and are available with Flash or ROM pro-
gram memory. The ST7 family architecture offers                            LQFP48 and LQFP32 packages
both power and flexibility to software developers,
enabling the design of highly efficient and compact                         Clock Security System
application code.
                                                                            Internal RC, Readout protection, LVD and PLL
The on-chip peripherals include an A/D converter,                            without limitations
a PWM Autoreload timer, 2 general purpose tim-
ers, I2C bus, SPI interface and an SCI interface.                           Negative current injection not allowed on I/O port
                                                                             PB0 (instead of PC6).
For power economy, microcontroller can switch
dynamically into WAIT, SLOW, ACTIVE-HALT or                                 External interrupts have Exit from Active Halt
                                                                             mode capability.
Figure 1. Device Block Diagram

RESET                        8-BIT CORE                                         PROGRAM
    VPP                           ALU                                            MEMORY
    TLI                                                                    (16K - 60K Bytes1))
    VSS                       CONTROL
    VDD                                                                              RAM
                                  LVD                                      (512 - 2048 Bytes1))
   EVD                            AVD
                                  OSC                                          WATCHDOG
OSC1                      MCC/RTC/BEEP
OSC2                                                                       DEBUG MODULE

                                                     ADDRESS AND DATA BUS            I2C

               PF7:0       PORT F                                           PORT A               PA7:0
                           TIMER A                                          PORT B               (8 bits on AR devices)
(8 bits on AR devices)                                                     PWM ART               (5 bits on C/J devices)
(6 bits on C/J devices)      BEEP                                                                (4 bits on K devices)
(5 bits on K devices)
                                                                                                 PB7:0
                    PE7:0  PORT E                                          PORT C                (8 bits on AR devices)
(8 bits on AR devices)        SCI                                          TIMER B                (5 bits on C/J devices)
(2 bits on C/J/K devices)                                                                         (3 bits on K devices)

                                                                                                 PC7:0
                                                                                                 (8 bits)

                           PORT D

PD7:0                                                                      SPI

(8 bits on AR devices)

(6 bits on C/J devices)    10-BIT ADC

(2 bits on K devices)

VAREF

VSSA

1) ROM devices have up to 32 Kbytes of program memory and up to 1 Kbyte of RAM.

                                                                                                 7/197
ST72325xx

2 PIN DESCRIPTION

Figure 2. 64-Pin LQFP 14x14 and 10x10 Package Pinout

                                    PE3
                                        PE 2
                                            PE1 / RDI
                                                 PE0 / TDO
                                                     VDD_2
                                                          OSC1
                                                              OSC2
                                                                   VSS_2
                                                                       TLI
                                                                            EVD
                                                                                RESET
                                                                                     VPP / ICCSEL
                                                                                         PA7 (HS) / SCLI
                                                                                             PA6 (HS) / SDAI
                                                                                                  PA5 (HS)
                                                                                                      PA4 (HS)

                     (HS) PE4       64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49                                        VSS_1
                     (HS) PE5                                                                                              VDD_1
                     (HS) PE6    1                    48                                                                   PA3 (HS)
                     (HS) PE7                                                                                              PA2
                PWM3 / PB0       2                    47                                                                   PA1
                PWM2 / PB1                                                                                                 PA0
                PWM1 / PB2       3                    46                                                                   PC7 / SS / AIN15
                PWM0 / PB3                                                                                                 PC6 / SCK / ICCCLK
       ARTCLK / (HS) PB4         4                             45                                                          PC5 / MOSI / AIN14
               ARTIC1 / PB5                           ei0                                                                  PC4 / MISO / ICCDATA
               ARTIC2 / PB6      5                    44                                                                   PC3 (HS) / ICAP1_B
                                                                                                                           PC2 (HS) / ICAP2_B
                            PB7  6                    43                                                                   PC1 / OCMP1_B / AIN13
                   AIN0 / PD0                                                                                              PC0 / OCMP2_B / AIN12
                   AIN1 / PD1    7 ei2                42                                                                   VSS_0
                   AIN2 / PD2                                                                                              VDD_0
                   AIN3 / PD3    8                    41

                                 9                    40

                                 10                   39

                                 11 ei3               38

                                 12                   37

                                 13                   36

                                 14                   35

                                 15      ei1          34

                                 16                   33

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

                                    AIN4 / PD4
                                        AIN5 / PD5
                                            AIN6 / PD6
                                                 AIN7 / PD7

                                                     VAREF
                                                          VSSA
                                                              VDD_3
                                                                   VSS_3

                                                                       MCO / AIN8 / PF0
                                                                            BEEP / (HS) PF1

                                                                                (HS) PF2
                                                                                    OCMP2_A / AIN9 / PF3
                                                                                         OCMP1_A / AIN10 / PF4
                                                                                             ICAP2_A / AIN11 / PF5

                                                                                                  ICAP1_A / (HS) PF6
                                                                                                      EXTCLK_A / (HS) PF7

                                                      (HS) 20mA high sink capability
                                                      eix associated external interrupt vector

8/197
                                                                                                                                   ST72325xx

Figure 3. 48-Pin LQFP 7x7 Device Pinout

                                           PE1/ RDI
                                               PE0 / TDO
                                                   VDD_2
                                                        OSC1
                                                            OSC2
                                                                 VSS_2
                                                                     RESET
                                                                         VPP/ICCSEL
                                                                              PA7 (HS) / SCLI
                                                                                  PA6 (HS) / SDAI
                                                                                       PA5 (HS)
                                                                                           PA4 (HS)

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

                     PE2  1                                                                             36  VSS_1
              (HS) PE4                                                                                      VDD_1
         PWM3 / PB0       2                                                                             35  PA3 (HS)
         PWM2 / PB1                                                                                         PA2
         PWM1 / PB2       3                                                                             34  PC7 / SS / AIN15
         PWM0 / PB3       4 ei2                                                                             PC6 / SCK / ICCCLK
ARTCLK / (HS) PB4                                                                                       33  PC5 / MOSI / AIN14
        ARTIC1 / PB5                                                                                        PC4 / MISO / ICCDATA
            AIN0 / PD0    5                                                                             32  PC3 (HS) / ICAP1_B
            AIN1 / PD1                                                                                      PC2 (HS) / ICAP2_B
            AIN3 / PD2    6 ei3                   ei0 31                                                    PC1 / OCMP1_B / AIN13
            AIN4 / PD3                                                                                      PC0 / OCMP2_B / AIN12
                          7                                                                             30

                          8                                                                             29

                          9                                                                             28

                          10                                                                            27

                          11                 ei1                                                        26

                          12                                                                            25

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

Legend                                     AIN4 / PD4                                                       (HS) 20mA high sink capability
    = Pin not connected in ST72325S devices    AIN5 / PD5                                                   eix associated external interrupt vector

                                                   VAREF
                                                        VSSA

                                                            MCO / AIN8 / PF0
                                                                 BEEP / (HS) PF1

                                                                     (HS) PF2
                                                                          OCMP1_A / AIN10 / PF4

                                                                              ICAP1_A / (HS) PF6
                                                                                   EXTCLK_A / (HS) PF7

                                                                                       VDD_0
                                                                                           VSS_0

Caution: 48-pin `C' devices have unbonded pins that require software initialization. Refer

to Note 4 on page 16 for details on initializing the I/O registers for these devices.

                                                                                                                                   9/197
ST72325xx

Figure 4. 44/42-Pin LQFP Package Pinouts

                          PE0 / TDO
                              VDD_2
                                  OSC1
                                       OSC2
                                           VSS_2
                                                RESET
                                                    VPP / ICCSEL
                                                         PA7 (HS) / SCLI
                                                             PA6 (HS) / SDAI
                                                                  PA5 (HS)
                                                                      PA4 (HS)

         RDI / PE1       44 43 42 41 40 39 38 37 36 35 34
                 PB0
                 PB1  1                                     33                    VSS_1
                 PB2                                                              VDD_1
                 PB3  2                                     32                    PA3 (HS)
                                                                                  PC7 / SS / AIN15
          (HS) PB4    3                                     ei0 31                PC6 / SCK / ICCCLK
        AIN0 / PD0    4 ei2                                         30            PC5 / MOSI / AIN14
        AIN1 / PD1                                                                PC4 / MISO / ICCDATA
        AIN2 / PD2    5                                     29                    PC3 (HS) / ICAP1_B
        AIN3 / PD3                                                                PC2 (HS) / ICAP2_B
        AIN4 / PD4    6 ei3                                 28                    PC1 / OCMP1_B / AIN13
                                                                                  PC0 / OCMP2_B / AIN12
                      7                                     27

                      8                                     26

                      9                                     25

                      10                  ei1               24

                      11                                    23

                         12 13 14 15 16 17 18 19 20 21 22

                          AIN5 / PD5
                              VAREF
                                  VSSA

                                       MCO / AIN8 / PF0
                                           BEEP / (HS) PF1

                                                (HS) PF2
                                                    OCMP1_A / AIN10 / PF4

                                                         ICAP1_A / (HS) PF6
                                                             EXTCLK_A / (HS) PF7

                                                                  VDD_0
                                                                      VSS_0

                             (HS) PB4   1 ei3           42  PB3
                          AIN0 / PD0    2               41  PB2
                          AIN1 / PD1    3       ei2 40      PB1
                          AIN2 / PD2    4               39  PB0
                          AIN3 / PD3    5               38  PE1 / RDI
                          AIN4 / PD4    6               37  PE0 / TDO
                          AIN5 / PD5    7               36  VDD_2
                                        8               35  OSC1
                                 VAREF  9               34  OSC2
                                  VSSA  10              33  VSS_2
                                        11 ei1          32  RESET
                 MCO / AIN8 / PF0       12              31  VPP / ICCSEL
                  BEEP / (HS) PF1       13              30  PA7 (HS) / SCLI
                                        14              29  PA6 (HS) / SDAI
                             (HS) PF2   15              28  PA5 (HS)
        AIN10 / OCMP1_A / PF4           16              27  PA4 (HS)
                                        17              26  VSS_1
              ICAP1_A / (HS) PF6        18              25  VDD_1
           EXTCLK_A / (HS) PF7          19      ei0 24      PA3 (HS)
        AIN12 / OCMP2_B / PC0           20              23  PC7 / SS / AIN15
        AIN13 / OCMP1_B / PC1           21              22  PC6 / SCK / ICCCLK

              ICAP2_B/ (HS) PC2                                          (HS) 20mA high sink capability
             ICAP1_B / (HS) PC3                                          eix associated external interrupt vector
         ICCDATA / MISO / PC4
              AIN14 / MOSI / PC5

10/197
                                                                                                ST72325xx

Figure 5. 32-Pin LQFP/DIP Package Pinouts

                                   PD1 / AIN1
                                       PD0 / AIN0
                                           PB4 (HS) / ARTCLK
                                                PB3 / PWM0
                                                    PB0 / PWM3
                                                         PE1 / RDI
                                                             PE0 / TDO
                                                                  VDD_2

                         VAREF     32 31 30 29 28 27 26 25
                          VSSA
                                1          ei3 ei2              24             OSC1
         MCO / AIN8 / PF0                                                      OSC2
          BEEP / (HS) PF1       2                               23             VSS_2
OCMP1_A / AIN10 / PF4                                                          RESET
      ICAP1_A / (HS) PF6        3  ei1                          22             VPP / ICCSEL
   EXTCLK_A / (HS) PF7                                                         PA7 (HS)/SCLI
AIN12 / OCMP2_B / PC0           4                               21             PA6 (HS) / SDAI
                                                                               PA4 (HS)
                                5                               20

                                6                               19

                                7                               18

                                8                   ei0 17

                                   9 10 11 12 13 14 15 16

                                   AIN13 / OCMP1_B / PC1
                                       ICAP2_B / (HS) PC2
                                           ICAP1_B / (HS) PC3

                                                ICCDATA / MISO / PC4
                                                    AIN14 / MOSI / PC5
                                                         ICCCLK / SCK / PC6
                                                             AIN15 / SS / PC7
                                                                  (HS) PA3

                     (HS) PB4           1 ei3               32                 PB3
                  AIN0 / PD0            2           ei2                        PB0
                  AIN1 / PD1            3                                      PE1 / RDI
                                        4                   31                 PE0 / TDO
                         VAREF          5                   30                 VDD_2
                          VSSA          6                   29                 OSC1
                                                            28                 OSC2
         MCO / AIN8 / PF0                     ei1           27                 VSS_2
          BEEP / (HS) PF1               7                   26                 RESET
OCMP1_A / AIN10 / PF4                   8                   25                 VPP / ICCSEL
      ICAP1_A / (HS) PF6                9                   24                 PA7 (HS) / SCLI
   EXTCLK_A / (HS) PF7                  10                  23                 PA6 (HS) / SDAI
AIN12 / OCMP2_B / PC0                   11                  22                 PA4 (HS)
AIN13 / OCMP1_B / PC1                   12                  21                 PA3 (HS)
     ICAP2_B / (HS) PC2                 13                  20                 PC7 / SS / AIN15
     ICAP1_B / (HS) PC3                 14          ei0 19                     PC6 / SCK / ICCCLK
  ICCDATA/ MISO / PC4                   15                  18
      AIN14 / MOSI / PC5                16                  17                       (HS) 20mA high sink capability
                                                                                     eix associated external interrupt vector

                                                                                                11/197
ST72325xx

PIN DESCRIPTION (Cont'd)

For external pin connection guidelines, refer to See "ELECTRICAL CHARACTERISTICS" on page 142.

Legend / Abbreviations for Table 2 and Table 3:

Type:           I = input, O = output, S = supply

Input level:    A = Dedicated analog input

In/Output level: C = CMOS 0.3VDD/0.7VDD
                      CT= CMOS 0.3VDD/0.7VDD with input trigger

Output level: HS = 20mA high sink (on N-buffer only)

Port and control configuration:

Input:        float = floating, wpu = weak pull-up, int = interrupt 1), ana = analog

Output:       OD = open drain 2), PP = push-pull

Refer to "I/O PORTS" on page 50 for more details on the software configuration of the I/O ports.

The RESET configuration of each pin is shown in bold. This configuration is valid as long as the device is
in reset state.

= Pin not connected in ST72325S devices

Table 2. LQFP64/48/44 and SDIP42 Device Pin Descriptions

        Pin n                              Level                Port                                          Main

LQFP64                                              Input              Output function
      LQFP48C                                                                       (after
             LQFP48S
                   LQFP44

                          SDIP42
                                                              Type

                                                                    Input
                                                                          Output
                                                                                 float
                                                                                      wpu
                                                                                           int
                                                                                                ana
                                                                                                     OD
                                                                                                           PP
                Pin Name                                                                                                Alternate function

                                                                                                               reset)

1 2 - - - PE4 (HS)               I/O CT HS X X                         X X Port E4
2 -4) - - - PE5 (HS)             I/O CT HS X X                         X X Port E5
3 -4) - - - PE6 (HS)             I/O CT HS X X                         X X Port E6
4 -4) - - - PE7 (HS)             I/O CT HS X X                         X X Port E7

                                                                                               PWM Output 3

5 3 3 2 39 PB0/PWM3              I/O CT             X ei2              X X Port B0 Caution: Negative cur-
                                                                                               rent injection not al-
                                                                                               lowed on this pin

6 4 4 3 40 PB1/PWM2              I/O CT             X ei2              X X Port B1 PWM Output 2
7 5 5 4 41 PB2/PWM1              I/O CT             X ei2
8 6 6 5 42 PB3/PWM0              I/O CT             X ei2              X X Port B2 PWM Output 1

                                                                       X X Port B3 PWM Output 0

9 7 7 6 1 PB4 (HS)/ARTCLK I/O CT HS X ei3                              X  X                                    Port B4  PWM-ART External
                                                                                                                        Clock

10 8 - - - PB5 / ARTIC1          I/O CT             X ei3              X  X                                    Port B5  PWM-ART Input Cap-
                                                                                                                        ture 1

11 -4) - - - PB6 / ARTIC2        I/O CT             X ei3              X  X                                    Port B6  PWM-ART Input Cap-
                                                                                                                        ture 2
12 -4) - - - PB7                 I/O CT
13 9 9 7 2 PD0/AIN0              I/O CT             X ei3 X X Port B7
14 19 10 8 3 PD1/AIN1            I/O CT
15 11 11 9 4 PD2/AIN2            I/O CT             XX           X X X Port D0 ADC Analog Input 0
16 12 12 10 5 PD3/AIN3           I/O CT
                                                    XX           X X X Port D1 ADC Analog Input 1

                                                    XX           X X X Port D2 ADC Analog Input 2

                                                    XX           X X X Port D3 ADC Analog Input 3

12/197
                                                                                                                                 ST72325xx

        Pin n                              Level         Port                                                 Main

LQFP64                                             Input        Output function                                         Alternate function
      LQFP48C                                                                (after
             LQFP48S
                   LQFP44

                          SDIP42
                                                              Type

                                                                    Input
                                                                          Output
                                                                                 float
                                                                                      wpu
                                                                                           int
                                                                                                ana
                                                                                                     OD
                                                                                                           PP
                        Pin Name

                                                                                                               reset)

17 13 13 11 6 PD4/AIN4                   I/O CT    XX     X X X Port D4 ADC Analog Input 4
18 14 14 12 7 PD5/AIN5                   I/O CT    XX
19 -4) - - - PD6/AIN6                    I/O CT    XX     X X X Port D5 ADC Analog Input 5
20 -4) - - - PD7/AIN7                    I/O CT    XX
                                                          X X X Port D6 ADC Analog Input 6
21 15 15 13 8 VAREF6)                     I        X ei1
22 16 16 14 9 VSSA6)                                      X X X Port D7 ADC Analog Input 7
23 - - - - VDD_36)                        S
24 - - - - VSS_36)                        S                                                                    Analog Reference Voltage for
                                          S                                                                    ADC
25 17 17 15 10 PF0/MCO/AIN8
                                         I/O CT                                                                Analog Ground Voltage

                                                                                                               Digital Main Supply Voltage

                                                                                                               Digital Ground Voltage

                                                          X     X  X                                           Port F0  Main clock     ADC Ana-
                                                                                                                        out (fOSC/2)   log
                                                                                                                                       Input 8

26 18 18 16 11 PF1 (HS)/BEEP             I/O CT HS X ei1        X X Port F1 Beep signal output
27 19 19 17 12 PF2 (HS)
                                         I/O CT HS X ei1 X X Port F2

                        PF3/OCMP2_A/                                                                                    Timer A ADC Ana-
                        AIN9
28 -4) -        -   -                    I/O CT    XX     X X X Port F3 Output                                                         log

                                                                                                                        Compare 2 Input 9

                        PF4/OCMP1_A/                                                                                    Timer A ADC Ana-
                        AIN10
29  20  20      18  13                   I/O CT    XX     X X X Port F4 Output                                                         log

                                                                                                                        Compare 1 Input 10

                        PF5/ICAP2_A/                                                                                    Timer A In- ADC Ana-
                        AIN11
30 -4) -        -   -                    I/O CT    XX     X X X Port F5 put Cap- log

                                                                                                                        ture 2         Input 11

31 21 21 19 14 PF6 (HS)/ICAP1_A I/O CT HS X X                   X X Port F6 Timer A Input Capture 1

32  22  22      20  15  PF7 (HS)/        I/O CT HS X X          X  X                                           Port F7  Timer A External Clock
                        EXTCLK_A                                                                                        Source

33 23 23 21 - VDD_06)                    S                                                                     Digital Main Supply Voltage

34 24 24 22 - VSS_06)                    S                                                                     Digital Ground Voltage

                        PC0/OCMP2_B/                                                                                    Timer B ADC Ana-
                        AIN12
35  25  25      23  16                   I/O CT    XX     X X X Port C0 Output                                                         log

                                                                                                                        Compare 2 Input 12

                        PC1/OCMP1_B/                                                                                    Timer B ADC Ana-
                        AIN13
36  26  26      24  17                   I/O CT    XX     X X X Port C1 Output                                                         log

                                                                                                                        Compare 1 Input 13

37 27 27 25 18 PC2 (HS)/ICAP2_B I/O CT HS X X                   X X Port C2 Timer B Input Capture 2
38 28 28 26 19 PC3 (HS)/ICAP1_B I/O CT HS X X
                                                                X X Port C3 Timer B Input Capture 1

39  29  29      27  20  PC4/MISO/ICCDA-  I/O CT    XX           X  X                                           Port C4  SPI Master     ICC Data
                        TA                                                                                              In / Slave     Input
                                                                                                                        Out Data

                                                                                                                        SPI Master ADC Ana-

40 30 30 28 21 PC5/MOSI/AIN14 I/O CT               XX     X X X Port C5 Out / Slave log

                                                                                                                        In Data        Input 14

41 31 31 29 22 PC6/SCK/ICCCLK I/O CT               XX           X  X                                           Port C6  SPI Serial     ICC Clock
                                                                                                                        Clock          Output

                                                                                                                                            13/197
ST72325xx

        Pin n                     Level      Port                                                             Main

LQFP64                                       Input  Output function
      LQFP48C                                                    (after
             LQFP48S
                   LQFP44

                          SDIP42
                                                              Type

                                                                    Input
                                                                          Output
                                                                                 float
                                                                                      wpu
                                                                                           int
                                                                                                ana
                                                                                                     OD
                                                                                                           PP
                Pin Name                                                                                                Alternate function

                                                                                                               reset)

42 32 32 30 23 PC7/SS/AIN15   I/O CT      XX                                     SPI Slave ADC Ana-
                                                    X X X Port C7 Select (ac- log
43 -4) - - - PA0
44 -4) - - - PA1                                                                 tive low) Input 15
45 33 - - - PA2
46 34 34 31 24 PA3 (HS)       I/O CT      X  ei0    X X Port A0
47 35 35 32 25 VDD_16)                       ei0    X X Port A1
48 36 36 33 26 VSS_16)        I/O CT      X  ei0    X X Port A2
49 37 37 34 27 PA4 (HS)                             X X Port A3
50 38 38 35 28 PA5 (HS)       I/O CT      X    ei0
51 39 39 36 29 PA6 (HS)/SDAI                                   Digital Main Supply Voltage
52 40 40 37 30 PA7 (HS)/SCLI  I/O CT HS X

53 41 41 38 31 VPP/ ICCSEL    S

54 42 42 39 32 RESET          S                                                                                Digital Ground Voltage

55 - - - - EVD                I/O CT HS X X         X X Port A4
56 - - - - TLI                I/O CT HS X X
57 43 43 40 33 VSS_26)        I/O CT HS X           X X Port A5
58 44 44 41 34 OSC23)         I/O CT HS X
                                                    T                                                          Port A6  I2C Data 1)
59 45 45 42 35 OSC13)          I                                                                                        I2C Clock 1)
60 46 46 43 36 VDD_26)                              T                                                          Port A7
61 47 47 44 37 PE0/TDO
62 48 48 1 38 PE1/RDI                                                                                          Must be tied low. In flash program-
63 1 - - - PE2                                                                                                 ming mode, this pin acts as the
64 -4) - - - PE3                                                                                               programming voltage input VPP.
                                                                                                               See Section 12.9.2 for more de-
                                                                                                               tails. High voltage must not be ap-
                                                                                                               plied to ROM devices

                              I/O CT                                                                           Top priority non maskable inter-
                                                                                                               rupt.

                                                                                                               External voltage detector

                              I CT            X                                                                Top level interrupt input pin
                              S
                                                                                                               Digital Ground Voltage

                              I/O                                                                              Resonator oscillator inverter out-
                                                                                                               put

                              I                                                                                External clock input or Resonator
                                                                                                               oscillator inverter input

                              S                                                                                Digital Main Supply Voltage

                              I/O CT      XX         X X Port E0                                                        SCI Transmit Data Out
                              I/O CT      XX         X X Port E1                                                        SCI Receive Data In
                              I/O CT      XX        X4) X4) Port E2
                              I/O CT      XX         X X Port E3

14/197
                                                                                                                             ST72325xx

Table 3. LQFP32/DIP32 Device Pin Description

Pin n                      Level            Port                                                  Main
                                      Input                                                      function
LQFP32                                             Output
      DIP32                                                                                        (after
                                                                                                  reset)
                                          Type
                                                Input
                                                       Output
                                                               float
                                                                     wpu
                                                                           int
                                                                                 ana
                                                                                      OD
                                                                                             PP
        Pin Name                                                                                           Alternate function

1 4 VAREF6)              I                                                                       Analog Reference Voltage for ADC
2 5 VSSA6)               S
                                                                                                 Analog Ground Voltage
3 6 PF0/MCO/AIN8
                         I/O CT    X ei1      X    X  X                                          Port F0   Main clock out    ADC Analog
                                                                                                           (fOSC/2)          Input 8

4 7 PF1 (HS)/BEEP        I/O CT HS X ei1           X X Port F1 Beep signal output

5   8   PF4/OCMP1_A/     I/O CT    XX         XX      X                                          Port F4   Timer A Output    ADC Analog
        AIN10                                                                                              Compare 1         Input 10

6 9 PF6 (HS)/ICAP1_A I/O CT HS X X                 X X Port F6 Timer A Input Capture 1
                                                   X X Port F7 Timer A External Clock Source
7   10  PF7 (HS)/        I/O CT HS X X
        EXTCLK_A

8   11  PC0/OCMP2_B/     I/O CT    XX         XX      X                                          Port C0   Timer B Output    ADC Analog
        AIN12                                                                                              Compare 2         Input 12

9   12  PC1/OCMP1_B/     I/O CT    XX         XX      X                                          Port C1   Timer B Output    ADC Analog
        AIN13                                                                                              Compare 1         Input 13

10 13 PC2 (HS)/ICAP2_B I/O CT HS X X               X X Port C2 Timer B Input Capture 2

11 14 PC3 (HS)/ICAP1_B I/O CT HS X X               X X Port C3 Timer B Input Capture 1

12  15  PC4/MISO/ICCDA-  I/O CT    XX              X  X                                          Port C4   SPI Master In /   ICC Data Input
        TA                                                                                                 Slave Out Data

13 16 PC5/MOSI/AIN14 I/O CT        XX         XX      X                                          Port C5   SPI Master Out / ADC Analog
                                                                                                           Slave In Data Input 14

14 17 PC6/SCK/ICCCLK I/O CT        XX              X  X                                          Port C6   SPI Serial Clock  ICC Clock
                                                                                                                             Output

15 18 PC7/SS/AIN15       I/O CT    XX         XX      X                                          Port C7   SPI Slave Select ADC Analog

                                                                                                           (active low)      Input 15

16 19 PA3 (HS)           I/O CT HS X    ei0        X X Port A3
17 20 PA4 (HS)
18 21 PA6 (HS)/SDAI      I/O CT HS X X             X X Port A4
19 22 PA7 (HS)/SCLI
                         I/O CT HS X               T                                             Port A6 I2C Data 1)

                         I/O CT HS X               T                                             Port A7 I2C Clock 1)

20 23 VPP/ ICCSEL        I                                                                       Must be tied low. In flash programming
                                                                                                 mode, this pin acts as the programming
                                                                                                 voltage input VPP. See Section 12.9.2 for
                                                                                                 more details. High voltage must not be ap-
                                                                                                 plied to ROM devices

21 24 RESET              I/O CT                                                                  Top priority non maskable interrupt.
                          S                                                                      Digital Ground Voltage
22 25 VSS_26)            I/O                                                                     Resonator oscillator inverter output
23 26 OSC23)

24 27 OSC13)              I        XX                          External clock input or Resonator oscillator
                                   XX                          inverter input
25 28 VDD_26)             S                                    Digital Main Supply Voltage
26 29 PE0/TDO            I/O CT                    X X Port E0 SCI Transmit Data Out
27 30 PE1/RDI            I/O CT                    X X Port E1 SCI Receive Data In

                                                                                                                                       15/197
ST72325xx

Pin n               Level             Port                                                        Main
                                Input                                                            function
LQFP32                                       Output                                                        Alternate function
      DIP32                                                                                        (after
                                                                                                  reset)
                                          Type
                                                Input
                                                       Output
                                                               float
                                                                     wpu
                                                                           int
                                                                                 ana
                                                                                      OD
                                                                                             PP
           Pin Name

28 31 PB0/PWM3       I/O CT  X ei2                                     PWM Output 3

                                             X X Port B0 Caution: Negative current injec-
                                                                       tion not allowed on this pin

29 32 PB3/PWM0       I/O CT  X   ei2         X X Port B3 PWM Output 0

30 1 PB4 (HS)/ARTCLK I/O CT HS X ei3         X X Port B4 PWM-ART External Clock

31 2 PD0/AIN0        I/O CT  XX       X X X Port D0 ADC Analog Input 0

32 3 PD1/AIN1        I/O CT  XX       X X X Port D1 ADC Analog Input 1

Notes for Table 2 and Table 3:

1. In the interrupt input column, "eiX" defines the associated external interrupt vector. If the weak pull-up
column (wpu) is merged with the interrupt column (int), then the I/O configuration is pull-up interrupt input,
else the configuration is floating interrupt input.

2. In the open drain output column, "T" defines a true open drain I/O (P-Buffer and protection diode to VDD
are not implemented). See See "I/O PORTS" on page 50. and Section 12.8 I/O PORT PIN CHARACTER-
ISTICS for more details.

3. OSC1 and OSC2 pins connect a crystal/ceramic resonator, or an external source to the on-chip oscil-
lator; see Section 1 DESCRIPTION and Section 12.5 CLOCK AND TIMING CHARACTERISTICS for
more details.

4. On the chip, each I/O port may have up to 8 pads:

In all devices except 48-pin ST72325C, pads that are not bonded to external pins are forced by hardware
  in input pull-up configuration after reset. The configuration of these pads must be kept at reset state to
  avoid added current consumption.

In 48-pin ST72325C devices, unbonded pads PA0, PA1, PB6, PB7, PD6, PD7, PE3, PE5, PE6, PE7,
  PF3 and PF5) are in input floating configuration after reset. To avoid added current consumption, the
  application must force these ports in input pull-up state by writing to the OR and DDR registers after re-
  set. This initialization is not necessary in 48-pin ST72325S devices.

5. Pull-up always activated on PE2 see limitation Section 15.1.8.

6. It is mandatory to connect all available VDD and VREF pins to the supply voltage and all VSS and VSSA
pins to ground.

16/197
                                                                             ST72325xx

3 REGISTER & MEMORY MAP                            IMPORTANT: Memory locations marked as "Re-
                                                   served" must never be accessed. Accessing a re-
As shown in Figure 6, the MCU is capable of ad-    seved area can have unpredictable effects on the
dressing 64K bytes of memories and I/O registers.  device.

The available memory locations consist of 128      Related Documentation
bytes of register locations, up to 2Kbytes of RAM
and up to 60Kbytes of user program memory. The     AN 985: Executing Code in ST7 RAM
RAM space includes up to 256 bytes for the stack
from 0100h to 01FFh.

The highest address bytes contain the user reset
and interrupt vectors.

Figure 6. Memory Map

0000h   HW Registers                 0080h         Short Addressing
         (see Table 4)                             RAM (zero page)
007Fh                                00FFh
0080h                                0100h          256 Bytes Stack

087Fh                RAM            01FFh         16-bit Addressing  1000h  60 KBytes
0880h       (2048, 1536, 1024,       0200h                 RAM        4000h  48 KBytes
0FFFh
1000h           or 512 Bytes)        027Fh                           8000h
                                   or 047Fh
FFDFh             Reserved         or 067Fh                                      32 KBytes
FFE0h                              or 087Fh
             Program Memory                                           C000h
FFFFh       (60,48, 32 or 16K)
                                                                                16 KBytes
        Interrupt & Reset Vectors
                (see Table 9)                                         FFFFh

                                                                                            17/197
ST72325xx

Table 4. Hardware Register Map

Address    Block   Register     Register Name                             Reset    Remarks
                     Label                                                Status
                                                                                  R/W
0000h      Port A  PADR         Port A Data Register                       00h1)  R/W
0001h      Port B  PADDR        Port A Data Direction Register              00h   R/W
0002h      Port C  PAOR         Port A Option Register                      00h
           Port D                                                                 R/W
0003h      Port E  PBDR         Port B Data Register                       00h1)  R/W
0004h      Port F  PBDDR        Port B Data Direction Register              00h   R/W
0005h              PBOR         Port B Option Register                      00h
             I2C                                                                  R/W
0006h              PCDR         Port C Data Register                       00h1)  R/W
0007h              PCDDR        Port C Data Direction Register              00h   R/W
0008h              PCOR         Port C Option Register                      00h
                                                                                  R/W
0009h              PDDR         Port D Data Register                       00h1)  R/W
000Ah              PDDDR        Port D Data Direction Register              00h   R/W
000Bh              PDOR         Port D Option Register                      00h
                                                                                  R/W
000Ch              PEDR         Port E Data Register                       00h1)  R/W2)
000Dh              PEDDR        Port E Data Direction Register              00h   R/W2)
000Eh              PEOR         Port E Option Register                      00h
                                                                                  R/W
000Fh              PFDR         Port F Data Register                       00h1)  R/W
0010h              PFDDR        Port F Data Direction Register              00h   R/W
0011h              PFOR         Port F Option Register                      00h
                                                                                  R/W
0018h              I2CCR        I2C Control Register                        00h   Read Only
0019h              I2CSR1       I2C Status Register 1                       00h   Read Only
001Ah              I2CSR2       I2C Status Register 2                       00h   R/W
001Bh              I2CCCR       I2C Clock Control Register                  00h   R/W
001Ch              I2COAR1      I2C Own Address Register 1                  00h   R/W
001Dh              I2COAR2      I2C Own Address Register2                   00h   R/W
001Eh              I2CDR        I2C Data Register                           00h

001Fh              SPIDR                 Reserved Area (2 Bytes)          xxh     R/W
0020h
           SPI     SPICR        SPI Data I/O Register                     0xh     R/W
0021h                           SPI Control Register
0022h              SPICSR       SPI Control/Status Register               00h     R/W
0023h
                   ISPR0        Interrupt Software Priority Register 0    FFh     R/W
0024h                           Interrupt Software Priority Register 1
0025h              ISPR1        Interrupt Software Priority Register 2    FFh     R/W
0026h                           Interrupt Software Priority Register 3
0027h      ITC     ISPR2                                                  FFh     R/W
                   ISPR3        External Interrupt Control Register
0028h                                                                     FFh     R/W
                                Flash Control/Status Register
0029h              EICR                                                   00h     R/W
                                Watchdog Control Register
002Ah      FLASH   FCSR                                                   00h     R/W
                                System Integrity Control/Status Register
002Bh    WATCHDOG WDGCR                                                   7Fh     R/W

                   SICSR                                                  000x 000x b R/W

18/197
                                                                               ST72325xx

Address    Block  Register  Register Name                              Reset        Remarks
           MCC      Label                                              Status
002Ch   TIMER A
002Dh            MCCSR     Main Clock Control / Status Register       00h          R/W
         TIMER B
002Eh      SCI   MCCBCR Main Clock Controller: Beep Control Register  00h          R/W
    to
                            Reserved Area (3 Bytes)
0030h
                  TACR2     Timer A Control Register 2                      00h     R/W
0031h            TACR1     Timer A Control Register 1                      00h     R/W
0032h            TACSR     Timer A Control/Status Register            xxxx x0xx b  R/W
0033h            TAIC1HR   Timer A Input Capture 1 High Register           xxh     Read Only
0034h            TAIC1LR   Timer A Input Capture 1 Low Register            xxh     Read Only
0035h            TAOC1HR   Timer A Output Compare 1 High Register          80h     R/W
0036h            TAOC1LR   Timer A Output Compare 1 Low Register           00h     R/W
0037h            TACHR     Timer A Counter High Register                   FFh     Read Only
0038h            TACLR     Timer A Counter Low Register                   FCh      Read Only
0039h            TAACHR    Timer A Alternate Counter High Register         FFh     Read Only
003Ah            TAACLR    Timer A Alternate Counter Low Register         FCh      Read Only
003Bh            TAIC2HR   Timer A Input Capture 2 High Register           xxh     Read Only
003Ch            TAIC2LR   Timer A Input Capture 2 Low Register            xxh     Read Only
003Dh            TAOC2HR   Timer A Output Compare 2 High Register          80h     R/W
003Eh            TAOC2LR   Timer A Output Compare 2 Low Register           00h     R/W
003Fh
                            Reserved Area (1 Byte)
0040h
                  TBCR2     Timer B Control Register 2                      00h     R/W
0041h            TBCR1     Timer B Control Register 1                      00h     R/W
0042h            TBCSR     Timer B Control/Status Register            xxxx x0xx b  R/W
0043h            TBIC1HR   Timer B Input Capture 1 High Register           xxh     Read Only
0044h            TBIC1LR   Timer B Input Capture 1 Low Register            xxh     Read Only
0045h            TBOC1HR   Timer B Output Compare 1 High Register          80h     R/W
0046h            TBOC1LR   Timer B Output Compare 1 Low Register           00h     R/W
0047h            TBCHR     Timer B Counter High Register                   FFh     Read Only
0048h            TBCLR     Timer B Counter Low Register                   FCh      Read Only
0049h            TBACHR    Timer B Alternate Counter High Register         FFh     Read Only
004Ah            TBACLR    Timer B Alternate Counter Low Register         FCh      Read Only
004Bh            TBIC2HR   Timer B Input Capture 2 High Register           xxh     Read Only
004Ch            TBIC2LR   Timer B Input Capture 2 Low Register            xxh     Read Only
004Dh            TBOC2HR   Timer B Output Compare 2 High Register          80h     R/W
004Eh            TBOC2LR   Timer B Output Compare 2 Low Register           00h     R/W
004Fh
                  SCISR     SCI Status Register                             C0h     Read Only
0050h            SCIDR     SCI Data Register                               xxh     R/W
0051h            SCIBRR    SCI Baud Rate Register                          00h     R/W
0052h            SCICR1    SCI Control Register 1                     x000 0000b   R/W
0053h            SCICR2    SCI Control Register 2                          00h     R/W
0054h            SCIERPR   SCI Extended Receive Prescaler Register         00h     R/W
0055h                      Reserved area                                    ---
0056h            SCIETPR   SCI Extended Transmit Prescaler Register        00h     R/W
0057h

                                                                                         19/197
ST72325xx

Address    Block    Register         Register Name                               Reset   Remarks
                      Label                                                      Status

0058h               DMCR             DM Control Register                         00h     R/W
0059h               DMSR             DM Status Register
005Ah               DMBK1H           DM Breakpoint Register 1 High               00h     R/W
005Bh               DMBK1L           DM Breakpoint Register 1 Low
005Ch      DM3)     DMBK2H           DM Breakpoint Register 2 High               00h     R/W
005Dh               DMBK2L           DM Breakpoint Register 2 Low
                                                                                 00h     R/W
005Eh
   to                                                                            00h     R/W

006Fh                                                                            00h     R/W

0070h                                Reserved Area (18 Bytes)
0071h
0072h               ADCCSR           Control/Status Register                     00h     R/W
                    ADCDRH           Data High Register
0073h         ADC   ADCDRL           Data Low Register                           00h     Read Only
0074h      PWM ART
0075h                                                                            00h     Read Only
0076h
0077h               PWMDCR3          PWM AR Timer Duty Cycle Register 3          00h     R/W
0078h               PWMDCR2          PWM AR Timer Duty Cycle Register 2
0079h               PWMDCR1          PWM AR Timer Duty Cycle Register 1          00h     R/W
007Ah               PWMDCR0          PWM AR Timer Duty Cycle Register 0
007Bh               PWMCR            PWM AR Timer Control Register               00h     R/W
007Ch               ARTCSR           Auto-Reload Timer Control/Status Register
007Dh               ARTCAR           Auto-Reload Timer Counter Access Register   00h     R/W
                    ARTARR           Auto-Reload Timer Auto-Reload Register
007Eh               ARTICCSR         AR Timer Input Capture Control/Status Reg.  00h     R/W
007Fh               ARTICR1          AR Timer Input Capture Register 1
                    ARTICR2          AR Timer Input Capture Register 1           00h     R/W

                                                                                 00h     R/W

                                                                                 00h     R/W

                                                                                 00h     R/W

                                                                                 00h     Read Only

                                                                                 00h     Read Only

                                     Reserved Area (2 Bytes)

Legend: x=undefined, R/W=read/write

Notes:

1. The contents of the I/O port DR registers are readable only in output configuration. In input configura-
tion, the values of the I/O pins are returned instead of the DR register contents.

2. The bits associated with unavailable pins must always keep their reset value.

3. For a description of the Debug Module registers, see ICC Protocol Reference manual.

20/197
                                                                                ST72325xx

4 FLASH PROGRAM MEMORY

4.1 Introduction                                       Depending on the overall Flash memory size in the
                                                       microcontroller device, there are up to three user
The ST7 dual voltage High Density Flash                sectors (see Table 5). Each of these sectors can
(HDFlash) is a non-volatile memory that can be         be erased independently to avoid unnecessary
electrically erased as a single block or by individu-  erasing of the whole Flash memory when only a
al sectors and programmed on a Byte-by-Byte ba-        partial erasing is required.
sis using an external VPP supply.
The HDFlash devices can be programmed and              The first two sectors have a fixed size of 4 Kbytes
erased off-board (plugged in a programming tool)       (see Figure 7). They are mapped in the upper part
or on-board using ICP (In-Circuit Programming) or      of the ST7 addressing space so the reset and in-
IAP (In-Application Programming).                      terrupt vectors are located in Sector 0 (F000h-
                                                       FFFFh).
The array matrix organisation allows each sector
to be erased and reprogrammed without affecting        Table 5. Sectors available in Flash devices
other sectors.
                                                       Flash Size (bytes)       Available Sectors
4.2 Main Features
                                                                 4K                    Sector 0
Three Flash programming modes:                                  8K                 Sectors 0,1
    Insertion in a programming tool. In this mode,             > 8K               Sectors 0,1, 2
     all sectors including option bytes can be pro-
     grammed or erased.                                4.3.1 Read-out Protection
    ICP (In-Circuit Programming). In this mode, all
     sectors including option bytes can be pro-        Read-out protection, when selected, provides a
     grammed or erased without removing the de-        protection against Program Memory content ex-
     vice from the application board.                  traction and against write access to Flash memo-
    IAP (In-Application Programming) In this          ry. Even if no protection can be considered as to-
     mode, all sectors except Sector 0, can be pro-    tally unbreakable, the feature provides a very high
     grammed or erased without removing the de-        level of protection for a general purpose microcon-
     vice from the application board and while the     troller.
     application is running.
                                                       In flash devices, this protection is removed by re-
ICT (In-Circuit Testing) for downloading and          programming the option. In this case, the entire
   executing user application test patterns in RAM     program memory is first automatically erased and
                                                       the device can be reprogrammed.
Read-out protection
Register Access Security System (RASS) to             Read-out protection selection depends on the de-
                                                       vice type:
   prevent accidental programming or erasing
                                                       In Flash devices it is enabled and removed
4.3 Structure                                            through the FMP_R bit in the option byte.

The Flash memory is organised in sectors and can       In ROM devices it is enabled by mask option
be used for both code and data storage.                  specified in the Option List.

Figure 7. Memory Map and Sector Address

        4K  8K  10K       16K            24K           32K  48K            60K  FLASH
                                                                                MEMORY SIZE
1000h          2 Kbytes  8 Kbytes 16 Kbytes 24 Kbytes 40 Kbytes 52 Kbytes
3FFFh                                   4 Kbytes                                SECTOR 2
7FFFh                                   4 Kbytes
9FFFh                                                                           SECTOR 1
BFFFh                                                                           SECTOR 0
D7FFh
DFFFh
EFFFh
FFFFh

                                                                                21/197
ST72325xx

FLASH PROGRAM MEMORY (Cont'd)

4.4 ICC Interface                                        ICCCLK: ICC output serial clock pin

ICC needs a minimum of 4 and up to 6 pins to be          ICCDATA: ICC input/output serial data pin
connected to the programming tool (see Figure 8).
These pins are:                                          ICCSEL/VPP: programming voltage
                                                         OSC1(or OSCIN): main clock input for exter-
    RESET: device reset
    VSS: device power supply ground                      nal source (optional)

                                                          ValD, Ds:eeapFpiglicuaretio8n,                    board power  supply  (option-
                                                                                                             Note 3)

Figure 8. Typical ICC Interface

              PROGRAMMING TOOL

                                                        ICC CONNECTOR

                                                           ICC Cable

                                                                                                             APPLICATION BOARD

              (See Note 3)       OPTIONAL                                                    ICC CONNECTOR
                                 (See Note 4)                                           HE10 CONNECTOR TYPE
                                                        9 7 5 31
                                       CL1
                                                        10 8 6 4 2

                                                                                                             APPLICATION
                                                                                                             RESET SOURCE

                                                                                                             See Note 2

                                               10k

APPLICATION   CL2

POWER SUPPLY                                                                                                 See Note 1

                                                                                                         APPLICATION
                                                                                                                I/O

                                 ST7
              VDD
                               OSC2
                                          OSC1

                                                                 VSS
                                                                                ICCSEL/VPP

                                                                                       RESET
                                                                                             ICCCLK
                                                                                                    ICCDATA

Notes:                                                  agement IC with open drain output and pull-up re-
                                                        sistor>1K, no additional components are needed.
1. If the ICCCLK or ICCDATA pins are only used          In all cases the user must ensure that no external
as outputs in the application, no signal isolation is   reset is generated by the application during the
necessary. As soon as the Programming Tool is           ICC session.
plugged to the board, even if an ICC session is not
in progress, the ICCCLK and ICCDATA pins are            3. The use of Pin 7 of the ICC connector depends
not available for the application. If they are used as  on the Programming Tool architecture. This pin
inputs by the application, isolation such as a serial   must be connected when using most ST Program-
resistor has to implemented in case another de-         ming Tools (it is used to monitor the application
vice forces the signal. Refer to the Programming        power supply). Please refer to the Programming
Tool documentation for recommended resistor val-        Tool manual.
ues.
                                                        4. Pin 9 has to be connected to the OSC1 or OS-
2. During the ICC session, the programming tool         CIN pin of the ST7 when the clock is not available
must control the RESET pin. This can lead to con-       in the application or if the selected clock option is
flicts between the programming tool and the appli-      not programmed in the option byte. ST7 devices
cation reset circuit if it drives more than 5mA at      with multi-oscillator capability need to have OSC2
high level (push pull output or pull-up resistor<1K).   grounded in this case.
A schottky diode can be used to isolate the appli-
cation RESET circuit in this case. When using a
classical RC network with R>1K or a reset man-

22/197
                                                                                ST72325xx

FLASH PROGRAM MEMORY (Cont'd)

4.5 ICP (In-Circuit Programming)                        possible to download code from the SPI, SCI, USB
                                                        or CAN interface and program it in the Flash. IAP
To perform ICP the microcontroller must be              mode can be used to program any of the Flash
switched to ICC (In-Circuit Communication) mode         sectors except Sector 0, which is write/erase pro-
by an external controller or programming tool.          tected to allow recovery in case errors occur dur-
                                                        ing the programming operation.
Depending on the ICP code downloaded in RAM,
Flash memory programming can be fully custom-           4.7 Related Documentation
ized (number of bytes to program, program loca-
tions, or selection serial communication interface      For details on Flash programming and ICC proto-
for downloading).                                       col, refer to the ST7 Flash Programming Refer-
                                                        ence Manual and to the ST7 ICC Protocol Refer-
When using an STMicroelectronics or third-party
programming tool that supports ICP and the spe-         ence Manual.
cific microcontroller device, the user needs only to
implement the ICP hardware interface on the ap-         4.7.1 Register Description
plication board (see Figure 8). For more details on     FLASH CONTROL/STATUS REGISTER (FCSR)
the pin locations, refer to the device pinout de-
scription.                                              Read / Write
                                                        Reset Value: 0000 0000 (00h)
4.6 IAP (In-Application Programming)
                                                        7                             0
This mode uses a BootLoader program previously
stored in Sector 0 by the user (in ICP mode or by       0     0  0  0     0  0  0     0
plugging the device in a programming tool).
                                                        This register is reserved for use by Programming
This mode is fully controlled by user software. This    Tool software. It controls the Flash programming
allows it to be adapted to the user application, (us-   and erasing operations.
er-defined strategy for entering programming
mode, choice of communications protocol used to
fetch the data to be stored, etc.). For example, it is

Figure 9. Flash Control/Status Register Address and Reset Value

Address  Register     7  6     5                           4     3     2     1     0
(Hex.)    Label

0029h    FCSR         0  0     0                           0     0     0     0     0
         Reset Value

                                                                                   23/197
ST72325xx

5 CENTRAL PROCESSING UNIT

5.1 INTRODUCTION                                      5.3 CPU REGISTERS

This CPU has a full 8-bit architecture and contains   The six CPU registers shown in Figure 1 are not
six internal registers allowing efficient 8-bit data  present in the memory mapping and are accessed
manipulation.                                         by specific instructions.

5.2 MAIN FEATURES                                     Accumulator (A)

Enable executing 63 basic instructions               The Accumulator is an 8-bit general purpose reg-
Fast 8-bit by 8-bit multiply                         ister used to hold operands and the results of the
17 main addressing modes (with indirect              arithmetic and logic calculations and to manipulate
                                                      data.
   addressing mode)
Two 8-bit index registers                            Index Registers (X and Y)
16-bit stack pointer
Low power HALT and WAIT modes                        These 8-bit registers are used to create effective
Priority maskable hardware interrupts                addresses or as temporary storage areas for data
Non-maskable software/hardware interrupts            manipulation. (The Cross-Assembler generates a
                                                      precede instruction (PRE) to indicate that the fol-
                                                      lowing instruction refers to the Y register.)

                                                      The Y register is not affected by the interrupt auto-
                                                      matic procedures.

                                                      Program Counter (PC)

                                                      The program counter is a 16-bit register containing
                                                      the address of the next instruction to be executed
                                                      by the CPU. It is made of two 8-bit registers PCL
                                                      (Program Counter Low which is the LSB) and PCH
                                                      (Program Counter High which is the MSB).

Figure 10. CPU Registers

             7                      0

             RESET VALUE = XXh                        ACCUMULATOR
                                                      X INDEX REGISTER
             7                      0                 Y INDEX REGISTER

             RESET VALUE = XXh

             7                      0

             RESET VALUE = XXh

15      PCH  87           PCL       0

                                                      PROGRAM COUNTER

RESET VALUE = RESET VECTOR @ FFFEh-FFFFh

             7                      0

             1 1 I1 H I0 N Z C                        CONDITION CODE REGISTER

        RESET VALUE = 1 1 1 X 1 X X X

15           87                     0

                                                      STACK POINTER

RESET VALUE = STACK HIGHER ADDRESS

                                                                               X = Undefined Value

24/197
                                                                                             ST72325xx

CENTRAL PROCESSING UNIT (Cont'd)                          Bit 1 = Z Zero.
Condition Code Register (CC)
Read/Write                                                This bit is set and cleared by hardware. This bit in-
Reset Value: 111x1xxx                                     dicates that the result of the last arithmetic, logical
                                                          or data manipulation is zero.
7                                 0                       0: The result of the last operation is different from

1  1  I1  H  I0  N  Z             C                          zero.
                                                          1: The result of the last operation is zero.
The 8-bit Condition Code register contains the in-
terrupt masks and four flags representative of the        This bit is accessed by the JREQ and JRNE test
result of the instruction just executed. This register    instructions.
can also be handled by the PUSH and POP in-
structions.                                               Bit 0 = C Carry/borrow.

These bits can be individually tested and/or con-         This bit is set and cleared by hardware and soft-
trolled by specific instructions.                         ware. It indicates an overflow or an underflow has
                                                          occurred during the last arithmetic operation.
Arithmetic Management Bits                                0: No overflow or underflow has occurred.
                                                          1: An overflow or underflow has occurred.
Bit 4 = H Half carry.
                                                          This bit is driven by the SCF and RCF instructions
This bit is set by hardware when a carry occurs be-       and tested by the JRC and JRNC instructions. It is
tween bits 3 and 4 of the ALU during an ADD or            also affected by the "bit test and branch", shift and
ADC instructions. It is reset by hardware during          rotate instructions.
the same instructions.
                                                          Interrupt Management Bits
0: No half carry has occurred.
1: A half carry has occurred.                             Bit 5,3 = I1, I0 Interrupt
                                                          The combination of the I1 and I0 bits gives the cur-
This bit is tested using the JRH or JRNH instruc-         rent interrupt software priority.
tion. The H bit is useful in BCD arithmetic subrou-
tines.                                                          Interrupt Software Priority  I1  I0
                                                          Level 0 (main)
Bit 2 = N Negative.                                       Level 1                            1   0
                                                          Level 2
This bit is set and cleared by hardware. It is repre-     Level 3 (= interrupt disable)      0   1
sentative of the result sign of the last arithmetic,
logical or data manipulation. It's a copy of the re-                                         0   0
sult 7th bit.
0: The result of the last operation is positive or null.                                     1   1
1: The result of the last operation is negative
                                                          These two bits are set/cleared by hardware when
   (that is, the most significant bit is a logic 1).      entering in interrupt. The loaded value is given by
                                                          the corresponding bits in the interrupt software pri-
This bit is accessed by the JRMI and JRPL instruc-        ority registers (IxSPR). They can be also set/
tions.                                                    cleared by software with the RIM, SIM, IRET,
                                                          HALT, WFI and PUSH/POP instructions.

                                                          See the interrupt management chapter for more
                                                          details.

                                                                                                 25/197
ST72325xx

CENTRAL PROCESSING UNIT (Cont'd)

Stack Pointer (SP)                                            The least significant byte of the Stack Pointer
Read/Write                                                    (called S) can be directly accessed by a LD in-
Reset Value: 01 FFh                                           struction.

15                                                    8       Note: When the lower limit is exceeded, the Stack
                                                              Pointer wraps around to the stack upper limit, with-
0       0  0         0          0  0               0  1       out indicating the stack overflow. The previously
                                                              stored information is then overwritten and there-
7                                                     0       fore lost. The stack also wraps in case of an under-
                                                              flow.
SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
                                                              The stack is used to save the return address dur-
The Stack Pointer is a 16-bit register which is al-           ing a subroutine call and the CPU context during
ways pointing to the next free location in the stack.         an interrupt. The user may also directly manipulate
It is then decremented after data has been pushed             the stack by means of the PUSH and POP instruc-
onto the stack and incremented before data is                 tions. In the case of an interrupt, the PCL is stored
popped from the stack (see Figure 2).                         at the first location pointed to by the SP. Then the
                                                              other registers are stored in the next locations as
Since the stack is 256 bytes deep, the 8 most sig-            shown in Figure 2.
nificant bits are forced by hardware. Following an
MCU Reset, or after a Reset Stack Pointer instruc-             When an interrupt is received, the SP is decre-
tion (RSP), the Stack Pointer contains its reset val-           mented and the context is pushed on the stack.
ue (the SP7 to SP0 bits are set) which is the stack
higher address.                                                On return from interrupt, the SP is incremented
                                                                and the context is popped from the stack.

                                                              A subroutine call occupies two locations and an in-
                                                              terrupt five locations in the stack area.

Figure 11. Stack Manipulation Example

          CALL                  Interrupt             PUSH Y          POP Y   IRET              RET
        Subroutine               Event                                                       or RSP

@ 0100h

                            SP                 SP                 SP  CC      PCH
                                                        Y               A                SP
  SP                                CC                CC                X
                PCH                  A                  A             PCH     PCL
                                     X                  X             PCL SP
@ 01FFh PCL                        PCH                PCH             PCH
                                   PCL                PCL             PCL
                                   PCH                PCH
                                   PCL                PCL

           Stack Higher Address = 01FFh
           Stack Lower Address = 0100h

26/197
                                                                                                         ST72325xx

6 SUPPLY, RESET AND CLOCK MANAGEMENT

The device includes a range of utility features for      6.1 PHASE LOCKED LOOP
securing the application in critical situations (for
example in case of a power brown-out), and re-           If the clock frequency input to the PLL is in the
ducing the number of external components. An             range 2 to 4 MHz, the PLL can be used to multiply
overview is shown in Figure 13.                          the frequency by two to obtain an fOSC2 of 4 to 8
                                                         MHz. The PLL is enabled by option byte. If the PLL
For more details, refer to dedicated parametric          is disabled, then fOSC2 = fOSC/2.
section.                                                 Caution: The PLL is not recommended for appli-
                                                         cations where timing accuracy is required. See
Main features                                            "PLL Characteristics" on page 154.
Optional PLL for multiplying the frequency by 2
                                                         Figure 12. PLL Block Diagram
   (not to be used with internal RC oscillator)
Reset Sequence Manager (RSM)                                              PLL x 2          0

Multi-Oscillator Clock Management (MO)                  fOSC                                              fOSC2
                                                                                            1
    5 Crystal/Ceramic resonator oscillators                                   /2
    1 Internal RC oscillator
System Integrity Management (SI)                                                    PLL OPTION BIT

    Main supply Low voltage detection (LVD)
    Auxiliary Voltage detector (AVD) with interrupt

     capability for monitoring the main supply
    Clock Security System (CSS) with Clock Filter

     and Backup Safe Oscillator (enabled by op-
     tion byte)

Figure 13. Clock, Reset and Supply Block Diagram

                                          SYSTEM INTEGRITY MANAGEMENT

                                                         CLOCK SECURITY SYSTEM
                                                                        (CSS)

OSC2       MULTI-  fOSC            fOSC2                 CLOCK      SAFE             fOSC2  MAIN CLOCK            fCPU
OSC1   OSCILLATOR                                        FILTER     OSC                     CONTROLLER
                         PLL
             (MO)                                                                           WITH REALTIME
                         (option)
                                                                                            CLOCK (MCC/RTC)

       RESET SEQUENCE                                    AVD Interrupt Request               WATCHDOG
             MANAGER                                                                        TIMER (WDG)
RESET           (RSM)              SICSR

  VSS                              AVD AVD AVD LVD               0  CSS CSS WDG
  VDD                                S IE F RF                       IE D RF
  EVD
                                                                                  CSS Interrupt Request

                                                                 LOW VOLTAGE
                                                                   DETECTOR
                                                                        (LVD)

                                                      0  AUXILIARY VOLTAGE

                                                                          DETECTOR
                                                      1

                                                                              (AVD)

                                                                                                                  27/197
ST72325xx

6.2 MULTI-OSCILLATOR (MO)                              the drawback of a lower frequency accuracy and
                                                       should not be used in applications that require ac-
The main clock of the ST7 can be generated by          curate timing.
three different source types coming from the multi-    In this mode, the two oscillator pins have to be tied
oscillator block:                                      to ground.

an external source                                    Table 6. ST7 Clock Sources

4 crystal or ceramic resonator oscillators                                    Hardware Configuration

an internal high frequency RC oscillator              External Clock                                                ST7

Each oscillator is optimized for a given frequency                                                             OSC1        OSC2
range in terms of consumption and is selectable
through the option byte. The associated hardware                                                          EXTERNAL
configurations are shown in Table 6. Refer to the                                                          SOURCE
electrical characteristics section for more details.
                                                       Internal RC Oscillator Crystal/Ceramic Resonators             ST7
External Clock Source
                                                                                                               OSC1        OSC2
In this external clock mode, a clock signal (square,
sinus or triangle) with ~50% duty cycle has to drive                                                      CL1        LOAD        CL2
the OSC1 pin while the OSC2 pin is tied to ground.
                                                                                                               CAPACITORS
Crystal/Ceramic Oscillators
                                                                                                                     ST7
This family of oscillators has the advantage of pro-
ducing a very accurate rate on the main clock of                                                               OSC1        OSC2
the ST7. The selection within a list of 4 oscillators
with different frequency ranges has to be done by
option byte in order to reduce consumption (refer
to section 14.1 on page 181 for more details on the
frequency ranges). In this mode of the multi-oscil-
lator, the resonator and the load capacitors have
to be placed as close as possible to the oscillator
pins in order to minimize output distortion and
start-up stabilization time. The loading capaci-
tance values must be adjusted according to the
selected oscillator.

These oscillators are not stopped during the
RESET phase to avoid losing time in the oscillator
start-up phase.

Internal RC Oscillator

This oscillator allows a low cost solution for the
main clock of the ST7 using only an internal resis-
tor and capacitor. Internal RC oscillator mode has

28/197
                                                                                             ST72325xx

6.3 RESET SEQUENCE MANAGER (RSM)                     Figure 14. RESET Sequence Phases

6.3.1 Introduction                                   Active Phase       RESET                 FETCH
                                                                                             VECTOR
The reset sequence manager includes three RE-                             INTERNAL RESET
SET sources as shown in Figure 15:                                 256 or 4096 CLOCK CYCLES
External RESET source pulse
Internal LVD RESET (Low Voltage Detection)          Caution: When the ST7 is unprogrammed or fully
Internal WATCHDOG RESET                             erased, the Flash is blank and the RESET vector
                                                     is not programmed.
These sources act on the RESET pin and it is al-
ways kept low during the delay phase.                For this reason, it is recommended to keep the
                                                     RESET pin in low state until programming mode is
The RESET service routine vector is fixed at ad-     entered, in order to avoid unwanted behavior.
dresses FFFEh-FFFFh in the ST7 memory map.
                                                     6.3.2 Asynchronous External RESET pin
The basic RESET sequence consists of 3 phases
as shown in Figure 14:                               The RESET pin is both an input and an open-drain
Active Phase depending on the RESET source          output with integrated RON weak pull-up resistor.
256 or 4096 CPU clock cycle delay (selected by      This pull-up has no fixed value but varies in ac-
                                                     cordance with the input voltage. It can be pulled
   option byte)                                      low by external circuitry to reset the device. See
RESET vector fetch                                  "CONTROL PIN CHARACTERISTICS" on
                                                     page 162 for more details.
The 256 or 4096 CPU clock cycle delay allows the
oscillator to stabilise and ensures that recovery    A RESET signal originating from an external
has taken place from the Reset state. The shorter    source must have a duration of at least th(RSTL)in in
or longer clock cycle delay should be selected by    order to be recognized (see Figure 16). This de-
option byte to correspond to the stabilization time  tection is asynchronous and therefore the MCU
of the external oscillator used in the application   can enter reset state even in HALT mode.
(see section 14.1 on page 181).

The RESET vector fetch phase duration is 2 clock
cycles.

Figure 15. Reset Block Diagram

       VDD

            RON

RESET            Filter                                            INTERNAL
                                                                   RESET

                                                          PULSE    WATCHDOG RESET
                                                     GENERATOR     LVD RESET

                                                                                             29/197
ST72325xx

RESET SEQUENCE MANAGER (Cont'd)                         A proper reset signal for a slow rising VDD supply
                                                        can generally be provided by an external RC net-
The RESET pin is an asynchronous signal which           work connected to the RESET pin.
plays a major role in EMS performance. In a noisy
environment, it is recommended to follow the            6.3.4 Internal Low Voltage Detector (LVD)
guidelines mentioned in the electrical characteris-     RESET
tics section.
If the external RESET pulse is shorter than             Two different RESET sequences caused by the in-
tw(RSTL)out (see short ext. Reset in Figure 16), the    ternal LVD circuitry can be distinguished:
signal on the RESET pin may be stretched. Other-         Power-On RESET
wise the delay will not be applied (see long ext.        Voltage Drop RESET
Reset in Figure 16). Starting from the external RE-
SET pulse recognition, the device RESET pin acts        The device RESET pin acts as an output that is
as an output that is pulled low during at least         pulled low when VDD tw(RSTL)out.                                            VDD 6.3.3 External Power-On RESET                           The LVD filters spikes on VDD larger than tg(VDD) to
If the LVD is disabled by option byte, to start up the  avoid parasitic resets.
microcontroller correctly, the user must ensure by
means of an external reset circuit that the reset       6.3.5 Internal Watchdog RESET
signal is held low until VDD is over the minimum
level specified for the selected fOSC frequency.        The RESET sequence generated by a internal
(see "OPERATING CONDITIONS" on page 144)                Watchdog counter overflow is shown in Figure 16.

Figure 16. RESET Sequences                              Starting from the Watchdog counter underflow, the
                    VDD                                 device RESET pin acts as an output that is pulled
                                                        low during at least tw(RSTL)out.
        VIT+(LVD)
        VIT-(LVD)

             RUN             LVD  RUN            SHORT EXT.  RUN              LONG EXT.  RUN   WATCHDOG    RUN
                           RESET                     RESET                       RESET             RESET

                  ACTIVE PHASE                 ACTIVE                      ACTIVE             ACTIVE
                                               PHASE                       PHASE              PHASE

                                  tw(RSTL)out                 tw(RSTL)out                     tw(RSTL)out
                                  th(RSTL)in                th(RSTL)in

                                                        DELAY

  EXTERNAL
  RESET
  SOURCE

  RESET PIN

WATCHDOG
RESET

                                                                           WATCHDOG UNDERFLOW
                                                                                                        INTERNAL RESET (256 or 4096 TCPU)
                                                                                                        VECTOR FETCH

30/197
                                                            ST72325xx

6.4 SYSTEM INTEGRITY MANAGEMENT (SI)                      under full software control
                                                          in static safe reset
The System Integrity Management block contains        In these conditions, secure operation is always en-
the Low Voltage Detector (LVD) Auxiliary Voltage      sured for the application without the need for ex-
Detector (AVD) functions and Clock Security Sys-      ternal reset hardware.
tem (CSS). It is managed by the SICSR register.
6.4.1 Low Voltage Detector (LVD)                      During a Low Voltage Detector Reset, the RESET
The Low Voltage Detector function (LVD) gener-        pin is held low, thus permitting the MCU to reset
ates a static reset when the VDD supply voltage is    other devices.
below a VIT- reference value. This means that it
secures the power-up as well as the power-down        Notes:
keeping the ST7 in reset.
The VIT- reference value for a voltage drop is lower  The LVD allows the device to be used without any
than the VIT+ reference value for power-on in order   external RESET circuitry.
to avoid a parasitic reset when the MCU starts run-
ning and sinks current on the supply (hysteresis).    If the medium or low thresholds are selected, the
The LVD Reset circuitry generates a reset when        detection may occur outside the specified operat-
VDD is below:                                         ing voltage range. Below 3.8V, device operation is
                                                      not guaranteed.
    VIT+ when VDD is rising
    VIT- when VDD is falling                         The LVD is an optional function which can be se-
The LVD function is illustrated in Figure 17.         lected by option byte.
The voltage threshold can be configured by option
byte to be low, medium or high.                       It is recommended to make sure that the VDD sup-
                                                      ply voltage rises monotonously when the device is
Provided the minimum VDD value (guaranteed for        exiting from Reset, to ensure the application func-
the oscillator frequency) is above VIT-, the MCU      tions properly.
can only be in two modes:

Figure 17. Low Voltage Detector vs Reset

       VDD

                                                      Vhys

VIT+
VIT-

RESET

                                                            31/197
ST72325xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)

6.4.2 Auxiliary Voltage Detector (AVD)                 In the case of a drop in voltage, the AVD interrupt
                                                       acts as an early warning, allowing software to shut
The Voltage Detector function (AVD) is based on        down safely before the LVD resets the microcon-
an analog comparison between a VIT-(AVD) and           troller. See Figure 18.
VIT+(AVD) reference value and the VDD main sup-
ply or the external EVD pin voltage level (VEVD).      The interrupt on the rising edge is used to inform
The VIT- reference value for falling voltage is lower  the application that the VDD warning state is over.
than the VIT+ reference value for rising voltage in
order to avoid parasitic detection (hysteresis).       If the voltage rise time trv is less than 256 or 4096
                                                       CPU cycles (depending on the reset delay select-
The output of the AVD comparator is directly read-     ed by option byte), no AVD interrupt will be gener-
able by the application software through a real        ated when VIT+(AVD) is reached.
time status bit (AVDF) in the SICSR register. This
bit is read only.                                      If trv is greater than 256 or 4096 cycles then:

Caution: The AVD function is active only if the         If the AVD interrupt is enabled before the
LVD is enabled through the option byte.                  VIT+(AVD) threshold is reached, then 2 AVD inter-
                                                         rupts will be received: the first when the AVDIE
6.4.2.1 Monitoring the VDD Main Supply                   bit is set, and the second when the threshold is
This mode is selected by clearing the AVDS bit in        reached.
the SICSR register.
                                                       If the AVD interrupt is enabled after the VIT+(AVD)
The AVD voltage threshold value is relative to the       threshold is reached then only one AVD interrupt
selected LVD threshold configured by option byte         will occur.
(see section 14.1 on page 181).

If the AVD interrupt is enabled, an interrupt is gen-
erated when the voltage crosses the VIT+(AVD) or
VIT-(AVD) threshold (AVDF bit toggles).

Figure 18. Using the AVD to Monitor VDD (AVDS bit=0)

            VDD         Early Warning Interrupt
                        (Power has dropped, MCU not
VIT+(AVD)               not yet in reset)

                        Vhyst

VIT-(AVD)                                              trv VOLTAGE RISE TIME
VIT+(LVD)

VIT-(LVD)

AVDF bit          0  1  RESET VALUE                    1  0

AVD INTERRUPT
REQUEST
IF AVDIE bit = 1

                        INTERRUPT PROCESS                 INTERRUPT PROCESS

LVD RESET

32/197
                                                                           ST72325xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)                  of the comparator output. This means it is generat-
                                                      ed when either one of these two events occur:
6.4.2.2 Monitoring a Voltage on the EVD pin
                                                          VEVD rises up to VIT+(EVD)
This mode is selected by setting the AVDS bit in          VEVD falls down to VIT-(EVD)
the SICSR register.                                   The EVD function is illustrated in Figure 19.

The AVD circuitry can generate an interrupt when      For more details, refer to the Electrical Character-
the AVDIE bit of the SICSR register is set. This in-  istics section.
terrupt is generated on the rising and falling edges

Figure 19. Using the Voltage Detector to Monitor the EVD pin (AVDS bit=1)

           VEVD

VIT+(EVD)           Vhyst
VIT-(EVD)

AVDF             0                        1                                     0

AVD INTERRUPT       INTERRUPT PROCESS                                      INTERRUPT PROCESS
REQUEST
IF AVDIE = 1

                                                                           33/197
ST72325xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)                    CSSIE bit has been previously set.
                                                        These two bits are described in the SICSR register
6.4.3 Clock Security System (CSS)                       description.

The Clock Security System (CSS) protects the            6.4.4 Low Power Modes
ST7 against breakdowns, spikes and overfrequen-
cies occurring on the main clock source (fOSC). It        Mode                         Description
is based on a clock filter and a clock detection con-   WAIT
trol with an internal safe oscillator (fSFOSC).                    No effect on SI. CSS and AVD interrupts
6.4.3.1 Clock Filter Control                            HALT       cause the device to exit from Wait mode.

The PLL has an integrated glitch filtering capability              The SICSR register is frozen.The CSS (in-
making it possible to protect the internal clock from              cluding the safe oscillator) is disabled until
overfrequencies created by individual spikes. This                 HALT mode is exited. The previous CSS
feature is available only when the PLL is enabled.                 configuration resumes when the MCU is
If glitches occur on fOSC (for example, due to loose               woken up by an interrupt with "exit from
connection or noise), the CSS filters these auto-                  HALT mode" capability or from the counter
matically, so the internal CPU frequency (fCPU)                    reset value when the MCU is woken up by a
continues deliver a glitch-free signal (see Figure                 RESET.
20).
                                                        6.4.4.1 Interrupts
6.4.3.2 Clock detection Control
                                                        The CSS orAVD interrupt events generate an in-
If the clock signal disappears (due to a broken or      terrupt if the corresponding Enable Control Bit
disconnected resonator...), the safe oscillator de-     (CSSIE or AVDIE) is set and the interrupt mask in
livers a low frequency clock signal (fSFOSC) which      the CC register is reset (RIM instruction).
allows the ST7 to perform some rescue opera-
tions.                                                  Interrupt Event  Event  Enable   Exit  Exit
                                                                          Flag  Control  from  from
Automatically, the ST7 clock source switches back                                        Wait  Halt
from the safe oscillator (fSFOSC) if the main clock                                Bit
source (fOSC) recovers.                                                                         No
When the internal clock (fCPU) is driven by the safe    CSS event detection
oscillator (fSFOSC), the application software is noti-  (safe oscillator acti- CSSD CSSIE Yes   No
fied by hardware setting the CSSD bit in the SIC-       vated as main clock)
SR register. An interrupt can be generated if the
                                                        AVD event        AVDF AVDIE Yes
Figure 20. Clock Filter Function

   Clock Filter Function

            fOSC2PLL ON
            fCPU

Clock Detection Function

            fOSC2
            fSFOSC
            fCPU

34/197
                                                                           ST72325xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)

6.4.5 Register Description

SYSTEM INTEGRITY (SI) CONTROL/STATUS REGISTER (SICSR)

Read / Write                                           is detected by the Clock Security System (CSSD
Reset Value: 000x 000x (00h)                           bit set). It is set and cleared by software.
                                                       0: Clock security system interrupt disabled
7                             0                        1: Clock security system interrupt enabled
                                                       When the CSS is disabled by OPTION BYTE, the
AVD AVD AVD LVD  0            CSS CSS WDG              CSSIE bit has no effect.
  S IE F RF                    IE D RF

Bit 7 = AVDS Voltage Detection selection               Bit 1 = CSSD Clock security system detection
This bit is set and cleared by software. Voltage De-   This bit indicates that the safe oscillator of the
tection is available only if the LVD is enabled by     Clock Security System block has been selected by
option byte.                                           hardware due to a disturbance on the main clock
0: Voltage detection on VDD supply                     signal (fOSC). It is set by hardware and cleared by
1: Voltage detection on EVD pin                        reading the SICSR register when the original oscil-
                                                       lator recovers.
Bit 6 = AVDIE Voltage Detector interrupt enable        0: Safe oscillator is not active
This bit is set and cleared by software. It enables    1: Safe oscillator has been activated
an interrupt to be generated when the AVDF flag        When the CSS is disabled by OPTION BYTE, the
changes (toggles). The pending interrupt informa-      CSSD bit value is forced to 0.
tion is automatically cleared when software enters
the AVD interrupt routine.                             Bit 0 = WDGRF Watchdog reset flag
0: AVD interrupt disabled                              This bit indicates that the last Reset was generat-
1: AVD interrupt enabled                               ed by the Watchdog peripheral. It is set by hard-
                                                       ware (watchdog reset) and cleared by software
Bit 5 = AVDF Voltage Detector flag                     (writing zero) or an LVD Reset (to ensure a stable
This read-only bit is set and cleared by hardware.     cleared state of the WDGRF flag when CPU
If the AVDIE bit is set, an interrupt request is gen-  starts).
erated when the AVDF bit changes value. Refer to       Combined with the LVDRF flag information, the
Figure 18 and to Section 6.4.2.1 for additional de-    flag description is given by the following table.
tails.
0: VDD or VEVD over VIT+(AVD) threshold                 RESET Sources      LVDRF  WDGRF
1: VDD or VEVD under VIT-(AVD) threshold
                                                       External RESET pin      0       0
                                                             Watchdog          0       1
                                                                 LVD           1       X

Bit 4 = LVDRF LVD reset flag                           Application notes
This bit indicates that the last Reset was generat-
ed by the LVD block. It is set by hardware (LVD re-    The LVDRF flag is not cleared when another RE-
set) and cleared by software (writing zero). See       SET type occurs (external or watchdog), the
WDGRF flag description for more details. When          LVDRF flag remains set to keep trace of the origi-
the LVD is disabled by OPTION BYTE, the LVDRF          nal failure.
bit value is undefined.                                In this case, a watchdog reset can be detected by
                                                       software while an external reset can not.
Bit 3 = Reserved, must be kept cleared.
                                                       CAUTION: When the LVD is not activated with the
Bit 2 = CSSIE Clock security syst. interrupt enable    associated option byte, the WDGRF flag can not
This bit enables the interrupt when a disturbance      be used in the application.

                                                                                  35/197
ST72325xx

7 INTERRUPTS

7.1 INTRODUCTION                                     each interrupt vector (see Table 7). The process-
                                                     ing flow is shown in Figure 21
The ST7 enhanced interrupt management pro-
vides the following features:                        When an interrupt request has to be serviced:
Hardware interrupts
Software interrupt (TRAP)                            Normal processing is suspended at the end of
Nested or concurrent interrupt management             the current instruction execution.

   with flexible interrupt priority and level         The PC, X, A and CC registers are saved onto
   management:                                         the stack.

    Up to 4 software programmable nesting levels    I1 and I0 bits of CC register are set according to
    Up to 16 interrupt vectors fixed by hardware      the corresponding values in the ISPRx registers
    2 non maskable events: RESET, TRAP                of the serviced interrupt vector.
    1 maskable Top Level event: TLI
This interrupt management is based on:                The PC is then loaded with the interrupt vector of
                                                       the interrupt to service and the first instruction of
Bit 5 and bit 3 of the CPU CC register (I1:0),       the interrupt service routine is fetched (refer to
Interrupt software priority registers (ISPRx),       "Interrupt Mapping" table for vector addresses).
Fixed interrupt vector addresses located at the
                                                     The interrupt service routine should end with the
  high addresses of the memory map (FFE0h to         IRET instruction which causes the contents of the
  FFFFh) sorted by hardware priority order.          saved registers to be recovered from the stack.
This enhanced interrupt controller guarantees full
upward compatibility with the standard (not nest-    Note: As a consequence of the IRET instruction,
ed) ST7 interrupt controller.                        the I1 and I0 bits will be restored from the stack
                                                     and the program in the previous level will resume.
7.2 MASKING AND PROCESSING FLOW
                                                     Table 7. Interrupt Software Priority Levels
The interrupt masking is managed by the I1 and I0
bits of the CC register and the ISPRx registers         Interrupt software priority Level I1                                I0
which give the interrupt software priority level of
                                                        Level 0 (main)  Low                                           1     0

                                                        Level 1                                                       0     1
                                                        Level 2
                                                                                                                      0     0

                                                        Level 3 (= interrupt disable) High                            1     1

Figure 21. Interrupt Processing Flowchart

           RESET              PENDING                Y                                        TRAP                       Y

                              INTERRUPT

                              N                                  Interrupt has the same or a      N
                                                                    lower software priority   I1:0
                                                                        than current one

                              FETCH NEXT                THE INTERRUPT                         Interrupt has a higher
                              INSTRUCTION               STAYS PENDING                            software priority
                                                                                                    than current one
                              Y
        RESTORE PC, X, A, CC          "IRET"                                  STACK PC, X, A, CC
              FROM STACK              N                          LOAD I1:0 FROM INTERRUPT SW REG.
                                                                 LOAD PC FROM INTERRUPT VECTOR
                                   EXECUTE
                                INSTRUCTION

36/197
                                                        ST72325xx

INTERRUPTS (Cont'd)                                      TRAP (Non Maskable Software Interrupt)

Servicing Pending Interrupts                            This software interrupt is serviced when the TRAP
As several interrupts can be pending at the same        instruction is executed. It will be serviced accord-
time, the interrupt to be taken into account is deter-  ing to the flowchart in Figure 21.
mined by the following two-step process:
the highest software priority interrupt is serviced,  Caution: TRAP can be interrupted by a TLI.
if several interrupts have the same software pri-
                                                         RESET
  ority then the interrupt with the highest hardware
  priority is serviced first.                           The RESET source has the highest priority in the
Figure 22 describes this decision process.              ST7. This means that the first current routine has
                                                        the highest software priority (level 3) and the high-
Figure 22. Priority Decision Process                    est hardware priority.
                                                        See the RESET chapter for more details.
                                      PENDING
                                   INTERRUPTS           Maskable Sources

Same  SOFTWARE     Different                            Maskable interrupt vector sources can be serviced
       PRIORITY                                         if the corresponding interrupt is enabled and if its
                                                        own interrupt software priority (in ISPRx registers)
                   HIGHEST SOFTWARE                     is higher than the one currently being serviced (I1
                   PRIORITY SERVICED                    and I0 in CC register). If any of these two condi-
                                                        tions is false, the interrupt is latched and thus re-
HIGHEST HARDWARE                                        mains pending.
PRIORITY SERVICED
                                                         TLI (Top Level Hardware Interrupt)
When an interrupt request is not serviced immedi-
ately, it is latched and then processed when its        This hardware interrupt occurs when a specific
software priority combined with the hardware pri-       edge is detected on the dedicated TLI pin. It will be
ority becomes the highest one.                          serviced according to the flowchart in Figure 21 as
                                                        a trap.
Note 1: The hardware priority is exclusive while        Caution: A TRAP instruction must not be used in a
the software one is not. This allows the previous       TLI service routine.
process to succeed with only one interrupt.
Note 2: TLI,RESET and TRAP can be considered             External Interrupts
as having the highest software priority in the deci-
sion process.                                           External interrupts allow the processor to exit from
                                                        HALT low power mode. External interrupt sensitiv-
Different Interrupt Vector Sources                      ity is software selectable through the External In-
                                                        terrupt Control register (EICR).
Two interrupt source types are managed by the           External interrupt triggered on edge will be latched
ST7 interrupt controller: the non-maskable type         and the interrupt request automatically cleared
(RESET, TRAP) and the maskable type (external           upon entering the interrupt service routine.
or from internal peripherals).                          If several input pins of a group connected to the
                                                        same interrupt line are selected simultaneously,
Non-Maskable Sources                                    these will be logically ORed.

These sources are processed regardless of the            Peripheral Interrupts
state of the I1 and I0 bits of the CC register (see
Figure 21). After stacking the PC, X, A and CC          Usually the peripheral interrupts cause the MCU to
registers (except for RESET), the corresponding         exit from HALT mode except those mentioned in
vector is loaded in the PC register and the I1 and      the "Interrupt Mapping" table. A peripheral inter-
I0 bits of the CC are set to disable interrupts (level  rupt occurs when a specific flag is set in the pe-
3). These sources allow the processor to exit           ripheral status registers and if the corresponding
HALT mode.                                              enable bit is set in the peripheral control register.
                                                        The general sequence for clearing an interrupt is
                                                        based on an access to the status register followed
                                                        by a read or write to an associated register.
                                                        Note: The clearing sequence resets the internal
                                                        latch. A pending interrupt (i.e. waiting for being
                                                        serviced) will therefore be lost if the clear se-
                                                        quence is executed.

                                                        37/197
ST72325xx

INTERRUPTS (Cont'd)

7.3 INTERRUPTS AND LOW POWER MODES                                       7.4 CONCURRENT & NESTED MANAGEMENT

All interrupts allow the processor to exit the WAIT                      The following Figure 23 and Figure 24 show two
low power mode. On the contrary, only external                           different interrupt management modes. The first is
and other specified interrupts allow the processor                       called concurrent mode and does not allow an in-
to exit from the HALT modes (see column "Exit                            terrupt to be interrupted, unlike the nested mode in
from HALT" in "Interrupt Mapping" table). When                           Figure 24. The interrupt hardware priority is given
several pending interrupts are present while exit-                       in this order from the lowest to the highest: MAIN,
ing HALT mode, the first one serviced can only be                        IT4, IT3, IT2, IT1, IT0, TLI. The software priority is
an interrupt with exit from HALT mode capability                         given for each interrupt.
and it is selected through the same decision proc-
ess shown in Figure 22.                                                  Warning: A stack overflow may occur without no-
                                                                         tifying the software of the failure.
Note: If an interrupt, that is not able to Exit from
HALT mode, is pending with the highest priority
when exiting HALT mode, this interrupt is serviced
after the first one serviced.

Figure 23. Concurrent Interrupt Management

                            IT2                                                                                SOFTWARE              I1      I0
                                  IT1
                                        IT4                                                                    PRIORITY
                                              IT3
                                                    TRAP                                                       LEVEL
                                                          IT0

HARDWARE PRIORITY                            TRAP                                                                               3        11      USED STACK = 10 BYTES

                                                                    IT0                                                         3        11

                                        IT1                    IT1                                                              3        11

                            IT2                                                                                                 3        11

                                                                                           IT3                                  3        11
                   RIM
                                                                                                                                3        11
                                                                                                          IT4

                    MAIN                                                                                           MAIN         3/0

                   11 / 10                                                                                     10

Figure 24. Nested Interrupt Management

                            IT2                                                                                SOFTWARE              I1      I0
                                  IT1
                                        IT4                                                                    PRIORITY
                                              IT3
                                                    TRAP
                                                          IT0

                                                                                                               LEVEL

HARDWARE PRIORITY                            TRAP                                                                               3        11      USED STACK = 20 BYTES
                                                                 IT0
                                                                                                                                3        11

                                   IT1                                           IT1                                            2        00
                            IT2                                          IT3
                                                                                                               IT2              1        01

                      RIM                                                                                                 MAIN  3        11

                    MAIN                IT4                    IT4                                                  10          3        11

                   11 / 10                                                                                                      3/0

38/197
                                                                                     ST72325xx

INTERRUPTS (Cont'd)

7.5 INTERRUPT REGISTER DESCRIPTION                     INTERRUPT SOFTWARE PRIORITY REGIS-
                                                       TERS (ISPRX)

CPU CC REGISTER INTERRUPT BITS                         Read/Write (bit 7:4 of ISPR3 are read only)
Read / Write
Reset Value: 111x 1010 (xAh)                           Reset Value: 1111 1111 (FFh)

                                                       7                                            0

7                                         0            ISPR0 I1_3 I0_3 I1_2 I0_2 I1_1 I0_1 I1_0 I0_0

1        1      I1  H  I0       N      Z  C

                                                       ISPR1 I1_7 I0_7 I1_6 I0_6 I1_5 I0_5 I1_4 I0_4

Bit 5, 3 = I1, I0 Software Interrupt Priority          ISPR2 I1_11 I0_11 I1_10 I0_10 I1_9 I0_9 I1_8 I0_8

These two bits indicate the current interrupt soft-    ISPR3 1 1 1 1 I1_13 I0_13 I1_12 I0_12
ware priority.

Interrupt Software Priority Level I1      I0

Level 0 (main)             Low     1      0            These four registers contain the interrupt software
                                                       priority of each interrupt vector.
Level 1                            0      1
                                                       Each interrupt vector (except RESET and TRAP)
Level 2                            0      0              has corresponding bits in these registers where
                                                         its own software priority is stored. This corre-
Level 3 (= interrupt disable*) High 1     1              spondance is shown in the following table.

These two bits are set/cleared by hardware when        Vector address        ISPRx bits
entering in interrupt. The loaded value is given by
the corresponding bits in the interrupt software pri-   FFFBh-FFFAh     I1_0 and I0_0 bits*
ority registers (ISPRx).                                FFF9h-FFF8h     I1_1 and I0_1 bits

They can be also set/cleared by software with the               ...                ...
RIM, SIM, HALT, WFI, IRET and PUSH/POP in-              FFE1h-FFE0h    I1_13 and I0_13 bits
structions (see "Interrupt Dedicated Instruction
Set" table).                                           Each I1_x and I0_x bit value in the ISPRx regis-
                                                         ters has the same meaning as the I1 and I0 bits
*Note: TRAP and RESET events can interrupt a             in the CC register.
level 3 program.
                                                       Level 0 can not be written (I1_x=1, I0_x=0). In
                                                         this case, the previously stored value is kept. (ex-
                                                         ample: previous=CFh, write=64h, result=44h)

                                                       The TLI, RESET, and TRAP vectors have no soft-
                                                       ware priorities. When one is serviced, the I1 and I0
                                                       bits of the CC register are both set.

                                                       *Note: Bits in the ISPRx registers which corre-
                                                       spond to the TLI can be read and written but they
                                                       are not significant in the interrupt process man-
                                                       agement.

                                                       Caution: If the I1_x and I0_x bits are modified
                                                       while the interrupt x is executed the following be-
                                                       haviour has to be considered: If the interrupt x is
                                                       still pending (new interrupt or flag not cleared) and
                                                       the new software priority is higher than the previ-
                                                       ous one, the interrupt x is re-entered. Otherwise,
                                                       the software priority stays unchanged up to the
                                                       next interrupt request (after the IRET of the inter-
                                                       rupt x).

                                                                                                    39/197
ST72325xx

INTERRUPTS (Cont'd)

Table 8. Dedicated Interrupt Instruction Set

Instruction  New Description                  Function/Example       I1 H I0 N Z C

HALT         Entering Halt mode                                      1  0
IRET         Interrupt routine return
JRM          Jump if I1:0=11 (level 3)        Pop CC, A, X, PC       I1 H I0 N Z C
JRNM         Jump if I1:0<>11                 I1:0=11 ?
POP CC       Pop CC from the Stack            I1:0<>11 ?             I1 H I0 N Z C
RIM          Enable interrupt (level 0 set)   Mem => CC
SIM          Disable interrupt (level 3 set)  Load 10 in I1:0 of CC  1  0
TRAP         Software trap                    Load 11 in I1:0 of CC
WFI          Wait for interrupt               Software NMI           1  1

                                                                     1  1

                                                                     1  0

Note: During the execution of an interrupt routine, the HALT, POPCC, RIM, SIM and WFI instructions change the current
software priority up to the next IRET instruction or one of the previously mentioned instructions.

40/197
                                                                                        ST72325xx

INTERRUPTS (Cont'd)
Table 9. Interrupt Mapping

                                                                                Exit

N  Source                  Description                 Register      Priority    from  Address
     Block                                                Label        Order     HALT/  Vector
                                                                                ACTIVE

                                                                                HALT

    RESET Reset                                         N/A                     yes     FFFEh-FFFFh
                                                                                 no     FFFCh-FFFDh
    TRAP    Software interrupt                                                  yes     FFFAh-FFFBh

0   TLI     External top level interrupt                  EICR                  yes     FFF8h-FFF9h

1   MCC/RTC/ Main clock controller time base interrupt  MCCSR-        Higher    yes     FFF6h-FFF7h
                                                         SICSR        Priority  yes     FFF4h-FFF5h
    CSS     Safe oscillator activation interrupt                                yes     FFF2h-FFF3h
                                                                                yes     FFF0h-FFF1h
2   ei0     External interrupt port A3..0                                               FFEEh-FFEFh
                                                                                yes1    FFECh-FFEDh
3   ei1     External interrupt port F2..0               N/A                      no     FFEAh-FFEBh
                                                                                 no     FFE8h-FFE9h
4   ei2     External interrupt port B3..0                                        no     FFE6h-FFE7h
                                                                                 no     FFE4h-FFE5h
5   ei3     External interrupt port B7..4                                        no     FFE2h-FFE3h
                                                                                yes2    FFE0h-FFE1h
6                           Not used

7   SPI     SPI peripheral interrupts                   SPICSR

8   TIMER A TIMER A peripheral interrupts               TASR

9   TIMER B TIMER B peripheral interrupts               TBSR

10  SCI     SCI Peripheral interrupts                   SCISR         Lower
                                                        SICSR         Priority
11  AVD     Auxiliary Voltage detector interrupt

12  I2C     I2C Peripheral interrupts                   (see periph)

13 PWM ART PWM ART interrupt                            ARTCSR

Notes:
1. Exit from HALT possible when SPI is in slave mode.
2. Exit from HALT possible when PWM ART is in external clock mode.

7.6 EXTERNAL INTERRUPTS                                  Falling edge and low level

7.6.1 I/O Port Interrupt Sensitivity                     Rising edge and high level (only for ei0 and ei2)

The external interrupt sensitivity is controlled by     To guarantee correct functionality, the sensitivity
the IPA, IPB and ISxx bits of the EICR register         bits in the EICR register can be modified only
(Figure 25). This control allows to have up to 4 fully  when the I1 and I0 bits of the CC register are both
independent external interrupt source sensitivities.    set to 1 (level 3). This means that interrupts must
                                                        be disabled before changing sensitivity.
Each external interrupt source can be generated
on four (or five) different events on the pin:          The pending interrupts are cleared by writing a dif-
Falling edge                                           ferent value in the ISx[1:0], IPA or IPB bits of the
Rising edge                                            EICR.
Falling and rising edge

                                                                                        41/197
ST72325xx

INTERRUPTS (Cont'd)
Figure 25. External Interrupt Control bits

            PORT A3 INTERRUPT               EICR          ei0 INTERRUPT SOURCE
                   PAOR.3              IS20 IS21         ei1 INTERRUPT SOURCE
                                       SENSITIVITY        ei2 INTERRUPT SOURCE
                 PADDR.3                CONTROL          ei3 INTERRUPT SOURCE
        PA3
                                            EICR
                              IPA BIT  IS20 IS21
           PORT F [2:0] INTERRUPTS
                                       SENSITIVITY  PF2
                   PFOR.2
                 PFDDR.2               CONTROL      PF1
        PF2

                                                    PF0

            PORT B [3:0] INTERRUPTS         EICR
                    PBOR.3             IS10 IS11

                  PBDDR.3              SENSITIVITY  PB3
         PB3
                                       CONTROL      PB2
                              IPB BIT
                                                    PB1
           PORT B4 INTERRUPT
                   PBOR.4                           PB0

                 PBDDR.4                    EICR
        PB4                            IS10 IS11
                                       SENSITIVITY
                                        CONTROL

42/197
                                                                                           ST72325xx

7.7 EXTERNAL INTERRUPT CONTROL REGISTER (EICR)

Read / Write                                              - ei0 (port A3)
Reset Value: 0000 0000 (00h)
                                                                              External Interrupt Sensitivity
   7
                                                 0        IS21 IS20

                                                                              IPA bit =0   IPA bit =1

IS11 IS10 IPB IS21 IS20 IPA TLIS TLIE                    00               Falling edge &  Rising edge
                                                                              low level    & high level
Bit 7:6 = IS1[1:0] ei2 and ei3 sensitivity
The interrupt sensitivity, defined using the IS1[1:0]     0 1 Rising edge only Falling edge only
bits, is applied to the following external interrupts:
- ei2 (port B3..0)                                        1 0 Falling edge only Rising edge only

                                                          11                  Rising and falling edge

                 External Interrupt Sensitivity           - ei1 (port F2..0)

IS11 IS10        IPB bit =0      IPB bit =1               IS21 IS20           External Interrupt Sensitivity

  00             Falling edge &  Rising edge                00                    Falling edge & low level
  01                low level    & high level               01                         Rising edge only
  10                                                        10                         Falling edge only
  11       Rising edge only Falling edge only               11
                                                                                   Rising and falling edge
           Falling edge only Rising edge only

                 Rising and falling edge

- ei3 (port B4)                                           These 2 bits can be written only when I1 and I0 of
                                                          the CC register are both set to 1 (level 3).

IS11 IS10        External Interrupt Sensitivity           Bit 2 = IPA Interrupt polarity for port A
                                                          This bit is used to invert the sensitivity of the port A
  00                 Falling edge & low level             [3:0] external interrupts. It can be set and cleared
  01                      Rising edge only                by software only when I1 and I0 of the CC register
  10                      Falling edge only               are both set to 1 (level 3).
  11                                                      0: No sensitivity inversion
                      Rising and falling edge             1: Sensitivity inversion

These 2 bits can be written only when I1 and I0 of        Bit 1 = TLIS TLI sensitivity
the CC register are both set to 1 (level 3).              This bit allows to toggle the TLI edge sensitivity. It
                                                          can be set and cleared by software only when
Bit 5 = IPB Interrupt polarity for port B                 TLIE bit is cleared.
This bit is used to invert the sensitivity of the port B  0: Falling edge
[3:0] external interrupts. It can be set and cleared      1: Rising edge
by software only when I1 and I0 of the CC register
are both set to 1 (level 3).
0: No sensitivity inversion
1: Sensitivity inversion

Bit 4:3 = IS2[1:0] ei0 and ei1 sensitivity                Bit 0 = TLIE TLI enable
The interrupt sensitivity, defined using the IS2[1:0]     This bit allows to enable or disable the TLI capabil-
bits, is applied to the following external interrupts:    ity on the dedicated pin. It is set and cleared by
                                                          software.
                                                          0: TLI disabled
                                                          1: TLI enabled
                                                          Note: a parasitic interrupt can be generated when
                                                          clearing the TLIE bit.

                                                                                                       43/197
ST72325xx

INTERRUPTS (Cont'd)

Table 10. Nested Interrupts Register Map and Reset Values

Address    Register   7           6      5           4      3            2     1           0
(Hex.)      Label

                             ei1                ei0            MCC + SI               TLI

0024h    ISPR0        I1_3        I0_3   I1_2        I0_2   I1_1        I0_1
         Reset Value
                      1           1      1           1      1            1     1           1

                             SPI                                   ei3                ei2

0025h    ISPR1        I1_7        I0_7   I1_6        I0_6   I1_5        I0_5   I1_4        I0_4
         Reset Value
                      1           1      1           1      1            1     1           1

                             AVD                SCI            TIMER B            TIMER A

0026h    ISPR2        I1_11       I0_11  I1_10       I0_10  I1_9        I0_9   I1_8        I0_8
         Reset Value    1           1      1           1
                                                            1            1     1           1

                                                               PWMART                 I2C

0027h ISPR3                                                 I1_13       I0_13  I1_12       I0_12
                                                              1           1      1           1
         Reset Value  1           1      1           1

0028h    EICR         IS11        IS10   IPB         IS21   IS20        IPA    TLIS        TLIE
         Reset Value    0           0     0            0                         0           0
                                                            0            0

44/197
                                                                                            ST72325xx

8 POWER SAVING MODES

8.1 INTRODUCTION                                        8.2 SLOW MODE

To give a large measure of flexibility to the applica-  This mode has two targets:
tion in terms of power consumption, four main
power saving modes are implemented in the ST7            To reduce power consumption by decreasing the
(see Figure 26): SLOW, WAIT (SLOW WAIT), AC-              internal clock in the device,
TIVE HALT and HALT.
                                                         To adapt the internal clock frequency (fCPU) to
After a RESET the normal operating mode is se-            the available supply voltage.
lected by default (RUN mode). This mode drives
the device (CPU and embedded peripherals) by            SLOW mode is controlled by three bits in the
means of a master clock which is based on the           MCCSR register: the SMS bit which enables or
main oscillator frequency divided or multiplied by 2    disables Slow mode and two CPx bits which select
(fOSC2).                                                the internal slow frequency (fCPU).
From RUN mode, the different power saving               In this mode, the master clock frequency (fOSC2)
modes may be selected by setting the relevant           can be divided by 2, 4, 8 or 16. The CPU and pe-
register bits or by calling the specific ST7 software   ripherals are clocked at this lower frequency
instruction whose action depends on the oscillator      (fCPU).
status.                                                 Note: SLOW-WAIT mode is activated when enter-
                                                        ing the WAIT mode while the device is already in
Figure 26. Power Saving Mode Transitions                SLOW mode.

                                            High        Figure 27. SLOW Mode Clock Transitions

                                RUN                                   fOSC2/2      fOSC2/4  fOSC2

                                                               fCPU

          SLOW                                                 fOSC2
           WAIT
  SLOW WAIT                                             MCCSR  CP1:0  00       01
ACTIVE HALT
                                                               SMS

                                                                       NEW SLOW    NORMAL RUN MODE
                                                                      FREQUENCY           REQUEST

                                                                        REQUEST

       HALT

                   Low
POWER CONSUMPTION

                                                                                            45/197
ST72325xx

POWER SAVING MODES (Cont'd)

8.3 WAIT MODE                                           Figure 28. WAIT Mode Flow-chart

WAIT mode places the MCU in a low power con-            WFI INSTRUCTION  OSCILLATOR       ON
sumption mode by stopping the CPU.                                       PERIPHERALS      ON
This power saving mode is selected by calling the                        CPU              OFF
`WFI' instruction.                                                       I[1:0] BITS       10
All peripherals remain active. During WAIT mode,
the I[1:0] bits of the CC register are forced to `10',                   N
to enable all interrupts. All other registers and                                  RESET
memory remain unchanged. The MCU remains in
WAIT mode until an interrupt or RESET occurs,           N                     Y
whereupon the Program Counter branches to the
starting address of the interrupt or Reset service         INTERRUPT
routine.
The MCU will remain in WAIT mode until a Reset             Y
or an Interrupt occurs, causing it to wake up.                                OSCILLATOR ON

Refer to Figure 28.                                                      PERIPHERALS OFF

                                                                         CPU              ON

                                                                         I[1:0] BITS      10

                                                                         256 OR 4096 CPU CLOCK
                                                                                 CYCLE DELAY

                                                                         OSCILLATOR        ON
                                                                         PERIPHERALS
                                                                         CPU               ON
                                                                         I[1:0] BITS       ON
                                                                                          XX 1)

                                                                                          FETCH RESET VECTOR
                                                                                          OR SERVICE INTERRUPT

                                                        Note:

                                                        1. Before servicing an interrupt, the CC register is
                                                        pushed on the stack. The I[1:0] bits of the CC reg-
                                                        ister are set to the current software priority level of
                                                        the interrupt routine and recovered when the CC
                                                        register is popped.

46/197
                                                                                         ST72325xx

POWER SAVING MODES (Cont'd)

8.4 ACTIVE-HALT AND HALT MODES                         the interrupt occurs (tDELAY = 256 or 4096 tCPU de-
                                                       lay depending on option byte). Otherwise, the ST7
ACTIVE-HALT and HALT modes are the two low-            enters HALT mode for the remaining tDELAY peri-
est power consumption modes of the MCU. They           od.
are both entered by executing the `HALT' instruc-
tion. The decision to enter either in ACTIVE-HALT      Figure 29. ACTIVE-HALT Timing Overview
or HALT mode is given by the MCC/RTC interrupt
enable flag (OIE bit in MCCSR register).                         ACTIVE 256 OR 4096 CPU
                                                       RUN HALT CYCLE DELAY 1)
                                                                                              RUN

MCCSR Power Saving Mode entered when HALT

OIE bit  instruction is executed                                              RESET
                                                                                 OR
0 HALT mode                                                   HALT                        FETCH
1 ACTIVE-HALT mode                                     INSTRUCTION         INTERRUPT     VECTOR
                                                       [MCCSR.OIE=1]

8.4.1 ACTIVE-HALT MODE                                 Figure 30. ACTIVE-HALT Mode Flow-chart

ACTIVE-HALT mode is the lowest power con-              HALT INSTRUCTION    OSCILLATOR         ON
sumption mode of the MCU with a real time clock           (MCCSR.OIE=1)    PERIPHERALS 2)     OFF
available. It is entered by executing the `HALT' in-                                          OFF
struction when the OIE bit of the Main Clock Con-                          CPU                 10
troller Status register (MCCSR) is set (see section
10.2 on page 61 for more details on the MCCSR                              I[1:0] BITS
register).
                                                                           N
The MCU can exit ACTIVE-HALT mode on recep-                                            RESET
tion of an external interrupt, MCC/RTC interrupt or
a RESET. When exiting ACTIVE-HALT mode by              N                              Y
means of an interrupt, no 256 or 4096 CPU cycle                 INTERRUPT
delay occurs. The CPU resumes operation by                                 OSCILLATOR          ON
servicing the interrupt or by fetching the reset vec-                Y     PERIPHERALS
tor which woke it up (see Figure 30).                                      CPU                OFF
                                                                           I[1:0] BITS         ON
When entering ACTIVE-HALT mode, the I[1:0] bits                                               XX 3)
in the CC register are forced to `10b' to enable in-
terrupts. Therefore, if an interrupt is pending, the                       256 OR 4096 CPU CLOCK
MCU wakes up immediately.                                                          CYCLE DELAY

In ACTIVE-HALT mode, only the main oscillator                              OSCILLATOR          ON
and its associated counter (MCC/RTC) are run-                              PERIPHERALS
ning to keep a wake-up time base. All other periph-                        CPU                 ON
erals are not clocked except those which get their                         I[1:0] BITS         ON
clock supply from another clock generator (such                                               XX 3)
as external or auxiliary oscillator).
                                                                                                   FETCH RESET VECTOR
The safeguard against staying locked in ACTIVE-
HALT mode is provided by the oscillator interrupt.                                                 OR SERVICE INTERRUPT

Note: As soon as the interrupt capability of one of    Notes:
the oscillators is selected (MCCSR.OIE bit set),
entering ACTIVE-HALT mode while the Watchdog           1. This delay occurs only if the MCU exits ACTIVE-
is active does not generate a RESET.                   HALT mode by means of a RESET.
This means that the device cannot spend more           2. Peripheral clocked with an external clock source
than a defined delay in this power saving mode.        can still be active.
                                                       3. Before servicing an interrupt, the CC register is
CAUTION: When exiting ACTIVE-HALT mode fol-            pushed on the stack. The I[1:0] bits of the CC reg-
lowing an MCC/RTC interrupt, OIE bit of MCCSR          ister are set to the current software priority level of
register must not be cleared before tDELAY after       the interrupt routine and restored when the CC
                                                       register is popped.

                                                                                                   47/197
ST72325xx

POWER SAVING MODES (Cont'd)                           Figure 32. HALT Mode Flow-chart

8.4.2 HALT MODE                                       HALT INSTRUCTION                 WATCHDOG
                                                         (MCCSR.OIE=0)
The HALT mode is the lowest power consumption
mode of the MCU. It is entered by executing the                                ENABLE
`HALT' instruction when the OIE bit of the Main
Clock Controller Status register (MCCSR) is              WDGHALT 1)    0                   DISABLE
cleared (see section 10.2 on page 61 for more de-
tails on the MCCSR register).                            1

The MCU can exit HALT mode on reception of ei-        WATCHDOG            OSCILLATOR OFF
ther a specific interrupt (see Table 9, "Interrupt        RESET
Mapping," on page 41) or a RESET. When exiting                            PERIPHERALS 2) OFF
HALT mode by means of a RESET or an interrupt,
the oscillator is immediately turned on and the 256                       CPU              OFF
or 4096 CPU cycle delay is used to stabilize the
oscillator. After the start up delay, the CPU                             I[1:0] BITS      10
resumes operation by servicing the interrupt or by
fetching the reset vector which woke it up (see Fig-                      N
ure 32).                                                                            RESET

When entering HALT mode, the I[1:0] bits in the       N                                Y
CC register are forced to `10b'to enable interrupts.
Therefore, if an interrupt is pending, the MCU           INTERRUPT 3)
wakes up immediately.
                                                            Y             OSCILLATOR ON
In HALT mode, the main oscillator is turned off
causing all internal processing to be stopped, in-                        PERIPHERALS OFF
cluding the operation of the on-chip peripherals.
All peripherals are not clocked except the ones                           CPU              ON
which get their clock supply from another clock
generator (such as an external or auxiliary oscilla-                      I[1:0] BITS      XX 4)
tor).
                                                                       256 OR 4096 CPU CLOCK
The compatibility of Watchdog operation with                                   CYCLE DELAY
HALT mode is configured by the "WDGHALT" op-
tion bit of the option byte. The HALT instruction                         OSCILLATOR        ON
when executed while the Watchdog system is en-                            PERIPHERALS
abled, can generate a Watchdog RESET (see sec-                            CPU               ON
tion 14.1 on page 181 for more details).                                  I[1:0] BITS       ON
                                                                                           XX 4)
Figure 31. HALT Timing Overview

RUN     HALT   256 OR 4096 CPU  RUN                                                       FETCH RESET VECTOR
                 CYCLE DELAY
                                                                                         OR SERVICE INTERRUPT
       HALT       RESET
INSTRUCTION          OR                               Notes:
[MCCSR.OIE=0]
               INTERRUPT                              1. WDGHALT is an option bit. See option byte sec-
                                                      tion for more details.
                           FETCH                      2. Peripheral clocked with an external clock source
                          VECTOR                      can still be active.
                                                      3. Only some specific interrupts can exit the MCU
                                                      from HALT mode (such as external interrupt). Re-
                                                      fer to Table 9, "Interrupt Mapping," on page 41 for
                                                      more details.
                                                      4. Before servicing an interrupt, the CC register is
                                                      pushed on the stack. The I[1:0] bits of the CC reg-
                                                      ister are set to the current software priority level of
                                                      the interrupt routine and recovered when the CC
                                                      register is popped.

48/197
                                                       ST72325xx

POWER SAVING MODES (Cont'd)                              ry. For example, avoid defining a constant in
                                                         ROM with the value 0x8E.
8.4.2.1 Halt Mode Recommendations
                                                       As the HALT instruction clears the interrupt mask
Make sure that an external event is available to       in the CC register to allow interrupts, the user
  wake up the microcontroller from Halt mode.            may choose to clear all pending interrupt bits be-
                                                         fore executing the HALT instruction. This avoids
When using an external interrupt to wake up the        entering other peripheral interrupt routines after
  microcontroller, reinitialize the corresponding I/O    executing the external interrupt routine corre-
  as "Input Pull-up with Interrupt" before executing     sponding to the wake-up event (reset or external
  the HALT instruction. The main reason for this is      interrupt).
  that the I/O may be wrongly configured due to ex-
  ternal interference or by an unforeseen logical      Related Documentation
  condition.
                                                       AN 980: ST7 Keypad Decoding Techniques, Im-
For the same reason, reinitialize the level sensi-   plementing Wake-Up on Keystroke
  tiveness of each external interrupt as a precau-
  tionary measure.                                     AN1014: How to Minimize the ST7 Power Con-
                                                       sumption
The opcode for the HALT instruction is 0x8E. To
  avoid an unexpected HALT instruction due to a        AN1605: Using an active RC to wakeup the
  program counter failure, it is advised to clear all  ST7LITE0 from power saving mode
  occurrences of the data value 0x8E from memo-

                                                       49/197
ST72325xx

9 I/O PORTS

9.1 INTRODUCTION                                       Each pin can independently generate an interrupt
                                                       request. The interrupt sensitivity is independently
The I/O ports offer different functional modes:        programmable using the sensitivity bits in the
transfer of data through digital inputs and outputs  EICR register.

and for specific pins:                                 Each external interrupt vector is linked to a dedi-
external interrupt generation                        cated group of I/O port pins (see pinout description
alternate signal input/output for the on-chip pe-    and interrupt section). If several input pins are se-
                                                       lected simultaneously as interrupt sources, these
  ripherals.                                           are first detected according to the sensitivity bits in
                                                       the EICR register and then logically ORed.
An I/O port contains up to 8 pins. Each pin can be
programmed independently as digital input (with or     The external interrupts are hardware interrupts,
without interrupt generation) or digital output.       which means that the request latch (not accessible
                                                       directly by the application) is automatically cleared
9.2 FUNCTIONAL DESCRIPTION                             when the corresponding interrupt vector is
                                                       fetched. To clear an unwanted pending interrupt
Each port has two main registers:                      by software, the sensitivity bits in the EICR register
                                                       must be modified.
Data Register (DR)
                                                       9.2.2 Output Modes
Data Direction Register (DDR)
                                                       The output configuration is selected by setting the
and one optional register:                             corresponding DDR register bit. In this case, writ-
                                                       ing the DR register applies this digital value to the
Option Register (OR)                                 I/O pin through the latch. Then reading the DR reg-
                                                       ister returns the previously stored value.
Each I/O pin may be programmed using the corre-
sponding register bits in the DDR and OR regis-        Two different output modes can be selected by
ters: Bit X corresponding to pin X of the port. The    software through the OR register: Output push-pull
same correspondence is used for the DR register.       and open-drain.

The following description takes into account the       DR register value and output pin status:
OR register, (for specific ports which do not pro-
vide this register refer to the I/O Port Implementa-   DR  Push-pull  Open-drain
tion section). The generic I/O block diagram is                            Vss
shown in Figure 1                                      0   VSS
                                                                        Floating
9.2.1 Input Modes                                      1   VDD

The input configuration is selected by clearing the    9.2.3 Alternate Functions
corresponding DDR register bit.
                                                       When an on-chip peripheral is configured to use a
In this case, reading the DR register returns the      pin, the alternate function is automatically select-
digital value applied to the external I/O pin.         ed. This alternate function takes priority over the
                                                       standard I/O programming.
Different input modes can be selected by software
through the OR register.                               When the signal is coming from an on-chip periph-
                                                       eral, the I/O pin is automatically configured in out-
Notes:                                                 put mode (push-pull or open drain according to the
1. Writing the DR register modifies the latch value    peripheral).
but does not affect the pin status.
2. When switching from input to output mode, the       When the signal is going to an on-chip peripheral,
DR register has to be written first to drive the cor-  the I/O pin must be configured in input mode. In
rect level on the pin as soon as the port is config-   this case, the pin state is also digitally readable by
ured as an output.                                     addressing the DR register.
3. Do not use read/modify/write instructions (BSET
or BRES) to modify the DR register as this might       Note: Input pull-up configuration can cause unex-
corrupt the DR content for I/Os configured as input.   pected value at the input of the alternate peripheral
                                                       input. When an on-chip peripheral use a pin as in-
External interrupt function                            put and output, this pin has to be configured in in-
                                                       put floating mode.
When an I/O is configured as Input with Interrupt,
an event on this I/O can generate an external inter-
rupt request to the CPU.

50/197
                                                                                     ST72325xx

I/O PORTS (Cont'd)
Figure 33. I/O Port General Block Diagram

REGISTER           ALTERNATE               1                      VDD        P-BUFFER
ACCESS             OUTPUT

                                           0                                 (see table below)

                   ALTERNATE                                                   PULL-UP
                   ENABLE                                                      (see table below)

          DR                                                                 VDD

          DDR

                                                       PULL-UP                               PAD
                                                       CONDITION
               OR
DATA BUS  OR SEL   If implemented

          DDR SEL                                      N-BUFFER                      DIODES
                                                                                     (see table below)
          DR SEL   1                                                 CMOS
                                                                    SCHMITT                 ANALOG
                                                                    TRIGGER                    INPUT

                   0                                                                    ALTERNATE
                                                                                                INPUT

EXTERNAL
INTERRUPT
SOURCE (eix)

Table 11. I/O Port Mode Options

          Configuration Mode                  Pull-Up  P-Buffer                      Diodes
                                                 Off
                                                 On       Off                to VDD          to VSS
                                                 Off      On
Input     Floating with/without Interrupt        NI       Off           On
Output    Pull-up with/without Interrupt                   NI                                  On
          Push-pull
          Open Drain (logic level)                                NI (see note)
          True Open Drain

Legend: NI - not implemented                  Note: The diode to VDD is not implemented in the
             Off - implemented not activated  true open drain pads. A local protection between
             On - implemented and activated   the pad and VSS is implemented to protect the de-
                                              vice against positive stress.

                                                                                                   51/197
ST72325xx

I/O PORTS (Cont'd)
Table 12. I/O Port Configurations

                      NOT IMPLEMENTED IN        VDD    Hardware Configuration
                      TRUE OPEN DRAIN             RPU
                      I/O PORTS                                                                   DR REGISTER ACCESS

                                           PAD         PULL-UP    DR         W
                                                       CONDITION
                                                                  REGISTER
                                                                                 DATA BUS

                                                                             R

INPUT 1)                                                                                         ALTERNATE INPUT

                                                                      EXTERNAL INTERRUPT
                                                                      SOURCE (eix)

                                                       INTERRUPT
                                                       CONDITION

                      NOT IMPLEMENTED IN        VDD                                         ANALOG INPUT
                      TRUE OPEN DRAIN             RPU                        DR REGISTER ACCESS
                      I/O PORTS
OPEN-DRAIN OUTPUT 2)                                                         DR  R/W                                  DATA BUS
                                           PAD
                                                                      REGISTER

                                                                  ALTERNATE      ALTERNATE
                                                                    ENABLE         OUTPUT

                      NOT IMPLEMENTED IN        VDD                          DR REGISTER ACCESS
                      TRUE OPEN DRAIN             RPU
PUSH-PULL OUTPUT 2)   I/O PORTS
                                                                             DR  R/W                                  DATA BUS
                                           PAD
                                                                      REGISTER

                                                                  ALTERNATE      ALTERNATE
                                                                    ENABLE         OUTPUT

Notes:

1. When the I/O port is in input configuration and the associated alternate function is enabled as an output,
   reading the DR register will read the alternate function output status.

2. When the I/O port is in output configuration and the associated alternate function is enabled as an input,
   the alternate function reads the pin status given by the DR register content.

52/197
                                                                                                    ST72325xx

I/O PORTS (Cont'd)                                     Figure 34. Interrupt I/O Port State Transitions

CAUTION: The alternate function must not be ac-               01              00            10               11
tivated as long as the pin is configured as input
with interrupt, in order to avoid generating spurious       INPUT           INPUT       OUTPUT            OUTPUT
interrupts.                                            floating/pull-up     floating    open-drain        push-pull
                                                                         (reset state)
Analog alternate function                                  interrupt

When the pin is used as an ADC input, the I/O                                           XX = DDR, OR
must be configured as floating input. The analog
multiplexer (controlled by the ADC registers)          9.4 LOW POWER MODES
switches the analog voltage present on the select-
ed pin to the common analog rail which is connect-       Mode                         Description
ed to the ADC input.                                   WAIT
                                                       HALT       No effect on I/O ports. External interrupts
It is recommended not to change the voltage level                 cause the device to exit from WAIT mode.
or loading on any port pin while conversion is in                 No effect on I/O ports. External interrupts
progress. Furthermore it is recommended not to                    cause the device to exit from HALT mode.
have clocking pins located close to a selected an-
alog pin.                                              9.5 INTERRUPTS

WARNING: The analog input voltage level must           The external interrupt event generates an interrupt
be within the limits stated in the absolute maxi-      if the corresponding configuration is selected with
mum ratings.                                           DDR and OR registers and the interrupt mask in
                                                       the CC register is not active (RIM instruction).
9.3 I/O PORT IMPLEMENTATION
                                                       Interrupt Event        Event     Enable      Exit  Exit
The hardware implementation on each I/O port de-                               Flag     Control     from  from
pends on the settings in the DDR and OR registers                                                   Wait  Halt
and specific feature of the I/O port such as ADC In-                                       Bit
put or true open drain.
                                                       External interrupt on            DDRx
Switching these I/O ports from one state to anoth-                                       ORx
er should be done in a sequence that prevents un-      selected external          -                 Yes
wanted side effects. Recommended safe transi-
tions are illustrated in Figure 2 on page 4. Other     event
transitions are potentially risky and should be
avoided, since they are likely to present unwanted
side-effects such as spurious interrupt generation.

                                                                                                          53/197
ST72325xx

I/O PORTS (Cont'd)

9.5.1 I/O Port Implementation                                         MODE                        DDR OR
                                                  floating input
The I/O port register configurations are summa-   floating interrupt input                        0          0
rised as follows.                                 open drain output
                                                  push-pull output                                0          1

Standard Ports                                   True Open Drain Ports                            1          0
                                                 PA7:6
PA5:4, PC7:0, PD7:0, PE7:3,                                                                       1          1
PE1:0, PF7:3,                                                               MODE
                                                  floating input
                   MODE            DDR OR         open drain (high sink ports)
floating input
pull-up input                      0         0   Pull-Up Input Port PE2
open drain output
push-pull output                   0         1                        MODE                           DDR
                                                  pull-up input                                        0
                                   1         0    open drain output*                                   1
                                                  push-pull output*
                                   1         1

Interrupt Ports                                                                                   DDR OR
PA2:0, PB6:5, PB4, PB2:0, PF1:0 (with pull-up)

                   MODE            DDR OR                                                         0          x
floating input
pull-up interrupt input            0         0                                                    1          0
open drain output
push-pull output                   0         1                                                    1          1

                                   1         0

                                   1         1

Table 13. Port Configuration

        Port             Pin name               Input                                     Output
                                                             OR = 1
                                   OR = 0                                    OR = 0                  OR = 1
                                                floating
                PA7:6              floating                    pull-up            true open-drain
                PA5:4              floating
        Port A  PA3                floating              floating interrupt  open drain           push-pull
                PA2:0              floating              pull-up interrupt
        Port B  PB7, PB3                                 floating interrupt  open drain           push-pull
        Port C  PB6:5, PB4,
        Port D  PB2:0                                                        open drain           push-pull
        Port E  PC7:0
                PD7:0                                                        open drain           push-pull
        Port F  PE7:3, PE1:0
                PE2                floating      pull-up interrupt           open drain           push-pull
                PF7:3
                PF2                floating      pull-up                     open drain           push-pull
                PF1:0                                                        open drain           push-pull
                                   floating      pull-up                     open drain           push-pull
                                                                             open drain*          push-pull*
                                   floating      pull-up                     open drain           push-pull
                                                                             open drain           push-pull
                                      pull-up input only                     open drain           push-pull

                                   floating      pull-up

                                   floating      floating interrupt

                                   floating      pull-up interrupt

*Pull-up always activated on PE2.

54/197
                                                              ST72325xx

I/O PORTS (Cont'd)

Table 14. I/O Port Register Map and Reset Values

Address  Register          7    6  5              4  3  2  1  0
(Hex.)    Label

       Reset Value         0    0  0              0  0  0  0  0
of all I/O port registers

0000h PADR

0001h PADDR                MSB                                LSB

0002h PAOR

0003h PBDR

0004h PBDDR                MSB                                LSB

0005h PBOR

0006h PCDR

0007h PCDDR                MSB                                LSB

0008h PCOR

0009h PDDR

000Ah PDDDR                MSB                                LSB

000Bh PDOR

000Ch PEDR

000Dh PEDDR                MSB                                LSB

000Eh PEOR

000Fh PFDR

0010h PFDDR                MSB                                LSB

0011h PFOR

Related Documentation                             AN1045: S/W implementation of I2C bus master
                                                  AN1048: Software LCD driver
AN 970: SPI Communication between ST7 and
EEPROM

                                                              55/197
ST72325xx

10 ON-CHIP PERIPHERALS

10.1 WATCHDOG TIMER (WDG)                            If the watchdog is activated (the WDGA bit is set)
                                                     and when the 7-bit timer (bits T[6:0]) rolls over
10.1.1 Introduction                                  from 40h to 3Fh (T6 becomes cleared), it initiates
The Watchdog timer is used to detect the occur-      a reset cycle pulling the reset pin low for typically
rence of a software fault, usually generated by ex-  30s.
ternal interference or by unforeseen logical condi-
tions, which causes the application program to       The application program must write in the
abandon its normal sequence. The Watchdog cir-       WDGCR register at regular intervals during normal
cuit generates an MCU reset on expiry of a pro-      operation to prevent an MCU reset. This down-
grammed time period, unless the program refresh-     counter is free-running: it counts down even if the
es the counter's contents before the T6 bit be-      watchdog is disabled. The value to be stored in the
comes cleared.                                       WDGCR register must be between FFh and C0h:
10.1.2 Main Features
Programmable free-running downcounter                The WDGA bit is set (watchdog enabled)
Programmable reset
Reset (if watchdog activated) when the T6 bit       The T6 bit is set to prevent generating an imme-
                                                       diate reset
   reaches zero
Optional reset on HALT instruction                   The T[5:0] bits contain the number of increments
                                                       which represents the time delay before the
   (configurable by option byte)                       watchdog produces a reset (see Figure 2. Ap-
Hardware Watchdog selectable by option byte           proximate Timeout Duration). The timing varies
                                                       between a minimum and a maximum value due
10.1.3 Functional Description                          to the unknown status of the prescaler when writ-
The counter value stored in the Watchdog Control       ing to the WDGCR register (see Figure 3).
register (WDGCR bits T[6:0]), is decremented
every 16384 fOSC2 cycles (approx.), and the          Following a reset, the watchdog is disabled. Once
length of the timeout period can be programmed       activated it cannot be disabled, except by a reset.
by the user in 64 increments.
                                                     The T6 bit can be used to generate a software re-
Figure 35. Watchdog Block Diagram                    set (the WDGA bit is set and the T6 bit is cleared).

                                                     If the watchdog is activated, the HALT instruction
                                                     will generate a Reset.

                                                     RESET

                fOSC2                                WATCHDOG CONTROL REGISTER (WDGCR)
MCC/RTC
                                            WDGA T6         T5 T4 T3 T2 T1 T0
                   DIV 64                                       6-BIT DOWNCOUNTER (CNT)

              12-BIT MCC                                    WDG PRESCALER
            RTC COUNTER                                             DIV 4

            MSB      LSB      TB[1:0] bits
                              (MCCSR
        11       65        0  Register)

56/197
                                                                         ST72325xx

WATCHDOG TIMER (Cont'd)                                more precision is needed, use the formulae in Fig-
                                                       ure 3.
10.1.4 How to Program the Watchdog Timeout
                                                       Caution: When writing to the WDGCR register, al-
Figure 2 shows the linear relationship between the     ways write 1 in the T6 bit to avoid generating an
6-bit value to be loaded in the Watchdog Counter       immediate reset.
(CNT) and the resulting timeout duration in milli-
seconds. This can be used for a quick calculation
without taking the timing variations into account. If

Figure 36. Approximate Timeout Duration

                  3F

                  38

                  30

CNT Value (hex.)  28

                  20
                  18

                  10

                  08

                  00

                      1.5  18  34  50                  65  82        98  114 128

                               Watchdog timeout (ms) @ 8 MHz. fOSC2

                                                                         57/197
ST72325xx

WATCHDOG TIMER (Cont'd)

Figure 37. Exact Timeout Duration (tmin and tmax)
WHERE:

tmin0 = (LSB + 128) x 64 x tOSC2
tmax0 = 16384 x tOSC2
tOSC2 = 125ns if fOSC2=8 MHz

CNT = Value of T[5:0] bits in the WDGCR register (6 bits)
MSB and LSB are values from the table below depending on the timebase selected by the TB[1:0] bits

in the MCCSR register

    TB1 Bit                  TB0 Bit  Selected MCCSR             MSB         LSB
                                           Timebase
(MCCSR Reg.) (MCCSR Reg.)                                          4          59
                                               2ms                 8          53
        0                    0                 4ms                20          35
                                              10ms                49          54
        0                    1                25ms

        1                    0

        1                    1

To calculate the minimum Watchdog Timeout (tmin):

IF CNT <   M------S----B---  THEN tmin = tmin0 + 16384 CNT tosc2
             4

                             ELSE tmin = tmin0 +     16384      C  N  T    4----C-----N-----T--    +  ( 192  +  LSB)    64    4----C-----N-----T--   tosc2
                                                                             MSB                                                  MSB

To calculate the maximum Watchdog Timeout (tmax):

IF  CNT    M------S----B---  THEN tmax = tmax0 + 16384 CNT tosc2
             4

                             ELSEtmax = tmax0 +      16384 CNT            4----C-----N-----T--    +  ( 192  +  LSB)    64    4----C-----N-----T--   tosc2
                                                                             MSB                                                  MSB

Note: In the above formulae, division results must be rounded down to the next integer value.
Example:
With 2ms timeout selected in MCCSR register

Value of T[5:0] Bits in              Min. Watchdog  Max. Watchdog
WDGCR Register (Hex.)                  Timeout (ms)   Timeout (ms)
                                                             tmax
               00                             tmin          2.048
               3F                            1.496
                                                           128.552
                                              128

58/197
                                                                                 ST72325xx

WATCHDOG TIMER (Cont'd)
10.1.5 Low Power Modes

Mode  Description
SLOW
WAIT  No effect on Watchdog.

HALT  No effect on Watchdog.

      OIE bit in   WDGHALT bit
       MCCSR          in Option
       register          Byte

                                 No Watchdog reset is generated. The MCU enters Halt mode. The Watch-

                                 dog counter is decremented once and then stops counting and is no longer

                                 able to generate a watchdog reset until the MCU receives an external inter-

      0                  0       rupt or a reset.

                                 If an external interrupt is received, the Watchdog restarts counting after 256

                                 or 4096 CPU clocks. If a reset is generated, the Watchdog is disabled (reset

                                 state) unless Hardware Watchdog is selected by option byte. For applica-

                                 tion recommendations see Section 0.1.7 below.

      0                  1       A reset is generated.

                                 No reset is generated. The MCU enters Active Halt mode. The Watchdog

                                 counter is not decremented. It stop counting. When the MCU receives an

      1                  x       oscillator interrupt or external interrupt, the Watchdog restarts counting im-

                                 mediately. When the MCU receives a reset the Watchdog restarts counting

                                 after 256 or 4096 CPU clocks.

10.1.6 Hardware Watchdog Option                    10.1.9 Register Description
                                                   CONTROL REGISTER (WDGCR)
If Hardware Watchdog is selected by option byte,   Read / Write
the watchdog is always active and the WDGA bit in  Reset Value: 0111 1111 (7Fh)
the WDGCR is not used. Refer to the Option Byte
description.                                            7                        0

10.1.7 Using Halt Mode with the WDG                WDGA T6 T5 T4 T3 T2 T1 T0
(WDGHALT option)
                                                   Bit 7 = WDGA Activation bit.
The following recommendation applies if Halt       This bit is set by software and only cleared by
mode is used when the watchdog is enabled.         hardware after a reset. When WDGA = 1, the
                                                   watchdog can generate a reset.
Before executing the HALT instruction, refresh   0: Watchdog disabled
  the WDG counter, to avoid an unexpected WDG      1: Watchdog enabled
  reset immediately after waking up the microcon-
  troller.                                         Note: This bit is not used if the hardware watch-
                                                   dog option is enabled by option byte.
10.1.8 Interrupts
                                                   Bit 6:0 = T[6:0] 7-bit counter (MSB to LSB).
None.                                              These bits contain the value of the watchdog
                                                   counter. It is decremented every 16384 fOSC2 cy-
                                                   cles (approx.). A reset is produced when it rolls
                                                   over from 40h to 3Fh (T6 becomes cleared).

                                                                                 59/197
ST72325xx

Table 15. Watchdog Timer Register Map and Reset Values

Address    Register   7     6   5   4                   3   2   1   0
(Hex.)      Label

002Ah    WDGCR        WDGA  T6  T5  T4                  T3  T2  T1  T0
                            1                           1   1   1   1
         Reset Value  0         1   1

60/197
                                                                         ST72325xx

10.2 MAIN CLOCK CONTROLLER WITH REAL TIME CLOCK AND BEEPER (MCC/RTC)

The Main Clock Controller consists of three differ-   external devices. It is controlled by the MCO bit in
ent functions:                                        the MCCSR register.
                                                      CAUTION: When selected, the clock out pin sus-
a programmable CPU clock prescaler                   pends the clock during ACTIVE-HALT mode.

a clock-out signal to supply external devices        10.2.3 Real Time Clock Timer (RTC)

a real time clock timer with interrupt capability    The counter of the real time clock timer allows an
                                                      interrupt to be generated based on an accurate
Each function can be used independently and si-       real time clock. Four different time bases depend-
multaneously.                                         ing directly on fOSC2 are available. The whole
                                                      functionality is controlled by four bits of the MCC-
10.2.1 Programmable CPU Clock Prescaler               SR register: TB[1:0], OIE and OIF.

The programmable CPU clock prescaler supplies         When the RTC interrupt is enabled (OIE bit set),
the clock for the ST7 CPU and its internal periph-    the ST7 enters ACTIVE-HALT mode when the
erals. It manages SLOW power saving mode (See         HALT instruction is executed. See Section 8.4 AC-
Section 8.2 SLOW MODE for more details).              TIVE-HALT AND HALT MODES for more details.

The prescaler selects the fCPU main clock frequen-    10.2.4 Beeper
cy and is controlled by three bits in the MCCSR
register: CP[1:0] and SMS.                            The beep function is controlled by the MCCBCR
                                                      register. It can output three selectable frequencies
10.2.2 Clock-out Capability                           on the BEEP pin (I/O port alternate function).

The clock-out capability is an alternate function of
an I/O port pin that outputs a fCPU clock to drive

Figure 38. Main Clock Controller (MCC/RTC) Block Diagram

       MCCBCR                           BC1 BC0
                                   BEEP SIGNAL
                                    SELECTION                            BEEP
                                                                         MCO

               DIV 64              12-BIT MCC RTC               TO
                                       COUNTER            WATCHDOG

                                                              TIMER

        MCO CP1 CP0 SMS TB1 TB0 OIE OIF               MCC/RTC INTERRUPT
       MCCSR                                               fCPU

fOSC2          DIV 2, 4, 8, 16  1

                                0                                         CPU CLOCK
                                                                          TO CPU AND
                                                                         PERIPHERALS

                                                                               61/197
ST72325xx

MAIN CLOCK CONTROLLER WITH REAL TIME CLOCK (Cont'd)

10.2.5 Low Power Modes

  Mode                       Description              Bit 6:5 = CP[1:0] CPU clock prescaler
WAIT                                                  These bits select the CPU clock prescaler which is
         No effect on MCC/RTC peripheral.             applied in the different slow modes. Their action is
ACTIVE-  MCC/RTC interrupt cause the device to exit   conditioned by the setting of the SMS bit. These
HALT     from WAIT mode.                              two bits are set and cleared by software

HALT     No effect on MCC/RTC counter (OIE bit is     fCPU in SLOW mode   CP1                CP0
         set), the registers are frozen.
         MCC/RTC interrupt cause the device to exit           fOSC2 / 2         0            0
         from ACTIVE-HALT mode.                               fOSC2 / 4
                                                              fOSC2 / 8         0            1
         MCC/RTC counter and registers are frozen.            fOSC2 / 16
         MCC/RTC operation resumes when the                                     1            0
         MCU is woken up by an interrupt with "exit
         from HALT" capability.                                                 1            1

10.2.6 Interrupts                                     Bit 4 = SMS Slow mode select
                                                      This bit is set and cleared by software.
The MCC/RTC interrupt event generates an inter-       0: Normal mode. fCPU = fOSC2
rupt if the OIE bit of the MCCSR register is set and  1: Slow mode. fCPU is given by CP1, CP0
the interrupt mask in the CC register is not active   See Section 8.2 SLOW MODE and Section 10.2
(RIM instruction).                                    MAIN CLOCK CONTROLLER WITH REAL TIME
                                                      CLOCK AND BEEPER (MCC/RTC) for more de-
  Interrupt Event   Event  Enable   Exit  Exit        tails.
                     Flag  Control  from  from
Time base overflow                  Wait  Halt
event                         Bit
                                    Yes   No 1)
                    OIF OIE                           Bit 3:2 = TB[1:0] Time base control

Note:                                                 These bits select the programmable divider time
                                                      base. They are set and cleared by software.
The MCC/RTC interrupt wakes up the MCU from
ACTIVE-HALT mode, not from HALT mode.                 Counter  Time Base

                                                      Prescaler fOSC2 =4MHz fOSC2=8MHz  TB1  TB0

                                                      16000    4ms        2ms           0         0

10.2.7 Register Description                           32000    8ms        4ms           0         1
MCC CONTROL/STATUS REGISTER (MCCSR)
Read / Write                                          80000    20ms       10ms          1         0
Reset Value: 0000 0000 (00h)
                                                      200000   50ms       25ms          1         1

7                                         0           A modification of the time base is taken into ac-
                                                      count at the end of the current period (previously
                                                      set) to avoid an unwanted time shift. This allows to
                                                      use this time base as a real time clock.

MCO CP1 CP0 SMS TB1 TB0 OIE OIF                      Bit 1 = OIE Oscillator interrupt enable
                                                      This bit set and cleared by software.
Bit 7 = MCO Main clock out selection                  0: Oscillator interrupt disabled
This bit enables the MCO alternate function on the    1: Oscillator interrupt enabled
PF0 I/O port. It is set and cleared by software.      This interrupt can be used to exit from ACTIVE-
0: MCO alternate function disabled (I/O pin free for  HALT mode.
                                                      When this bit is set, calling the ST7 software HALT
   general-purpose I/O)                               instruction enters the ACTIVE-HALT power saving
1: MCO alternate function enabled (fCPU on I/O        mode.

   port)

Note: To reduce power consumption, the MCO
function is not active in ACTIVE-HALT mode.

62/197
                                                                                      ST72325xx

MAIN CLOCK CONTROLLER WITH REAL TIME CLOCK (Cont'd)

Bit 0 = OIF Oscillator interrupt flag                MCC BEEP CONTROL REGISTER (MCCBCR)
This bit is set by hardware and cleared by software  Read / Write
reading the MCCSR register. It indicates when set    Reset Value: 0000 0000 (00h)
that the main oscillator has reached the selected
elapsed time (TB1:0).                                7                                             0
0: Timeout not reached
1: Timeout reached                                   0     0     0    0       0  0 BC1 BC0

CAUTION: The BRES and BSET instructions              Bit 7:2 = Reserved, must be kept cleared.
must not be used on the MCCSR register to avoid
unintentionally clearing the OIF bit.

                                                     Bit 1:0 = BC[1:0] Beep control
                                                     These 2 bits select the PF1 pin beep capability.

                                                     BC1 BC0          Beep mode with fOSC2=8MHz

                                                        0     0                  Off

                                                        0     1        ~2-KHz          Output
                                                                      ~1-KHz        Beep signal
                                                        1     0       ~500-Hz    ~50% duty cycle

                                                        1     1

                                                     The beep output signal is available in ACTIVE-
                                                     HALT mode but has to be disabled to reduce the
                                                     consumption.

Table 16. Main Clock Controller Register Map and Reset Values

Address  Register     7     6      5                    4        3       2       1              0
(Hex.)    Label

002Bh    SICSR        AVDS  AVDIE  AVDF LVDRF                         CSSIE      CSSD WDGRF
         Reset Value     0     0                                         0
                                   0                    x        0               0              x

002Ch    MCCSR        MCO   CP1    CP0               SMS         TB1     TB0     OIE            OIF
         Reset Value    0     0      0                 0          0       0       0              0

002Dh    MCCBCR                                                                  BC1            BC0
         Reset Value
                      0     0      0                    0        0       0       0              0

                                                                                                63/197
ST72325xx

10.3 PWM AUTO-RELOAD TIMER (ART)

10.3.1 Introduction                                  Up to two input capture functions

The Pulse Width Modulated Auto-Reload Timer          External event detector
on-chip peripheral consists of an 8-bit auto reload
counter with compare/capture capabilities and of a    Up to two external interrupt sources
7-bit prescaler clock source.
                                                     The three first modes can be used together with a
These resources allow five possible operating        single counter frequency.
modes:
                                                     The timer can be used to wake up the MCU from
Generation of up to 4 independent PWM signals      WAIT and HALT modes.

Output compare and Time base interrupt

Figure 39. PWM Auto-Reload Timer Block Diagram

           PWMCR  OEx                   OPx                    OCRx                  DCRx
                                                            REGISTER              REGISTER
                                    POLARITY
                                    CONTROL                                 LOAD

PWMx                   PORT                                 COMPARE
                  ALTERNATE

                   FUNCTION

                                 ARR                        8-BIT COUNTER   LOAD
                             REGISTER                       (CAR REGISTER)

ARTICx                  INPUT CAPTURE                LOAD       ICRx
                            CONTROL                         REGISTER

                  ICSx       ICIEx  ICFx             ICCSR

           fEXT                                             ICx INTERRUPT
           fCPU
ARTCLK                              fCOUNTER

                  MUX

                  fINPUT     PROGRAMMABLE
                                PRESCALER

                       EXCL CC2 CC1 CC0 TCE FCRL OIE OVF ARTCSR
                                                                                                                           OVF INTERRUPT

64/197
                                                                          ST72325xx

ON-CHIP PERIPHERALS (Cont'd)                          Counter and Prescaler Initialization

10.3.2 Functional Description                         After RESET, the counter and the prescaler are
                                                      cleared and fINPUT = fCPU.
Counter                                               The counter can be initialized by:

The free running 8-bit counter is fed by the output    Writing to the ARTARR register and then setting
of the prescaler, and is incremented on every ris-      the FCRL (Force Counter Re-Load) and the TCE
ing edge of the clock signal.                           (Timer Counter Enable) bits in the ARTCSR reg-
                                                        ister.
It is possible to read or write the contents of the
counter on the fly by reading or writing the Counter   Writing to the ARTCAR counter access register,
Access register (ARTCAR).
                                                      In both cases the 7-bit prescaler is also cleared,
When a counter overflow occurs, the counter is        whereupon counting will start from a known value.
automatically reloaded with the contents of the
ARTARR register (the prescaler is not affected).      Direct access to the prescaler is not possible.

Counter clock and prescaler                           Output compare control

The counter clock frequency is given by:              The timer compare function is based on four differ-
               fCOUNTER = fINPUT / 2CC[2:0]           ent comparisons with the counter (one for each
                                                      PWMx output). Each comparison is made be-
The timer counter's input clock (fINPUT) feeds the    tween the counter value and an output compare
7-bit programmable prescaler, which selects one       register (OCRx) value. This OCRx register can not
of the 8 available taps of the prescaler, as defined  be accessed directly, it is loaded from the duty cy-
by CC[2:0] bits in the Control/Status Register        cle register (PWMDCRx) at each overflow of the
(ARTCSR). Thus the division factor of the prescal-    counter.
er can be set to 2n (where n = 0, 1,..7).
                                                      This double buffering method avoids glitch gener-
This fINPUT frequency source is selected through      ation when changing the duty cycle on the fly.
the EXCL bit of the ARTCSR register and can be
either the fCPU or an external input frequency fEXT.
The clock input to the counter is enabled by the
TCE (Timer Counter Enable) bit in the ARTCSR
register. When TCE is reset, the counter is
stopped and the prescaler and counter contents
are frozen. When TCE is set, the counter runs at
the rate of the selected clock source.

Figure 40. Output compare control

fCOUNTER

                  ARTARR=FDh

COUNTER FDh  FEh       FFh       FDh                  FEh  FFh  FDh  FEh  FFh

OCRx                        FDh                                      FEh

PWMDCRx           FDh                                           FEh

PWMx

                                                                               65/197
ST72325xx

ON-CHIP PERIPHERALS (Cont'd)                            When the counter reaches the value contained in
                                                        one of the output compare register (OCRx) the
Independent PWM signal generation                       corresponding PWMx pin level is restored.

This mode allows up to four Pulse Width Modulat-        It should be noted that the reload values will also
ed signals to be generated on the PWMx output           affect the value and the resolution of the duty cycle
pins with minimum core processing overhead.             of the PWM output signal. To obtain a signal on a
This function is stopped during HALT mode.              PWMx pin, the contents of the OCRx register must
                                                        be greater than the contents of the ARTARR reg-
Each PWMx output signal can be selected inde-           ister.
pendently using the corresponding OEx bit in the
PWM Control register (PWMCR). When this bit is          The maximum available resolution for the PWMx
set, the corresponding I/O pin is configured as out-    duty cycle is:
put push-pull alternate function.
                                                                   Resolution = 1 / (256 - ARTARR)
The PWM signals all have the same frequency
which is controlled by the counter period and the       Note: To get the maximum resolution (1/256), the
ARTARR register value.                                  ARTARR register must be 0. With this maximum
                                                        resolution, 0% and 100% can be obtained by
         fPWM = fCOUNTER / (256 - ARTARR)               changing the polarity.
When a counter overflow occurs, the PWMx pin
level is changed depending on the corresponding
OPx (output polarity) bit in the PWMCR register.

Figure 41. PWM Auto-reload Timer Function

COUNTER                      255

             DUTY CYCLE
              REGISTER
             (PWMDCRx)

             AUTO-RELOAD
                REGISTER
                (ARTARR)

                  000                                                                                                                       t

PWMx OUTPUT  WITH OEx=1
             AND OPx=0

             WITH OEx=1
             AND OPx=1

Figure 42. PWM Signal from 0% to 100% Duty Cycle

                  fCOUNTER

                                            ARTARR=FDh

                  COUNTER         FDh  FEh  FFh         FDh  FEh  FFh  FDh  FEh

                  OCRx=FCh

PWMx OUTPUT       OCRx=FDh
   WITH OEx=1
       AND OPx=0  OCRx=FEh

                  OCRx=FFh

                                                                                                                                         t

66/197
                                                                                  ST72325xx

ON-CHIP PERIPHERALS (Cont'd)

Output compare and Time base interrupt                     External clock and event detector mode

On overflow, the OVF flag of the ARTCSR register           Using the fEXT external prescaler input clock, the
is set and an overflow interrupt request is generat-       auto-reload timer can be used as an external clock
ed if the overflow interrupt enable bit, OIE, in the       event detector. In this mode, the ARTARR register
ARTCSR register, is set. The OVF flag must be re-          is used to select the nEVENT number of events to
set by the user software. This interrupt can be            be counted before setting the OVF flag.
used as a time base in the application.
                                                                           nEVENT = 256 - ARTARR

                                                           Caution: The external clock function is not availa-
                                                           ble in HALT mode. If HALT mode is used in the ap-
                                                           plication, prior to executing the HALT instruction,
                                                           the counter must be disabled by clearing the TCE
                                                           bit in the ARTCSR register to avoid spurious coun-
                                                           ter increments.

Figure 43. External Event Detector Example (3 counts)

fEXT=fCOUNTER

                              ARTARR=FDh

COUNTER FDh    FEh            FFh                     FDh  FEh          FFh  FDh

OVF

                                                           ARTCSR READ            ARTCSR READ

                              INTERRUPT                                 INTERRUPT
                                IF OIE=1                                  IF OIE=1

                                                                                                          t

                                                                                                             67/197
ST72325xx

ON-CHIP PERIPHERALS (Cont'd)                                     External interrupt capability

Input capture function                                           This mode allows the Input capture capabilities to
                                                                 be used as external interrupt sources. The inter-
This mode allows the measurement of external                     rupts are generated on the edge of the ARTICx
signal pulse widths through ARTICRx registers.                   signal.

Each input capture can generate an interrupt inde-               The edge sensitivity of the external interrupts is
pendently on a selected input signal transition.                 programmable (CSx bit of ARTICCSR register)
This event is flagged by a set of the corresponding              and they are independently enabled through CIEx
CFx bits of the Input Capture Control/Status regis-              bits of the ARTICCSR register. After fetching the
ter (ARTICCSR).                                                  interrupt vector, the CFx flags can be read to iden-
                                                                 tify the interrupt source.
These input capture interrupts are enabled
through the CIEx bits of the ARTICCSR register.                  During HALT mode, the external interrupts can be
                                                                 used to wake up the micro (if the CIEx bit is set).
The active transition (falling or rising edge) is soft-
ware programmable through the CSx bits of the
ARTICCSR register.

The read only input capture registers (ARTICRx)
are used to latch the auto-reload counter value
when a transition is detected on the ARTICx pin
(CFx bit set in ARTICCSR register). After fetching
the interrupt vector, the CFx flags can be read to
identify the interrupt source.

Note: After a capture detection, data transfer in
the ARTICRx register is inhibited until it is read
(clearing the CFx bit).
The timer interrupt remains pending while the CFx
flag is set when the interrupt is enabled (CIEx bit
set). This means, the ARTICRx register has to be
read at each capture event to clear the CFx flag.

The timing resolution is given by auto-reload coun-
ter cycle time (1/fCOUNTER).

Note: During HALT mode, if both input capture
and external clock are enabled, the ARTICRx reg-
ister value is not guaranteed if the input capture
pin and the external clock change simultaneously.

Figure 44. Input Capture Timing Diagram

           fCOUNTER

           COUNTER 01h  02h                                 03h  04h  05h  06h  07h

              ARTICx PIN                                              INTERRUPT

                CFx FLAG                                                    04h
                                                       xxh
                                                                                                      t
        ICRx REGISTER

68/197
                                                                                                ST72325xx

ON-CHIP PERIPHERALS (Cont'd)                              0: New transition not yet reached
                                                          1: Transition reached
10.3.3 Register Description
                                                          COUNTER ACCESS REGISTER (ARTCAR)
CONTROL / STATUS REGISTER (ARTCSR)                        Read / Write
Read / Write                                              Reset Value: 0000 0000 (00h)
Reset Value: 0000 0000 (00h)

7                                          0

EXCL CC2 CC1 CC0 TCE FCRL OIE OVF

                                                          7                                          0

Bit 7 = EXCL External Clock                               CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0
This bit is set and cleared by software. It selects the
input clock for the 7-bit prescaler.                      Bit 7:0 = CA[7:0] Counter Access Data
0: CPU clock.
1: External clock.                                        These bits can be set and cleared either by hard-
                                                          ware or by software. The ARTCAR register is used
Bit 6:4 = CC[2:0] Counter Clock Control                   to read or write the auto-reload counter "on the fly"
These bits are set and cleared by software. They          (while it is counting).
determine the prescaler division ratio from fINPUT.

fCOUNTER     With fINPUT=8 MHz  CC2  CC1  CC0            AUTO-RELOAD REGISTER (ARTARR)
                                                          Read / Write
   fINPUT             8 MHz        0    0    0            Reset Value: 0000 0000 (00h)
fINPUT / 2           4 MHz        0    0    1
fINPUT / 4           2 MHz        0    1    0            7                                          0
fINPUT / 8           1 MHz        0    1    1
fINPUT / 16          500 kHz       1    0    0            AR7 AR6 AR5 AR4 AR3 AR2 AR1 AR0
fINPUT / 32          250 kHz       1    0    1
fINPUT / 64          125 kHz       1    1    0
fINPUT / 128        62.5 kHz       1    1    1

Bit 3 = TCE Timer Counter Enable                          Bit 7:0 = AR[7:0] Counter Auto-Reload Data
This bit is set and cleared by software. It puts the
timer in the lowest power consumption mode.               These bits are set and cleared by software. They
0: Counter stopped (prescaler and counter frozen).        are used to hold the auto-reload value which is au-
1: Counter running.                                       tomatically loaded in the counter when an overflow
                                                          occurs. At the same time, the PWM output levels
Bit 2 = FCRL Force Counter Re-Load                        are changed according to the corresponding OPx
This bit is write-only and any attempt to read it will    bit in the PWMCR register.
yield a logical zero. When set, it causes the contents
of ARTARR register to be loaded into the counter,         This register has two PWM management func-
and the content of the prescaler register to be           tions:
cleared in order to initialize the timer before starting
to count.                                                    Adjusting the PWM frequency
                                                             Setting the PWM duty cycle resolution
Bit 1 = OIE Overflow Interrupt Enable
This bit is set and cleared by software. It allows to     PWM Frequency vs Resolution:
enable/disable the interrupt which is generated
when the OVF bit is set.                                   ARTARR       Resolution       fPWM
0: Overflow Interrupt disable.                               value
1: Overflow Interrupt enable.                                               8-bit   Min         Max
                                                                0          > 7-bit
Bit 0 = OVF Overflow Flag                                  [ 0..127 ]      > 6-bit  ~0.244 kHz  31.25 kHz
This bit is set by hardware and cleared by software       [ 128..191 ]     > 5-bit  ~0.244 kHz  62.5 kHz
reading the ARTCSR register. It indicates the tran-       [ 192..223 ]     > 4-bit  ~0.488 kHz   125 kHz
sition of the counter from FFh to the ARTARR val-         [ 224..239 ]              ~0.977 kHz   250 kHz
ue.                                                                                 ~1.953 kHz   500 kHz

                                                                                                69/197
ST72325xx

ON-CHIP PERIPHERALS (Cont'd)                       DUTY CYCLE REGISTERS (PWMDCRx)
                                                   Read / Write
PWM CONTROL REGISTER (PWMCR)                       Reset Value: 0000 0000 (00h)
Read / Write
Reset Value: 0000 0000 (00h)

7                                0                 7                               0

OE3 OE2 OE1 OE0 OP3 OP2 OP1 OP0                    DC7 DC6 DC5 DC4 DC3 DC2 DC1 DC0

Bit 7:4 = OE[3:0] PWM Output Enable                Bit 7:0 = DC[7:0] Duty Cycle Data
These bits are set and cleared by software. They
enable or disable the PWM output channels inde-    These bits are set and cleared by software.
pendently acting on the corresponding I/O pin.
0: PWM output disabled.                            A PWMDCRx register is associated with the OCRx
1: PWM output enabled.                             register of each PWM channel to determine the
                                                   second edge location of the PWM signal (the first
Bit 3:0 = OP[3:0] PWM Output Polarity              edge location is common to all channels and given
These bits are set and cleared by software. They   by the ARTARR register). These PWMDCR regis-
independently select the polarity of the four PWM  ters allow the duty cycle to be set independently
output signals.                                    for each PWM channel.

        PWMx output level

Counter <= OCRx  Counter > OCRx  OPx
           1               0
           0               1       0
                                   1

Note: When an OPx bit is modified, the PWMx out-
put signal polarity is immediately reversed.

70/197
                                                          ST72325xx

ON-CHIP PERIPHERALS (Cont'd)                           INPUT CAPTURE REGISTERS (ARTICRx)
                                                       Read only
INPUT CAPTURE                                          Reset Value: 0000 0000 (00h)
CONTROL / STATUS REGISTER (ARTICCSR)
Read / Write
Reset Value: 0000 0000 (00h)

                                                       7                                  0

7  0

                                                       IC7 IC6 IC5 IC4 IC3 IC2 IC1 IC0

0  0 CS2 CS1 CIE2 CIE1 CF2 CF1

Bit 7:6 = Reserved, always read as 0.                  Bit 7:0 = IC[7:0] Input Capture Data

Bit 5:4 = CS[2:1] Capture Sensitivity                  These read only bits are set and cleared by hard-
These bits are set and cleared by software. They       ware. An ARTICRx register contains the 8-bit
determine the trigger event polarity on the corre-     auto-reload counter value transferred by the input
sponding input capture channel.                        capture channel x event.
0: Falling edge triggers capture on channel x.
1: Rising edge triggers capture on channel x.

Bit 3:2 = CIE[2:1] Capture Interrupt Enable
These bits are set and cleared by software. They
enable or disable the Input capture channel inter-
rupts independently.
0: Input capture channel x interrupt disabled.
1: Input capture channel x interrupt enabled.

Bit 1:0 = CF[2:1] Capture Flag
These bits are set by hardware and cleared by
software reading the corresponding ARTICRx reg-
ister. Each CFx bit indicates that an input capture x
has occurred.
0: No input capture on channel x.
1: An input capture has occurred on channel x.

                                                          71/197
ST72325xx

PWM AUTO-RELOAD TIMER (Cont'd)
Table 17. PWM Auto-Reload Timer Register Map and Reset Values

Address    Register      7    6    5    4    3                    2    1    0
(Hex.)      Label
                      DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
0073h    PWMDCR3         0    0    0    0    0                    0    0    0
0074h    Reset Value
0075h                 DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
0076h    PWMDCR2         0    0    0    0    0                    0    0    0
0077h    Reset Value
0078h                 DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
0079h    PWMDCR1         0    0    0    0    0                    0    0    0
007Ah    Reset Value
007Bh                 DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
007Ch    PWMDCR0         0    0    0    0    0                    0    0    0
007Dh    Reset Value
                      OE3   OE2  OE1  OE0  OP3                 OP2   OP1  OP0
         PWMCR           0    0    0    0    0                    0    0    0
         Reset Value
                      EXCL  CC2  CC1  CC0  TCE                 FCRL  RIE  OVF
         ARTCSR          0    0    0    0    0                    0    0    0
         Reset Value
                       CA7  CA6  CA5  CA4  CA3                  CA2  CA1  CA0
         ARTCAR          0    0    0    0    0                    0    0    0
         Reset Value
                       AR7  AR6  AR5  AR4  AR3                  AR2  AR1  AR0
         ARTARR          0    0    0    0    0                    0    0    0
         Reset Value
                         0    0  CS2  CS1  CIE2                CIE1  CF2  CF1
         ARTICCSR                  0    0    0                    0    0    0
         Reset Value   IC7  IC6
                         0    0  IC5  IC4   IC3                 IC2  IC1  IC0
         ARTICR1                   0    0    0                    0    0    0
         Reset Value   IC7  IC6
                         0    0  IC5  IC4   IC3                 IC2  IC1  IC0
         ARTICR2                   0    0    0                    0    0    0
         Reset Value

72/197
                                                      ST72325xx

10.4 16-BIT TIMER                                     When reading an input signal on a non-bonded
                                                      pin, the value will always be `1'.
10.4.1 Introduction
                                                      10.4.3 Functional Description
The timer consists of a 16-bit free-running counter
driven by a programmable prescaler.                   10.4.3.1 Counter

It may be used for a variety of purposes, including   The main block of the Programmable Timer is a
pulse length measurement of up to two input sig-      16-bit free running upcounter and its associated
nals (input capture) or generation of up to two out-  16-bit registers. The 16-bit registers are made up
put waveforms (output compare and PWM).               of two 8-bit registers called high and low.

Pulse lengths and waveform periods can be mod-        Counter Register (CR):
ulated from a few microseconds to several milli-
seconds using the timer prescaler and the CPU             Counter High Register (CHR) is the most sig-
clock prescaler.                                           nificant byte (MS Byte).

Some ST7 devices have two on-chip 16-bit timers.          Counter Low Register (CLR) is the least sig-
They are completely independent, and do not                nificant byte (LS Byte).
share any resources. They are synchronized after
a MCU reset as long as the timer clock frequen-       Alternate Counter Register (ACR)
cies are not modified.
                                                          Alternate Counter High Register (ACHR) is the
This description covers one or two 16-bit timers. In       most significant byte (MS Byte).
ST7 devices with two timers, register names are
prefixed with TA (Timer A) or TB (Timer B).               Alternate Counter Low Register (ACLR) is the
                                                           least significant byte (LS Byte).
10.4.2 Main Features
Programmable prescaler: fCPU divided by 2, 4 or 8    These two read-only 16-bit registers contain the
Overflow status flag and maskable interrupt          same value but with the difference that reading the
External clock input (must be at least four times    ACLR register does not clear the TOF bit (Timer
                                                      overflow flag), located in the Status register, (SR),
   slower than the CPU clock speed) with the choice   (see note at the end of paragraph titled 16-bit read
   of active edge                                     sequence).
1 or 2 Output Compare functions each with:
                                                      Writing in the CLR register or ACLR register resets
    2 dedicated 16-bit registers                     the free running counter to the FFFCh value.
                                                      Both counters have a reset value of FFFCh (this is
    2 dedicated programmable signals                 the only value which is reloaded in the 16-bit tim-
                                                      er). The reset value of both counters is also
    2 dedicated status flags                         FFFCh in One Pulse mode and PWM mode.

    1 dedicated maskable interrupt                   The timer clock depends on the clock control bits
1 or 2 Input Capture functions each with:            of the CR2 register, as illustrated in Table 1. The
                                                      value in the counter register repeats every
    2 dedicated 16-bit registers                     131072, 262144 or 524288 CPU clock cycles de-
                                                      pending on the CC[1:0] bits.
    2 dedicated active edge selection signals        The timer frequency can be fCPU/2, fCPU/4, fCPU/8
                                                      or an external frequency.
    2 dedicated status flags

    1 dedicated maskable interrupt
Pulse width modulation mode (PWM)
One Pulse mode
Reduced Power Mode
5 alternate functions on I/O ports (ICAP1, ICAP2,

   OCMP1, OCMP2, EXTCLK)*

The Block Diagram is shown in Figure 1.

*Note: Some timer pins may not be available (not
bonded) in some ST7 devices. Refer to the device
pin out description.

                                                      73/197
ST72325xx

16-BIT TIMER (Cont'd)                                ST7 INTERNAL BUS
Figure 45. Timer Block Diagram                 MCU-PERIPHERAL INTERFACE

                 fCPU

             8 high                     8 low  88             88        88           88
           EXEDG                   8-bit
                                   buffer      high
                                                       low
                                        16                         high
                                                                           low
                                                                                      high
                                                                                               low
                                                                                                           high
                                                                                                                    low

                1/2    COUNTER                  OUTPUT        OUTPUT      INPUT     INPUT
                1/4   REGISTER                 COMPARE        COMPARE   CAPTURE   CAPTURE
                1/8                            REGISTER       REGISTER  REGISTER  REGISTER
                     ALTERNATE
           CC[1:0]    COUNTER                         1              2        1         2
                      REGISTER
EXTCLK                                                                      16       16
   pin                              16

                                               TIMER INTERNAL BUS
                                                     16 16

                     OVERFLOW      OUTPUT COMPARE                       EDGE DETECT                                      ICAP1
                       DETECT             CIRCUIT                          CIRCUIT1                                       pin
                      CIRCUIT
                                                      6                 EDGE DETECT                                      ICAP2
                                                                           CIRCUIT2                                       pin

        ICF1 OCF1 TOF ICF2 OCF2 TIMD 0 0                                 LATCH1                                          OCMP1
                             (Control/Status Register)                   LATCH2                                            pin
                                                        CSR
                                                                                                                         OCMP2
                                                                                                                           pin

        ICIE OCIE TOIE FOLV2 FOLV1OLVL2 IEDG1 OLVL1           OC1E OC2E OPM PWM CC1 CC0 IEDG2 EXEDG

                                    (Control Register 1) CR1                                     (Control Register 2) CR2

                       (See note)              Note: If IC, OC and TO interrupt requests have separate vectors
        TIMER INTERRUPT                        then the last OR is not present (See device Interrupt Vector Table)

74/197
                                                        ST72325xx

16-BIT TIMER (Cont'd)                                   Clearing the overflow interrupt request is done in
                                                        two steps:
16-bit read sequence: (from either the Counter
Register or the Alternate Counter Register).            1. Reading the SR register while the TOF bit is set.
                                                        2. An access (read or write) to the CLR register.
Beginning of the sequence
                                                        Notes: The TOF bit is not cleared by accesses to
At t0  Read                LS Byte                      ACLR register. The advantage of accessing the
       MS Byte             is buffered                  ACLR register rather than the CLR register is that
                                                        it allows simultaneous use of the overflow function
          Other                                         and reading the free running counter at random
       instructions                                     times (for example, to measure elapsed time) with-
                                                        out the risk of clearing the TOF bit erroneously.
              Read         Returns the buffered
At t0 +t LS Byte           LS Byte value at t0          The timer is not affected by WAIT mode.

Sequence completed                                      In HALT mode, the counter stops counting until the
                                                        mode is exited. Counting then resumes from the
The user must read the MS Byte first, then the LS       previous count (MCU awakened by an interrupt) or
Byte value is buffered automatically.                   from the reset count (MCU awakened by a Reset).

This buffered value remains unchanged until the         10.4.3.2 External Clock
16-bit read sequence is completed, even if the
user reads the MS Byte several times.                   The external clock (where available) is selected if
                                                        CC0 = 1 and CC1 = 1 in the CR2 register.
After a complete reading sequence, if only the
CLR register or ACLR register are read, they re-        The status of the EXEDG bit in the CR2 register
turn the LS Byte of the count value at the time of      determines the type of level transition on the exter-
the read.                                               nal clock pin EXTCLK that will trigger the free run-
                                                        ning counter.
Whatever the timer mode used (input capture, out-
put compare, One Pulse mode or PWM mode) an             The counter is synchronized with the falling edge
overflow occurs when the counter rolls over from        of the internal CPU clock.
FFFFh to 0000h then:
                                                        A minimum of four falling edges of the CPU clock
The TOF bit of the SR register is set.                must occur between two consecutive active edges
                                                        of the external clock; thus the external clock fre-
A timer interrupt is generated if:                    quency must be less than a quarter of the CPU
                                                        clock frequency.
    TOIE bit of the CR1 register is set and

    I bit of the CC register is cleared.

If one of these conditions is false, the interrupt re-
mains pending to be issued as soon as they are
both true.

                                                        75/197
ST72325xx

16-BIT TIMER (Cont'd)
Figure 46. Counter Timing Diagram, Internal Clock Divided by 2

           CPU CLOCK

           INTERNAL RESET

                     TIMER CLOCK   FFFD FFFE FFFF 0000 0001 0002 0003
           COUNTER REGISTER

        TIMER OVERFLOW FLAG (TOF)

Figure 47. Counter Timing Diagram, Internal Clock Divided by 4

                                          CPU CLOCK

                INTERNAL RESET                                  0000  0001
                     TIMER CLOCK

           COUNTER REGISTER FFFC FFFD

        TIMER OVERFLOW FLAG (TOF)

Figure 48. Counter Timing Diagram, Internal Clock Divided By 8

                        CPU CLOCK  FFFC  FFFD                         0000
                INTERNAL RESET

                     TIMER CLOCK
           COUNTER REGISTER

        TIMER OVERFLOW FLAG (TOF)

Note: The MCU is in reset state when the internal reset signal is high, when it is low the MCU is running.

76/197
                                                         ST72325xx

16-BIT TIMER (Cont'd)                                    When an input capture occurs:

10.4.3.3 Input Capture                                    ICFi bit is set.

In this section, the index, i, may be 1 or 2 because      The ICiR register contains the value of the free
there are two input capture functions in the 16-bit        running counter on the active transition on the
timer.                                                     ICAPi pin (see Figure 6).

The two 16-bit input capture registers (IC1R and          A timer interrupt is generated if the ICIE bit is set
IC2R) are used to latch the value of the free run-         and the I bit is cleared in the CC register. Other-
ning counter after a transition is detected on the         wise, the interrupt remains pending until both
ICAPi pin (see Figure 5).                                  conditions become true.

      MS Byte  LS Byte                                   Clearing the Input Capture interrupt request (that
                ICiLR                                    is, clearing the ICFi bit) is done in two steps:
ICiR  ICiHR
                                                         1. Reading the SR register while the ICFi bit is set.
ICiR register is a read-only register.
                                                         2. An access (read or write) to the ICiLR register.
The active transition is software programmable
through the IEDGi bit of Control Registers (CRi).        Notes:

Timing resolution is one count of the free running       1. After reading the ICiHR register, transfer of
                                                            input capture data is inhibited and ICFi will
counter: (fCPU/CC[1:0]).                                    never be set until the ICiLR register is also
                                                            read.
Procedure:
                                                         2. The ICiR register contains the free running
To use the input capture function select the follow-        counter value which corresponds to the most
ing in the CR2 register:                                    recent input capture.

Select the timer clock (CC[1:0]) (see Table 1).        3. The two input capture functions can be used
                                                            together even if the timer also uses the two out-
Select the edge of the active transition on the           put compare functions.
  ICAP2 pin with the IEDG2 bit (the ICAP2 pin
  must be configured as floating input or input with     4. In One Pulse mode and PWM mode only Input
  pull-up without interrupt if this configuration is        Capture 2 can be used.
  available).
                                                         5. The alternate inputs (ICAP1 and ICAP2) are
And select the following in the CR1 register:               always directly connected to the timer. So any
                                                            transitions on these pins activates the input
Set the ICIE bit to generate an interrupt after an        capture function.
  input capture coming from either the ICAP1 pin            Moreover if one of the ICAPi pins is configured
  or the ICAP2 pin                                          as an input and the second one as an output,
                                                            an interrupt can be generated if the user tog-
Select the edge of the active transition on the           gles the output pin and if the ICIE bit is set.
  ICAP1 pin with the IEDG1 bit (the ICAP1pin must           This can be avoided if the input capture func-
  be configured as floating input or input with pull-       tion i is disabled by reading the ICiHR (see note
  up without interrupt if this configuration is availa-     1).
  ble).
                                                         6. The TOF bit can be used with interrupt genera-
                                                            tion in order to measure events that go beyond
                                                            the timer range (FFFFh).

                                                         77/197
ST72325xx

16-BIT TIMER (Cont'd)
Figure 49. Input Capture Block Diagram

ICAP1                                                          (Control Register 1) CR1

pin

        EDGE DETECT EDGE DETECT                          ICIE                          IEDG1

ICAP2   CIRCUIT2              CIRCUIT1

pin                                                                  (Status Register) SR

        IC2R Register         IC1R Register              ICF1  ICF2  0                 0      0

        16-BIT                                                 (Control Register 2) CR2

            16-BIT FREE RUNNING                                  CC1 CC0 IEDG2
                        COUNTER

Figure 50. Input Capture Timing Diagram

          TIMER CLOCK   FF01                       FF02        FF03
COUNTER REGISTER                                                                 FF03

          ICAPi PIN
        ICAPi FLAG

        ICAPi REGISTER

        Note: The rising edge is the active edge.

78/197
                                                                                 ST72325xx

16-BIT TIMER (Cont'd)                                  The OCMPi pin takes OLVLi bit value (OCMPi
                                                        pin latch is forced low during reset).
10.4.3.4 Output Compare
                                                       A timer interrupt is generated if the OCIE bit is
In this section, the index, i, may be 1 or 2 because    set in the CR1 register and the I bit is cleared in
there are two output compare functions in the 16-       the CC register (CC).
bit timer.
                                                      The OCiR register value required for a specific tim-
This function can be used to control an output        ing application can be calculated using the follow-
waveform or indicate when a period of time has        ing formula:
elapsed.
                                                               OCiR =  t * fCPU
When a match is found between the Output Com-
pare register and the free running counter, the out-                   PRESC
put compare function:
                                                      Where:
    Assigns pins with a programmable value if the
     OCiE bit is set                                  t       = Output compare period (in seconds)

    Sets a flag in the status register               fCPU = CPU clock frequency (in hertz)
                                                      PRESC = Timer prescaler factor (2, 4 or 8 de-
    Generates an interrupt if enabled
                                                                    pending on CC[1:0] bits, see Table 1)
Two 16-bit registers Output Compare Register 1
(OC1R) and Output Compare Register 2 (OC2R)
contain the value to be compared to the counter
register each timer clock cycle.

OCiR  MS Byte  LS Byte                                If the timer clock is an external clock, the formula
      OCiHR    OCiLR                                  is:

These registers are readable and writable and are              OCiR = t * fEXT
not affected by the timer hardware. A reset event
changes the OCiR value to 8000h.                      Where:

Timing resolution is one count of the free running    t       = Output compare period (in seconds)

counter: (fCPU/CC[1:0]).                              fEXT = External timer clock frequency (in hertz)

Procedure:                                            Clearing the output compare interrupt request
                                                      (that is, clearing the OCFi bit) is done by:
To use the output compare function, select the fol-
lowing in the CR2 register:                           1. Reading the SR register while the OCFi bit is
                                                         set.
Set the OCiE bit if an output is needed then the
  OCMPi pin is dedicated to the output compare i      2. An access (read or write) to the OCiLR register.
  signal.
                                                      The following procedure is recommended to pre-
Select the timer clock (CC[1:0]) (see Table 1).     vent the OCFi bit from being set between the time
                                                      it is read and the write to the OCiR register:
And select the following in the CR1 register:
                                                       Write to the OCiHR register (further compares
Select the OLVLi bit to applied to the OCMPi pins     are inhibited).
  after the match occurs.
                                                       Read the SR register (first step of the clearance
Set the OCIE bit to generate an interrupt if it is    of the OCFi bit, which may be already set).
  needed.
                                                       Write to the OCiLR register (enables the output
When a match is found between OCiR register             compare function and clears the OCFi bit).
and CR register:

OCFi bit is set.

                                                                                 79/197
ST72325xx

16-BIT TIMER (Cont'd)                                Forced Compare Output capability

Notes:                                               When the FOLVi bit is set by software, the OLVLi
                                                     bit is copied to the OCMPi pin. The OLVi bit has to
1. After a processor write cycle to the OCiHR reg-   be toggled in order to toggle the OCMPi pin when
   ister, the output compare function is inhibited   it is enabled (OCiE bit = 1). The OCFi bit is then
   until the OCiLR register is also written.         not set by hardware, and thus no interrupt request
                                                     is generated.
2. If the OCiE bit is not set, the OCMPi pin is a
   general I/O port and the OLVLi bit will not       The FOLVLi bits have no effect in both One Pulse
   appear when a match is found but an interrupt     mode and PWM mode.
   could be generated if the OCIE bit is set.

3. In both internal and external clock modes,
   OCFi and OCMPi are set while the counter
   value equals the OCiR register value (see Fig-
   ure 8 for an example with fCPU/2 and Figure 9
   for an example with fCPU/4). This behavior is
   the same in OPM or PWM mode.

4. The output compare functions can be used both
   for generating external events on the OCMPi
   pins even if the input capture mode is also
   used.

5. The value in the 16-bit OCiR register and the
   OLVi bit should be changed after each suc-
   cessful comparison in order to control an output
   waveform or establish a new elapsed timeout.

Figure 51. Output Compare Block Diagram

16 BIT FREE RUNNING    OC1E OC2E                         CC1 CC0
            COUNTER            OCIE
                                                     (Control Register 2) CR2
   16-bit

                                                     (Control Register 1) CR1

OUTPUT COMPARE                           FOLV2 FOLV1 OLVL2      OLVL1          Latch  OCMP1
       CIRCUIT                                                                   1       Pin

16-bit     16-bit                                                              Latch  OCMP2
                                                                                  2      Pin
OC1R Register

                       OCF1                          OCF2 0  0  0

        OC2R Register

                                                     (Status Register) SR

80/197
                                                                 ST72325xx

16-BIT TIMER (Cont'd)
Figure 52. Output Compare Timing Diagram, fTIMER = fCPU/2

INTERNAL CPU CLOCK

TIMER CLOCK

COUNTER REGISTER 2ECF 2ED0 2ED1 2ED2 2ED3 2ED4

OUTPUT COMPARE REGISTER i (OCRi)                           2ED3

OUTPUT COMPARE FLAG i (OCFi)

OCMPi PIN (OLVLi = 1)

Figure 53. Output Compare Timing Diagram, fTIMER = fCPU/4

INTERNAL CPU CLOCK

TIMER CLOCK

COUNTER REGISTER 2ECF 2ED0 2ED1 2ED2 2ED3 2ED4

OUTPUT COMPARE REGISTER i (OCRi)                           2ED3

OUTPUT COMPARE FLAG i (OCFi)

OCMPi PIN (OLVLi = 1)

                                                                 81/197
ST72325xx

16-BIT TIMER (Cont'd)                                 Clearing the Input Capture interrupt request (that
                                                      is, clearing the ICFi bit) is done in two steps:
10.4.3.5 One Pulse Mode
                                                      1. Reading the SR register while the ICFi bit is set.
One Pulse mode enables the generation of a
pulse when an external event occurs. This mode is     2. An access (read or write) to the ICiLR register.
selected via the OPM bit in the CR2 register.
                                                      The OC1R register value required for a specific
The One Pulse mode uses the Input Capture1            timing application can be calculated using the fol-
function and the Output Compare1 function.            lowing formula:

Procedure:                                                      OCiR Value = t * fCPU - 5

To use One Pulse mode:                                                                       PRESC

1. Load the OC1R register with the value corre-       Where:
   sponding to the length of the pulse (see the for-
   mula in the opposite column).                      t       = Pulse period (in seconds)

2. Select the following in the CR1 register:          fCPU = CPU clock frequency (in hertz)
                                                      PRESC = Timer prescaler factor (2, 4 or 8 depend-
    Using the OLVL1 bit, select the level to be ap-
     plied to the OCMP1 pin after the pulse.                        ing on the CC[1:0] bits, see Table 1)

    Using the OLVL2 bit, select the level to be ap-  If the timer clock is an external clock the formula is:
     plied to the OCMP1 pin during the pulse.
                                                              OCiR = t * fEXT -5
    Select the edge of the active transition on the
     ICAP1 pin with the IEDG1 bit (the ICAP1 pin      Where:
     must be configured as floating input).
                                                      t       = Pulse period (in seconds)
3. Select the following in the CR2 register:
                                                      fEXT = External timer clock frequency (in hertz)
    Set the OC1E bit, the OCMP1 pin is then ded-
     icated to the Output Compare 1 function.         When the value of the counter is equal to the value
                                                      of the contents of the OC1R register, the OLVL1
    Set the OPM bit.                                 bit is output on the OCMP1 pin, (See Figure 10).

    Select the timer clock CC[1:0] (see Table 1).

                      One Pulse mode cycle            Notes:

            When       ICR1 = Counter                 1. The OCF1 bit cannot be set by hardware in
        event occurs  OCMP1 = OLVL2                      One Pulse mode but the OCF2 bit can generate
                                                         an Output Compare interrupt.
         on ICAP1      Counter is reset
                           to FFFCh                   2. When the Pulse Width Modulation (PWM) and
                                                         One Pulse mode (OPM) bits are both set, the
                        ICF1 bit is set                  PWM mode is the only active one.

        When          OCMP1 = OLVL1                   3. If OLVL1 = OLVL2 a continuous signal will be
        Counter                                          seen on the OCMP1 pin.
        = OC1R
                                                      4. The ICAP1 pin can not be used to perform input
Then, on a valid event on the ICAP1 pin, the coun-       capture. The ICAP2 pin can be used to perform
ter is initialized to FFFCh and OLVL2 bit is loaded      input capture (ICF2 can be set and IC2R can be
on the OCMP1 pin, the ICF1 bit is set and the val-       loaded) but the user must take care that the
ue FFFDh is loaded in the IC1R register.                 counter is reset each time a valid edge occurs
                                                         on the ICAP1 pin and ICF1 can also generates
Because the ICF1 bit is set when an active edge          interrupt if ICIE is set.
occurs, an interrupt can be generated if the ICIE
bit is set.                                           5. When One Pulse mode is used OC1R is dedi-
                                                         cated to this mode. Nevertheless OC2R and
                                                         OCF2 can be used to indicate a period of time
                                                         has been elapsed but cannot generate an out-
                                                         put waveform because the level OLVL2 is dedi-
                                                         cated to the One Pulse mode.

82/197
                                                                             ST72325xx

16-BIT TIMER (Cont'd)
Figure 54. One Pulse Mode Timing Example

       IC1R                               01F8                                2ED3
COUNTER 01F8 FFFC FFFD FFFE                                                  FFFC FFFD
                                                   2ED0 2ED1 2ED2
      ICAP1                                                            2ED3

OCMP1                OLVL2                                            OLVL1  OLVL2

                                                       compare1

Note: IEDG1 = 1, OC1R = 2ED0h, OLVL1 = 0, OLVL2 = 1

Figure 55. Pulse Width Modulation Mode Timing Example with 2 Output Compare Functions

COUNTER 34E2 FFFC FFFD FFFE                            2ED0 2ED1 2ED2        34E2 FFFC

OCMP1                OLVL2                                            OLVL1            OLVL2

           compare2                                  compare1                compare2

Note: OC1R = 2ED0h, OC2R = 34E2, OLVL1 = 0, OLVL2 = 1

Note: On timers with only one Output Compare register, a fixed frequency PWM signal can be generated
using the output compare and the counter overflow to define the pulse length.

                                                                                              83/197
ST72325xx

16-BIT TIMER (Cont'd)                                 If OLVL1 = 1 and OLVL2 = 0 the length of the pos-
                                                      itive pulse is the difference between the OC2R and
10.4.3.6 Pulse Width Modulation Mode                  OC1R registers.

Pulse Width Modulation (PWM) mode enables the         If OLVL1 = OLVL2 a continuous signal will be
generation of a signal with a frequency and pulse     seen on the OCMP1 pin.
length determined by the value of the OC1R and
OC2R registers.                                       The OCiR register value required for a specific tim-
                                                      ing application can be calculated using the follow-
Pulse Width Modulation mode uses the complete         ing formula:
Output Compare 1 function plus the OC2R regis-
ter, and so this functionality can not be used when             OCiR Value = t * fCPU - 5
PWM mode is activated.
                                                                                             PRESC
In PWM mode, double buffering is implemented on
the output compare registers. Any new values writ-    Where:
ten in the OC1R and OC2R registers are taken
into account only at the end of the PWM period        t       = Signal or pulse period (in seconds)
(OC2) to avoid spikes on the PWM output pin
(OCMP1).                                              fCPU = CPU clock frequency (in hertz)
                                                      PRESC = Timer prescaler factor (2, 4 or 8 depend-
Procedure
                                                                    ing on CC[1:0] bits, see Table 1)
To use Pulse Width Modulation mode:
                                                      If the timer clock is an external clock the formula is:
1. Load the OC2R register with the value corre-
   sponding to the period of the signal using the             OCiR = t * fEXT -5
   formula in the opposite column.
                                                      Where:
2. Load the OC1R register with the value corre-
   sponding to the period of the pulse if             t       = Signal or pulse period (in seconds)
   (OLVL1 = 0 and OLVL2 = 1) using the formula
   in the opposite column.                            fEXT = External timer clock frequency (in hertz)

3. Select the following in the CR1 register:          The Output Compare 2 event causes the counter
                                                      to be initialized to FFFCh (See Figure 11)
    Using the OLVL1 bit, select the level to be ap-
     plied to the OCMP1 pin after a successful        Notes:
     comparison with the OC1R register.
                                                      1. After a write instruction to the OCiHR register,
    Using the OLVL2 bit, select the level to be ap-     the output compare function is inhibited until the
     plied to the OCMP1 pin after a successful           OCiLR register is also written.
     comparison with the OC2R register.
                                                      2. The OCF1 and OCF2 bits cannot be set by
4. Select the following in the CR2 register:             hardware in PWM mode therefore the Output
                                                         Compare interrupt is inhibited.
    Set OC1E bit: the OCMP1 pin is then dedicat-
     ed to the output compare 1 function.             3. The ICF1 bit is set by hardware when the coun-
                                                         ter reaches the OC2R value and can produce a
    Set the PWM bit.                                    timer interrupt if the ICIE bit is set and the I bit is
                                                         cleared.
    Select the timer clock (CC[1:0]) (see Table 1).
                                                      4. In PWM mode the ICAP1 pin can not be used
                        Pulse Width Modulation cycle     to perform input capture because it is discon-
                                                         nected to the timer. The ICAP2 pin can be used
        When     OCMP1 = OLVL1                           to perform input capture (ICF2 can be set and
        Counter                                          IC2R can be loaded) but the user must take
        = OC1R                                           care that the counter is reset each period and
                                                         ICF1 can also generates interrupt if ICIE is set.
        When     OCMP1 = OLVL2
        Counter                                       5. When the Pulse Width Modulation (PWM) and
        = OC2R    Counter is reset                       One Pulse mode (OPM) bits are both set, the
                      to FFFCh                           PWM mode is the only active one.

                   ICF1 bit is set

84/197
                                                                                 ST72325xx

16-BIT TIMER (Cont'd)
10.4.4 Low Power Modes

  Mode                                                                Description
WAIT
        No effect on 16-bit Timer.
HALT    Timer interrupts cause the device to exit from WAIT mode.

        16-bit Timer registers are frozen.

        In HALT mode, the counter stops counting until Halt mode is exited. Counting resumes from the previous
        count when the MCU is woken up by an interrupt with "exit from HALT mode" capability or from the counter
        reset value when the MCU is woken up by a RESET.

        If an input capture event occurs on the ICAPi pin, the input capture detection circuitry is armed. Consequent-
        ly, when the MCU is woken up by an interrupt with "exit from HALT mode" capability, the ICFi bit is set, and
        the counter value present when exiting from HALT mode is captured into the ICiR register.

10.4.5 Interrupts                                                Event  Enable   Exit  Exit
                                                                  Flag  Control  from  from
                                           Interrupt Event                       Wait  Halt
                                                                 ICF1      Bit
Input Capture 1 event/Counter reset in PWM mode                 ICF2     ICIE   Yes    No
Input Capture 2 event                                           OCF1
Output Compare 1 event (not available in PWM mode)              OCF2    OCIE
Output Compare 2 event (not available in PWM mode)               TOF    TOIE
Timer Overflow event

Note: The 16-bit Timer interrupt events are connected to the same interrupt vector (see Interrupts chap-
ter). These events generate an interrupt if the corresponding Enable Control Bit is set and the interrupt
mask in the CC register is reset (RIM instruction).

10.4.6 Summary of Timer Modes

               MODES         Input Capture 1                          TIMER RESOURCES
                                     Yes                    Input Capture 2 Output Compare 1 Output Compare 2
Input Capture (1 and/or 2)            No
Output Compare (1 and/or 2)                                 Yes  Yes                Yes
One Pulse Mode
PWM Mode                                      Not Recommended1)  No              Partially 2)
                                                                                     No
                                              Not Recommended3)

1) See note 4 in Section 0.1.3.5 One Pulse Mode
2) See note 5 in Section 0.1.3.5 One Pulse Mode
3) See note 4 in Section 0.1.3.6 Pulse Width Modulation Mode

                                                                                       85/197
ST72325xx

16-BIT TIMER (Cont'd)                                   Bit 4 = FOLV2 Forced Output Compare 2.
                                                        This bit is set and cleared by software.
10.4.7 Register Description                             0: No effect on the OCMP2 pin.
                                                        1: Forces the OLVL2 bit to be copied to the
Each Timer is associated with three control and
status registers, and with six pairs of data registers     OCMP2 pin, if the OC2E bit is set and even if
(16-bit values) relating to the two input captures,        there is no successful comparison.
the two output compares, the counter and the al-
ternate counter.                                        Bit 3 = FOLV1 Forced Output Compare 1.
                                                        This bit is set and cleared by software.
CONTROL REGISTER 1 (CR1)                                0: No effect on the OCMP1 pin.
                                                        1: Forces OLVL1 to be copied to the OCMP1 pin, if
Read/Write
                                                           the OC1E bit is set and even if there is no suc-
Reset Value: 0000 0000 (00h)                               cessful comparison.

7                             0                         Bit 2 = OLVL2 Output Level 2.
                                                        This bit is copied to the OCMP2 pin whenever a
ICIE OCIE TOIE FOLV2 FOLV1 OLVL2 IEDG1 OLVL1            successful comparison occurs with the OC2R reg-
                                                        ister and OCxE is set in the CR2 register. This val-
Bit 7 = ICIE Input Capture Interrupt Enable.            ue is copied to the OCMP1 pin in One Pulse mode
0: Interrupt is inhibited.                              and Pulse Width Modulation mode.
1: A timer interrupt is generated whenever the
                                                        Bit 1 = IEDG1 Input Edge 1.
   ICF1 or ICF2 bit of the SR register is set.          This bit determines which type of level transition
                                                        on the ICAP1 pin will trigger the capture.
Bit 6 = OCIE Output Compare Interrupt Enable.           0: A falling edge triggers the capture.
0: Interrupt is inhibited.                              1: A rising edge triggers the capture.
1: A timer interrupt is generated whenever the
                                                        Bit 0 = OLVL1 Output Level 1.
   OCF1 or OCF2 bit of the SR register is set.          The OLVL1 bit is copied to the OCMP1 pin when-
                                                        ever a successful comparison occurs with the
Bit 5 = TOIE Timer Overflow Interrupt Enable.           OC1R register and the OC1E bit is set in the CR2
0: Interrupt is inhibited.                              register.
1: A timer interrupt is enabled whenever the TOF

   bit of the SR register is set.

86/197
                                                                                            ST72325xx

16-BIT TIMER (Cont'd)                                Bit 4 = PWM Pulse Width Modulation.
CONTROL REGISTER 2 (CR2)                             0: PWM mode is not active.
Read/Write                                           1: PWM mode is active, the OCMP1 pin outputs a
Reset Value: 0000 0000 (00h)
                                                        programmable cyclic signal; the length of the
7                             0                         pulse depends on the value of OC1R register;
                                                        the period depends on the value of OC2R regis-
OC1E OC2E OPM PWM CC1 CC0 IEDG2 EXEDG                   ter.

Bit 7 = OC1E Output Compare 1 Pin Enable.            Bit 3, 2 = CC[1:0] Clock Control.
This bit is used only to output the signal from the  The timer clock mode depends on these bits:
timer on the OCMP1 pin (OLV1 in Output Com-
pare mode, both OLV1 and OLV2 in PWM and             Table 18. Clock Control Bits
one-pulse mode). Whatever the value of the OC1E
bit, the Output Compare 1 function of the timer re-               Timer Clock          CC1  CC0
mains active.                                                                            0    0
0: OCMP1 pin alternate function disabled (I/O pin                  fCPU / 4              1    1
                                                                   fCPU / 2                   0
   free for general-purpose I/O).                                  fCPU / 8                   1
1: OCMP1 pin alternate function enabled.
                                                     External Clock (where available)
Bit 6 = OC2E Output Compare 2 Pin Enable.
This bit is used only to output the signal from the  Note: If the external clock pin is not available, pro-
timer on the OCMP2 pin (OLV2 in Output Com-          gramming the external clock configuration stops
pare mode). Whatever the value of the OC2E bit,      the counter.
the Output Compare 2 function of the timer re-
mains active.                                        Bit 1 = IEDG2 Input Edge 2.
0: OCMP2 pin alternate function disabled (I/O pin    This bit determines which type of level transition
                                                     on the ICAP2 pin will trigger the capture.
   free for general-purpose I/O).                    0: A falling edge triggers the capture.
1: OCMP2 pin alternate function enabled.             1: A rising edge triggers the capture.

Bit 5 = OPM One Pulse Mode.                          Bit 0 = EXEDG External Clock Edge.
0: One Pulse mode is not active.                     This bit determines which type of level transition
1: One Pulse mode is active, the ICAP1 pin can be    on the external clock pin EXTCLK will trigger the
                                                     counter register.
   used to trigger one pulse on the OCMP1 pin; the   0: A falling edge triggers the counter register.
   active transition is given by the IEDG1 bit. The  1: A rising edge triggers the counter register.
   length of the generated pulse depends on the
   contents of the OC1R register.

                                                                                            87/197
ST72325xx

16-BIT TIMER (Cont'd)

CONTROL/STATUS REGISTER (CSR)                             Note: Reading or writing the ACLR register does
                                                          not clear TOF.
Read/Write (bits 7:3 read only)
                                                          Bit 4 = ICF2 Input Capture Flag 2.
Reset Value: xxxx x0xx (xxh)                              0: No input capture (reset value).
                                                          1: An input capture has occurred on the ICAP2
7                                0
                                                             pin. To clear this bit, first read the SR register,
ICF1 OCF1 TOF ICF2 OCF2 TIMD 0 0                             then read or write the low byte of the IC2R
                                                             (IC2LR) register.
Bit 7 = ICF1 Input Capture Flag 1.
0: No input capture (reset value).                        Bit 3 = OCF2 Output Compare Flag 2.
1: An input capture has occurred on the ICAP1 pin         0: No match (reset value).
                                                          1: The content of the free running counter has
   or the counter has reached the OC2R value in
   PWM mode. To clear this bit, first read the SR            matched the content of the OC2R register. To
   register, then read or write the low byte of the          clear this bit, first read the SR register, then read
   IC1R (IC1LR) register.                                    or write the low byte of the OC2R (OC2LR) reg-
                                                             ister.
Bit 6 = OCF1 Output Compare Flag 1.
0: No match (reset value).                                Bit 2 = TIMD Timer disable.
1: The content of the free running counter has            This bit is set and cleared by software. When set, it
                                                          freezes the timer prescaler and counter and disa-
   matched the content of the OC1R register. To           bled the output functions (OCMP1 and OCMP2
   clear this bit, first read the SR register, then read  pins) to reduce power consumption. Access to the
   or write the low byte of the OC1R (OC1LR) reg-         timer registers is still available, allowing the timer
   ister.                                                 configuration to be changed, or the counter reset,
                                                          while it is disabled.
Bit 5 = TOF Timer Overflow Flag.                          0: Timer enabled
0: No timer overflow (reset value).                       1: Timer prescaler, counter and outputs disabled
1: The free running counter rolled over from FFFFh
                                                          Bits 1:0 = Reserved, must be kept cleared.
   to 0000h. To clear this bit, first read the SR reg-
   ister, then read or write the low byte of the CR
   (CLR) register.

88/197
                                                            ST72325xx

16-BIT TIMER (Cont'd)                                  OUTPUT COMPARE 1 HIGH REGISTER
                                                       (OC1HR)
INPUT CAPTURE 1 HIGH REGISTER (IC1HR)
                                                       Read/Write
Read Only                                              Reset Value: 1000 0000 (80h)
Reset Value: Undefined
                                                       This is an 8-bit register that contains the high part
This is an 8-bit read only register that contains the  of the value to be compared to the CHR register.
high part of the counter value (transferred by the
input capture 1 event).

7    0                                                 7    0

MSB  LSB                                               MSB  LSB

INPUT CAPTURE 1 LOW REGISTER (IC1LR)                   OUTPUT COMPARE 1 LOW REGISTER
                                                       (OC1LR)
Read Only
Reset Value: Undefined                                 Read/Write
                                                       Reset Value: 0000 0000 (00h)
This is an 8-bit read only register that contains the
low part of the counter value (transferred by the in-  This is an 8-bit register that contains the low part of
put capture 1 event).                                  the value to be compared to the CLR register.

7    0                                                 7    0

MSB  LSB                                               MSB  LSB

                                                            89/197
ST72325xx

16-BIT TIMER (Cont'd)                                    ALTERNATE COUNTER HIGH REGISTER
                                                         (ACHR)
OUTPUT COMPARE 2 HIGH REGISTER
(OC2HR)                                                  Read Only
                                                         Reset Value: 1111 1111 (FFh)
Read/Write
Reset Value: 1000 0000 (80h)                             This is an 8-bit register that contains the high part
                                                         of the counter value.
This is an 8-bit register that contains the high part
of the value to be compared to the CHR register.

7          0                                             7    0

MSB        LSB                                           MSB  LSB

OUTPUT COMPARE 2 LOW REGISTER                            ALTERNATE COUNTER LOW REGISTER
(OC2LR)                                                  (ACLR)

Read/Write                                               Read Only
Reset Value: 0000 0000 (00h)                             Reset Value: 1111 1100 (FCh)

This is an 8-bit register that contains the low part of  This is an 8-bit register that contains the low part of
the value to be compared to the CLR register.            the counter value. A write to this register resets the
                                                         counter. An access to this register after an access
7          0                                             to CSR register does not clear the TOF bit in the
                                                         CSR register.

MSB        LSB

                                                         7    0

COUNTER HIGH REGISTER (CHR)                              MSB  LSB

Read Only                                                INPUT CAPTURE 2 HIGH REGISTER (IC2HR)
Reset Value: 1111 1111 (FFh)
                                                         Read Only
This is an 8-bit register that contains the high part    Reset Value: Undefined
of the counter value.
                                                         This is an 8-bit read only register that contains the
7          0                                             high part of the counter value (transferred by the
                                                         Input Capture 2 event).
MSB        LSB

                                                         7    0

COUNTER LOW REGISTER (CLR)                               MSB  LSB

Read Only                                                INPUT CAPTURE 2 LOW REGISTER (IC2LR)
Reset Value: 1111 1100 (FCh)
                                                         Read Only
This is an 8-bit register that contains the low part of  Reset Value: Undefined
the counter value. A write to this register resets the
counter. An access to this register after accessing      This is an 8-bit read only register that contains the
the CSR register clears the TOF bit.                     low part of the counter value (transferred by the In-
                                                         put Capture 2 event).
7          0

MSB        LSB

                                                         7    0

                                                         MSB  LSB

90/197
                                                                       ST72325xx

16-BIT TIMER (Cont'd)

Table 19. 16-Bit Timer Register Map and Reset Values

Address  Register          7      6     5          4        3      2      1       0
(Hex.)    Label                OCIE  TOIE                             IEDG1
                          ICIE                  FOLV2    FOLV1  OLVL2         OLVL1
Timer A: 32 CR1             0      0    0          0        0      0      0       0
Timer B: 42 Reset Value         OC2E  OPM                              IEDG2
                         OC1E                    PWM      CC1    CC0          EXEDG
Timer A: 31 CR2             0      0    0          0        0      0      0       0
Timer B: 41 Reset Value         OCF1  TOF                                  -      -
                         ICF1                    ICF2    OCF2    TIMD     x       x
Timer A: 33 CSR             x      x    x           x        x     0
Timer B: 43 Reset Value                                                   x     LSB
                         MSB       x    x             x  x      x                 x
Timer A: 34 IC1HR           x                                             x
Timer B: 44 Reset Value            x    x             x  x      x               LSB
                         MSB                                              0       x
Timer A: 35 IC1LR           x      0    0             0  0      0
Timer B: 45 Reset Value                                                   0     LSB
                         MSB       0    0             0  0      0                 0
Timer A: 36 OC1HR           1                                             0
Timer B: 46 Reset Value            0    0             0  0      0               LSB
                         MSB                                              0       0
Timer A: 37 OC1LR           0      0    0             0  0      0
Timer B: 47 Reset Value                                                   1     LSB
                         MSB       1    1             1  1      1                 0
Timer A: 3E OC2HR           1                                             0
Timer B: 4E Reset Value            1    1             1  1      1               LSB
                         MSB                                               1      0
Timer A: 3F OC2LR           0      1    1             1  1      1
Timer B: 4F Reset Value                                                   0     LSB
                         MSB       1    1             1  1      1                 1
Timer A: 38 CHR             1                                             x
Timer B: 48 Reset Value            x    x             x  x      x               LSB
                         MSB                                              x       0
Timer A: 39 CLR             1      x    x             x  x      x
Timer B: 49 Reset Value                                                         LSB
                         MSB                                                      1
Timer A: 3A ACHR            1
Timer B: 4A Reset Value                                                         LSB
                         MSB                                                      0
Timer A: 3B ACLR            1
Timer B: 4B Reset Value                                                         LSB
                         MSB                                                      x
Timer A: 3C IC2HR           x
Timer B: 4C Reset Value                                                         LSB
                         MSB                                                      x
Timer A: 3D IC2LR           x
Timer B: 4D Reset Value

Related Documentation                           AN1041: Using ST7 PWM signal to generate ana-
                                                log input (sinusoid)
AN 973: SCI software communications using 16-
bit timer                                       AN1046: UART emulation software

AN 974: Real Time Clock with ST7 Timer Output   AN1078: PWM duty cycle switch implementing
Compare                                         true 0 or 100 per cent duty cycle

AN 976: Driving a buzzer through the ST7 Timer  AN1504: Starting a PWM signal directly at high
PWM function                                    level using the ST7 16-Bit timer

                                                                              91/197
ST72325xx

10.5 SERIAL PERIPHERAL INTERFACE (SPI)

10.5.1 Introduction                                     Note: In slave mode, continuous transmission is
                                                        not possible at maximum frequency due to the
The Serial Peripheral Interface (SPI) allows full-      software overhead for clearing status flags and to
duplex, synchronous, serial communication with          initiate the next transmission sequence.
external devices. An SPI system may consist of a
master and one or more slaves however the SPI           10.5.3 General Description
interface can not be a master in a multi-master
system.                                                 Figure 56 shows the serial peripheral interface
                                                        (SPI) block diagram. There are 3 registers:
10.5.2 Main Features
                                                            SPI Control Register (SPICR)
Full duplex synchronous transfers (on 3 lines)
                                                            SPI Control/Status Register (SPICSR)
Simplex synchronous transfers (on 2 lines)
                                                            SPI Data Register (SPIDR)
Master or slave operation
                                                        The SPI is connected to external devices through
Six master mode frequencies (fCPU/4 max.)              4 pins:
fCPU/2 max. slave mode frequency (see note)
SS Management by software or hardware                      MISO: Master In / Slave Out data

Programmable clock polarity and phase                      MOSI: Master Out / Slave In data

End of transfer interrupt flag                            SCK: Serial Clock out by SPI masters and in-
                                                             put by SPI slaves
Write collision, Master Mode Fault and Overrun
   flags

Figure 56. Serial Peripheral Interface Block Diagram

                          SPIDR  Data/Address Bus
                                   Read

                                 Read Buffer               Interrupt
                                                           request

MOSI                      8-Bit Shift Register          7                           SPICSR 0
MISO                                           Write     SPIF WCOL OVR MODF 0
                                                                               SOD SSM SSI
                    SOD
                     bit                                       SPI             SS 1
                                                             STATE
SCK                                                       CONTROL                     0

                                                        7                      SPICR 0

                                                        SPIE SPE SPR2 MSTR CPOL CPHA SPR1 SPR0

                                  MASTER
                                 CONTROL

                                          SERIAL CLOCK
                                            GENERATOR

SS

92/197
                                                                           ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                   The communication is always initiated by the mas-
                                                       ter. When the master device transmits data to a
    SS: Slave select:                                 slave device via MOSI pin, the slave device re-
     This input signal acts as a `chip select' to let  sponds by sending data to the master device via
     the SPI master communicate with slaves indi-      the MISO pin. This implies full duplex communica-
     vidually and to avoid contention on the data      tion with both data out and data in synchronized
     lines. Slave SS inputs can be driven by stand-    with the same clock signal (which is provided by
     ard I/O ports on the master MCU.                  the master device via the SCK pin).

10.5.3.1 Functional Description                        To use a single data line, the MISO and MOSI pins
                                                       must be connected at each node ( in this case only
A basic example of interconnections between a          simplex communication is possible).
single master and a single slave is illustrated in
Figure 57.                                             Four possible data/clock timing relationships may
                                                       be chosen (see Figure 60) but master and slave
The MOSI pins are connected together and the           must be programmed with the same timing mode.
MISO pins are connected together. In this way
data is transferred serially between master and
slave (most significant bit first).

Figure 57. Single Master/ Single Slave Application

         MASTER                                                     SLAVE
MSBit
                 LSBit                                       MSBit         LSBit

8-BIT SHIFT REGISTER    MISO                           MISO  8-BIT SHIFT REGISTER
                        MOSI                           MOSI

       SPI              SCK                            SCK
    CLOCK               SS +5V                           SS
GENERATOR

                                                             Not used if SS is managed
                                                             by software

                                                                                   93/197
ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                     In Slave Mode:
10.5.3.2 Slave Select Management
As an alternative to using the SS pin to control the     There are two cases depending on the data/clock
Slave Select signal, the application can choose to       timing relationship (see Figure 58):
manage the Slave Select signal by software. This
is configured by the SSM bit in the SPICSR regis-        If CPHA=1 (data latched on 2nd clock edge):
ter (see Figure 59)
In software management, the external SS pin is            SS internal must be held low during the entire
free for other application uses and the internal SS      transmission. This implies that in single slave
signal level is driven by writing to the SSI bit in the  applications the SS pin either can be tied to
SPICSR register.                                         VinSgSt,hoer  made free for standard I/O by manag-
In Master mode:                                                        SS function by software (SSM= 1 and
                                                         SSI=0 in the in the SPICSR register)
    SS internal must be held high continuously
                                                         If CPHA=0 (data latched on 1st clock edge):
Figure 58. Generic SS Timing Diagram
                                                          SS internal must be held low during byte
                                                           transmission and pulled high between each
                                                           byte to allow the slave to write to the shift reg-
                                                           ister. If SS is not pulled high, a Write Collision
                                                           error will occur when the slave writes to the
                                                           shift register (see Section 10.5.5.3).

        MOSI/MISO    Byte 1                              Byte 2          Byte 3

          Master SS

           Slave SS
        (if CPHA=0)

           Slave SS
        (if CPHA=1)

Figure 59. Hardware/Software Slave Select Management
                                                            SSM bit

                                SSI bit  1               SS internal
                     SS external pin
                                         0

94/197
                                                       ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                   Note: While the SPIF bit is set, all writes to the
                                                       SPIDR register are inhibited until the SPICSR reg-
10.5.3.3 Master Mode Operation                         ister is read.

In master mode, the serial clock is output on the      10.5.3.5 Slave Mode Operation
SCK pin. The clock frequency, polarity and phase
are configured by software (refer to the description   In slave mode, the serial clock is received on the
of the SPICSR register).                               SCK pin from the master device.

Note: The idle state of SCK must correspond to         To operate the SPI in slave mode:
the polarity selected in the SPICSR register (by
pulling up SCK if CPOL=1 or pulling down SCK if        1. Write to the SPICSR register to perform the fol-
CPOL=0).                                                  lowing actions:

To operate the SPI in master mode, perform the             Select the clock polarity and clock phase by
following steps in order (if the SPICSR register is         configuring the CPOL and CPHA bits (see
not written first, the SPICR register setting               Figure 60).
(MSTR bit) may be not taken into account):                  Note: The slave must have the same CPOL
                                                            and CPHA settings as the master.
1. Write to the SPICR register:
                                                          Manage the SS pin as described in Section
    Select the clock frequency by configuring the          10.5.3.2 and Figure 58. If CPHA=1 SS must
     SPR[2:0] bits.                                         be held low continuously. If CPHA=0 SS must
                                                            be held low during byte transmission and
    Select the clock polarity and clock phase by           pulled up between each byte to let the slave
     configuring the CPOL and CPHA bits. Figure             write in the shift register.
     60 shows the four possible configurations.
     Note: The slave must have the same CPOL           2. Write to the SPICR register to clear the MSTR
     and CPHA settings as the master.                     bit and set the SPE bit to enable the SPI I/O
                                                          functions.
2. Write to the SPICSR register:
                                                       10.5.3.6 Slave Mode Transmit Sequence
    Either set the SSM bit and set the SSI bit or
     clear the SSM bit and tie the SS pin high for     When software writes to the SPIDR register, the
     the complete byte transmit sequence.              data byte is loaded into the 8-bit shift register and
                                                       then shifted out serially to the MISO pin most sig-
3. Write to the SPICR register:                        nificant bit first.

    Set the MSTR and SPE bits                         The transmit sequence begins when the slave de-
     Note: MSTR and SPE bits remain set only if        vice receives the clock signal and the most signifi-
     SS is high).                                      cant bit of the data on its MOSI pin.

The transmit sequence begins when software             When data transfer is complete:
writes a byte in the SPIDR register.
                                                          The SPIF bit is set by hardware
10.5.3.4 Master Mode Transmit Sequence
                                                          An interrupt request is generated if SPIE bit is
When software writes to the SPIDR register, the             set and interrupt mask in the CCR register is
data byte is loaded into the 8-bit shift register and       cleared.
then shifted out serially to the MOSI pin most sig-
nificant bit first.                                    Clearing the SPIF bit is performed by the following
                                                       software sequence:
When data transfer is complete:
                                                       1. An access to the SPICSR register while the
    The SPIF bit is set by hardware                      SPIF bit is set.

    An interrupt request is generated if the SPIE     2. A write or a read to the SPIDR register.
     bit is set and the interrupt mask in the CCR
     register is cleared.                              Notes: While the SPIF bit is set, all writes to the
                                                       SPIDR register are inhibited until the SPICSR reg-
Clearing the SPIF bit is performed by the following    ister is read.
software sequence:
                                                       The SPIF bit can be cleared during a second
1. An access to the SPICSR register while the          transmission; however, it must be cleared before
   SPIF bit is set                                     the second SPIF bit in order to prevent an Overrun
                                                       condition (see Section 10.5.5.2).
2. A read to the SPIDR register.

                                                       95/197
ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)              Figure 60, shows an SPI transfer with the four
                                                  combinations of the CPHA and CPOL bits. The di-
10.5.4 Clock Phase and Clock Polarity             agram may be interpreted as a master or slave
                                                  timing diagram where the SCK pin, the MISO pin,
Four possible timing relationships may be chosen  the MOSI pin are directly connected between the
by software, using the CPOL and CPHA bits (See    master and the slave device.
Figure 60).
                                                  Note: If CPOL is changed at the communication
Note: The idle state of SCK must correspond to    byte boundaries, the SPI must be disabled by re-
the polarity selected in the SPICSR register (by  setting the SPE bit.
pulling up SCK if CPOL=1 or pulling down SCK if
CPOL=0).

The combination of the CPOL clock polarity and
CPHA (clock phase) bits selects the data capture
clock edge

Figure 60. Data Clock Timing Diagram

                                      CPHA =1

        SCK
        (CPOL = 1)

        SCK
        (CPOL = 0)

         MISO            MSBit Bit 6 Bit 5 Bit 4 Bit3 Bit 2 Bit 1 LSBit
        (from master)

          MOSI           MSBit Bit 6 Bit 5 Bit 4 Bit3 Bit 2 Bit 1 LSBit
        (from slave)

         SS
        (to slave)

         CAPTURE STROBE

                                      CPHA =0

        SCK
        (CPOL = 1)

        SCK
        (CPOL = 0)

         MISO            MSBit Bit 6 Bit 5 Bit 4 Bit3 Bit 2 Bit 1 LSBit
        (from master)

          MOSI         MSBit Bit 6 Bit 5 Bit 4 Bit3 Bit 2 Bit 1 LSBit
        (from slave)

         SS
        (to slave)

         CAPTURE STROBE

          Note: This figure should not be used as a replacement for parametric information.
          Refer to the Electrical Characteristics chapter.

96/197
                                                                           ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                 not cleared the SPIF bit issued from the previously
                                                     transmitted byte.
10.5.5 Error Flags
                                                     When an Overrun occurs:
10.5.5.1 Master Mode Fault (MODF)
                                                      The OVR bit is set and an interrupt request is
Master mode fault occurs when the master device        generated if the SPIE bit is set.
has its SS pin pulled low.
                                                     In this case, the receiver buffer contains the byte
When a Master mode fault occurs:                     sent after the SPIF bit was last cleared. A read to
                                                     the SPIDR register returns this byte. All other
    The MODF bit is set and an SPI interrupt re-    bytes are lost.
     quest is generated if the SPIE bit is set.
                                                     The OVR bit is cleared by reading the SPICSR
    The SPE bit is reset. This blocks all output    register.
     from the device and disables the SPI periph-
     eral.                                           10.5.5.3 Write Collision Error (WCOL)

    The MSTR bit is reset, thus forcing the device  A write collision occurs when the software tries to
     into slave mode.                                write to the SPIDR register while a data transfer is
                                                     taking place with an external device. When this
Clearing the MODF bit is done through a software     happens, the transfer continues uninterrupted;
sequence:                                            and the software write will be unsuccessful.

1. A read access to the SPICSR register while the    Write collisions can occur both in master and slave
      MODF bit is set.                               mode. See also Section 10.5.3.2 Slave Select
                                                     Management.
2. A write to the SPICR register.
                                                     Note: a "read collision" will never occur since the
Notes: To avoid any conflicts in an application      received data byte is placed in a buffer in which
with multiple slaves, the SS pin must be pulled      access is always synchronous with the MCU oper-
high during the MODF bit clearing sequence. The      ation.
SPE and MSTR bits may be restored to their orig-
inal state during or after this clearing sequence.   The WCOL bit in the SPICSR register is set if a
                                                     write collision occurs.
Hardware does not allow the user to set the SPE
and MSTR bits while the MODF bit is set except in    No SPI interrupt is generated when the WCOL bit
the MODF bit clearing sequence.                      is set (the WCOL bit is a status flag only).

10.5.5.2 Overrun Condition (OVR)                     Clearing the WCOL bit is done through a software
                                                     sequence (see Figure 61).
An overrun condition occurs, when the master de-
vice has sent a data byte and the slave device has

Figure 61. Clearing the WCOL bit (Write Collision Flag) Software Sequence
      Clearing sequence after SPIF = 1 (end of a data byte transfer)

               Read SPICSR
1st Step

                            RESULT

2nd Step  Read SPIDR        SPIF =0
                            WCOL=0

Clearing sequence before SPIF = 1 (during a data byte transfer)

1st Step                    Read SPICSR
2nd Step
                            Read SPIDR               RESULT   Note: Writing to the SPIDR regis-
                                                              ter instead of reading it does not
                                                      WCOL=0  reset the WCOL bit

                                                                           97/197
ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                    Note: To prevent a bus conflict on the MISO line
                                                        the master allows only one active slave device
10.5.5.4 Single Master Systems                          during a transmission.

A typical single master system may be configured,       For more security, the slave device may respond
using an MCU as the master and four MCUs as             to the master with the received data byte. Then the
slaves (see Figure 62).                                 master will receive the previous byte back from the
                                                        slave device if all MISO and MOSI pins are con-
The master device selects the individual slave de-      nected and the slave has not written to its SPIDR
vices by using four pins of a parallel port to control  register.
the four SS pins of the slave devices.
                                                        Other transmission security methods can use
The SS pins are pulled high during reset since the      ports for handshake lines or data bytes with com-
master device ports will be forced to be inputs at      mand fields.
that time, thus disabling the slave devices.

Figure 62. Single Master / Multiple Slave Configuration

                      SS               SS                            SS              SS
           SCK             SCK                           SCK             SCK

                Slave           Slave                        Slave           Slave
                MCU             MCU                          MCU             MCU

           MOSI MISO       MOSI MISO                     MOSI MISO       MOSI MISO

           MOSI MISOPorts

           SCK
              Master
              MCU

5V         SS

98/197
                                                                                              ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                     Note: When waking up from Halt mode, if the SPI
10.5.6 Low Power Modes                                   remains in Slave mode, it is recommended to per-
                                                         form an extra communications cycle to bring the
  Mode                      Description                  SPI from Halt mode state to normal state. If the
WAIT                                                     SPI exits from Slave mode, it returns to normal
        No effect on SPI.                                state immediately.
HALT    SPI interrupt events cause the device to exit
        from WAIT mode.                                  Caution: The SPI can wake up the ST7 from Halt
                                                         mode only if the Slave Select signal (external SS
        SPI registers are frozen.                        pin or the SSI bit in the SPICSR register) is low
        In HALT mode, the SPI is inactive. SPI oper-     when the ST7 enters Halt mode. So if Slave selec-
        ation resumes when the MCU is woken up by        tion is configured as external (see Section
        an interrupt with "exit from HALT mode" ca-      10.5.3.2), make sure the master drives a low level
        pability. The data received is subsequently      on the SS pin when the slave enters Halt mode.
        read from the SPIDR register when the soft-
        ware is running (interrupt vector fetching). If  10.5.7 Interrupts
        several data are received before the wake-
        up event, then an overrun error is generated.                         Event  Enable   Exit  Exit
        This error can be detected after the fetch of                          Flag  Control  from  from
        the interrupt routine that woke up the device.                                        Wait  Halt
                                                                               SPIF     Bit
10.5.6.1 Using the SPI to wakeup the MCU from             Interrupt Event                     Yes   Yes
Halt mode                                                                     MODF    SPIE
                                                         SPI End of Transfer   OVR            Yes    No
In slave configuration, the SPI is able to wakeup        Event
the ST7 device from HALT mode through a SPIF             Master Mode Fault                    Yes    No
interrupt. The data received is subsequently read        Event
from the SPIDR register when the software is run-        Overrun Error
ning (interrupt vector fetch). If multiple data trans-
fers have been performed before software clears          Note: The SPI interrupt events are connected to
the SPIF bit, then the OVR bit is set by hardware.       the same interrupt vector (see Interrupts chapter).
                                                         They generate an interrupt if the corresponding
                                                         Enable Control Bit is set and the interrupt mask in

                                                                                                    99/197
ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)

10.5.8 Register Description

CONTROL REGISTER (SPICR)

Read/Write                                              Bit 3 = CPOL Clock Polarity.
                                                        This bit is set and cleared by software. This bit de-
Reset Value: 0000 xxxx (0xh)                            termines the idle state of the serial Clock. The
                                                        CPOL bit affects both the master and slave
7                                     0                 modes.
                                                        0: SCK pin has a low level idle state
SPIE SPE SPR2 MSTR CPOL CPHA SPR1 SPR0                  1: SCK pin has a high level idle state

Bit 7 = SPIE Serial Peripheral Interrupt Enable.        Note: If CPOL is changed at the communication
This bit is set and cleared by software.                byte boundaries, the SPI must be disabled by re-
0: Interrupt is inhibited                               setting the SPE bit.
1: An SPI interrupt is generated whenever
                                                        Bit 2 = CPHA Clock Phase.
   SPIF=1, MODF=1 or OVR=1 in the SPICSR                This bit is set and cleared by software.
   register                                             0: The first clock transition is the first data capture

Bit 6 = SPE Serial Peripheral Output Enable.               edge.
This bit is set and cleared by software. It is also     1: The second clock transition is the first capture
cleared by hardware when, in master mode, SS=0
(see Section 10.5.5.1 Master Mode Fault                    edge.
(MODF)). The SPE bit is cleared by reset, so the
SPI peripheral is not initially connected to the ex-    Note: The slave must have the same CPOL and
ternal pins.                                            CPHA settings as the master.
0: I/O pins free for general purpose I/O
1: SPI I/O pin alternate functions enabled              Bits 1:0 = SPR[1:0] Serial Clock Frequency.
                                                        These bits are set and cleared by software. Used
Bit 5 = SPR2 Divider Enable.                            with the SPR2 bit, they select the baud rate of the
This bit is set and cleared by software and is          SPI serial clock SCK output by the SPI in master
cleared by reset. It is used with the SPR[1:0] bits to  mode.
set the baud rate. Refer to Table 20 SPI Master
mode SCK Frequency.                                     Note: These 2 bits have no effect in slave mode.
0: Divider by 2 enabled
1: Divider by 2 disabled                                Table 20. SPI Master mode SCK Frequency

Note: This bit has no effect in slave mode.             Serial Clock  SPR2  SPR1  SPR0
                                                                         1     0     0
Bit 4 = MSTR Master Mode.                                   fCPU/4       0     0     0
This bit is set and cleared by software. It is also         fCPU/8       0     0     1
cleared by hardware when, in master mode, SS=0             fCPU/16       1     1     0
(see Section 10.5.5.1 Master Mode Fault                    fCPU/32       0     1     0
(MODF)).                                                   fCPU/64       0     1     1
0: Slave mode                                             fCPU/128
1: Master mode. The function of the SCK pin

   changes from an input to an output and the func-
   tions of the MISO and MOSI pins are reversed.

100/197
                                                                                 ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)                  Bit 3 = Reserved, must be kept cleared.

CONTROL/STATUS REGISTER (SPICSR)                      Bit 2 = SOD SPI Output Disable.
Read/Write (some bits Read Only)                      This bit is set and cleared by software. When set, it
Reset Value: 0000 0000 (00h)                          disables the alternate function of the SPI output
                                                      (MOSI in master mode / MISO in slave mode)
7                                     0               0: SPI output enabled (if SPE=1)
                                                      1: SPI output disabled
SPIF WCOL OVR MODF - SOD SSM SSI
                                                      Bit 1 = SSM SS Management.
Bit 7 = SPIF Serial Peripheral Data Transfer Flag     This bit is set and cleared by software. When set, it
   (Read only).                                       disables the alternate function of the SPI SS pin
   This bit is set by hardware when a transfer has    and uses the SSI bit value instead. See Section
   been completed. An interrupt is generated if       10.5.3.2 Slave Select Management.
   SPIE=1 in the SPICR register. It is cleared by a   0: Hardware management (SS managed by exter-
   software sequence (an access to the SPICSR
   register followed by a write or a read to the         nal pin)
   SPIDR register).                                   1: Software management (internal SS signal con-

0: Data transfer is in progress or the flag has been     trolled by SSI bit. External SS pin free for gener-
   cleared.                                              al-purpose I/O)

1: Data transfer between the device and an exter-     Bit 0 = SSI SS Internal Mode.
   nal device has been completed.                     This bit is set and cleared by software. It acts as a
                                                      `chip select' by controlling the level of the SS slave
Note: While the SPIF bit is set, all writes to the    select signal when the SSM bit is set.
SPIDR register are inhibited until the SPICSR reg-    0 : Slave selected
ister is read.                                        1 : Slave deselected

Bit 6 = WCOL Write Collision status (Read only).      DATA I/O REGISTER (SPIDR)
This bit is set by hardware when a write to the       Read/Write
SPIDR register is done during a transmit se-          Reset Value: Undefined
quence. It is cleared by a software sequence (see
Figure 61).                                           7                                        0
0: No write collision occurred
1: A write collision has been detected                D7 D6 D5 D4 D3 D2 D1 D0

Bit 5 = OVR SPI Overrun error (Read only).            The SPIDR register is used to transmit and receive
This bit is set by hardware when the byte currently   data on the serial bus. In a master device, a write
being received in the shift register is ready to be   to this register will initiate transmission/reception
transferred into the SPIDR register while SPIF = 1    of another byte.
(See Section 10.5.5.2). An interrupt is generated if
SPIE = 1 in SPICR register. The OVR bit is cleared    Notes: During the last clock cycle the SPIF bit is
by software reading the SPICSR register.              set, a copy of the received data byte in the shift
0: No overrun error                                   register is moved to a buffer. When the user reads
1: Overrun error detected                             the serial peripheral data I/O register, the buffer is
                                                      actually being read.
Bit 4 = MODF Mode Fault flag (Read only).
This bit is set by hardware when the SS pin is        While the SPIF bit is set, all writes to the SPIDR
pulled low in master mode (see Section 10.5.5.1       register are inhibited until the SPICSR register is
Master Mode Fault (MODF)). An SPI interrupt can       read.
be generated if SPIE=1 in the SPICSR register.
This bit is cleared by a software sequence (An ac-    Warning: A write to the SPIDR register places
cess to the SPICR register while MODF=1 fol-          data directly into the shift register for transmission.
lowed by a write to the SPICR register).
0: No master mode fault detected                      A read to the SPIDR register returns the value lo-
1: A fault in master mode has been detected           cated in the buffer and not the content of the shift
                                                      register (see Figure 56).

                                                                                               101/197
ST72325xx

SERIAL PERIPHERAL INTERFACE (Cont'd)

Table 21. SPI Register Map and Reset Values

Address    Register     7      6        5       4     3     2     1     0
(Hex.)      Label
  0021h               MSB      x         x      x     x     x     x   LSB
         SPIDR          x    SPE      SPR2   MSTR  CPOL  CPHA  SPR1     x
  0022h  Reset Value
         SPICR        SPIE     0         0      0     x     x     x  SPR0
  0023h  Reset Value    0   WCOL      OVR    MODF        SOD   SSM      x
         SPICSR                                       0
         Reset Value  SPIF     0         0      0           0     0   SSI
                        0                                               0

102/197
                                                    ST72325xx

10.6 SERIAL COMMUNICATIONS INTERFACE (SCI)

10.6.1 Introduction                                 10.6.3 General Description

The Serial Communications Interface (SCI) offers    The interface is externally connected to another
a flexible means of full-duplex data exchange with  device by two pins (see Figure 2.):
external equipment requiring an industry standard
NRZ asynchronous serial data format. The SCI of-    TDO: Transmit Data Output. When the transmit-
fers a very wide range of baud rates using two        ter and the receiver are disabled, the output pin
baud rate generator systems.                          returns to its I/O port configuration. When the
                                                      transmitter and/or the receiver are enabled and
10.6.2 Main Features                                  nothing is to be transmitted, the TDO pin is at
Full duplex, asynchronous communications             high level.
NRZ standard format (Mark/Space)
Dual baud rate generator systems                   RDI: Receive Data Input is the serial data input.
Independently programmable transmit and              Oversampling techniques are used for data re-
                                                      covery by discriminating between valid incoming
   receive baud rates up to 500K baud                 data and noise.
Programmable data word length (8 or 9 bits)
Receive buffer full, Transmit buffer empty and     Through these pins, serial data is transmitted and
                                                    received as frames comprising:
   End of Transmission flags
Two receiver wake-up modes:                         An Idle Line prior to transmission or reception

    Address bit (MSB)                               A start bit

    Idle line                                       A data word (8 or 9 bits) least significant bit first
Muting function for multiprocessor configurations
Separate enable bits for Transmitter and            A Stop bit indicating that the frame is complete

   Receiver                                         This interface uses two types of baud rate generator:
Four error detection flags:
                                                    A conventional type for commonly-used baud
    Overrun error                                    rates

    Noise error                                     An extended type with a prescaler offering a very
                                                      wide range of baud rates even with non-standard
    Frame error                                      oscillator frequencies

    Parity error
Five interrupt sources with flags:

    Transmit data register empty

    Transmission complete

    Receive data register full

    Idle line received

    Overrun error detected
Parity control:

    Transmits parity bit

    Checks parity of received data byte
Reduced power consumption mode

                                                    103/197
ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)
Figure 63. SCI Block Diagram

                   Write                  Read  (DATA REGISTER) DR
         Transmit Data Register (TDR)
                                          Received Data Register (RDR)

TDO            Transmit Shift Register    Received Shift Register
RDI

                                                                                   CR1

                                        R8 T8 SCID M WAKE PCE PS PIE

         TRANSMIT           WAKE                RECEIVER                                    RECEIVER
         CONTROL               UP               CONTROL                                      CLOCK

                             UNIT

         CR2                              TDRE TC RDRF IDLE OR NF FE                           SR

         TIE TCIE RIE ILIE TE RE RWU SBK                                                    PE

                  SCI
            INTERRUPT
             CONTROL

         TRANSMITTER
              CLOCK

         fCPU          /16  /PR                       TRANSMITTER RATE
                                                            CONTROL

                                                                                     BRR

                                          SCP1SCP0 SCT2 SCT1 SCT0 SCR2 SCR1SCR0

                                                                             RECEIVER RATE
                                                                              CONTROL

                                          CONVENTIONAL BAUD RATE GENERATOR

104/197
                                                                                               ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.4 Functional Description                         10.6.4.1 Serial Data Format

The block diagram of the Serial Control Interface,    Word length may be selected as being either 8 or 9
is shown in Figure 1. It contains six dedicated reg-  bits by programming the M bit in the SCICR1 reg-
isters:                                               ister (see Figure 1.).

Two control registers (SCICR1 & SCICR2)             The TDO pin is in low state during the start bit.

A status register (SCISR)                           The TDO pin is in high state during the stop bit.

A baud rate register (SCIBRR)                       An Idle character is interpreted as an entire frame
                                                      of "1"s followed by the start bit of the next frame
An extended prescaler receiver register (SCIER-     which contains data.
  PR)
                                                      A Break character is interpreted on receiving "0"s
An extended prescaler transmitter register (SCI-    for some multiple of the frame period. At the end of
  ETPR)                                               the last break frame the transmitter inserts an ex-
                                                      tra "1" bit to acknowledge the start bit.
Refer to the register descriptions in Section 0.1.7
for the definitions of each bit.                      Transmission and reception are driven by their
                                                      own baud rate generator.

Figure 64. Word Length Programming

9-bit Word length (M bit is set)

                             Data Frame                     Possible                 Next Data Frame
                                                              Parity
                                                                                  Next
                                                                Bit

Start      Bit1 Bit2           Bit3       Bit4 Bit5   Bit6  Bit7 Bit8       Stop  Start
Bit Bit0                                                                   Bit   Bit

                             Idle Frame                                           Start
                                                                                   Bit

                             Break Frame                                          Extra Start
                                                                                   `1' Bit

8-bit Word length (M bit is reset)                          Possible            Next Data Frame
                    Data Frame                                Parity
                                                                            Next
Start                                                      Bit             Start
   Bit Bit0 Bit1 Bit2 Bit3 Bit4 Bit5                                        Bit
                                                      Bit6  Bit7      Stop
                                                                      Bit

                             Idle Frame                                     Start

                                                                            Bit

                             Break Frame                                    Extra  Start
                                                                             `1'    Bit

                                                                                               105/197
ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.4.2 Transmitter                                    When a frame transmission is complete (after the
                                                        stop bit) the TC bit is set and an interrupt is gener-
The transmitter can send data words of either 8 or      ated if the TCIE is set and the I bit is cleared in the
9 bits depending on the M bit status. When the M        CCR register.
bit is set, word length is 9 bits and the 9th bit (the
MSB) has to be stored in the T8 bit in the SCICR1       Clearing the TC bit is performed by the following
register.                                               software sequence:

Character Transmission                                  1. An access to the SCISR register

During an SCI transmission, data shifts out least       2. A write to the SCIDR register
significant bit first on the TDO pin. In this mode,
the SCIDR register consists of a buffer (TDR) be-       Note: The TDRE and TC bits are cleared by the
tween the internal bus and the transmit shift regis-    same software sequence.
ter (see Figure 1.).
                                                        Break Characters
Procedure
                                                        Setting the SBK bit loads the shift register with a
Select the M bit to define the word length.           break character. The break frame length depends
                                                        on the M bit (see Figure 2.).
Select the desired baud rate using the SCIBRR
  and the SCIETPR registers.                            As long as the SBK bit is set, the SCI send break
                                                        frames to the TDO pin. After clearing this bit by
Set the TE bit to assign the TDO pin to the alter-    software the SCI insert a logic 1 bit at the end of
  nate function and to send a idle frame as first       the last break frame to guarantee the recognition
  transmission.                                         of the start bit of the next frame.

Access the SCISR register and write the data to       Idle Characters
  send in the SCIDR register (this sequence clears
  the TDRE bit). Repeat this sequence for each          Setting the TE bit drives the SCI to send an idle
  data to be transmitted.                               frame before the first data frame.

Clearing the TDRE bit is always performed by the        Clearing and then setting the TE bit during a trans-
following software sequence:                            mission sends an idle frame after the current word.

1. An access to the SCISR register                      Note: Resetting and setting the TE bit causes the
                                                        data in the TDR register to be lost. Therefore the
2. A write to the SCIDR register                        best time to toggle the TE bit is when the TDRE bit
                                                        is set, that is, before writing the next byte in the
The TDRE bit is set by hardware and it indicates:       SCIDR.

The TDR register is empty.

The data transfer is beginning.

The next data can be written in the SCIDR regis-
  ter without overwriting the previous data.

This flag generates an interrupt if the TIE bit is set
and the I bit is cleared in the CCR register.

When a transmission is taking place, a write in-
struction to the SCIDR register stores the data in
the TDR register and which is copied in the shift
register at the end of the current transmission.

When no transmission is taking place, a write in-
struction to the SCIDR register places the data di-
rectly in the shift register, the data transmission
starts, and the TDRE bit is immediately set.

106/197
                                                                         ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.4.3 Receiver                                           RDR register as long as the RDRF bit is not
                                                            cleared.
The SCI can receive data words of either 8 or 9
bits. When the M bit is set, word length is 9 bits          When an overrun error occurs:
and the MSB is stored in the R8 bit in the SCICR1
register.                                                    The OR bit is set.

Character reception                                          The RDR content is not lost.

During a SCI reception, data shifts in least signifi-       The shift register is overwritten.
cant bit first through the RDI pin. In this mode, the
SCIDR register consists or a buffer (RDR) be-                An interrupt is generated if the RIE bit is set and
tween the internal bus and the received shift regis-          the I bit is cleared in the CCR register.
ter (see Figure 1.).
                                                            The OR bit is reset by an access to the SCISR reg-
                                                            ister followed by a SCIDR register read operation.

Procedure                                                   Noise Error

Select the M bit to define the word length.               Oversampling techniques are used for data recov-
                                                            ery by discriminating between valid incoming data
Select the desired baud rate using the SCIBRR             and noise. Normal data bits are considered valid if
  and the SCIERPR registers.                                three consecutive samples (8th, 9th, 10th) have
                                                            the same bit value, otherwise the NF flag is set. In
Set the RE bit, this enables the receiver which           the case of start bit detection, the NF flag is set on
  begins searching for a start bit.                         the basis of an algorithm combining both valid
                                                            edge detection and three samples (8th, 9th, 10th).
When a character is received:                               Therefore, to prevent the NF flag getting set during
                                                            start bit reception, there should be a valid edge de-
The RDRF bit is set. It indicates that the content        tection as well as three valid samples.
  of the shift register is transferred to the RDR.
                                                            When noise is detected in a frame:
An interrupt is generated if the RIE bit is set and
  the I bit is cleared in the CCR register.                  The NF flag is set at the rising edge of the RDRF
                                                              bit.
The error flags can be set if a frame error, noise
  or an overrun error has been detected during re-          Data is transferred from the Shift register to the
  ception.                                                    SCIDR register.

Clearing the RDRF bit is performed by the following          No interrupt is generated. However this bit rises
software sequence done by:                                    at the same time as the RDRF bit which itself
                                                              generates an interrupt.
1. An access to the SCISR register
                                                            The NF flag is reset by a SCISR register read op-
2. A read to the SCIDR register.                            eration followed by a SCIDR register read opera-
                                                            tion.
The RDRF bit must be cleared before the end of the
reception of the next character to avoid an overrun         During reception, if a false start bit is detected (e.g.
error.                                                      8th, 9th, 10th samples are 011,101,110), the
                                                            frame is discarded and the receiving sequence is
Break Character                                             not started for this frame. There is no RDRF bit set
                                                            for this frame and the NF flag is set internally (not
When a break character is received, the SCI han-            accessible to the user). This NF flag is accessible
dles it as a framing error.                                 along with the RDRF bit when a next valid frame is
                                                            received.
Idle Character
                                                            Note: If the application Start Bit is not long enough
When a idle frame is detected, there is the same            to match the above requirements, then the NF
procedure as a data received character plus an in-          Flag may get set due to the short Start Bit. In this
terrupt if the ILIE bit is set and the I bit is cleared in  case, the NF flag may be ignored by the applica-
the CCR register.                                           tion software when the first valid byte is received.

Overrun Error                                               See also Section 0.1.4.10 .

An overrun error occurs when a character is re-
ceived when RDRF has not been reset. Data can
not be transferred from the shift register to the

                                                                         107/197
ST72325xx                                                                                           TRANSMITTER
                                                                                                         CLOCK
SERIAL COMMUNICATIONS INTERFACE (Cont'd)
Figure 65. SCI Baud Rate and Extended Prescaler Block Diagram                                      RECEIVER
                                                                                                     CLOCK
                                          EXTENDED PRESCALER TRANSMITTER RATE CONTROL

                                                                                          SCIETPR

                                      EXTENDED TRANSMITTER PRESCALER REGISTER

                                                                                          SCIERPR

                                         EXTENDED RECEIVER PRESCALER REGISTER

                                          EXTENDED PRESCALER RECEIVER RATE CONTROL
                                                                EXTENDED PRESCALER

fCPU                                     TRANSMITTER RATE
        /16                                 CONTROL

             /PR

                                                               SCIBRR

                             SCP1SCP0 SCT2 SCT1 SCT0 SCR2 SCR1SCR0

                                              RECEIVER RATE
                                                   CONTROL

             CONVENTIONAL BAUD RATE GENERATOR

108/197
                                                                              ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

Framing Error                                          Note: the extended prescaler is activated by set-
                                                       ting the SCIETPR or SCIERPR register to a value
A framing error is detected when:                      other than zero. The baud rates are calculated as
                                                       follows:
The stop bit is not recognized on reception at the
  expected time, following either a de-synchroni-      Tx =  fCPU       Rx =  fCPU
  zation or excessive noise.
                                                       16*ETPR*(PR*TR)  16*ERPR*(PR*RR)
A break is received.

When the framing error is detected:

the FE bit is set by hardware                        with:

Data is transferred from the Shift register to the   ETPR = 1,..,255 (see SCIETPR register)
  SCIDR register.
                                                       ERPR = 1,.. 255 (see SCIERPR register)
No interrupt is generated. However this bit rises
  at the same time as the RDRF bit which itself        10.6.4.6 Receiver Muting and Wake-up Feature
  generates an interrupt.
                                                       In multiprocessor configurations it is often desira-
The FE bit is reset by a SCISR register read oper-     ble that only the intended message recipient
ation followed by a SCIDR register read operation.     should actively receive the full message contents,
                                                       thus reducing redundant SCI service overhead for
10.6.4.4 Conventional Baud Rate Generation             all non addressed receivers.

The baud rate for the receiver and transmitter (Rx     The non addressed devices may be placed in
and Tx) are set independently and calculated as        sleep mode by means of the muting function.
follows:
                                                       Setting the RWU bit by software puts the SCI in
         fCPU        Rx = fCPU                         sleep mode:
Tx =                       (16*PR)*RR
                                                       All the reception status bits can not be set.
      (16*PR)*TR
                                                       All the receive interrupts are inhibited.
with:
                                                       A muted receiver may be awakened by one of the
PR = 1, 3, 4 or 13 (see SCP[1:0] bits)                 following two ways:

TR = 1, 2, 4, 8, 16, 32, 64,128                         by Idle Line detection if the WAKE bit is reset,

(see SCT[2:0] bits)                                     by Address Mark detection if the WAKE bit is set.

RR = 1, 2, 4, 8, 16, 32, 64,128                        Receiver wakes-up by Idle Line detection when
                                                       the Receive line has recognized an Idle Frame.
(see SCR[2:0] bits)                                    Then the RWU bit is reset by hardware but the
                                                       IDLE bit is not set.
All these bits are in the SCIBRR register.
                                                       Receiver wakes-up by Address Mark detection
Example: If fCPU is 8 MHz (normal mode) and if         when it received a "1" as the most significant bit of
PR = 13 and TR = RR = 1, the transmit and re-          a word, thus indicating that the message is an ad-
ceive baud rates are 38400 baud.                       dress. The reception of this particular word wakes
                                                       up the receiver, resets the RWU bit and sets the
Note: The baud rate registers MUST NOT be              RDRF bit, which allows the receiver to receive this
changed while the transmitter or the receiver is en-   word normally and to use it as an address word.
abled.

10.6.4.5 Extended Baud Rate Generation

The extended prescaler option gives a very fine        CAUTION: In Mute mode, do not write to the
tuning on the baud rate, using a 255 value prescal-    SCICR2 register. If the SCI is in Mute mode during
er, whereas the conventional Baud Rate Genera-         the read operation (RWU = 1) and a address mark
tor retains industry standard software compatibili-    wake up event occurs (RWU is reset) before the
ty.                                                    write operation, the RWU bit is set again by this
                                                       write operation. Consequently the address byte is
The extended baud rate generator block diagram         lost and the SCI is not woken up from Mute mode.
is described in the Figure 3.

The output clock rate sent to the transmitter or to
the receiver is the output from the 16 divider divid-
ed by a factor ranging from 1 to 255 set in the SCI-
ERPR or the SCIETPR register.

                                                                                    109/197
ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.4.7 Parity Control                                even number of "1s" if even parity is selected
                                                       (PS = 0) or an odd number of "1s" if odd parity is
Parity control (generation of parity bit in transmis-  selected (PS = 1). If the parity check fails, the PE
sion and parity checking in reception) can be ena-     flag is set in the SCISR register and an interrupt is
bled by setting the PCE bit in the SCICR1 register.    generated if PIE is set in the SCICR1 register.
Depending on the frame length defined by the M
bit, the possible SCI frame formats are as listed in   10.6.4.8 SCI Clock Tolerance
Table 1.
                                                       During reception, each bit is sampled 16 times.
Table 22. Frame Formats                                The majority of the 8th, 9th and 10th samples is
                                                       considered as the bit value. For a valid bit detec-
M bit PCE bit            SCI frame                     tion, all the three samples should have the same
                                                       value otherwise the noise flag (NF) is set. For ex-
0          0     | SB | 8 bit data | STB |             ample: If the 8th, 9th and 10th samples are 0, 1
                                                       and 1 respectively, then the bit value is "1", but the
0          1     | SB | 7-bit data | PB | STB |        Noise Flag bit is set because the three samples
                                                       values are not the same.
1          0     | SB | 9-bit data | STB |
                                                       Consequently, the bit length must be long enough
1          1     | SB | 8-bit data PB | STB |          so that the 8th, 9th and 10th samples have the de-
                                                       sired bit value. This means the clock frequency
Legend: SB = Start Bit, STB = Stop Bit,                should not vary more than 6/16 (37.5%) within one
                                                       bit. The sampling clock is resynchronized at each
PB = Parity Bit                                        start bit, so that when receiving 10 bits (one start
                                                       bit, 1 data byte, 1 stop bit), the clock deviation
Note: In case of wake up by an address mark, the       must not exceed 3.75%.
MSB bit of the data is taken into account and not
the parity bit                                         Note: The internal sampling clock of the microcon-
                                                       troller samples the pin value on every falling edge.
Even parity: the parity bit is calculated to obtain    Therefore, the internal sampling clock and the time
an even number of "1s" inside the frame made of        the application expects the sampling to take place
the 7 or 8 LSB bits (depending on whether M is         may be out of sync. For example: If the baud rate
equal to 0 or 1) and the parity bit.                   is 15.625 Kbaud (bit length is 64s), then the 8th,
                                                       9th and 10th samples are at 28s, 32s and 36s
Example: data = 00110101; 4 bits set => parity bit     respectively (the first sample starting ideally at
is 0 if even parity is selected (PS bit = 0).          0s). But if the falling edge of the internal clock oc-
                                                       curs just before the pin value changes, the sam-
Odd parity: the parity bit is calculated to obtain an  ples would then be out of sync by ~4us. This
odd number of "1s" inside the frame made of the 7      means the entire bit length must be at least 40s
or 8 LSB bits (depending on whether M is equal to      (36s for the 10th sample + 4s for synchroniza-
0 or 1) and the parity bit.                            tion with the internal sampling clock).

Example: data = 00110101; 4 bits set => parity bit
is 1 if odd parity is selected (PS bit = 1).

Transmission mode: If the PCE bit is set then the
MSB bit of the data written in the data register is
not transmitted but is changed by the parity bit.

Reception mode: If the PCE bit is set then the in-
terface checks if the received data byte has an

110/197
                                                                                   ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.4.9 Clock Deviation Causes                      10.6.4.10 Noise Error Causes

The causes which contribute to the total deviation See also description of Noise error in Section

are:                                                 0.1.4.3 .

DTRA: Deviation due to transmitter error (Local    Start bit
  oscillator error of the transmitter or the trans-
  mitter is transmitting at a different baud rate).  The noise flag (NF) is set during start bit reception
                                                     if one of the following conditions occurs:
DQUANT: Error due to the baud rate quantiza-
  tion of the receiver.                              1. A valid falling edge is not detected. A falling
                                                        edge is considered to be valid if the 3 consecu-
DREC: Deviation of the local oscillator of the        tive samples before the falling edge occurs are
  receiver: This deviation can occur during the         detected as '1' and, after the falling edge
  reception of one complete SCI message as-             occurs, during the sampling of the 16 samples,
  suming that the deviation has been compen-            if one of the samples numbered 3, 5 or 7 is
  sated at the beginning of the message.                detected as a "1".

    DTCL: Deviation due to the transmission line    2. During sampling of the 16 samples, if one of the
     (generally due to the transceivers)                samples numbered 8, 9 or 10 is detected as a
                                                        "1".
All the deviations of the system should be added
and compared to the SCI clock tolerance:             Therefore, a valid Start Bit must satisfy both the
                                                     above conditions to prevent the Noise Flag getting
DTRA + DQUANT + DREC + DTCL < 3.75%                  set.

                                                     Data Bits

                                                     The noise flag (NF) is set during normal data bit re-
                                                     ception if the following condition occurs:

                                                      During the sampling of 16 samples, if all three
                                                       samples numbered 8, 9 and10 are not the same.
                                                       The majority of the 8th, 9th and 10th samples is
                                                       considered as the bit value.

                                                     Therefore, a valid Data Bit must have samples 8, 9
                                                     and 10 at the same value to prevent the Noise
                                                     Flag getting set.

Figure 66. Bit Sampling in Reception Mode

RDI LINE                                                     sampled values
          1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Sample
  clock

                                                                6/16

          7/16                                                  7/16

                                           One bit time

                                                                                   111/197
ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.5 Low Power Modes                                 10.6.6 Interrupts

Mode                         Description               The SCI interrupt events are connected to the
WAIT     No effect on SCI.                             same interrupt vector.

HALT     SCI interrupts cause the device to exit from  These events generate an interrupt if the corre-
         Wait mode.                                    sponding Enable Control Bit is set and the inter-
         SCI registers are frozen.                     rupt mask in the CC register is reset (RIM instruc-
                                                       tion).
         In Halt mode, the SCI stops transmitting/re-
         ceiving until Halt mode is exited.                                    Event  Enable   Exit  Exit
                                                                                Flag  Control  from  from
                                                       Interrupt Event                         Wait  Halt
                                                                                         Bit

                                                       Transmit Data Register  TDRE   TIE      Yes   No
                                                       Empty

                                                       Transmission Com-       TC TCIE Yes No
                                                       plete

                                                       Received Data Ready     RDRF            Yes No
                                                       to be Read
                                                                                      RIE
                                                       Overrun Error Detect-
                                                       ed                      OR              Yes No

                                                       Idle Line Detected      IDLE ILIE Yes No

                                                       Parity Error            PE PIE Yes No

112/197
                                                        ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

10.6.7 Register Description                             Note: The IDLE bit is not set again until the RDRF
                                                        bit has been set itself (that is, a new idle line oc-
STATUS REGISTER (SCISR)                                 curs).
Read Only
Reset Value: 1100 0000 (C0h)

7                             0                         Bit 3 = OR Overrun error.
                                                        This bit is set by hardware when the word currently
TDRE TC RDRF IDLE OR NF FE PE                           being received in the shift register is ready to be
                                                        transferred into the RDR register while RDRF = 1.
Bit 7 = TDRE Transmit data register empty.              An interrupt is generated if RIE = 1 in the SCICR2
This bit is set by hardware when the content of the     register. It is cleared by a software sequence (an
TDR register has been transferred into the shift        access to the SCISR register followed by a read to
register. An interrupt is generated if the TIE bit = 1  the SCIDR register).
in the SCICR2 register. It is cleared by a software     0: No Overrun error
sequence (an access to the SCISR register fol-          1: Overrun error is detected
lowed by a write to the SCIDR register).
0: Data is not transferred to the shift register        Note: When this bit is set RDR register content is
1: Data is transferred to the shift register            not lost but the shift register is overwritten.

Note: Data is not transferred to the shift register     Bit 2 = NF Noise flag.
unless the TDRE bit is cleared.                         This bit is set by hardware when noise is detected
                                                        on a received frame. It is cleared by a software se-
Bit 6 = TC Transmission complete.                       quence (an access to the SCISR register followed
This bit is set by hardware when transmission of a      by a read to the SCIDR register).
frame containing Data is complete. An interrupt is      0: No noise is detected
generated if TCIE = 1 in the SCICR2 register. It is     1: Noise is detected
cleared by a software sequence (an access to the
SCISR register followed by a write to the SCIDR         Note: This bit does not generate interrupt as it ap-
register).                                              pears at the same time as the RDRF bit which it-
0: Transmission is not complete                         self generates an interrupt.
1: Transmission is complete
                                                        Bit 1 = FE Framing error.
Note: TC is not set after the transmission of a Pre-    This bit is set by hardware when a de-synchroniza-
amble or a Break.                                       tion, excessive noise or a break character is de-
                                                        tected. It is cleared by a software sequence (an
Bit 5 = RDRF Received data ready flag.                  access to the SCISR register followed by a read to
This bit is set by hardware when the content of the     the SCIDR register).
RDR register has been transferred to the SCIDR          0: No Framing error is detected
register. An interrupt is generated if RIE = 1 in the   1: Framing error or break character is detected
SCICR2 register. It is cleared by a software se-
quence (an access to the SCISR register followed        Note: This bit does not generate interrupt as it ap-
by a read to the SCIDR register).                       pears at the same time as the RDRF bit which it-
0: Data is not received                                 self generates an interrupt. If the word currently
1: Received data is ready to be read                    being transferred causes both frame error and
                                                        overrun error, it will be transferred and only the OR
                                                        bit will be set.

Bit 4 = IDLE Idle line detect.                          Bit 0 = PE Parity error.
This bit is set by hardware when a Idle Line is de-     This bit is set by hardware when a parity error oc-
tected. An interrupt is generated if the ILIE = 1 in    curs in receiver mode. It is cleared by a software
the SCICR2 register. It is cleared by a software se-    sequence (a read to the status register followed by
quence (an access to the SCISR register followed        an access to the SCIDR data register). An inter-
by a read to the SCIDR register).                       rupt is generated if PIE = 1 in the SCICR1 register.
0: No Idle Line is detected                             0: No parity error
1: Idle Line is detected                                1: Parity error

                                                        113/197
ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

CONTROL REGISTER 1 (SCICR1)

Read/Write                                              Bit 3 = WAKE Wake-Up method.
Reset Value: x000 0000 (x0h)
                                                        This bit determines the SCI Wake-Up method, it is
   7
                                                        set or cleared by software.

                              0                         0: Idle Line

                                                        1: Address Mark

R8 T8 SCID M WAKE PCE PS PIE

Bit 7 = R8 Receive data bit 8.                          Bit 2 = PCE Parity control enable.
This bit is used to store the 9th bit of the received   This bit selects the hardware parity control (gener-
word when M = 1.                                        ation and detection). When the parity control is en-
                                                        abled, the computed parity is inserted at the MSB
Bit 6 = T8 Transmit data bit 8.                         position (9th bit if M = 1; 8th bit if M = 0) and parity
This bit is used to store the 9th bit of the transmit-  is checked on the received data. This bit is set and
ted word when M = 1.                                    cleared by software. Once it is set, PCE is active
                                                        after the current byte (in reception and in transmis-
Bit 5 = SCID Disabled for low power consumption         sion).
When this bit is set the SCI prescalers and outputs     0: Parity control disabled
are stopped and the end of the current byte trans-      1: Parity control enabled
fer in order to reduce power consumption.This bit
is set and cleared by software.                         Bit 1 = PS Parity selection.
0: SCI enabled                                          This bit selects the odd or even parity when the
1: SCI prescaler and outputs disabled                   parity generation/detection is enabled (PCE bit
                                                        set). It is set and cleared by software. The parity is
Bit 4 = M Word length.                                  selected after the current byte.
This bit determines the word length. It is set or       0: Even parity
cleared by software.                                    1: Odd parity
0: 1 Start bit, 8 Data bits, 1 Stop bit
1: 1 Start bit, 9 Data bits, 1 Stop bit                 Bit 0 = PIE Parity interrupt enable.
                                                        This bit enables the interrupt capability of the hard-
Note: The M bit must not be modified during a data      ware parity control when a parity error is detected
transfer (both transmission and reception).             (PE bit set). It is set and cleared by software.
                                                        0: Parity error interrupt disabled
                                                        1: Parity error interrupt enabled.

114/197
                                                           ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

CONTROL REGISTER 2 (SCICR2)                        Notes:

Read/Write                                          During transmission, a "0" pulse on the TE bit
Reset Value: 0000 0000 (00h)                         ("0" followed by "1") sends a preamble (idle line)
                                                     after the current word.
7                                          0
                                                    When TE is set there is a 1 bit-time delay before
TIE TCIE RIE ILIE TE RE RWU SBK                      the transmission starts.

Bit 7 = TIE Transmitter interrupt enable.          CAUTION: The TDO pin is free for general pur-
This bit is set and cleared by software.           pose I/O only when the TE and RE bits are both
0: Interrupt is inhibited                          cleared (or if TE is never set).
1: An SCI interrupt is generated whenever
                                                   Bit 2 = RE Receiver enable.
   TDRE=1 in the SCISR register                    This bit enables the receiver. It is set and cleared
                                                   by software.
Bit 6 = TCIE Transmission complete interrupt ena-  0: Receiver is disabled
ble                                                1: Receiver is enabled and begins searching for a
This bit is set and cleared by software.
0: Interrupt is inhibited                             start bit
1: An SCI interrupt is generated whenever TC=1 in
                                                   Bit 1 = RWU Receiver wake-up.
   the SCISR register                              This bit determines if the SCI is in mute mode or
                                                   not. It is set and cleared by software and can be
Bit 5 = RIE Receiver interrupt enable.             cleared by hardware when a wake-up sequence is
This bit is set and cleared by software.           recognized.
0: Interrupt is inhibited                          0: Receiver in Active mode
1: An SCI interrupt is generated whenever OR=1     1: Receiver in Mute mode

   or RDRF=1 in the SCISR register                 Note: Before selecting Mute mode (setting the
                                                   RWU bit), the SCI must receive some data first,
Bit 4 = ILIE Idle line interrupt enable.           otherwise it cannot function in Mute mode with
This bit is set and cleared by software.           wake-up by idle line detection.
0: Interrupt is inhibited
1: An SCI interrupt is generated whenever IDLE=1   Bit 0 = SBK Send break.
                                                   This bit set is used to send break characters. It is
   in the SCISR register.                          set and cleared by software.
                                                   0: No break character is transmitted
Bit 3 = TE Transmitter enable.                     1: Break characters are transmitted
This bit enables the transmitter. It is set and
cleared by software.                               Note: If the SBK bit is set to "1" and then to "0", the
0: Transmitter is disabled                         transmitter sends a BREAK word at the end of the
1: Transmitter is enabled                          current word.

                                                           115/197
ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

DATA REGISTER (SCIDR)                                 Bits 5:3 = SCT[2:0] SCI Transmitter rate divisor
                                                      These 3 bits, in conjunction with the SCP1 & SCP0
Read/Write                                            bits define the total division applied to the bus
                                                      clock to yield the transmit rate clock in convention-
Reset Value: Undefined                                al Baud Rate Generator mode.

Contains the Received or Transmitted data char-       TR dividing factor  SCT2  SCT1  SCT0
acter, depending on whether it is read from or writ-              1          0     0     0
ten to.                                                           2          0     0     1

7                              0

DR7 DR6 DR5 DR4 DR3 DR2 DR1 DR0                       4                   0     1     0

                                                      8                   0     1     1

The Data register performs a double function (read    16                  1     0     0
and write) since it is composed of two registers,
one for transmission (TDR) and one for reception      32                  1     0     1
(RDR).
The TDR register provides the parallel interface      64                  1     1     0
between the internal bus and the output shift reg-
ister (see Figure 1.).                                128                 1     1     1
The RDR register provides the parallel interface
between the input shift register and the internal     Bits 2:0 = SCR[2:0] SCI Receiver rate divisor.
bus (see Figure 1.).                                  These 3 bits, in conjunction with the SCP[1:0] bits
                                                      define the total division applied to the bus clock to
                                                      yield the receive rate clock in conventional Baud
                                                      Rate Generator mode.

BAUD RATE REGISTER (SCIBRR)                           RR Dividing factor  SCR2  SCR1  SCR0
Read/Write                                                        1          0     0     0
Reset Value: 0000 0000 (00h)                                      2          0     0     1
                                                                  4          0     1     0
7                              0                                  8          0     1     1
                                                                 16          1     0     0
SCP1 SCP0 SCT2 SCT1 SCT0 SCR2 SCR1 SCR0                          32          1     0     1
                                                                 64          1     1     0
Bits 7:6 = SCP[1:0] First SCI Prescaler                                      1     1     1
These 2 prescaling bits allow several standard                  128
clock division ranges:

   PR Prescaling factor  SCP1  SCP0
                 1          0     0
                 3          0     1
                 4          1     0
                13          1     1

116/197
                                                                                                         ST72325xx

SERIAL COMMUNICATIONS INTERFACE (Cont'd)

EXTENDED RECEIVE PRESCALER DIVISION EXTENDED TRANSMIT PRESCALER DIVISION

REGISTER (SCIERPR)                                             REGISTER (SCIETPR)

Read/Write                                                     Read/Write

Reset Value: 0000 0000 (00h)                                   Reset Value:0000 0000 (00h)

Allows setting of the Extended Prescaler rate divi- Allows setting of the External Prescaler rate divi-

sion factor for the receive circuit.                           sion factor for the transmit circuit.

7                                                 0            7                                               0

ERPR ERPR ERPR ERPR ERPR ERPR ERPR ERPR                        ETPR ETPR ETPR ETPR ETPR ETPR ETPR ETPR

7       6   5  4          3           2        1  0            7   6       5          4  3            2  1     0

Bits 7:0 = ERPR[7:0] 8-bit Extended Receive                    Bits 7:0 = ETPR[7:0] 8-bit Extended Transmit
Prescaler Register.                                            Prescaler Register.

The extended Baud Rate Generator is activated                  The extended Baud Rate Generator is activated
when a value different from 00h is stored in this              when a value different from 00h is stored in this
register. Therefore the clock frequency issued                 register. Therefore the clock frequency issued
from the 16 divider (see Figure 3.) is divided by the          from the 16 divider (see Figure 3.) is divided by the
binary factor set in the SCIERPR register (in the              binary factor set in the SCIETPR register (in the
range 1 to 255).                                               range 1 to 255).

The extended baud rate generator is not used af-               The extended baud rate generator is not used af-
ter a reset.                                                   ter a reset.

Table 23. Baudrate Selection

                                                       Conditions                                        Baud
                                                                                                         Rate
Symbol         Parameter                 fCPU     Accuracy vs      Prescaler             Standard              Unit
                                                    Standard

                                                               Conventional Mode

                                                               TR (or RR)=128, PR=13        300 ~300.48
                                                                                          1200 ~1201.92
                                                               TR (or RR)= 32, PR=13      2400 ~2403.84
                                                                                          4800 ~4807.69
                                                               TR (or RR)= 16, PR=13      9600 ~9615.38
                                                                                         10400 ~10416.67 Hz
                                                  ~0.16% TR (or RR)= 8, PR=13            19200 ~19230.77
                                                                                         38400 ~38461.54
fTx     Communication frequency 8 MHz                          TR (or RR)= 4, PR=13
                                                               TR (or RR)= 16, PR= 3     14400 ~14285.71
fRx                                                            TR (or RR)= 2, PR=13

                                                               TR (or RR)= 1, PR=13

                                                  ~0.79%       Extended Mode
                                                               ETPR (or ERPR) = 35,
                                                               TR (or RR)= 1, PR=1

                                                                                                               117/197
ST72325xx

SERIAL COMMUNICATION INTERFACE (Cont'd)

Table 24. SCI Register Map and Reset Values

Address    Register     7     6     5           4      3    2      1     0
(Hex.)      Label
  0050h               TDRE   TC   RDRF       IDLE    OVR   NF     FE    PE
  0051h  SCISR           1     1     0          0      0    0      0     0
  0052h  Reset Value                                                   LSB
  0053h  SCIDR        MSB      x     x          x      x    x      x     x
  0054h  Reset Value     x  SCP0  SCT2       SCT1   SCT0  SCR2  SCR1  SCR0
  0055h  SCIBRR                                                          0
  0057h  Reset Value  SCP1     0     0