to ARM Cortex TM -M3 October 17, 2007 MCD Application Team

Similar documents
Interconnects, Memory, GPIO

STM bit ARM Cortex MCUs STM32F030 Series

AN2585 Application note

STM32 F0 Value Line. Entry-level MCUs

AVR XMEGA Product Line Introduction AVR XMEGA TM. Product Introduction.

ARM Cortex core microcontrollers 12 th Energy efficient operation

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

STM32x. tec.pres. STM32 ARM CortexTM-M3 Based Product Introduction

AVR XMEGA TM. A New Reference for 8/16-bit Microcontrollers. Ingar Fredriksen AVR Product Marketing Director

STM32F4 Introduction F1/F2/F4 Comparison Features Highlight

Exceptions and Interrupts ARM Cortex M3

STM32 ARM Cortex TM - M3 Based Product Introduction. Sept 2007

AN2606 Application note

Getting Started With the Stellaris EK-LM4F120XL LaunchPad Workshop. Version 1.05

STG - STM32 + FreeRTOS + LwIP/EmWin

STM32F4 Labs. T.O.M.A.S Technically Oriented Microcontroller Application Services V1.07

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

Hello, and welcome to this presentation of the STM32L4 power controller. The STM32L4 s power management functions and all power modes will also be

Microcontrollers: Lecture 2 Low power Modes, Buses, Memory, GPIOs. Michele Magno

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

STM32 MCU family. 32-bit Flash microcontrollers powered by ARM Cortex -M3. June

AN5123 Application note

STM32G070CB/KB/RB. Arm Cortex -M0+ 32-bit MCU, 128 KB Flash, 36 KB RAM, 4x USART, timers, ADC, comm. I/Fs, V. Features

ELC4438: Embedded System Design ARM Cortex-M Architecture II

STM32 MICROCONTROLLER

STM32: Peripherals. Alberto Bosio November 29, Univeristé de Montpellier

ARM architecture road map. NuMicro Overview of Cortex M. Cortex M Processor Family (2/3) All binary upwards compatible

Copyright 2016 Xilinx

Designing with STM32F2x & STM32F4

STM32 MICROCONTROLLER

MICROPROCESSOR BASED SYSTEM DESIGN

STM32 F-2 series High-performance Cortex-M3 MCUs

Performance line Access line STM32F103VB STM32F101VB STM32F103V8 STM32F101V pins LQFP/BGA LQFP/BGA

The ARM Cortex-M0 Processor Architecture Part-1

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of

Hello, and welcome to this presentation of the STM32 Reset and Clock Controller.

ARM Cortex core microcontrollers

STM32 MCU family. 32-bit Flash microcontrollers powered by ARM Cortex -M3. August

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso

AN3268 Application note

Infineon C167CR microcontroller, 256 kb external. RAM and 256 kb external (Flash) EEPROM. - Small single-board computer (SBC) with an

Universität Dortmund. MCUs Low-Power Features

M68HC08 Microcontroller The MC68HC908GP32. General Description. MCU Block Diagram CPU08 1

Introduction to ARM LPC2148 Microcontroller

AK-STM32-ETH Development Board

AN Migrating to the LPC1700 series

ARM Cortex-M4 Architecture and Instruction Set 1: Architecture Overview

Hello, and welcome to this presentation of the STM32L4 System Configuration Controller.

Universität Dortmund. ARM Cortex-M3 Buses

STM32L4 System operating modes

STM8L and STM32 L1 series. Ultra-low-power platform

Hello, and welcome to this presentation of the STM32 general-purpose IO interface. It covers the general-purpose input and output interface and how

ARM Cortex core microcontrollers 3. Cortex-M0, M4, M7

Hello, and welcome to this presentation of the STM32F7 System Configuration Controller.

AN2548 Application note

Product Brief Supports all SKEA8 devices

Product Brief Supports all SKEA64 devices

L2 - C language for Embedded MCUs

AN4325 Application note

Embedded Programming with ARM Cortex-M3 Basic Experiments 1

Introducing STM32 L0x Series. April

STM32SnippetsL0. STM32L0xx Snippets firmware package. Features. Description

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

KE02 Sub-Family Product Brief Supports all KE02 devices with 40 MHz core

The course provides all necessary theoretical and practical know-how for start developing platforms based on STM32L4 family.

