STM32 单片机最小系统全解析
本文详细介绍了 STM32 单片机最小系统,包括其各个组成部分及设计要点与注意事项。STM32 最小系统在嵌入式开发中至关重要,由电源、时钟、复位、调试接口和启动电路等组成。
在电源电路方面,采用 3.3V 直流电源供电,通常使用 AMS1117-3.3 电源芯片将 5V 电压转换为稳定的 3.3V 电压,多个滤波电容可有效去除电源中的杂波和干扰信号。
时钟电路中,晶振为单片机提供运行的时钟信号,STM32 有高速和低速两种晶振,高速晶振一般为主时钟晶振,常见频率为 8MHz,低速晶振通常为 RTC 时钟晶振,频率一般为 32.768kHz。晶振两端连接的电容可起到滤波和消除电感干扰的作用,通过选择合适的电容值,可与晶振形成并联谐振电路,使晶振输出的震荡频率更加稳定。
复位电路有手动复位和上电复位两种方式,手动复位通过按键实现,上电复位利用电容的充放电特性。STM32 是低电平复位,复位时初始化各个寄存器,但不包括 RAM。
调试接口电路中,常用的调试下载方式有 JTAG 和 SWD。SWD 调试接口结构简单,节省 I/O 口和板子空间,在高速模式下更加可靠。
启动电路有三种启动模式,由 BOOT0 和 BOOT1 引脚在复位时的状态决定。从主 Flash 启动是最常见的启动方式,代码存储在 STM32 的内置 Flash 中;从系统存储器启动时,内置 ROM 的起始地址将被重映射到 0x00000000 地址;从嵌入式 SRAM 中启动时,适合调试,但掉电丢失。
在设计要点方面,晶振电路设计要注意电阻、电容的选择和作用;复位电路采用手动复位的方式,通过按键实现;电源稳压电路要选用合适的稳压芯片。
注意事项包括走线要求、焊接技巧、检查引脚连接和通断的方法、芯片焊接步骤及注意事项、非正常短接的找错方法以及 PCB 绘制中的快捷键、注意事项和技巧。
总之,了解和掌握 STM32 单片机最小系统的组成、设计要点和注意事项,对于嵌入式开发人员来说至关重要。
一、STM32 最小系统概述
STM32 单片机最小系统在嵌入式开发中具有至关重要的地位,它是单片机稳定运行的基础。就如同一个人的身体系统需要各个器官协同工作才能保持健康,STM32 单片机也需要最小系统的各个组成部分共同作用才能正常运行。
最小系统主要由电源、时钟、复位、调试接口和启动电路等组成。电源是整个系统的动力来源,就像人的消化系统为身体提供能量一样。STM32 的工作电压一般为 1.8 - 3.3V,通常使用 3.3V 直流电源为其供电。为了保证电源的稳定性,电路中通常会加入多个滤波电容。
时钟电路犹如人的心脏,为单片机提供运行的节奏。STM32 有两组晶振,主时钟晶振一般为 8MHz,为单片机提供主时钟信号;RTC 时钟晶振通常为 32.768kHz,为实时时钟提供时钟信号。晶振两端通常会连接电容,起到滤波和稳定频率的作用。
复位电路则是单片机的免疫系统,当系统出现故障或混乱时,可通过复位让系统重新开始。STM32 是低电平复位,通常有手动复位和上电复位两种方式。上电复位利用电容的充放电特性,在上电瞬间使复位引脚为低电平,经过一段时间后电容充电完成,复位引脚变为高电平,单片机开始正常工作。手动复位则通过按键实现,按下按键时复位引脚接地为低电平,松开后恢复高电平。
调试接口是开发过程中不可或缺的部分,它方便开发者进行程序的下载和调试。常见的调试接口有 JTAG 和 SWD,现在 SWD 调试接口使用较为广泛,它只需两根线即可实现调试和下载功能。
启动电路则决定了单片机的启动方式。STM32 有三种启动模式,由 BOOT0 和 BOOT1 引脚在复位时的状态决定。一般情况下,如果想用串口下载代码,则必须配置 BOOT0 为 1,BOOT1 为 0;如果想让 STM32 按下复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设置都可以。
综上所述,STM32 最小系统的各个组成部分相互配合,共同为单片机的稳定运行提供了保障。
二、组成部分详解
(一)电源电路
STM32 的工作电压一般为 1.8 - 3.3V,通常使用 3.3V 直流电源为其供电。电源电路中,稳压芯片起到关键作用,如常见的 AMS1117-3.3 电源芯片,可将输入的 5V 电压转换为稳定的 3.3V 电压,为 STM32 及其他电路模块提供合适的工作电压。电容在电源电路中也非常重要,起到滤波的作用。多个滤波电容可以有效去除电源中的杂波和干扰信号,保证电源的稳定性。例如,当电源中出现高频噪声时,小容量的陶瓷电容可以快速充放电,将高频噪声滤除;而大容量的电解电容则可以对低频波动进行平滑处理,确保电源电压的稳定输出。
(二)时钟电路
晶振在 STM32 中起着至关重要的作用,就如同心脏为人体提供节奏一样,晶振为单片机提供运行的时钟信号。STM32 有高速和低速两种晶振。高速晶振一般为主时钟晶振,常见的频率为 8MHz,为单片机提供主时钟信号,使单片机能够高速运行各种程序和任务。低速晶振通常为 RTC 时钟晶振,频率一般为 32.768kHz,为实时时钟提供精确的时钟信号,保证时间的准确记录。在晶振两端连接的电容,一方面可以起到滤波的作用,减少外部干扰对晶振频率的影响;另一方面,还可以消除晶振的电感干扰。根据搜索到的资料,晶振在电气上可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,通过选择合适的电容值,可以与晶振形成并联谐振电路,从而使晶振输出的震荡频率更加稳定。
(三)复位电路
复位电路主要有手动复位和上电复位两种方式。手动复位是通过按键实现的,当按下按键时,复位引脚接地为低电平,松开后恢复高电平。这种方式在系统出现故障或需要重新启动时非常方便。上电复位则利用电容的充放电特性,在上电瞬间,由于电容两端电压不能突变,复位引脚为低电平,随着电容充电完成,复位引脚变为高电平,单片机开始正常工作。STM32 是低电平复位,当复位引脚为低电平时,系统进行复位操作,初始化各个寄存器,包括最重要的 PC 指针,但不包括 RAM。然后单片机从复位地址开始执行程序。
(四)调试接口电路
在程序开发过程中,常用的调试下载方式有 JTAG 和 SWD。JTAG(Joint Test Action Group)是一种国际标准测试协议,主要用于芯片内部测试。标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。SWD(Serial Wire Debug)是一种和 JTAG 不同的调试模式,使用的调试协议也不一样。与 JTAG 的 20 个引脚相比,SWD 只需要 4 个(或者 5 个)引脚,结构简单,节省了 I/O 口和板子空间。例如,正常的 JTAG 需要 20 管脚,而 J-Link 的 SWD 只需要 2 根线(PA13/JTMS/SWDIO、PA14/JTCK/SWCLK)就够了(加上电源线也就 4 根)。SWD 在高速模式下面更加可靠,在大数据量的情况下面 JTAG 下载程序会失败,但是 SWD 发生的几率会小很多。
(五)启动电路
STM32 有三种启动模式,由 BOOT0 和 BOOT1 引脚在复位时的状态决定。一般情况下,如果想用串口下载代码,则必须配置 BOOT0 为 1,BOOT1 为 0;如果想让 STM32 按下复位键就开始跑代码,则需要配置 BOOT0 为 0,BOOT1 随便设置都可以。从主 Flash 启动是最常见的启动方式,代码存储在 STM32 的内置 Flash 中,启动时内置 Flash 的起始地址将被重映射到 0x00000000 地址,代码将在该处开始执行。从系统存储器启动时,内置 ROM 的起始地址将被重映射到 0x00000000 地址,代码在此处开始运行。ROM 中有一段出厂预置的代码,可通过 UART/CAN 或 USB 等将代码写入 STM32 的内置 Flash 中。从嵌入式 SRAM 中启动时,内置 SRAM 的起始地址将被重映射到 0x00000000 地址,代码在此处开始运行。这种模式适合调试,因为烧录程序过程中不需要擦写 Flash,速度较快,但掉电丢失。
三、设计要点与注意事项
(一)设计要点
- 晶振电路设计,包括电阻、电容的选择和作用。
-
- 晶振选用 8MHz 的无源晶振,具有高精度、高频率稳定性、可靠性强等优良特性。晶振的输入输出端连接电阻,一般为 M 欧级,本系统中选用 1M 欧电阻,起到产生负反馈的作用,保证放大器能够工作在高增益的线性区。晶振两端的电容一般选择 10 - 40pF,起到使晶振两端的等效电容等于或接近于负载电容的作用,同时还能起到一定的滤波作用,滤除晶振波形中的高频杂波。一般情况下,增大电容会使振荡频率下降,而减小电容会使振荡频率升高。
- 复位电路采用手动复位的方式及原理。
-
- 复位电路采用手动复位的方式,通过引入按键的使用达到手动复位的目的。STM32 是低电平复位,按键按下时,NRST 引脚和 GND 导通,从而在该引脚出产生一个低电平,从而实现单片机的复位。复位电路由一个按键、一个电容、一个上拉电阻组成。接上电源瞬间,电容等效于短路,此时 NRST 点为低电位接地,STM32 复位。当电容充电完成后,电容等效于开路,NRST 点电位回升为高电平。按下按键 KEY1,NRST 点接地变为低电平,STM32 复位。按键松开后,NRST 点回升为高电平。
- 电源稳压电路的分析,选用合适的稳压芯片。
-
- 由于本系统所使用电源适配器提供的是 5V 的电压源,而系统所使用的 MCU 的正常工作电压是 3.3V,所以需要进行降压处理。该电路设计所采用的是 AMS1117 这一款正向低压降稳压器,选用的稳压 IC 是 AMS1117 系列的 3.3V 降压版本,其输出电压的精度为 1%,满足了降压精度的需求。同时由于其内部集成有过热保护和限流电路,所以在电源的使用过程中能够提供一定的安全保障。
(二)注意事项
- 走线要求,不走直角且尽量粗。
-
- 走线不走直角可以减少信号反射和干扰,提高电路的稳定性。走线尽量粗可以降低电阻,减少电压降,提高电源的效率。
- 焊接技巧,温柔操作,及时上锡保护。
-
- 焊接的时候要温柔,太大力会造成损坏。一小会不用焊笔就要上锡保护,防止焊笔氧化。
- 检查引脚连接、通断和排查问题的方法。
-
- 先检查引脚是否接对,再检查通断,可使用万用表进行检测。然后逐个点的排查问题,如检查芯片引脚是否短接,可使用万用表来调试,不要相信肉眼。
- 芯片焊接步骤及注意事项。
-
- 芯片焊接步骤为:粘锡拆引脚 - 粘锡分开引脚 - 对齐引脚再固定 - 放斜板子靠重力 - 引脚垂直焊笔来焊接 - 多的锡引到一起,用松香一点点除去。固定用的一排引脚锡也不要加太多,后面去掉很麻烦。一定要先确定好封装再去焊。
- 非正常短接的找错方法。
-
- 用小刀割开导线,分段找问题。芯片的引脚拉长一点,有助于检查短接问题。
- PCB 绘制中的快捷键、注意事项和技巧。
-
- 在 PCB 绘制中,合理设置铺铜和导线的间距可以宽一些,避免干扰。为自制的板子加入指示灯有助于调试。底层的墨擦掉,防止短路。输入线要粗,保证电源供应稳定。在焊盘上的 PCB 是转印纸上的镜像,绘制时要注意。原理图要让别人看得懂,方便后续维护和修改。