STM32F3xx系列是高集成和易于开发的32位MCU,整合了带有DSP与FPU指令、工作频率为72MHz的32位ARM Cortex-M4内核、高级模拟外设以及嵌入式Flash和SRAM存储器。由于实时功能、数字信号处理、低功耗与低电压操作特性,STM32F3xx能有效处理三相电机控制器、生化和工业传感器以及音频滤波器等电路的混合信号,可广泛用于消费、医疗、便携式健身、系统监控与测量的实际应用。
时钟方面,STM32F3xx使用两个时钟源:LSE采用的X1是一个32.768kHz晶振,用于嵌入式RTC;HSE采用的X2为8MHz晶振,用于STM32F3xx MCU运行。每个时钟源在未使用时,都可单独打开或者关闭,以降低功耗。
1. HSE时钟
高速外部时钟信号(HSE)OSC时钟有2个时钟源:HSE外部晶振 / 陶瓷谐振器,HSE用户外部时钟。
图1.HSE/LSE时钟源
PCB布线时,谐振器和负载电容必须尽可能地靠近振荡器的引脚,以尽量减小输出失真和起振稳定时间。负载电容值必须根据所选振荡器的不同做适当调整。
(1)外部晶振/陶瓷谐振器(HSE晶振)
4-32MHz外部振荡器的优点是精度非常高。时钟控制寄存器中的HSERDY标志(RCC_CR)指示了HSE振荡器是否稳定。在启动时,硬件将此位置1后,此时钟才可以使用。如在时钟中断寄存器(RCC_CIR)中使能中断,则可产生中断。HSE晶振可通过时钟控制寄存器(RCC_CR)中的HSEON位打开或关闭。
(2)外部源(HSE旁路)
在此模式下,必须提供外部时钟源,最高频率不超过32MHz。此模式通过将时钟控制寄存器(RCC_CR)中的HSEBYP和HSEON位置1进行选择。必须使用占空比为40-60%的外部时钟信号(方波、正弦波或三角波)来驱动OSC_IN引脚,具体取决于频率,同时OSC_OUT引脚可用作GPIO。
2. LSE时钟
LSE晶振是32.768kHz低速外部晶振或陶瓷谐振器,可作为实时时钟(RTC)的时钟源来提供时钟/日历或其它定时功能,具有功耗低且精度高的优点。LSE晶振通过备份域控制寄存器(RCC_BDCR)中的LSEON位打开和关闭。使用备份域控制寄存器(RCC_BDCR)中的LSEDRV[1:0]位,可在运行时更改晶振驱动强度,以实现稳健性、短启动时间和低功耗之间的最佳平衡。备份域控制寄存器(RCC_BDCR)中的LSERDY标志指示了LSE晶振是否稳定。在启动时,硬件将此位置1后,LSE晶振输出时钟信号才可以使用。如在时钟中断寄存器(RCC_CIR)中使能中断,则可产生中断。在此模式下,必须提供外部时钟源,最高频率不超过1MHz。此模式通过将备份域控制寄存器(RCC_BDCR)中的LSEBYP和LSEON位置1进行选择。必须使用占空比约为50%的外部时钟信号(方波、正弦波或三角波)来驱动OSC32_IN引脚,同时OSC32_OUT引脚可用作GPIO。
3. HSI时钟
HSI时钟信号由内部8MHz RC振荡器生成,可直接用作系统时钟(SYSCLK),或者用作PLL输入。HSI RC振荡器的优点是成本较低(无需使用外部元件)。此外,其启动速度也要比HSE晶振块,但即使校准后,其频率精度也不及外部晶振或陶瓷谐振器。因为生产工艺不同,不同芯片的RC振荡器频率也不同,ST对每个器件进行出厂校准,达到TA= 25℃时1%的精度。此外,可将HSI时钟接至MCO复用器。时钟可连接至F30x中定时器16的输入及F37x中定时器14的输入,以允许用户校准振荡器。
4. LSI时钟
低速内部RC时钟(LSI RC)频率约为40kHz(30kHz到60kHz之间)。LSI时钟可作为低功耗时钟源在停机和待机模式下保持运行,用于驱动独立看门狗(IWDG)和RTC,也可选择提供给RTC用于停机/待机模式下的自动唤醒。
图2.STM32F30x微控制器参考原理图
5.选型参考
下表是STM32F303VCT/358VCT6、STM32F373VCT6/378VCT6外围元器件参考数据。其中,前三项为必备项,其他为备选元器件。
STM32F3xx系列MCU外围元器件配置参考数据
STM32F3xx原始BOM
元件缩写数量注释
MCUSTM32F303VCT/STM32F358VCT6STM32F373VCT6/STM32F378VCT61100引脚封装
电容100nF4代表STM32F303,3代表STM32F373/378陶瓷电容(去耦电容)
电容4.7μF1陶瓷电容(去耦电容)
电阳390Ω1用于HSE:值取决于晶振特性。此值仅为典型举例。
电阻0Ω1用于LSE:值取决于晶振特性。此电阻值仅为典型举例。
电阻10KΩ4用于JTAG和自举模式的上拉和下拉电阻。
电容100nF3用于RESET按钮,VDDA和VREF+的陶瓷电容。
电容1μF2用于VDDA和VREF+。
电容100nF3用于VDDSDx和VREFSD+的陶瓷电容(仅STM32F37x)
电容1μF3用于VDDSDx和VREFSD+(仅STM32F37x)
电容10pF2用于LSE:值取决于晶振特性。
电容20pF2用于HSE:值取决于晶振特性。
石英8MHz1用于HSE
石英32kHz1用于LSE
嵌入式3V31若应用中没有使用外部电池,则建议将VBAT外部连至VDD
开关1用于选择正确的自举模式。
按钮B11用作复位按钮
JTAG连接器1用于MCU编程/调试
BOM中,32kHz石英晶振用于LSE,频点为32.768kHz,两个匹配电容选择10pF的MLCC电容器,无需匹配电阻。8MHz石英晶振用于HSE,两个匹配电容C14、C15选择20pF的MLCC电容器,匹配电阻R4选择390Ω,具体应以晶振参数和涉及要求为准。