Product Brief Supports all SKEA128 devices

ARM Processors for Embedded Applications

Informatics for industrial applications

STM32 Cortex-M3 STM32F STM32L STM32W

RM3 - Cortex-M4 / Cortex-M4F implementation

STM32G0 MCU Series Efficiency at its Best

Arduino Uno R3 INTRODUCTION

STM32F429 Overview. Steve Miller STMicroelectronics, MMS Applications Team October 26 th 2015

Product Technical Brief S3C2412 Rev 2.2, Apr. 2006

LPC4370FET256. Features and benefits

AN4152 Application note

Welcome to this presentation of the STM32 direct memory access controller (DMA). It covers the main features of this module, which is widely used to

KL03 Product Brief Supports all KL03 devices

Hello, and welcome to this presentation of the STM32 Flash memory interface. It covers all the new features of the STM32F7 Flash memory.

AN4088 Application note

Value-line ARM -based 32-bit MCU with up to 256 KB Flash, timers, ADC, communication interfaces, V operation

AN2548 Application note

Product Technical Brief S3C2413 Rev 2.2, Apr. 2006

ARDUINO MEGA INTRODUCTION

STM32 F2 series High performance Cortex M3 MCUs

Design and Implementation Interrupt Mechanism

ARM Cortex M3 & General Purpose Input/Output (GPIO)

AVR Microcontrollers Architecture

Advanced Microcontrollers Grzegorz Budzyń Extras: STM32F4Discovery

Programming Embedded Systems

Chapter 5. Introduction ARM Cortex series

Understanding the basic building blocks of a microcontroller device in general. Knows the terminologies like embedded and external memory devices,

[MG2420] MCU Module Datasheet. (No. ADS0705) V1.0

Interrupt/Timer/DMA 1

Xynergy It really makes the difference!

STM32 Journal. In this Issue:

Hercules ARM Cortex -R4 System Architecture. Processor Overview

Module 2. Embedded Processors and Memory. Version 2 EE IIT, Kharagpur 1

AN2606 Application note

Transcription:

Introduction to ARM Cortex TM -M3 October 17, 2007 MCD Application Team

CONTENTS Introduction to the Cortex-M3 Architecture Overview Comparison to ARM7 Bit Banding and Unaligned data access Interrupt and real time capabilities Introduction to Cortex-M3 MCD Application 2

Introduction to the Cortex-M3 Three distinct profiles of the ARMv7 architecture A profile for sophisticated, high-end applications R profile for real-time system M profile for cost-sensitive and microcontroller applications. Cortex-M3 processor is the first ARM processor based on the ARMv7-M architecture Designed to achieve high system performance in power and cost-sensitive embedded application such as, automotive body systems, industrial control systems and wireless networking Introduction to Cortex-M3 MCD Application 3

CONTENTS Introduction to the Cortex-M3 Architecture Overview Comparison to ARM7 Bit Banding and Unaligned data access Interrupt and real time capabilities Introduction to Cortex-M3 MCD Application 4

Cortex-M3 Processor Architecture Hierarchical processor integrating core and advanced system peripherals Cortex-M3 core Harvard architecture 3-stage pipeline w. branch speculation Thumb -2 and traditional Thumb ALU w. H/W divide and single cycle multiply Cortex-M3 Processor Cortex-M3 core Configurable interrupt controller Bus matrix Advanced debug components Optional MPU & ETM (Not available in STM32F10x) Introduction to Cortex-M3 MCD Application 5

CONTENTS Introduction to the Cortex-M3 Architecture Overview Comparison to ARM7 Bit Banding and Unaligned data access Interrupt and real time capabilities Introduction to Cortex-M3 MCD Application 6

Cortex-M3 Processor Overview (1/2) 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) for low latency interrupt processing Vector Table is addresses, not instructions Introduction to Cortex-M3 MCD Application 7

Cortex-M3 Processor Overview (2/2) Designed to be fully programmed in C Start Up code Even reset, interrupts and exceptions Integrated Bus Matrix Bus Arbiter Bit Banding Atomic Bit Manipulation Write Buffer Memory Interface (I&D) Plus System Interface & Private Peripheral Bus Integrated System Timer (SysTick) for Real Time OS or other scheduled tasks Introduction to Cortex-M3 MCD Application 8

