单片机最小系统是指用最少的电路组成单片机可以事情的系统,常日最小系统包含:电源电路、时钟电路、复位电路、调试/下载电路,对付STM32还须要启动选择电路。
电源电路不同的MCU的事情电压可能是不一样的,比如51单片机常日为5V,而STM32单片机常日为3.3V。因此,常日须要查阅该MCU的数据手册才能确定事情电压和规范。
打开“2_官方资料”的《1_STM32F103xE数据手册【主要】.pdf》(后简称,《数据手册》),找到“5.1.6Power supply scheme”电源方案小结,可以看到如图 5.2.1 框图。

结合《数据手册》“5.3.1 General operating conditions”的表 5.2.1 ,可得知上图中的各电压值大小。
VDD-VSS:标准事情电压;电压范围:2V~3.6V;从VDD1 ~ VDD11,VSS1 ~VSS11共有11组;须要11个100nF 和1个4.7uF去耦电容;经由MCU内部Regulator电源管理,为CPU、存储器等供电;VDDA-VSSA:仿照事情电压;电压范围:2V~3.6V(未利用ADC) 2.4V~3.6V(利用ADC);须要1个10nF和1个1uF去耦电容;由VDDA输入,为ADC、DAC等供电;VREF±VREF-:基准参考电压;电压范围:2.4V~ VDDA;可以利用独立参考电压VREF(需10nF+1uF高频滤波电容),也可利用VDDA输入,为ADC、DAC等作基准参考电压;VBAT:RTC备用电源;电压范围:1.8V~ 3.6V;常日利用纽扣电池外部供电,当主电源VDD掉电后,VBAT为实时时钟(Real-Time Clock,RTC)和备份寄存器供电(此时功耗超低);
从数据手册理解到以上知识后,再来看看事理图第三页的MCU电源部分。左边的U1B(U1A和U1B共同组成U1,即MCU)是MCU所有电源干系引脚,可以看到VDDA 、VDD1 ~ VDD11、 VREF+都直接接在了VDD_3V3上(3.3V),VSSA 、VSS1 ~ VSS11、 VREF-都接在了GND上,VBAT接在了VDD_BAT上。右边是一系列退耦电容,这些电容在Layout(PCB布局走线)时,须要均匀分布在每组电源引脚附近。此时,MCU电源部分符合数据手册的哀求。
前面VDD_3V3须要外部供应给MCU,也便是通过电源适配器供应,而一样平常的电源适配器常日为5V或 12V,因此还须要电源转换电路,将外部输入的12V或5V转换为3.3V。下图 5.2.3、图 5.2.4、图 5.2.5分别为12V电源输入电路、12V转5V电路、5V转3.3V电路,在5V转3.3V电路中有一个赤色LED灯,用于提示用户全体系统电源正常事情,该部分电路读者仅作理解即可。
末了再看看RTC电源电路,在外部12V输入时,VDD_3V3为3.3V,而J5的纽扣电池约为3V,D5为肖特基二极管,此时VDD_3V3大于纽扣电池电压,因此由VDD_3V3供电。当外部12V无输入时,VDD_3V3为0V, 而J5的纽扣电池约为3V,此时VDD_3V3小于纽扣电池电压,由纽扣电池供电,担保RTC连续运行,电路如图 5.2.6 所示。
时钟电路
MCU是一个集成芯片,由非常繁芜的数字电路和其它电路组成,须要稳定的时钟脉冲旗子暗记才能担保正常事情。时钟犹如人体内部的心脏一样,心脏跳动一下,推动血液流动一下。时钟产生一次,就推动处理器实行一下指令。除了CPU,芯片上所有的外设(GPIO、I2C、SPI等)都须要时钟,由此可见时钟的主要性。
芯片运行的时钟频率越高,芯片处理的速率越快,但同时功耗也越高。为了功耗和性能兼顾,微处理器一样平常有多个时钟源,同时还将时钟分频为多个大小,适配不同需求的外设。
由《数据手册》可得到如图 5.2.7 所示的时钟树,这里只关心时钟源,时钟的分配利用放在后面讲解。
可以看到一共有四个时钟源:
①HSI(High Speed Internal clock signal):
HSI是内部的高速时钟旗子暗记,频率8MHz。由于是内部供应,可以降落本钱,缺陷是精度较差。
②HSE(High Speed External clock signal):
HSE是外部的高速时钟旗子暗记,须要外部电路晶振,输入频率范围哀求为4-16MHz。由于须要外部电路供应,本钱会增加,但精度较好。
③LSE(Low Speed External clock signal):
LSE是外部的低速时钟旗子暗记,须要外部电路晶振,输入频率范围哀求为32.768KHz。一样平常用于RTC实时时钟。
④LSI(Low Speed Internal clock signal):
LSI是内部的低速RC振荡器,频率40KHz。一样平常用于看门狗、RTC实时时钟等。
对付STM32F103系列的MCU,都须要一个高速时钟和一个低速时钟,而这两个时钟可以选择利用内部时钟源节约本钱,也可以选择外部时钟源输入提高精度。如果利用内部时钟源,则无需设计外部电路,反之,则须要时钟电路。
连续查看《数据手册》,可以看到如图 5.2.8 和图 5.2.9 所示的外部时钟输入参考电路。手册上提到对付HSE,当晶振为8MHz时,CL1和CL2的容值范围为5pF~25pF。REXT用于产生负反馈,担保放大器事情在高增益的线性区,同时也起到限流浸染,常日在兆欧级,详细由晶振决定。
对付LSE,当晶振为32.768KHz时,CL1和CL2的容值范围为5pF~15pF。之以是选择32.768KHz,是由于32768=215,分频设置寄存器常日为2n的形式,这样经由15次分频就很随意马虎得到1Hz的频率。
从数据手册理解到以上知识后,再来看看事理图第三页的时钟电路部分,如图 5.2.10 所示。高速时钟和低速时钟都可由外部供应,且电路设计与数据手册同等。
晶振旁的负载电容,应选择高质量陶瓷电容(NPO),以知足高频率场合。在Layout(PCB布局走线)时,晶振和负载电容,应尽可能的靠近MCU,以减少输出失落真和启动时的稳定韶光,担保振荡器可靠事情。
复位电路
嵌入式系统中,由于外界环境滋扰,难免涌现程序跑飞或去世机,这时就须要复位让MCU重新运行。查看《参考手册》,可见如图 5.2.11 所示复位电路。该电路将一个按键接在了NRST引脚,一旦按键按下,NRST就会接地,拉低NRST,实现复位。
再来看看事理图上的复位电路,如图 5.2.12 所示。当开拓板正常事情时,VDD_3V3上拉NRST, POWER_EN为前面12V转5V电源芯片的使能引脚,此时被电源芯片钳位在6.5V。当SW1被按下,D1为肖特基二极管,NRST和POWER_EN都会导通接地,拉低NRST和POWER_EN,使MCU复位,同时断开系统供电。
调试/下载电路
不同的MCU,调试/下载的办法可能不一样。比如51系列单片机,利用串口下载程序,同时也利用仿真调试。对付STM32,可以利用串口下载程序,也能利用串口打印进行大略调试,但STM32支持更高效的JTAG(Joint Test Action Group)调试接口和SWD(Serial Wire Debug)调试接口。
该电路比较大略,所涉及的引脚参考表 3.4.1,事理图如图 5.2.13 所示。
启动选择电路
不同的MCU,启动的办法的种类可能不一样。比如51系列单片机,只能从内置存储器读取数据启动,因此没有启动选择的必要。对付STM32,可以从内置存储器启动(默认),可以从系统存储器(用于从USART1下载程序),可以从内部SRAM启动(调电消逝,可用于调试),涌现多个启动办法,就须要启动选择。
STM32通过BOOT1和BOOT2引脚的电平组合进行启动选择,组合办法和电路设计如图 5.2.14 所示。
当J1拨码开关的1、4脚断开(对应开拓板赤色拨码开关的1号拨码朝下),2、3脚任意(对应开拓板赤色拨码开关的2号拨码任意)。此时BOO1为0,BOOT1任意,开拓板上电,MCU将从内部主存储器读取数据启动,是最常用的启动办法。
当J1拨码开关的1、4脚连接(对应开拓板赤色拨码开关的1号拨码朝上),2、3脚断开(对应开拓板赤色拨码开关的2号拨码朝下)。此时BOO1为1,BOOT1为0,开拓板上电,MCU将从系统存储器读取数据启动,在系统存储器里面厂家烧写的串口下载程序,此时可以通过USART1烧写新程序到主存储器。
当J1拨码开关的1、4脚连接(对应开拓板赤色拨码开关的1号拨码朝上),2、3脚连接(对应开拓板赤色拨码开关的2号拨码朝上)。此时BOO1为1,BOOT1为1,开拓板上电,MCU将直接从内部SRAM启动,SRAM的烧写次数寿命比Flash更多,可用于调试。
各启动模式的启动示意图如图 5.2.15 所示。常日,我们只利用主存储器启动即可。从系统存储器启动,实现从串口下载程序也逐渐被淘汰,STM32的高端MCU已经不支持该办法下载。从SRAM启动也没什么必要,目前Flash的烧写寿命次数也远远超过用户实际烧写次数。
【总结】
本小结带领读者学习了如何读事理图,也对STM32的最小系统有了一些理解。后面的电路浩瀚,在剖析某个电路时,结合干系手册的参考电路息争释, 加上不断积累,相信读者也能灵巧剖析事理图。