Getting started with STM32 MCU hardware development. INTRODUCTION 이문서는 STM32 시리즈를적용한 Hardware 설계시고려할전반적인내용들에대해소개하기위해작성되었습니다. 여기에는 Power supply, clock, Boot 선택, debugging 회로등에걸쳐회로설계시꼭지켜야하거나선택되어야하는내용이포함되어있습니다. 그리고좀더안정적인설계가되도록도움이되는정보도포함되어있습니다. 하지만, STM32 시리즈는 L0, L1, F0, F1, F2, F3, F4 로조금씩다른특성을가진다양한제품군으로구성되어있어, 각제품군의특성에따른상세내용은별도의 Application note / Data sheet / User Manual 문서에서확인하시기바랍니다.
Contents 1 POWER SUPPLIES... 4 1.1 INTRODUCTION... 4 1.2 POWER SUPPLY SCHEMES... 6 1.3 DEVICE 별 POWER SUPPLY RANGE... 8 1.4 POWER SUPPLY SUPERVISOR... 10 1.5 SYSTEM RESET... 11 2 CLOCKS... 12 2.1 INTRODUCTION... 12 2.2 HSE... 13 2.2.1 External source (HSE bypass)... 13 2.2.2 External crystal/ceramic resonator (HSE crystal)... 13 2.3 LSE... 14 2.3.1 External source (LSE bypass)... 14 2.3.2 External crystal/ceramic resonator (LSE crystal)... 14 3 BOOT... 15 3.1 INTRODUCTION... 15 3.2 BOOT MODE 설정... 15 3.3 SYSTEM BOOT LOADER... 16 4 JTAG/SWD... 19 4.1 INTRODUCTION... 19 4.2 SWJ DEBUG PORT (SERIAL WIRE AND JTAG)... 19 5 RECOMMENDATIONS... 22 5.1 PCB... 22 5.2 GROUND AND POWER SUPPLY... 22 5.3 DECOUPLING... 22 5.4 UNUSED I/O... 23 Figures Figure 1. Power supply scheme : example of STM32F4xx... 6 Figure 2. BYPASS_REG supervisor reset connection... 7 Figure 3. Reset circuit... 11 Figure 4. External clock... 13 Figure 5. Crystal/ceramic resonators... 13 Figure 6. External clock... 14 Figure 7. Crystal/ceramic resonators... 14 Figure 8. Boot mode selection implementation example... 16 Figure 9. Embedded bootloaders... 17 2
Figure 10. Embedded bootloaders... 18 Figure 11. Host to board connection... 19 Figure 12. JTAG connector implementation... 20 Figure 13. Typical layout for VDD/VSS pair... 22 Tables Table 1. Power supply range : L0, L1, F0... 8 Table 2. Power supply range : F1, F2, F3... 8 Table 3. Power supply range : F4, F7... 9 Table 4. Power supply supervisor... 11 Table 5. Boot modes... 15 Table 6. Debug pin assignmment... 19 Table 7. SWJ pin availability... 20 Table 8. ST-Link V2 의 JTAG connecter pin description... 21 3
1 Power supplies 1.1 Introduction STM32 MCU 는아래의몇가지전원핀들에적절한전원 / 전원회로가필요합니다. VDD(*1.65V ~ 3.6 V) : Digital I/O 들과내부 regulator 에전원을공급합니다. Package 별로여러개의 VDD 핀들을통해공급합니다. * 최소전압은각제품군마다상이하며해당 Data sheet 에서확인가능합니다. * VDD 전원이 1.8V 이하로사용될경우는 Brownout reset/power Down reset 에관련된내용을확인하여정상동작가능하도록설계해야합니다. VDDA(*1.7V ~ 3.6 V) : ADC, DAC, Comparators 등아날로그장치들과, Reset, RC oscillators, PLL 등시스템을위한장치들에전원을공급합니다. * VDDA 의사용가능범위는각제품군마다상이하며, 다양한 condition 별로조건이다르며해당 Data sheet 에서확인가능합니다. Vref+(*1.7V ~ VDDA) : ADC, DAC 에서 data conversion 시사용되는기준전압입니다. AD, DA 변환의정확도를높이거나 application 에부합하기위해외부에서 VDDA 와별도로공급이가능합니다. Vref+ 는일부 package 에서는외부 pin 이지원되지않습니다. * Vref+ 의사용가능범위는각제품군마다상이하며, 다양한 condition 별로조건이다르며해당 Data sheet 에서확인가능합니다. Vbat(*1.65V ~ 3.6 V) : RTC, Backup register, Backup SRAM 등의전원을공급합니다. Application 에따라 battery 를연결하여사용하거나, VDD 에연결해서사용됩니다. * Vbat 의사용가능범위는각제품군마다상이하며, 다양한 condition 별로조건이다르며해당 Data sheet 에서확인가능합니다. VCAP : core, memory 그리고일부 digital peripherals 에전원을공급하는내부 voltage regulator 의 output load capacitor 를연결하는 pin 입니다. 경우에따라, 일부 device 에서는내부 regulator 를끄고, 외부로부터 core 용전원을직접공급받을수도있습니다 (BYPASS_REG 핀으로설정 ). 4
그외전원관련 pin 들 : 해당 device 의 data sheet 나 Getting started with STM32xxx hardware development 문서에서해당 pin 들의필요조건들을확인하시기바랍니다. o o o o VDD_USB VLCD, VLCDrail1, VLCDrail2, VLCDrail3 VDDIO2 VREFSD+, VREFSD-, VDDSD, VDDSD12, VDDSD3, VSSSD 5
1.2 Power supply schemes MCU 회로는안정된전원장치로부터 VDD 에전원이공급되어야합니다. 그리고동작중안정된 전원을유지하기위해아래 Figure 1 과같이소자를추가하여설계해야합니다. Figure 1. Power supply scheme : example of STM32F4xx VDD pin 에는 device 당최소하나의 4.7uF~10uF 의 Tantal 또는 Ceramic capacitor 와 VDD pin 당하나의 100nF capacitor 를근접하여부착합니다. VDDA pin 에는하나의 1uF 의 Tantal 또는 Ceramic capacitor 와하나의 100nF capacitor 를 근접하여부착합니다. 6
Vref+ pin 에는하나의 1uF~10uF 의 Tantal 또는 Ceramic capacitor 와하나의 100nF capacitor 를근접하여부착합니다. VBAT pin 에는외부배터리를연결하여사용합니다. 단, 외부배터리를사용하지않을경우는 VBAT pin 에 VDD 와동일한전원을연결하고, 100nF 의 capacitor 를부착해야합니다. VCAP : VCAP pin 이하나만존재하는경우 4.7uF, VCAP pin 이두개인경우각각 2.2uF Ceramic capacitor 를근접하여부착합니다. *( 주의 ) Regulator OFF mode 를사용할경우는 Figure 2 와같이외부에서 Vcore 전원 (1.2V) 을 VCAP pin 에공급해야하며, pin 마다 100nF capacitor 를근접하여부착합니다. 그리고이모드를사용할경우의사용상제한사항이나추가적인외부 control 에대해꼭확인하시기바랍니다. Figure 2. BYPASS_REG supervisor reset connection 7
1.3 Device Power supply range 아래 Table 1, 2, 3 에서 STM32 시리즈별 VDD, VDDA, Vref, Vbat 의 range 를정리하였습니다. 전원단설계시꼭참조하시기바랍니다. Device L0 L1 F0 Full 1.71V VDD 3.6V 2.0V VDD 3.6V VDD speed 2.0V VDD 3.6V condition Range 2 1.65V VDD 3.6V 1.65V VDD 3.6V Range 3 1.65V VDD 3.6V 1.65V VDD 3.6V VDDA condition ADC USED 1.8V VDDA = VDD 3.6V 1.8V VDDA = VDD 3.6V 2.4V & VDD VDDA 3.6V *(VDD-VDDA < 0.4V) Vref+ condition ADC not USED ADC USED ADC not USED 1.65V VDDA = VDD 3.6V 1.65V VDDA = VDD 3.6V 2.0V & VDD VDDA 3.6V 1.8V Vref+ VDDA 0V Vref+ VDDA 2.4 V VREF+ = VDDA (full speed) 1.8 V VREF+ = VDDA (500Ksps) 2.4 V VREF+ < VDDA (500Ksps) 1.8 V VREF+ < VDDA (250Ksps) N.A 0V Vref+ VDDA Vbat condition 1.65V Vbat 3.6V 1.65V Vbat 3.6V 1.65V Vbat 3.6V Table 1. Power supply range : L0, L1, F0 Device F1 F2 F3 Full speed 1.8V VDD 3.6V VDD Range 2 2.0V VDD 3.6V 1.65V VDD 3.6V 2.0V VDD 3.6V condition Range 3 (WLCSP only) VDDA condition ADC USED 2.4V VDDA = VDD 3.6V 2.0V VDDA = VDD 3.6V (2Msps) 1.8V VDDA = VDD 3.6V (1Msps) 2.4V VDDA 3.6V *(VDD-VDDA < 0.4V) Vref+ condition ADC not USED 2.0V VDDA = VDD 3.6V 1.8V VDDA = VDD 3.6V 2.0V VDDA 3.6V ADC USED 2.4 V VREF+ VDDA 1.8V Vref+ VDDA ADC not USED 1.65V Vref+ VDDA 2.0V Vref+ VDDA (F30x) 2.4V Vref+ VDDA (F37x, F38x) Vref+ = VDDA 0V Vref+ VDDA (F383) Vbat condition 1.8V Vbat 3.6V 1.8V Vbat 3.6V 1.65V Vbat 3.6V Table 2. Power supply range : F1, F2, F3 8
Device F4 F7 Full speed 1.8V VDD 3.6V VDD Range 2 1.7V VDD 3.6V TBD condition Range 3 (in restrict condition) VDDA condition ADC USED 2.4V VDDA = VDD 3.6V (2.4Msps) 1.8V VDDA = VDD 2.4V (1.2Msps) 1.7V VDDA = VDD 3.6V (in restrict condition) TBD ADC not USED N.D TBD Vref+ condition ADC USED 1.7 V & (VDDA-1.2V) VREF+ VDDA TBD ADC not USED 1.65V Vref+ VDDA TBD Vbat condition 1.65V Vbat 3.6V 1.65V Vbat 3.6V Table 3. Power supply range : F4, F7 9
1.4 Power supply supervisor STM32 시리즈의전원은내장된 POR/PDR(Power On Reset/Power Down Reset), BOR(Brown Out Reset), PVD(Programmable Voltage Detector) 회로에의해계속모니터링되어전원의변화에의한오작동을대비할수있습니다. Table 4. Power supply supervisor 에서각제품군별로사용가능한모니터회로와범위를확인할수있습니다. 전원회로설계시강건한제품설계를위해꼭참조하여사용하시기바랍니다. POR/PDR BOR PVD POR/PDR BOR PVD *( 주의 ) 낮은동작전압설계를위해 PDR 이나 BOR 등을비활성화하는경우는해당 device 의 data sheet 나 Getting started with STM32xxx hardware development 문서에서보다자세한 사용조건을확인하시기바랍니다. Device L0 L1 F0 F1 threshold (Max) 1.65V 1.65V 2.0V 2.0V hysteresis? mv? mv 40 mv 40 mv generate reset reset reset reset Active Always Always Always Always Range 1.8V ~ 3.0V 1.8V ~ 3.0V - - Number of thresholds 5 5 - - hysteresis 40mV or 100mV 40mV or 100mV - - generate reset reset - - control option bytes option bytes - - Active option bytes option bytes - - Range 1.85V ~ 3.05V 1.85V ~ 3.05V 2.08V ~ 2.78V 2.08V ~ 2.78V Number of thresholds 7 7 8 8 hysteresis 100mV 100mV 100mV 100mV generate interrupt interrupt interrupt interrupt control software software software software Device F2 F3 F4 F7 threshold (Max) 1.8V 2.0V 1.8V TBD hysteresis 40 mv 40 mv 40 mv TBD generate reset reset reset TBD Active Always Always by PDR_ON pin TBD Range 1.8V ~ 2.97V - 1.8V ~ 2.97V TBD Number of thresholds 3-3 TBD hysteresis 100mV - 100mV TBD generate reset - reset TBD control option bytes - option bytes TBD Active option bytes - option bytes TBD Range 2.04V ~ 3.03V 2.08V ~ 2.78V 2.04V ~ 3.03V TBD Number of thresholds 8 8 8 TBD hysteresis 100mV 100mV 100mV TBD generate interrupt interrupt interrupt TBD control software software software TBD 10
Table 4. Power supply supervisor 1.5 System reset STM32 시리즈는 reset 회로가필요하지않습니다. 유일하게 EMS 성능을높이기위해 Figure 3 과같이외부에 100nF 의 pull-down capacitor 만으로 reset 회로가구성될수있습니다. *( 주의 ) 외부에서 NRST pin 을제어할경우 Open-drain 특성을가지는 output port 로제어하시기바랍니다. 외부에 push-pull 특성의 output port 가연결되어있을경우내부리셋 (WWDG, IWDG, Power Reset, Software Reset ) 이동작하지못하게되어오류 (HW/SW) 가발행할경우시스템이내부적으로복구되지않게됩니다. Figure 3. Reset circuit 11
2 Clocks 2.1 Introduction STM32 시리즈는아래의다양한 clock 소스를 system clock(sysclk) 으로사용할수있습니다. HSI (High Speed Internal clock) HSE (High Speed External clock) PLL MSI (Multi Speed Internal clock) ( 일부 device 만지원 ) STM32 시리즈는아래의다양한 clock 소스를 secondary clock 으로사용할수있습니다. LSI (Low Speed Internal clock) : Device 에따라 32KHz, 37KHz, 40KHz 의 LSI 를지원하며 IWDG, RTC 에사용될수있습니다. LSE (Low Speed External clock) : External clock 이나 crystal 로부터 clock 을공급받으며, RTC 의 clock 으로사용될수있습니다. HSI 14MHz (14MHz High Speed Internal clock) ( 일부 device 만지원 ) : ADC 의 clock 으로사용될수있습니다. HSI48 (48MHz High Speed Internal clock) ( 일부 device 만지원 ) : USB 와 Random number generator 에사용될수있습니다. 특히 HSI48 clock 이제공되는 device 는외부에 crystal 이나 oscillator 가없이도 USB 통신이가능합니다. 12
2.2 HSE HSE 는아래두가지형태의 clock source 로부터 clock 을만들수있습니다. HSE user external clock (Figure 4) HSE external crystal/ceramic resonator (Figure 5) Figure 4. External clock Figure 5. Crystal/ceramic resonators 2.2.1 External source (HSE bypass) Device 마다입력가능한 HSE clock speed 가다릅니다. HSE 에외부 clock 을연결하여사용할 경우해당 device 의 data sheet 에서입력가능범위을확인하시기바랍니다. *( 주의 ) External clock source 는 50% 의 duty 를가져야하며, OSC_IN pin 으로입력되어야합니다. 그리고 OSC_OUT pin 은꼭 hi-impedance 를유지 (N.C 처리 ) 해야합니다. 2.2.2 External crystal/ceramic resonator (HSE crystal) Device 마다구동가능한 crystal frequency 가다릅니다. HSE 에 crystal/ceramic resonator 를연결하여사용할경우해당 device 의 data sheet 에서입력가능범위을확인하시기바랍니다. *( 주의 ) crystal 의안정적인발진을위해서는 CL1, CL2 는사용할 crystal 과 impedance 매칭이 되어야합니다. Crystal 발진관련내용은 AN2867 : Oscillator design guide for ST microcontrollers 문서를참조하시기바랍니다. 13
2.3 LSE LSE 는아래두가지형태의 clock source 로부터 clock 을만들수있습니다. LSE user external clock (Figure 6) LSE external crystal/ceramic resonator (Figure 7) Figure 6. External clock Figure 7. Crystal/ceramic resonators 2.3.1 External source (LSE bypass) Device 마다입력가능한 LSE clock speed 가다릅니다. LSE 에외부 clock 을연결하여사용할 경우해당 device 의 data sheet 에서입력가능범위을확인하시기바랍니다. *( 주의 ) External clock source 는 50% 의 duty 를가져야하며, OSC32_IN pin 으로입력되어야합니다. 그리고 OSC32_OUT pin 은꼭 hi-impedance 를유지 (N.C 처리 ) 해야합니다. 2.3.2 External crystal/ceramic resonator (LSE crystal) Device 마다구동가능한 crystal frequency 가다릅니다. LSE 에 crystal/ceramic resonator 를연결하여사용할경우해당 device 의 data sheet 에서입력가능범위을확인하시기바랍니다. *( 주의 ) crystal 의안정적인발진을위해서는 CL1, CL2 는사용할 crystal 과 impedance 매칭이 되어야합니다. Crystal 발진관련자세한내용은 AN2867 : Oscillator design guide for ST microcontrollers 문서를참조하시기바랍니다. 14
3 Boot 3.1 Introduction STM32 는 Table 5 에나오듯 3 가지 boot mode 중에서선택이가능합니다. Boot mode 는주로 Main flash memory 에 application binary 를 download 해야하는경우변경 / 선택하게됩니다. 양산을할때나, 사용자의 application 이 FW update 할경우 STM32 에내장되어있는 System boot loader 를사용할수있습니다. 이경우 User 가 IAP 를개발하지않아도되기때문에유용하게사용될수있습니다. Boot mode selection BOOT1 (1) BOOT0 Boot mode Aliasing x 0 Main Flash memory Main Flash memory is selected as boot space 0 1 System memory System memory is selected as boot space 1 1 Embedded SRAM Embedded SRAM is selected as boot space Table 5. Boot modes Main Flash memory : 사용자 application binary 가저장되는 memory 로전원인가후곧바로 application code 가수행되어야하는경우 boot mode 를 Main flash memory 로선택합니다. System memory : STM32 출하시이미라이팅되어있는 memory 로 System boot loader 를사용할경우 boot mode 를 System memory 로선택합니다. Embedded SRAM : Reset 후 STM32 내부의 SRAM 에서 code 가수행되어야하는경우 boot mode 를 Embedded SRAM 으로선택합니다. 3.2 Boot mode 설정대부분의 STM32 제품군의 Boot mode 설정방법은 BOOT0, BOOT1 번핀의 HW 구성으로설정하게됩니다. BOOT0, BOOT1 번 pin 들이 Table 5 의 BOOT0, BOOT1 과대응하게됩니다. 이런경우 Figure 8 과같이 boot mode 를선택할수있습니다. 15
Figure 8. Boot mode selection implementation example 일부제품군 (F0, F3, L0 series) 은 BOOT1 의선택이 HW 로선택되어지지않습니다. 이제품들은 BOOT1 을 Option byte 의 nboot1 bit 에의해결정됩니다. nboot1 bit 는 BOOT1 으로 latch 될때값이반전됩니다. 즉, nboot1 bit 가 1 일경우 BOOT1 이 0 가되어 Main flash memory 나 System memory 에서 booting 이가능합니다. * 위두가지형태모두 BOOT0, BOOT1 은 reset 이발생한이후나 Standby mode 에서빠져나간 후 4 번째 SYSCLK 의 rising edge 에서 latch 가일어납니다. 3.3 System boot loader System bootloader 는 STM32 device 의양산공정에서 System memory 에프로그래밍됩니다. 제품에따라 USART, CAN, USB, I2C, SPI, 등의통신 protocol 을이용할수있으며, 사용가능한 protocol 이나해당 pin 은 datasheet 나 AN2606 : STM32 microcontroller system memory boot mode 에서확인할수있습니다. Figure 9, 10 은제품별내장된 boot loader 에대한요약입니다. System bootloader 검토시 참조하시기바랍니다. 16
Figure 9. Embedded bootloaders 17
Figure 10. Embedded bootloaders 18
4 JTAG/SWD 4.1 Introduction Host 와 Target 과의 interface 는 Figure 11 과같이 JTAG / SWD 를지원하는 debug tool 을통해 Host PC 는 STM32 와연결됩니다. ( 일부 device 의경우 SWD 만을지원하는 device 도있습니다.) Figure 11. Host to board connection 4.2 SWJ debug port (serial wire and JTAG) STM32 는 ARM 사의 standard CoreSight debug port 인 SWJ-DP 가내장되어있습니다. SWJ- DP 는 JTAG-DP(5pin) 와 SW-DP(2pin) 가조합되어있습니다. 필요에따라선택하여사용하실수있습니다. Table 6 은 SWJ-DP 용 pin 들에대한설명과위치를보여줍니다. Table 6. Debug pin assignmment 19
Table 7 은사용가능한 debugging 기능과 pin 조합을보여줍니다. Table 7. SWJ pin availability Figure 12 는표준 JTAG connector 와의연결방법을보여줍니다. JTAG connector 의회로구성은 debugger 에따라일부핀의회로구성이다를수있음으로, 사용할 debugger 의 user manual 을확인하시기바랍니다. Figure 12. JTAG connector implementation 20
Table 8 은 ST-Link debugger 의 JTAG connector 의 pin description 입니다. Table 8. ST-Link V2 의 JTAG connecter pin description 21
5 Recommendations 5.1 PCB 기술적으로가장좋은 PCB 는 power 와 ground 층을각각가질수있는 multilayer 를채택하는것입니다. 하지만 application 의가격경쟁력이나다른이유로 multilayer 를채택하기힘든경우는최대한넓은 ground pattern 구성과전류이동이원활할수있는구조로 PCB 를설계하는것이좋습니다. 5.2 Ground and power supply 모든 power 블럭은각각의넓은 ground pattern 을가지도록설계하는것이좋습니다. 그리고각 power 블럭은 supply loop 를최소화할수있도록해당전원과가까이 ground pattern 을위치시킴니다. Supply loop 가길어지면, loop 가 antenna 처럼동작해서 EMI 의송신역활또는수신역활을하여 EMI 특성이나빠집니다. 그리고 PCB layout 에서남는공간은모두 ground pattern 으로만들어서쉴드의역활을할수있게하는것도 EMI 특성을높이는데도움이됩니다. 5.3 Decoupling MCU 에안정적인 power 를공급하기위해각각 VDD/VSS pair 에는 application 에따라 10nF~100nF 정도의 decoupling capacitor 를연결하는것이좋습니다. 그리고 device 에하나이상의 4.7uF 정도의 capacitor 를추가하는것을추천합니다. Figure 13 과같이모든 decoupling capacitor 는 device 에최대한가까이위치시키는것이좋습니다. Figure 13. Typical layout for VDD/VSS pair 22
5.4 Unused I/O EMC 성능을높이기위해사용하지않는 I/O 들은외부나내부의 pull-up/pull-down 저항을연결하여 logic 0 이나 1 을유지하도록하는것이좋습니다. 일부전류소모가중요한 application 에서는 I/O 의전류소모를줄이기위해 analog input 으로설정하는것이도움이됩니다. 2016 STMicroelectronics all right reserved 저작권자의사전서면승인이없을경우전체또는일부내용을복제및가공할수없습니다. 본문서를비롯해문서에담긴정보및관리원칙은 ST 의계약조건이행성립을위해작성된내용이아니며, 사전고지없이변경될수있습니다. 23