CONTENTS Introduction to the Cortex-M3 Architecture Overview Comparison to ARM7 Bit Banding and Unaligned data access Interrupt and real time capabilities Introduction to Cortex-M3 MCD Application 9

Comparison to ARM7 ARM7TDMI-S Cortex-M3 Architecture v4t v7m ISA Support ARM (32-bit) & Thumb (16-bit) Thumb-2 (Merged 32/16-bit) DMIPS/MHz 0.74 Thumb / 0.93 ARM 1.25 Thumb-2 Pipeline 3-Stage 3-Stage + Branch Speculation Interrupts FIQ / IRQ NMI, SysTick and up to 240 interrupts. Integrated NVIC Interrupt Controller up to 1-255 Priorities Interrupt Latency 24-42 Cycles (Depending on LSM) 12 Cycles (6 when Tail Chaining) Memory Map Undefined Architecture Defined System Status PSR. 6 modes. 20 Banked regs xpsr. 2 modes. Stacked regs (1 bank) Sleep Modes No Three Introduction to Cortex-M3 MCD Application 10

High Performance CPU and Buses ARM v7m Architecture: Harvard benefits with Von Neumann single memory space Von Neumann bottleneck Single 32bit bus for: code execution, data transfer (core/dma), peripheral control DMA PERIPH PERIPH CORE 1 1 1 0 01 1 01 0 1 0 0 10 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 RAM 1 1 FLASH DMA PERIPH PERIPH 0 1 1 0 0 1 DATA 0 0 1 0 1 0 CM3 RAM CODE 0 1 0 1 0 0 1 1 1 1 CST 0 0 1 1 FLASH Three 32bit buses for a parallel code execution, data transfer (core/dma), peripheral control Outstanding efficiency of 1.2 DMIPS/MHz and 1.2 CPI DMIPS CORTEX-M3 ARM966 (ARM) ARM7TDMI (ARM) ARM7TDMI (THUMB) f CPU Introduction to Cortex-M3 MCD Application 11

THUMB-2 instruction set THUMB-2 instruction set provide 32bit performance with 16bit code density THUMB 16bit Instruction Set ARM 32bit Instruction Subset New 16/32bit Instructions Full THUMB compatibility Complete ARM instruction set for better performance 1 cycle MAC and Hardware Divide Bit handling THUMB-2 Single POWERFULL instruction set No more mode switching Two 16bit instruction fetch per FLASH access Reduces Flash Memory Requirement By 25% vs. ARM Introduction to Cortex-M3 MCD Application 12

CONTENTS Introduction to the Cortex-M3 Architecture Overview Comparison to ARM7 Bit Banding and Unaligned data access Interrupt and real time capabilities Introduction to Cortex-M3 MCD Application 13

Bit Banding Traditional method Speed and code size optimized Cortex-M3 implementation Disable external events Read byte (RAM, register) 0 1 0 0 1 0 1 1 32bit @Rbase+N b31 b0 example: 20000000h to 200FFFFFh REAL memory image Mask and modify bit element X X X X X 1 X X Write byte (RAM, register) @Vbase+Nx32+4xbit b31 VIRTUAL aliased bit banding image 0 1 0 0 1 1 1 1 @Vbase+Nx32 b0 Enable external events example: 22000000h to 23FFFFFFh 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 Introduction to Cortex-M3 MCD Application 14

Unaligned data access Unaligned data access supported to improve data constant and RAM utilization 32bit machine which does not support unaligned data Data aligned long (32) char (8) long (32) char (8) char (8) char (8) int (16) long (32) int (16)c char (8) int (16) long (32) 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) Unused (wasted) space Free space for the rest of the application Reduces SRAM Memory Requirements By Over 25% Less Memory - LowER Cost devices Introduction to Cortex-M3 MCD Application 15

CONTENTS Introduction to the Cortex-M3 Architecture Overview Comparison to ARM7 Bit Banding and Unaligned data access Interrupt and real time capabilities Introduction to Cortex-M3 MCD Application 16

Exception/Interrupt Handling Very low latency interrupt processing Exceptions processed in Privileged operation Interruptible LDM/STM for low interrupt latency Automatic processor state save and restore Provides low latency ISR entry and exit Allows handler to be written entirely in C The Cortex-M3 processor integrates an advanced Nested Vectored Interrupt Controller (NVIC) 43 maskable interrupts channels (not including 16 interrupt lines of Cortex-M3) 16 programmable priority levels Allows early processing of interrupts Supports advanced features for next generation real-time applications Tail-chaining of pending interrupts Late-arrival interrupt handling and priority boosting / inversion Exceptional Control Capabilities Through Integrated Interrupt Handling Introduction to Cortex-M3 MCD Application 17

