STM32 Value line - Calculateur-Emb

advertisement
STM32VL- Training
Esprit 2012
V1.0
1
CONTENTS
 PART I : CORTEX-M3
 PART II : STM32F100 device
 PART III : STM32 Value line Discovery Kit
2
PART - I
CORTEX M3
3
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
4
OBJECTIVES
 Familiarize with Cortex M3
 At the end of the part you will be able to List the
main features of the Cortex M3
5
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
6
What is ARM(Advanced Risc Machines)?
 ARM is an UK company that designs
innovative 32-bit microprocessors
 ARM leads the world of RISC
microprocessor cores
 ARM develops directly and through
partnership the tools, systems and
services to support its architecture.
7
Why use an ARM-based processor?
 Most popular 32-bit core
 Becoming an industrial standard like the C51
 Compatible leading edge core roadmap
 ARM7 -> ARM9 /10->CortexM3, M4,…
 Large number of product choices
 Multiple vendors means a large choice
8
Sales in billions of dollars
Why use an ARM-based processor?
9
Why Cortex M3?
RISC Processor
core
Low power
modes
Tools and RTOS
support
10
Why Cortex M3?
More Than 28 company
ST, NXP, Atmel, Samsung…
Cortex-A Series, applications processors for complex OS and user applications.
Cortex-R Series, real-time systems profile.
Cortex-M Series, microcontroller profile optimized for cost-sensitive applications..
The number at the end of the Cortex name refers to the relative performance
level, with 1 the lowest and 8 the highest.
11
ARM Cortex-M code size advantage
explained
12
Industry standard
13
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
14
Cortex-M3 Processor(1/2)
 Hierarchical processor integrating core and
advanced system peripherals
 Cortex-M3 Processor





Cortex-M3 core
Configurable interrupt controller
Bus matrix
Advanced debug components(ETM…)
Optional MPU(Not available in STM32F10x)
 Cortex-M3 core




Harvard architecture
3-stage pipeline prediction
Thumb®-2
ALU w. H/W divide and single cycle multiply
15
Cortex-M3 Processor(2/2)
Non Maskable
Interrupt
3-Stage Pipeline, Harvard Architecture,
Thumb-2 ISA (or Thumb)
30K* Gates
1-240 Configurable
Interrupts
with Configurable Priority
Levels
SWD or JTAG
Breakpoints
Data Watchpoints
& Trace
* Preliminary gate counts & power consumption based on initial implementation
Gate Counts are based on TSMC 0.18 at 50MHz
Optional ETM & MPU gate counts not included
Cortex M3 Total
60k* Gates
16
Cortex-M3 Processor Main Features
 ARM v7M Architecture
 Thumb-2 Instruction Set Architecture
 Mix of 16 and 32 bit instructions for very high code density
 Harvard architecture
 Separate I & D buses allow parallel instruction fetching & data storage
 Integrated Nested Vectored Interrupt Controller (NVIC) Vector Table is
addresses.
 Integrated Bus Matrix
 Data memory management
 3 Stage Pipeline
 Integrated System Timer (SysTick) for Real Time OS
17
Data Memory management (1/7)

Cortex-M3 includes two technologies to reduce Data
memory requirements:
1. Unaligned Data Support
2. Atomic Bit Banding

These technologies can dramatically improve data
(SRAM) memory utilization, potentially enabling silicon
designers and users to reduce the amount of SRAM
required and dramatically impacting silicon usage.
18
Data Memory management(2/7)
• Unaligned Data Support:
Other Core does not
support unaligned
data
Data aligned
on word
boundaries
Long (32)
Long (32)
short (16)
short (16)
Char
Char
Char
Char
Unused (wasted) space
ARM Cortex-M3
supports unaligned
data that can improve
SRAM utilization
Long (32)
Long (32)
short (16) short (16)
Char Char Char Char
Free space Can be used
Reduces SRAM Memory Requirements By Over
50%
Less Memory - LowER Cost
devices
19
Data Memory management(3/7)
long (32)
char (8)
32bit machine
which does
not support
unaligned data
long (32)
char (8) char (8) char (8)
Data
aligned
int (16)
long (32)
int (16)c
char (8)
Structure
management
example
long (32)
char (8)
long (32) …
… long
char (8) char (8) char (8)
int (16)
long (32) …
… long
int (16)c
char (8)
int (16)
long …
… long (32)
int (16)
long (32)
Unused (wasted) space
Free space for the rest of the application
Reduces SRAM Memory Requirements By Over
25%
20
Data Memory management(4/7)
• Bit Banding:
 Traditional method
 Speed and code size optimized
