SmartDesk V1 硬件落地实录:立创 EDA 画图、手动布线与 DRC 踩坑

一、前言:从想法走向实物

上一篇《从想法到实物》中,我列出了 SmartDesk V1 的需求清单:一个基于 STM32 的桌面中枢控制器,包含 EC11 编码器、OLED 屏幕和环境传感器。但“想法只是 10%,剩下 90% 都在原理图和 PCB 里”。

这一篇,我将完整复盘我是如何用立创 EDA​ 把草图变成可打样的板子。从电源模块的设计,到 MCU 最小系统的搭建,再到最终的 PCB 布局布线与 3D 预览。如果你也在学画板,这篇可以作为你的实战参考。

二、原理图设计:模块化拆解与选型确认

为了让电路清晰易维护,我将整个系统拆解为四个核心模块:电源模块、MCU 模块、外设模块、预留模块

1. 电源模块:Type-C 直供与 3.3V LDO

我选择了 Type-C 接口作为唯一供电入口,板载 AMS1117-3.3V 稳压芯片,确保外设和 MCU 的稳定工作。

  • 防倒灌设计:在 VBUS 路径上串联了一个肖特基二极管(D1),防止意外短路或反向供电烧毁 USB 口。

  • LDO 输入滤波:在 AMS1117 的输入端(VIN)并联了 10uF 和 104(0.1uF)电容,输出端(VOUT)同样并联 10uF 和 104 电容,保证电源纹波足够小。

  • 保险丝保护:USB 输入端串联了 1206 封装的 0.5A 保险丝(F1),提供过流保护。

2. MCU 模块:STM32F103C8T6 最小系统

主控选用经典的 STM32F103C8T6(U2)。

  • 时钟电路:采用了 8MHz 的外部高速晶振(X1),搭配 22pF 的起振电容(C5, C6),为 USB 通信和系统运行提供精准时钟。

  • 复位电路:使用了标准的 RC 复位电路(R1, C1)配合复位按键(SW1),确保系统上电稳定复位。

  • 下载接口:引出了 SWD 接口(PA13, PA14),方便后续用 ST-Link 调试。

  • USB 引脚:PA11 (USB_DM) 和 PA12 (USB_DP) 预留,用于后续移植 USB HID 协议模拟键盘/鼠标。

3. 外设模块:交互与传感器的桥梁

这一部分是 SmartDesk 的灵魂,负责处理所有的外部交互。

  • 编码器与按键:EC11 编码器(SW3)连接在 PA1(A相)和 PA2(B相),按下功能接在 PA0。独立按键 SW2 和 SW4 分别接在 PA3PC13

  • OLED 屏幕:0.96 寸 I2C 接口的 OLED(U3)连接在 PB6(SCL)和 PB7(SDA),并串联了 4.7K 的上拉电阻(R11, R12)。

  • 环境传感器:SHT30(U4)和 BH1750(U5)均通过 I2C 总线挂载,地址区分明确。为了方便后期维护,我在 I2C 信号线上加了 100nF 的滤波电容(C15, C16)。

  • 电源控制:为了配合下一篇的低功耗设计,我用了一个 P-MOS 管(Q1, SI2303)来控制外设的供电,通过 MCU 引脚控制通断。

4. 预留模块:为扩展留足空间

为了不让板子显得拥挤,我将未使用的引脚全部引出到了 1x8 的排针(H5-H8)上。这样既方便以后外接电机、风扇,也便于调试时飞线测量电压。

📌 一个小遗憾

我在设计电源模块时,一开始没考虑到 AMS1117 的压降问题。当输入电压是 5V,输出 3.3V 时,如果负载电流超过 200mA,LDO 会明显发热。虽然 SmartDesk V1 目前功耗不高,但如果未来我要接风扇或 LED 灯带,可能就得换 DC-DC 了。下次设计前,我会先算一下最大负载功耗。

三、PCB 设计:为什么我坚持手动布线

画完原理图,生成网表导入 PCB 后,面对密密麻麻的飞线,我果断放弃了自动布线。