Interrupt Response- Tail Chaining Highest IRQ1 IRQ2 42 CYCLES ARM7 Interrupt handling in assembler code PUSH ISR 1 POP PUSH ISR 2 POP 26 16 26 16 Tail-chaining Cortex-M3 Interrupt handling in HW PUSH ISR 1 ISR 2 POP 12 6 12 6 CYCLES ARM7 26 cycles from IRQ1 to ISR1 entered Up to 42 cycles if LSM 42 cycles from ISR1 exit to ISR2 entry 16 cycles to return from ISR2 Cortex-M3 12 cycles from IRQ1 to ISR1 entered 12 cycles if LSM 6 cycles from ISR1 exit to ISR2 entry 12 cycles to return from ISR2 Introduction to Cortex-M3 MCD Application 18

Introduction to STM32F10x October 17, 2007 MCD Application Team

CONTENTS STM32F10x Device Block Diagram Memory mapping and boot modes System Architecture STM32F10x Peripherals Main features STM32F10x USB Developer kit Introduction to STM32F10x Series MCD Application 20

STM32F10x : 2 first product lines STM32F103 Performance Line Best in class 32-bit flash MCU Ability to outperform integer DSP solutions Superior control & connectivity Excellent fit for low voltage/low power applications STM32F101 Access Line 32-bit performance at 16-bit Prices Entry point to STM32 world Excellent fit for low voltage/low power applications Introduction to STM32F10x Series MCD Application 21

STM32F103 Performance Line 2V-3.6V Supply 5V tolerant I/Os Excellent safe clock modes Low-power modes with wake-up Internal RC Embedded reset -40/+105 C CORTEX TM-M3 CPU 72 MHz JTAG/SW Debug Nested vect IT Ctrl 1 x Systic Timer DMA 7 Channels ARM Lite Hi-Speed Bus Matrix / Arbiter (max 72MHz) Flash I/F 32kB -128kB Flash Memory 10kB-20kBSRAM 20B Backup Regs Clock Control Power Supply Reg 1.8V POR/PDR/PVD XTAL oscillators 32KHz + 4~16MHz Int. RC oscillators 32KHz + 8MHz PLL RTC / AWU 6 x 16-bit PWM Synchronized AC Timer Up to 16 Ext. ITs 32/49/80 I/Os 1 x SPI 1 x USART/LIN Smartcard/IrDa Modem-Ctrl Bridge ARM Peripheral Bus (max 72MHz) ARM Peripheral Bus Bridge (max 36MHz) 2/3 x 16-bit Timer 2 x Watchdog (independent & window) 2 x 12-bit ADC 16 channels / 1Msps Temp Sensor 1 x USB 2.0FS 1 x CAN 2.0B 1/2 x USART/LIN Smartcard / IrDa Modem Control 0/1 x SPI 1/2 x I 2 C Introduction to STM32F10x Series MCD Application 22

STM32F101 Access Line No USB/CAN/PWM TIMER CORTEX TM-M3 CPU 36 MHz Flash I/F 32kB -128kB Flash Memory Power Supply Reg 1.8V POR/PDR/PVD 1xADC SRAM up to 16K -40/+85 C JTAG/SW Debug Nested vect IT Ctrl 1 x Systic Timer DMA 7 Channels ARM Lite Hi-Speed Bus Matrix / Arbiter (max 36MHz) kb-16kb SRAM 20B Backup Regs Clock Control XTAL oscillators 32KHz + 4~16MHz Int. RC oscillators 32KHz + 8MHz PLL RTC / AWU Bridge ARM Peripheral Bus Bridge (max 36MHz) Up to 16 Ext. ITs 32/49/80 I/Os 1 x SPI 1 x USART/LIN Smartcard/IrDa Modem-Ctrl ARM Peripheral Bus (max 36MHz) 2/3 x 16-bit Timer 2 x Watchdog (independent & window) 1 x 12-bit ADC 16 channels / 1Msps Temp Sensor 1/2 x USART/LIN Smartcard / IrDa Modem Control 0/1 x SPI 1/2 x I 2 C Introduction to STM32F10x Series MCD Application 23

