单独一块单片机芯片是无法工作的,需要增加外围电路给芯片提供电源、时钟信号和复位信号,为了能将编写的程序下载到单片机芯片,还应有下载电路。单片机芯片与提供基本工作条件的电路(电源电路、时钟电路、复位电路和程序下载电路)一起,就构成了单片机的最小系统电路。
STM32单片机型号很多,STM32F103C8T6单片机是一款基于ARM Cortex-M3内核的微控制器,程序存储器容量是64KB,电源电压为2~3.6V,其性价比高,很适合初学者学习使用。STM32F103C8T6单片机的外形、参数与引脚功能如图1-4所示。
图1-4 STM32F103C8T6单片机的外形、参数与引脚功能
STM32F103C8T6单片机有48个引脚,其中37个I/O引脚(PA0~PA15、PB0~PB15、PC13~PC15、PD0、PD1),很多引脚有多个功能,可以编程决定使用何种功能;其他主要是电源引脚(VDD、VSS)、复位引脚(NRST)、时钟引脚(OSC,与IO引脚共用)和启动设置(BOOT)引脚。
图1-5是STM32F103C8T6单片机的最小系统电路原理图。该电路主要由STM32单片机芯片及其工作必需的电源电路、复位电路、时钟电路、启动方式设置电路和下载调试端组成。为了方便测试该最小系统能否正常工作,在单片机的PC13端(②脚)外接了一个发光二极管VD2,测试时,往单片机下载驱动VD2闪烁发光的程序,若VD2会闪烁发光,则表明该系统可正常工作。
图1-5所示电路原理图的电气连接关系是采用标号来表示的,相同的标号在电气上是直接连接的,比如电路中所有的标号“VCC3V3”在电气上都直接连接在一起。
图1-5 STM32F103C8T6单片机的最小系统电路原理图
X1是一个Micro USB接口(与手机同类型充电接口相同),外部5V电源(如来自手机充电器)通过接口的Vbus、G端(即1、5脚)将5V电压送到电源芯片U1的1、2脚,经内部电路降压后从5脚输出3.3V电压,该电压一方面将电源指示灯VD1点亮,另一方面送给单片机4个VDD端、复位电路和启动方式设置电路。单片机4个VDD端各接了一个滤波电容,减小各VDD端电压的波动。
复位电路的功能是在接通电源时为单片机提供一个低电平(有的单片机为高电平)信号,使单片机内部电路全部进入初始状态,当低电平变为高电平时复位完成,内部电路开始工作。复位信号就像上课的铃声,不管学生正在做什么,一听到铃声,就会马上回到教室坐好等待上课。
R2、C2和SW1构成复位电路,在系统接通电源时,3.3V电压送到复位电路,由于C2还未充电,两端电压很低,该电压为低电平,送到单片机的NRST端(7脚,复位端),对单片机内部电路进行复位,使电路回到初始状态。随着3.3V电压经R2为C2充电,C2两端电压上升,升高到3.3V时充电结束,单片机的NRST端电压也为3.3V,此为高电平,单片机内部电路复位完成。SW1为手动复位按键,按下SW1,C2被短路而迅速放电,C2两端电压下降为低电平,单片机的NRST端也为低电平,内部电路被强制复位;只有当NRST端变为高电平时,单片机才能重新开始工作。
时钟电路的功能是为单片机内部电路提供时钟信号,使这些电路有节拍地工作。时钟信号频率越高,电路的工作速度越快,没有时钟信号,单片机内部电路将无法工作。时钟信号就像做操时喊的节拍,做操的动作按节拍进行,节拍喊得快,做操的动作也变快,节拍声一停,做操动作也停止。
STM32F103C8T6单片机有两个时钟电路,C9、C12、Y3(晶振,频率为32.768kHz)与单片机PC14、PC15端(3、4脚)内部的电路构成时钟电路,产生32.768kHz的时钟信号;C13、C14、Y2(晶振,频率为8MHz)与单片机OSCIN、OSCOUT端(5、6脚)内部的电路也构成时钟电路,产生8MHz的时钟信号。在单片机编程时,可根据情况通过程序来设置需要哪个时钟信号。
STM32单片机有3种启动方式,由BOOT1、BOOT0端的电平控制,见表1-2。6脚排针X3与R3、R4构成启动方式设置电路,单片机的BOOT1端(20脚)通过R4与X3的4脚连接,单片机的BOOT0端(44脚)通过R3与X3的3脚连接,当用两个跳线(短路片)分别短路X3的1、3脚和4、6脚时,BOOT1=0,BOOT0=1,单片机启动方式被设为从系统存储器启动。
表1-2 BOOT1、BOOT0端电平与启动方式的关系
续表
注:X表示任意电平。
单片机是由程序驱动工作的,在计算机中用编程软件编写的程序需要下载到单片机。STM32单片机下载程序的方式有串口下载和SWD下载,SWD方式不但支持下载程序,还支持在线仿真、调试程序,图1-5中的单片机最小系统电路采用SWD方式下载程序。
X2为SWD下载接插件,1、4脚分别与3.3V电源和地连接,2脚与单片机的SWDIO端(34脚)连接,3脚与单片机的SWCLK端(37脚)连接。在下载调试程序时,单片机经X2通过下载调试器(如ST-Link)与计算机连接,传送程序数据。
图1-6是STM32F103C8T6单片机的最小系统实验电路板,该电路采用双面电路板,一些主要的元器件放置在正面,而一些电阻、电容元器件放置在电路板的反面,正、反面的元器件和电路是通过穿板而过的导电过孔来连接的。
图1-6 STM32F103C8T6单片机的最小系统实验电路板