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

产品描述

搜索
 

ST7PMC2M9B6

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

器件描述

8-BIT, FLASH, 8 MHz, MICROCONTROLLER, PQFP32

8位, FLASH, 8 MHz, 单片机, PQFP32

参数
ST7PMC2M9B6功能数量 1
ST7PMC2M9B6端子数量 32
ST7PMC2M9B6最大工作温度 85 Cel
ST7PMC2M9B6最小工作温度 -40 Cel
ST7PMC2M9B6最大供电/工作电压 5.5 V
ST7PMC2M9B6最小供电/工作电压 3.8 V
ST7PMC2M9B6额定供电电压 5 V
ST7PMC2M9B6外部数据总线宽度 0.0
ST7PMC2M9B6输入输出总线数量 17
ST7PMC2M9B6线速度 8 MHz
ST7PMC2M9B6加工封装描述 7 × 7 MM, LQFP-32
ST7PMC2M9B6无铅 Yes
ST7PMC2M9B6欧盟RoHS规范 Yes
ST7PMC2M9B6状态 ACTIVE
ST7PMC2M9B6包装形状 SQUARE
ST7PMC2M9B6包装尺寸 FLATPACK, 低 PROFILE
ST7PMC2M9B6表面贴装 Yes
ST7PMC2M9B6端子形式 GULL WING
ST7PMC2M9B6端子间距 0.8000 mm
ST7PMC2M9B6端子涂层
ST7PMC2M9B6端子位置
ST7PMC2M9B6包装材料 塑料/环氧树脂
ST7PMC2M9B6温度等级 INDUSTRIAL
ST7PMC2M9B6ADC通道 Yes
ST7PMC2M9B6地址总线宽度 0.0
ST7PMC2M9B6位数 8
ST7PMC2M9B6最大FCLK时钟频率 16 MHz
ST7PMC2M9B6微处理器类型 单片机
ST7PMC2M9B6PWM通道 Yes
ST7PMC2M9B6ROM编程 FLASH

文档预览

ST7PMC2M9B6器件文档内容

                                               ST7MC1xx/ST7MC2xx

                      8-bit MCU with nested interrupts, Flash, 10-bit ADC,
                        brushless motor control, five timers, SPI, LINSCITM

Features

Memories                                                               LQFP80 LQFP64             LQFP44 LQFP32 7x 7
    8K to 60K dual voltage Flash Program memo-                         14 x 14 14 x 14           10 x 10
     ry or ROM with read-out protection capability,
     In-application programming and In-circuit pro-
     gramming.
    384 to 1.5K RAM

    HDFlash endurance: 100 cycles, data reten-                        event detector
     tion: 40 years at 85C
                                                                   2 Communication interfaces
Clock, reset and supply management                                  SPI synchronous serial interface
    Enhanced reset system                                           LINSCITM asynchronous serial interface
    Enhanced low voltage supervisor (LVD) for
     main supply and auxiliary voltage detector                    Brushless motor control peripheral
     (AVD) with interrupt capability                                  6 high sink PWM output channels for sine-
    Clock sources: crystal/ceramic resonator os-                      wave or trapezoidal inverter control
     cillators and by-pass for external clock, clock                  Motor safety including asynchronous emer-
     security system.                                                  gency stop and write-once registers
    Four power saving modes: Halt, Active-halt,                      4 analog inputs for rotor position detection
     Wait and Slow                                                     (sensorless/hall/tacho/encoder)
                                                                      Permanent magnet motor coprocessor includ-
Interrupt management                                                  ing multiplier, programmable filters, blanking
    Nested interrupt controller                                       windows and event counters
    14 interrupt vectors plus TRAP and RESET                         Operational amplifier and comparator for cur-
    MCES top level interrupt pin                                      rent/voltage mode regulation and limitation
    16 external interrupt lines (on 3 vectors)

Up to 60 I/O ports                                                Analog peripheral
    up to 60 multifunctional bidirectional I/O lines                10-bit ADC with 16 input pins

up to 41 alternate function lines                                In-circuit Debug

    up to 12 high sink outputs                                    Instruction set
5 timers                                                             8-bit data manipulation
                                                                      63 basic instructions with illegal opcode de-
    Main clock controller with: Real-time base,                       tection
     Beep and clock-out capabilities                                  17 main Addressing modes
                                                                      8 x 8 unsigned multiply instruction
    Configurable window watchdog timer                               True bit manipulation
    Two 16-bit timers with: 2 input captures, 2 out-
                                                                   Development tools
     put compares, external clock input, PWM and                      Full hardware/software development package
     pulse generator modes
    8-bit PWM Auto-reload timer with: 2 input cap-
     tures, 4 PWM outputs, output compare and
     time base interrupt, external clock with
Table 1. Device summary

Features                ST7MC1K2 / ST7MC1K4            ST7MC2N6 1)/ ST7MC2S4 / ST7MC2S6 / ST7MC2S7 / ST7MC2S9
                                                               / ST7MC2R6 / ST7MC2R7 / ST7MC2R9 / ST7MC2M9

Program memory - bytes  8K                   16K       16K              32K                  48K               60K
RAM (stack) - bytes
                        384 (256)            768 (256) 768 (256)        1024 (256)                   1536 (256)
Peripherals
                                      Watchdog, 16-bit Timer A, LINSCITM, 10-bit ADC, MTC, 8-bit PWM ART, ICD

                                   -                                         SPI, 16-bit Timer B

Operating                                                         4.5 to 5.5V with fCPU8MHz
Supply vs. Frequency
                         -40C to +85C      -40C to  -40C to +85C               -40C to +85 C                 -40C to
Temperature Range       /-40C to +125C      +85C    -40C to +125C                                              +125C

Package                      LQFP32          LQFP32    LQFP44           SDIP561)/LQFP64 LQFP64/44 LQFP80/64         LQFP44

Note 1: For development only. No production

April 2009                                             Rev 13                                                       1/309

                                                                                                                        1
                               Table of Contents

1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 PIN DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 REGISTER & MEMORY MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 FLASH PROGRAM MEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    4.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    4.2 MAIN FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    4.3 STRUCTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    4.4 ICC INTERFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
    4.5 ICP (IN-CIRCUIT PROGRAMMING) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
    4.6 IAP (IN-APPLICATION PROGRAMMING) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
    4.7 RELATED DOCUMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
    4.8 REGISTER DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5 CENTRAL PROCESSING UNIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
    5.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
    5.2 MAIN FEATURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
    5.3 CPU REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 SUPPLY, RESET AND CLOCK MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
    6.1 OSCILLATOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
    6.2 RESET SEQUENCE MANAGER (RSM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
    6.3 SYSTEM INTEGRITY MANAGEMENT (SI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
    6.4 MAIN CLOCK CONTROLLER WITH REAL-TIME CLOCK AND BEEPER (MCC/RTC) . 37
7 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
    7.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
    7.2 MASKING AND PROCESSING FLOW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
    7.3 INTERRUPTS AND LOW POWER MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
    7.4 CONCURRENT & NESTED MANAGEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
    7.5 INTERRUPT REGISTER DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
    7.6 EXTERNAL INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
    7.7 EXTERNAL INTERRUPT CONTROL REGISTER (EICR) . . . . . . . . . . . . . . . . . . . . . . . 47
8 POWER SAVING MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
    8.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
    8.2 SLOW MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
    8.3 WAIT MODE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
    8.4 ACTIVE-HALT AND HALT MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
9 I/O PORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
    9.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
    9.2 FUNCTIONAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
    9.3 I/O PORT IMPLEMENTATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
    9.4 LOW POWER MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
    9.5 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. 0. 9. . 57
10 ON-CHIP PERIPHERALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
    10.1 WINDOW WATCHDOG (WWDG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

2/309
                               Table of Contents

    10.2 PWM AUTO-RELOAD TIMER (ART) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
    10.3 16-BIT TIMER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
    10.4 SERIAL PERIPHERAL INTERFACE (SPI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
    10.5 LINSCI SERIAL COMMUNICATION INTERFACE (LIN MASTER/SLAVE) . . . . . . . . . 107
    10.6 MOTOR CONTROLLER (MTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
    10.7 OPERATIONAL AMPLIFIER (OA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
    10.8 10-BIT A/D CONVERTER (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
11 INSTRUCTION SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
    11.1 CPU ADDRESSING MODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
    11.2 INSTRUCTION GROUPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
12 ELECTRICAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
    12.1 PARAMETER CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
    12.2 ABSOLUTE MAXIMUM RATINGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
    12.3 OPERATING CONDITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
    12.4 SUPPLY CURRENT CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
    12.5 CLOCK AND TIMING CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
    12.6 MEMORY CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
    12.7 EMC CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
    12.8 I/O PORT PIN CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
    12.9 CONTROL PIN CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
    12.10 TIMER PERIPHERAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
    12.11 COMMUNICATION INTERFACE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . 271
    12.12 MOTOR CONTROL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
    12.13 OPERATIONAL AMPLIFIER CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
    12.14 10-BIT ADC CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
13 PACKAGE CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
    13.1 PACKAGE MECHANICAL DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
    13.2 THERMAL CHARACTERISTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
    13.3 SOLDERING INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
14 ST7MC DEVICE CONFIGURATION AND ORDERING INFORMATION . . . . . . . . . . . . . . . . 290
    14.1 FLASH OPTION BYTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
    14.2 DEVICE ORDERING INFORMATION AND TRANSFER OF CUSTOMER CODE . . . . 292
    14.3 DEVELOPMENT TOOLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
    14.4 ST7 APPLICATION NOTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
15 IMPORTANT NOTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
    15.1 FLASH/FASTROM DEVICES ONLY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
    15.2 CLEARING ACTIVE INTERRUPTS OUTSIDE INTERRUPT ROUTINE . . . . . . . . . . . . 300
    15.3 TIMD SET SIMULTANEOUSLY WITH OC INTERRUPT . . . . . . . . . . . . . . . . . . . . . . . 300
    15.4 LINSCI LIMITATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
    15.5 MISSING DETECTION OF BLDC "Z EVENT" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
    15.6 INJECTED CURRENT ON PD7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

                                                                                                                                                        3/309
                               Table of Contents

    15.7 RESET VALUE OF UNAVAILABLE PINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
    15.8 MAXIMUM VALUES OF AVD THRESHOLDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
    15.9 EXTERNAL INTERRUPT MISSED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
16 REVISION HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
   To obtain the most recent version of this datasheet,
    please check at www.st.com>products>technical literature>datasheet
    Please also pay special attention to the Section "IMPORTANT NOTES" on page 299.

                                                                                                                                                        4/309

                                                                                                                          1
                                                                                               ST7MC1xx/ST7MC2xx

1 INTRODUCTION                                       The enhanced instruction set and addressing
                                                     modes of the ST7 offer both power and flexibility to
The ST7MCx device is member of the ST7 micro-        software developers, enabling the design of highly
controller family designed for mid-range applica-    efficient and compact application code. In addition
tions with a Motor Control dedicated peripheral.     to standard 8-bit data management, all ST7 micro-
                                                     controllers feature true bit manipulation, 8x8 un-
All devices are based on a common industry-          signed multiplication and indirect addressing
standard 8-bit core, featuring an enhanced instruc-  modes.
tion set and are available with FLASH, ROM or
FASTROM program memory.                              The devices feature an on-chip Debug Module
                                                     (DM) to support in-circuit debugging (ICD). For a
Under software control, all devices can be placed    description of the DM registers, refer to the ST7
in Wait, Slow, Active-halt or Halt mode, reducing    ICC Protocol Reference Manual.
power consumption when the application is in idle
or stand-by state.

Figure 1. Device Block Diagram

RESET                           8-BIT CORE                                       PROGRAM       PH7:0 1)
    VPP                              ALU                                          MEMORY        (8-bits)
                                                                             (8K - 60K Bytes)  PG7:0 1)
    VSS                          CONTROL                                                        (8-bits)
    VDD                                                                              RAM
                                     LVD                                    (384 - 1536Bytes)  PA7:0 1)
OSC1                                AVD                                                       (8-bits)
OSC2                                OSC                                         PORT H 1)
                                   SCI/LIN                                                      PB7:0
                                                     ADDRESS AND DATA BUS        PORT G 1)      (8-bits)
PD7:0                            PORT D
(8-bits)                          TIMER A                                      WATCHDOG        PC7:0
                                10-BIT ADC                                      PWM ART         (8-bits)
VAREF
VSSA                             PORT E1                                         PORT A          MCES
                                 TIMER B1
  PE5:0                                                                            PORT B
(6-bits)                                                                   MTC VOLT INPUT

PF5:0           PORT F1                                                              SPI1
(6-bits)   MCC/RTC/BEEP1
                                                                                  PORT C
                                                                           MOTOR CONTROL

                                                                            DEBUG MODULE

On some devices only, see Table 1, "ST7MC Device Pin Description," on page 12

                                                                                                          5/309

                                                                                                              1
ST7MC1xx/ST7MC2xx

2 PIN DESCRIPTION

Figure 2. 80-Pin LQFP 14x14 Package Pinout

                        80 MCO2 (HS)
                            79 MCO1 (HS)
                                78 MCO0 (HS)
                                    77 VPP/ICCSEL
                                         76 PE5
                                             75 PE4 / EXTCLK_B
                                                 74 PE3 / ICAP1_B
                                                     73 PE2 / ICAP2_B
                                                         72 PE1 / OCMP1_B
                                                              71 PE0 (HS) / OCMP2_B
                                                                  70 PH7
                                                                      69 PH6
                                                                          68 PH5
                                                                               67 PH4
                                                                                  66 VDD_2
                                                                                       65 VSS_2
                                                                                           64 PD7 (HS) / TDO
                                                                                               63 PD6 (HS) / RDI
                                                                                                    62 PD5 / AIN15 / ICCDATA
                                                                                                        61 PD4 /EXTCLK_A / AIN14 / ICCCLK

(HS) MCO3 1                                                                                                                                                                                                                                                                                                        60 PD3 / ICAP1_A / AIN13
                                                                                                                                                                                                                                                                                                         ei0 59 PD2 / ICAP2_A / AIN12
(HS) MCO4 2
                                                                                                                                                                                                                                                                                                                   58 PD1 (HS) / OCMP1_A
(HS) MCO5 3                                                                                                                                                                                                                                                                                                        57 PD0 / OCMP2_A / AIN11
                                                                                                                                                                                                                                                                                                                   56 PH3
MCES 4                                                                                                                                                                                                                                                                                                             55 PH2
                                                                                                                                                                                                                                                                                                                   54 PH1
PG0 5

PG1 6

PG2 7

PG3 8                                                                                                                                                                                                                                                                                                                                    53 PH0

OSC1 9                                                                                                                                                                                                                                                                                                                                   52 PF5 (HS)

OSC2 10                                                                                                                                                                                                                                                                                                                                 51 PF4 (HS)
VSS_1 11
VDD_1 12                                                                                                                                                                                                                                                                                                                                 50 PF3 (HS) / BEEP

PWM3 / PA0 13                                                                                                                                                                                                                                                                                                                            49 PF2 / MCO / AIN10
                                                                                                                                                                                                                                                                                                                                         48 PF1 / MCZEM / AIN9
PWM2 / (HS) PA1 14                                                                                                                                                                                                                                                                                                                       47 PF0 / MCDEM / AIN8

PWM1 / PA2 15                                                                                                                                                                                                                                                                                                                            46 RESET

AIN0 / PWM0 / PA3  16 ei1                                                                                                                                                                                                                                                                                                                45  VDD_0
ARTCLK / (HS) PA4  17
                                                                                                                                                                                                                                                                                                                                         44 VSS_0

AIN1 / ARTIC1 / PA5 18                                                                                                                                                                                                                                                                                                                   43 VSSA

ARTIC2 / PA6 19 ei1                                                                                                        ei2                                                                               ei2                                                                                                                         42 VAREF

AIN2 / PA7 20                                                                                                                                                                                                                                                                                                                            41 PC7 / MCPWMW / AIN7

                        MCVREF / PB0 21  MCIA / PB1 22  MCIB / PB2 23  MCIC / PB3 24  MISO / PB4 25  AIN3 / MOSI / PB5 26  SCK / (HS) PB6 27  AIN4 /SS /(HS) PB7 28  PG4 29  PG5 30  PG6 31     (HS) PC0 33  AIN5 / MCCFI 0/ PC1 34  OAP / PC2 35  OAN / PC3 36  AIN6 / MCCFI 1/ OAZ 37  38              MCPWMU/ PC5 39  MCPWMV/ PC6 40
                                                                                                                                                                                        PG7 32
                                                                                                                                                                                                                                                                                         * MCCREF / PC4

   (HS) 20mA high sink capability
   eix associated external interrupt vector
   * Once the MTC peripheral is ON, the pin PC4 is configured to an alternate function. PC4 is no longer usable as a digital I/O

6/309

1
                                                                                                                                ST7MC1xx/ST7MC2xx

PIN DESCRIPTION (Cont'd)
Figure 3. 64-Pin LQFP 14x14 Package Pinout

                              MCO2 (HS)
                                  MCO1 (HS)
                                      MCO0 (HS)
                                           VPP /ICCSEL
                                               PE5 /
                                                    PE4 / EXTCLK_B
                                                        PE3 / ICAP1_B
                                                             PE2 / ICAP2_B
                                                                 PE1 / OCMP1_B
                                                                      PE0 (HS) / OCMP2_B
                                                                          VDD_2
                                                                               VSS_2
                                                                                   PD7 (HS) / TDO
                                                                                       PD6 (HS) / RDI
                                                                                            PD5 / AIN15 / ICCDATA
                                                                                                PD4 /EXTCLK_A / AIN14 / ICCCLK

            (HS) MCO3         64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49                                                   PD3 / ICAP1_A / AIN13
            (HS) MCO4                                                                                                           PD2 / ICAP2_A / AIN12
            (HS) MCO5      1                     48                                                                             PD1 (HS) / OCMP1_A
                                                                                                                                PD0 / OCMP2_A / AIN11
                   MCES    2                     47                                                                             PF5 (HS)
                    OSC1                                                                                                        PF4 (HS)
                    OSC2   3                               46                                                                   PF3 (HS) / BEEP
                    VSS_1                        ei0                                                                            PF2 / MCO / AIN10
                   VDD_1   4                     45                                                                             PF1 / MCZEM / AIN9
          PWM3 / PA0                                                                                                            PF0 / MCDEM / AIN8
   PWM2 / (HS) PA1         5                     44                                                                             RESET
          PWM1 / PA2                                                                                                            VDD_0
AIN0 / PWM0 / PA3         6                     43                                                                             VSS_0
ARTCLK / (HS) PA4                                                                                                              VSSA
AIN1 / ARTIC1 / PA5        7                     42                                                                             VAREF
         ARTIC2 / PA6                                                                                                           PC7 / MCPWMW / AIN7
             AIN2 / PA7    8                     41

                           9                     40

                           10                    39

                           11                    38

                           12 ei1                37

                           13                    36

                           14                    35

                           15 ei1           ei2  34

                           16                    33

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

                              MCVREF / PB0
                                  MCIA / PB1
                                      MCIB / PB2
                                           MCIC / PB3
                                               MISO / PB4

                                                    AIN3 / MOSI / PB5
                                                        SCK / (HS) PB6

                                                             AIN4 / SS /(HS) PB7
                                                                 (HS) PC0

                                                                      AIN5 / MCCFI0 / PC1
                                                                          OAP / PC2
                                                                              OAN / PC3

                                                                                   AIN6 / MCCFI1 / OAZ
                                                                                       * MCCREF / PC4
                                                                                            MCPWMU / PC5
                                                                                                MCPWMV/ PC6

(HS) 20mA high sink capability
eix associated external interrupt vector
* Once the MTC peripheral is ON, the pin PC4 is configured to an alternate function. PC4 is no longer usable as a digital I/O

                                                                                                                                                       7/309

                                                                                                                                                           1
ST7MC1xx/ST7MC2xx

PIN DESCRIPTION (Cont'd)
Figure 4. 32-Pin SDIP Package Pinouts

                ICCSEL / VPP           1             32  PD7 (HS) / TDO
                          MCO0                           PD6 (HS) / RDI
                          MCO1         2             31  PD5 / AIN15 / ICCDATA
                          MCO2                           PD4 / EXTCLK_A / AIN14 / ICCCLK
                          MCO3         3             30  PD3 / ICAP1_A / AIN13
                          MCO4                           PD2 / ICAP2_A / MCZEM / AIN12
                          MCO5         4             29  PD1 (HS) / OCMP1_A / MCPWMV / MCDEM
                          MCES                           PD0 / OCMP2_A / MCPWMW / AIN11
                           OSC1        5        ei0 28   RESET
                           OSC2                          VDD_0
                                       6             27  VSS_0
        AIN0 / PWM0 / PA3                                VAREF
       AIN1 / ARTIC1 / PA5             7             26  PC4 / MCCREF *
                                                         OAZ / MCCFI1 / AIN6
              MCVREF / PB0             8             25  PC3 / OAN
                   MCIA / PB1                            PC2 / OAP
                   MCIB / PB2          9             24
                   MCIC / PB3
                                       10            23

                                       11            22

                                       12  ei1       21

                                       13            20

                                       14            19

                                       15            18

                                                ei2

                                       16            17

(HS) 20mA high sink capability
eix associated external interrupt vector
* Once the MTC peripheral is ON, the pin PC4 is configured to an alternate function. PC4 is no longer usable as a digital I/O

8/309

1
                                                        ST7MC1xx/ST7MC2xx

PIN DESCRIPTION (Cont'd)
Figure 5. 56-Pin SDIP Package Pinouts

     OCMP1_B / PE1                     1        56      PE0 (HS) / OCMP2_B
       ICAP2_B / PE2                                    VDD_2
       ICAP1_B / PE3                   2        55      VSS_2
          VPP/ICCSEL                                    PD7 (HS) / TDO
            (HS) MCO0                  3        54      PD6 (HS) / RDI
            (HS) MCO1                                   PD5 / AIN15 / ICCDATA
            (HS) MCO2                  4        53      PD4 /EXTCLK_A / AIN14 / ICCCLK
            (HS) MCO3
            (HS) MCO4                  5        52      PD3 / ICAP1_A / AIN13
            (HS) MCO5                                   PD2 / ICAP2_A / AIN12
                   MCES                6        51      PD1 (HS) / OCMP1_A
                   OSC1                                 PD0 / OCMP2_A / AIN11
                   OSC2                7        50      PF3 (HS) / BEEP
                   Vss_1                                PF1 / MCZEM / AIN9
                  Vdd_1                8        ei0 49   PF0 / MCDEM / AIN8
                                                        RESET
   PWM2 / (HS) PA1                     9        48      VDD_0
AIN0 / PWM0 / PA3                                      VSS_0
ARTCLK / (HS) PA4                     10       47      VSSA
AIN1 / ARTIC1 / PA5                                     VAREF
                                       11       46      PC7 / MCPWMW / AIN7
         ARTIC2 / PA6
                                       12       45      PC6 / MCPWMV
       MCVREF / PB0                                     PC5 / MCPWMU
            MCIA / PB1                 13       44
            MCIB / PB2                                   PC4 / MCCREF *
            MCIC / PB3                 14       43       OAZ / MCCFI1 / AIN6
            MISO / PB4                                   PC3 / OAN
                                       15       42       PC2 / OAP
  AIN3 / MOSI / PB5                                      PC1 / MCCFI0/AIN5
      SCK / (HS) PB6                   16       41       PC0(HS)

AIN4 / SS /(HS) PB7                    17 ei1   40

                                       18       39

                                       19  ei1  38

                                       20       37

                                       21       36

                                       22       35

                                       23       34

                                       24       33

                                       25       32

                                       26       ei2 31

                                       27       30
                                       28 ei2
                                                29

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

* Once the MTC peripheral is ON, the pin PC4 is configured to an alternate function. PC4 is no longer usable as a digital I/O

                                                                                                                               9/309

                                                                                                                                   1
ST7MC1xx/ST7MC2xx

PIN DESCRIPTION (Cont'd)
Figure 6. 44-Pin LQFP Package Pinouts

                                       MCO2 (HS)
                                            MCO1 (HS)
                                               MCO0 (HS)

                                                  VPP /ICCSEL

                                                        PE3 / ICAP1_B
                                                             PE2 / ICAP2_B
                                                                 PE1 / OCMP1_B
                                                                      PE0 (HS) / OCMP2_B
                                                                          PD7 (HS) / TDO
                                                                               PD6 (HS) / RDI
                                                                                   PD5 / AIN15 / ICCDATA

                    (HS) MCO3         44 43 42 41 40 39 38 37 36 35 34
                    (HS) MCO4
                    (HS) MCO5      1           33                                                         PD4 /EXTCLK_A / AIN14 / ICCCLK
                                                                                                          PD3 / ICAP1_A / AIN13
                           MCES    2           ei0 32                                                     PD2 / ICAP2_A / MCZEM / AIN12
                            OSC1                                                                          PD1 (HS) / OCMP1_A / MCPWMV/MCDEM
                            OSC2   3           31                                                         PD0 / OCMP2_A / AIN11
                           VSS_1                                                                          RESET
                            VDD_1  4           30                                                         VDD_0
         AIN0 / PWM0 / PA3                                                                                VSS_0
        AIN1 / ARTIC1 / PA5        5           29                                                         VSSA
               MCVREF / PB0                                                                               VAREF
                                   6           28                                                         PC7 / MCPWMW / AIN7

                                   7           27

                                   8           26

                                   9 ei1       25
                                   10
                                          ei2  24

                                   11          23

                                      12 13 14 15 16 17 18 19 20 21 22

                                       MCIA / PB1
                                           MCIB / PB2
                                               MCIC / PB3
                                                    MISO / PB4
                                                        AIN3 / MOSI / PB5
                                                             SCK / (HS) PB6
                                                                 AIN4 / SS /(HS) PB7
                                                                      OAP / PC2
                                                                          OAN / PC3
                                                                               AIN6 / MCCFI1 / OAZ
                                                                                   * MCCREF / PC4
(HS) 20mA high sink capability
eix associated external interrupt vector

* Once the MTC peripheral is ON, the pin PC4 is configured to an alternate function. PC4 is no longer usable as a digital I/O

10/309

1
                                                                                            ST7MC1xx/ST7MC2xx

PIN DESCRIPTION (Cont'd)
Figure 7. 32-Pin LQFP 7x7 Package Pinout

                             MCO2 (HS)
                                 MCO1 (HS)
                                     MCO0 (HS)

                                        VPP /ICCSEL

                                              PD7 (HS) / TDO
                                                  PD6 (HS) / RDI
                                                       PD5 / AIN15 / ICCDATA
                                                            PD4 /EXTCLK_A / AIN14 / ICCCLK

            (HS) MCO3        32 31 30 29 28 27 26 25
            (HS) MCO4
            (HS) MCO5     1                          24                                     PD3 / ICAP1_A / AIN13
                                                                                            PD2 / ICAP2_A / MCZEM / AIN12
                   MCES   2               ei0 23                                            PD1 (HS) / OCMP1_A / MCPWMV / MCDEM
                    OSC1                                                                    PD0 / OCMP2_A / MCPWMW /AIN11
                    OSC2  3                          22                                     RESET
AIN0 / PWM0 / PA3                                                                          VDD_0
AIN1 / ARTIC1 / PA5       4                          21                                     VSS_0
                                                                                            VAREF
                          5                          20

                          6                          19

                          7 ei1           ei2        18
                          8
                                                     17

                             9 10 11 12 13 14 15 16

                             MCVREF / PB0
                                 MCIA / PB1
                                     MCIB / PB2
                                          MCIC / PB3
                                              OAP / PC2
                                                   OAN / PC3

                                                       AIN6 / MCCFI1 / OAZ
                                                            * MCCREF / PC4
(HS) 20mA high sink capability
eix associated external interrupt vector

* Once the MTC peripheral is ON, the pin PC4 is configured to an alternate function. PC4 is no longer usable as a digital I/O

                                                                                                                                 11/309

                                                                                                                                      1
ST7MC1xx/ST7MC2xx

PIN DESCRIPTION (Cont'd)

For external pin connection guidelines, See "ELECTRICAL CHARACTERISTICS" on page 247.

Legend / Abbreviations for Table 1:

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

Input level:     A = Dedicated analog input

In/Output level: CT= CMOS 0.3VDD/0.7VDD with Schmitt trigger
                      TT= Refer to the G&H ports Characteristics in section 12.8.1 on page 264

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

Port and control configuration:

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

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

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

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

Table 1. ST7MC Device Pin Description

        Pin n                               Level         Port                                              Main

LQFP80
     LQFP64
            SDIP56
                  LQFP44
                        SDIP32
                              LQFP32

                                                           Type
                                                                 Input
                                                                        Output
                                                                               float
                                                                                    wpu
                                                                                        int
                                                                                               ana
                                                                                                   OD
                                                                                                         PP
                        Pin Name                       Input 1) Output function                                       Alternate function 2)
                                                                                     (after

                                                                                                             reset)

1 1 8 1 5 1 MCO3 (HS) O                         HS                  X Motor Control Output 3

2 2 9 2 6 2 MCO4 (HS) O                         HS                  X Motor Control Output 4

3 3 10 3 7 3 MCO5 (HS)                 O        HS                  X Motor Control Output 5
4 4 11 4 8 4 MCES3)
5 - - - - - PG0                          I CT       X                                                        MTC Emergency Stop
6 - - - - - PG1                        I/O TT       XX
7 - - - - - PG2                        I/O TT       XX          X   X Port G0
8 - - - - - PG3                        I/O TT       XX          X
                                       I/O TT       XX          X   X Port G1
                                                                X
                                                                    X Port G2
                                                                X
                                                                X   X Port G3
                                                                X
9 5 12 5 9 5 OSC14)                    I                   XX                                                External clock input or Resonator
                                                                                                             oscillator inverter input

10 6 13 6 10 6 OSC24)                  I/O                                                                   Resonator oscillator inverter output
11 7 14 7 - - Vss_15)
12 8 15 8 - - Vdd_15)                  S                                                                     Digital Ground Voltage

13 9 - - - - PA0/PWM3                  S                                                                     Digital Main Supply Voltage

                                       I/O CT       XX              X Port A0 PWM Output 3

14 10 16 - - - PA1/PWM2                I/O CT HS X X                X Port A1 PWM Output 2

15 11 - - - - PA2PWM1                  I/O CT       XX              X Port A2 PWM Output 1

16 12 17      9  11  7  PA3/PWM0/      I/O CT       X ei1           X                                        Port A3  PWM Out-       ADC Ana-
                        AIN0                                                                                          put 0          log Input 0

17 13 18 -       -   -  PA4 (HS)/ART-  I/O  CT  HS  XX           X X Port A4 PWM-ART External Clock
                        CLK

18 14 19 10 12       8  PA5 / ARTIC1/  I/O  CT      X   ei1 X X     X Port A5                                         PWM-ART        ADC Analog
                        AIN1                                                                                          Input Cap-        Input 1
                                                                                                                      ture 1

19 15 20 - - - PA6 / ARTIC2 I/O CT                  X ei1        X  X Port A6                                         PWM-ART Input Capture
                                                                                                                      2

20 16 - - - - PA7/AIN2                 I/O CT       X ei1 X X X Port A7 ADC Analog Input 2

12/309

1
                                                                                                             ST7MC1xx/ST7MC2xx

Table 1. ST7MC Device Pin Description

Pin n                                          Level       Port                                             Main

LQFP80
     LQFP64
            SDIP56
                  LQFP44
                        SDIP32
                              LQFP32

                                                           Type
                                                                 Input
                                                                        Output
                                                                               float
                                                                                    wpu
                                                                                        int
                                                                                               ana
                                                                                                   OD
                                                                                                         PP
                  Pin Name                             Input 1) Output function                                       Alternate function 2)
                                                                                     (after

                                                                                                             reset)