Memory Mapping and Boot Modes 0xFFFF FFFF 0xE010 0000 0xE00F FFFF 0xE000 0000 Addressable memory space of 4 GBytes RAM : up to 20 kbytes FLASH : up to 128 kbytes Reserved Cortex-M3 internal peripherals BOOT Mode Selection Pins Boot Mode Aliasing BOOT1 Boot modes Depending on the Boot configuration, Embedded Flash Memory, System Memory or Embedded SRAM Memory is aliased at @0x00 BOOT0 Reserved Reserved 0x1FFF F9FF Option Bytes 0x1FFF F800 0x1FFF F7FF SystemMemory Reserved 0x1FFF F000 x 0 User Flash 0 1 SystemMemory 1 1 Embedded SRAM User Flash is selected as boot space SystemMemory is selected as boot space Embedded SRAM is selected as boot space 0x4000 0000 0x2000 0000 0x0000 0000 Peripherals Reserved SRAM Reserved CODE Flash Bit-Band region 0x0801 FFFF 0x0800 0000 SystemMemory: contains the Bootloader used to re-program the FLASH through USART. Boot from SRAM : In the application initialization code you have to Relocate the Vector Table in SRAM using the NVIC Exception Table and Offset register Introduction to STM32F10x Series MCD Application 24

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 Increase Peripherals Speed for better performance Dual Advanced Peripheral buses (APB) architecture w/ High Speed APB (APB2) up to 72MHz and Low Speed APB (APB1) up to 36MHz Ł Allows to optimize use of peripherals (18MHz SPI, 4.5Mbps USART, 72MHz PWM Timer, 18MHz toggling I/Os) CORTEX-M3 Master 1 GP-DMA Master 2 D-bus System I-bus BusMatrix Arbiter AHB FLASH SRAM Slave Buses are not overloaded with data movement tasks Introduction to STM32F10x Series MCD Application 25 Flash I/F AHB-APB2 AHB-APB1 Bridges APB2 APB1 GPIOA,B,C,D,E -AFIO USART1-SPI1 - ADC1,2 - TIM1 -EXTI USART2,3 -SPI2 - I2C1,2 TIM2,3,4 -IWDG WWDG USB CAN BKP PWR

Embedded FLASH Introduction to STM32F10x Series MCD Application 26

Flash Features Overview Flash Features: Up to 128KBytes 1 KByte Page size Endurance: 1000 cycles Memory organization: Main memory block Information block Access time: 35ns Word(32-bit) program time: 20μs Page / Mass Erase Time: 20ms Flash interface (FLITF) Features: Read Interface with pre-fetch buffer Option Byte loader Flash program/erase operations Types of Protection: Access Protection Write Protection Introduction to STM32F10x Series MCD Application 27

Direct Memory Access (DMA) Introduction to STM32F10x Series MCD Application 28

DMA Features 7 independently configurable channels: hardware requests or software trigger on each channel Software programmable priorities: Very high, High, Medium or Low. (Hardware priority in case of equality) Programmable and Independent source and destination transfer data size: Byte, Halfword or Word 3 event flags for each channel: DMA Half Transfer, DMA Transfer complete and DMA Transfer Error Memory-to-memory, peripheral-to-memory and memory-to-peripheral transfers Support for circular buffer management Introduction to STM32F10x Series MCD Application 29

DMA Request Mapping The DMA controller provides access to 7 channels USART1_TX ADC1 USART3_TX USART3_RX TIM4_CC2 TIM1_CCU TIM1_UP USART1_RX USART2_RX USART2_TX TIM2_CC3 TIM4_CC1 TIM2_UP TIM1_CC1 TIM3_CC3 SPI1_RX TIM3_CC4 SPI1_TX TIM1_CC2 TIM3_UP TIM1_CC4 SPI2_RX TIM1_TRIG SPI2_TX I2C2_RX I2C2_TX TIM2_CC1 TIM3_CC1 TIM4_CC3 I2C1_TX TIM2_CC2 TIM1_CC3 TIM4_UP TIM3_TRIG TIM2_CC4 I2C1_RX OR OR OR OR OR OR OR SW TRIGGER SW TRIGGER SW TRIGGER SW TRIGGER SW TRIGGER SW TRIGGER SW TRIGGER Channel1 Channel2 Channel3 Channel4 Channel5 Channel6 Channel7 DMA High Priority Request Low Priority Request DMA REQUEST Introduction to STM32F10x Series MCD Application 30

