工程实践导航

说明

  STM32F103Cx 最小系统的设计。文章内容主要包含:设计指南、器件选型、实际设计、制作测试、归纳总结等。

  STM32F103Cx 最小系统的设计原则是模块化,目的是方便验证、方便手动焊接、以及批量机器焊接、方便拆装更换,方便维修查找 PCB 的故障。相比于传统的最小系统设计,将传统的最小系统分化为两块板子,分别命名为最小系统核心板和最小系统底板,最小系统核心板,集成了最核心的部分,以及小型化、模块化,仅包含微控制器、晶振电路、控制器滤波电容电路、电源指示灯、全引脚板对板微型连接器;其中本来包含 LDO 电源电路,但是研究发现,对于不同的电源,LDO 的需求不同,无法找到通用合适的 LDO,尤其在电源容量紧张的场景,所以电源模块单独成模块设计,方便更换,但是最小系统核心板必须用独立的电源模块供电,即某电源模块给该核心板供电后,不能给其他模块使用。最小系统底板,也是必须配套的,和一般的底板有所不同,底板包含一些直插的器件和模块,主要是:核心板底座、USB接口、程序下载接口 JTGA、电源模块底座、2.54mm排插排母座、电源接线口等。最小系统底板提供对核心板核心功能的验证或使用:供电、下载程序、兼容洞洞板排针或排母等功能。即核心板和最小系统底板,以及电源模块构成市面上常见的最小系统。这样缺点当然是多了板对板连接器,尺寸和重量会些微增加,增加连接器等成本,但是用的都是手机电脑主板级别的连接器,尺寸和重量均很小。反而带了很多好处:1. 降低设计复杂度,小模块小模块的设计,比整板设计更容易。2. 缩短周期、提振信心。3. 方便焊接、维修。不用再重新做一整块板子,用哪个焊哪个,坏哪个修哪个。4. 降低成本,方便更换以及复用。5. 便于升级,可以重新设计某一个模块,以此增加它的性能。

最小系统核心板

设计指南和器件选型

  主要依据元器件的手册、网上资料和个人经验总结设计指南,依据设计指南,选择合适低价的元器件。

板对板连接器

  电流要求:

  1. 单片机最大电流为 150mA
  2. led 最大电流为 20mA

  所以连接器应该选择电流能力大于等于 0.3A的。

  1. 板对板连接器 SGD-05-M/F-020P-2X-G21 单个引脚的最大电流为 0.5A。同时 3mm 的高度是最低的,价格最便宜的,只在淘宝卖,嘉立创无,不可用其他连接器替代,但是客服提供图纸和 3D 模型。2024年4月23日,单个的价格为 1 元。

双晶振

  STM32微控制器通常外接两个晶振,分别是低速晶振(32.768 kHz)和高速晶振(通常为8 MHz)。这两个晶振的作用如下:

  1. 低速晶振(LSE):提供外部低速时钟,通常用于实时时钟(RTC)电路的时钟源,以及为低功耗模式下的计时提供服务。如果设计中不需要RTC功能,可以选择不焊接此晶振。低速晶振的启动时间比高速晶振短,但在校准之后的时钟频率精度相对较差。
  2. 高速晶振(HSE):提供外部高速时钟,用于生成更精确的系统时钟。这个时钟源对于需要高稳定度时钟的应用来说是非常重要的。高速晶振的频率通常为8 MHz,但可以根据产品需求选择其他频率,只需注意倍分频的设置。

结论:两个晶振都要

  晶振选型可参考本博客文章无源晶振详解

低速晶振选型

  设计无源晶振,手册第54页要求如下:

  1. CG 和 CL 选用高质量陶瓷电容,容值在 5pF-15pF。
  2. 晶振的选择上,频率为负载电容要小于等于 7pF,不要选择 12.5pF。
  3. 电路板典型的杂散电容值为:2-7pF,我们用 4pF 计算。

  晶振选型方案如下:

典型的,常见 MC-306、MC-405、MC-406 的这种 32.768 kHz 晶振不是不能选择,负载电容典型值为:12.5 pF,但是需要定制,常见为 6pF、7pF、9pF 和 12pF,所以要注意选择合适的负载电容值。尺寸还有更小的 MC-146、MC-146,以及更小的 FC-135、FC-145、FC-255。还有更小的 FC-12M,但是不是主流。

最终选择 FC-135 32.768KHz ±20ppm 7pF,因为在淘宝和嘉立创上常见,同时 AN2867 手册中也推荐了 FC-135。2024年4月23日价格为 0.5元,运费 2 元。

  电容计算得到典型值是 6pF,范围是 0 - 10 pF。选择精度高的:5%。预留一个电阻位,控制驱动电流,默认先焊接 0 Ω。

