STR71x
Microcontroller
Reference Manual
Rev. 6
March 2005
1
March 2005 1/345
Rev. 6
REFERENCE MANUAL
STR71xF MICROCONTROLLER FAMILY
1 INTRODUCTION
This Reference Manual provides complete information for application developers on how to
use the STR71x Microcontroller memory and peripherals.
The STR71xF is a family of microcontrollers with different memory sizes, packages and
peripherals.
For Ordering Information, Mechanical and Electrical Device Characteristics please refer to the
STR71x datasheet.
For information on programming, erasing and protection of the internal Flash memory please
refer to the STR7 Flash Programming Reference Manual
For information on the ARM7TDMI
®
core please refer to the ARM7TDMI
®
Tec h n i c a l
Reference Manual.
Related documents:
Available from www.arm.com:
ARM7TDMI
®
Technical Reference Manual
Available from http://www.st.com:
STR71x Product Preview
STR7 Flash Programming Reference Manual
AN1774 - STR71x Software Development Getting Started
AN1775 - STR71x Hardware Development Getting Started
AN1777 - STR71x Memory Mapping and Development Toolset
AN1780 - STR71x RTC Application Example
The above is a selected list only, a full list STR71x application notes can be viewed at
http://www.st.com.
1
Table of Contents
345
2/345
1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 MEMORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Memory Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.2 Register Base Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.3 APB1 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.4 APB2 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.5 Boot Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.6 RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.7 Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.7.1 Flash Burst and Low Power modes . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.7.2 Flash Power Down mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.8 External Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2 Boot Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 User Boot Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 SystemMemory Boot Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.3 RAM and EXTMEM Boot Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 External Memory Interface (EMI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1 EMI Bus Interface Signal Description . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.2 EMI Memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.3 EMI Programmable Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.4 Write Access Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.5 Read Access Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.6 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.6.1 Bank n Configuration Register (EMI_BCONn) . . . . . . . . . . . . . . . 29
2.3.7 EMI Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 POWER, RESET AND CLOCKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1 Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.1.1 Optional use of External V18BKP Supply . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Reset Pin Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Voltage Regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4 Low Voltage Detectors (LVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5 Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.6 Low Power Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.1 Slow Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.2 WFI Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.3 LPWFI Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.4 Stop Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.5 Standby Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.6.5.1 Software Standby Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1
Table of Contents
3/345
3.6.5.2 Hardware Standby Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6.5.3 Wakeup / RTC Alarm Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.7 Power, Reset and Clock Control Unit (PRCCU) . . . . . . . . . . . . . . . . . . . . . . 46
3.7.1 Clock Configuration Reset State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.7.2 Typical Clock Configuration Example . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.7.3 PLL Clock Multiplier Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7.3.1 Free Running Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.7.4 Interrupt Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.7.5 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.7.5.1 Clock Control Register (RCCU_ CCR) . . . . . . . . . . . . . . . . . . . . . 50
3.7.5.2 Clock Flag Register (RCCU_CFR) . . . . . . . . . . . . . . . . . . . . . . . . 52
3.7.5.3 PLL Configuration Register (RCCU_PLL1CR) . . . . . . . . . . . . . . . 54
3.7.5.4 Peripheral Enable Register (RCCU_PER) . . . . . . . . . . . . . . . . . . 55
3.7.5.5 System Mode Register (RCCU_SMR) . . . . . . . . . . . . . . . . . . . . . 56
3.7.5.6 MCLK Divider Control (PCU_MDIVR) . . . . . . . . . . . . . . . . . . . . . 57
3.7.5.7 Peripheral Clock Divider Control Register (PCU_PDIVR) . . . . . . 57
3.7.5.8 Peripheral Reset Control Register (PCU_PRSTR) . . . . . . . . . . . 58
3.7.5.9 PLL2 Control Register (PCU_PLL2CR) . . . . . . . . . . . . . . . . . . . . 58
3.7.5.10 Boot Configuration Register (PCU_BOOTCR) . . . . . . . . . . . . . . . 60
3.7.5.11 Power Control Register (PCU_PWRCR) . . . . . . . . . . . . . . . . . . . 62
3.7.6 PRCCU Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4 I/O PORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.1.1 Input Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.2 Input Pull Up/Pull Down Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1.3 Output Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.4 Alternate Function Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1.5 High impedance-Analog Input Configuration . . . . . . . . . . . . . . . . . . . . . 72
4.2 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.1 I/O Port Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5 INTERRUPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.1 Interrupt latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2 Enhanced Interrupt Controller (EIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.1 IRQ mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.1.1 Priority Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.1.2 Finite State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.1.3 Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.1.4 EIC Interrupt Vectoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.1.5 EIC IRQ Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.2.2 FIQ Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1
Table of Contents
345
4/345
5.3.1 Interrupt Control Register (EIC_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3.2 Current Interrupt Channel Register (EIC_CICR) . . . . . . . . . . . . . . . . . . 86
5.3.3 Current Interrupt Priority Register (EIC_CIPR) . . . . . . . . . . . . . . . . . . . 87
5.3.4 Interrupt Vector Register (EIC_IVR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3.5 Fast Interrupt Register (EIC_FIR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3.6 Interrupt Enable Register 0 (EIC_IER0) . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3.7 Interrupt Pending Register 0 (EIC_IPR0) . . . . . . . . . . . . . . . . . . . . . . . 92
5.3.8 Source Interrupt Registers - Channel n (EIC_SIRn) . . . . . . . . . . . . . . . 94
5.3.9 EIC Register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.3.10 Programming considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3.11 Application note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.3.11.1 Avoiding LR_sys and r5 register content loss . . . . . . . . . . . . . . . 97
5.3.11.2 Hints on calling subroutines from within ISRs . . . . . . . . . . . . . . . 98
5.4 External Interrupts (XTI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.4.1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.4.2 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.4.2.1 Interrupt Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.4.2.2 Wake-up Mode Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.4.2.3 STOP Mode Entry Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.4.3 Programming Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.4.3.1 Procedure for Entering/Exiting STOP mode . . . . . . . . . . . . . . . 103
5.4.3.2 Simultaneous Setting of Pending Bits . . . . . . . . . . . . . . . . . . . . 104
5.4.4 Register Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.4.4.1 XTI Software Interrupt Register (XTI_SR) . . . . . . . . . . . . . . . . . 105
5.4.4.2 Wake-up Control Register (XTI_CTRL) . . . . . . . . . . . . . . . . . . . 105
5.4.4.3 XTI Mask Register High (XTI_MRH) . . . . . . . . . . . . . . . . . . . . . 107
5.4.4.4 XTI Mask Register Low (XTI_MRL) . . . . . . . . . . . . . . . . . . . . . . 107
5.4.4.5 XTI Trigger Polarity Register High (XTI_TRH) . . . . . . . . . . . . . . 108
5.4.4.6 XTI Trigger Polarity Register Low (XTI_TRL) . . . . . . . . . . . . . . 108
5.4.4.7 XTI Pending Register High (XTI_PRH) . . . . . . . . . . . . . . . . . . . 109
5.4.4.8 XTI Pending Register Low (XTI_PRL) . . . . . . . . . . . . . . . . . . . . 109
5.4.5 XTI Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6 REAL TIME CLOCK (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2 Main Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.3 Functional Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.3.2 Reset procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.3.3 Free-running mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.3.4 Configuration mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.4 Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
1