21 17 21 11 13 9 PB0/MCVREF I/O CT                     XX   XX           X Port B0 MTC Voltage Reference
                                                       XX   XX
22 18 22 12 14 10 PB1/MCIA                 I/O CT      XX   XX           X Port B1 MTC Input A
                                                       XX   XX
23 19 23 13 15 11 PB2/MCIB                 I/O CT                        X Port B2 MTC Input B
                                                       XX        X
24 20 24 14 16 12 PB3/MCIC                 I/O CT                        X Port B3 MTC Input C

25 21 25 15 - - PB4/MISO                   I/O CT                        X                                   Port B4  SPI Master In / Slave Out
                                                                                                                      Data

26 22 26 16 -  -  PB5/MOSI/                I/O CT      XX         X      X                                   Port B5  SPI Master     ADC Ana-
                  AIN3                                                                                                Out / Slave    log Input 3
                                                                                                                      In Data

27 23 27 17 - - PB6/SCK                    I/O CT HS X ei2        X      X Port B6 SPI Serial Clock

28 24 28 18 - - PB7/SS/AIN4 I/O CT HS X ei2                       X      X                                   Port B7  SPI Slave      ADC Ana-
                                                                                                                      Select (ac-    log Input 4
                                                                                                                      tive low)

29 - - - - - PG4                           I/O TT      XX         X      X Port G4
30 - - - - - PG5
31 - - - - - PG6                           I/O TT      XX         X      X Port G5
32 - - - - - PG7
33 25 29 - - - PC0                         I/O TT      XX         X      X Port G6

                                           I/O TT      XX         X      X Port G7

                                           I/O CT HS X ei2        X      X Port C0

                                                                                                                      MTC Cur-

34 26 30 -  -  -  PC1/MCCFI06)             I/O  CT     X ei2 X X         X                                   Port C1  rent Feed-     ADC Ana-
                  /AIN5                                                                                               back Input     log Input 5

                                                                                                                      06)

35 27 31 19 17 13 PC2/OAP                  I/O CT      X ei2 X X         X Port C2 OPAMP Positive Input
36 28 32 20 18 14 PC3/OAN                  I/O CT      X X ei2 X X
                                                                         X Port C3 OPAMP Negative Input
                                     OAZ/  I/O                        X
37 29 33 21 19 15 MCCFI16)/                                                                                  Opamp    MTC Cur-       ADC analog
                                                                                                             Output                  Input 6
                                     AIN6                                                                             rent Feed-

                                                                                                                      back Input
                                                                                                                      16)

38 30 34 22 20 16 PC4/MCCREF I/O CT                    XX   XX           X                                   Port C4  MTC Current Feedback
                                                       XX        X                                                    Reference 9)
                                                       XX        X
39 31 35 -  -  -  PC5/MCPW-                I/O CT      XX                X Port C5 MTC PWM Output U
                  MU                                        XX
                                           I/O CT
40 32 36 -  -  -  PC6/                                                   X Port C6 MTC PWM Output V8)
                  MCPWMV8)                 I/O CT

41 33 37 23 -       PC7/                    I                            X                                   Port C7  MTC PWM        ADC Ana-
               - MCPWMW8)/                  S                                                                         Output W8)     log
                                            S                                                                                        Input 7
                    AIN7                    S
                                           I/O CT
42 34 38 24 21 17 VAREF                                                                                      Analog Reference Voltage for ADC
43 35 39 25 - - VSSA5)
44 36 40 26 22 18 VSS_05)                                                                                    Analog Ground Voltage
45 37 41 27 23 19 VDD_05)
                                                                                                             Digital Ground Voltage
46 38 42 28 24 20 RESET
                                                                                                             Digital Main Supply Voltage

                                                                                                             Top priority non maskable interrupt

                                                                                                                                          13/309

                                                                                                                                               1
ST7MC1xx/ST7MC2xx

Table 1. ST7MC Device Pin Description

        Pin n                                  Level      Port                                              Main

LQFP80
     LQFP64
            SDIP56
                  LQFP44
                        SDIP32
                              LQFP32

                                                           Type
                                                                 Input
                                                                        Output
                                                                               float
                                                                                    wpu
                                                                                        int
                                                                                               ana
                                                                                                   OD
                                                                                                         PP
                        Pin Name                          Input 1) Output function                                    Alternate function 2)
                                                                                        (after

                                                                                                             reset)

                                     PF0/                                                                             MTC De-
47 39 43 - - - MCDEM7)/
                                           I/O CT      XX       XX  X Port F0                                         magnetiza- ADC Ana-
                                     AIN8              XX
                                                                                                                      tion      log Input 8

                                                                                                                      Output7)

48 40 44 -      -   -   PF1/MCZEM7)/       I/O  CT              XX  X                                        Port F1  MTC BEMF ADC Ana-
                        AIN9                                                                                          Output7) log Input 9

49 41 -     -   -   -   PF2/MCO/           I/O CT      XX       XX  X                                        Port F2  Main Clock ADC Ana-
                        AIN10                                                                                         Out (fosc/2) log Input 10

50 42 45 - - - PF3/BEEP                    I/O CT HS X X         X X Port F3 Beep Signal Output

51 43 - - - - PF4                          I/O CT HS X X         X X Port F4

52 44 - - - - PF5                          I/O CT HS X X         X X Port F5

53 - - - - - PH0                           I/O TT      XX        X X Port H0

54 - - - - - PH1                           I/O TT      XX        X X Port H1

55 - - - - - PH2                           I/O TT      XX        X X Port H2

56 - - - - - PH3                           I/O TT      XX        X X Port H3

                        PD0/                                                                  Timer A Output Compare

57  45  46  29  25  21  OCMP2_A/           I/O CT      X                                      2
                        MCPWMW8)/                               X X X Port D0 MTC PWM Output W8)

                        AIN11                                                                                         ADC Analog Input 11

                        PD1 (HS)/                                                        Timer A Output Compare
                                                                                         1
58  46  47  30  26  22  OCMP1_A/           I/O CT HS X     ei0   X X Port D1 MTC PWM Output V8)
                        MCPWMV8)/
                                                                                         MTC Demagnetization7)
                        MCDEM7)

                        PD2/ICAP2_A/                                                                Timer A Input Capture 2
                                                       X ei0 X X X Port D2 MTC BEMF7)
59 47 48 31 27 23 MCZEM7) /                I/O CT
                                                                                                    ADC Analog Input 12
                        AIN12

                        PD3/ICAP1_A/                                                                                  Timer A ADC
                        AIN13
60  48  49  32  28  24                     I/O  CT     X ei0 X X X Port D3 Input                                                Analog

                                                                                                                      Capture 1 Input 13

                                     PD4/                                                           Timer A External Clock
                                                                                                    source
61 49 50 33 29 25 EXTCLK_A/IC- I/O CT                  X ei0 X X X Port D4 ICC Clock Output
                                     CCLK/AIN14
                                                                                                    ADC Analog Input 14

62  50  51  34  30  26  PD5/ICCDA-         I/O CT                                                   ICC Data Input
                        TA/AIN15                       X ei0 X X X Port D5

                                                                                                    ADC Analog Input 15

63 51 52 35 31 27 PD6/RDI                  I/O CT HS X ei0       X X Port D6 SCI Receive Data In
64 52 53 36 32 28 PD7/TDO                  I/O CT HS X X         X X Port D7 SCI Transmit Data Output
65 53 54 - - - VSS_2                        S
66 54 55 - - - VDD_2                                                        Digital Ground Voltage
67 - - - - - PH4                           S                                Digital Main Supply Voltage
68 - - - - - PH5                                                 X X Port H4
                                           I/O TT      XX        X X Port H5
                                           I/O TT      XX

14/309

1
                                                                                                             ST7MC1xx/ST7MC2xx

Table 1. ST7MC Device Pin Description

Pin n                                 Level      Port                                                       Main

LQFP80
     LQFP64
            SDIP56
                  LQFP44
                        SDIP32
                              LQFP32

                                                           Type
                                                                 Input
                                                                        Output
                                                                               float
                                                                                    wpu
                                                                                        int
                                                                                               ana
                                                                                                   OD
                                                                                                         PP
                  Pin Name                    Input 1) Output function                                               Alternate function 2)
                                                                            (after

                                                                                                             reset)

69 - - - -     - PH6        I/O TT            XX        X X Port H6
70 - - - -                  I/O TT            XX
71 55 56 37 -  - PH7                                    X X Port H7

72 56 1 38 -   -  PE0/      I/O CT HS X X               X  X Port E0                                                 Timer B Output Compare
73 57 2 39 -      OCMP2_B                                                                                            2
74 58 3 40 -
75 59 - - -    -  PE1/      I/O CT            XX  XX       X Port E1                                                 Timer B Output Compare
76 60 - - -       OCMP1_B                                                                                            1

               - PE2/ICAP2_B I/O CT           XX        X X Port E2 Timer B Input Capture 2
                                              XX
               - PE3/ICAP1_B/ I/O CT              X X X Port E3 Timer B Input Capture 1
                                              XX
               -  PE4/      I/O CT                      X  X Port E4                                                 Timer B External Clock
                  EXTCLK_B                                                                                           source

               - PE5        I/O CT            XX  X X X Port E5

77 61 4 41 1 29 VPP/ICCSEL I                                                                                 Must be tied low. In the program-
                                                                                                             ming mode when available, this pin
                                                                                                             acts as the programming voltage in-
                                                                                                             put VPP./ ICC mode pin. See section
                                                                                                             12.9.2 on page 269

78 62 5 42 2 30 MCO0 (HS) O            HS                  X MTC Output Channel 0

79 63 6 43 3 31 MCO1 (HS) O            HS                  X MTC Output Channel 1

80 64 7 44 4 32 MCO2 (HS) O            HS                  X MTC Output Channel 2

Notes:
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. If two alternate function outputs are enabled at the same time on a given pin (for instance, MCPWMV
and MCDEM on PD1 on LQFP32), the two signals will be ORed on the output pin.

3. MCES is a floating input. To disable this function, a pull-up resistor must be used.

4. OSC1 and OSC2 pins connect a crystal/ceramic resonator or an external source to the on-chip oscilla-
tor; see Section 1 INTRODUCTION and Section 12.5 CLOCK AND TIMING CHARACTERISTICS for
more details.

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

6. MCCFI can be mapped on 2 different pins on 80 ,64 and 56-pin packages. This allows:

- either to use PC1 as a standard I/O and map MCCFI on OAZ (MCCFI1) with or without using the oper-
ational amplifier (selected case after reset),

- or to map MCCFI on PC1 (MCCFI0) and use the amplifier for another function.

The mapping can be selected in MREF register of motor control cell. See section MOTOR CONTROL for
more details.

7. MCZEM is mapped on PF1 on 80, 64 and 56-pin packages and on PD2 on 44 and 32-pins.
MCDEM is mapped on PF0 on 80, 64 and 56-pin packages and on PD1 on 44 and 32-pin packages.

8. MCPWMV is mapped on PC6 on 80 and 64-pin packages and on PD1 on 44,and 32-pins packages.
MCPWMW is mapped on PC7 on 80, 64 and 44-pin packages and on PD0 on 32-pins package.

9. Once the MTC peripheral is ON (bits CKE=1 or DAC=1 in the register MCRA), the pin PC4 is configured

                                                                                                                     15/309

                                                                                                                          1
ST7MC1xx/ST7MC2xx

to an alternate function. PC4 is no longer usable as a digital I/O.l
10. On the chip, each I/O port has 8 pads. Pads that are not bonded to external pins are in input pull-up
configuration after reset. The configuration of these pads must be kept at reset state to avoid added cur-
rent consumption. Refer to section 15.7 on page 303

16/309

1
                                                                      ST7MC1xx/ST7MC2xx

3 REGISTER & MEMORY MAP                            The highest address bytes contain the user reset
                                                   and interrupt vectors.
As shown in Figure 8, the MCU is capable of ad-
dressing 64K bytes of memories and I/O registers.  IMPORTANT: Memory locations marked as "Re-
                                                   served" must never be accessed. Accessing a re-
The available memory locations consist of 128      served area can have unpredictable effects on the
bytes of register locations, up to 2Kbytes of RAM  device.
and up to 60Kbytes of user program memory. The
RAM space includes up to 256 bytes for the stack
from 0100h to 01FFh.

Figure 8. Memory Map

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

                      RAM            01FFh         16-bit Addressing  1000h 60 KBytes
                  (1536/1024         0200h                 RAM
067Fh         768/384 Bytes)                                         4000h
0680h                                 01FFh
0FFFh             Reserved         or 037Fh                                      48 KBytes
1000h                             or 047Fh
             Program Memory        or 067Fh                           8000h
FFDFh   (60K, 48K, 32K, 16K, 8K)
FFE0h                                                                            32 KBytes
        Interrupt & Reset Vectors
FFFFh           (see Table 8)                                         C000h  16 KBytes
                                                                      E000h  8 KBytes
                                                                      FFFFh

As shown in Figure 9, the MCU is capable of ad-    ry. The RAM space includes up to 256 bytes for
dressing 64K bytes of memories and I/O registers.  the stack from 0100h to 01FFh.

The available memory locations consist of 128      The highest address bytes contain the user reset
bytes of register locations, up to 1536 bytes of   and interrupt vectors.
RAM and up to 60 Kbytes of user program memo-

                                                                                            17/309

                                                                                                 1
ST7MC1xx/ST7MC2xx

Table 2. Hardware Register Map

Address    Block   Register     Register Name                             Reset    Remarks
           Port A    Label                                                Status
0000h     Port B                                                                 R/W
0001h     Port C  PADR         Port A Data Register                       00h1)  R/W
0002h     Port D  PADDR        Port A Data Direction Register              00h   R/W2)
           Port E  PAOR         Port A Option Register                      00h
0003h     Port F                                                                 R/W
0004h    Port G   PBDR         Port B Data Register                       00h1)  R/W
0005h     Port H  PBDDR        Port B Data Direction Register              00h   R/W
                   PBOR         Port B Option Register                      00h