Cortex-M3 implementation
Disable external events
32bit
Read byte (RAM, register)
0 1 0 0 1 0 1 1
Mask and modify bit element
X X X X X 1 X X
@Rbase+N b31
b0
example: 20000000h to 200FFFFFh
b31
Write byte (RAM, register)
0 1 0 0 1 1 1 1
REAL
memory
image
VIRTUAL
aliased
bit banding
image
b0
Enable external events
♦ Bit Banding done by bus matrix.
♦ Single instruction Read/Modify/Write (no more masking).
♦ No new instruction set  Use standard data one (AND, OR, XOR…).
Optimized RAM, peripherals and IOs registers accesses Easy multi-task
semaphore management
21
Data Memory management(5/7)
32MB alias region
1MB Peripheral bit-band region
22
Data Memory management(6/7)
• Bit Banding formula is:
bit_word_addr = bit_band_base + (byte_offset x 32) + (bit_number ×
4)
where:
bit_word_addr: is the address of the word in the alias memory region that
maps to the targeted bit.
bit_band_base is the starting address of the alias region (0x22000000 )
byte_offset is the number of the byte in the bit-band region that contains the
targeted bit
bit_number
is the bit position of the targeted bit(0-7)
Example -1:
. How to map bit 2 of the byte located at Peripheral X address 0x20000300 in the
alias region (Peripheral X based address is 0x20000000 ):
23
Data Memory management(7/7)
• Solution:
0x22006008 = 0x22000000 + (0x300*32) + (2*4).
Writing to address 0x22006008 has the same effect as a read-modify-write
operation on bit 2 of the byte at SRAM address 0x20000300.
Reading address 0x22006008 returns the value (0x01 or 0x00) of bit 2 of the
byte at SRAM address 0x20000300 (0x01: bit set; 0x00: bit reset).
For more information on Bit-Banding, please refer to the Cortex™-M3
Technical Reference Manual.
24
Instruction Pipeline(1/3)
 PC points to fetch stage:
FETCH
DECODE
Instruction fetched from memory
Instruction decoded
Register(s) read from Register Bank
EXECUTE
Shift and ALU operation or memory access
Write register(s) back to Register Bank
25
Instruction Pipeline(2/3)
 Optimal Pipelining:
Cycle
1
2
3
4
5
6
7
8
9
Operation
ADD
F
SUB
D
E
F
D
E
F
D
E
F
D
E
F
D
E
F
D
ORR
AND
ORR
EOR
F- Fetch
D - Decode
E
E - Execute
 All operations here are registers (single cycle execution)
 In this example it takes 6 cycles to execute 6 instructions
 Clock cycles per Instructions (CPI) = 1
26
Instruction Pipeline(3/3)
 Flushing :
A flush of the pipeline can occur because of
 A Branch
 An exception
 A breakpoint

Branch Pipeline Example:
Cycle
1
Address Operation
0x8000 B 0x8FEC
0x8002
SUB
0x8004
ORR
0x8FEC
AND
0x8FEE
ORR
0x8FF0
EOR
F
D
E
F
D
2
3
4
5
F
D
E
F
D
E
F
D
6
7
8
9
F
F- Fetch
D - Decode
E
E - Execute
27
Register Set(1/2)
 Registers R0-R12 are simple registers
that can be used to hold program
variables.
Register Set
R0
R1
R2
R3
 Registers R13-R15 have special functions
within the Cortex CPU.
 R13: Register R13 is used as the stack pointer
 R14: called the link register. used to store the
return address when a call is made to a
procedure
 R15: is the program counter
 xPSR:The Program Status Register
contains status fields for instruction
execution
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13(SP)
R14(LR)
R15 (PC)
xPSR
28
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

System Timer (SysTick)

Debug Capabilities
29
Interrupt Handling
 The Cortex-M3 processor integrates an advanced
Nested Vectored Interrupt Controller (NVIC)
 The NVIC supports up to 240 dynamically reprioritizes
interrupts each with up to 256 levels of priority
 Supports advanced features for next generation real-time
applications:
 Tail-chaining of pending interrupts
 Interrupt Pre-emption
 Late Arrival
