一、为什么两层板不够用了?
当你给STM32F103系统板加上USB转串口(CH340E,480Mbps)、SPI Flash(W25Q128,50MHz+)或CAN收发器(1Mbps)后,两层板的局限性立刻暴露:
-
电源回路电感大:3.3V走线细长,瞬态电流导致电压塌陷
地平面不连续:跳线、过孔分割GND,回流路径迂回
串扰严重:SPI CLK与MOSI平行布线3cm,信号边沿畸变
辐射超标:30MHz~300MHz频段包络超标6dB
四层板不是"高级"选项,而是高速信号的基础保障。成本增加约30%,但调试时间减少70%。
二、四层板层叠精细设计
1. 层叠参数计算
选用立创EDA标准四层板工艺:
-
层厚结构(从上至下):
Top Layer:1oz铜,信号 + 器件
Prepreg:2116玻纤,0.1mm,εr=4.3
GND Plane:1oz铜,完整参考地
Core:FR-4芯板,1.0mm,εr=4.5
PWR Plane:1oz铜,电源分割
Prepreg:2116玻纤,0.1mm
Bottom Layer:1oz铜,辅助信号
总厚度:1.6mm(标准工艺,成本最优)
2. 阻抗控制目标
-
USB差分(D+/D-):90Ω±10%,耦合带状线
SPI单端信号:50Ω±15%,微带线(表层)或带状线(内层)
CAN差分:120Ω±10%,终端匹配电阻内置TJA1050
SWD调试:50Ω单端,非关键,但建议控制
3. 线宽计算(立创阻抗计算器)
-
表层微带线50Ω:线宽0.28mm(11mil),离地平面高度0.1mm
内层带状线50Ω:线宽0.18mm(7mil),对称参考上下平面
表层差分90Ω:线宽0.2mm,间距0.15mm,耦合系数0.25
务必用板厂提供的阻抗计算器复核!不同板厂的介电常数和铜厚有差异,立创、捷配、华秋的参数各不相同。
三、高速信号仿真:从理论到工具
1. SPI总线信号完整性分析
STM32F103 SPI1最高18MHz,但W25Q128支持80MHz+,实际布线按50MHz设计:
-
信号组:SCK(时钟)、MOSI(主机出)、MISO(主机入)、NSS(片选)
拓扑:点对点,SCK和MOSI为关键信号
边沿速率:约2ns(STM32 GPIO典型值)
波长:λ = c / (f × √εr) ≈ 300 / (50M × 2.1) ≈ 2.86m
临界长度:λ/10 ≈ 286mm(远大于板尺寸,但反射仍需关注)
2. 串扰仿真设置(HyperLynx / SI9000)
-
仿真场景:SCK与MOSI平行布线,间距0.2mm,长度5cm
aggressor(攻击线):SCK,摆幅3.3V,频率10MHz
victim(受害线):MOSI,静态高电平
耦合类型:容性耦合为主(表层微带线)
仿真结果:
-
近端串扰(NEXT):峰值电压0.45V(13.6%),超出噪声容限(0.4V)
远端串扰(FEXT):峰值电压0.12V,可接受
整改措施:间距增大至0.4mm(3W原则),或中间插入地线
整改后:NEXT降至0.15V(4.5%),满足要求
3. 地弹噪声(Ground Bounce)仿真
-
场景:8个GPIO同时翻转,驱动LED,回流电流涌入GND引脚
问题:LQFP-48的GND引脚(Pin8、Pin23、Pin35、Pin47)通过键合线到die
仿真:同时翻转时,GND平面出现20mV噪声脉冲
影响:ADC采样精度下降(12bit ADC,1LSB=0.8mV,20mV=25LSB!)
整改方案:
-
ADC输入添加RC滤波:1kΩ + 0.1μF,截止频率1.6kHz
GPIO翻转速率限制:软件配置低速模式(2MHz)
独立AGND区域:Pin17(VREF+)、Pin16(VSSA)单独铺铜,单点接数字地
四、电源完整性(PI)实战分析
1. 电源分配网络(PDN)阻抗分析[/h]
目标:3.3V PDN在DC到100MHz范围内阻抗<0.5Ω
-
低频段(DC~1kHz):AMS1117-3.3输出阻抗,约0.1Ω
中频段(1kHz~1MHz):大容量电解电容(100μF)主导,ESR约0.5Ω
高频段(1MHz~100MHz):陶瓷电容阵列主导,需多级配置
[i]2. 去耦电容选型矩阵
-
10μF/0805 × 2:AMS1117输入/输出,覆盖10kHz~1MHz
1μF/0603 × 4:MCU四组VDD,覆盖1MHz~10MHz
100nF/0402 × 16:每个电源引脚一个,覆盖10MHz~100MHz
10nF/0402 × 8:晶振、复位等敏感电路,覆盖100MHz+
0402电容的自谐振频率(SRF)约100MHz,正好覆盖STM32时钟谐波。0603电容SRF约50MHz,0805约20MHz,必须混合使用。
3. 平面谐振仿真
-
工具:Ansys SIwave / Cadence Sigrity
模型:50mm×50mm四层板,GND-PWR间距1.0mm
问题:在180MHz出现谐振峰,阻抗飙升至2Ω
原因:平面尺寸λ/4 ≈ 417mm(εr=4.5),但边缘反射形成驻波
整改:四角添加220pF电容,短接GND-PWR,阻尼谐振
效果:谐振峰压降至0.8Ω,满足目标
五、EMC预兼容测试与整改
1. 测试环境搭建
-
设备:频谱分析仪(RSA306B)+ 近场探头(H场/E场)
环境:实验室桌面,无屏蔽室(预兼容测试)
被测板:STM32F103四层板,运行LED闪烁+SPI通信程序
2. 原始测试结果[/h]
-
30MHz~100MHz:包络超标4~6dB,峰值在48MHz(SPI SCK 8MHz的6次谐波)
100MHz~300MHz:包络超标3dB,峰值在144MHz(晶振18MHz的8次谐波)
辐射源定位:H场探头靠近SPI排针和晶振区域时信号最强
[i]3. 整改措施逐一实施[/h]
<strong>措施1:SPI信号优化(效果:-8dB)</strong>
-
SCK串联22Ω电阻,减缓边沿速率(tr从2ns延长至5ns)
MOSI/MISO各串联22Ω电阻
SPI排针添加RC端接:100Ω + 47pF到GND(可选,牺牲速度换EMC)
SCK与MOSI间距从0.2mm增至0.5mm,中间布地线
<strong>措施2:晶振区域屏蔽(效果:-5dB)</strong>
-
晶振下方GND平面完整,无其他信号穿越
晶振外壳接地(金属壳HC-49S)
添加π型滤波:3.3V → 铁氧体磁珠(600Ω@100MHz)→ 局部3V3_ANalog
晶振走线包地:两侧各一条GND走线,间距0.2mm,每5mm打过孔
<strong>措施3:电源输入滤波(效果:-3dB)</strong>
-
USB 5V输入添加共模电感(ACM2012-900-2P,90Ω@100MHz)
5V与3.3V之间添加铁氧体磁珠(MMZ2012R601,600Ω@100MHz)
板边添加屏蔽罩卡扣位,必要时加金属罩
<strong>措施4:I/O端口滤波(效果:-4dB)</strong>
-
所有排针GPIO串联100Ω电阻 + 47pF到GND(RC滤波,截止频率33MHz)
保留USART1接口不加滤波(需通信),但缩短走线至2cm以内
LED驱动线串联470Ω已有滤波作用,无需额外处理
[i]4. 整改后复测结果[/h]
-
全频段包络低于Class B限线3dB以上
48MHz峰值消失,144MHz峰值降至噪声底
总整改成本:增加8个电阻、4个电容、1个磁珠,BOM成本增加0.8元
六、关键电路Layout实例详解
[i]1. SPI Flash区域(W25Q128,SOIC-8)[/h]
-
摆放:靠近MCU右侧,NSS→PA4、SCK→PA5、MISO→PA6、MOSI→PA7
扇出:SOIC-8焊盘直接表层走线,无需过孔
SCK走线:顶层,0.28mm宽,包地处理,长度15mm
MOSI/MISO:与SCK间距0.5mm,长度匹配误差<2mm
去耦:VCC引脚(Pin8)100nF电容,距离<3mm
[i]2. USB转串口区域(CH340E,MSOP-10)[/h]
-
摆放:板边靠近Type-C接口,D+/D-差分走线最短
差分对:从CH340E Pin4/5到Type-C CC脚,长度25mm,等长误差<0.5mm
阻抗:表层微带线,0.2mm宽+0.15mm间距,90Ω
ESD保护:USBLC6-2SC6靠近Type-C接口,走线先过ESD再到CH340E
退耦:Pin1(VCC)10μF+100nF并联,Pin3(V3)0.1μF退耦电容
[i]3. CAN收发器区域(TJA1050,SOIC-8,可选扩展)[/h]
-
摆放:板边独立区域,与数字电路隔离
终端电阻:120Ω,位于CANH/CANL末端,靠近连接器
共模电感:可选,用于抑制共模噪声
隔离:数字地(GND)与CAN地(CGND)通过0Ω电阻单点连接,或直接用磁珠
七、仿真与实测数据对比
[i]1. SPI眼图对比[/h]
-
条件:SCK 8MHz,示波器带宽200MHz,采样率1GSa/s
两层板:眼高1.8V,抖动±15ns,眼图闭合风险
四层板(整改前):眼高2.4V,抖动±8ns,边缘振铃
四层板(整改后):眼高2.9V,抖动±3ns,眼图张开良好
[i]2. 电源噪声对比[/h]
-
测试点:MCU VDD_1引脚,示波器AC耦合,20MHz带宽限制
两层板:纹波120mVpp,含多个高频尖峰
四层板(无去耦优化):纹波45mVpp
四层板(完整去耦矩阵):纹波12mVpp,满足±3%要求(3.3V±0.1V)
[i]3. 辐射发射对比(近场探头)[/h]
-
测试距离:探头距板面10mm
两层板@48MHz:-35dBm
四层板整改前@48MHz:-42dBm
四层板整改后@48MHz:-58dBm(低于噪声底)
八、设计检查清单(Checklist)
[i]1. 原理图检查
-
电源引脚全部连接,无遗漏VDD/VSS
晶振负载电容计算正确,规格书CL匹配
复位RC参数满足tRST>100μs(STM32要求)
BOOT0/BOOT1配置符合下载方式
所有接口ESD保护器件选型正确
2. PCB Layout检查
-
阻抗线宽已按板厂工艺计算并标注
差分对等长误差<5%(高速信号<2%)
晶振下方无走线,地层完整
去耦电容距离电源引脚<5mm
锐角走线已全部改为45°或圆弧
丝印不覆盖焊盘,字符高度≥0.8mm
3. 生产文件检查
-
Gerber文件用CAM350打开,无报错
钻孔文件孔径与封装一致,无重叠孔
BOM中所有物料有明确品牌/型号,无NRND(不推荐用于新设计)
坐标文件与装配图方向一致
九、低成本优化:两层板的极限操作
如果成本极度敏感,必须两层板,以下技巧可缓解问题:
-
大面积铺铜:顶层和底层全部铺GND铜,通过大量过孔互联
跳线最小化:底层只走GND,所有信号走顶层,避免分割地平面
星型电源:3.3V从AMS1117放射状引出,避免菊花链
关键信号包地:SPI SCK两侧各一条GND走线,每10mm打过孔
磁珠隔离:数字电源与模拟电源用磁珠分开,单点接地
两层板做USB 480Mbps或SPI 50MHz是"挑战物理极限",建议仅用于低速场景(SPI<10MHz、USART<115200bps)。
十、开源与迭代建议
-
版本管理:V1.0两层板验证功能 → V1.1四层板优化SI/PI → V1.2添加EMC整改
开源平台:立创EDA广场、GitHub、OSHWHub
测试报告:记录每次改版的眼图、纹波、辐射数据,形成知识库
社区反馈:收集用户在实际环境中的干扰案例,持续优化
结语
信号完整性和EMC不是"玄学",而是可量化、可仿真、可整改的工程问题。STM32F103虽然是一颗"慢速"MCU(72MHz),但其谐波和外围高速接口(USB、SPI)仍需要认真对待。
记住三个核心原则:完整的参考地平面、短而直的电源回路、受控的信号边沿速率。掌握这三点,你已经超越了80%的硬件工程师。
友情链接
立创四层板工艺参数
Keysight频谱分析仪应用指南