|
1. STM32F10x Cortex-M3 모듈 소개
STM32 Cortex-M3 에 기반한 32bit ARM 개발보드로
특히 사용자의 편의를 위해서 시리얼포트 대신 USB to Serial 칩을 내장하였습니다.
전원 공급은 USB Mini포트와 디버그포트(USB to Serial Port)를 통해서 가능 합니다.
시리얼포트가 없는 노트북 등에서 디버그포트를 통해서 RS232통신과 프로그램 다운로드를 할 수 있습니다.
(1) STM32F10x Cortex-M3 모듈 제품의 종류
핀 사양별 분류 |
제품이름 |
제품 기본 사양 |
| LQFP64 |
STM32F103R8T6 코어모듈
STM32F103RBT6 코어모듈
STM32F105RBT6 코어모듈
STM32F107RBT6 코어모듈 |
Internal 64KB Flash, 20KB SRAM
Internal 128KB Flash, 20KB SRAM
Internal 128KB Flash, 32KB SRAM
Internal 128KB Flash, 32KB SRAM |
| LQFP100 |
STM32F103VBT6 코어모듈
STM32F103VCT6 코어모듈
STM32F105VCT6 코어모듈
STM32F107VCT6 코어모듈
STM32F107VBT6 코어모듈 |
Internal 128KB Flash, 20KB SRAM
Internal 256KB Flash, 48KB SRAM
Internal 256KB Flash, 64KB SRAM
Internal 256KB Flash, 64KB SRAM
Internal 128KB Flash, 32KB SRAM |
| LQFP144 |
STM32F103ZET6 코어모듈 |
Internal 512KB Flash, 64KB SRAM |
2. STM32F10x Cortex-M3 사양
2.1 H/W 구성 및 회로도
(1) LQFP64 시리즈 H/W 구성
* LQFP64 시리즈 핀맵
| VBAT |
GND |
PB10 |
PB1 |
PC5 |
PA7 |
PA6 |
PA5 |
PA3 |
PA1 |
PC3 |
PC1 |
PC0 |
JTAG |
| VDD33 |
GND |
PB11 |
PB2 |
PB0 |
PC4 |
BOOT0 |
RESET |
PA4 |
PA2 |
PA0 |
PC2 |
PC13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| PB12 |
PB14 |
PC6 |
PC8 |
PA8 |
PA10 |
PA12 |
PD2 |
PB6 |
|
|
GND |
VDD5 |
| PB13 |
PB15 |
PC7 |
PC9 |
PA9 |
PA11 |
PC10 |
PB5 |
PB7 |
|
|
GND |
VDD5 |
* LQFP100 시리즈 핀맵
| PC14 |
PE6 |
PE4 |
PE2 |
PE0 |
PB8 |
PB6 |
PB4 |
PD7 |
PD5 |
PD3 |
PD1 |
PC12 |
PC10 |
PA14 |
PA12 |
PA10 |
PA8 |
PC8 |
PC6 |
JTAG |
| PC15 |
PC13 |
PE5 |
PE3 |
PE1 |
PB9 |
PB7 |
PB5 |
PB3 |
PD6 |
PD4 |
PD2 |
PD0 |
PC11 |
PA15 |
PA13 |
PA11 |
PA9 |
PC9 |
PC7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| PC1 |
PC3 |
PA1 |
PA3 |
PA5 |
PA7 |
PC5 |
PB1 |
PE7 |
PE9 |
PE11 |
PE13 |
PE15 |
PB11 |
PB13 |
PB15 |
PD9 |
PD11 |
PD13 |
PD15 |
| PC0 |
PC2 |
PA0 |
PA2 |
PA4 |
PA6 |
PC4 |
PB0 |
PB2 |
PE8 |
PE10 |
PE12 |
PE14 |
PB10 |
PB12 |
PB14 |
PD8 |
PD10 |
PD12 |
PD14 |
(2) LQFP144 시리즈 H/W 구성
* LQFP144 시리즈 핀맵
| VDD33 |
VDD33 |
GND |
GND |
VDDA |
VREF+ |
PC3 |
PC1 |
PC15 |
PC13 |
PE6 |
PE4 |
PE2 |
PE0 |
PB9 |
BOOT0 |
PB6 |
PB4 |
GND |
PD6 |
PD4 |
PD2 |
PD0 |
PC12 |
PC10 |
JTAG |
| VDD33 |
VDD33 |
GND |
GND |
VDDA |
VREF- |
PC2 |
PC0 |
RESET |
PC14 |
VBAT |
PE5 |
PE3 |
PE1 |
GND |
PB8 |
PB7 |
PB5 |
PB3 |
PD7 |
PD5 |
PD3 |
PD1 |
GND |
PC11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| PF9 |
PF7 |
PF5 |
PF3 |
PF1 |
GND |
|
|
|
|
|
|
|
|
PG14 |
PG12 |
PG10 |
GND |
|
|
|
PG2 |
PG4 |
PG6 |
PG8 |
| PF10 |
PF8 |
PF6 |
PF4 |
PF2 |
PF0 |
|
|
|
|
|
|
|
|
PG15 |
PG13 |
PG11 |
PG9 |
|
|
|
GND |
PG3 |
PG5 |
PG7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
PF11 |
PF13 |
PF15 |
PG1 |
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
GND |
PF12 |
PF14 |
PG0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| PA1 |
PA3 |
PA5 |
PA7 |
PC5 |
PB1 |
GND |
PE8 |
PE10 |
PE12 |
PE14 |
PB10 |
PB12 |
PB14 |
PD8 |
PD10 |
PD12 |
PD14 |
GND |
PC7 |
PC9 |
PA9 |
PA11 |
PA13 |
PA15 |
| PA0 |
PA2 |
PA4 |
PA6 |
PC4 |
PB0 |
PB2 |
PE7 |
PE9 |
PE11 |
PE13 |
PE15 |
PB11 |
PB13 |
PB15 |
PD9 |
PD11 |
PD13 |
PD15 |
PC6 |
PC8 |
PA8 |
PA10 |
PA12 |
PA14 |
ST Micronics( http://www.st.com)사에서 제공하는 기본 STM32F10x_StdPeriph_Driver, STM32_USB-FS-Device_Driver
를 사용해서 작성되어졌습니다. 기본적으로 LED, Timer, RTC, USB 샘플 예제를 제공 합니다.
IAR Workbench, Keil MDK, Ride7 에서 컴파일한 소스와 프로젝트 파일이 있습니다.
* 소프트웨어 소스 다운로드
- 2011.1.3 다운로드
1차 버젼 Release
(1) 소프트웨어 디렉토리
| prj |
EWARMv5
MDK-ARM
RIDE |
IAR Embeded Workbench Version 5.4
RealView(Keil) MDK-ARM Version 4.02
Raisonance's Ride7 Version 7.24.06.0251 |
| lib |
STM32_USB-FS-Device_Lib_V3.2.1 |
ST's 표준 라이브러리 |
| src |
|
예제 샘플 코드 |
(2) STM32 표준 라이브러리 버젼 : STM32_USB-FS-Device_Driver_V3.2.1, STM32F10x_StdPeriph_Driver_V3.2.1

[ LED 컨트롤 예제 ] |

[ 타이머 컨트롤 예제 ] |
| |
|

[ RTC 서비스 예제 ] |

[ USB Device 예제 ] |
|
| |
3. 코어모듈 사용방법 및 프로그램 다운로드 가이드
3.1 코어모듈 사용방법
(1) PC와 UART 통신 연결
USB to Serial 칩을 내장하고 있어서 RS232케이블을 사용하지 않고 Mini USB 5Pin 케이블을 사용 합니다.
자세한 연결 방법은 아래 그림을 참조 하세요.

* USB2Serial 드라이버 다운로드 를 다운로드 해서 설치 합니다.( 압축 해제 후 "PL2303_Prolific_DriverInstaller_v1210.exe" 실행 )
- USB to Serial 드라이버 설치
 
 
 
컴퓨터 관리의 장치 관리자에서 "Prolific USB-to-Serial Bridge(COMx)" 가 추가되었으면 성공적으로 설치된 것입니다.
- 하이퍼 터미널 연결
 


PC와 연결이 성공적으면 하이퍼 터미널을 통해서 위와 같은 메세지를 확인 할 수 있습니다.
(2) LED 컨트롤 예제
PC와의 연결이 성공적으로 이루어 졌다면 하이퍼터미널 에서 "1" 을 입력하면 아래와 같은 LED 컨트롤 예제가 나옵니다.
다시 "1" 을 입력하면 코어모듈의 USB포트쪽에 있는 노란색 LED가 켜집니다. LED가 꺼진 상태에서 "2" 을 입력하면 LED가
다시 꺼집니다.

(3) 타이머 예제
하이퍼터미널 에서 "2" 을 입력하면 Timer 컨트롤 예제가 나옵니다.
다시 "1" 을 입력하면 LED가 1초 간격으로 점멸(깜빡)하게 됩니다. 다시 "2"를 입력하면 LED가
점멸이 멈춥니다.

(4) RTC 예제
하이퍼터미널 에서 "3" 을 입력하면 RTC 예제가 나옵니다.
다시 "1" 을 입력하면 RTC서비스가 시작이 되고 초가 바뀔때 마다 하이퍼 터미널에 날짜와 시간이
표시 됩니다. 다시 "2"를 입력하면 RTC서비스가 종료 됩니다.
코어모듈에서는 RTC 백업 베터리가 없어서
현재의 시간 설정이 저장되지는 않습니다.

(5) USB Device 예제
USB 디바이스 테스트를 위해서는 반드시 20핀 JTAG포트 옆에 있는 Mini USB에 연결해서 부팅을
시작 해야만 합니다. UART(USB to Serial) 포트에 연결해서 부팅을 한후에 USB 연결을 하시면
"알수없는장치" 로 인식 됩니다. USB장치가 성공적으로 연결되면 장치 관리자에 아래와 같이
"HID 규격 마우스" 로 잡히게 됩니다.

장치가 제대로 올라온 후에 하이퍼터미널 에서 "4" 을 입력하면 USB Device 예제가 나옵니다.
다시 "1" 을 입력하면 USB 서비스가 시작이 되고 하이퍼터미널에서 "L", "R", "U", "D" 등을 입력하면
PC의 마우스가 움직이게 됩니다.

3.2 프로그램 다운로드 가이드
* 프로그램 다운로드 가이드는 "STM32F103ZE 제품" 을 기준으로 설명 합니다.
(1) 시리얼 통신을 이용한 방법
STM32F 시리즈에는 JTAG 다운로더가 없이 USART0 포트를 이용해서 프로그램을 다운로드 할 수 있는 ISP기능을 제공 합니다.
가장 비용이 적게드는 장점이 있지만 다운로드만 가능하고 코드 디버깅은 할 수 없습니다.
다운로드 모드로 진입하기 위해서는 아래 그림과 같이 Boot0 스위치를 반드시 아래로 내린 상태에서 PC와 USB to Serial 포트로
연결 합니다.

장치관리자에서 포트 번호를 확인 하고 ST Flash Loader 프로그램을 다운받아 설치 합니다.

"STMicroelectronics flash loader.exe" 프로그램을 실행 시킵니다. 반드시 Parity : "Even" 으로
Baud Rate : "115200" 으로 설정해야 합니다.







(2) H-JTAG 을 이용한 방법(새창)
Keil MDK, IAR Workbench 에서 H-JTAG을 이용한 다운로드 방법과 디버깅 방법
(3) ARM-JTAG 을 이용한 방법(IAR Workbench), KEIL MDK
Keil MDK, IAR Workbench 에서 ARM-JTAG을 이용한 다운로드 방법과 디버깅 방법
(4) ST-Link 를 이용한 방법(새창)
Keil MDK, IAR Workbench 에서 ST-Link를 이용한 다운로드 방법과 디버깅 방법
(5) RLink 를 이용한 방법 (새창)
RIDE7 에서 RLink를 이용한 다운로드 방법
(6) J-Link EDU 를 이용한 방법
IAR Workbench 에서 J-Link EDU 를 이용한 다운로드 방법(새창)
4. 프로그래밍 가이드
컴파일을 하기 위해서는 제품 코어별로 predeifne 설정을 해야 합니다. define 설정에 관해서는 아래 표를 참조하시고
컴파일러별 설정 방법은 아래 컴파일러별 설정가이드를 참조하세요.
핀 사양별 분류 |
제품이름 |
predfine 설정 |
| LQFP64 |
STM32F103R8T6 코어모듈
STM32F103RBT6 코어모듈
STM32F105RBT6 코어모듈
STM32F107RBT6 코어모듈 |
USE_STDPERIPH_DRIVER, STM32F10X_MD
USE_STDPERIPH_DRIVER, STM32F10X_MD
USE_STDPERIPH_DRIVER, STM32F10X_CL
USE_STDPERIPH_DRIVER, STM32F10X_CL |
| LQFP100 |
STM32F103VBT6 코어모듈
STM32F103VCT6 코어모듈
STM32F105VCT6 코어모듈
STM32F107VCT6 코어모듈
STM32F107VBT6 코어모듈 |
USE_STDPERIPH_DRIVER, STM32F10X_HD
USE_STDPERIPH_DRIVER, STM32F10X_CL
USE_STDPERIPH_DRIVER, STM32F10X_CL
USE_STDPERIPH_DRIVER, STM32F10X_CL
USE_STDPERIPH_DRIVER, STM32F10X_CL |
| LQFP144 |
STM32F103ZET6 코어모듈 |
USE_STDPERIPH_DRIVER, STM32F10X_HD |
4.1 Keil MDK 4.02
(1) 프로그램 개발을 위한 Keil MDK 컴파일러 설정 방법과 컴파일(새창)
4.2 IAR Workbench 5.4
(1) 프로그램 개발을 위한 IAR 컴파일러 설정 방법과 컴파일(새창)
4.3 RIDE7
(1) 프로그램 개발을 위한 RIDE7 컴파일러 설정 방법과 컴파일(새창)
4.4 GCC & 이클립스
프로그램 개발을 위한 이클립스 & GCC 설정 방법과 컴파일(새창)
|