Clock Scheme Introduction to STM32F10x Series MCD Application 31

Clock Scheme System Clock (SYSCLK) sources HSI HSE PLL Configurable dividers provides AHB, APB1/2, ADC and TIM clocks RTC Clock (RTCCLK) sources LSE LSI HSE clock divided by 128 USB Clock (USBCLK) provided from the internal PLL Clock-out capability on the MCO pin (PA.08) / max 50MHz Clock Security System (CSS) to backup clock in case of HSE clock failure (HSI feeds the system clock) Enabled by SW w/ interrupt capability linked to Cortex NMI 4-16 MHz OSC_OUT OSC_IN HSI RC HSE Osc 8MHz /2 /2 x2...x16 PLL PLLCL K SYSCLK up to 72 MHz AHB Prescaler /1,2 512 APB1 Prescaler /1,2,4,8,1 6 TIM2,3,4 x1, 2 mult HCLK up to 72MHz PCLK1 up to 36MHz TIMxCLK MCO OSC32_IN OSC32_OUT SYSCLK HSI HSE PLLCLK /2 LSE OSc LSI RC /128 32.768KHz ~32KHz CS S RTCCLK IWDGCLK APB2 Prescaler /1,2,4,8,1 6 USB Prescaler /1,1.5 TIM1 x1, 2 mult ADC Prescaler /2,4,6,8 PCLK2 up to 72MHz TIM1CL K ADCCLK USBCLK 48MHz Introduction to STM32F10x Series MCD Application 32

General Purpose and Alternate Function I/O (GPIO and AFIO) Introduction to STM32F10x Series MCD Application 33

GPIO Features 80 multifunction bi-directional I/O ports available: 80% IO ratio 80 Standard I/Os (5V tolerant, 20 ma drive) 18 MHz Toggling Configurable Output Speed up to 50 MHz Up to 16 Analog Inputs Alternate Functions pins (like USARTx, TIMx, I2Cx, SPIx, CAN, USB ) All I/Os can be set-up as external interrupt (up to 16 lines at time) One I/O can be used as Wake-Up from STANDBY (PA.00) One I/O can be set-up as Tamper Pin (PC.13) All Standard I/Os are shared in 5 ports (GPIOA..GPIOE) Atomic Bit Set and Bit Reset using BSRR and BRR registers Locking mechanism to avoid spurious write in the IO registers When the LOCK sequence has been applied on a port bit, it is no longer possible to modify the configuration of the port bit until the next reset (no write access to the CRL and CRH registers corresponding bit). Introduction to STM32F10x Series MCD Application 34

GPIO Configuration Modes Configuration Mode Analog Input 0 0 CNF1 CNF0 MOD1 MOD0 Analog Input To On-chip Peripherals Input Floating (Reset State) 0 1 Input Pull-Up 1 0 Input Pull-Down 1 0 Output Push-Pull Output Open-Drain 0 0 0 1 AF Push-Pull 1 0 AF Open-Drain 1 1 00 00: Reserved 01: 10 MHz 10: 2 MHz 11: 50 MHz Alternate Function Input Write Bit Set/Reset Registers Read / Write Read Input Data Register Output Data Register From On-chip Peripherals Alternate Function Output 0 Input Driver ON OFF TTL Schmitt Trigger OUTPUT CONTROL VDD_IO ON/OFF ON/OFF VSS VDD_IO VSS Output Driver Pull - UP Pull - Down VDD_IO VSS Push-Pull Open Drain Disabled I/O pin Introduction to STM32F10x Series MCD Application 35

AFIO Features Event Out signal generation Pulse generation with SEV instruction: to wake-up an other MCU from low power mode through its Event In signal Each IO can be used as Event Out GPIO Software Remapping Some Alternate function can be remapped in two different pins allowing optimization of the pin out All SWJ-DP I/O pins can be used as GPIO EXTI Lines Configuration Each EXTI line is shared with all GPIO ports: EXTI Linexx GPIO[A..E].xx Introduction to STM32F10x Series MCD Application 36

