一、项目定位与芯片选型


STM32F103C8T6是意法半导体(ST)经典的中低端MCU,基于ARM Cortex-M3内核,性价比极高,适合学习和小型项目。
核心参数:

  • 内核:ARM Cortex-M3,72MHz主频
    Flash:64KB,SRAM:20KB
    封装:LQFP-48,0.5mm pitch,7×7mm
    供电:2.0V~3.6V,典型3.3V,内置上电复位(POR)
    GPIO:37个可用,支持5V容忍输入
    外设:2×ADC(12bit)、3×USART、2×SPI、2×I2C、1×CAN、USB FS

设计目标:制作一块可独立运行、支持SWD下载、带基本外设接口的最小系统板,尺寸控制在50mm×50mm以内,两层板实现(成本敏感),预留扩展接口。

二、电源树规划:3.3V稳压方案


1. 输入电源选择

  • 主输入:USB Type-C 5V(兼供电和串口通信)
    备用输入:2.54mm排针,支持5V~12V宽压输入
    核心输出:3.3V/500mA,供MCU及外设

2. LDO选型与电路设计
选用AMS1117-3.3或XC6206P332MR:

  • AMS1117-3.3:1A输出,压差1.3V,SOT-223封装,成本低
    输入电容:10μF电解 + 0.1μF陶瓷,靠近输入引脚
    输出电容:10μF钽电容或陶瓷(ESR需满足稳定性要求)
    散热:SOT-223 tab焊盘大面积铺铜,多打过孔到地层散热

电源树拓扑:

  • USB 5V → 肖特基二极管(防反接,SS14)→ AMS1117-3.3 → 3.3V总线
    3.3V总线分支:
    MCU VDD/VSS(多对电源引脚,每对独立去耦)
    晶振电路供电
    复位电路上拉
    LED指示灯限流电阻
    排针扩展接口

STM32F103多组VDD/VSS必须全部连接!VDD_1(Pin1)、VDD_2(Pin24)、VDD_3(Pin36)、VDD_4(Pin48),每组配100nF+10μF去耦。

三、晶振电路设计:高速与低速双晶振


1. 高速外部晶振(HSE)8MHz

  • 晶振选型:HC-49S或3225贴片,8MHz,20pF负载电容
    匹配电容:C1=C2=22pF(根据晶振规格书CL计算:CL=C1×C2/(C1+C2)+Cstray)
    布局:晶振紧贴MCU Pin5(OSC_IN)和Pin6(OSC_OUT)
    走线:差分对称,长度相等,远离电源线和高速信号
    包地:晶振下方地层挖空(Keepout),避免寄生电容

2. 低速外部晶振(LSE)32.768kHz

  • 功能:RTC实时时钟,低功耗时基
    晶振选型:3215贴片,12.5pF负载电容
    匹配电容:C3=C4=12pF
    布局:靠近Pin3(OSC32_IN)和Pin4(OSC32_OUT),独立包地

晶振Layout禁忌:

  • 晶振走线禁止穿越其他信号层
    晶振外壳接地,减少EMI辐射
    负载电容接地回路最短,单点接MCU地

四、复位与启动电路


1. 复位电路(NRST,Pin7)

  • 上拉电阻:10kΩ接3.3V,确保默认高电平
    复位按键:轻触开关并联0.1μF电容,硬件消抖
    RC延时:R=10kΩ,C=0.1μF,上电延时约1ms,满足复位时序
    保护二极管:可选BAT54S,防止静电击穿NRST引脚

2. 启动模式选择(BOOT0/BOOT1)

  • BOOT0(Pin44):接10k下拉电阻到地(默认Flash启动)
    BOOT1(Pin20):通过内部配置,通常接地
    ISP下载:BOOT0接高电平(3.3V),上电进入系统存储器(Serial Bootloader)
    设计预留:BOOT0接跳线帽或拨码开关,方便切换启动模式

五、下载调试接口:SWD最小化设计


1. SWD接口定义(2×5P,1.27mm间距)

  • Pin1:VCC(3.3V,目标板供电检测)
    Pin2:SWDIO(数据,Pin34)
    Pin3:GND
    Pin4:SWCLK(时钟,Pin37)
    Pin5:GND
    Pin6:SWO(串行线输出,可选,Pin38)
    Pin7:KEY(防呆,悬空或接地)
    Pin8:NC
    Pin9:GND
    Pin10:RESET(复位控制)

设计要点:

  • SWDIO/SWCLK串联22Ω电阻,抑制信号反射
    走线长度<5cm,避免过长引入干扰
    接口添加ESD保护(USBLC6-2SC6),防止热插拔损坏MCU
    预留串口下载:USART1_TX(Pin30/PA9)、USART1_RX(Pin31/PA10)接排针

六、外设接口与扩展设计


1. 基础外设

  • 电源指示灯:3.3V → 1kΩ → 红色LED → 地
    用户LED:PC13(Pin2)→ 470Ω → 绿色LED → 地(STM32F103C8T6经典配置)
    用户按键:PA0(Pin10)→ 按键 → 地,内部上拉使能

2. 扩展排针(2.54mm间距,便于杜邦线连接)

  • 左侧排针:PA0~PA7、PB0~PB7(16个GPIO)
    右侧排针:PA8~PA15、PB8~PB15(16个GPIO)
    顶部排针:3.3V、5V、GND多组,ADC参考电压VREF+(Pin17)