30
Interrupt Response- Tail Chaining(1/3)
Highest
IRQ1
IRQ2
42 CYCLES
ARM7
Interrupt handling in
assembler code
PUSH
ISR 1
POP
26
PUSH
16
26
ISR 2
POP
ISR 2
POP
16
Tail-chaining
Cortex-M3
Interrupt handling in HW
PUSH
ISR 1
12
6
12
6 CYCLES
ARM7
Cortex-M3
• 26 cycles from IRQ1 to ISR1 entered
•Up to 42 cycles
•42 cycles from ISR1 exit to ISR2 entry
•16 cycles to return from ISR2
• 12 cycles from IRQ1 to ISR1 entered
• 12 cycles
•6 cycles from ISR1 exit to ISR2 entry
•12 cycles to return from ISR2
31
Interrupt Response – Preemption(2/3)
Highest
IRQ1
IRQ2
42 CYCLES
ARM7
ISR 1
POP
PUSH 2
16
Cortex-M3
ISR 1
26
POP
112
ISR 2
ISR 2
6
POP
16
POP
7-18 CYCLES
12
32
Interrupt Response – Late Arriving(3/3)
Less than 12 cycle
IRQ1
Highest
IRQ2
ARM7
PUSH
PUSH
26
Cortex-M3
PUSH
ISR 1
POP
26
16
ISR 2
ISR 1
6
TailChaining
ISR 2
POP
16
POP
12
33
Interrupt Response – Lab
More than12 cycle
Highest
NMI
IRQ1
IRQ2
IRQ3
Less than12 cycle
PUSH
ISR 2
Starts
PUSH
NMI
ISR 1
 Push for ISR1 begins
 Pre-empted by NMI
 New instruction fetch in
parallel minimises time to NMI
POP
ISR 2
ISR 3
POP
Cortex-M3
•Following NMI processor tail-chains into ISR1
•ISR2 Completed
•Pop only occurs on return to “Main”
34
NVIC Registers

Each interrupt input has several registers to control it
 Enable/Disable Bit
 Enable or disable the interrupt
 Can be set, cleared or read
 Pending Bit
 If the pending bit is set, then the interrupt is pending
 A pending interrupt can only be taken (become active) if it is enabled and it
has sufficient priority to run
 Pending bit can be set, cleared or read
 Active Bit
 A bit is set if the interrupt is executing or “active-stacked”
 “Active-stacked” means the interrupt was executing, but was preempted by another higher-priority interrupt
 Active register is normally read only
 Priority field
 priority management for each interrupt
35
Cortex-M3 Exception Types
No.
Exception Type
Priority
Type of
Priority
Descriptions
1
Reset
-3 (Highest)
fixed
Reset
2
NMI
-2
fixed
Non-Maskable Interrupt
3
Hard Fault
-1
fixed
Default fault if other hander not
implemented
4
MemManage Fault
0
settable
MPU violation or access to illegal locations
5
Bus Fault
1
settable
Fault if AHB interface receives error
6
Usage Fault
2
settable
Exceptions due to program errors
Reserved
N.A.
N.A.
11
SVCall
3
settable
System Service call
12
Debug Monitor
4
settable
Break points, watch points, external debug
13
Reserved
N.A.
N.A.
14
PendSV
5
settable
Pendable request for System Device
15
SYSTICK
6
settable
System Tick Timer
16
Interrupt #0
7
settable
External Interrupt #0
7-10
……
256
…………………..
Interrupt#240
………………
247
settable
settable
…………………..
External Interrupt #240
36
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
37
Cortex-M3 Memory Map
38
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
39
Power Management

8bit Microcontroller like power mode management
 SLEEP NOW
♦ “Wait for Interrupt” instructions to enter low power mode
No more dedicated control register settings sequence
♦ “Wait for Event” instructions to enter low power mode
No need of Interrupt to wake-up from sleep
Rapid resume from sleep
 SLEEP on EXIT
♦ Sleep request done in interrupt routine
♦ Low power mode entered on interrupt return
Very fast wakeup time
 DEEP SLEEP
♦ Long duration sleep
From product side: PLL can be stopped or shuts down the
power to digital parts of the system
Enables low power consumption
 Optimized RUN mode CORE power consumption
40
CONTENTS

Objectives

Introduction

Cortex-M3 Processor

Cortex M3 interrupt handling

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
41
System Timer (SysTick)
 Flexible system timer
 24-bit self-reloading down counter with end of count interrupt
generation
 2 configurable Clock sources
 Suitable for Real Time OS or other scheduled tasks
In STM32F10x the SysTick clock can be: CPU clock or CPU clock/8
(provided externally by the Reset Clock Control )
42
CONTENTS

Objectives

Introduction


What is ARM ?

Why use an ARM-based processor?
Cortex-M3 Processor

Cortex-M3 Processor Main Features

Data Memory

Instruction Pipeline

Write Buffer

Privilege, Modes, Stacks and Register Set

Cortex M3 interrupt handling

Exception/Interrupt Handling,

NVIC Registers

Cortex-M3 Exception Types

Vector Table

Cortex-M3 Memory Map

Power Management

System Timer (SysTick)

Debug Capabilities
43
Debug Capabilities

JTAG
ETM
 Three solutions are possible :
SWD
More pins available
for the application
Joint Test Action Group easy flashed application debugging
♦ 8 hardware breakpoints
 Serial Wire Debug for targeted low bandwidth data trace

Enhanced Thematic Mapper capability for better real time debugging
 ♦ Instruction trace only