0006h   LINSCITM                                                                 R/W
0007h             PCDR         Port C Data Register                       00h1)  R/W
0008h      SPI    PCDDR        Port C Data Direction Register              00h   R/W
                   PCOR         Port C Option Register                      00h
0009h                                                                            R/W
000Ah             PDDR         Port D Data Register                       00h1)  R/W
000Bh             PDDDR        Port D Data Direction Register              00h   R/W
                   PDOR         Port D Option Register                      00h
000Ch                                                                            R/W
000Dh             PEDR         Port E Data Register                       00h1)  R/W2)
000Eh             PEDDR        Port E Data Direction Register              00h   R/W2)
                   PEOR         Port E Option Register                      00h
000Fh                                                                            R/W
0010h             PFDR         Port F Data Register                       00h1)  R/W
0011h             PFDDR        Port F Data Direction Register              00h   R/W
                   PFOR         Port F Option Register                      00h
0012h                                                                            R/W
0013h             PGDR         Port G Data Register                       00h1)  R/W
0014h             PGDDR        Port G Data Direction Register              00h   R/W
                   PGOR         Port G Option Register                      00h
0015h                                                                            R/W
0016h             PHDR         Port H Data Register                       00h1)  R/W
0017h             PHDDR        Port H Data Direction Register              00h   R/W
                   PHOR         Port H Option Register                      00h
0018h                                                                            Read Only
0019h             SCISR        SCI Status Register                        C0h    R/W
001Ah             SCIDR        SCI Data Register                           xxh   R/W
001Bh             SCIBRR       SCI Baud Rate Register                      00h   R/W
001Ch             SCICR1       SCI Control Register 1                      xxh   R/W
001Dh             SCICR2       SCI Control Register 2                      00h   R/W
001Eh             SCICR3       SCI Control Register 3                      00h   R/W
001Fh             SCIERPR      SCI Extended Receive Prescaler Register     00h   R/W
                   SCIETPR      SCI Extended Transmit Prescaler Register    00h
0020h
                   SPIDR                  Reserved Area (1 Byte)          xxh     R/W
0021h             SPICR
0022h             SPICSR       SPI Data I/O Register                     0xh     R/W
0023h                          SPI Control Register
                                SPI Control/Status Register               00h     R/W

18/309

1
                                                                          ST7MC1xx/ST7MC2xx

Table 2. Hardware Register Map

Address  Block     Register     Register Name                             Reset   Remarks
                     Label                                                Status

0024h              ITSPR0       Interrupt Software Priority Register 0    FFh     R/W
0025h
0026h              ITSPR1       Interrupt Software Priority Register 1    FFh     R/W
0027h
0028h    ITC       ITSPR2       Interrupt Software Priority Register 2    FFh     R/W

0029h              ITSPR3       Interrupt Software Priority Register 3    FFh     R/W

002Ah              EICR         External Interrupt Control Register       00h     R/W
002Bh
         FLASH     FSCR         Flash Control/Status Register             00h     R/W
002Ch
002Dh              WDGCR        Window Watchdog Control Register          7Fh     R/W
                   WDGWR        Window Watchdog Window Register
002Eh    WATCHDOG
002Fh
0030h                                                                     7Fh     R/W

0031h    MCC       MCCSR        Main Clock Control / Status Register      00h     R/W
0032h
0033h              MCCBCR Main Clock Controller: Beep Control Register    00h     R/W
0034h
0035h              ADCCSR Control/Status Register                         00h     R/W
0036h              ADCDRMSB Data Register MSB
0037h    ADC       ADCDRLSB Data Register LSB                             00h     Read Only
0038h
0039h                                                                     00h     Read Only
003Ah
003Bh              TACR2        Timer A Control Register 2                00h     R/W
003Ch              TACR1        Timer A Control Register 1
003Dh              TACSR        Timer A Control/Status Register           00h     R/W
003Eh              TAIC1HR      Timer A Input Capture 1 High Register
003Fh              TAIC1LR      Timer A Input Capture 1 Low Register      xxh     R/W
                   TAOC1HR      Timer A Output Compare 1 High Register
0040h              TAOC1LR      Timer A Output Compare 1 Low Register     xxh     Read Only
                   TACHR        Timer A Counter High Register
0041h              TACLR        Timer A Counter Low Register              xxh     Read Only
0042h              TAACHR       Timer A Alternate Counter High Register
0043h              TAACLR       Timer A Alternate Counter Low Register    80h     R/W
0044h              TAIC2HR      Timer A Input Capture 2 High Register
0045h              TAIC2LR      Timer A Input Capture 2 Low Register      00h     R/W
0046h              TAOC2HR      Timer A Output Compare 2 High Register
0047h    TIMER A   TAOC2LR      Timer A Output Compare 2 Low Register     FFh     Read Only
0048h
0049h                                                                     FCh Read Only
004Ah
004Bh                                                                     FFh     Read Only
004Ch
004Dh                                                                     FCh Read Only
004Eh
004Fh                                                                     xxh     Read Only

                                                                          xxh     Read Only

                                                                          80h     R/W

                                                                          00h     R/W

         SIM       SICSR        System Integrity Control/Status Register  000x000x b R/W

                   TBCR2        Timer B Control Register 2                00h     R/W
                   TBCR1        Timer B Control Register 1
                   TBCSR        Timer B Control/Status Register           00h     R/W
                   TBIC1HR      Timer B Input Capture 1 High Register
                   TBIC1LR      Timer B Input Capture 1 Low Register      xxh     R/W
                   TBOC1HR      Timer B Output Compare 1 High Register
                   TBOC1LR      Timer B Output Compare 1 Low Register     xxh     Read Only
                   TBCHR        Timer B Counter High Register
                   TBCLR        Timer B Counter Low Register              xxh     Read Only
                   TBACHR       Timer B Alternate Counter High Register
                   TBACLR       Timer B Alternate Counter Low Register    80h     R/W
                   TBIC2HR      Timer B Input Capture 2 High Register
                   TBIC2LR      Timer B Input Capture 2 Low Register      00h     R/W
                   TBOC2HR      Timer B Output Compare 2 High Register
         TIMER B   TBOC2LR      Timer B Output Compare 2 Low Register     FFh     Read Only

                                                                          FCh Read Only

                                                                          FFh     Read Only

                                                                          FCh Read Only

                                                                          xxh     Read Only

                                                                          xxh     Read Only

                                                                          80h     R/W

                                                                          00h     R/W

                                                                                          19/309

                                                                                               1
ST7MC1xx/ST7MC2xx

Table 2. Hardware Register Map

Address    Block    Register    Register Name                          Reset   Remarks
                      Label                                            Status
0050h      MTC
0051h    (page 0)  MTIM        Timer Counter High Register            00h     R/W
0052h              MTIML       Timer Counter Low Register
0053h      MTC     MZPRV       Capture Zn-1 Register                  00h     R/W
0054h    (page 1)  MZREG       Capture Zn Register
0055h              MCOMP       Compare Cn+1 Register                  00h     R/W
0056h       DM     MDREG       Demagnetization Register
0057h              MWGHT       An Weight Register                     00h     R/W
0058h              MPRSR       Prescaler & Sampling Register
0059h              MIMR        Interrupt Mask Register                00h     R/W
005Ah              MISR        Interrupt Status Register
005Bh              MCRA        Control Register A                     00h     R/W
005Ch              MCRB        Control Register B
005Dh              MCRC        Control Register C                     00h     R/W
005Eh              MPHST       Phase State Register
005Fh              MDFR        D event Filter Register                00h     R/W
0060h              MCFR        Current feedback Filter Register
0061h              MREF        Reference Register                     00h     R/W
0062h              MPCR        PWM Control Register
0063h              MREP        Repetition Counter Register            00h     R/W
0064h              MCPWH       Compare Phase W Preload Register High
0065h              MCPWL       Compare Phase W Preload Register Low   00h     R/W
0066h              MCPVH       Compare Phase V Preload Register High
0067h              MCPVL       Compare Phase V Preload Register Low   00h     R/W
0068h              MCPUH       Compare Phase U Preload Register High
0069h              MCPUL       Compare Phase U Preload Register Low   00h     R/W
006Ah              MCP0H       Compare Phase 0 Preload Register High
                    MCP0L       Compare Phase 0 Preload Register Low   00h     R/W
0050h
0051h              MDTG        Dead Time Generator Enable             0Fh     R/W
0052h              MPOL        Polarity Register
0053h              MPWME       PWM Register                           00h     R/W
0054h              MCONF       Configuration Register
0055h              MPAR        Parity Register                        00h     R/W
0056h              MZRF        Z event Filter Register
                    MSCR        Sampling Clock Register                00h     R/W
0057h to
006Ah                                                                 00h     R/W

006Bh                                                                 00h     R/W
006Ch
006Dh                                                                 00h     R/W
006Eh
006Fh                                                                 00h     R/W
0070h
                                                                       00h     R/W

                                                                       00h     R/W

                                                                       00h     R/W

                                                                       0Fh     R/W

                                                                       FFh     R/W

                                                                       FFh

                                                                       3Fh

                                                                       00h     see MTC
                                                                       02h     description
                                                                       00h

                                                                       0Fh

                                                                       00h

                                Reserved Area (4 Bytes)

                    DMCR        Debug Control Register                 00h     R/W
                    DMSR        Debug Status Register
                    DMBK1H      Debug Breakpoint 1 MSB Register        10h     Read Only
                    DMBK1L      Debug Breakpoint 1 LSB Register
                    DMBK2H      Debug Breakpoint 2 MSB Register        FFh     R/W
                    DMBK2L      Debug Breakpoint 2 LSB Register
                                                                       FFh     R/W

                                                                       FFh     R/W

                                                                       FFh     R/W

20/309

1
                                                               ST7MC1xx/ST7MC2xx

Table 2. Hardware Register Map

Address  Block    Register      Register Name                               Reset   Remarks
                    Label                                                   Status

0074h             PWMDCR3       PWM AR Timer Duty Cycle Register 3          00h     R/W
0075h             PWMDCR2       PWM AR Timer Duty Cycle Register 2
0076h             PWMDCR1       PWM AR Timer Duty Cycle Register 1          00h     R/W
0077h             PWMDCR0       PWM AR Timer Duty Cycle Register 0
0078h             PWMCR         PWM AR Timer Control Register               00h     R/W

0079h             ARTCSR        Auto-Reload Timer Control/Status Register   00h     R/W
007Ah             ARTCAR        Auto-Reload Timer Counter Access Register
007Bh             ARTARR        Auto-Reload Timer Auto-Reload Register      00h     R/W

007Ch    PWM ART  ARTICCSR      AR Timer Input Capture Control/Status Reg.  00h     R/W
007Dh     OPAMP   ARTICR1       AR Timer Input Capture Register 1
007Eh             ARTICR2       AR Timer Input Capture Register 2           00h     R/W

007Fh                                                                       00h     R/W

                                                                            00h     R/W

                                                                            00h     Read Only

                                                                            00h     Read Only

                  OACSR         OPAMP Control/Status Register               00h     R/W

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.

                                                                                         21/309

                                                                                              1
ST7MC1xx/ST7MC2xx

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 3). 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 9). 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-
The array matrix organisation allows each sector            FFFFh).
to be erased and reprogrammed without affecting
other sectors.                                              Table 3. Sectors available in Flash devices

4.2 MAIN FEATURES                                           Flash Size (bytes)          Available Sectors

3 Flash programming modes:                                           4K                       Sector 0
    Insertion in a programming tool. In this mode,                   8K                    Sectors 0,1
     all sectors including option bytes can be pro-                  > 8K                  Sectors 0,1, 2
     grammed or erased.
    ICP (In-Circuit Programming). In this mode, all        4.3.1 Read-out Protection
     sectors including option bytes can be pro-
     grammed or erased without removing the de-             Read-out protection, when selected, provides a
     vice from the application board.                       protection against Program Memory content ex-
    IAP (In-Application Programming) In this               traction and against write access to Flash memo-
     mode, all sectors except Sector 0, can be pro-         ry. Even if no protection can be considered as to-
     grammed or erased without removing the de-             tally unbreakable, the feature provides a very high
     vice from the application board and while the          level of protection for a general purpose microcon-
     application is running.                                troller.

ICT (In-Circuit Testing) for downloading and               In Flash devices, this protection is removed by re-
   executing user application test patterns in RAM          programming the option. In this case, the entire
                                                            program memory is first automatically erased and
Read-out protection                                        the device can be reprogrammed.
Register Access Security System (RASS) to
                                                            Read-out protection selection depends on the de-
   prevent accidental programming or erasing                vice type:

4.3 STRUCTURE                                                In Flash devices it is enabled and removed
                                                              through the FMP_R bit in the option byte.
The Flash memory is organised in sectors and can
be used for both code and data storage.                      In ROM devices it is enabled by mask option
                                                              specified in the Option List.
Figure 9. Memory Map and Sector Address

                    4K  8K  10K       16K              24K  32K  48K            60K     FLASH

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

22/309

1
                                                                                                             ST7MC1xx/ST7MC2xx

FLASH PROGRAM MEMORY (Cont'd)

4.4 ICC INTERFACE                                        ICCCLK: ICC output serial clock pin
                                                         ICCDATA: ICC input/output serial data pin
ICC (In-Circuit Communication) needs a minimum          ICCSEL/VPP: programming voltage
of four and up to six pins to be connected to the       OSC1(or OSCIN): main clock input for exter-
programming tool (see Figure 10). These pins are:
                                                          nal source (optional)
    RESET: device reset                                 uVrDeD1: 0a,pNploicteati3o)n board power supply (see Fig-
    VSS: device power supply ground

Figure 10. 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
                                                        resistor > 1K, no additional components are need-
1. If the ICCCLK or ICCDATA pins are only used          ed. In all cases the user must ensure that no exter-
as outputs in the application, no signal isolation is   nal 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-

                                                                                                                                23/309

                                                                                                                                     1
ST7MC1xx/ST7MC2xx

FLASH PROGRAM MEMORY (Cont'd)

4.5 ICP (IN-CIRCUIT PROGRAMMING)                        4.7 RELATED DOCUMENTATION

To perform ICP the microcontroller must be              For details on Flash programming and ICC proto-
switched to ICC (In-Circuit Communication) mode         col, refer to the ST7 Flash Programming Refer-
by an external controller or programming tool.          ence Manual and to the ST7 ICC Protocol Refer-

Depending on the ICP code downloaded in RAM,            ence Manual.
Flash memory programming can be fully custom-
ized (number of bytes to program, program loca-         4.8 REGISTER DESCRIPTION
tions, or selection serial communication interface      FLASH CONTROL/STATUS REGISTER (FCSR)
for downloading).
                                                        Read / Write
When using an STMicroelectronics or third-party         Reset Value: 0000 0000 (00h)
programming tool that supports ICP and the spe-
cific microcontroller device, the user needs only to    7                    0
implement the ICP hardware interface on the ap-
plication board (see Figure 10). For more details       0  0  0  0  0  0  0  0
on the pin locations, refer to the device pinout de-
scription.

4.6 IAP (IN-APPLICATION PROGRAMMING)                    This register is reserved for use by Programming
                                                        Tool software. It controls the Flash programming
This mode uses a BootLoader program previously          and erasing operations.
stored in Sector 0 by the user (in ICP mode or by
plugging the device in a programming tool).

This mode is fully controlled by user software. This
allows it to be adapted to the user application, (us-
er-defined strategy for entering programming
mode, choice of communications protocol used to
fetch the data to be stored, etc.). For example, it is
possible to download code from the SPI, SCI or
other type of serial interface and program it in the
Flash. IAP mode can be used to program any of
the Flash sectors except Sector 0, which is write/
erase protected to allow recovery in case errors
occur during the programming operation.

24/309

1
                                                                        ST7MC1xx/ST7MC2xx

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 11 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 11. 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

                                                                               25/309

                                                                                    1
ST7MC1xx/ST7MC2xx

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.

26/309

1
                                                                              ST7MC1xx/ST7MC2xx

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 12).                        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 12.
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 12. 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

                                                                                             27/309

                                                                                                  1
ST7MC1xx/ST7MC2xx

6 SUPPLY, RESET AND CLOCK MANAGEMENT

The device includes a range of utility features for   Main features
securing the application in critical situations (for   Reset Sequence Manager (RSM)
example in case of a power brown-out), and re-         1 Crystal/Ceramic resonator oscillator
ducing the number of external components. An           System Integrity Management (SI)
overview is shown in Figure 13.
                                                          Main supply Low voltage detection (LVD)
For more details, refer to dedicated parametric          Auxiliary Voltage detector (AVD) with interrupt
section.
                                                           capability for monitoring the main supply
                                                          Clock Security System (CSS) with the VCO of

                                                           the PLL, providing a backup safe oscillator
                                                          Clock Detector
                                                          PLL which can be used to multiply the fre-

                                                           quency by 2 if the clock frequency input is
                                                           8MHz

Figure 13. Clock, Reset and Supply Block Diagram

                                                      SYSTEM INTEGRITY MANAGEMENT

                                                                           fOSC

                                    CLOCK SECURITY SYSTEM                              fCLK MAIN CLOCK fCPU

                                                                                                                       CONTROLLER

OSC2                                                  8Mhz PLL             16Mhz                                        WITH REALTIME   fMTC
OSC1                                                                       lock                                        CLOCK (MCC/RTC)
                                                               Safeosc
        OSCILLATOR        1/2

                    fOSC

                          DIV2 OPT                                                CKSEL

                                                      SICSR, page 1

                                                      PA                0  VCO LO PLL   0                              CK   0
                                                      GE                    EN CK EN                                   SEL

                                                      Clock Detector

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

                                    PA AVD AVD LVD                      0  CSS CSS WDG
                                    GE IE F RF                              IE D RF

VSS                                                                    CSS Interrupt Request
VDD*
                                                      LOW VOLTAGE
                                                        DETECTOR
                                                             (LVD)

                                                                                                    AUXILIARY VOLTAGE
                                                                                                           DETECTOR
                                                                                                                (AVD)

* It is recommended to decouple the power supply by placing a 0.1F capacitor as close as possible to VDD

28/309

1
                                                                                          ST7MC1xx/ST7MC2xx

6.1 OSCILLATOR                                           Table 4. ST7 Clock Sources

The main clock of the ST7 can be generated by a                                  Hardware Configuration
crystal or ceramic resonator oscillator or an exter-
nal source.                                              External Clock                         ST7

The associated hardware configurations are                                                OSC1        OSC2
shown in Table 4. Refer to the electrical character-
istics section for more details.                                                                              NC

External Clock Source                                                                EXTERNAL
                                                                                      SOURCE
In this external clock mode, a clock signal (square,
sinus or triangle) with ~50% duty cycle has to drive     Crystal/Ceramic Resonators             ST7
the OSC1 pin while the OSC2 pin is not connect-
ed.                                                                                       OSC1        OSC2

Crystal/Ceramic Oscillators                                                          CL1        LOAD              CL2

This family of oscillators has the advantage of pro-                                      CAPACITORS
ducing a very accurate rate on the main clock of
the ST7. In this mode, 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.

This oscillator is not stopped during the RESET
phase to avoid losing time in its start-up phase.

See Electrical Characteristics for more details.

Note: When crystal oscillator is used as a clock
source, a risk of failure may exist if no series resis-
tors are implemented.

                                                                                                                       29/309

                                                                                                                            1
ST7MC1xx/ST7MC2xx

6.2 RESET SEQUENCE MANAGER (RSM)                     The 256 or 4096 CPU clock cycle delay allows the
                                                     oscillator to stabilise and ensures that recovery
6.2.1 Introduction                                   has taken place from the Reset state. The shorter
                                                     or longer clock cycle delay should be selected by
The reset sequence manager includes three RE-        option byte to correspond to the stabilization time
SET sources as shown in Figure 15:                   of the external oscillator used in the application.
External RESET source pulse
Internal LVD RESET (Low Voltage Detection)          The RESET vector fetch phase duration is 2 clock
Internal WATCHDOG RESET                             cycles.

Note: A reset can also be triggered following the    Figure 14. RESET Sequence Phases
detection of an illegal opcode or prebyte code. Re-
fer to section 11.2.1 on page 244 for further de-    Active Phase       RESET                          FETCH
tails.                                                                                                VECTOR
                                                                          INTERNAL RESET
These sources act on the RESET pin and it is al-                   256 or 4096 CLOCK CYCLES
ways kept low during the delay phase.
                                                     6.2.2 Asynchronous External RESET pin
The RESET service routine vector is fixed at ad-
dresses FFFEh-FFFFh in the ST7 memory map.           The RESET pin is both an input and an open-drain
                                                     output with integrated RON weak pull-up resistor.
The basic RESET sequence consists of 3 phases        This pull-up has no fixed value but varies in ac-
as shown in Figure 14:                               cordance with the input voltage. It can be pulled
Active Phase depending on the RESET source          low by external circuitry to reset the device. See
256 or 4096 CPU clock cycle delay (selected by      Electrical Characteristic section for more details.

   option byte)                                      A RESET signal originating from an external
RESET vector fetch                                  source must have a duration of at least th(RSTL)in in
                                                     order to be recognized (see Figure 16). This de-
Caution: When the ST7 is unprogrammed or fully       tection is asynchronous and therefore the MCU
erased, the Flash is blank and the RESET vector      can enter reset state even in Halt mode.
is not programmed. For this reason, it is recom-
mended to keep the RESET pin in low state until
programming mode is entered, in order to avoid
unwanted behavior.

Figure 15. Reset Block Diagram

                                       VDD

                   RON

RESET                   Filter                                                   INTERNAL
                                                                                 RESET
                                     PULSE
                                GENERATOR                          WATCHDOG RESET
                                                                   ILLEGAL OPCODE RESET 1)
                                                                   LVD RESET

Note 1: See "Illegal Opcode Reset" on page 244. for more details on illegal opcode reset conditions.

30/309

1
                                                                          ST7MC1xx/ST7MC2xx