External Interrupt/Event Controller (EXTI) Introduction to STM32F10x Series MCD Application 37

EXTI Features Up to 19 Interrupt/Events requests All GPIO can be used as EXTI line(0..15) Interrupt Mask Register Pending Request Register Software Interrupt Event Register Rising Trigger Selection Register Falling Trigger Selection Register EXTI line 16 connected to PVD output EXTI line 17 connected to RTC Alarm event EXTI line 18 connected to USB Wake-up from suspend event Two Configuration mode: To NVIC Edge Detect Circuit EXTI[15:0] Interrupt mode: generate interrupts with external lines edges Event mode: generate pulse to wake-up system from WFI, WFE and STOP modes Pulse Generator Event Mask Register Independent trigger (rising, falling, rising & falling) and mask on each interrupt/event line Dedicated status bit for each interrupt line Generation of up to 19 software interrupt/event requests Minimum Pulse Width : < 1*T PCLK2 (Fast APB) EXTI mapped on High Speed APB (APB2) to save time entering in the External Interrupt routine Introduction to STM32F10x Series MCD Application 38

Analog-to-Digital Converter (ADC) Introduction to STM32F10x Series MCD Application 39

ADC Features ADC conversion rate 1 MHz and 12-bit resolution ADC supply requirement: 2.4V to 3.6 V ADC input range: VREF- VIN VREF+ (VREF+ and VREF- available only in LQFP100 package) Dual mode (on devices with 2 ADCs): 8 conversion mode Up to 18 multiplexed channels: 16 external channels 2 internal channels: connected to Temperature sensor and internal reference voltage (Bandgap voltage) Self-calibration DMA capability (only on ADC1) Introduction to STM32F10x Series MCD Application 40

ADC conversion modes Single and continuous conversion modes Four conversion mode are available: Start Start CHx CHx Stop Start Start Single channel single conversion mode CHx. Single channel continuous conversion mode CHx. CHn CHn Stop Multi-channels (Scan) single conversion mode Multi-channels (Scan) continuous conversion mode Introduction to STM32F10x Series MCD Application 41

Serial Peripheral Interface (SPI) Introduction to STM32F10x Series MCD Application 42

SPI Features Two SPIs: SPI1 on high speed APB2 and SPI2 on low speed APB1 Full duplex synchronous transfers on 3 lines Simplex synchronous transfers on 2 lines with or without a bi-directional data line Programmable data frame size :8- or 16-bit transfer frame format selection Programmable data order with MSB-first or LSB-first shifting Master or slave operation Programmable bit rate: up to 18 MHz in Master/Slave mode NSS management by hardware or software for both master and slave: Dynamic change of Master/Slave Operations Support for DMA Introduction to STM32F10x Series MCD Application 43

Universal Synchronous Asynchronous Receiver Transmitter (USART) Introduction to STM32F10x Series MCD Application 44

USART Features Three USART: USART1 High speed APB2 and USART2,3 on Low speed APB1 Fully-programmable serial interface characteristics: Data can be 8 or 9 bits Even, odd or no-parity bit generation and detection 0.5, 1, 1.5 or 2 stop bit generation Programmable baud rate generator Integer part (12 bits) Fractional part (4 bits) Support hardware flow control (CTS and RTS) Dedicated transmission and reception flags (TxE and RxNE) with interrupt capability Support for DMA Receive DMA request Transmit DMA request Up to 4.5 Mbps Introduction to STM32F10x Series MCD Application 45

Universal Serial Bus interface (USB Device) Introduction to STM32F10x Series MCD Application 46

USB Developer s Kit Complete source file with documented, thoroughly tested C source code, compatible with major IDE toolsets for ARM Supports any flavor of USB firmware with: Control transfer for generic device management tasks Interrupt transfer with HID Mouse/Joystick Bulk transfer with mass storage Isochronous transfer with Voice Speaker/micro DFU for firmware updates on USB Virtual COM (CDC class) for emulation of RS232 Free from ST web Introduction to STM32F10x Series MCD Application 47

Dot LCD System Memory 8/16 bits MCU LCD Driver Dot LCD Introduction to STM32F10x Series MCD Application 48

Dot LCD System with STM32(Using GPIO) Dot LCD Introduction to STM32F10x Series MCD Application 49

Thank you! Introduction to STM32F10x Series MCD Application 50