44
Performance
Power
Management
Real time
5 reasons
to choose
Cortex-M3
Optimized
Memory
Powerful
Debugging
45
PART - II
STM32F10x Device
46
CONTENTS
 Objectives
 STM32F10x Device
 Block Diagram
 Memory mapping and boot modes
 System Architecture
 STM32F10x System Peripherals
 Main features
 STM32F10x Minimum External Components
 STM32F10x standard peripheral Library
 What is CMSIS?
 Package organization
 STM32F10xxx standard peripheral library architecture
 Coding conventions
 Using the Library
47
OBJECTIVES
 Familiarize with STM32F10x device
 At the end of the training you will be able to
 List the main features of the STM32F10x system
peripherals
 Configure the standard library environment
 Develop your applications using the STM32F10x
standard library
48
CONTENTS
 Objectives
 STM32F10x Device
 Block Diagram
 Memory mapping and boot modes
 System Architecture
 STM32F10x System Peripherals
 Main features
 STM32F10x Minimum External Components
 STM32F10x standard peripheral Library
 What is CMSIS?
 Package organization
 STM32F10xxx standard peripheral library architecture
 Coding conventions
 Using the Library
49
More choice with STM32 series
 The general purpose F-1 series
addresses a wide range of applications,
from the lowest price-sensitive design to
the computing intensive, high memory
Footprint
 Get the highest performance with the
F-2 series for computing intensive
application and advanced connectivity.
The F-2 series maintains the compatibility
with the F-1 series.
 Get the highest performance with the
Design ultra-low-power applications with
the L-1 series for those who are power
conscious and seek the absolute lowest
energy consumption. The L-1 series
maintains the compatibility with the F-1
series.
50
STM32 portfolio based on F1 series
51
STM32 Value line 16K-32KBytes block diagram



ARM® Cortex™-M3 1.25
DMIPS/MHz up to 24 MHz
2.0 V to 3.6 V range
-40 to +105 °C
CORTEXTM-M3
CPU
24 MHz
JTAG/SW Debug
Nested vect IT Ctrl

Rich connectivity




1 x Systick Timer
5 communications peripherals
Advanced analog
12-bit1.2 µs conversion time ADC
Dual channel 12-bit DAC
Flash I/F
Core and operating conditions
DMA
ARM Lite Hi-Speed Bus
Matrix / Arbiter (max 24MHz)

16kB - 32kB
Flash Memory
4kB SRAM
Power Supply
Reg 1.8V
POR/PDR/PVD
XTAL oscillators
32KHz + 4~25MHz
20B Backup Data
Int. RC
oscillators
40KHz + 8MHz
PLL
Clock Control
7 Channels
Bridge
RTC / AWU
ARM® Peripheral Bus 1
(max 24MHz)
Enhanced control


16-bit motor control timer
5x 16-bit PWM timers
Synchronized AC Timer
Up to 16 Ext. ITs
37/51 I/Os

LQFP48, LQFP/BGA64
1 x SPI
1 x USART/LIN
Smartcard/IrDa
Modem Control
5 x 16-bit timer
(max 24MHz)

ARM® Peripheral Bus 2
Bridge
1 x 16-bit PWM
1 x CEC
2 x Watchdog
(independent & window)
2-channel 12-bit DAC
1 x USART/LIN
Smartcard / IrDa
Modem Control
1 x 12-bit ADC
up to 16 channels
Temperature Sensor
1 x I 2C
52



ARM® Cortex™-M3 1.25
DMIPS/MHz up to 24 MHz
2.0 V to 3.6 V range
-40 to +105 °C
24 MHz
JTAG/SW Debug
Nested vect IT Ctrl
Rich connectivity

8 communications peripherals
DMA
7 Channels



12-bit1.2 µs conversion time ADC
Dual channel 12-bit DAC
Synchronized AC Timer
Enhanced control


16-bit motor control timer
6x 16-bit PWM timers
Up to 16 Ext. ITs
37/51/80 I/Os
1 x SPI

8kB SRAM
LQFP48, LQFP/BGA64, LQFP100
1 x USART/LIN
Smartcard/IrDa
Modem Control
Power Supply
Reg 1.8V
POR/PDR/PVD
XTAL oscillators
32KHz + 4~25MHz
20B Backup Data
Int. RC
oscillators
40KHz + 8MHz
PLL
Clock Control
Bridge
1 x 16-bit PWM

64kB - 128kB
Flash Memory
Advanced analog
RTC / AWU
ARM® Peripheral Bus1
(max 24MHz)
Bridge
6 x 16-bit Timer
(max 24MHz)

1 x Systick Timer
ARM® Lite Hi-Speed Bus
Matrix / Arbiter (max 24MHz)
Core and operating conditions
CORTEXTM-M3
CPU
ARM® Peripheral Bus2