RESET SEQUENCE MANAGER (Cont'd)                         6.2.4 Internal Low Voltage Detector (LVD)
The RESET pin is an asynchronous signal which           RESET
plays a major role in EMS performance. In a noisy
environment, it is recommended to follow the            Two different RESET sequences caused by the in-
guidelines mentioned in the electrical characteris-     ternal LVD circuitry can be distinguished:
tics section.                                            Power-On RESET
6.2.3 External Power-On RESET                            Voltage Drop RESET
If the LVD is disabled by option byte, to start up the
microcontroller correctly, the user must ensure by      The device RESET pin acts as an output that is
means of an external reset circuit that the reset       pulled low when VDD signal is held low until VDD is over the minimum        VDD level specified for the selected fOSC frequency.        The LVD filters spikes on VDD larger than tg(VDD) to
A proper reset signal for a slow rising VDD supply      avoid parasitic resets.
can generally be provided by an external RC net-
work connected to the RESET pin.                        6.2.5 Internal Watchdog RESET

Figure 16. RESET Sequences                              The RESET sequence generated by a internal
                    VDD                                 Watchdog counter overflow is shown in Figure 16.

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

             RUN             LVD  RUN                      EXTERNAL  RUN   WATCHDOG    RUN
                           RESET                              RESET            RESET

                  ACTIVE PHASE                          ACTIVE            ACTIVE
                                                        PHASE             PHASE

                                  th(RSTL)in                              tw(RSTL)out

  EXTERNAL
  RESET
  SOURCE

  RESET PIN

WATCHDOG
RESET

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

                                                                                                              31/309

                                                                                                                   1
ST7MC1xx/ST7MC2xx

6.3 SYSTEM INTEGRITY MANAGEMENT (SI)                  The LVD function is illustrated in Figure 17.

The System Integrity Management block contains        Provided the minimum VDD value (guaranteed for
the Low Voltage Detector (LVD), Auxiliary Voltage     the oscillator frequency) is above VIT-, the MCU
Detector (AVD) and Clock Security System (CSS)        can only be in two modes:
functions. It is managed by the SICSR register.
                                                          under full software control
Note: A reset can also be triggered following the         in static safe reset
detection of an illegal opcode or prebyte code. Re-   In these conditions, secure operation is always en-
fer to section 11.2.1 on page 244 for further de-     sured for the application without the need for ex-
tails.                                                ternal reset hardware.

6.3.1 Low Voltage Detector (LVD)                      During a Low Voltage Detector Reset, the RESET
                                                      pin is held low, thus permitting the MCU to reset
The Low Voltage Detector function (LVD) gener-        other devices.
ates a static reset when the VDD supply voltage is
below a VIT- reference value. This means that it      Notes:
secures the power-up as well as the power-down
keeping the ST7 in reset.                             The LVD allows the device to be used without any
                                                      external RESET circuitry.
The VIT- reference value for a voltage drop is lower
than the VIT+ reference value for power-on in order   The LVD is an optional function which can be se-
to avoid a parasitic reset when the MCU starts run-   lected by option byte.
ning and sinks current on the supply (hysteresis).
                                                      It is recommended to make sure that the VDD sup-
The LVD Reset circuitry generates a reset when        ply voltage rises monotonously when the device is
VDD is below:                                         exiting from Reset, to ensure the application func-
                                                      tions properly.
    VIT+ when VDD is rising
    VIT- when VDD is falling

Figure 17. Low Voltage Detector vs Reset

              VDD

                                                      Vhys

        VIT+
        VIT-

RESET

32/309

1
                                                       ST7MC1xx/ST7MC2xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)                   In the case of a drop in voltage, the AVD interrupt
                                                       acts as an early warning, allowing software to shut
6.3.2 Auxiliary Voltage Detector (AVD)                 down safely before the LVD resets the microcon-
                                                       troller. See Figure 18.
The Voltage Detector function (AVD) is based on
an analog comparison between a VIT-(AVD) and           The interrupt on the rising edge is used to inform
VIT+(AVD) reference value and the VDD main sup-        the application that the VDD warning state is over.
ply. The VIT- reference value for falling voltage is
lower than the VIT+ reference value for rising volt-   If the voltage rise time trv is less than 256 or 4096
age in order to avoid parasitic detection (hystere-    CPU cycles (depending on the reset delay select-
sis).                                                  ed by option byte), no AVD interrupt will be gener-
                                                       ated when VIT+(AVD) is reached.
The output of the AVD comparator is directly read-
able by the application software through a real-       If trv is greater than 256 or 4096 cycles then:
time status bit (AVDF) in the SICSR register. This
bit is read only.                                       If the AVD interrupt is enabled before the
                                                         VIT+(AVD) threshold is reached, then 2 AVD inter-
Caution: The AVD function is active only if the          rupts will be received: the first when the AVDIE
LVD is enabled through the option byte (see sec-         bit is set, and the second when the threshold is
tion 14.1 on page 290).                                  reached.

6.3.2.1 Monitoring the VDD Main Supply                  If the AVD interrupt is enabled after the VIT+(AVD)
If the AVD interrupt is enabled, an interrupt is gen-    threshold is reached then only one AVD interrupt
erated when the voltage crosses the VIT+(AVD) or         will occur.
VIT-(AVD) threshold (AVDF bit toggles).

Figure 18. Using the AVD to Monitor VDD

            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                0

AVD INTERRUPT        INTERRUPT PROCESS                 INTERRUPT PROCESS
REQUEST
IF AVDIE bit = 1

LVD RESET

                                                                              33/309

                                                                                   1
ST7MC1xx/ST7MC2xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)                 6.3.4 Low Power Modes

6.3.3 Clock Security System (CSS)                      Mode                         Description
                                                     Wait
The Clock Security System (CSS) protects the                    No effect on SI. CSS and AVD interrupts
ST7 against main clock problems. To allow the in-    Halt       cause the device to exit from Wait mode.
tegration of the security features in the applica-
tions, it is based on a PLL which can provide a                 The CRSR register is frozen.
backup clock. The PLL can be enabled or disabled                The CSS (including the safe oscillator) is
by option byte or by software. It requires an 8-MHz             disabled until Halt mode is exited. The pre-
input clock and provides a 16-MHz output clock.                 vious CSS configuration resumes when the
                                                                MCU is woken up by an interrupt with "exit
6.3.3.1 Safe Oscillator Control                                 from Halt mode" capability or from the coun-
                                                                ter reset value when the MCU is woken up
The safe oscillator of the CSS block is made of a               by a RESET. The AVD remains active, and
PLL.                                                            an AVD interrupt can be used to exit from
                                                                Halt mode.
If the clock signal disappears (due to a broken or
disconnected resonator...) the PLL continues to      6.3.4.1 Interrupts
provide a lower frequency, which allows the ST7 to
perform some rescue operations.                      The CSS or AVD interrupt events generate an in-
                                                     terrupt if the corresponding Enable Control Bit
Note: The clock signal must be present at start-up.  (CSSIE or AVDIE) is set and the interrupt mask in
Otherwise, the ST7MC will not start and will be      the CC register is reset (RIM instruction).
maintained in RESET conditions.
                                                     Interrupt Event  Event  Enable   Exit  Exit
6.3.3.2 Limitation detection                                           Flag  Control  from  from
                                                                                      Wait  Halt
The automatic safe oscillator selection is notified                             Bit
by hardware setting the CSSD bit of the SICSR                                               No 1)
register. An interrupt can be generated if the CS-   CSS event detection
SIE bit has been previously set.                     (safe oscillator acti- CSSD CSSIE Yes  Yes
These two bits are described in the SICSR register   vated as main clock)
description.

                                                     AVD event        AVDF AVDIE Yes

                                                     Note 1: This interrupt allows to exit from Active-
                                                     halt mode.

34/309

1
                                                                       ST7MC1xx/ST7MC2xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)

6.3.5 Register Description

SYSTEM INTEGRITY (SI) CONTROL/STATUS REGISTER (SICSR, page 0)

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 PLL is disabled (PLLEN=0), the CSSIE
PAG AVD AVD LVD  0            CSS CSS WDG               bit has no effect.
  E IE F RF                    IE D RF

Bit 7 = PAGE SICSR Register Page Selection              Bit 1 = CSSD Clock security system detection
This bit selects the SICSR register page. It is set     This bit indicates a disturbance on the main clock
and cleared by software                                 signal (fOSC): the clock stops (at least for a few cy-
0: Access to SICSR register mapped in page 0.           cles). It is set by hardware and cleared by reading
1: Access to SICSR register mapped in page 1.           the SICSR register when the original oscillator re-
                                                        covers.
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 PLL is disabled (PLLEN=0), the CSSD
changes (toggles). The pending interrupt informa-       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 VDIE bit is set, an interrupt request is gener-  starts).
ated when the AVDF bit changes value.                   Combined with the LVDRF flag information, the
0: VDD over VIT+ (AVD) threshold                        flag description is given by the following table.
1: VDD under VIT-(AVD) threshold
                                                        RESET Sources       LVDRF WDGRF
Bit 4 = LVDRF LVD reset flag
This bit indicates that the last Reset was generat-     External RESET pin  0  0
ed by the LVD block. It is set by hardware (LVD re-           Watchdog
set) and cleared by software (writing zero). See                  LVD       0  1
WDGRF flag description for more details. When
the LVD is disabled by OPTION BYTE, the LVDRF                               1  X
bit value is undefined.
                                                        Application notes
Bit 3 = Reserved, must be kept cleared.
                                                        The LVDRF flag is not cleared when another RE-
                                                        SET type occurs (external or watchdog), the
                                                        LVDRF flag remains set to keep trace of the origi-
                                                        nal failure.
                                                        In this case, a watchdog reset can be detected by
                                                        software while an external reset can not.

Bit 2 = CSSIE Clock security syst. interrupt enable
This bit enables the interrupt when a disturbance

                                                                               35/309

                                                                                    1
ST7MC1xx/ST7MC2xx