高速晶振选型

  8MHz,需要查看 AN2867 手册。具体设计还挺麻烦的,这里进行简化:

  1. Load capacitance 负载电容。(控制震荡频率)
    1. 这个晶振是工作晶振,不需要低功耗,手册对负载电容的大小无限制,这样 CG 和 CL 相比之前的低速晶振设计,容值就大一点,拉升频率能力更弱(期望和实际负载电容偏差时,频率变化越小)。
    2. 手册要求电容 CG 和 CL 容值在 5pF-25pF之间。
    3. 取杂散电容为 4pF,则匹配晶振的负载电容范围是 6.5-16.5 pF。
  2. Oscillator transconductance 振荡器跨导。(控制震荡稳定)
    1. 为了使振荡开始并达到稳定相位,振荡器必须提供足够的增益来补偿回路损耗并为振荡积累提供能量。
    2. 振荡回路临界晶体增益 \(g_{mcrit}\)\(g_{mcrit} = 4 \cdot ESR \cdot (2πF)^2 \cdot (C0 + CL)^2\)。ESR 值查看手册。
    3. 最大临界晶体跨导 \(g_m\) 由芯片 STM32 手册给出。
    4. 最后计算收益边际公式:\(gain_{margin} = g_m / g_{mcrit}\),设计要求确保该值大于 5。
    5. 暂不继续深入。暂不考虑本点要求。
  3. Drive level and external resistor calculation 驱动电平和外部电阻的计算
    1. 预留一个电阻位,控制驱动电流。焊接 0 Ω 电阻即可,具体计算暂不了解。
  4. Crystal pullabilty 晶体的波动性,也被称为晶体灵敏度
    1. 暂不考虑。
  5. PCB design guidelines PCB设计指南
    1. 离芯片近,具体是什么近呢?中间不要有其他元器件,即芯片-晶振电路-其他元器件。
    2. 电容对称
    3. 电容还是晶振更靠近芯片,无这种说法。
    4. 不能太多测试点
    5. 正面 GND 包裹晶振电路,并通过多过孔连接 PCB 背后的 GND。背后的 GND 要求完全覆盖晶振电路,且不连接总 GND,而是通过正面的包裹的 GND 线条一个端点连接总 GND。
    6. 强烈建议晶振电路 PCB 区域应用保形涂层。特别是石英下方,以防止可能导致启动问题的潮湿,灰尘,湿度和极端温度。
    7. 如果使用金属封装的晶体,请勿将其连接到振荡器地。
    8. 高速信号线离晶体管电路保留间距,如 30 mils。
  6. 焊接
    1. 谨慎焊接,焊接是一个敏感的过程,特别是对于低频晶体。
    2. 温度过高会损坏 ESR。

  晶振选型方案如下:

  1. 扬兴科技 YSX321SL 3225 8M 12PF 10PPM。价格最便宜,2024年4月23日单价0.5,无运费。
  2. 计算 CG 和 CL 容值电容为:16pF。

LED

  LED 没有什么电气的特殊要求。选择价格便宜的、有规格书的。 LED 注意额定电压和额定电流即可。XL-1608 系列电阻价格最便宜,在嘉立创上可购买。

型号 颜色 100+价格 1000+价格 链接 额定参数 3.3V限流电阻 5V限流电阻
XL-1608UWC-04 0.035 0.028 链接 5mA 2.6-3.0V 60-140Ω 400-400Ω
XL-1608SURC-04 0.029 0.023 链接 20mA 2.0-2.4V 65-133.3Ω 130-150Ω
XL-1608UYC-04 0.043 0.035 链接 20mA 1.9-2.3V 50-70Ω 135-155Ω
XL-1608UBC-04 0.024 0.019 链接 20mA 2.7-3.3V 0-30Ω 85-115Ω
XL-1608UGC-04 翠绿 0.027 0.022 链接 20mA 2.7-3.3V 0-30Ω 85-115Ω

2024年4月24日。其中 1608 代表封装尺寸,最后 04 或者 06 代表高度。C 前面的字母代表颜色。限流电阻计算的是理论值,电阻也是有额定最大功率的,在几十W到几百W之间,不同型号功率不一样。工作电流不用满额定值上运行,这样太亮了,一般可以是几 mA 的电流,所以电阻计算的在几百 Ω,常用默认选择最大 1KΩ 即可。另外考虑芯片 IO 引脚最大电流驱动力:25mA,电压 4v,所以用芯片控制 LED 的,也要用电源为 3.3V 的,不要用 5V 的驱动电压,以免LED损坏短路时,损坏芯片。电阻选择大于 200Ω,先默认 1 KΩ。