Flash I/F
STM32 Value line 64K-128KBytes block diagram
1 x CEC
2 x Watchdog
(independent & window)
2-channel 12-bit DAC
2 x USART/LIN
Smartcard / IrDa
Modem Control
1 x 12-bit ADC
up to16 channels
1 x SPI
Temperature Sensor
2 x I 2C
53
STM32 Value line 256K-512KBytes block diagram


ARM® Cortex™-M3 1.25
DMIPS/MHz up to 24 MHz
2.0 V to 3.6 V range
-40 to +105 °C
JTAG/SW Debug
Nested vect IT Ctrl
Rich connectivity


1 x Systick Timer
11 communications peripherals
DMA
up to 12 Channels
SRAM, NOR, memories support.
LCD Parallel interface 8/16-bit
Intel 8080 and Motorola 68K
Reg 1.8V
POR/PDR/PVD
XTAL oscillators
32KHz + 4~25MHz
84B Backup Data
Int. RC oscillators
40KHz + 8MHz
FSMC
SRAM/ NOR/ LCD parallel
interface
Bridge
PLL
RTC / AWU
Enhanced control


16-bit motor control timer
10x 16-bit PWM timers
(max 24MHz)
Bridge
Up to 16 Ext. ITs
51/80/112 I/Os
1 x SPI
LQFP64, LQFP100, LQFP144
ARM® Peripheral Bus 1
1 x 16-bit PWM
Synchronized AC Timer

24KB-32kB SRAM
Power Supply
FSMC




256KB-512kB
Flash Memory
Clock Control
1 x USART/LIN
Smartcard/IrDa
Modem Control
10 x 16-bit Timer
(max 24MHz)

Flash I/F

ARM ® Lite Hi-Speed 36us
Matrix / Arbiter (max 24MHz)
Core and operating conditions
ARM® Peripheral Bus 2

CORTEXTM-M3
CPU
24 MHz
1 x CEC
2 x Watchdog
(independent & window)
4 x USART/LIN
2-channel 12-bit DAC
Smartcard / IrDa
Modem Control
1 x 12-bit ADC
up to 16 channels
2 x SPI
Temperature Sensor
2 x I 2C
54
Memory Mapping and Boot Modes



Addressable memory space of 4 GBytes
RAM : up to 32 kBytes
FLASH : up to 512 kBytes

Boot modes:
Depending on the Boot configuration
- Embedded Flash Memory
- System Memory
- Embedded SRAM Memory
is aliased at @0x00
0xFFFF FFFF
0xE010 0000
0xE00F FFFF
0xE000 0000
Reserved
Cortex-M3
internal
peripherals
Reserved
Reserved
Option Bytes
BOOT Mode
Selection Pins
0x1FFF F80F
0x1FFF F800
Reserved
0x2000 0000
SRAM
Reserved
0x0000 0000
User Flash
User Flash is selected as
boot space
BOOT1
BOOT0
0x1FFF F000
x
0
0
1
SystemMemory
SystemMemory is
selected as boot space
1
1
Embedded
SRAM
Embedded SRAM is
selected as boot space
Reserved
0x0801 FFFF
Peripherals
Aliasing
0x1FFF F7FF
SystemMemory
0x4000 0000
Boot Mode
Flash
0x0800 0000

SystemMemory: contains the Bootloader
used to re-program the FLASH through USART1.
CODE
55
System Architecture

Multiply possibilities of bus accesses to SRAM, Flash, Peripherals, DMA
 BusMatrix added to Harvard architecture allows parallel access
Efficient DMA and Rapid data flow
 Direct path to SRAM through arbiter, guarantees alternating access
 Harvard architecture + BusMatrix allows Flash execution in parallel with DMA transfer
I-bus
D-bus
BusMatrix
CORTEX-M3
Master 1
Flash I/F

GP-DMA
Master 2
FLASH
SRAM
Slave
APB2
AHB
AHB-APB2
AHB-APB1
Arbiter
Peripheral Bus APB2
APB1
Peripheral Bus APB1
Bridges
Buses are not overloaded with data movement tasks
56
CONTENTS
 Objectives
 STM32F10x Device
 Block Diagram
 Memory mapping and boot modes
 System Architecture
 STM32F10x System Peripherals
 Main features
 STM32F10x Minimum External Components
 STM32F10x standard peripheral Library
 What is CMSIS?
 Package organization
 STM32F10xxx standard peripheral library architecture
 Coding conventions
 Using the Library
