地猛星最小系统原理图认识
本文以 STM32F103C8T6(地猛星)最小系统板为例,按信号流向逐块拆解原理图:
USB 供电识别 → LDO 降压 → 复位电路 → BOOT 配置 → 去耦电容 → SWD 调试接口 → 晶振电路。
USB 供电识别与下载电路

供电识别(CC 电阻)
Type-C 接口供电不是"插上就有电"的,它有一套协商机制:
- R1、R2 分别把 CC1、CC2 引脚下拉到 GND,作用是告诉充电器:"我是受电设备(UFP / Device),请输出 5V。"
- 如果没有这两个下拉电阻,很多充电器(尤其是 PD 快充头)会认为线缆上没有设备,不输出 VBUS 的 5V,板子就没电。
补充:USB 接口的电源方向由 CC 引脚上的上下拉电阻决定——电阻下拉 = 设备(吸电),电阻上拉 = 主机(供电)。地猛星把 CC 固定下拉,只做纯受电设备。
数据识别(D+ 上拉电阻)
- R3 把 D+(DP,数据线正) 上拉到 3.3V,作用是告诉电脑:"我是全速(Full-Speed,12Mbps)USB 设备。"
- 下载/烧录时,USB 数据线(D+ / D-)就走这条通路和电脑通信。
- SBU1、SBU2 悬空不用——SBU 引脚是 Type-C 为 USB 3.0/DP 视频传输预留的附加信号,本板只做 USB 2.0,所以留空。
电源电路:5V → 3.3V 降压

板上的排针引出 5V / 3.3V / GND 电源引脚,可以给外部模块供电,也可以由外部电源直接供电给板子。
这一块是低压差线性稳压器(LDO),典型型号 AMS1117-3.3:
- 路径:Type-C 充电器输出 5V → Type-C 插座 → 板载 5V 电源网络 → LDO 的 VIN 引脚 → 输出稳定的 VOUT = 3.3V → 供给单片机。
电容的作用(输入侧、输出侧同理)
这些电容用于去耦(Decoupling):输入的 5V 直流并不"纯净",高频噪声像尖锐毛刺一样叠加在直流上。
利用电容通交流、阻直流的特性:
- 对高频毛刺(交流分量):电容并联的总容抗 Xc = 1/(2πfC) 非常小,近似短路,毛刺直接走电容这条低阻抗路径进入 GND,被"滤掉";
- 对稳定的直流:电容近似断路,5V 原样进入 VIN,3.3V 原样送给单片机。
为什么并两个电容?不同容值的电容自谐振频率不同,一大一小搭配(如 10μF 电解 + 100nF 陶瓷)能覆盖更宽的噪声频段,宽频滤波效果更好。
复位电路

上电自动复位
电容两端电压不能突变:I = C·ΔU/Δt,上电瞬间 Δt → 0,电容充电电流最大而电压还来不及建立(ΔU ≈ 0),所以 NRST 引脚被拉到低电平,芯片上电自动复位一次。
随后 3.3V 通过上拉电阻给电容慢慢充电,电压按 RC 时间常数指数上升,约 1ms 后 NRST 达到高电平,芯片退出复位状态,开始运行程序。
手动复位(按键)
- 按下按键:NRST 被直接短接到 GND,电容里的电荷瞬间释放清零,不管直流还是毛刺全部走按键这条短路路径,NRST 强制为低 → 芯片复位;
- 松开按键:电容重新充电,电压慢慢恢复,约 1ms 后 NRST 变高,芯片重新跑起来。
按键抖动滤波
不按键时,NRST 上接收的是纯净直流 + 毛刺:直流进芯片,毛刺被电容旁路到地。按键本身产生的机械抖动(电平反复弹跳)也会被电容的积分特性平滑掉,避免复位信号出现毛刺。
BOOT 模式选择

BOOT0 引脚通过跳线帽/拨码开关选择接 0(GND)还是接 1(3.3V),决定芯片从哪里启动:
| BOOT0 | 启动来源 | 用途 |
|---|---|---|
| 0(接地) | 从用户 Flash 启动 | 正常运行程序(默认) |
| 1(接 3.3V) | 从系统存储器启动 | 进入串口 ISP 下载模式(用 USART1 烧录) |
注意:BOOT1 引脚在这类板子上通常悬空或不接出,只用 BOOT0 就够了。
3.3V 去耦电容网络

每一个 3.3V 电源引脚旁边都有一个 100nF 去耦电容,紧贴芯片引脚放置:
- 作用:就近给芯片提供瞬态电流,滤除电源线上的高频噪声;
- 并联的电容越多,总容抗越小,对高频噪声的旁路效果越强。
软件工程师的视角:去耦电容是硬件对"电源完整性"的保证,和软件里"电源稳定"的假设对应——如果去耦不足,程序可能莫名复位或 ADC 采样抖动。
SWD 调试/下载接口

这一排是给调试器(如 ST-Link / DAP-Link) 供电和通信的接口,负责下载程序、设置断点、读写寄存器,全靠它:
- SWCLK(串行时钟):调试器输出的时钟信号;
- SWDIO(双向数据):数据和指令的收发都走这根线,双向传输。
左边的去耦电容同样是通交流、阻直流:防止调试时电源线上的干扰进入调试器,交流毛刺全部被旁路到 GND,直流保持不变。
晶振电路(时钟源)

板上有两套晶振:
- 高速外部晶振 HSE(8MHz):经芯片内部 PLL 倍频输出 72MHz 系统时钟(STM32F103 最大主频),CPU 跑多快全靠它——它是主系统时钟,给 CPU 跑程序用;
- 低速外部晶振 LSE(32.768kHz):专供 RTC 实时时钟使用,2^15 次分频恰好 1Hz,适合走时。
起振原理
晶振本身只是一块石英晶体,不会自己输出信号。单片机芯片内部 OSC_IN / OSC_OUT 引脚上自带一个反相放大器:
- 芯片内部放大器输出一点微小的扰动电压;
- 外部晶振只对自己的固有频率发生共振(压电效应),共振后在两端来回震荡;
- 震荡信号再送回放大器输入端,形成正反馈,不断放大,最终持续输出固定频率的时钟信号。
所以,晶振必须和芯片内部的放大器(加上负载电容)配合才能起振,单独一颗晶振只是一块石英片。
负载电容的作用
晶体旁边的两个电容是负载电容,用于:
- 配合晶体组成谐振回路,微调频率并稳定振荡(晶体标称频率就是在指定负载电容下标定的);
- 滤除高次谐波,让输出更纯净。
关于波形:晶体两端本身是正弦波(交变信号),由 MCU 内部电路整形后才是数字电路用的方波时钟。电容的作用是让振荡频率更精准、波形更干净,而不是"把正弦波变成方波"。
小结
把整张原理图串起来看:Type-C 进 5V → LDO 出 3.3V → 复位电路保证上电时序 → BOOT 决定启动方式 → 晶振提供心跳 → 去耦电容保证电源干净 → SWD 接口让你能下载和调试。这七部分合在一起,就是一块能跑起来的"最小系统"。

