从零设计STM32最小系统板:转压电路、LDO与DC-DC选型及AD画板实战 竞培营进行到第八讲终于从“看电路、写代码”过渡到了“自己画板子”的阶段。这一讲的内容非常关键转压介绍、最小系统板、AD 软件的使用。很多同学在调车时遇到过“板子供电不稳定”“主控板坏了只能买新的”“原理图看不明白”这类问题根本原因往往就是没有把电源设计、最小系统、PCB 工具这三块基础打牢。本文把这讲内容整理成一篇完整笔记从概念、原理到 AD 实操和投板检查清单一次性讲透车队的电控新人和想入门嵌入式硬件设计的同学都可以直接对照学习。1. 转压、最小系统板与 AD 软件的关系1.1 电控开发里最基础的三件事电控组的日常工作可以归纳为三个环节供电把动力电池的高电压转换为控制电路需要的稳定低压主控让 MCU微控制器正常跑起来也就是最小系统板卡设计把供电电路、主控电路、外设接口画成可生产的 PCB交给工厂打样。这三个环节分别对应本讲三个主题转压电路负责供电最小系统板负责让 STM32 正常工作AD 软件负责把前面两部分的电路变成实际板子。三者是层层递进的关系——先有电压转换再搭建最小系统最后用 PCB 设计软件把它们整合到同一块板上。1.2 不同基础的同学怎么读这篇文章如果你完全没有接触过硬件设计建议从第 2 章的转压概念读起先把 LDO、DC-DC 这些名词搞清楚如果你已经有单片机基础、想自己画板子可以重点看第 3 章最小系统板的电路构成和第 4 章 AD 操作流程如果已经画过简单板子可以直接跳到第 5 章的综合实战和第 6 章的排错清单。读完本文你会掌握转压电路的选型思路、STM32F103C8T6 最小系统板的标准电路构成、用 AD 完成原理图和 PCB 设计的基本流程以及投板前必须检查哪些项目。2. 转压电路电控系统的“血压调节器”2.1 什么是转压为什么电控系统离不开它“转压”是电控圈的常用说法标准术语叫电压转换Voltage Conversion。机器人的动力来源通常是电池比如 12V 锂电池包而板子上不同器件的供电电压各不相同单片机 STM32 需要 3.3V部分传感器、显示屏、舵机可能需要 5V电机驱动模块可能直接使用 12V 或更高电压。如果把 12V 直接接到 STM32 上芯片瞬间烧毁。所以必须通过转压电路将输入电压降低并稳定到目标电压同时提供足够的电流。转压电路设计得好不好直接决定了整块板子的稳定性和寿命。2.2 LDO 与 DC-DC 的区别转压电路主要有两类方案LDO低压差线性稳压器和DC-DC 开关电源。它们的原理和适用场景完全不同。LDO 通过调整管分压来实现降压输入电流约等于输出电流多余的功率以热量形式散发。它的特点是纹波小、电路简单、成本低但效率受输入输出电压差影响很大。例如 5V 转 3.3V 时理论上最高效率约 3.3 / 5 66%如果是 12V 转 3.3V效率会低到 27% 左右热量非常大根本扛不住。DC-DC 降压Buck电路通过高频开关管和电感储能来转换电压输入功率约等于输出功率多余的能量不会变成热量因此效率通常可以达到 80%~95%。但它外围电路更复杂输出纹波也比 LDO 大。对比项LDODC-DCBuck工作原理线性调整管调压高频开关 电感储能效率低约 Vout/Vin高通常 80% 以上纹波小较大依赖滤波设计外围器件简单只需输入输出电容复杂需要电感、二极管、反馈电阻成本低较高典型场景5V/3.3V 之间小压差降压大压差降压、大电流场景实际项目中常常把两者级联使用动力电池的大压差降压交给 DC-DC靠近 MCU 的小压差转换交给 LDO兼顾效率与输出质量。2.3 常用转压芯片选型参考下面列出机器人电控中最常见的几种转压芯片都是经过大量项目验证的器件适合初学者作为首选芯片型号类型输入范围输出最大电流适用场景AMS1117-3.3LDO4.5V~12V固定 3.3V1A5V 转 3.3V 给 MCULM2596Buck4.5V~40V可调3A12V 转 5VMP1584Buck4.5V~28V可调3A锂电池包降压TPS5430Buck5.5V~36V可调3A高输入电压场景SY8303 系列Buck宽压输入可调按型号选择板载高密度电源注意AMS1117 虽然标称最大 1A但实际输出电流受散热条件限制在小封装下长期跑 0.5A 以上就需要关注温升。选用 DC-DC 时输出电流要留出至少 1.5~2 倍余量避免电机启动瞬间的浪涌电流把电压拉垮。2.4 转压电路设计要点无论用 LDO 还是 DC-DC有四个设计要点直接决定电路是否可靠第一输入输出电容必须靠近芯片引脚。电容的作用是储能和滤波如果离芯片太远引线电感会削弱滤波效果。LDO 典型接法是输入端放 10uF 钽电容或电解电容并联 100nF 陶瓷电容输出端同样放 10uF 和 100nF。第二注意散热焊盘。很多 LDO 芯片底部有大面积散热焊盘原理图里如果不画PCB 上就会缺少散热铜皮芯片容易过热。要仔细看数据手册的 PCB 布局建议。第三DC-DC 的电感要选对。电感值、饱和电流、DCR直流电阻都会影响效率和纹波。初学者最容易犯的错是随便拿一个小电感代替导致芯片发烫甚至打嗝保护。第四区分功率地和小信号地。DC-DC 开关节点上的电流是脉冲状的如果和 MCU 的数字地走在一起纹波就会耦合进逻辑电路造成 ADC 采样不准、通信偶发错误。通常做法是功率地单独走线与数字地单点汇合。3. STM32F103C8T6 最小系统板3.1 什么是最小系统板最小系统板就是让 MCU 能够正常工作的最少电路集合。STM32F103C8T6 是电控组最常见的入门主控Cortex-M3 内核主频最高 72MHz64KB Flash20KB SRAMLQFP48 封装拥有几十个 GPIO、3 个 USART、2 个 SPI、2 个 I2C、USB 和 CAN性价比非常高。所谓“最小系统”就是不接任何外设只保证这些条件供电正常时钟正常复位正常启动模式正确可以下载程序。只要这五条满足MCU 就能运行。其余传感器、电机、通信模块都从引脚延伸出去。3.2 电源电路给芯片一个干净的 3.3VSTM32F103C8T6 的工作电压范围是 2.0V~3.6V典型值是 3.3V。最小系统板上常见的供电链路是USB 或外部排针提供 5VAMS1117-3.3 把 5V 转为 3.3V3.3V 供给 MCU、晶振、复位和 SWD 接口每路 VDD 引脚就近放置 100nF 去耦电容。去耦电容的作用是给芯片引脚提供一个低阻抗的瞬态电流来源。数字电路翻转时电流变化很快如果电源线本身有电感电压就会跌落去耦电容就是在最短距离内补充能量。很多同学焊完板子发现 MCU 偶尔死机、重启排查后发现是去耦电容漏焊或放的太远。3.3 时钟电路STM32F103 需要外部高速晶振提供精确时钟信号。最小系统板上一般放一个 8MHz 晶振接在 MCU 的 OSC_IN 和 OSC_OUT 引脚两个引脚各通过一个 10~22pF 负载电容接地电容具体值需要参考晶振数据手册的负载电容参数。晶振电路有几个容易踩的坑晶振和电容要尽量靠近 MCU 引脚走线短而直晶振下方不要走数字信号线避免干扰晶振附近用地线包围包地能显著降低噪声耦合。另外如果项目需要 RTC 实时时钟还需要在 PC14、PC15 引脚接 32.768kHz 低速晶振。普通最小系统板可以先不接用不到 RTC 时完全不影响。3.4 复位与启动模式STM32F103 的复位引脚 NRST 是低电平有效。最小系统板的标准复位电路是NRST 通过 10kΩ 电阻上拉到 3.3VNRST 对地并联一个 100nF 电容按键一端接 NRST一端接地按下时拉低复位。启动模式通过 BOOT0 和 BOOT1 引脚决定。STM32F103 三种启动方式如下BOOT0BOOT1启动位置0任意主 Flash正常运行模式10系统存储器进入 Bootloader11SRAM 启动调试用最小系统板默认下拉 BOOT0 和 BOOT110kΩ 到地即从主 Flash 启动。如果要用串口 ISP 下载程序把 BOOT0 拉高再复位即可所以部分开发板会把 BOOT0 用跳线帽引出。3.5 SWD 下载调试电路STM32F103C8T6 支持 SWDSerial Wire Debug下载只需要 4 根线SWDIO、SWCLK、GND、3.3V。最小系统板上留一个 4Pin 或 5Pin 的 2.54mm 排针接上 ST-Link 就能下载程序。如果需要调试器复位目标板还可以把 NRST 引出来。SWD 相比 JTAG 最大的优点是占用引脚少、连线少非常适合板载调试接口。注意 SWDIO 和 SWCLK 走线不要太长ST-Link 的连接线也尽量短否则高速下载时可能出现“连接不上”“No target connected”的报错。3.6 最小系统板原理图网络清单综合以上几个模块一张最小的原理图至少包含以下网络和器件网络名连接器件作用注意事项5VUSB VBUS / 外部排针输入电源靠近输入端放 100uF 和 100nF3.3VAMS1117-3.3 输出主供电每路 VDD 放 100nFGND公共地参考地底层铺铜功率地与数字地单点汇合VDDMCU 所有电源引脚芯片供电引脚就近去耦NRST复位按键 上拉电阻复位控制10kΩ 上拉 100nF 到地BOOT010kΩ 下拉电阻启动模式正常模式保持低电平SWDIO / SWCLKST-Link 接口程序下载排针引出到板边4. AD 软件的使用4.1 Altium Designer 能干什么AD 软件Altium Designer是目前硬件设计最常用的 EDA 工具之一用来完成原理图绘制、PCB 布局布线、元件库管理、输出生产文件等全流程设计。它的主要工作流是在原理图里画出电路逻辑连接编译检查排除电气错误将原理图导入 PCB在 PCB 里摆放元件、布线、覆铜做 DRC 检查输出 Gerber 文件交给工厂。AD 的学习曲线并不陡峭核心操作就集中在“原理图编辑器”和“PCB 编辑器”两个窗口。只要把常用快捷键和工程结构搞清楚完全可以快速上手。4.2 安装与环境准备AD 软件需要 Windows 64 位操作系统建议内存至少 8GB、磁盘剩余空间 20GB 以上独立显卡在复杂 PCB 3D 预览时体验更好。安装包从 Altium 官网或学校统一授权的软件渠道获取安装过程按向导完成首次启动会要求登录 Altium 账号并关联许可证教育版或企业版授权方式略有差异按提示操作即可。安装完成后的工程文件结构是固定的一个完整的 PCB 工程包含以下几种文件文件类型扩展名作用PCB 工程.PrjPcb管理整个项目的文件集合原理图.SchDoc电路逻辑图PCB.PcbDoc物理板卡设计原理图库.SchLib自定义原理图符号PCB 封装库.PcbLib自定义元件封装实际项目中元件库是最重要的资产。芯片厂商、连接器厂商通常提供官方封装库下载后直接使用。自己画封装时一定要对照数据手册的推荐焊盘尺寸不要凭感觉。4.3 原理图绘制核心操作原理图绘制的核心流程可以概括为四步放元件、连导线、加网络标签、编译检查。放元件在 Libraries 面板中搜索元件并放置到图纸或者从自己的工程库中拖出。放置过程中按 Tab 键可以修改序号、参数值等属性。电源符号和地符号建议用专门的 Power Port 放置方便全局识别。连导线用 Place Wire 工具快捷键 PW连接引脚。连线时要注意导线交叉不连接连接处必须出现绿色“节点”才算电气连接。依赖自动连接的图纸在校验时会大量报错新手应养成随手连线的习惯。加网络标签不是所有线路都能直接拉线相连尤其当信号要跨页传输时命名一致的网络标签Net Label就表示它们是同一个网络。MCU 的引脚定义尽量用网络标签比如 PA9 通过标签 TX1 连接到 USB 串口芯片可读性会好很多。编译检查工程菜单下执行 Compile PCB ProjectMessages 面板会列出错误。常见错误包括引脚悬空、输出引脚短路、网络只有单一连接、重复位号等。编译必须干净通过才能进入 PCB 阶段。4.4 PCB 布局布线核心操作原理图完成后执行 Design → Update PCB Document把元件和网络导入到空的 PCB。此时所有元件会堆在一起接下来要做的是设置板框在 Mechanical Layer 绘制板子外形板框决定了工厂裁板范围模块化布局按功能划分电源模块、MCU 模块、接口模块分别摆好不要在板子上把元件从一侧排到另一侧手工布线先布关键信号晶振、SWD、通信线再布电源最后布普通信号电源线与地线加宽3.3V 走 0.5mm 以上5V 走 1mm 以上GND 优先铺铜处理覆铜在顶层和底层放置 GND 网络的多边形覆铜减小地回路阻抗DRCTools → Design Rule Check检查间距、线宽、短路、未连网络等项。常用快捷键整理如下快捷键功能V D适应整张图纸P W放置导线P C放置元件P G放置覆铜Ctrl M测量距离Shift S单层显示切换Shift Space切换走线拐角模式数字键盘 *布线时换层并放置过孔Tab放置过程中修改属性5. 综合实战一块带转压电路的最小系统板5.1 设计目标与整体结构现在我们把本讲内容串起来设计一块完整可用的最小系统板。需求如下12V 直流电源输入输出 3.3V 给 STM32F103C8T6板载 8MHz 晶振、复位按键、BOOT 启动配置预留 SWD 下载接口预留 2 颗 LED一颗做电源指示一颗做用户灯把所有 GPIO 引出到 2.54mm 排针。整体供电结构如下12V 外部电源 │ ▼ [DC-DC 降压板] 12V → 5V │ ▼ [AMS1117-3.3] 5V → 3.3V │ ▼ STM32F103C8T6这里把 12V 转 5V 用现成的 DC-DC 模块或另一颗 Buck 芯片完成5V 转 3.3V 用 AMS1117-3.3 板载焊接目的是先掌握最典型、最稳妥的电路。5.2 在 AD 中建立工程第一步新建工程File → New → Project → PCB Project在 Projects 面板右键工程名Save Project As 保存为MinSystem_C8T6.PrjPcb右键工程Add New to Project → Schematic保存为Power.SchDoc再次新建一张原理图保存为MCU.SchDoc。两张原理图通过工程统一管理电源电路和 MCU 电路分开画再用网络标签连接结构清晰编译时也会自动识别跨页网络。5.3 绘制电源转压电路在Power.SchDoc中放置以下元件AMS1117-3.3输入电容100uF 电解 x1100nF 陶瓷 x1输出电容10uF 钽电容 x1100nF 陶瓷 x1电源 LED 限流电阻 1kΩLED 一只。连接关系12V 转 5V 的输出作为 AMS1117 的输入 VINVIN 对地并接 100uF 和 100nFVOUT 输出 3.3V对地并接 10uF 和 100nFLED 从 3.3V 经过 1kΩ 电阻到 LED 正极LED 负极接 GND作为电源指示灯。关键要点AMS1117 的输入电容必须在输入电压引入点就近放置输出电容也要贴近芯片的 VOUT 引脚。这个电路里不要忘记把 GND 引脚和散热焊盘正确连接。5.4 绘制最小系统电路在MCU.SchDoc中放置以下器件并按网络连接主控U1 STM32F103C8T6对照数据手册给每个 VDD 引脚、VDDA 引脚正确配置VDD 和 VDDA 都必须接 3.3VVDDA 建议单独加一个 1uF 滤波电容晶振Y1 8MHzY1 两端分别接 MCU 的 OSC_IN/OSC_OUT并各接一个 20pF 电容到地电容参数以实际晶振规格为准复位NRST 接 10kΩ 上拉到 3.3V、100nF 到地、按键到地BOOTBOOT0 和 BOOT1 各接 10kΩ 下拉到地SWD从 PA13、PA14 引出标签 SWDIO、SWCLK加上 3.3V、GND 组成 4Pin 排针用户 LED任意 GPIO 经过 1kΩ 电阻限流后驱动 LED例如 PB0。这张图完成后要把所有未使用的 GPIO 引出到排针比如从左到右按 PA、PB、PC 顺序排列方便后续跳线调试。5.5 编译检查与 PCB 布局布线两张原理图都画完后对整个工程执行编译。如果 Messages 面板无错误就执行 Design → Update PCB Document生成新 PCB 文件。PCB 布局建议如下顺序把 MCU 放在板中心晶振和去耦电容紧贴 MCU 周边AMS1117 电源电路放在板边靠近输入接口SWD 接口放在板边方便调试器插入GPIO 排针按端口分组分别放在板的四边。布线优先级为晶振走线 → SWD 信号 → 电源线 → 普通 GPIO。底层铺 GND 铜皮。最后运行 DRC确保没有短路、未连接网络、间距违规项。5.6 焊接与上电验证焊接顺序建议从矮到高先焊电阻电容再焊芯片最后焊排针和按键。AMS1117 的散热焊盘在焊接时容易虚焊需要保证锡充分流动。上电前必须用万用表做三件事打在通断档测量 3.3V 与 GND 是否短路如果短路检查 AMS1117 附近是否有连锡打在电压档输入 12V测 AMS1117 输出是否为 3.3V 左右测 NRST 是否为高电平约 3.3V如果被拉低说明复位电路有问题。一切正常后再接入 ST-Link尝试连接目标板。用 STM32CubeIDE 或 Keil 新建一个工程通过 CubeMX 配置 PB0 为输出编写点灯程序验证 MCU 是否能够运行while (1) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(200); }如果 LED 以 200ms 周期闪烁说明最小系统板工作正常整条链路电源 → 晶振 → 复位 → 下载 → 程序运行全部打通。6. 常见问题与排查思路在实际设计、焊接和调试过程中最容易遇到下面这些问题问题现象常见原因解决思路ST-Link 连接不上目标板SWD 接线错误 / 3.3V 没起来 / NRST 一直为低优先测量 3.3V 电压确认 SWDIO、SWCLK 引脚编号尝试按住复位键连接AMS1117 发烫严重输入输出压差太大 / 输出短路 / 输入电容没焊降低输入电压检查输出端短路必要时用 DC-DC 代替 LDO芯片可以下载但程序不运行BOOT0 被拉高 / 晶振不起振 / 复位电路异常确认 BOOT0 为低电平示波器或频率计测 8MHz 晶振检查 NRST 复位释放板上电压正常但 ADC 采样跳动大DC-DC 纹波大 / 地线不合理DC-DC 地单独走靠近电源输出加大电容用 LDO 给模拟部分单独供电编译原理图大量报错网络标签拼错 / 引脚没有连线 / 元件重叠逐个查看 Messages统一网络命名规范使用编译后的 Cross Probe 定位投板后 PCB 板框不对板框画在了别的层板框必须画在 Mechanical 1 层工厂以 Gerber 文件为准焊完板子上电没反应电源极性接反 / 芯片方向焊反上电前万用表备份测量检查芯片第一脚标记和电解电容极性排查问题有一个通用的顺序先电源、再时钟、后复位、最后下载。不要一上来就怀疑芯片坏掉绝大多数“芯片异常”其实是供电或复位问题。7. 最佳实践与工程建议除了把电路画对养成一套工程习惯更重要。原理图命名规范。位号按模块分配比如电源部分用 U 开头电阻用 R电容用 CLED 用 D排针用 J命名成 R_PWR_1、C_HSE_1 这种带功能前缀的方式在多人协作和后期维护时非常有用。建立自己的元件库。不要每次都从网上下载来历不明的库文件。把常用的 STM32 封装、AMS1117 封装、晶振封装、排针封装统一整理到自己的工程库中用数据手册逐项核对封装尺寸。现在也有 AI 辅助 EDA 的工具能加速封装生成和电路检查但前提是你自己知道原理否则无法判断 AI 给出的电路是否正确更不能未经审查就把 AI 生成的硬件方案直接拿去投板。版本管理与备份。原理图和 PCB 属于高度关联的文件每次修改都要同步。建议至少保留“V1.0 初版”“V1.1 修改”这样的版本标记投板前把工程文件整体压缩备份到网盘或 Git 仓库。板子打样回来如果发现问题要能用旧版本对比出差错是哪一次修改引入的。投板前检查清单。在生成 Gerber 文件之前逐项确认编译无错误所有网络都有连接DRC 检查绿色通过3.3V 与 GND 之间没有短路晶振电容参数与晶振匹配BOOT0、BOOT1 下电状态正确SWD 排针位置方便调试器插拔电源输入接口极性有明确标注板框尺寸与机械固定孔位置正确所有封装的丝印清晰、方向明确。生产环境与安全边界。在焊接、调试和给板卡上电时养成“先测量、后上电”的习惯。首次上电用万用表通断档确认电源网络没有短路需要修改供电或接线时先断开电源再操作涉及电池供电的场景在电源输入端预留保险丝或防反接二极管防止接线失误烧毁整块控制板。8. 总结与下一步学习路线这一讲的核心内容可以压缩成三句话转压电路决定板子的供电质量最小系统板决定 MCU 能不能稳定运行AD 软件决定你能不能把设计变成实物。三步走完你已经具备独立设计一块 STM32 主控板的能力接下来建议继续学习传感器接口电路设计、电机驱动电路H 桥、MOS 驱动、无线模块布局以及更复杂的电源完整性设计。对于竞培营的成员完成一块自画自焊自调的最小系统板是电控入门的第一个里程碑。不要怕画错、焊坏每一块废板子都是成本最低的经验来源。如果这篇文章对你有帮助可以先收藏备用画板子遇到问题时再翻出来对照检查。