电源模块

  查阅手册:

  1. 单片机的最大工作电流为 150mA。
  2. 单片机电源电压范围为 2.4-3.6V,典型值为3.3V。
  3. 普通 I/O 接口输入电压范围为 0-5V,能充分兼容 5V 传感器。
  4. LED 最大电流为 20mA,按照 20mA 计算。

所以核心板按照负载 200mA电流计算。常见的电源电压为 5V 和 3.3V,输入和输出电压压差为 0 - 1.7V,开关稳压的稳压压差一般大于 2V,所以我们选择一款线性稳压 LDO,希望能在电源电压为 5V 和 3.3V时均能输出合适的电压供核心板工作,对于 LDO,我们的需求是:

  1. LDO 压降不能超过 3.3 - 2.4 = 0.9V。越小越好,越小效率越高。
  2. LDO 最大电流不能低于 300mA。
  3. 5V输入,3.3V输出的情况下,温升不能超过50℃。计算温升系数要低于 50 ÷ ((5-3.3)*0.2) = 147.06 ℃/W 左右。
  4. 满足以上前提下选择尺寸更小的 LDO 型号和封装。

这很难筛选,经常调查,LDO 的电流能力越大,对散热要求越高,尺寸越大,大一点常见的封装为 SOT-223-3,压降也随之增大,常见至少为 1.1V,无法适应 3.3V 的工作电压;LDO 尺寸越小,常见最小封装为 SOT-23-5,压降随之减小仅有几百 mV,但是电流能力大大降低,散热能力大大减弱,温升系数达到 200℃/W 以上,无法适应 5V 的工作电压,在该电压下发热将超标,甚至损坏电器。

虽然这个设计电源只供核心板使用,本想集成在核心板上,不得已单独执着电源模块。这样反而有好处:1. 适应不同的电源,不同的电源用不同的电源模块。2. 类似其他的核心板电源需求,也可以使用这种电源模块。

  1. 5V 电源
    1. AMS1117-3.3,满足要求,为 150 ℃/W。2024年4月24日且价格便宜为 10+:0.24/个 100+:0.21/个。压降典型值为 1.3V。
      1. 满足 3.8 - 5V电源的需求。
  2. 3.3V 电源
    1. 可以直连
      1. 2.5V - 3.5V 的电压可以直连
    2. ME6211C33M5G-N,最大压降为 260mV,满足设计要求,具体参考本博客文章基础元器件-LDO。2024年4月24日价格:10+:0.3 100+:0.25。

后面会分为两个电源模块进行设计,5V的可以用在最小系统底板上,3.3V的可以用在 1S 锂电 3.7V 电压电源的四旋翼上。

原理图

  查阅手册:

  1. STM32F103Cx 总共 48 个引脚,其中电源正极和电源负极总共 4 对,即 8 个引脚;晶振占用 4 个引脚;因此最少引脚数为 48-8-4+2=38个,两个2x10pin的板对板连接器即可。
  2. 除了 USB 以外全是低速信号线,PA11 和 PA12 固定作为 USB的引脚。
  3. 除了 BOOT0 还有 BOOT1。BOOT1 的引脚名为 PB2,PB2 固定作为 BOOT1 功能。
  4. 正好空了两个引脚,和 3.3V、GND 对应,防止板子插反方向,插反的话,核心板不工作,电源指示灯不亮。

PCB

  1. 准备好元器件手册
  2. 每个元器件都应该有 3D 模型

布局、走线设计思路:

  1. 查看芯片手册,了解各个引脚的功能。
    1. 引脚复用,多个引脚构成一组功能,应该连续走线,不要分开成两个底座走线
      1. 上下拆分较为合理分配:29-7一组,8-28一组。
    2. 区分高速信号线和低速信号线。优先走高速信号线,只有 USB 是高速信号线。
  2. 晶振电路设计,额外增加 GND 包裹,用来屏蔽干扰。
    1. 对于晶振走线等长,并没有很严格的要求,可以先更改网络名,跳过电阻,等长后在直线处替换电阻。

要求

  1. 打板过孔最小内径为 0.3mm,最小外径为 0.4mm。
  2. 电源防呆设计。
    1. 要么反插,插不进去。
    2. 要么正反插效果一样。
    3. 要么反差电源脚留空,无法工作。该板采用此设计。

