自制 SoM(系统模块)

模块化方法
在本文中,解释了什么是 SoM(System-on-Module,系统模块),以及它在嵌入式设计中的作用。分享一款 SoM,并说明它如何在资源和时间有限的情况下,帮助解决一个持续性工程问题。
讨论主题
如何创建自己的 SoM?
为什么要自制 SoM?
在构建 SoM 时需要注意什么?
涉及技术: ESP32-C3-MINI-1-N4
提到的公司: Espressif Systems(乐鑫科技)
集成电路与 SoM 的理念
集成电路(IC)的发明极大地简化并加快了电路设计的过程。过去工程师需要从零开始设计子系统或电路功能,而现在只需购买相应的 IC 即可。例如:
集成了 MOSFET 和驱动器的 H 桥;
完整的 LED 驱动器;
降压稳压器系统。
然而,随着产品体积不断缩小、上市周期越来越短,设计师该如何跟上?一种可能的解决方案就是 SoM(系统模块)。它和 IC 的理念相似,但不同的是,IC 是通过半导体工艺把功能“缩小”封装,而 SoM 则是使用 离散元件 把复杂功能集成到一个小型 PCB 上。
这样,你只需要一次性解决复杂的电路细节,之后就可以反复复用该 SoM,而不用在每次新设计中重新布板。
Xilinx 对 SoM 的定义
“系统模块(SoM)在单一、可量产的印刷电路板(PCB)上,提供嵌入式处理系统的核心组件,包括处理器核心、通信接口和存储模块。”【1】
这是一个相当稳妥的定义。但我认为 SoM 不必局限于嵌入式处理系统,它也可以是模拟滤波器系统、电源系统等等。虽然嵌入式处理是最常见的应用场景,但 SoM 的潜力远不止于此。
为什么 SoM 比 IC 更强大?
IC 受到半导体工艺的限制,而 SoM 则可以使用市面上的任何元件(最好是小型封装),甚至可以在一个 SoM 中组合多个复杂 IC,从而实现更强大的系统功能。
SoM 的示例
Raspberry Pi Pico 与 STM32 Nucleo
无论制造商是否有意,它们都可作为 SoM 使用(见图 1 和图 2)。
图 1 Raspberry Pi Pico 开发板可以作为独立组件使用。它包含了 MCU 所需的全部嵌入式元件,因此本质上就是一个 SoM【2】。
图 2 STM32 Nucleo 开发板也能作为 SoM 使用。但它的可用性不如 Pico,因为它在 PCB 的正反两面都有元件【3】。
ESP32-C3-MINI-1-N4
这是一个更加典型的量产 SoM(见图 3 和图 4)。
图 3 ESP32-C3-MINI-1 模块,随时可用于下一个项目【4】。
图 4 ESP32-C3-MINI-1-N4 的框图。它和 Pico、Nucleo 一样,具备完整的运行环境,甚至还集成了天线【5】。
它的硬件封装统一,可移植、易于修改,且体积小,内部超过 20 个元件。乐鑫科技能大规模生产该模块,使其单价低于 2 美元。如果工程师从零设计相同功能,将会消耗更多 PCB 面积和时间。
BMR4640002/001 DC-DC 转换模块(Flex Power Modules)
这是一个小型的 DC-DC 转换器,可以输出高达 40A 电流(见图 5)。所有复杂的电源电路都已封装好,设计师只需直接使用即可。
图 5 一种基于 SoM 思想的 DC-DC 转换模块,电路难点一次性解决,并封装成可即插即用的形式【6】。

此外,还有无数类似的例子,比如条码扫描模块、RFID 模块等。
何时需要自制 SoM?
有时你在 DigiKey 或 Mouser 等渠道中找不到需要的子电路,可能是因为它太小众,或者你的设计独一无二。此时就需要自制 SoM。
创建 SoM 的步骤
参考现有 SoM 设计
我借鉴了 ESP32-S3-WROOM 模块的设计,它采用 半镀孔(castellated holes) 结构,使 SoM 能直接焊接到主板上(见图 6)。
图 6 PCB 半镀孔示例(非 ESP32-S3-WROOM),这种结构方便模块焊接到其他 PCB 上(来源:PCBWay.com)。
确定尺寸与封装
我参考了 ESP32-S3-WROOM 数据手册,提取了尺寸和封装信息(见图 7 和图 8)。

图 7 ESP32-S3-WROOM 的物理尺寸,有助于设计 SoM 的半镀孔大小与间距。
图 8 ESP32-S3-WROOM 的封装及 CAD 导出的 STEP 模型。

定义管脚抽象
为保证可移植性,我与固件工程师设计了新的 GPIO 命名规则(如 Pa2 表示可模拟/数字输入输出引脚,Pd3 表示数字引脚)。添加必要的外设
由于 I/O 数量不足,我们在 I2C 总线上增加了 I/O 扩展器,还加入了线性稳压器(5V 转 3.3V)、去耦电容、LED 和晶振。最终的 SoM 见图 9。
图 9 公司自制的 SoM,包含近 50 个元件,部分焊盘为未来预留功能。

测试与迭代
第一版 SoM 拿到手时看起来很完美,但存在多个问题:电源轨遗漏、I2C 丝印错误、I/O 扩展器中断脚连接错误、缺少一个 UART 通道等。经过修改后,模块性能良好。
我们还制作了 SoM 映射表(SoM Mapping Chart),用于对照 SoM 引脚名称、MCU 引脚、功能分配,方便调试与固件开发。
创建 SoM 的建议
SoM 可以极大地缩短上市周期,减少 PCB 重复设计,并简化代码移植。
但它并非万能方案:若产品空间极小、利润不足,SoM 可能并不合适。
设计时应尽量使用小封装(如 0402、QFN),保证高密度布线。
建议使用 0.8mm 厚度 PCB 与 ENIG 表面处理。
制作 SoM 映射表非常关键,能节省大量调试时间。
结论
SoM 并不只是大公司的专利,中小企业同样能通过自制 SoM 快速进入市场,降低供应链风险,避免重复设计 MCU 子电路。
图 10 公司自制 SoM 的框图。所有元件均选用通用器件,以便在未来项目中复用。








评论