이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한
JK전자(JK Electronics)
의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다.



 

STM32F10x Cortex-M3 코어 모듈 메뉴얼

   
  * Update history

- 2011.2 : 초기 Release
- 2011.11.7 : IAR5, RIDE7 프로그래밍 가이드 메뉴얼 추가

- 2013.11.5 : Eclipse 환경의 GCC 개발환경 지원 추가

   이클립스 개발환경
- code.google.com 을 통한 최신 소스코드 다운로드


  1. 1. STM32F10x Cortex-M3 모듈 소개
  2. 2. STM32F10x Cortex-M3 사양
    1. 2.1 H/W 구성 및 회로도
    2. 2.2 제공 S/W 사양
  3. 3. 코어모듈 사용방법 및 프로그램 다운로드 가이드
    1. 3.1 코어모듈 사용방법
    2. 3.2 프로그램 다운로드 가이드
    3. 3.3 Cortex-M3 Architecture 강좌
    4. 3.4 STM32F10x 시리즈 개발 강좌
  4. 4. 프로그래밍 가이드
    1. 4.1 Keil MDK 4.x
    2. 4.2 IAR Workbench 5.x
    3. 4.3 RIDE7
    4. 4.4 GCC & Eclipse


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 구성

stm32f103rbt6

* 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 구성

stm32f103zet6

* 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

(3) LQFP64, LQFP100, LQFP144 회로도 다운로드stm32f103rbt6

2.2 제공 S/W 사양

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

stm32f103rbt6

stm32f103rbt6
[ LED 컨트롤 예제 ]
stm32f103rbt6
[ 타이머 컨트롤 예제 ]
   
stm32f103rbt6
[ RTC 서비스 예제 ]
stm32f103rbt6
[ USB Device 예제 ]

 

3. 코어모듈 사용방법 및 프로그램 다운로드 가이드

3.1 코어모듈 사용방법

(1) PC와 UART 통신 연결
USB to Serial 칩을 내장하고 있어서 RS232케이블을 사용하지 않고 Mini USB 5Pin 케이블을 사용 합니다.

자세한 연결 방법은 아래 그림을 참조 하세요.

stm32f103rbt6
* USB2Serial 드라이버 다운로드 를 다운로드 해서 설치 합니다.( 압축 해제 후 "PL2303_Prolific_DriverInstaller_v1210.exe" 실행 )

- USB to Serial 드라이버 설치

stm32f103rbt6stm32f103rbt6

stm32f103rbt6stm32f103rbt6

stm32f103rbt6stm32f103rbt6

컴퓨터 관리의 장치 관리자에서 "Prolific USB-to-Serial Bridge(COMx)" 가 추가되었으면 성공적으로 설치된 것입니다.

- 하이퍼 터미널 연결
stm32f103rbt6stm32f103rbt6

stm32f103rbt6

stm32f103rbt6

PC와 연결이 성공적으면 하이퍼 터미널을 통해서 위와 같은 메세지를 확인 할 수 있습니다.

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

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

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

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

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

3.2 프로그램 다운로드 가이드

* 프로그램 다운로드 가이드는 "STM32F103ZE 제품" 을 기준으로 설명 합니다.

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

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

stm32f103rbt6

"STMicroelectronics flash loader.exe" 프로그램을 실행 시킵니다. 반드시 Parity : "Even" 으로

Baud Rate : "115200" 으로 설정해야 합니다.
stm32f103rbt6

stm32f103rbt6

stm32f103rbt6

stm32f103rbt6

stm32f103rbt6

stm32f103rbt6

stm32f103rbt6

(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 설정 방법과 컴파일(새창)