1. 布局策略:核心优先,接口靠边

  • 核心区:STM32 芯片放在正中间,周围环绕晶振和去耦电容(C17, C18),保证最短回路。

  • 接口区:Type-C 接口放在左下角,编码器(SW3)放在右上角,这样手握旋钮时线材不会硌手。

  • 传感器区:SHT30 和 BH1750 放在板子边缘,方便靠近桌面环境采集数据。

2. USB 差分线处理:抗干扰是关键

虽然 STM32F103 做 USB 全速设备对阻抗要求没那么苛刻,但为了稳定性:

  • USB_DMUSB_DP两条线尽量等长、平行走线。

  • 周围包地处理,避免被高频信号干扰。

  • 走线避开晶振和开关电源的噪声源。

3. 电源与地平面:铺铜的艺术

  • 地平面:底层(Bottom Layer)大面积铺地,顶层(Top Layer)也尽量多打过孔连接,形成“地笼”,降低 EMI。

  • 电源线:3.3V 和 5V 电源线宽加粗至 20mil 以上,确保载流能力。

  • 散热考虑:AMS1117 下方多打过孔,把热量传导到底层铜皮,防止 LDO 在大电流下过热。
     

    📌 一个布局失误

    我把 OLED 屏幕放在了板子右下角,但实际组装时发现——旋钮和屏幕离得太近,手指旋转旋钮时容易碰到屏幕边框。虽然不影响功能,但手感不够优雅。下次我会提前用 cardboard 做个纸模模拟握持姿势。

    📌 另一个布线妥协

    为了节省空间,我把 USB 差分线走在了顶层,虽然包地了,但没有完全等长(误差约 0.3mm)。目前测试没问题,但理论上可能影响 USB 稳定性。下次我会用“差分对约束”功能强制等长。

四、DRC 与工厂规范:那些年我踩过的坑

在导出 Gerber 前,必须进行 DRC 检查。这里分享两个我差点翻车的点:

  1. 安全间距(Clearance)

    之前我用默认规则,线距设得太小(0.05mm),提交 JLCPCB 时被工厂驳回。这次我严格设置为 6mil,所有过孔也设为 0.4mm/0.8mm,完美通过。

  2. 丝印方向

    元件位号和极性标识(如二极管、电解电容)全部调整到统一方向,并且距离焊盘至少 0.2mm,防止焊接时丝印脱落。

五、3D 预览与打样:看到成品的那一刻

立创 EDA 的 3D 预览功能真的太香了!导入封装后,我看到了真实的板子效果。

从 3D 图可以看出:

  • Type-C 接口(USB1)位置合理,插拔顺畅。

  • EC11 编码器的沉孔尺寸精确,正好能嵌入金属旋钮。

  • 所有排针和按键的高度都经过计算,装进亚克力外壳时不会顶到盖子。

六、第一次上电:心跳时刻

收到板子后,我手工焊接了关键器件(STM32、AMS1117、Type-C)。

  • 上电前:先用万用表测了一下 Type-C 接口的 VBUS 对地阻值,确认没有短路。

  • 上电测试:接入 5V 电源,用万用表测得 AMS1117 输出端电压稳定在 3.3V

  • 连接 ST-Link:成功识别到 STM32 芯片,那一刻悬着的心终于放下了。

七、总结与下一篇预告

硬件落地是最枯燥但也最踏实的一步。看着原理图变成一块块真实的电路板,这种成就感无可替代。

在 SmartDesk V1 的硬件设计中,我学会了:

✅ 模块化思维画图

✅ 手动布线的精细把控

✅ DRC 规则的严格遵循

但这只是开始,真正的挑战在固件。​ 下一篇,我们将进入《SmartDesk V1 固件实战:Keil MDK + 标准库 + FreeRTOS 移植》,看看如何让这块板子真正“活”起来,实现旋转旋钮调节音量、读取温湿度等功能。

如果你对本文有任何疑问,或者想看某个模块的详细放大图,欢迎在评论区留言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值