记录一下一年前刚开始学pcb的时候做的stm32最小系统板,内容仅供参考。
STM32最小系统
单片机最小系统就是保证MCU正常工作的最小电路组成单元。stm32最小系统一般由电源电路、晶振(时钟)电路、复位电路、下载调试电路、BOOT启动电路组成,原理图如下所示;
一、电源电路
单片机通常通过USB进行供电,USB输入电压为5V,而单片机引脚可承受电压在1.8~3.6V之间,这里我们使用AMS1117芯片搭建降压电路来将5V转换为3.3V。电路图如下:
- 由于我们只使用SWD下载方式,因此只连接VCC与GND两个引脚。
- 输入滤波电容的作用:对于LDO来讲,如果输入的电压波动较大,那么LDO就很容易不稳定,所以在输入侧添加滤波电容来增强LDO的输出稳定性。
- 输入滤波电容的作用:降低输出纹波,提高带载能力。
- 大小电容并联的原因:大电容对低频的电压起滤波作用,使电源的电压平稳。小电容对高频的信号起到旁路作用,所谓的旁路作用,就是说小电容相对于高频信号近似短路,但对低频或是直流电压信号不敏感,相当于开路。这样高频干扰信号通过小电容回到地,有效滤除高频信号。剩下的低频信号交给大电容处理。通过大小电容的组合方式可以得到较好的滤波效果。
考虑到我们使用单片机时可能会对一些其他模块例如舵机进行供电,因此通过一个3×2排针引出电源引脚。
二、晶振(时钟)电路
晶振电路为单片机提供时钟信号。STM32有两组晶振:
-
OSC_IN/OSC_OUT:外部HSE晶振引脚,用于给STM32提供高精度系统时钟。高速外部时钟(HSE)可以使用一个4~16MHz的晶体/陶瓷谐振器构成的振荡器产生。为了程序内部倍频方便,一般选用8MHz的晶振。
STM32数据手册所给出的关于外部HSE晶振参考设计如下:
对于CL1和CL2,一般建议使用5pF~25pF之间的电容,这里选取22pF电容。 参考设计里面建议串联一个150Ω ~180Ω 的电阻,我这里没有选电路可以正常使用,大家可以自行选择。 -
OSC32_IN/OSC32_OUT:外部LSE晶振引脚,用于给STM32内部RTC提供时钟。如果不用RTC功能的话,RTC的晶振不必连接。我没有使用这个功能,如果大家设计时需要可以参考STM32数据手册。
注意:在PCB布线时晶振应尽量靠近芯片。晶振底部不要进行布线,防止其他信号干扰晶振
三、复位电路
单片机在正常运行时,由于外界干扰等因素可能会使单片机程序陷入死循环状态或“跑飞”状态。若要使其进入正常状态,唯一的办法是将单片机复位,以重新启动。复位就是把单片机当前的运行状态恢复到起始状态的操作,其作用是复位单片机的程序计数器PC,使单片机从代码存储器0x00000000单元重新开始执行程序,并将相关寄存器复位到默认初始值。STM32单片机的程序计数器初始值为00000004H,00000000H留给主堆栈指针MSP。STM32F1单片机支持3种形式的复位,分别是系统复位、电源复位和备份区域复位,其复位电路如图所示:
- 芯片内部的复位信号会在NRST引脚上输出,当NRST引脚被拉低产生外部复位时,它将产生复位脉冲。芯片内部的脉冲发生器保证了每一个(外部或内部)复位源都能有至少20μs的脉冲延时。
- 当STM32单片机的NRST引脚检测到持续20μs以上的低电平后,对单片机进行复位操作。
官方参考设计:由图24可以看到,官方所给参考设计里只需要并联一个电容就行,芯片内部存在上拉电阻RPU。RPU是一个弱上拉电阻,抗干扰能力较差,换为强上拉电阻,提高其抗干扰能力。实际设计中建议预留强上拉电阻,可以不用焊接。
我们一般常用的复位电路是在NRST引脚上产生一个低电平信号(外部复位)引发系统复位,它由电容串联电阻构成,如下图所示。当复位按键KEY被按下时,NRST引脚和地相接,从而被拉低,产生一个低电平信号,实现复位。在系统上电瞬间,电容开始充电,由于电容电压不能突变,导致NRST引脚在上电瞬间被拉成低电平,这个低电平持续的时间由复位电路的电阻、电容值决定(t=1.1RC=1.1×1000Ω×0.0000001F=0.11s=1100μs)。NRST引脚检测到持续20μs以上的低电平以后,单片机复位。
四、下载调试电路
我这里是使用ST-Link下载器进行SWD模式下载,接线方式如下:
- ST-Link的VDD引脚连接STM32F103C8T6的3.3V电源引脚
- ST-Link的GND引脚连接STM32F103C8T6的GND引脚
- ST-Link的SWDIO引脚连接STM32F103C8T6的PA13电源引脚
- ST-Link的SWCLK引脚连接STM32F103C8T6的PA14电源引脚
五、BOOT启动电路
在STM32单片机里,可以通过BOOT[1:0]引脚选择三种不同启动模式,如下所示:
图中X代表0或1。
STM32单片机一般工作在闪存存储区启动模式,上电启动时运行Flash存储区中保存的用户程序。因此用跳线帽将BOOT0与BOOT1两个引脚短接到地上(BOOT0、BOOT1一般连接两个下拉电阻)。
六、其他电路
- 芯片电源供电:VBAT为RTC电源管脚,电源范围为1.8~3.6V,主要用于RTC时钟供电,不用的情况下可以直接接3.3V。VREF+和VREF-是A/D转换器(Analog to-Digital Converter,ADC)外部参考电压供电引脚,为其提供精确参考电压,100脚以下芯片不存在这两个引脚。VDD为数字电源引脚,VDDA为模拟电源引脚。参考电容所用较多,我这里是只用了四个100nf电容进行滤波,如下:
七、PCB及实物
在上面添加了图片,是我比较喜欢的天罡龙棋将。
实物如下,上电正常。
点亮板载LED灯
因为当时是第一次制板,所以整体布局不是太好,两边丝印没放好。源文件在这里STM32C8T6最小系统板原理图及PCB,下载是免费的,不需要积分,有需要的可以参考参考。