57
STM32F101x Series Block Diagram
Nested vect IT Ctrl
1 x Systick Timer
DMA
up to 12 Channels
ARM ® Lite Hi-Speed 36us
Matrix / Arbiter (max 24MHz)
JTAG/SW Debug
Flash I/F
CORTEXTM-M3
CPU
24 MHz
256KB-512kB
Flash Memory
24KB-32kB SRAM
Power Supply
Reg 1.8V
POR/PDR/PVD
XTAL oscillators
32KHz + 4~25MHz
84B Backup Data
Int. RC oscillators
40KHz + 8MHz
FSMC
SRAM/ NOR/ LCD parallel
interface
Clock Control
Bridge
PLL
RTC / AWU
ARM® Peripheral Bus
(max 24MHz)
Bridge
1 x 16-bit PWM
51/80/112 I/Os
1 x SPI
1 x USART/LIN
Smartcard/IrDa
Modem Control
10 x 16-bit Timer
(max 24MHz)
Up to 16 Ext. ITs
ARM® Peripheral Bus
Synchronized AC Timer
1 x CEC
2 x Watchdog
(independent & window)
4 x USART/LIN
2-channel 12-bit DAC
Smartcard / IrDa
Modem Control
1 x 12-bit ADC
up to 16 channels
2 x SPI
Temperature Sensor
2 x I 2C
58
Power Control (PWR) and Backup Domain
(BKP)
59
Power Supply
• Power Supply Schemes
 VDD = 2.0 to 3.6 V: External
Power Supply for I/Os and the
internal regulator.
 VDDA = 2.0 to 3.6 V: External
Analog Power supplies for ADC,
Reset blocks, RCs and PLL.
 ADC working only if VDDA ≥ 2.4
V
VDDA domain
VREFVREF+
A/D converter
Temp. sensor
Reset block
PLL
VDDA
VSSA
VDD domain
V18 domain
I/O Rings
VSS
VDD
 VBAT = 1.8 to 3.6 V: For Backup
domain when VDD is not present.
STANDBY circuitry
(Wake-up logic,
IWDG, RCC CSR reg)
Core
Memories
Digital
peripherals
Voltage Regulator
Low Voltage Detector
Backup domain
VBAT
LSE crystal 32K osc
BKP registers
RCC BDCR register
RTC
60
Power On Reset / Power Down Reset
• Integrated POR(Power On
Reset )/ PDR(Power Down
Reset ): circuitry guarantees
proper product reset when
voltage is not in the product
guaranteed voltage range (2V
to 3.6V)
 No need for external reset circuit
• POR and PDR have a typical
hysteresis of 40mV
VDD
Vtrh
POR
40mv hysteresis
Vtrl
PDR
Tempo
2ms
Reset
Vtrl min 1.8V / Vtrh max 2V
61
Programmable Voltage Detector (PVD)
• Programmable Voltage
Detector(PVD)
VDD
 Enabled by software
 Monitor the VDD power supply
by comparing it to a threshold
 Threshold configurable from
2.2V to 2.9V by step of 100mV
PVD Threshold
100mv
hysteresis
PVD
Output
Threshold
62
Backup Domain
• Backup Domain contains
 RTC (Counter, Prescaler and Alarm mechanism)
 Separate 32KHz Osc (LSE) for RTC
 20-byte user backup data
 RCC BDSR register: RTC source clock selection
and enable + LSE config
 Reset only by Backup domain RESET
• VBAT independent voltage supply
 Automatic switch-over to VBAT when VDD goes lower
than PDR level
Backup domain
VBAT
power switch
RCC BDSR
reg
32KHz OSC
(LSE)
20 byte
data
RTC
VDD
ANTI_
TAMP
 No current sunk on VBAT when VDD present
• Tamper detection: resets all user backup
registers
 Configurable level: low/high
 Configurable interrupt generation
63
Low Power Modes
 STM32F10x Low Power modes: uses CortexM3 Sleep
modes
 SLEEP, STOP and STANDBY modes
 The reset circuitry, POR/PDR, is active in STANDBY and STOP modes
Feature
STM32F10x typ
Consumption in RUN mode w/ execute from Flash on internal RC and
peripherals clock ON
4.9mA
Consumption in RUN mode w/ execute from Flash on PLL 24 MHz
(HSE : external clock = 8MHz) and peripherals clock ON
36mA
Consumption in RUN mode w/ execute from Flash on PLL 24 MHz
(HSE : external clock = 8MHz) and peripherals clock OFF
27mA
STOP w/ Voltage Regulator in low power
Low speed and high-speed internal RC oscillators and high-speed oscillator
OFF(no independent watchdog)
14µA
STANDBY w/ low-speed oscillator and RTC OFF
Low-speed internal RC oscillator and independent watchdog OFF
2µA
RTC on VBAT
(*) : Typical
(*)
1.4 µA
values are measured at TA = 25 °C, VDD/VBAT = 3.3 V.
64
CONTENTS
 Objectives
 STM32F10x Device
 Block Diagram
 Memory mapping and boot modes
 System Architecture
 STM32F10x System Peripherals
 Main features
 STM32F10x Minimum External Components
 STM32F10x standard peripheral Library
 What is CMSIS?
 Package organization
 STM32F10xxx standard peripheral library architecture
 Coding conventions
 Using the Library