设计过程:

  1. 布局
  2. 联通走线
  3. 调整布局、更改线序
  4. 联通走线
  5. 调整丝印
  6. 设置原点,设置板子外形,更改板子形状
  7. 标注尺寸

检查:

  1. 是否 100% 联通
  2. 走线是否规范
  3. 电源检查、GND检查
    1. 特别是线宽和过孔大小。
  4. 元器件模型高度检查
  5. 间距检查,方便焊接

额外工作

  1. 添加丝印,如 logo、二维码
  2. 添加测试点
    1. 电源正负极,加丝印
    2. 晶振输出(对于芯片是输入),加丝印

元器件 BOM

分类 描述 标号 封装 数量 供应商1 供应商2 价格 购买数量 支出
贴片电容 100nF (104) 10% 50V C1, C2, C3, C4 0603_C 4 嘉立创0.014 0.056 0 0
贴片电容 6pF (6R0) 0.25pF 50V C5, C6 0603_C 2 嘉立创0.017 0.034 0 0
贴片电容 16pF (160) 5% 50V C7, C8 0603_C 2 嘉立创0.017 0.034 0 0
发光二极管 红灯 0603 D1 0603_LED_S1 1 嘉立创0.035 淘宝0.02+3 0.035 100 5
板对板连接器 M 20p 2x10p 0.5mm 7.2-3.62-2.2mm 3mm 50V 0.5A 50mΩ -30-80℃ H1, H2 SGD-05-M-020P-22 2 淘宝1+0.88 2 8 8.88
贴片电阻 0Ω (0R0) ±1% R3, R4 0603_R 2 嘉立创0.0067 0.0134 0 0
贴片电阻 1KΩ (1001) ±1% R5 0603_R 1 嘉立创0.0063 0.0126 0 0
ARM STM32F103CBT6 U1 LQFP-48_19.6_393_58X11_SMD 1 嘉立创9.83 淘宝3.6 3.6 5 18
贴片晶振 32.768KHz ±20ppm 7pF Y1 SMD-3215_2P FC - 135 1 嘉立创1.56 淘宝0.5+2 0.5 10 7
贴片晶振 8MHZ 12PF 10PPM Y2 SMD-3225_4P 1 嘉立创0.88 淘宝0.5 0.5 10 5

总计:0.56 + 0.034 + 0.034 + 0.02 + 2 + 0.0134 + 0.0126 + 3.47 +0.5 +0.5 + 0 = 7 元。

其他颜色也得买,白、红、黄、蓝、绿,都买一百个:5 * 2 + 3 = 13。母座也得买,12个共12元。13 + 12 + 8.8 + 18 + 7 + 5 + 0 = 63.8 元。

打板:20 元。总计:83.8 元。2024年4月25日打板,并购买元器件。

检查入库

  元器件已经检查入库。

X32258MOB4SI 事物的引脚和手册以及参考图片引脚有出入:

解决方法:

  1. 直接焊接。先不管,直接焊接、有问题再拆焊。
    1. 浪费时间,先放着,没有急切的必要,也不是这件事儿卡着。
  2. 飞线。
    1. 翻转,订书钉法。翻转以后正好引脚对应得上。紧急情况下尝试。没必要尝试,浪费时间、可能短路、难操作、无意义。
    2. 飞线。麻烦、丑陋、浪费时间、无意义。
  3. 询问卖家。等消息。
  4. 在嘉立创买新的。有运费一起买。

PCB检查

  PCB外观没有问题。

焊接顺序

  3D 模型确定焊接顺序、实物确定焊接顺序:

U1、H1、H2、C1、C2、 C3、C4、Y2、Y1、R4、 C6、R3、C7、R5、C5、 D1、C8。

焊接方向:

U1:正面点对丝印点。 Y2:背面斜角对应丝印点。 D1:背面横杠远离丝印横杆。背面三角指向丝印横杠。

焊接问题

  1. 对于电烙铁手动焊接,所有焊点都应该是均匀的在焊盘和引脚之间有肉眼可见的焊锡,如同雪一样包裹引脚、覆盖焊盘,引脚和焊盘之间的连接处,不再阶梯,而是平滑,即焊接上了。否则应该重焊、补焊。

电源模块

AMS1117-3.3

这个要用 22uf 的钽电容,最小的钽电容 A 系列 就有 1.6 mm 高。连接器就用之前的。之前的更新了,出 10p的了。但是没有资料,给了参数:

10P A=4.7 B=2 C=4.1 D=3.1

ME6211C33M5G-N

最小系统底板

不同的 USB

不同的 JTGA