기능 개요 (8/9) - 충북대학교 취업지원본부

Download Report

Transcript 기능 개요 (8/9) - 충북대학교 취업지원본부

STM32F103 개요
마이크로 프로세서
(Micro Processor)
2015년 2학기
충북대학교 전자공학과
박 찬식
http://gnc.chungbuk.ac.kr
[email protected]
교육관 325호, T. 3259
1
Course Organization




특징요약
내부구조 및 호환성
기능 개요
Memory mapping
2
STM32F103 특징 (1/3)




Cortex M3 From STMicroelecronics
ARM Cortex-M3 32비트 RISC core
 72MHz clock frequency
 1.25 DMIPS/MHz (Dhrystone 2.1) at 0 wait state memory access
 단일 cycle 곱셈, 하드웨어 기반 나누기
고속 내장 메모리
 Flash memory 최대 128KByte
 SRAM 최대 20KByte
Clock, reset, supply(전원) 관리
 2.0~3.6V application supply 및 IO
 POR, PDR 및 PVD(Programmable voltage detector)
 4~16MHz 수정 발진자
 내부 8MHz factory-trimmed RC
 내부 40KHz RC
 PLL을 이용한 CPU clock 생성
 RTC 동작을 위한 32KHz 발진기 (보상 포함)
3
STM32F103 특징 (2/3)





다양한 power saving 모드제공으로 저 전력 응용에 적합
 Sleep, Stop, Standby 모드
 RTC와 backup 레지스터용 VBat supply
2개의 12비트, 1us ADC (최대 16채널)
 변환 범위: 0~3.6V
 이중 sample-and-hold 기능
 온도 센서 내장
DMA
 7 채널 DMA 제어기
 지원 주변장치: timer, ADC, SPI, I2C, USART
두개의 APB 버스에 연결된 최대 80 I/O port
 26/37/51/80 IO port, 16개 외부 인터럽터 벡터로 처리 가능, 5V 동
작 가능
Debug 모드
 SWD(serial wire debug)와 JTAG 지원
4
STM32F103 특징 (3/3)

7개 timer





최대 9개의 통신 인터페이스








3 x 16비트 타이머, 각각은 최대 4 IC/OC/PWM 혹은 펄스 계수기 및
quadrature 엔코더 입력과 함께 사용
1 x 16비트 모터 제어용 PWM 타이머, dead-time 생성 및 비상정지기능 포함
2 x watchdog 타이머 (independent and window)
SysTick 타이머 : 24비트 하향계수기
최대 2개 I2C (SMBus/PMBus)
최대 3개 USART(ISO 7816 표준, LIN, IrDA 기능 지원, 모뎀 제어)
최대 2개 SPI (18Mbit/s)
1개 CAN (2.0B Active)
1개 USB 2.0, 최대 속도 지원
CRC 계산기, 96비트 unique ID
6종의 package 제공 (36핀에서 100핀까지, 포함되는 주변장치 달라짐)
모터 구동, 의료기, handheld 장치, PC, 게임기, GPS 수신기, 산업응용,
PLC, 인버터, 프린터, 스캐너, 경보 시스템, 비디오 인터콤, HVAC 등 다양
한 분야에서 응용 가능
5
STM32F103 family




Low density device:
STM32F103x4,
STM32F103x6
Medium density device:
STM32F103x8,
STM32F103xB
High density device:
STM32F103xC,
STM32F103xD,
STM32F103xE
STM32F103Rx in this
course
6
내부 구조

Package에 따른 차이
존재
7
기능 개요 (1/9)





내장 Flash와 SRAM을 갖는 ARM Cortex-M3 core
내장 Flash memory: 64 - 128KB
CRC (cyclic redundancy check) 계산: Flash memory 무결성 검사
Embedded SRAM: 20KB, CPU clock(0 wait states) 고속 접근
Nested vectored interrupt controller (NVIC): 최대 43개의
maskable 인터럽트 채널(16개의 Cortex-M3 인터럽트 라인을
제외하고)과 16개의 우선순위를 지원







밀접하게 연결된 NVIC으로 인터럽트 처리에 지연 감소
Core로 직접 인터럽트 entry vector table address 전달
인터럽터의 조기 처리(early processing) 지원
나중에 도착한 높은 우선 순위 인터럽트 처리
tail-chaining 지원
Processor state 자동 저장
부하 없이 인터럽트 종료시 entry 복구
8
기능 개요 (2/9)


외부 interrupt/event 제어기 (EXTI)
 interrupt/event 요청을 처리하기 위한 19개의 edge 검출
 각각 별도로 rising/falling/both edge에 동작/mask 가능
 최대 80 GPIO가 16개의 외부 인터럽트 선에 연결
Boot modes
 startup 단계에서 boot pins으로 3가지 boot 모드 선택




Boot from User Flash
Boot from System Memory
Boot from embedded SRAM
Boot loader는 System Memory에 위치하며, USART1을
이용하여 Flash memory를 다시 프로그램 할 때 사용된다.
9
기능 개요 (3/9)

Clocks and startup

System clock은
startup 동안 선택




내부 8MHz 발진기
외부 4-16MHz Osc.
AHB와 APB2의 최대
주파수는 72MHz
APB1의 최대 속도는
36MHz
10
기능 개요 (4/9)

Voltage regulator: 3가지 동작 모드
 MR(Main)은 보통의 regulation 모드에서 사용 (Run)
 LPR(Low Power)은 Stop 모드에서 사용
 Power down은 Standby 모드에서 사용



regulator 출력은 high impedance 상태
핵심 회로의 전원은 차단, 레지스터와 SRAM 내용은 망실
3가지 저전력 모드 (Low-power modes)
 Sleep mode