65
STM32F10x Minimum External Components

Built-in Power Supply Supervisor reduces need for external
components
 Filtered reset input, integrated POR/PDR circuitry, programmable Voltage
Detector (PVD).

Embedded 8 MHz High-Speed Internal (HSI) RC oscillator can be
used as main clock

Optional main crystal drives entire system
 Inexpensive 4-16 MHz crystal drives CPU, all peripherals

Optional 32.768 kHz crystal needed additionally for RTC, can run on
40KHz Low Speed Internal (LSI) RC oscillator
 Only 7 mandatory external passive components for base
system on LQFP100 package!
Application Note is available from www.st.com/mcu
AN2586: STM32F10xxx Hardware development : getting started
66
CONTENTS
 Objectives
 STM32F10x Device
 Block Diagram
 Memory mapping and boot modes
 System Architecture
 STM32F10x System Peripherals
 Main features
 STM32F10x Minimum External Components
 STM32F10x standard peripheral Library
 What is CMSIS?
 Package organization
 STM32F10xxx standard peripheral library architecture
 Coding conventions
 Using the Library
67
What is CMSIS?
• Definition:
The Cortex-M3™ Microcontroller Software Interface Standard (CMSIS) is defined in
close cooperation with various silicon and software vendors and provides a common
approach to interface to peripherals, real-time operating systems and middleware
components. For more details, please refer to www.onarm.com.
• CMSIS layer structure
68
Package organization
69
STM32 Firmware Library User Manual
Main page
70
STM32 Firmware Library User Manual
71
STM32F10xxx standard peripheral library
architecture
- STM32 interrupt IRQ list/ Specific
options for the Cortex-M3 core
- STM32 peripheral memory mapping
and physical register address definition
- Configuration options
…
User application
Cortex-M3 exceptions
Peripheral header file
Include NVIC and
SysTick drivers
Low-level & API functions to
Perform basic operations
offered by the peripheral
72
Coding conventions
 All firmware is coded in ANSI-C
 Strict ANSI-C for all library peripheral files
 Relaxed ANSI-C for projects & Examples files.
 PPP is used to reference any peripheral acronym, e.g.
TIM for Timer.
 Registers & Structures
 FW library registers have the same names as in STM32F10x
Datasheet & reference manual.
 All registers hardware accesses are performed through a C
structures :
 Improve code re-use : e.g. the same structure to handle and
initialize 3 USARTs.
73
Using the Library (1/4)
1) Before configuring a peripheral, you have to enable its clock by calling one of the
following functions:
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx , ENABLE);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_PPPx , ENABLE);
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PPPx , ENABLE);
2) PPP_DeInit(..) function can be used to set all PPP’s peripheral registers to their
reset values:
 PPP_DeInit(PPPx);
3) If after peripheral configuration, the user wants to modify one or more peripheral
settings he should proceed as following:
 PPP_InitStucture.memberX = valX;
 PPP_InitStructure.memberY = valY;
 PPP_Init(PPPx, &PPP_InitStructure);
74
Using the Library (2/4)
 At this stage the PPP peripheral is initialized and can be enabled by
making a call to PPP_Cmd(..) function: PPP_Cmd(PPPx, ENABLE);
 Note: This function is used only for communication peripherals like UART,
SPI, …
 To access the functionality of the PPP peripheral, the user can use a set
of dedicated functions. These functions are specific to the peripheral and
for more details refer to STM32F10x Firmware Library User Manual.
Example of GPIO
Functions available
75
Using the Library (3/4)
 UART1 configuration example :


/* Enable USART1 Clock */
RCC_APB2PeriphClockCmd( USART1, ENABLE );

/* set all UART1’s peripheral registers to their reset values */

USART_DeInit( USART1 ) ;


/* USART1 configuration ------------------------------------------------------*/
/* USART1 configured as follow:


- BaudRate = 19200 baud
- Word Length = 8 Bits


- One Stop Bit
- Even parity


- Hardware flow control disabled (RTS and CTS signals)
- Receive and transmit enabled

*/

USART_InitStructure.USART_BaudRate = 9600;

USART_InitStructure.USART_WordLength = USART_WordLength_8b;

USART_InitStructure.USART_StopBits = USART_StopBits_1;

USART_InitStructure.USART_Parity = USART_Parity_Even;

USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;

USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;


/* Configure USART1 */
USART_Init( USART1, &USART_InitStructure);


/* Enable USART1 */

