大家好,我是老张。
上篇文章讲了走线宽度怎么选,今天聊一个让很多新手翻车的Layout细节:晶振。
晶振电路看起来太简单了——一颗无源晶振加两颗电容,总共三个元件,随便摆一下连上线不就行了?但晶振是整块板子上最敏感的高频小信号电路之一。Layout差一点,轻则频率偏移串口乱码,重则根本不起振,MCU罢工。
今天这篇文章,我用正确Layout和错误Layout的对比截图,把晶振Layout的四条核心规范逐一拆清楚。文末附一张可打印的无源晶振Layout检查清单。
目录
一、为什么晶振Layout这么讲究?
二、规范一:负载电容紧贴晶振,对称布置
正确做法
错误做法及后果
为什么负载电容要紧贴?
三、规范二:晶振下方禁止走信号线
正确做法
错误做法
为什么下方不能走线?
四、规范三:晶振周围用地线环绕(包地)
正确做法
包地的物理原理
注意:包地不能影响起振条件
五、规范四:晶振走线等长且包地,避免过孔
正确做法
不对称走线的后果
六、额外注意:晶振选型和探头测量
晶振选型
示波器探头的陷阱
七、实测对比:好Layout与差Layout
八、翻车实录:晶振下方走线导致的“灵异复位”
九、无源晶振Layout检查清单
十、本篇总结
一、为什么晶振Layout这么讲究?
晶振电路本质上是一个高阻抗、低功耗的振荡回路。无源晶振配合MCU内部的皮尔斯振荡器工作,晶振两端对地的负载电容和芯片内部的反相放大器共同构成振荡回路。
这个电路有三个特点让它对Layout特别敏感:
第一,信号幅度极小。晶振引脚的振荡幅度通常只有几百mV到1V左右,而且是正弦波。相比MCU GPIO动辄3.3V的方波,晶振信号弱得多,容易被干扰。
第二,阻抗很高。皮尔斯振荡器的输入输出阻抗都很高,对噪声耦合非常敏感。一点点外部电磁场耦合进来,就会引起频率抖动。
第三,频率是系统时钟的源头。晶振的频率误差会传导到所有依赖系统时钟的外设——串口波特率、定时器、USB、CAN,一个出问题全部受影响。
Layout的三个核心目标是:最小化寄生电容、最小化噪声耦合、最大化振荡稳定性。
二、规范一:负载电容紧贴晶振,对称布置
正确做法
两颗负载电容分别紧贴晶振的两个引脚,对称摆放。电容的接地焊盘直接打过孔到地平面,过孔紧贴焊盘。
晶振本身紧靠MCU的OSC_IN和OSC_OUT引脚。从晶振焊盘到MCU引脚的走线越短越好,最好控制在10mm以内,理想状态5mm以下。
错误做法及后果
错误一:电容离晶振太远。电容和晶振之间的走线增加了寄生电感,等效于改变了负载电容的容值。负载电容不准,晶振的实际振荡频率就会偏离标称值。
错误二:两颗电容不对称摆放。OSC_IN和OSC_OUT两端的负载条件不一致,可能导致振荡波形不对称,甚至起振困难。
错误三:电容的接地脚走了一根细长线到远处的过孔。接地走线的寄生电感在高频下阻抗不小,相当于在电容对地回路里串了一个小电感,影响滤波和负载效果。正确做法是电容的接地焊盘直接打孔到地平面,路径最短。
为什么负载电容要紧贴?
负载电容的值通常在几pF到几十pF之间。晶振的负载电容CL典型值在12.5pF到20pF之间,而PCB走线的寄生电容大约每厘米0.5~1pF。如果电容离晶振太远,走线本身的寄生电容就已经和负载电容在同一数量级了,实际等效容值严重偏离设计值。
实例计算:晶振标称CL=18pF,PCB寄生电容估算Cs=4pF,按公式C=2×(CL-Cs)=2×(18-4)=28pF,选27pF或30pF。如果Layout不佳引入额外2pF寄生,等效CL就变成了18±2pF,频率误差可能达几十到上百ppm。对串口通信来说,超过2%~3%的频率偏差就会导致乱码,USB和CAN要求更高——0.25%以内。你Layout时的那一点点“随意”,可能就是通信不稳定的根源。
三、规范二:晶振下方禁止走信号线
正确做法
晶振正下方以及周围的一圈区域,禁止走任何信号线。这一区域的地平面保持完整,不做任何切割。如果晶振是金属壳封装,外壳焊盘直接接地,金属壳本身就能形成屏蔽。
错误做法
很多新手为了节省空间,在晶振下面穿信号线。或者是晶振放在顶层,底层正下方走了SPI或UART的数据线。这是Layout里的大忌。
为什么下方不能走线?
晶振工作时,两个引脚上都有高频正弦波信号。这个信号会通过电场耦合到下方的走线上,造成两个后果:
第一,晶振信号串扰到其他信号线上。如果下方走的是模拟信号线,晶振的高频噪声直接叠加在微小信号上,信噪比严重恶化。如果下方是数字信号线,串扰可能导致逻辑误触发,而软硬件联调时这看起来像是“不明原因的随机故障”。
第二,外部信号反向干扰晶振。如果下方是高速数字信号,信号边沿的电磁场会耦合回晶振回路,导致振荡频率抖动或相位噪声增大,串口通信时偶尔乱码、MCU内部PLL失锁等。这种问题极难复现和定位。
四、规范三:晶振周围用地线环绕(包地)
正确做法
在晶振和电容的周围,用一条地线环绕一圈(Guard Ring),并且多打几个过孔到地平面。这条地环在顶层形成局部屏蔽罩,吸收和隔离外部电磁干扰。地环必须两端或多点通过过孔接地平面,不能只连一端悬空——只连一端的“地尾巴”本身就是一个辐射天线。
包地的物理原理
高频信号的两根走线之间,通过寄生电容耦合噪声。如果在两根线之间插入一根接地的走线,电场耦合的大部分能量被地线吸收,到达敏感信号的能量大幅减少。包地就是用铜皮在晶振周围造一圈“隔离墙”。
注意:包地不能影响起振条件
包地走线不能离晶振引脚太近。如果地线距离晶振引脚太近(比如小于0.3mm),地线和引脚之间的寄生电容会增加,等效于给晶振两端额外并联了负载电容,导致实际振荡频率偏低。包地走线离晶振引脚保持0.5mm以上的间距,如果晶振是低频32.768kHz型号,间距还要更大一些,因为低频晶振的驱动电平更弱,对额外容性负载更敏感。
五、规范四:晶振走线等长且包地,避免过孔
正确做法
晶振两个引脚到MCU的OSC_IN和OSC_OUT两根走线尽量等长、对称。不要在这两根线上打过孔——如果必须换层,两根线都要同步换,不能一根过孔一根不过。走线宽度统一用8~10mil,不要太粗(增加寄生电容),也不要太细(增加寄生电感)。
不对称走线的后果
两根走线长度不一致,两端寄生参数不对称,振荡器两端负载失衡。轻则波形失真,重则起振困难或频率不稳。走线上打孔会引入寄生电感,同样破坏对称性。
六、额外注意:晶振选型和探头测量
晶振选型
嵌入式常用的无源晶振封装有HC-49S(大圆柱)、HC-49SMD(贴片大封装)、5032(5×3.2mm)、3225(3.2×2.5mm)、2520等。封装越小,寄生参数越小,Layout也越容易做好。如果是电池供电的低功耗产品,优先选3225或2520封装的晶振,匹配电容也选小封装(0402或0603)的陶瓷电容。
示波器探头的陷阱
用示波器测晶振引脚时,一定要用x10探头,最好配合接地弹簧针。x1探头的输入电容通常在几十到上百pF,直接并联到晶振引脚上,可能让本来正常振荡的晶振停振,或者让本来停振的晶振意外起振,误判故障。x10探头的输入电容约10pF左右,对晶振的负载影响小得多,但仍需注意探头接上后频率会有微小偏移。
实用判断技巧:测OSC_OUT端(输出端),如果波形正常(峰峰值在VDD的50%~80%左右),说明电路已经起振。OSC_IN端(输入端)的幅度通常比OSC_OUT小,这是因为皮尔斯振荡器输入侧阻抗高,探头的负载效应更明显。如果OSC_OUT有波形而OSC_IN波形异常,先怀疑探头影响,而不是电路问题。
七、实测对比:好Layout与差Layout
以下是一组实测数据,来自同一款MCU、同一颗8MHz晶振、同样的负载电容,区别只有Layout:
| 指标 | 好Layout | 差Layout |
|---|---|---|
| 起振时间 | 1.2ms | 3.8ms |
| OSC_OUT峰峰值 | 2.4V | 1.6V |
| 频率偏差@25℃ | +3ppm | +28ppm |
| 通过10kV静电测试 | 通过 | 偶尔复位 |
| SPI通信20MHz | 无误码 | 每万帧约3个误码 |
差Layout的问题:电容离晶振8mm,晶振下方走了两根GPIO信号线,没有包地。每一条都违反了上面说的规范。
八、翻车实录:晶振下方走线导致的“灵异复位”
几年前老张画过一块手持设备,CPU是STM32F103,8MHz无源晶振。Layout时为了省空间,在晶振下方的第三层走了一根ADC的模拟信号线。
样板回来以后,所有功能正常。但做静电测试时发现,空气放电8kV打到板子旁边的金属壳上,MCU偶尔复位。查代码没发现问题,查复位引脚也没毛刺,查电源也没跌落。最后用近场探头扫描,发现晶振区域有强辐射,下方的ADC走线在静电冲击瞬间耦合了高频干扰,干扰通过芯片内部路径传导到复位逻辑,造成复位。
改版时把那根ADC走线移走,晶振下方保持完整地平面,静电复位问题彻底消失。
教训:晶振下方的禁区不是“建议”,是“铁律”。
九、无源晶振Layout检查清单
晶振是否紧靠MCU的OSC_IN和OSC_OUT引脚,走线小于10mm?
两颗负载电容是否紧贴晶振引脚,对称摆放?
电容接地焊盘是否直接打孔到地平面,路径最短?
晶振下方是否没有任何信号线穿过?
晶振周围是否用地线环绕(包地),且地环多点接地面?
两根OSC走线是否尽量等长、对称、无过孔?
晶振是否为金属壳封装且外壳接地?
晶振外壳接地焊盘是否只从一侧引出,避免环形接地回路?
十、本篇总结
晶振Layout是PCB设计里投入最少、回报最高的优化项之一——只需要注意摆放位置和走线细节,就能换来通信稳定性、起振可靠性和抗干扰能力的全面提升。
四条铁律再背一遍:
负载电容紧贴晶振,对称布置:最短走线,直接打孔到地平面
晶振下方禁止走信号线:既是保护晶振,也是保护其他信号
周围用地线环绕包地:吸收外部干扰,隔离晶振辐射
OSC走线等长对称,避免过孔:保证两端负载一致,确保起振条件
测晶振用x10探头加接地弹簧针,OSC_OUT有正常波形就说明起振了。
下篇预告:《覆铜的正确姿势:地平面完整性+孤岛清理+缝合过孔》——我会讲清楚信号回流路径、地平面割断的后果,以及缝合过孔的间距计算方法。
有用的话,收藏一下。下次画板子布局时,翻出检查清单逐条对照。这个专栏是PCB设计的工具手册,每篇解决一个具体问题,关注老张,评论区说说你被晶振坑过什么,老张帮你分析。