3. 通信接口预留

  • USART1:PA9/PA10,默认串口,接USB转TTL模块
    I2C1:PB6/PB7,可接OLED或传感器
    SPI1:PA5/PA6/PA7/PA4(SCK/MISO/MOSI/NSS),接W25Q128 Flash

七、四层板层叠与布线策略


虽然两层板可降低成本,但四层板(信号-地-电源-信号)能显著改善电源完整性和EMC性能,推荐四层板设计。

1. 层叠结构

  • Top Layer:信号 + 元器件摆放
    GND Plane:完整接地平面,所有信号参考地
    PWR Plane:3.3V电源分割,5V输入局部区域
    Bottom Layer:信号 + 部分电源走线

2. 关键信号布线优先级

  • P0:晶振(OSC_IN/OUT)→ 最短对称,包地处理
    P1:复位(NRST)→ 远离电源线,避免串扰
    P2:SWD(SWDIO/SWCLK)→ 等长,22Ω串联电阻
    P3:USB/串口 → 差分或单端,阻抗控制(单端50Ω)
    P4:电源 → 粗线(1mm/1A),星型拓扑
    P5:普通GPIO → 最后布线,避免交叉

3. 电源分割与去耦

  • 3.3V电源平面覆盖MCU下方区域,通过过孔向顶层供电
    每组VDD/VSS对应一个过孔阵列(2×2或3×3),降低阻抗
    去耦电容布局:100nF陶瓷电容紧贴电源引脚,10μF电解稍远但同一网络
    AMS1117输出端:10μF电容靠近输出引脚,反馈回路最短

八、LQFP-48封装设计与扇出


1. 焊盘设计

  • 焊盘尺寸:0.3mm×1.5mm(比引脚宽0.05mm,长0.3mm)
    阻焊开窗:比焊盘大0.1mm,防止绿油覆盖导致焊接不良
    钢网开口:比焊盘小10%,厚度0.12mm,防止锡膏过多连锡

2. 扇出策略(Fanout)

  • 四角引脚:直接顶层走线引出
    边缘引脚:打过孔到内层或底层走线
    中间引脚(如Pin25~Pin36):采用"狗骨型"扇出,先向内打过孔,再横向走线
    GND引脚:直接打过孔到地平面,多个GND引脚共享过孔阵列
    VDD引脚:打过孔到电源平面,搭配去耦电容

LQFP-48 pitch 0.5mm,走线线宽/间距最小4mil,普通工艺即可生产。扇出过孔推荐0.3mm钻孔/0.6mm焊盘(10mil/24mil)。

九、DFM优化与可制造性检查


1. 丝印设计

  • 芯片第一脚标识:丝印框缺角或圆点标记Pin1
    极性器件:电解电容、LED标注正负极
    接口标识:SWD、USB、USART丝印清晰
    版本信息:V1.0、日期、设计者二维码

2. 拼板与工艺边

  • 单板尺寸:50mm×50mm,V-CUT拼板2×2(100mm×100mm)
    工艺边:上下各5mm,添加4个定位孔(3mm非金属化孔)
    光学定位点(Fiducial):对角放置,1mm焊盘+3mm阻焊开窗

3. 生产文件输出清单

  • Gerber:Top/Bottom Copper, Soldermask, Silkscreen, Solderpaste
    钻孔:PTH(镀通孔)和NPTH(非镀通孔)分开
    坐标文件:CSV格式,包含位号、X、Y、角度、层
    BOM:品牌、型号、封装、数量、替代料
    装配图:PDF格式,标注极性和特殊安装要求

十、调试与验证流程



  • 上电前:万用表检查3.3V对地短路,阻值>1kΩ
    上电测试:示波器测量3.3V纹波,应<50mVpp
    晶振起振:示波器探头×10档测OSC_OUT,应有8MHz正弦波
    SWD连接:ST-Link Utility识别芯片ID,确认通信正常
    程序烧录:烧录LED闪烁程序,验证GPIO和时钟配置
    功能扩展:依次测试USART、I2C、SPI、ADC外设

十一、常见设计错误与规避



  • 错误1:NRST只接上拉电阻,无按键 → 无法手动复位,必须添加按键
    错误2:BOOT0直接接地,无预留 → 无法ISP下载,建议接跳线帽
    错误3:晶振下方走线 → 信号耦合导致停振,必须挖空地层
    错误4:VDD去耦电容距离>5mm → 高频去耦失效,应紧贴引脚
    错误5:USB 5V直连3.3V引脚 → 烧毁MCU,必须经LDO降压
    错误6:SWD线过长(>10cm) → 下载不稳定,建议控制在5cm内

十二、进阶扩展:从最小系统到功能板


在最小系统基础上,可扩展以下模块:

  • USB转串口:CH340E芯片,Type-C接口,一键下载电路
    EEPROM存储:AT24C02(I2C)或W25Q64(SPI Flash)
    OLED显示:0.96寸I2C接口,SSD1306驱动
    传感器接口:DHT11温湿度、MPU6050六轴姿态
    电机驱动:L298N或DRV8833,PWM控制
    CAN收发器:TJA1050,工业通信扩展

结语


STM32F103最小系统板是嵌入式入门的最佳练手项目。通过本项目,你能掌握MCU电源设计、晶振布局、高速信号布线、LQFP封装扇出等核心技能。建议先打样2层板验证功能,再优化为4层板提升性能。
设计文件(原理图+PCB)建议开源到GitHub或立创EDA广场,与社区交流改进。记住:好的硬件设计不是一次成功的,而是在调试中不断优化出来的。

友情链接
STM32F103官方数据手册
立创开源硬件平台