USART_Cmd( USART1, ENABLE );
USART 1 is ready now …
76
Using the Library (4/4)
• Files to be modified by the user:

stm32f10x_conf.h
/* Includes -----------------------------------------------------------------*/
/* Uncomment the line below to enable peripheral header file
inclusion */
/* #include "stm32f10x_adc.h" */
/* #include "stm32f10x_bkp.h" */
/* #include "stm32f10x_can.h" */
…
…

stm32f10x.h
/* Uncomment the line below according to the target STM32
device used in your application */
#if !defined (STM32F10X_LD) && !defined
(STM32F10X_MD) && !defined (STM32F10X_HD)
/* #define STM32F10X_LD */ /*!< STM32 Low density
devices */…
#endif
…
/* STM32F10x Interrupt Number Definition*/
EXTI0_IRQn
= 6, /*!< EXTI Line0 Interrupt */
EXTI1_IRQn
= 7, /*!< EXTI Line1 Interrupt */
DMA1_Channel1_IRQn = 11, /*!< DMA1 Channel 1 global Interrupt */

main.c
#include "stm32f10x.h“
int main(void)
{
...
GPIO_WriteBit(GPIOD, GPIO_Pin_1, Bit_SET);
…
}

stm32f10x_It.h
/* Exported functions ----------------------------------------------- */
void NMI_Handler(void);
void HardFault_Handler(void);
…

stm32f10x_It.c
#include "stm32f10x_it.h"
…
void EXTI1_IRQHandler(void)
{
GPIO_WriteBit(GPIOD, GPIO_Pin_1, Bit_SET);
}
77
PART - III
STM32 Value line Discovery Kit
78
STM32 Value line Discovery Kit
Microcontroller Division of MMS Group
June, 2010
79
The cheapest and quickest way to
discover the STM32
 Everything included for a quick start with the STM32 Value Line
 Price: $9.90 (RRP)
 Order code: STM32VLDISCOVERY
 Available NOW from ST and Distributors
 In circuit ST-LINK debugger / programmer included to debug
Discovery kit applications or other target board applications.
 Ideal for quick evaluation, learning or prototyping
 Dedicated web site www.st.com/stm32-discovery
 Examples ready to run
 Schematics
 Forums and more…
80
STM32 Value line Discovery Board

A compact “all in one board”

The debugger “ST-link” is on
the board itself

Few leds and button for
immediate usage
ST-LINK
SWD connector
84mm


The extension connector will all
STM32 pins enable building
more complex applications by
using an extension board
STM32F100RBT6B
User button
Led Blue
Led Green
The board can be used as an
independent ST-link for your
own board if needed
42mm
Extension connector
On each side
81
Tools and Software
 Development Toolchain support
 Free Atollic TrueSTUDIO® lite version with
unlimited code-size and usage-time.
 IAR EWARM
 KEIL MDK-ARM
 Software examples available at www.st.com/stm32-discovery for
a quick start to evaluate and develop with the STM32 Value line
82
Features and Benefits
Feature
Benefit
STM32F100RBT6B microcontroller
Discover STM32 with STM32 Value line,
including 128-Kbyte Flash, 8-Kbyte RAM in a 64pin LQFP
Self powered by USB cable between PC and
STM32 Value line Discovery
Immediate plug-and-play demonstration
Can supply target application with 5 V and 3 V
Adapts the demo to the future application
environment
On-board ST-Link with USB interface for
programming and debugging
Non-intrusive debug with the in-circuit debugger
present on STM32 Value line Discovery.
Selection mode switch to use the kit as a
standalone ST-Link (with SWD connector)
The kit can be used as an ST-link for your own
board
Extension header for all QFP64 I/Os
Ideal for prototyping and easy probing. Enable
quick connection to a prototyping board
Development toolchains from partners
Complete kit enabling full software development,
no need for additional software.
Large number of free, downloadable ready-touse software examples
Fast startup, accelerate your developments.
More than 37 Videos are available on YouTube web site.
example: link : http://www.youtube.com/watch?v=5Si0tgqrAd0
83
STM32F100xx Value Line necessary docs

RM0041 (Reference Manual): Peripherals description…

PM0063 (Flash Programming Manual): Flash description…

Product Datasheet STM32F100x468B-B: Electrical parameters…

STM32F10x Standard Peripheral Library V3.3.0: STM32 value Line Firmware
library, examples…

AN3268 (STM32VLDISCOVERY firmware package): STM32 discovery
Firmware library…

UM0919 (STM32VLDISCOVERY STM32 value line Discovery): STM32
discovery board description, schematics…

UM0985 (Developing your STM32VLDISCOVERY application using the IAR
Embedded Workbench software): Tools description...
All docs are available from www.st.com/mcu
84
Now you are able to…
Develop your application around
STM32F100 device
85
Thank you
86
Download