SYSTEM INTEGRITY MANAGEMENT (Cont'd)

SYSTEM INTEGRITY (SI) CONTROL/STATUS REGISTER (SICSR, page 1)

Reset Value: 00000000 (00h)                              Bit 3 = PLLEN PLL Enable
                                                         This bit enables the PLL and the clock detector. It
7                                    0                   is set and cleared by software.
                                                         0: PLL and Clock Detector (CKD) disabled
PA             VCO LO PLL    0  CK-  0                   1: PLL and Clock Detector (CKD) enabled
GE      0                       SEL

                EN CK EN

Bit 7 = PAGE SICSR Register Page Selection               Notes:
This bit selects the SICSR register page. It is set      1. During ICC session, this bit is set to 1.
and cleared by software                                  2. PLL cannot be disabled if PLL clock source is
0: Access to SICSR register mapped in page 0.            selected (CKSEL= 1).
1: Access to SICSR register mapped in page 1.
                                                         Bit 2 = Reserved, must be kept cleared.

Bit 6 = Reserved, must be kept cleared.                  Bit 1 = CKSEL Clock Source Selection
                                                         This bit selects the clock source: oscillator clock or
Bit 5 = VCOEN VCO Enable                                 clock from the PLL. It is set and cleared by soft-
This bit is set and cleared by software.                 ware. It can also be set by option byte (PLL opt)
0: VCO (Voltage Controlled Oscillator) connected         0: Oscillator clock selected
                                                         1: PLL clock selected
   to the output of the PLL charge pump (default
   mode), to obtain a 16-MHz output frequency            Notes:
   (with an 8-MHz input frequency).                      1. During ICC session, this bit is set to 1. Then,
1: VCO tied to ground in order to obtain a 10-MHz        CKSEL can be reset in order to run with fOSC.
   frequency (fvco)                                      2. Clock from the PLL cannot be selected if the
                                                         PLL is disabled (PLLEN =0)
Notes:                                                   3. If the clock source is selected by PLL option bit,
1. During ICC session, this bit is set to 1 in order to  CKSEL bit selection has no effect.
have an internal frequency which does not depend
on the input clock. Then, it can be reset in order to    Bit 0 = Reserved, must be kept cleared.
run faster with an external oscillator.

Bit 4 = LOCK PLL Locked
This bit is read only. It is set by hardware. It is set
automatically when the PLL reaches its operating
frequency.
0: PLL not locked
1: PLL locked

36/309

1
                                                                   ST7MC1xx/ST7MC2xx

6.4 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        6.4.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-
6.4.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 HALT
erals. It manages Slow power saving mode (See         instruction is executed. See Section 8.4 ACTIVE-
Section 8.2 SLOW MODE for more details).              HALT AND HALT MODES for more details.

The prescaler selects the fCPU main clock frequen-    6.4.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
6.4.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 fOSC2 clock to drive

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

                    MCCBCR                             BC1 BC0
                                                      BEEP SIGNAL
                                                      GENERATOR              BEEP
                                                                             MCO

                            DIV128                        RTC
                                                      COUNTER

             MCCSR

                    MCO     CP0 SMS TB1 TB0 OIE OIF

fCLK         fOSC2                                                     MCC/RTC INTERRUPT

                                                                       (AND TO MTC
                                                                       PERIPHERAL)

      DIV 2         DIV 2, 4, 8, 16                                    fCPU   CPU CLOCK
                                                                              TO CPU AND
                                                                             PERIPHERALS

                                                          DIV 2  fADC         TO MOTOR
                                                                               CONTROL
                    DIV 2, 4, 8, 16                                    fMTC  PERIPHERAL

                                                                                   37/309

                                                                                        1
ST7MC1xx/ST7MC2xx

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

6.4.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

6.4.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 6.4
(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

6.4.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-halt
0: MCO alternate function disabled (I/O pin free for  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 (fOSC2on I/O        mode.

   port)

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

38/309

1
                                                                                 ST7MC1xx/ST7MC2xx

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 CSR 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  AD-    ADC     BC1  BC0
                                                                                 STS     IE
CAUTION: The BRES and BSET instructions
must not be used on the MCCSR register to avoid         Bit 7:4 = Reserved, must be kept cleared.
unintentionally clearing the OIF bit.
                                                        Bit 3 = ADSTS A/D Converter Sample Time
                                                        Stretch
                                                        This bit is set and cleared by software to enable or
                                                        disable the A/D Converter sample time stretch fea-
                                                        ture.
                                                        0: AD sample time stretch disabled (for standard

                                                           impedance analog inputs)
                                                        1 AD sample time stretch enabled (for high imped-

                                                           ance analog inputs)

                                                        Bit 2 = ADCIE A/D Converter Interrupt Enable
                                                        This bit is set and cleared by software to enable or
                                                        disable the A/D Converter interrupt.
                                                        0: AD Interrupt disabled

                                                        1 AD Interrupt enabled

                                                        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 con-
                                                        sumption.

Table 5. Main Clock Controller Register Map and Reset Values

Address      Register    7     6                     5        4            3        2        1       0
(Hex.)        Label
  0040h                PAGE  VDIE    VDF                   LVDRF           0      CFIE  CSSD    WDGRF
         SICSR, page0     0    0       0                       x       PLLEN        0       0       x
  0040h  Reset Value
         SICSR, page1  PAGE    0   VCOEN                   LOCK            0        0   CKSEL       0
  002Ch  Reset Value      0  CP1       0                       x         TB1      TB0       0      OIF
         MCCSR
002Dh   Reset Value   MCO     0    CP0                     SMS            0        0     OIE       0
         MCCBCR          0             0                       0       ADSTS     ADCIE      0     BC0
         Reset Value           0
                         0                           0        0            0        0     BC1       0
                                                                                            0

                                                                                                     39/309

                                                                                                          1
ST7MC1xx/ST7MC2xx

7 INTERRUPTS

7.1 INTRODUCTION                                     each interrupt vector (see Table 6). The process-
                                                     ing flow is shown in Figure 20
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: MCES
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 6. 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 20. Interrupt Processing Flowchart

        RESET                 PENDING                Y                                        MCES 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

40/309

1
                                                        ST7MC1xx/ST7MC2xx

INTERRUPTS (Cont'd)                                     ing to the flowchart in Figure 20 as a MCES top
                                                        level interrupt.
Servicing Pending Interrupts
As several interrupts can be pending at the same         RESET
time, the interrupt to be taken into account is deter-
mined by the following two-step process:                The RESET source has the highest priority in the
the highest software priority interrupt is serviced,  ST7. This means that the first current routine has
if several interrupts have the same software pri-     the highest software priority (level 3) and the high-
                                                        est hardware priority.
  ority then the interrupt with the highest hardware    See the RESET chapter for more details.
  priority is serviced first.
Figure 21 describes this decision process.              Maskable Sources

Figure 21. Priority Decision Process                    Maskable interrupt vector sources can be serviced
                                                        if the corresponding interrupt is enabled and if its
                                     PENDING            own interrupt software priority (in ISPRx registers)
                                   INTERRUPTS           is higher than the one currently being serviced (I1
                                                        and I0 in CC register). If any of these two condi-
Same  SOFTWARE     Different                            tions is false, the interrupt is latched and thus re-
       PRIORITY                                         mains pending.

                   HIGHEST SOFTWARE                      MCES (MTC Emergency Stop)
                   PRIORITY SERVICED
                                                        This hardware interrupt occurs when a specific
HIGHEST HARDWARE                                        edge is detected on the dedicated MCES pin or
PRIORITY SERVICED                                       when an error is detected by the micro in the motor
                                                        speed measurement. The interrupt request is
When an interrupt request is not serviced immedi-       maintained as long as the MCES pin is low if the
ately, it is latched and then processed when its        interrupt is enabled by the EIM bit in the MIMR reg-
software priority combined with the hardware pri-       ister.
ority becomes the highest one.
                                                         External Interrupts
Note 1: The hardware priority is exclusive while
the software one is not. This allows the previous       External interrupts allow the processor to exit from
process to succeed with only one interrupt.             Halt low power mode.
Note 2: RESET, TRAP and MCES can be consid-             External interrupt sensitivity is software selectable
ered as having the highest software priority in the     through the External Interrupt Control register
decision process.                                       (EICR).
                                                        External interrupt triggered on edge will be latched
Different Interrupt Vector Sources                      and the interrupt request automatically cleared
                                                        upon entering the interrupt service routine.
Two interrupt source types are managed by the           If several input pins of a group connected to the
ST7 interrupt controller: the non-maskable type         same interrupt line are selected simultaneously,
(RESET, TRAP) and the maskable type (external           these will be logically ORed.
or from internal peripherals).
                                                         Peripheral Interrupts
Non-Maskable Sources
                                                        Usually the peripheral interrupts cause the MCU to
These sources are processed regardless of the           exit from Halt mode except those mentioned in the
state of the I1 and I0 bits of the CC register (see     "Interrupt Mapping" table.
Figure 20). After stacking the PC, X, A and CC          A peripheral interrupt occurs when a specific flag
registers (except for RESET), the corresponding         is set in the peripheral status registers and if the
vector is loaded in the PC register and the I1 and      corresponding enable bit is set in the peripheral
I0 bits of the CC are set to disable interrupts (level  control register.
3). These sources allow the processor to exit Halt      The general sequence for clearing an interrupt is
mode.                                                   based on an access to the status register followed
                                                        by a read or write to an associated register.
TRAP (Non Maskable Software Interrupt)                 Note: The clearing sequence resets the internal
                                                        latch. A pending interrupt (i.e. waiting for being
This software interrupt is serviced when the TRAP       serviced) will therefore be lost if the clear se-
instruction is executed. It will be serviced accord-    quence is executed.

                                                        41/309

                                                             1
ST7MC1xx/ST7MC2xx

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 22 and Figure 23 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 from                            terrupt to be interrupted, unlike the nested mode in
Halt" in "Interrupt Mapping" table). When several                             Figure 23. The interrupt hardware priority is given
pending interrupts are present while exiting Halt                             in this order from the lowest to the highest: MAIN,
mode, the first one serviced can only be an inter-                            IT4, IT3, IT2, IT1, IT0, MCES. The software priority
rupt with exit from Halt mode capability and it is se-                        is given for each interrupt.
lected through the same decision process shown
in Figure 21.                                                                 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 22. Concurrent Interrupt Management

                            IT2                                                                                SOFTWARE              I1      I0
                                  IT1
                                        IT4                                                                    PRIORITY
                                              IT3
                                                    MCES
                                                          IT0

                                                                                                               LEVEL

HARDWARE PRIORITY                                    MCES                                                                       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 23. Nested Interrupt Management

                            IT2                                                                                SOFTWARE              I1      I0
                                  IT1                                                                          PRIORITY
                                        IT4
                                              IT3
                                                    MCES
                                                          IT0

                                                                                                               LEVEL

HARDWARE PRIORITY                                    MCES                                                                       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

42/309

1
                                                                       ST7MC1xx/ST7MC2xx

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              spondence 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: MCES, TRAP and RESET events can in-               in the CC register.
terrupt a 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 RESET, TRAP and MCES vectors have no
                                                       software 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 MCES can be read and written but
                                                       they are not significant in the interrupt process
                                                       management.

                                                       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).

                                                                                                    43/309

                                                                                                         1
ST7MC1xx/ST7MC2xx

INTERRUPTS (Cont'd)

Table 7. 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          Pop CC, A, X, PC          I1 H I0 N Z C

JRM          Jump if I1:0=11 (level 3)         I1:0=11 ?

JRNM         Jump if I1:0<>11                  I1:0<>11 ?

POP CC       Pop CC from the Stack             Mem => CC                 I1 H I0 N Z C

RIM          Enable interrupt (level 0 set)    Load 10 in I1:0 of CC     1         0

SIM          Disable interrupt (level 3 set)   Load 11 in I1:0 of CC     1         1

TRAP         Software trap                     Software NMI              1         1

WFI          Wait for interrupt                                          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.

Table 8. Interrupt Mapping

N      Source                   Description                 Register    Priority   Exit     Address
         Block                                                 Label      Order              Vector
                                                                                   from
                                                                                   Halt1)

        RESET    Reset                                                                      yes FFFEh-FFFFh
         TRAP    Software interrupt                          N/A

                                                                                            no FFFCh-FFFDh

0       MCES     Motor Control Emergency Stop                 MISR                       no  FFFAh-FFFBh
                 or Speed error interrupt                     MCRC       Highest             FFF8h-FFF9h
                                                                         Priority
1       MCC/RTC Main clock controller time base interrupt    MCCSR
                                                             SICSR                      yes
        CSS      Safe oscillator activation interrupt

2       ei0      External interrupt port                                           yes FFF6h-FFF7h

3       ei1      External interrupt port                     N/A                   yes FFF4h-FFF5h

4       ei2      External interrupt port                                           yes FFF2h-FFF3h

5                Event U or Current Loop or Sampling Out MISR/MCONF                no FFF0h-FFF1h

6       MTC      Event R or Event Z                          MISR                  no FFEEh-FFEFh
                                                                                   no FFECh-FFEDh
7                Event C or Event D

8       SPI      SPI peripheral interrupts                   SPICSR                yes FFEAh-FFEBh

9 TIMER A TIMER A peripheral interrupts                      TASR                  no FFE8h-FFE9h

10 TIMER B TIMER B peripheral interrupts                      TBSR                       no  FFE6h-FFE7h
                                                             SCISR                           FFE4h-FFE5h
11 LINSCITM LINSCITM Peripheral interrupts                   SICSR       Lowest no
                                                             ADCSR       Priority            FFE2h-FFE3h
12      AVD/     Auxiliary Voltage detector interrupt
        ADC      ADC End of conversion interrupt                                        yes

13      PWM ART  PWM ART overflow interrupt                 ARTCSR                 no FFE0h-FFE1h
                 PWM ART input capture interrupts          ARTICCSR

Note 1. Valid for Halt and Active-halt modes except for the MCC/RTC or CSS interrupt source which exits from Active-
halt mode only.

44/309

1
                                                        ST7MC1xx/ST7MC2xx

INTERRUPTS (Cont'd)

7.6 EXTERNAL INTERRUPTS                                 Each external interrupt source can be generated
                                                        on four (or five) different events on the pin:
The pending interrupts are cleared writing a differ-
ent value in the ISx[1:0], IPA or IPB bits of the        Falling edge
EICR.
                                                         Rising edge
Note: External interrupts are masked when an I/O
(configured as input interrupt) of the same inter-       Falling and rising edge
rupt vector is forced to VSS.
7.6.1 I/O PORT INTERRUPT SENSITIVITY                     Falling edge and low level

The external interrupt sensitivity is controlled by      Rising edge and high level (only for ei0 and ei2)
the IPA, IPB and ISxx bits of the EICR register
(Figure 24). This control allows to have up to 4 fully  To guarantee correct functionality, the sensitivity
independent external interrupt source sensitivities.    bits in the EICR register can be modified only
                                                        when the I1 and I0 bits of the CC register are both
                                                        set to 1 (level 3).

                                                        45/309

                                                             1
ST7MC1xx/ST7MC2xx

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

   PORT D [6:4] INTERRUPTS            EICR
           PDOR.6                IS30 IS31

         PDDDR.6                 SENSITIVITY  PD6
PD6
                                 CONTROL      PD5   ei0 INTERRUPT SOURCE
                     IPA BIT                       ei0 INTERRUPT SOURCE
                                              PD4   ei1 INTERRUPT SOURCE

   PORT D [3:1] INTERRUPTS            EICR            ei2 INTERRUPT SOURCE
                                 IS30 IS31         ei2 INTERRUPT SOURCE
           PDOR.3
         PDDDR.3                 SENSITIVITY  PD3
PD3
                                 CONTROL      PD2

                                              PD1

PORT A3, PORT A[7:5] INTERRUPTS  EICR

           PAOR.7                IS20 IS21
         PADDR.7
                                 SENSITIVITY  PA7
PA7
                                              PA6
                                 CONTROL
                                              PA5

                                              PA3

   PORT C [3:1] INTERRUPTS            EICR
           PCOR.3                IS10 IS11

         PCDDR.3                 SENSITIVITY  PC3
PC3
                                 CONTROL      PC2
                     IPB BIT
                                              PC1

PORT C0, PORT B[7:6] INTERRUPTS  EICR

           PCOR.0                IS10 IS11
         PCDDR.0
                                 SENSITIVITY  PC0
PC0
                                 CONTROL      PB7

                                              PB6

46/309

1
                                                                   ST7MC1xx/ST7MC2xx

INTERRUPTS (Cont'd)

7.7 EXTERNAL INTERRUPT CONTROL REGISTER (EICR)

Read / Write                                            These 2 bits can be written only when I1 and I0 of
Reset Value: 0000 0000 (00h)                            the CC register are both set to 1 (level 3).

7                                                0      Bit 5 = IPB Interrupt polarity for port C

IS11 IS10 IPB IS21 IS20 IS31 IS30 IPA                   This bit is used to invert the sensitivity of the port
                                                        C[3:1] external interrupts. It can be set and cleared
Bit 7:6 = IS1[1:0] ei2 sensitivity                      by software only when I1 and I0 of the CC register
The interrupt sensitivity, defined using the IS1[1:0]   are both set to 1 (level 3).
bits, is applied to the following external interrupts:  0: No sensitivity inversion
- ei2 (port C3..1)                                      1: Sensitivity inversion

           External Interrupt Sensitivity               Bit 4:3= IS2[1:0] ei1sensitivity
                                                        The interrupt sensitivity, defined using the IS2[1:0]
IS11 IS10                                               bits, is applied to the following external interrupts:
                                                        - ei1 (port A3, A5...A7)
           IPB bit =0         IPB bit =1

00         Falling edge &     Rising edge
              low level       & high level
                                                        IS21 IS20  External Interrupt Sensitivity
0 1 Rising edge only Falling edge only
                                                          00           Falling edge & low level
1 0 Falling edge only Rising edge only                    01                Rising edge only
                                                          10                Falling edge only
11                      Rising and falling edge           11
                                                                        Rising and falling edge
- ei2 (port C0, B7..6)

IS11 IS10  External Interrupt Sensitivity               Bit 2:1= IS3[1:0] ei0sensitivity
                                                        The interrupt sensitivity, defined using the IS2[1:0]
  00           Falling edge & low level                 bits, is applied to the following external interrupts:
  01                Rising edge only
  10                Falling edge only
  11
                Rising and falling edge

                                                                   47/309

                                                                        1
ST7MC1xx/ST7MC2xx

EXTERNAL INTERRUPT CONTROL REGISTER (EICR) (Cont'd)

- ei0 (port D6..4)

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

1 0 Falling edge only Rising edge only

11                  Rising and falling edge

- ei0 (port D3..1)

IS31 IS30           External Interrupt Sensitivity

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

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

48/309

1
                                                                   ST7MC1xx/ST7MC2xx

INTERRUPTS (Cont'd)

Table 9. Nested Interrupts Register Map and Reset Values

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

                             ei1                ei0            MCC + SI           MCES

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

                         MTC C/D            MTC R/Z         MTC U/CL               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

                             SCI            TIMER B            TIMER A             SPI

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              AVD

0027h    ISPR3        I1_15       I0_15  I1_14       I0_14  I1_13  I0_13    I1_12       I0_12
0028h    Reset Value    1           1      1           1      1      1        1           1

         EICR         IS11        IS10    IPB        IS21   IS20   IPA      0           0
         Reset Value    0           0      0           0
                                                            0            0

                                                                                        49/309

                                                                                             1
ST7MC1xx/ST7MC2xx

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 25): Slow, Wait (Slow-wait), Active-          internal clock in the device,
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 MCC-
means of a master clock which is based on the           SR register: the SMS bit which enables or disables
main oscillator frequency divided or multiplied by 2    Slow mode and two CPx bits which select the in-
(fOSC2).                                                ternal 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 entering
                                                        the Wait mode while the device is already in Slow
Figure 25. Power Saving Mode Transitions                mode.

                                            High        Figure 26. 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

50/309

1
                                                                         ST7MC1xx/ST7MC2xx

POWER SAVING MODES (Cont'd)

8.3 WAIT MODE                                           Figure 27. 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 or          Y
an Interrupt occurs, causing it to wake up.                                   OSCILLATOR ON

Refer to Figure 27.                                                      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.

                                                                                          51/309

                                                                                               1
ST7MC1xx/ST7MC2xx

POWER SAVING MODES (Cont'd)

8.4 ACTIVE-HALT AND HALT MODES                         Figure 28. Active-halt Timing Overview

Active-halt and Halt modes are the two lowest          RUN  ACTIVE    256 OR 4096 CPU      RUN
power consumption modes of the MCU. They are                 HALT      CYCLE DELAY 1)
both entered by executing the `HALT' instruction.
The decision to enter either in Active-halt or Halt           HALT       RESET       FETCH
mode is given by the MCC/RTC interrupt enable          INSTRUCTION          OR      VECTOR
flag (OIE bit in MCCSR register).                      [MCCSR.OIE=1]
                                                                      INTERRUPT

MCCSR Power Saving Mode entered when HALT

OIE bit  instruction is executed

0 Halt mode                                            Figure 29. Active-halt Mode Flow-chart
1 Active-halt mode
                                                                          OSCILLATOR ON
                                                       HALT INSTRUCTION   PERIPHERALS 2)OFF
                                                          (MCCSR.OIE=1)
8.4.1 ACTIVE-HALT MODE                                                    CPU              OFF

Active-halt mode is the lowest power consumption                          I[1:0] BITS          10
mode of the MCU with a real-time clock available.
It is entered by executing the `HALT' instruction                         N
when the OIE bit of the Main Clock Controller Sta-                                  RESET
tus register (MCCSR) is set (see section 6.4 on
page 37 for more details on the MCCSR register).       N                         Y

The MCU can exit Active-halt mode on reception              INTERRUPT 3)
of either an MCC/RTC interrupt, a specific inter-
rupt (see Table 8, "Interrupt Mapping," on                                OSCILLATOR ON
page 44) or a RESET. When exiting Active-halt
mode by means of an interrupt, no 256 or 4096               Y             PERIPHERALS OFF
CPU cycle delay occurs. The CPU resumes oper-
ation by servicing the interrupt or by fetching the                       CPU                  ON
reset vector which woke it up (see Figure 29).
                                                                          I[1:0] BITS      XX 4)
When entering Active-halt mode, the I[1:0] bits in
the CC register are forced to `10b' to enable inter-                      256 OR 4096 CPU CLOCK
rupts. Therefore, if an interrupt is pending, the                                 CYCLE DELAY
MCU wakes up immediately.
                                                                          OSCILLATOR        ON
In Active-halt mode, only the main oscillator and its                     PERIPHERALS
associated counter (MCC/RTC) are running to                               CPU               ON
keep a wake-up time base. All other peripherals                           I[1:0] BITS       ON
are not clocked except those which get their clock                                         XX 4)
supply from another clock generator (such as ex-
ternal or auxiliary oscillator).                                                           FETCH RESET VECTOR
                                                                                          OR SERVICE INTERRUPT
The safeguard against staying locked in Active-
halt mode is provided by the oscillator interrupt.     Notes:

Note: As soon as the interrupt capability of one of    1. This delay occurs only if the MCU exits Active-
the oscillators is selected (MCCSR.OIE bit set),       halt mode by means of a RESET.
entering Active-halt mode while the Watchdog is
active does not generate a RESET.                      2. Peripheral clocked with an external clock source
This means that the device cannot spend more           can still be active.
than a defined delay in this power saving mode.
                                                       3. Only the MCC/RTC interrupt and some specific
                                                       interrupts can exit the MCU from Active-halt mode
                                                       (such as external interrupt). Refer to Table 8, "In-
                                                       terrupt Mapping," on page 44 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 restored when the CC
                                                       register is popped.

52/309

1
                                                                        ST7MC1xx/ST7MC2xx

POWER SAVING MODES (Cont'd)                            Figure 31. 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 6.4 on page 37 for more de-
tails on the MCCSR register).                             1

The MCU can exit Halt mode on reception of either      WATCHDOG            OSCILLATOR OFF
a specific interrupt (see Table 8, "Interrupt Map-         RESET
ping," on page 44) or a RESET. When exiting Halt                           PERIPHERALS 2) OFF
mode by means of a RESET or an interrupt, the
oscillator is immediately turned on and the 256 or                         CPU              OFF
4096 CPU cycle delay is used to stabilize the os-
cillator. After the start up delay, the CPU resumes                        I[1:0] BITS      10
operation by servicing the interrupt or by fetching
the reset vector which woke it up (see Figure 31).                         N
                                                                                     RESET
When entering Halt mode, the I[1:0] bits in the CC
register are forced to `10b'to enable interrupts.      N                                Y
Therefore, if an interrupt is pending, the MCU
wakes up immediately.                                     INTERRUPT 3)

In Halt mode, the main oscillator is turned off caus-        Y             OSCILLATOR ON
ing all internal processing to be stopped, including
the operation of the on-chip peripherals. All periph-                      PERIPHERALS OFF
erals are not clocked except the ones which get
their clock supply from another clock generator                            CPU              ON
(such as an external or auxiliary oscillator).
                                                                           I[1:0] BITS      XX 4)
The compatibility of Watchdog operation with Halt
mode is configured by the "WDGHALT" option bit                          256 OR 4096 CPU CLOCK
of the option byte. The HALT instruction when ex-                               CYCLE DELAY
ecuted while the Watchdog system is enabled, can
generate a Watchdog RESET (see section 14.1 on                             OSCILLATOR        ON
page 290 for more details).                                                PERIPHERALS
                                                                           CPU               ON
Figure 30. Halt Timing Overview                                            I[1:0] BITS       ON
                                                                                            XX 4)

RUN  HALT      256 OR 4096 CPU  RUN                                                        FETCH RESET VECTOR
                 CYCLE DELAY                                                              OR SERVICE INTERRUPT

       HALT       RESET                                Notes:
INSTRUCTION          OR
[MCCSR.OIE=0]                                          1. WDGHALT is an option bit. See option byte sec-
               INTERRUPT                               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). Refer
                                                       to Table 8, "Interrupt Mapping," on page 44 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.

                                                                                            53/309

                                                                                                 1
ST7MC1xx/ST7MC2xx

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 32                                     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.

54/309

1
                                                                             ST7MC1xx/ST7MC2xx

I/O PORTS (Cont'd)
Figure 32. 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 10. 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.

                                                                                                   55/309

                                                                                                        1
ST7MC1xx/ST7MC2xx

I/O PORTS (Cont'd)
Table 11. 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.

56/309

1
                                                                                     ST7MC1xx/ST7MC2xx

I/O PORTS (Cont'd)                                     Figure 33. 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 33 on page 57. Other   event
transitions are potentially risky and should be
avoided, since they are likely to present unwanted
side-effects such as spurious interrupt generation.

                                                                                                          57/309

                                                                                                               1
ST7MC1xx/ST7MC2xx

I/O PORTS (Cont'd)

9.5.1 I/O Port Implementation                    Interrupt Ports

The I/O port register configurations are summa-  PA6, PA3, PB6, PC3, PC1, PD5, PD4, PD2 (with
rised as follows.                                pull-up)

Standard Ports                                                      MODE                      DDR OR
                                                 floating input
PA4, PA2:0, PB5:0, PC7:4,                        pull-up interrupt input                      0          0
PD7:6, PE5:0, PF5:0, PG7:0, PH7:0                open drain output
                                                 push-pull output                             0          1

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

                              1         0        PA7, PA5, PB7, PC2, PC0, PD6, PD3, PD1 (with-
                                                 out pull-up)
                              1         1

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

                                                                                              1          0

                                                                                              1          1

Table 12. Port Configuration

Port      Pin name           OR = 0       Input                                      Output  OR = 1
                              floating                  OR = 1          OR = 0                push-pull
Port A  PA7, PA5              floating                                 open drain             push-pull
        PA6, PA3              floating             floating interrupt  open drain             push-pull
Port B  PA2:0                 floating             pull-up interrupt   open drain             push-pull
        PB7                   floating                                 open drain             push-pull
Port C  PB6                   floating                   pull-up       open drain             push-pull
        PB5:0                 floating             floating interrupt  open drain             push-pull
Port D  PC7:4                 floating             pull-up interrupt   open drain             push-pull
Port E  PC3, PC1              floating                                 open drain             push-pull
Port F  PC2, PC0              floating                   pull-up       open drain             push-pull
Port G  PD7, PD0              floating                   pull-up       open drain             push-pull
Port H  PD6, PD3, PD1         floating             pull-up interrupt   open drain             push-pull
        PD5, PD4, PD2         floating             floating interrupt  open drain             push-pull
        PE5:0                 floating                   pull-up       open drain             push-pull
        PF5:0                 floating             floating interrupt  open drain             push-pull
        PG7:0                 floating             pull-up interrupt   open drain             push-pull
        PH7:0                                            pull-up       open drain
                                                         pull-up
                                                         pull-up
                                                         pull-up

58/309

1
                                                        ST7MC1xx/ST7MC2xx

I/O PORTS (Cont'd)

Table 13. 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

0012h PGDR

0013h PGDDR                MSB                                LSB

0014h PGOR

0015h PHDR

0016h PHDDR                MSB                                LSB

0017h PHOR

                                                              59/309

                                                                   1
ST7MC1xx/ST7MC2xx

10 ON-CHIP PERIPHERALS

10.1 WINDOW WATCHDOG (WWDG)

10.1.1 Introduction                                        ter is reloaded outside the window (see Figure
                                                           37)
The Window Watchdog is used to detect the oc-          Hardware/Software Watchdog activation
currence of a software fault, usually generated by       (selectable by option byte)
external interference or by unforeseen logical con-
ditions, which causes the application program to       Optional reset on HALT instruction
abandon its normal sequence. The Watchdog cir-           (configurable by option byte)
cuit generates an MCU reset on expiry of a pro-
grammed time period, unless the program refresh-      10.1.3 Functional Description
es the contents of the downcounter before the T6
bit becomes cleared. An MCU reset is also gener-      The counter value stored in the WDGCR register
ated if the 7-bit downcounter value (in the control   (bits T[6:0]), is decremented every 16384 fOSC2
register) is refreshed before the downcounter has     cycles (approx.), and the length of the timeout pe-
reached the window register value. This implies       riod can be programmed by the user in 64 incre-
that the counter must be refreshed in a limited win-  ments.
dow.
                                                      If the watchdog is activated (the WDGA bit is set)
10.1.2 Main Features                                  and when the 7-bit downcounter (T[6:0] bits) rolls
                                                      over from 40h to 3Fh (T6 becomes cleared), it ini-
Programmable free-running downcounter                tiates a reset cycle pulling low the reset pin for typ-
                                                      ically 30s. If the software reloads the counter
Conditional reset                                    while the counter is greater than the value stored
                                                      in the window register, then a reset is generated.
    Reset (if watchdog activated) when the down-
     counter value becomes less than 40h

    Reset (if watchdog activated) if the downcoun-

Figure 34. Watchdog Block Diagram

        RESET                                         WATCHDOG WINDOW REGISTER (WDGWR)

                                       -     W6 W5 W4 W3 W2 W1 W0

                          comparator
                            = 1 when

                          T6:0 > W6:0 CMP

                          Write WDGCR

                                                      WATCHDOG CONTROL REGISTER (WDGCR)

                                       WDGA T6 T5 T4 T3 T2 T1 T0

                      MCC/RTC                              6-BIT DOWNCOUNTER (CNT)

               fOSC2           DIV 64

                                                           WDG PRESCALER
                                                                   DIV 4

                            12-BIT MCC
                          RTC COUNTER

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

60/309

1
                                                        ST7MC1xx/ST7MC2xx

WINDOW WATCHDOG (Cont'd)                                  between a minimum and a maximum value due
                                                          to the unknown status of the prescaler when writ-
The application program must write in the                 ing to the WDGCR register (see Figure 36).
WDGCR register at regular intervals during normal
operation to prevent an MCU reset. This operation         The window register (WDGWR) contains the
must occur only when the counter value is lower           high limit of the window: To prevent a reset, the
than the window register value. The value to be           downcounter must be reloaded when its value is
stored in the WDGCR register must be between              lower than the window register value and greater
FFh and C0h (see Figure 35):                              than 3Fh. Figure 37 describes the window watch-
                                                          dog process.
Enabling the watchdog:
  When Software Watchdog is selected (by option         Note: The T6 bit can be used to generate a soft-
  byte), the watchdog is disabled after a reset. It is  ware reset (the WDGA bit is set and the T6 bit is
  enabled by setting the WDGA bit in the WDGCR          cleared).
  register, then it cannot be disabled again except
  by a reset.                                           Watchdog Reset on Halt option
                                                          If the watchdog is activated and the watchdog re-
  When Hardware Watchdog is selected (by option           set on halt option is selected, then the HALT in-
  byte), the watchdog is always active and the            struction will generate a Reset.
  WDGA bit is not used.
                                                        10.1.4 Using Halt Mode with the WDG
Controlling the downcounter:
  This downcounter is free-running: It counts down      If Halt mode with Watchdog is enabled by option
  even if the watchdog is disabled. When the            byte (no watchdog reset on HALT instruction), it is
  watchdog is enabled, the T6 bit must be set to        recommended before executing the HALT instruc-
  prevent generating an immediate reset.                tion to refresh the WDG counter, to avoid an unex-
  The T[5:0] bits contain the number of increments      pected WDG reset immediately after waking up
  which represents the time delay before the            the microcontroller.
  watchdog produces a reset (see Figure 35. Ap-
  proximate Timeout Duration). The timing varies

                                                        61/309

                                                             1
ST7MC1xx/ST7MC2xx

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

Figure 35. 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

62/309

1
                                                                                                                  ST7MC1xx/ST7MC2xx

WINDOW WATCHDOG (Cont'd)

Figure 36. 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

                                                                                                                                                        63/309

                                                                                                                                                             1
ST7MC1xx/ST7MC2xx

WINDOW WATCHDOG (Cont'd)
Figure 37. Window Watchdog Timing Diagram

                                   T[5:0] CNT downcounter

         WDGWR

               3Fh

                                                                                   time
                             Refresh not allowed Refresh Window (step = 16384/fOSC2)
                T6 bit
                Reset

10.1.6 Low Power Modes

Mode    Description
  Slow
  Wait   No effect on Watchdog: The downcounter continues to decrement at normal speed.

   Halt  No effect on Watchdog: The downcounter continues to decrement.

Active-  OIE bit in   WDGHALT bit
halt      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-
                                    rupt or a reset.

         0              0           If an interrupt is received (refer to interrupt table mapping to see interrupts

                                    which can occur in halt mode), 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 10.1.8 below.

         0              1           A reset is generated instead of entering halt mode.

                                    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.7 Hardware Watchdog Option                            10.1.8 Using Halt Mode with the WDG
                                                           (WDGHALT option)
If Hardware Watchdog is selected by option byte,
the watchdog is always active and the WDGA bit in          The following recommendation applies if Halt
the WDGCR is not used. Refer to the Option Byte            mode is used when the watchdog is enabled.
description.
                                                            Before executing the HALT instruction, refresh
                                                             the WDG counter, to avoid an unexpected WDG
                                                             reset immediately after waking up the microcon-
                                                             troller.

64/309

1
                                                      ST7MC1xx/ST7MC2xx

WINDOW WATCHDOG (Cont'd)                           WINDOW REGISTER (WDGWR)
10.1.9 Interrupts                                  Read/Write
None.                                              Reset Value: 0111 1111 (7Fh)

10.1.10 Register Description                       7                             0
CONTROL REGISTER (WDGCR)
Read / Write                                       -  W6 W5 W4 W3 W2 W1 W0
Reset Value: 0111 1111 (7Fh)

7                             0                    Bit 7 = Reserved

WDGA T6 T5 T4 T3 T2 T1 T0                          Bits 6:0 = W[6:0] 7-bit window value
                                                   These bits contain the window value to be com-
                                                   pared to the downcounter.

Bit 7 = WDGA Activation bit.

This bit is set by software and only cleared by
hardware after a reset. When WDGA = 1, the
watchdog can generate a reset.

0: Watchdog disabled

1: Watchdog enabled

Note: This bit is not used if the hardware watch-
dog option is enabled by option byte.

Bits 6:0 = T[6:0] 7-bit counter (MSB to LSB).
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).

                                                                                 65/309

                                                                                      1
ST7MC1xx/ST7MC2xx

Table 14. 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

002Bh    WDGWR        0     W6  W5  W4                  W3  W2  W1  W0
         Reset Value  0
                            1   1   1                   1   1   1   1

66/309

1
                                                                            ST7MC1xx/ST7MC2xx

10.2 PWM AUTO-RELOAD TIMER (ART)

10.2.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 38. 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

                                                                                            67/309

                                                                                                 1
ST7MC1xx/ST7MC2xx

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

10.2.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 39. Output compare control

fCOUNTER

                      ARTARR=FDh

COUNTER FDh      FEh       FFh       FDh              FEh  FFh  FDh  FEh  FFh

        OCRx                    FDh                                  FEh

        PWMDCRx       FDh                                       FEh

PWMx

68/309

1
                                                                       ST7MC1xx/ST7MC2xx

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 40. 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 41. 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

                                                                                 69/309

                                                                                      1
ST7MC1xx/ST7MC2xx

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 appli-
                                                           cation, prior to executing the HALT instruction, the
                                                           counter must be disabled by clearing the TCE bit
                                                           in the ARTCSR register to avoid spurious counter
                                                           increments.

Figure 42. 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

70/309

1
                                                                        ST7MC1xx/ST7MC2xx

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 register
value is not guaranteed if the input capture pin and
the external clock change simultaneously.

Figure 43. Input Capture Timing Diagram

fCOUNTER

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

      ARTICx PIN                                              INTERRUPT

        CFx FLAG                                                    04h
                                               xxh
                                                                                              t
ICRx REGISTER

                                                                                                 71/309

                                                                                                      1
ST7MC1xx/ST7MC2xx

ON-CHIP PERIPHERALS (Cont'd)                              0: New transition not yet reached
                                                          1: Transition reached
10.2.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

72/309

1
                                                      ST7MC1xx/ST7MC2xx

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.

                                                                                   73/309

                                                                                        1
ST7MC1xx/ST7MC2xx

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.

74/309

1
                                                               ST7MC1xx/ST7MC2xx

PWM AUTO-RELOAD TIMER (Cont'd)
Table 15. 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
0074h    PWMDCR3         0    0    0    0    0                    0    0    0
0075h    Reset Value
0076h                 DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
0077h    PWMDCR2         0    0    0    0    0                    0    0    0
0078h    Reset Value
0079h                 DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
007Ah    PWMDCR1         0    0    0    0    0                    0    0    0
007Bh    Reset Value
007Ch                 DC7   DC6  DC5  DC4  DC3                 DC2   DC1  DC0
007Dh    PWMDCR0         0    0    0    0    0                    0    0    0
007Eh    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  OIE  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

                                                                          75/309

                                                                               1
ST7MC1xx/ST7MC2xx

10.3 16-BIT TIMER                                     When reading an input signal on a non-bonded
                                                      pin, the value will always be `1'.
10.3.1 Introduction
                                                      10.3.3 Functional Description
The timer consists of a 16-bit free-running counter
driven by a programmable prescaler.                   10.3.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 & 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 devices of the ST7 family have two on-chip          Counter Low Register (CLR) is the least sig-
16-bit timers. They are completely independent,            nificant byte (LS Byte).
and do not share any resources. They are syn-
chronized after a Device reset as long as the timer   Alternate Counter Register (ACR)
clock frequencies 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).
the 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.3.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 4 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).
Output compare functions 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
Input capture functions with                         of the CR2 register, as illustrated in Table 16 Clock
                                                      Control Bits. The value in the counter register re-
    2 dedicated 16-bit registers                     peats every 131 072, 262 144 or 524 288 CPU
                                                      clock cycles depending 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 44.

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

76/309

1
                                                                        ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)
Figure 44. Timer Block Diagram

        fCPU                                                INTERNAL BUS
                                           16-BIT TIMER PERIPHERAL INTERFACE

                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)

                                                                                                                             77/309

                                                                                                                 1
ST7MC1xx/ST7MC2xx

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 (Device awakened by an interrupt)
Byte value is buffered automatically.                   or from the reset count (Device awakened by a
                                                        Reset).
This buffered value remains unchanged until the
16-bit read sequence is completed, even if the          10.3.3.2 External Clock
user reads the MS Byte several times.
                                                        The external clock (where available) is selected if
After a complete reading sequence, if only the          CC0=1 and CC1=1 in CR2 register.
CLR register or ACLR register are read, they re-
turn the LS Byte of the count value at the time of      The status of the EXEDG bit in the CR2 register
the read.                                               determines the type of level transition on the exter-
                                                        nal clock pin EXTCLK that will trigger the free run-
Whatever the timer mode used (input capture, out-       ning counter.
put compare, one pulse mode or PWM mode) an
overflow occurs when the counter rolls over from        The counter is synchronised with the falling edge
FFFFh to 0000h then:                                    of the internal CPU clock.

The TOF bit of the SR register is set.                A minimum of four falling edges of the CPU clock
                                                        must occur between two consecutive active edges
A timer interrupt is generated if:                    of the external clock; thus the external clock fre-
                                                        quency must be less than a quarter of the CPU
    TOIE bit of the CR1 register is set and            clock frequency.

    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.

78/309

1
                                                                      ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)
Figure 45. Counter Timing Diagram, internal clock divided by 2

                           CPU CLOCK        FFFD FFFE FFFF 0000 0001 0002 0003
                   INTERNAL RESET

                        TIMER CLOCK
              COUNTER REGISTER
TIMER OVERFLOW FLAG (TOF)

Figure 46. Counter Timing Diagram, internal clock divided by 4

                           CPU CLOCK                            0000  0001
                   INTERNAL RESET

                        TIMER CLOCK
              COUNTER REGISTER FFFC FFFD
TIMER OVERFLOW FLAG (TOF)

Figure 47. Counter Timing Diagram, internal clock divided by 8

CPU CLOCK

     INTERNAL RESET                   FFFC  FFFD                      0000
          TIMER CLOCK

COUNTER REGISTER

   TIMER OVERFLOW FLAG (TOF)

Note: The Device is in reset state when the internal reset signal is high, when it is low the Device is run-
ning.

                                                                                79/309

                                                                                     1
ST7MC1xx/ST7MC2xx

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

10.3.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 2 input capture functions in the 16-bit       running counter on the active transition on the
timer.                                                  ICAPi pin (see Figure 49).

The two input capture 16-bit 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 detected by 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 (i.e.
                    ICiLR                             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 16      3. The 2 input capture functions can be used
  Clock Control Bits).                                   together even if the timer also uses the 2 output
                                                         compare functions.
Select the edge of the active transition on the
  ICAP2 pin with the IEDG2 bit (the ICAP2 pin         4. In One pulse Mode and PWM mode only the
  must be configured as floating input).                 input capture 2 can be used.

And select the following in the CR1 register:         5. The alternate inputs (ICAP1 & ICAP2) are
                                                         always directly connected to the timer. So any
Set the ICIE bit to generate an interrupt after an     transitions on these pins activate the input cap-
  input capture coming from either the ICAP1 pin         ture function.
  or the ICAP2 pin                                       Moreover if one of the ICAPi pin is configured
                                                         as an input and the second one as an output,
Select the edge of the active transition on the        an interrupt can be generated if the user toggle
  ICAP1 pin with the IEDG1 bit (the ICAP1pin must        the output pin and if the ICIE bit is set.
  be configured as floating input).                      This can be avoided if the input capture func-
                                                         tion i is disabled by reading the ICiHR (see note
                                                         1).

                                                      6. The TOF bit can be used with interrupt in order
                                                         to measure event that go beyond the timer
                                                         range (FFFFh).

80/309

1
                                                              ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)
Figure 48. 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 49. Input Capture Timing Diagram

          TIMER CLOCK  FF01                       FF02        FF03
COUNTER REGISTER                                                                FF03

         ICAPi PIN
       ICAPi FLAG

       ICAPi REGISTER

       Note: The active edge is the rising edge.

Note: The time between an event on the ICAPi pin
and the appearance of the corresponding flag is
from 2 to 3 CPU clock cycles. This depends on the
moment when the ICAP event happens relative to
the timer clock.

                                                                                             81/309

                                                                                                  1
ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)                                  The OCMPi pin takes OLVLi bit value (OCMPi
                                                        pin latch is forced low during reset).
10.3.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 CR2 register and the I bit is cleared in
there are 2 output compare functions in the 16-bit      the CC register (CC).
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)

    Generates an interrupt if enabled                PRESC = Timer prescaler factor (2, 4 or 8 de-
                                                                    pending on CC[1:0] bits, see Table 16
Two 16-bit registers Output Compare Register 1                      Clock Control Bits)
(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
        OCiHR      OCiLR

These registers are readable and writable and are     If the timer clock is an external clock, the formula
not affected by the timer hardware. A reset event     is:
changes the OCiR value to 8000h.
                                                               OCiR = t * fEXT
Timing resolution is one count of the free running
                                                      Where:
counter: (fCPU/CC[1:0]).
                                                      t       = Output compare period (in seconds)

Procedure:                                            fEXT = External timer clock frequency (in hertz)

To use the output compare function, select the fol-   Clearing the output compare interrupt request (i.e.
lowing in the CR2 register:                           clearing the OCFi bit) is done by:

Set the OCiE bit if an output is needed then the    1. Reading the SR register while the OCFi bit is
  OCMPi pin is dedicated to the output compare i         set.
  signal.
                                                      2. An access (read or write) to the OCiLR register.
Select the timer clock (CC[1:0]) (see Table 16
  Clock Control Bits).                                The following procedure is recommended to pre-
                                                      vent the OCFi bit from being set between the time
And select the following in the CR1 register:         it is read and the write to the OCiR register:

Select the OLVLi bit to applied to the OCMPi pins    Write to the OCiHR register (further compares
  after the match occurs.                               are inhibited).

Set the OCIE bit to generate an interrupt if it is   Read the SR register (first step of the clearance
  needed.                                               of the OCFi bit, which may be already set).

When a match is found between OCRi register            Write to the OCiLR register (enables the output
and CR register:                                        compare function and clears the OCFi bit).

OCFi bit is set.

82/309

1
                                                                               ST7MC1xx/ST7MC2xx

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 not
   until the OCiLR register is also written.         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       FOLVLi bits have no effect in both one pulse mode
   appear when a match is found but an interrupt     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 Figure 51
   for an example with fCPU/2 and Figure 52 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 50. 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

                                                                                      83/309

                                                                                           1
ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)
Figure 51. 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 52. 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)

84/309

1
                                                              ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)                                 Clearing the Input Capture interrupt request (i.e.
                                                      clearing the ICFi bit) is done in two steps:
10.3.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)

    Using the OLVL1 bit, select the level to be ap-  PRESC = Timer prescaler factor (2, 4 or 8 depend-
     plied to the OCMP1 pin after the pulse.                        ing on the CC[1:0] bits, see Table 16
                                                                    Clock Control Bits)
    Using the OLVL2 bit, select the level to be ap-
     plied to the OCMP1 pin during the pulse.         If the timer clock is an external clock the formula is:

    Select the edge of the active transition on the          OCiR = t * fEXT -5
     ICAP1 pin with the IEDG1 bit (the ICAP1 pin
     must be configured as floating input).           Where:

3. Select the following in the CR2 register:          t       = Pulse period (in seconds)

    Set the OC1E bit, the OCMP1 pin is then ded-     fEXT = External timer clock frequency (in hertz)
     icated to the Output Compare 1 function.
                                                      When the value of the counter is equal to the value
    Set the OPM bit.                                 of the contents of the OC1R register, the OLVL1
                                                      bit is output on the OCMP1 pin, (See Figure 53).
    Select the timer clock CC[1:0] (see Table 16
     Clock Control Bits).

              One pulse mode cycle                    Notes:

    When       ICR1 = Counter                         1. The OCF1 bit cannot be set by hardware in one
event occurs  OCMP1 = OLVL2                              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
When a valid event occurs on the ICAP1 pin, the          capture. The ICAP2 pin can be used to perform
counter value is loaded in the ICR1 register. The        input capture (ICF2 can be set and IC2R can be
counter is then initialized to FFFCh, the OLVL2 bit      loaded) but the user must take care that the
is output on the OCMP1 pin and the ICF1 bit is set.      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.

                                                                                           85/309

                                                                                                1
ST7MC1xx/ST7MC2xx

16-BIT TIMER (Cont'd)
Figure 53. 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 54. Pulse Width Modulation Mode Timing Example

         COUNTER 34E2                                                        34E2 FFFC

                       compare2  OLVL2                     OLVL1                       OLVL2
Note:
                                          compare1                           compare2

86/309
16-BIT TIMER                                                        ST7MC1xx/ST7MC2xx
10.3.3.6 Pulse Width Modulation Mode
                                                                Pulse Width Modulation cycle

Note:                                            i
Procedure
                                                      i

                                                             i
                                      Notes:
ST7MC1xx/ST7MC2xx

16-BIT TIMER

10.3.4 Low Power Modes

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 Device is woken up by an interrupt with "exit from Halt mode" capability or from the counter reset
      value when the Device 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 Device 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.3.5 Interrupts

Input Capture 1 event/Counter reset in PWM mode               ICF1  ICIE  Yes  No
Input Capture 2 event
Output Compare 1 event (not available in PWM mode)            ICF2        Yes  No
Output Compare 2 event (not available in PWM mode)
Timer Overflow event                                          OCF1  OCIE  Yes  No

Note:                                                          OCF2        Yes  No

                                                               TOF TOIE Yes     No

10.3.6 Summary of Timer modes

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

                               No   Not Recommended3)          No

3) See note 4 in Section 10.3.3.6 Pulse Width Modulation Mode

1
                    (Cont'd)                            Bit 4 =    Forced Output Compare 2.

Each Timer is associated with three control and         This bit is set and cleared by software.
status registers, and with six pairs of data registers
(16-bit values) relating to the two input captures,     0: No effect on the OCMP2 pin.
the two output compares, the counter and the al-
ternate counter.                                        1: Forces the OLVL2 bit to be copied to the

                                                        OCMP2 pin, if the OC2E bit is set and even if

                                                        there is no successful comparison.

                                                        Bit 3 =    Forced Output Compare 1.

Read/Write                                              This bit is set and cleared by software.

                                                        0: No effect on the OCMP1 pin.

Reset Value: 0000 0000 (00h)                            1: Forces OLVL1 to be copied to the OCMP1 pin, if

7                                             0         the OC1E bit is set and even if there is no suc-

                                                        cessful comparison.

ICIE OCIE TOIE FOLV2 FOLV1 OLVL2 IEDG1 OLVL1

                                                        Bit 2 =    Output Level 2.

Bit 7 = Input Capture Interrupt Enable.                 This bit is copied to the OCMP2 pin whenever a
0: Interrupt is inhibited.
1: A timer interrupt is generated whenever the          successful comparison occurs with the OC2R reg-

   ICF1 or ICF2 bit of the SR register is set.          ister and OCxE is set in the CR2 register. This val-

                                                        ue is copied to the OCMP1 pin in One Pulse Mode

                                                        and Pulse Width Modulation mode.

Bit 6 =     Output Compare Interrupt Enable.            Bit 1 =    Input Edge 1.

0: Interrupt is inhibited.                              This bit determines which type of level transition

1: A timer interrupt is generated whenever the          on the ICAP1 pin will trigger the capture.

OCF1 or OCF2 bit of the SR register is set.             0: A falling edge triggers the capture.

                                                        1: A rising edge triggers the capture.

Bit 5 =     Timer Overflow Interrupt Enable.

0: Interrupt is inhibited.                              Bit 0 =    Output Level 1.

1: A timer interrupt is enabled whenever the TOF        The OLVL1 bit is copied to the OCMP1 pin when-

bit of the SR register is set.                          ever a successful comparison occurs with the

                                                        OC1R register and the OC1E bit is set in the CR2

                                                        register.

                                                                                                    89/309

                                                                                                         1
               (Cont'd)

                                                     Bit 4 =     Pulse Width Modulation.

Read/Write                                           0: PWM mode is not active.
Reset Value: 0000 0000 (00h)
                                                     1: PWM mode is active, the OCMP1 pin outputs a

                                                     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 =        Output Compare 1 Pin Enable.          Bit 3, 2 =         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

one-pulse mode). Whatever the value of the OC1E

bit, the Output Compare 1 function of the timer re-           fCPU / 4                 0         0

mains active.                                                 fCPU / 2                 0         1

0: OCMP1 pin alternate function disabled (I/O pin             fCPU / 8                 1         0

free for general-purpose I/O).                       External Clock (where
                                                             available)
1: OCMP1 pin alternate function enabled.                                               1         1

Bit 6 =        Output Compare 2 Pin Enable.                : If the external clock pin is not available, pro-
                                                     gramming the external clock configuration stops
This bit is used only to output the signal from the  the counter.

timer on the OCMP2 pin (OLV2 in Output Com-

pare mode). Whatever the value of the OC2E bit,

the Output Compare 2 function of the timer re-

mains active.                                        Bit 1 =            Input Edge 2.

0: OCMP2 pin alternate function disabled (I/O pin    This bit determines which type of level transition

free for general-purpose I/O).                       on the ICAP2 pin will trigger the capture.

1: OCMP2 pin alternate function enabled.             0: A falling edge triggers the capture.

                                                     1: A rising edge triggers the capture.

Bit 5 =  One Pulse Mode.

0: One Pulse Mode is not active.                     Bit 0 =            External Clock Edge.

1: One Pulse Mode is active, the ICAP1 pin can be    This bit determines which type of level transition

used to trigger one pulse on the OCMP1 pin; the      on the external clock pin EXTCLK will trigger the

active transition is given by the IEDG1 bit. The     counter register.

length of the generated pulse depends on the         0: A falling edge triggers the counter register.

contents of the OC1R register.                       1: A rising edge triggers the counter register.

90/309

1
           (Cont'd)

Read Only                                                         Reading or writing the ACLR register does
                                                          not clear TOF.
Reset Value: 0000 0000 (00h)
                                                          Bit 4 =
The three least significant bits are not used.            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 =
0: No input capture (reset value).                        Bit 3 =
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 =
0: No match (reset value).                                Bit 2 =
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 while it is disabled.
                                                          0: Timer enabled
Bit 5 =                                                   1: Timer prescaler, counter and outputs disabled
0: No timer overflow (reset value).
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.

                                                          91/309

                                                               1
        (Cont'd)

Read Only                                              Read/Write
Reset Value: Undefined                                 Reset Value: 1000 0000 (80h)

This is an 8-bit read only register that contains the  This is an 8-bit register that contains the high part
high part of the counter value (transferred by the     of the value to be compared to the CHR register.
input capture 1 event).

7                 0                                    7    0

MSB               LSB                                  MSB  LSB

Read Only                                              Read/Write
Reset Value: Undefined                                 Reset Value: 0000 0000 (00h)

This is an 8-bit read only register that contains the  This is an 8-bit register that contains the low part of
low part of the counter value (transferred by the in-  the value to be compared to the CLR register.
put capture 1 event).

7                 0                                    7    0

MSB               LSB                                  MSB  LSB

92/309

1
     (Cont'd)

Read/Write                                               Read Only
Reset Value: 1000 0000 (80h)                             Reset Value: 1111 1111 (FFh)

This is an 8-bit register that contains the high part    This is an 8-bit register that contains the high part
of the value to be compared to the CHR register.         of the counter value.

7              0                                         7    0

MSB            LSB                                       MSB  LSB

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

                                                         MSB  LSB

Read Only                                                Read Only
Reset Value: 1111 1111 (FFh)                             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 counter value.                                    high part of the counter value (transferred by the
                                                         Input Capture 2 event).
7              0

MSB            LSB

                                                         7    0

                                                         MSB  LSB

Read Only                                                Read Only
Reset Value: 1111 1100 (FCh)                             Reset Value: Undefined

This is an 8-bit register that contains the low part of  This is an 8-bit read only register that contains the
the counter value. A write to this register resets the   low part of the counter value (transferred by the In-
counter. An access to this register after accessing      put Capture 2 event).
the CSR register clears the TOF bit.

7              0

MSB            LSB

                                                         7    0

                                                         MSB  LSB

                                                              93/309

                                                                   1
        (Cont'd)

Timer A: 32               ICIE  OCIE  TOIE  FOLV2  FOLV1  OLVL2  IEDG1  OLVL1
Timer B: 42 Reset Value     0      0    0      0      0      0      0       0

Timer A: 31              OC1E   OC2E  OPM    PWM    CC1    CC0   IEDG2  EXEDG
Timer B: 41 Reset Value     0      0    0      0      0      0      0       0
                                                                     -
Timer A: 33              ICF1   OCF1  TOF    ICF2  OCF2    TIMD     0       -
Timer B: 43 Reset Value     0      0    0      0      0      0       -      0
                                   -     -
Timer A: 34              MSB                    -      -      -      -    LSB
Timer B: 44 Reset Value     -      -     -                                  -
                                            -      -      -          -
Timer A: 35              MSB       -     -                                LSB
Timer B: 45 Reset Value     -               -      -      -          -      -
                                   -     -
Timer A: 36              MSB                -      -      -          -    LSB
Timer B: 46 Reset Value     -      -     -                                  -
                                            -      -      -          -
Timer A: 37              MSB       -     -                                LSB
Timer B: 47 Reset Value     -               -      -      -         1       -
                                   1    1
Timer A: 3E              MSB                1      1      1         0     LSB
Timer B: 4E Reset Value     -      1    1                                   -
                                            1      1      1          1
Timer A: 3F              MSB       1    1                                 LSB
Timer B: 4F Reset Value     -               1      1      1         0       -
                                   1    1                            -
Timer A: 38              MSB       -     -  1      1      1               LSB
Timer B: 48 Reset Value     1                                        -      1
                                   -     -  -      -      -
Timer A: 39              MSB                                              LSB
Timer B: 49 Reset Value     1               -      -      -                 0

Timer A: 3A              MSB                                              LSB
Timer B: 4A Reset Value     1                                               1

Timer A: 3B              MSB                                              LSB
Timer B: 4B Reset Value     1                                               0

Timer A: 3C              MSB                                              LSB
Timer B: 4C Reset Value     -                                               -

Timer A: 3D              MSB                                              LSB
Timer B: 4D Reset Value     -                                               -

94/309

1
(cont'd)

The Serial Peripheral Interface (SPI) allows full-  Figure 55 on page 96 shows the serial peripheral
duplex, synchronous, serial communication with      interface (SPI) block diagram. There are three reg-
external devices. An SPI system may consist of a    isters:
master and one or more slaves or a system in
which devices may be either masters or slaves.          SPI Control Register (SPICR)

Full duplex synchronous transfers (on three            SPI Control/Status Register (SPICSR)
   lines)
                                                       SPI Data Register (SPIDR)
Simplex synchronous transfers (on two lines)
Master or slave operation                          The SPI is connected to external devices through
6 master mode frequencies (fCPU/4 max.)            four 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
End of transfer interrupt flag                         MOSI: Master Out / Slave In data
Write collision, Master Mode Fault and Overrun
                                                       SCK: Serial Clock out by SPI masters and in-
   flags                                                 put by SPI slaves

        In slave mode, continuous transmission is       SS: Slave select:
not possible at maximum frequency due to the             This input signal acts as a `chip select' to let
software overhead for clearing status flags and to       the SPI master communicate with slaves indi-
initiate the next transmission sequence.                 vidually and to avoid contention on the data
                                                         lines. Slave SS inputs can be driven by stand-
                                                         ard I/O ports on the master Device.

                                                    95/309

                                                         1
             (cont'd)

                       Data/Address Bus     Interrupt
                          Read              request

             Read Buffer

             8-bit Shift Register        7                                             0
                                          SPIF WCOL OVR MODF 0  SOD SSM SSI

        SOD  Write
        bit
                                                                SS 1
                                                SPI
                                              STATE                     0
                                            CONTROL

                                         7                                 0

                                         SPIE SPE SPR2 MSTR CPOL CPHA SPR1 SPR0

                MASTER
               CONTROL

             SERIAL CLOCK
              GENERATOR

96/309

1
                                                  (cont'd)  the MISO pin. This implies full duplex communica-
                                                            tion with both data out and data in synchronized
A basic example of interconnections between a               with the same clock signal (which is provided by
single master and a single slave is illustrated in          the master device via the SCK pin).
Figure 56.
                                                            To use a single data line, the MISO and MOSI pins
The MOSI pins are connected together and the                must be connected at each node (in this case only
MISO pins are connected together. In this way               simplex communication is possible).
data is transferred serially between master and
slave (most significant bit first).                         Four possible data/clock timing relationships may
                                                            be chosen (see Figure 59 on page 100) but master
The communication is always initiated by the mas-           and slave must be programmed with the same tim-
ter. When the master device transmits data to a             ing mode.
slave device via MOSI pin, the slave device re-
sponds by sending data to the master device via

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

                                                                                             97/309

                                                                                                  1
                       (cont'd)

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 57):
manage the Slave Select signal by software. This
is configured by the SSM bit in the SPICSR regis-           If CPHA = 1 (data latched on second clock edge):
ter (see Figure 58).
                                                             SS internal must be held low during the entire
In software management, the external SS pin is              transmission. This implies that in single slave
free for other application uses and the internal SS         applications the SS pin either can be tied to
signal level is driven by writing to the SSI bit in the     VinSgSt,hoer  made free for standard I/O by  manag-
SPICSR register.                                                          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 first clock edge):

                                                             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.4.5.3).

         MOSI/MISO     Byte 1                               Byte 2        Byte 3

           Master SS

             Slave SS
        (if CPHA = 0)

             Slave SS
        (if CPHA = 1)

                                           SSM bit

                                  SSI bit                1  SS internal
                       SS external pin
                                                         0

98/309

1
                                                  (cont'd)           While the SPIF bit is set, all writes to the
                                                            SPIDR register are inhibited until the SPICSR reg-
In master mode, the serial clock is output on the           ister is read.
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.

        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:
                                                                Select the clock polarity and clock phase by
To operate the SPI in master mode, perform the                   configuring the CPOL and CPHA bits (see
following steps in order:                                        Figure 59).
1. Write to the SPICR register:                                           The slave must have the same CPOL
                                                                 and CPHA settings as the master.
    Select the clock frequency by configuring the             Manage the SS pin as described in Section
     SPR[2:0] bits.                                              10.4.3.2 and Figure 57. If CPHA = 1 SS must
                                                                 be held low continuously. If CPHA = 0 SS
    Select the clock polarity and clock phase by                must be held low during byte transmission and
     configuring the CPOL and CPHA bits. Figure                  pulled up between each byte to let the slave
     59 shows the four possible configurations.                  write in the shift register.
              The slave must have the same CPOL
     and CPHA settings as the master.                       2. Write to the SPICR register to clear the MSTR
                                                               bit and set the SPE bit to enable the SPI I/O
2. Write to the SPICSR register:                               functions.
    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
              MSTR and SPE bits remain set only if          The transmit sequence begins when the slave de-
     SS is high).                                           vice receives the clock signal and the most signifi-
                       if the SPICSR register is not writ-  cant bit of the data on its MOSI pin.

ten first, the SPICR register setting (MSTR bit)            When data transfer is complete:
may be not taken into account.
The transmit sequence begins when software                      The SPIF bit is set by hardware.
writes a byte in the SPIDR register.
                                                                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
When data transfer is complete:                             software sequence:

    The SPIF bit is set by hardware.                       1. An access to the SPICSR register while the
    An interrupt request is generated if the SPIE             SPIF bit is set

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

                                                            99/309

                                                                 1
                                                  (cont'd)  Figure 59 shows an SPI transfer with the four com-
                                                            binations of the CPHA and CPOL bits. The dia-
Four possible timing relationships may be chosen            gram may be interpreted as a master or slave tim-
by software, using the CPOL and CPHA bits (See              ing diagram where the SCK pin, the MISO pin and
Figure 59).                                                 the MOSI pin are directly connected between the
                                                            master and the slave device.
        The idle state of SCK must correspond to
the polarity selected in the SPICSR register (by                  : If CPOL is changed at the communication
pulling up SCK if CPOL = 1 or pulling down SCK if           byte boundaries, the SPI must be disabled by re-
CPOL = 0).                                                  setting the SPE bit.

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

         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

         SCK
         (CPOL = 1)

         SCK
         (CPOL = 0)

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

           MOSI         MSBit Bit 6
         (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.

100/309

1
                                                                 ST7MC1xx/ST7MC2xx

SERIAL PERIPHERAL INTERFACE (cont'd)                 10.4.5.2 Overrun Condition (OVR)

10.4.5 Error Flags                                   An overrun condition occurs when the master de-
                                                     vice has sent a data byte and the slave device has
10.4.5.1 Master Mode Fault (MODF)                    not cleared the SPIF bit issued from the previously
                                                     transmitted byte.
Master mode fault occurs when the master de-
vice's SS pin is pulled low.                         When an Overrun occurs:

When a Master mode fault occurs:                      The OVR bit is set and an interrupt request is
                                                       generated if the SPIE bit is set.
    The MODF bit is set and an SPI interrupt re-
     quest is generated if the SPIE bit is set.      In this case, the receiver buffer contains the byte
                                                     sent after the SPIF bit was last cleared. A read to
    The SPE bit is reset. This blocks all output    the SPIDR register returns this byte. All other
     from the device and disables the SPI periph-    bytes are lost.
     eral.
                                                     The OVR bit is cleared by reading the SPICSR
    The MSTR bit is reset, thus forcing the device  register.
     into slave mode.
                                                     10.4.5.3 Write Collision Error (WCOL)
Clearing the MODF bit is done through a software
sequence:                                            A write collision occurs when the software tries to
                                                     write to the SPIDR register while a data transfer is
1. A read access to the SPICSR register while the    taking place with an external device. When this
      MODF bit is set.                               happens, the transfer continues uninterrupted and
                                                     the software write will be unsuccessful.
2. A write to the SPICR register.
                                                     Write collisions can occur both in master and slave
Notes: To avoid any conflicts in an application      mode. See also Section 10.4.3.2 Slave Select
with multiple slaves, the SS pin must be pulled      Management.
high during the MODF bit clearing sequence. The
SPE and MSTR bits may be restored to their orig-     Note: A "read collision" will never occur since the
inal state during or after this clearing sequence.   received data byte is placed in a buffer in which
                                                     access is always synchronous with the CPU oper-
Hardware does not allow the user to set the SPE      ation.
and MSTR bits while the MODF bit is set except in
the MODF bit clearing sequence.                      The WCOL bit in the SPICSR register is set if a
                                                     write collision occurs.
In a slave device, the MODF bit can not be set, but
in a multimaster configuration the device can be in  No SPI interrupt is generated when the WCOL bit
slave mode with the MODF bit set.                    is set (the WCOL bit is a status flag only).

The MODF bit indicates that there might have         Clearing the WCOL bit is done through a software
been a multimaster conflict and allows software to   sequence (see Figure 60).
handle this using an interrupt routine and either
perform a reset or return to an application default
state.

Figure 60. Clearing the WCOL Bit (Write Collision Flag) Software Sequence

         Clearing sequence after SPIF = 1 (end of a data byte transfer)

1st Step  Read SPICSR

2nd Step  Read SPIDR   RESULT
                        SPIF = 0
                        WCOL = 0

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

1st Step               Read SPICSR                   RESULT      Note: Writing to the SPIDR register in-
2nd Step               Read SPIDR                      WCOL = 0  stead of reading it does not reset the
                                                                 WCOL bit.

                                                                           101/309

                                                                                 1
ST7MC1xx/ST7MC2xx

SERIAL PERIPHERAL INTERFACE (cont'd)                    For more security, the slave device may respond
                                                        to the master with the received data byte. Then the
10.4.5.4 Single Master and Multimaster                  master will receive the previous byte back from the
Configurations                                          slave device if all MISO and MOSI pins are con-
                                                        nected and the slave has not written to its SPIDR
There are two types of SPI systems:                     register.

Single Master System                                  Other transmission security methods can use
                                                        ports for handshake lines or data bytes with com-
Multimaster System                                    mand fields.

Single Master System                                    Multimaster System

A typical single master system may be configured        A multimaster system may also be configured by
using a device as the master and four devices as        the user. Transfer of master control could be im-
slaves (see Figure 61).                                 plemented using a handshake method through the
                                                        I/O ports or by an exchange of code messages
The master device selects the individual slave de-      through the serial peripheral interface system.
vices by using four pins of a parallel port to control
the four SS pins of the slave devices.                  The multimaster system is principally handled by
                                                        the MSTR bit in the SPICR register and the MODF
The SS pins are pulled high during reset since the      bit in the SPICSR register.
master device ports will be forced to be inputs at
that time, thus disabling the slave devices.

Note: To prevent a bus conflict on the MISO line,
the master allows only one active slave device
during a transmission.

Figure 61. Single Master / Multiple Slave Configuration

                      SS                SS                             SS                SS
         SCK               SCK                           SCK               SCK

              Slave            Slave                          Slave             Slave
              Device          Device                          Device           Device

         MOSI MISO        MOSI MISO                      MOSI MISO         MOSI MISO

         MOSI MISO Ports

         SCK
             Master
             Device

5V       SS

102/309

1
                                                                                ST7MC1xx/ST7MC2xx

SERIAL PERIPHERAL INTERFACE (cont'd)                    form an extra communications cycle to bring the
10.4.6 Low Power Modes                                  SPI from Halt mode state to normal state. If the
                                                        SPI exits from Slave mode, it returns to normal
Mode                       Description                  state immediately.
Wait
       No effect on SPI.                                Caution: The SPI can wake up the device from
Halt  SPI interrupt events cause the device to exit    Halt mode only if the Slave Select signal (external
       from Wait mode.                                  SS pin or the SSI bit in the SPICSR register) is low
                                                        when the device enters Halt mode. So, if Slave se-
       SPI registers are frozen.                        lection is configured as external (see Section
       In Halt mode, the SPI is inactive. SPI opera-    10.4.3.2), make sure the master drives a low level
       tion resumes when the device is woken up by      on the SS pin when the slave enters Halt mode.
       an interrupt with "exit from Halt mode" capa-
       bility. The data received is subsequently read   10.4.7 Interrupts
       from the SPIDR register when the software is
       running (interrupt vector fetching). If several  Interrupt Event  Event  Enable   Exit  Exit
       data are received before the wake-up event,                        Flag  Control  from  from
       then an overrun error is generated. This error   SPI End of                       Wait  Halt
       can be detected after the fetch of the inter-    Transfer Event             Bit         Yes
       rupt routine that woke up the Device.            Master Mode                      Yes
                                                        Fault Event                             No
                                                        Overrun Error    SPIF

10.4.6.1 Using the SPI to wake up the device                             MODF SPIE
from Halt mode
                                                                         OVR
In slave configuration, the SPI is able to wake up
the device from Halt mode through a SPIF inter-         Note: The SPI interrupt events are connected to
rupt. The data received is subsequently read from       the same interrupt vector (see Interrupts chapter).
the SPIDR register when the software is running         They generate an interrupt if the corresponding
(interrupt vector fetch). If multiple data transfers    Enable Control Bit is set and the interrupt mask in
have been performed before software clears the          the CC register is reset (RIM instruction).
SPIF bit, then the OVR bit is set by hardware.

Note: When waking up from Halt mode, if the SPI
remains in Slave mode, it is recommended to per-

                                                                                               103/309

                                                                                                     1
ST7MC1xx/ST7MC2xx

10.4.8 Register Description                             Bit 3 = CPOL
SPI CONTROL REGISTER (SPICR)                            This bit is set and cleared by software. This bit de-
Read/Write                                              termines the idle state of the serial Clock. The
Reset Value: 0000 xxxx (0xh)                            CPOL bit affects both the master and slave
                                                        modes.
7                             0                         0: SCK pin has a low level idle state
                                                        1: SCK pin has a high level idle state
SPIE SPE SPR2 MSTR CPOL CPHA SPR1 SPR0
                                                        Note: If CPOL is changed at the communication
Bit 7 = SPIE                                            byte boundaries, the SPI must be disabled by re-
This bit is set and cleared by software.                setting the SPE bit.
0: Interrupt is inhibited
1: An SPI interrupt is generated whenever an End        Bit 2 = CPHA
                                                        This bit is set and cleared by software.
   of Transfer event, Master Mode Fault or Over-        0: The first clock transition is the first data capture
   run error occurs (SPIF = 1, MODF = 1 or
   OVR = 1 in the SPICSR register)                         edge.
                                                        1: The second clock transition is the first capture
Bit 6 = SPE
This bit is set and cleared by software. It is also        edge.
cleared by hardware when, in master mode,
SS = 0 (see Section 10.4.5.1 Master Mode Fault          Note: The slave must have the same CPOL and
(MODF)). The SPE bit is cleared by reset, so the        CPHA settings as the master.
SPI peripheral is not initially connected to the ex-
ternal pins.                                            Bits 1:0 = SPR[1:0]
0: I/O pins free for general purpose I/O                These bits are set and cleared by software. Used
1: SPI I/O pin alternate functions enabled              with the SPR2 bit, they select the baud rate of the
                                                        SPI serial clock SCK output by the SPI in master
Bit 5 = SPR2                                            mode.
This bit is set and cleared by software and is
cleared by reset. It is used with the SPR[1:0] bits to  Note: These 2 bits have no effect in slave mode.
set the baud rate. Refer to Table 18 SPI Master
Mode SCK Frequency.                                     Table 18. SPI Master Mode SCK Frequency
0: Divider by 2 enabled
1: Divider by 2 disabled                                Serial Clock  SPR2  SPR1  SPR0
                                                                         1     0     0
Note: This bit has no effect in slave mode.                 fCPU/4       0           1
                                                            fCPU/8       1     1     0
Bit 4 = MSTR                                               fCPU/16       0           1
This bit is set and cleared by software. It is also        fCPU/32
cleared by hardware when, in master mode,                  fCPU/64
SS = 0 (see Section 10.4.5.1 Master Mode Fault            fCPU/128
(MODF)).
0: Slave mode
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.

104/309

1
                                                         ST7MC1xx/ST7MC2xx

SERIAL PERIPHERAL INTERFACE (cont'd)                  Bit 2 = SOD
                                                      This bit is set and cleared by software. When set, it
SPI CONTROL/STATUS REGISTER (SPICSR)                  disables the alternate function of the SPI output
Read/Write (some bits Read Only)                      (MOSI in master mode / MISO in slave mode)
Reset Value: 0000 0000 (00h)                          0: SPI output enabled (if SPE = 1)
                                                      1: SPI output disabled
7  0
                                                      Bit 1 = SSM
SPIF WCOL OVR MODF - SOD SSM SSI                      This bit is set and cleared by software. When set, it
                                                      disables the alternate function of the SPI SS pin
Bit 7 = SPIF                                          and uses the SSI bit value instead. See Section
                                                      10.4.3.2 Slave Select Management.
   This bit is set by hardware when a transfer has    0: Hardware management (SS managed by exter-
   been completed. An interrupt is generated if
   SPIE = 1 in the SPICR register. It is cleared by      nal pin)
   a software sequence (an access to the SPICSR       1: Software management (internal SS signal con-
   register followed by a write or a read to the
   SPIDR register).                                      trolled by SSI bit. External SS pin free for gener-
0: Data transfer is in progress or the flag has been     al-purpose I/O)
   cleared.
1: Data transfer between the device and an exter-     Bit 0 = SSI
   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                                          SPI 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 60).                                           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 S                                         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.4.5.2). An interrupt is generated if
SPIE = 1 in the SPICR register. The OVR bit is        Notes: During the last clock cycle the SPIF bit is
cleared 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
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.4.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 SPICR register.
This bit is cleared by a software sequence (An ac-    Warning: A write to the SPIDR register places
cess to the SPICSR 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 55).
Bit 3 = Reserved, must be kept cleared.

                                                                                     105/309

                                                                                           1
ST7MC1xx/ST7MC2xx

SERIAL PERIPHERAL INTERFACE (Cont'd)

Table 19. 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

106/309

1
                                                    ST7MC1xx/ST7MC2xx

10.5 LINSCI SERIAL COMMUNICATION INTERFACE (LIN MASTER/SLAVE)

10.5.1 Introduction                                  6 interrupt sources
                                                       Transmit data register empty
The Serial Communications Interface (SCI) offers       Transmission complete
a flexible means of full-duplex data exchange with      Receive data register full
external equipment requiring an industry standard       Idle line received
NRZ asynchronous serial data format. The SCI of-       Overrun error
fers a very wide range of baud rates using two          Parity interrupt
baud rate generator systems.
                                                     Parity control:
The LIN-dedicated features support the LIN (Local       Transmits parity bit
Interconnect Network) protocol for both master          Checks parity of received data byte
and slave nodes.
                                                     Reduced power consumption mode
This chapter is divided into SCI Mode and LIN       10.5.3 LIN Features
mode sections. For information on general SCI       LIN Master
communications, refer to the SCI mode section.
For LIN applications, refer to both the SCI mode       13-bit LIN Synch Break generation
and LIN mode sections.                               LIN Slave

10.5.2 SCI Features                                     Automatic Header Handling
                                                       Automatic baud rate resynchronization based
Full duplex, asynchronous communications
                                                         on recognition and measurement of the LIN
NRZ standard format (Mark/Space)                        Synch Field (for LIN slave nodes)
                                                       Automatic baud rate adjustment (at CPU fre-
Independently programmable transmit and                 quency precision)
   receive baud rates up to 500K baud                   11-bit LIN Synch Break detection capability
                                                       LIN Parity check on the LIN Identifier Field
Programmable data word length (8 or 9 bits)             (only in reception)
                                                       LIN Error management
Receive buffer full, Transmit buffer empty and         LIN Header Timeout
   End of Transmission flags                            Hot plugging support

2 receiver wake-up modes:

    Address bit (MSB)

    Idle line

Muting function for multiprocessor configurations

Separate enable bits for Transmitter and
   Receiver

Overrun, Noise and Frame error detection

                                                               107/309

                                                                     1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (cont'd)

10.5.4 General Description                               A conventional type for commonly-used baud
                                                           rates
The interface is externally connected to another
device by two pins:                                       An extended type with a prescaler offering a very
                                                           wide range of baud rates even with non-standard
TDO: Transmit Data Output. When the transmit-            oscillator frequencies
  ter is disabled, the output pin returns to its I/O
  port configuration. When the transmitter is ena-       A LIN baud rate generator with automatic resyn-
  bled and nothing is to be transmitted, the TDO           chronization
  pin is at high level.

RDI: Receive Data Input is the serial data input.
  Oversampling techniques are used for data re-
  covery by discriminating between valid incoming
  data and noise.

Through these pins, serial data is transmitted and
received as characters comprising:

An Idle Line prior to transmission or reception

A start bit

A data word (8 or 9 bits) least significant bit first

A Stop bit indicating that the character is com-
  plete

This interface uses three types of baud rate gener-
ator:

108/309

1
                                                                                            ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)
Figure 62. SCI Block Diagram (in Conventional Baud Rate Generator Mode)

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

TDO        Transmit Shift Register    Receive Shift Register
RDI

                                                                               SCICR1

                                    R8 T8 SCID M WAKE PCE PS PIE

     TRANSMIT           WAKE                RECEIVER                                    RECEIVER
     CONTROL               UP               CONTROL                                      CLOCK

                         UNIT

     SCICR2                                                                                 SCISR

     TIE TCIE RIE ILIE TE RE RWU SBK  TDRE  TC  RDRF IDLE  OR/      NF                  FE  PE
                                                           LHE

              SCI
        INTERRUPT
         CONTROL

     TRANSMITTER
          CLOCK

     fCPU          /16  /PR                       TRANSMITTER RATE
                                                        CONTROL

                                                                             SCIBRR

                                      SCP1 SCP0 SCT2 SCT1 SCT0 SCR2 SCR1SCR0

                                                                         RECEIVER RATE
                                                                          CONTROL

                                      CONVENTIONAL BAUD RATE GENERATOR

                                                                                                109/309

                                                                                                      1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.5 SCI Mode - Functional Description              10.5.5.1 Serial Data Format

Conventional Baud Rate Generator Mode                 Word length may be selected as being either 8 or 9
                                                      bits by programming the M bit in the SCICR1 reg-
The block diagram of the Serial Control Interface     ister (see Figure 63).
in conventional baud rate generator mode is
shown in Figure 62.                                   The TDO pin is in low state during the start bit.

It uses four registers:                               The TDO pin is in high state during the stop bit.

2 control registers (SCICR1 and SCICR2)             An Idle character is interpreted as a continuous
A status register (SCISR)                           logic high level for 10 (or 11) full bit times.
A baud rate register (SCIBRR)
Extended Prescaler Mode                               A Break character is a character with a sufficient
Two additional prescalers are available in extend-    number of low level bits to break the normal data
ed prescaler mode. They are shown in Figure 64.       format followed by an extra "1" bit to acknowledge
                                                      the start bit.

An extended prescaler receiver register (SCIER-
  PR)

An extended prescaler transmitter register (SCI-
  ETPR)

Figure 63. Word Length Programming

         9-bit Word length (M bit is set)

                         Data Character                     Possible              Next Data Character
                                                              Parity
                                                                                  Next
                                                                Bit

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

                         Idle Line                                                Start
                                                                                   Bit

                         Break Character                                          Extra Start
                                                                                   '1' Bit

         8-bit Word length (M bit is reset)                 Possible              Next Data Character

                         Data Character                     Parity

                                                            Bit             Next

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

                         Idle Line                                          Start

                                                                            Bit

                         Break Character                                    Extra  Start
                                                                             '1'    Bit

110/309

1
                                                             ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.5.2 Transmitter                                    When no transmission is taking place, a write in-
                                                        struction to the SCIDR register places the data di-
The transmitter can send data words of either 8 or      rectly in the shift register, the data transmission
9 bits depending on the M bit status. When the M        starts, and the TDRE bit is immediately set.
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       When a character transmission is complete (after
register.                                               the stop bit) the TC bit is set and an interrupt is
                                                        generated if the TCIE is set and the I[1:0] bits are
Character Transmission                                  cleared in the CCR register.

During an SCI transmission, data shifts out least       Clearing the TC bit is performed by the following
significant bit first on the TDO pin. In this mode,     software sequence:
the SCIDR register consists of a buffer (TDR) be-       1. An access to the SCISR register
tween the internal bus and the transmit shift regis-    2. A write to the SCIDR register
ter (see Figure 62).
                                                        Note: The TDRE and TC bits are cleared by the
Procedure                                               same software sequence.

Select the M bit to define the word length.           Break Characters

Select the desired baud rate using the SCIBRR         Setting the SBK bit loads the shift register with a
  and the SCIETPR registers.                            break character. The break character length de-
                                                        pends on the M bit (see Figure 63).
Set the TE bit to send a preamble of 10 (M = 0)
  or 11 (M = 1) consecutive ones (Idle Line) as first   As long as the SBK bit is set, the SCI sends break
  transmission.                                         characters to the TDO pin. After clearing this bit by
                                                        software, the SCI inserts a logic 1 bit at the end of
Access the SCISR register and write the data to       the last break character to guarantee the recogni-
  send in the SCIDR register (this sequence clears      tion of the start bit of the next character.
  the TDRE bit). Repeat this sequence for each
  data to be transmitted.                               Idle Line

Clearing the TDRE bit is always performed by the        Setting the TE bit drives the SCI to send a pream-
following software sequence:                            ble of 10 (M = 0) or 11 (M = 1) consecutive `1's
1. An access to the SCISR register                      (idle line) before the first character.
2. A write to the SCIDR register
                                                        In this case, clearing and then setting the TE bit
The TDRE bit is set by hardware and it indicates:       during a transmission sends a preamble (idle line)
                                                        after the current word. Note that the preamble du-
The TDR register is empty.                            ration (10 or 11 consecutive `1's depending on the
                                                        M bit) does not take into account the stop bit of the
The data transfer is beginning.                       previous character.

The next data can be written in the SCIDR regis-      Note: Resetting and setting the TE bit causes the
  ter without overwriting the previous data.            data in the TDR register to be lost. Therefore the
                                                        best time to toggle the TE bit is when the TDRE bit
This flag generates an interrupt if the TIE bit is set  is set, that is, before writing the next byte in the
and the I[|1:0] bits are cleared in the CCR register.   SCIDR.

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.

                                                             111/309

                                                                   1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.5.3 Receiver                                        The OR bit is set.

The SCI can receive data words of either 8 or 9          The RDR content will not be lost.
bits. When the M bit is set, word length is 9 bits
and the MSB is stored in the R8 bit in the SCICR1         The shift register will be overwritten.
register.
                                                          An interrupt is generated if the RIE bit is set and
Character reception                                        the I[|1:0] bits are cleared in the CCR register.

During a SCI reception, data shifts in least signifi-    The OR bit is reset by an access to the SCISR reg-
cant bit first through the RDI pin. In this mode, the    ister followed by a SCIDR register read operation.
SCIDR register consists or a buffer (RDR) be-
tween the internal bus and the received shift regis-     Noise Error
ter (see Figure 62).
                                                         Oversampling techniques are used for data recov-
Procedure                                                ery by discriminating between valid incoming data
                                                         and noise.
Select the M bit to define the word length.
                                                         When noise is detected in a character:
Select the desired baud rate using the SCIBRR
  and the SCIERPR registers.                              The NF bit is set at the rising edge of the RDRF
                                                           bit.
Set the RE bit, this enables the receiver which
  begins searching for a start bit.                      Data is transferred from the Shift register to the
                                                           SCIDR register.
When a character is received:
                                                          No interrupt is generated. However this bit rises
The RDRF bit is set. It indicates that the content       at the same time as the RDRF bit which itself
  of the shift register is transferred to the RDR.         generates an interrupt.

An interrupt is generated if the RIE bit is set and    The NF bit is reset by a SCISR register read oper-
  the I[1:0] bits are cleared in the CCR register.       ation followed by a SCIDR register read operation.

The error flags can be set if a frame error, noise     Framing Error
  or an overrun error has been detected during re-
  ception.                                               A framing error is detected when:

Clearing the RDRF bit is performed by the following       The stop bit is not recognized on reception at the
software sequence done by:                                 expected time, following either a desynchroniza-
                                                           tion or excessive noise.
1. An access to the SCISR register
                                                          A break is received.
2. A read to the SCIDR register.
                                                         When the framing error is detected:
The RDRF bit must be cleared before the end of the
reception of the next character to avoid an overrun       the FE bit is set by hardware
error.
                                                          Data is transferred from the Shift register to the
                                                           SCIDR register.

Idle Line                                                 No interrupt is generated. However this bit rises
                                                           at the same time as the RDRF bit which itself
When an idle line is detected, there is the same           generates an interrupt.
procedure as a data received character plus an in-
terrupt if the ILIE bit is set and the I[|1:0] bits are  The FE bit is reset by a SCISR register read oper-
cleared in the CCR register.                             ation followed by a SCIDR register read operation.

Overrun Error                                            Break Character

An overrun error occurs when a character is re-          When a break character is received, the SCI
ceived when RDRF has not been reset. Data can              handles it as a framing error. To differentiate a
not be transferred from the shift register to the          break character from a framing error, it is neces-
TDR register as long as the RDRF bit is not                sary to read the SCIDR. If the received value is
cleared.                                                   00h, it is a break character. Otherwise it is a
                                                           framing error.
When an overrun error occurs:

112/309

1
                                                                  ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.5.4 Conventional Baud Rate Generation            10.5.5.5 Extended Baud Rate Generation

The baud rates for the receiver and transmitter (Rx   The extended prescaler option gives a very fine
and Tx) are set independently and calculated as       tuning on the baud rate, using a 255 value prescal-
follows:                                              er, whereas the conventional Baud Rate Genera-
                                                      tor retains industry standard software compatibili-
         fCPU                 fCPU                    ty.
Tx =                 Rx =
                                                      The extended baud rate generator block diagram
      (16*PR)*TR           (16*PR)*RR                 is described in Figure 64.

with:                                                 The output clock rate sent to the transmitter or to
                                                      the receiver will be the output from the 16 divider
PR = 1, 3, 4 or 13 (see SCP[1:0] bits)                divided by a factor ranging from 1 to 255 set in the
                                                      SCIERPR or the SCIETPR register.
TR = 1, 2, 4, 8, 16, 32, 64,128
                                                      Note: The extended prescaler is activated by set-
(see SCT[2:0] bits)                                   ting the SCIETPR or SCIERPR register to a value
                                                      other than zero. The baud rates are calculated as
RR = 1, 2, 4, 8, 16, 32, 64,128                       follows:

(see SCR[2:0] bits)

All these bits are in the SCIBRR register.

Example: If fCPU is 8 MHz (normal mode) and if        Tx =  fCPU       Rx =  fCPU
PR = 13 and TR = RR = 1, the transmit and re-
ceive baud rates are 38400 baud.                      16*ETPR*(PR*TR)  16*ERPR*(PR*RR)

Note: The baud rate registers MUST NOT be             with:
changed while the transmitter or the receiver is en-  ETPR = 1, ..., 255 (see SCIETPR register)
abled.

                                                      ERPR = 1, ..., 255 (see SCIERPR register)

                                                                                                 113/309

                                                                                                       1
ST7MC1xx/ST7MC2xx                                                                                   TRANSMITTER
                                                                                                         CLOCK
LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)
Figure 64. 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
                                            CONTROL
         /16
              /PR
                                                                       SCIBRR

                             SCP1 SCP0 SCT2 SCT1 SCT0 SCR2 SCR1SCR0

                                               RECEIVER RATE
                                                    CONTROL

              CONVENTIONAL BAUD RATE GENERATOR

114/309

1
                                                                       ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.5.6 Receiver Muting and Wake-up Feature           ceived an address character (most significant bit
                                                       = '1'), the receivers are waken up. The receivers
In multiprocessor configurations it is often desira-   which are not addressed set RWU bit to enter in
ble that only the intended message recipient           mute mode. Consequently, they will not treat the
should actively receive the full message contents,     next characters constituting the next part of the
thus reducing redundant SCI service overhead for       message.
all non-addressed receivers.
                                                       10.5.5.7 Parity Control
The non-addressed devices may be placed in
sleep mode by means of the muting function.            Hardware byte Parity control (generation of parity
                                                       bit in transmission and parity checking in recep-
Setting the RWU bit by software puts the SCI in        tion) can be enabled by setting the PCE bit in the
sleep mode:                                            SCICR1 register. Depending on the character for-
                                                       mat defined by the M bit, the possible SCI charac-
All the reception status bits can not be set.          ter formats are as listed in Table 20.

All the receive interrupts are inhibited.

A muted receiver may be woken up in one of the         Note: In case of wake-up by an address mark, the
following ways:                                        MSB bit of the data is taken into account and not
                                                       the parity bit
by Idle Line detection if the WAKE bit is reset,

by Address Mark detection if the WAKE bit is set. Table 20. Character Formats

Idle Line Detection                                    M bit PCE bit   Character format

Receiver wakes up by Idle Line detection when the                   0     | SB | 8 bit data | STB |
Receive line has recognized an Idle Line. Then the     0               | SB | 7-bit data | PB | STB |
RWU bit is reset by hardware but the IDLE bit is
not set.                                                            1

This feature is useful in a multiprocessor system                   0     | SB | 9-bit data | STB |
when the first characters of the message deter-        1               | SB | 8-bit data | PB | STB |
mine the address and when each message ends
by an idle line: As soon as the line becomes idle,                  1
every receivers is waken up and analyse the first
characters of the message which indicates the ad-      Legend: SB = Start Bit, STB = Stop Bit,
dressed receiver. The receivers which are not ad-      PB = Parity Bit
dressed set RWU bit to enter in mute mode. Con-
sequently, they will not treat the next characters     Even parity: The parity bit is calculated to obtain
constituting the next part of the message. At the      an even number of "1s" inside the character made
end of the message, an idle line is sent by the        of the 7 or 8 LSB bits (depending on whether M is
transmitter: this wakes up every receivers which       equal to 0 or 1) and the parity bit.
are ready to analyse the addressing characters of
the new message.                                       Example: data = 00110101; 4 bits set => parity bit
                                                       will be 0 if even parity is selected (PS bit = 0).
In such a system, the inter-characters space must
be smaller than the idle time.                         Odd parity: The parity bit is calculated to obtain
                                                       an odd number of "1s" inside the character made
Address Mark Detection                                 of the 7 or 8 LSB bits (depending on whether M is
                                                       equal to 0 or 1) and the parity bit.
Receiver wakes up by Address Mark detection
when it received a "1" as the most significant bit of  Example: data = 00110101; 4 bits set => parity bit
a word, thus indicating that the message is an ad-     will be 1 if odd parity is selected (PS bit = 1).
dress. The reception of this particular word wakes
up the receiver, resets the RWU bit and sets the       Transmission mode: If the PCE bit is set then the
RDRF bit, which allows the receiver to receive this    MSB bit of the data written in the data register is
word normally and to use it as an address word.        not transmitted but is changed by the parity bit.

This feature is useful in a multiprocessor system      Reception mode: If the PCE bit is set then the in-
when the most significant bit of each character        terface checks if the received data byte has an
(except for the break character) is reserved for Ad-   even number of "1s" if even parity is selected
dress Detection. As soon as the receivers re-          (PS = 0) or an odd number of "1s" if odd parity is
                                                       selected (PS = 1). If the parity check fails, the PE
                                                       flag is set in the SCISR register and an interrupt is
                                                       generated if PCIE is set in the SCICR1 register.

                                                                                                115/309

                                                                                                      1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.6 Low Power Modes                                 10.5.7 Interrupts

Mode     Description                                   Interrupt Event         Event  Enable   Exit  Exit
Wait                                                                            Flag  Control  from  from
         No effect on SCI.                                                                     Wait  Halt
Halt     SCI interrupts cause the device to exit from                                    Bit
         Wait mode.                                                                                   No
                                                       Transmit Data Register  TDRE   TIE
         SCI registers are frozen.                     Empty
         In Halt mode, the SCI stops transmitting/re-
         ceiving until Halt mode is exited.            Transmission Com-       TC TCIE
                                                       plete

                                                       Received Data Ready     RDRF            Yes
                                                       to be Read
                                                                                      RIE
                                                       Overrun Error or LIN OR/

                                                       Synch Error Detected LHE

                                                       Idle Line Detected      IDLE ILIE

                                                       Parity Error            PE PIE

                                                       LIN Header Detection LHDF LHIE

                                                       The SCI interrupt events are connected to the
                                                       same interrupt vector (see Interrupts chapter).

                                                       These events generate an interrupt if the corre-
                                                       sponding Enable Control Bit is set and the inter-
                                                       rupt mask in the CC register is reset (RIM instruc-
                                                       tion).

116/309

1
                                                             ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

10.5.8 SCI Mode Register Description

STATUS REGISTER (SCISR)                                 Bit 3 = OR
Read Only
Reset Value: 1100 0000 (C0h)                            The OR bit is set by hardware when the word cur-
                                                        rently being received in the shift register is ready to
7                                     0                 be transferred into the RDR register whereas
                                                        RDRF is still set. An interrupt is generated if
TDRE TC RDRF IDLE OR1) NF1) FE1) PE1)                   RIE = 1 in the SCICR2 register. It is cleared by a
                                                        software sequence (an access to the SCISR regis-
Bit 7 = TDRE                                            ter followed by a read to the SCIDR register).
This bit is set by hardware when the content of the     0: No Overrun error
TDR register has been transferred into the shift        1: Overrun error detected
register. An interrupt is generated if the TIE = 1 in
the SCICR2 register. It is cleared by a software se-    Note: When this bit is set, RDR register contents
quence (an access to the SCISR register followed        will not be lost but the shift register will be overwrit-
by a write to the SCIDR register).                      ten.
0: Data is not transferred to the shift register
1: Data is transferred to the shift register            Bit 2 = NF Character Noise flag
                                                        This bit is set by hardware when noise is detected
Bit 6 = TC                                              on a received character. It is cleared by a software
This bit is set by hardware when transmission of a      sequence (an access to the SCISR register fol-
character containing Data is complete. An inter-        lowed by a read to the SCIDR register).
rupt is generated if TCIE = 1 in the SCICR2 regis-      0: No noise
ter. It is cleared by a software sequence (an ac-       1: Noise is detected
cess to the SCISR register followed by a write to
the SCIDR register).                                    Note: This bit does not generate interrupt as it ap-
0: Transmission is not complete                         pears at the same time as the RDRF bit which it-
1: Transmission is complete                             self generates an interrupt.

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

Bit 4 = IDLE                                            Bit 0 = PE Parity error
This bit is set by hardware when an Idle Line is de-    This bit is set by hardware when a byte parity error
tected. An interrupt is generated if the ILIE = 1 in    occurs (if the PCE bit is set) in receiver mode. It is
the SCICR2 register. It is cleared by a software se-    cleared by a software sequence (a read to the sta-
quence (an access to the SCISR register followed        tus register followed by an access to the SCIDR
by a read to the SCIDR register).                       data register). An interrupt is generated if PIE = 1
0: No Idle Line is detected                             in the SCICR1 register.
1: Idle Line is detected                                0: No parity error
                                                        1: Parity error detected
Note: The IDLE bit will not be set again until the
RDRF bit has been set itself (that is, a new idle line
occurs).

                                                             117/309

                                                                   1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

CONTROL REGISTER 1 (SCICR1)                              Bit 3 = WAKE Wake-Up method
Read/Write                                               This bit determines the SCI Wake-Up method, it is
Reset Value: x000 0000 (x0h)                             set or cleared by software.
                                                         0: Idle Line
7                             0                          1: Address Mark

R8       T8 SCID M WAKE PCE1) PS PIE                     Note: If the LINE bit is set, the WAKE bit is deacti-
                                                         vated and replaced by the LHDM bit.
1)This bit has a different function in LIN mode, please
refer to the LIN mode register description.             Bit 2 = PCE Parity control enable
                                                         This bit is set and cleared by software. It selects
Bit 7 = R8 Receive data bit 8                            the hardware parity control (generation and detec-
This bit is used to store the 9th bit of the received    tion for byte parity, detection only for LIN parity).
word when M = 1.                                         0: Parity control disabled
                                                         1: Parity control enabled
Bit 6 = T8 Transmit data bit 8
This bit is used to store the 9th bit of the transmit-   Bit 1 = PS Parity selection
ted word when M = 1.                                     This bit selects the odd or even parity when the
                                                         parity generation/detection is enabled (PCE bit
Bit 5 = SCID Disabled for low power consumption          set). It is set and cleared by software. The parity
When this bit is set the SCI prescalers and outputs      will be selected after the current byte.
are stopped and the end of the current byte trans-       0: Even parity
fer in order to reduce power consumption.This bit        1: Odd parity
is set and cleared by software.
0: SCI enabled                                           Bit 0 = PIE Parity interrupt enable
1: SCI prescaler and outputs disabled                    This bit enables the interrupt capability of the hard-
                                                         ware parity control when a parity error is detected
Bit 4 = M Word length                                    (PE bit set). The parity error involved can be a byte
This bit determines the word length. It is set or        parity error (if bit PCE is set and bit LPE is reset) or
cleared by software.                                     a LIN parity error (if bit PCE is set and bit LPE is
0: 1 Start bit, 8 Data bits, 1 Stop bit                  set).
1: 1 Start bit, 9 Data bits, 1 Stop bit                  0: Parity error interrupt disabled
                                                         1: Parity error interrupt enabled
Note: The M bit must not be modified during a data
transfer (both transmission and reception).

118/309

1
                                                               ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

CONTROL REGISTER 2 (SCICR2)                                 1: Receiver is enabled and begins searching for a
Read/Write                                                     start bit
Reset Value: 0000 0000 (00h)

7                                                        0  Bit 1 = RWU Receiver wake-up
                                                            This bit determines if the SCI is in mute mode or
TIE TCIE RIE ILIE TE  RE RWU1) SBK1)                        not. It is set and cleared by software and can be
                                                            cleared by hardware when a wake-up sequence is
1)This bit has a different function in LIN mode, please     recognized.
refer to the LIN mode register description.                0: Receiver in active mode
                                                            1: Receiver in mute mode

Bit 7 = TIE Transmitter interrupt enable                    Notes:
This bit is set and cleared by software.
0: Interrupt is inhibited                                    Before selecting Mute mode (by setting the RWU
1: In SCI interrupt is generated whenever                     bit) the SCI must first receive a data byte, other-
                                                              wise it cannot function in Mute mode with wake-
   TDRE = 1 in the SCISR register                             up by Idle line detection.

Bit 6 = TCIE Transmission complete interrupt ena-            In Address Mark Detection Wake-Up configura-
ble                                                           tion (WAKE bit = 1) the RWU bit cannot be mod-
This bit is set and cleared by software.                      ified by software while the RDRF bit is set.
0: Interrupt is inhibited
1: An SCI interrupt is generated whenever TC = 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 5 = RIE Receiver interrupt enable                       1: Break characters are transmitted
This bit is set and cleared by software.
0: Interrupt is inhibited                                   Note: If the SBK bit is set to "1" and then to "0", the
1: An SCI interrupt is generated whenever OR = 1            transmitter will send a BREAK word at the end of
                                                            the current word.
   or RDRF = 1 in the SCISR register

Bit 4 = ILIE Idle line interrupt enable                     DATA REGISTER (SCIDR)
This bit is set and cleared by software.                    Read/Write
0: Interrupt is inhibited                                   Reset Value: Undefined
1: An SCI interrupt is generated whenever
                                                            Contains the Received or Transmitted data char-
   IDLE = 1 in the SCISR register.                          acter, depending on whether it is read from or writ-
                                                            ten to.
Bit 3 = TE Transmitter enable
This bit enables the transmitter. It is set and             7  0
cleared by software.
0: Transmitter is disabled                                  DR7 DR6 DR5 DR4 DR3 DR2 DR1 DR0
1: Transmitter is enabled
                                                            The Data register performs a double function (read
Notes:                                                      and write) since it is composed of two registers,
                                                            one for transmission (TDR) and one for reception
During transmission, a "0" pulse on the TE bit            (RDR).
  ("0" followed by "1") sends a preamble (idle line)        The TDR register provides the parallel interface
  after the current word.                                   between the internal bus and the output shift reg-
                                                            ister (see Figure 62).
When TE is set there is a 1 bit-time delay before         The RDR register provides the parallel interface
  the transmission starts.                                  between the input shift register and the internal
                                                            bus (see Figure 62).
Bit 2 = RE Receiver enable
This bit enables the receiver. It is set and cleared
by software.
0: Receiver is disabled in the SCISR register

                                                               119/309

                                                                     1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (cont'd)

BAUD RATE REGISTER (SCIBRR)                            TR dividing factor  SCT2  SCT1  SCT0
Read/Write                                                         1          0     0     0
Reset Value: 0000 0000 (00h)                                       2                1     1
                                                                   4          1     0     0
7                              0                                   8                1     1
                                                                  16                      0
SCP1 SCP0 SCT2 SCT1 SCT0 SCR2 SCR1 SCR0                           32                      1
                                                                  64                      0
Note: When LIN slave mode is disabled, the SCI-                                           1
BRR register controls the conventional baud rate                 128
generator.
                                                       Bits 2:0 = SCR[2:0] SCI Receiver rate divider
Bits 7:6 = SCP[1:0] First SCI Prescaler                These 3 bits, in conjunction with the SCP[1:0] bits
These 2 prescaling bits allow several standard         define the total division applied to the bus clock to
clock division ranges:                                 yield the receive rate clock in conventional Baud
                                                       Rate Generator mode.
   PR Prescaling factor  SCP1  SCP0
                 1          0     0                    RR dividing factor  SCR2  SCR1  SCR0
                 3          1     1                                1          0     0     0
                 4                0                                2                1     1
                13                1                                4          1     0     0
                                                                   8                1     1
Bits 5:3 = SCT[2:0] SCI Transmitter rate divisor                  16                      0
These 3 bits, in conjunction with the SCP1 and                    32                      1
SCP0 bits define the total division applied to the                64                      0
bus clock to yield the transmit rate clock in conven-                                     1
tional Baud Rate Generator mode.                                 128

120/309

1
                                                                         ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (SCI Mode) (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)

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 other than 00h is stored in this regis-   when a value other than 00h is stored in this regis-
ter. The clock frequency from the 16 divider (see      ter. The clock frequency from the 16 divider (see
Figure 64) is divided by the binary factor set in the  Figure 64) is divided by the binary factor set in the
SCIERPR register (in the range 1 to 255).              SCIETPR register (in the range 1 to 255).

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

                                                       Note: In LIN slave mode, the Conventional and
                                                       Extended Baud Rate Generators are disabled.

                                                                                          121/309

                                                                                                1
ST7MC1xx/ST7MC2xx

LINSCITM SERIAL COMMUNICATION INTERFACE (LIN Mode)

10.5.9 LIN Mode - Functional Description.            Slave

The block diagram of the Serial Control Interface,   Set the LSLV bit in the SCICR3 register to enter
in LIN slave mode is shown in Figure 66.             LIN slave mode. In this case, setting the SBK bit
                                                     will have no effect.
It uses six registers: