ÀÌ ¸Å´º¾óÀº 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 ¼³Á¤ ¹æ¹ý°ú ÄÄÆÄÀÏ(»õâ)