一、STM32最小系统设计
1.什么叫MCU最小系统?
一个MCU
(单片机)在能正常工作,正常下载程序前提下的最简电路。
2.STM32最小系统
STM32
最小系统一般包含以下六部分电路:
- 供电电路
- 复位电路
- 时钟:外部晶振(2个)
Boot
启动模式选择- 下载电路(串口/
JTAG
/SWD
) - 后备电池(可以不包含)
2.1 供电电路(电源部分)
STM32
芯片一般包含四种电源信号:
名称 | 典型值 |
---|---|
VDD数字电源 | +3.3V |
VSS数字地 | 0 |
VDDA模拟电源 | +3.3V |
VSSA模拟地 | 0 |
VDD
和VDDA
之间一般接一个简单的低通滤波器即可(RC
,π
型即可)
对于
51
单片机来说,只有电源与地两种,没有分开;但是,对于STM32
芯片,因为其主频比较高,为了让模拟部分与数字部分干扰降低,因此将数字部分与模拟部分分开。
以“正点原子”的开发板为例,产生一个5V的电源,然后通过一个稳压管(比如:AMS1117
)稳出一个3.3V,这个3.3V就作为数字电源,连接到VDD
;GND
连接到地(模拟地与数字地)。
数字电源与模拟电源之间接一个简单的低通滤波器即可。
供电电路部分比较简单,只需要:
- 第一步:找出芯片所有的电源与地,包括模拟电源、模拟地、数字电源、数字地。
- 第二步:确定电源的输入输出电压范围,然后为其提供一个稳定的供电电源。
- 第三步:对数字电源
VDD
和模拟电源VDDA
之间设计一个简单的低通滤波器。
经过这三步,供电电路部分就可以设计完成。
2.2 复位电路
基本上,对于所有的单片机都需要复位电路。对于STM32
芯片来说,有一个复位引脚NRST
。
接下来,设计复位电路。实际上,单片机的复位电路都是比较固定的,通过按键的方法,按一下这个按键,产生一个信号。
当RST
按键没有按下时,是高电频;当RST
按键按下时,复位引脚接到地,就会产生低电频。与51单片机中的复位类似,复位引脚从高往低跳变,低电平持续一段时间,就可以产生复位。
2.3 时钟电路
STM32
外部可以提供两种时钟:高速外部时钟与低速外部时钟。高速的外部时钟一般都是给芯片的内核来供电,作为系统时钟。低速的外部时钟主要是给RTC
(实时时钟)来用的。
-
高速时钟:
- F103/F407
在F103/F407开发板上用的是8MHz
的晶振 - F429/F767
在F429/F767开发板上用的是25MHz
的晶振
- F103/F407
-
低速时钟:
低速时钟指的是外接比较稳定的32.768KHz
晶振产生的低速的时钟,主要是给RTC
(实时时钟)来用的。
2.4 BOOT启动模式选择
stm32
BOOT启动模式选择有两个引脚:BOOT0
和BOOT1
。BOOT0
和BOOT1
联合决定了stm32
启动模式。
2.5 下载电路(JTAG/SWD)
下载程序的方法有3种:
SWD
通信引脚为JTMS
和JTCK
,满足程序下载与调试
JTAG
有5个引脚需要相连,比较复杂,满足程序下载与调试
串口ISP
如果不需要程序调试,可以直接使用串口下载。
对于最小电路,一般留有SWD
接口(调试)和串口引脚