Stop mode


SRAM과 레지스터의 내용을 유지하는 전력소비가 가장 작은 모드이다. 1.8V 영역의 모든 clock
은 정지하고, PLL, HSI RC, HSE 수정 발진자가 비활성화 된다. Voltage regulator는 정상 혹은 저
전력 모드가 될 수 있다. 16개의 외부 선, PVD 출력, RTC 알람, USB wakeup 중 하나인 EXTI 선으
로 Stop 모드에서 벗어날 수 있다.
Standby mode



CPU 만 정지되고 다른 주변장치는 동작을 계속한다. interrupt/event로 CPU를 wakeup 상태로
바꿀 수 있다.
가장 전력을 적게 소비하는 모드이며 내부 voltage regulator가 정지하여 1.8V 영역 전원 전체가
꺼진다. PLL, HSI RC, HSE 수정 발진자도 꺼진다. SRAM과 레지스터 내용도 지워진다.
(Backup 영역 있지 않고 Standby 회로가 없다면) 외부 reset(NRST핀) 혹은 IWDG reset, WKUP
핀의 rising edge, RTC 알람에 의해서 Standby 모드에서 벗어날 수 있다.
주의: RTC, IWDG 및 해당 clock sources는 Stop 혹은 Standby 모드에서도 정지하지 않
음.
11
기능 개요 (5/9)

전원 (Power) 공급 방법

VDD = 2.0~3.6V


VSSA, VDDA = 2.0~3.6V


I/O와 내부 regulator에 VDD 핀을 통
하여 외부 전원 공급
ADC, reset block, RC, PLL에 외부
analog 전원 공급 (ADC가 사용되는
경우 VDDA 최소 전압은 2.4V). VDDA
와 VSSA는 각각 VDD와 VSS에 연결
VBAT = 1.8~3.6V

VDD가 없는 경우 RTC, 외부 clock
32kHz oscillator, backup registers
(through power switch)에 전원 공급
12
기능 개요 (6/9)

DMA (Direct Memory Access)



memory-to-memory, peripheral-to-memory, memory-toperipheral 데이터 전송을 지원하는 7-채널 범용 DMA
주요 주변장치 (SPI, I2C, USART, general-purpose and advancedcontrol timers TIMx and ADC)와 같이 사용
RTC (real-time clock) and backup registers




RTC 와 backup register의 전원은 VDD가 있으면 VDD, 아니면
VBAT으로 공급된다.
backup 레지스터는 10개의 16비트 레지스터로 VDD가 제공되지
않을 때 사용자의 데이터 20바이트를 보관하는데 사용
RTC는 시계 기능을 하는 계수기로 캘런더 기능과 알람 인터럽트,
주기적 인터럽트를 발생시키는 데 사용될 수 있다.
RTC는 외부에 32.768kHz 발진기 혹은 공진기를 사용하거나, 내부의
저전력 발진기(40KHz) 혹은 외부 clock을 128로 나누어 사용할 수
있다.
13
기능 개요 (7/9)

타이머와 watchdogs

advanced-control timer(TIM1)
3개의 범용 타이머(TIM2,3,4): 최대 3x4=12 채널

2개 watchdog 타이머:




Watchdog: 12bit down counter, main clock과 독립적으로 동작
Window watchdog: 7bit down counter, main clock 사용
1개의 SysTick 타이머 내장




A 24-bit downcounter
Autoreload capability
Maskable system interrupt generation when the counter reaches 0
Programmable clock source
14
기능 개요 (8/9)

I²C bus




USART (Universal synchronous/asynchronous receiver transmitter)




최대 2개의 SPI
master 혹은 slave 모드로 최대 18Mbits/s 속도로 전이중 혹은 단방향(simplex) 통신
Controller area network (CAN)



1개는 최대 4.5Mbit/s 통신 지원
나머지는 2.25Mbit/s까지의 통신 지원
Serial peripheral interface (SPI)


최대 2개의 I²C bus가 다중 master 모드와 slave 모드로 동작
표준 모드와 fast 모드를 지원
dual slave addressing(7-bit only)과 master 모드에서 7/10-bit addressing을 모두 지원
CAN은 구격 2.0A 와 B (active)를 만족하며 최대속도는 1Mbit/s
11비트 identifier를 갖는 표준 frame 뿐 아니라 29비트 identifier를 갖는 확장 frame도
송수신
Universal serial bus (USB)


최대속도(12 Mbit/s)
소프트웨어로 설정 가능한 endpoint 설정과 대기/재시작 지원 기능
15
기능 개요 (9/9)

GPIOs (general-purpose inputs/outputs)




모든 GPIO 핀은 소프트웨어로 output/input 혹은 주변장치 기능 중에서
선택 가능
입출력의 기능 선택은 중복 설정으로 잘못된 동작을 방지하기 위하여
필요하다면 lock을 걸 수도 있다.
APB2의 IO는 최대 18MHz의 toggling speed를 갖는다.
ADC (analog-to-digital converter)


2개의 12-bit analog-to-digital converters가 내장
각 ADC는 최대 16개의 외부 채널을 공유하며, singleshot 혹은 scan 모드로
변환을 수행한다.


Scan 모드에서는 선택된 analog 입력들에 대하여 자동으로 변환이 이루어진다.
Temperature sensor


온도 센서는 온도에 따라 2V < VDDA < 3.6V 사이의 전압을 출력한다.
온도센서는 내부에서 ADC12_IN16 input channel과 연결되어 디지털 출력을
제공한다.
16
Memory Map
17