ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

无源晶振与有源晶振选型布局全解析:从负载电容到PCB设计避坑指南

无源晶振与有源晶振选型布局全解析:从负载电容到PCB设计避坑指南 晶振这东西说起来简单两个引脚一焊就完事但真到了板子跑不起来、时钟时好时坏、EMC测试超标的时候你才会发现当初选型和布局上偷的懒全都要加倍还回来。我做过不少带MCU、射频、高速接口的板子几乎每一版都能碰到晶振相关的幺蛾子——有的是起振慢有的是频偏大有的是旁边一根信号线走过去就彻底不工作了。这篇就围绕无源晶振和有源晶振这两大类把选型逻辑、布局细节、踩坑经验一次讲透适合正在画板子或者准备画板子的硬件工程师、PCB Layout工程师也适合刚入行想少走弯路的同学。1. 先把两类晶振的本质区别搞清楚很多人一上来就问我该用无源还是有源其实这个问题本身就问错了方向。正确的问法是我的负载需要什么样的时钟信号我的系统对成本、功耗、抖动、启动时间分别有多敏感。把需求理清楚选型答案自然就出来了。1.1 无源晶振到底是个什么东西无源晶振英文叫Crystal本质上就是一块石英晶体切片加上两个电极封装在金属壳里。它自己不会振荡必须借助外部电路——通常是芯片内部的振荡器加上外部的负载电容——才能产生时钟。你可以把它理解成一个谐振器它只负责在特定频率上表现出极低的阻抗至于怎么让它振起来那是芯片和外围电路的事。正因为如此无源晶振的成本极低几毛钱甚至几分钱就能拿到而且功耗可以做得很小非常适合电池供电的设备。但代价是它依赖芯片内部的振荡电路起振时间通常在毫秒级别频率精度受负载电容、温度、PCB寄生参数影响很大抖动性能也一般。1.2 有源晶振又是怎么回事有源晶振英文叫Oscillator内部集成了石英晶体和振荡电路有的还带温度补偿TCXO或者压控功能VCXO。你给它供电它就直接输出一个方波时钟信号不需要外部负载电容也不需要芯片内部振荡器配合。它的优势很直接输出稳定、抖动小、起振快微秒级甚至更快、频率精度高而且输出电平标准明确常见的有CMOS、LVDS、LVPECL等。缺点是成本高通常是无源的几倍到几十倍、功耗大、封装也更大而且需要额外的电源引脚和去耦。1.3 一张表看清选型分水岭对比维度无源晶振有源晶振成本极低较高功耗低较高起振时间毫秒级微秒级频率精度受负载电容影响大出厂即精确抖动一般优秀外围电路需要负载电容基本不需要封装小相对大适用场景普通MCU、低功耗设备射频、高速接口、精密测量这张表不是让你死记而是让你在选型时有个快速判断的锚点。实际项目中我通常是这样决策的如果主控是普通MCU跑个几十兆以内对时钟抖动没要求那就无源晶振省钱省事如果涉及USB高速、以太网、射频收发、ADC采样时钟那就老老实实上有源晶振别在这省那几块钱。2. 无源晶振选型负载电容不是随便填的无源晶振的选型最容易被忽视的就是负载电容这个参数。很多人看到芯片手册上写建议使用12pF负载电容的晶振就直接买一个标称12pF的晶振焊上去结果频率偏了几十ppm甚至上百ppm通信时不时丢包。2.1 负载电容的计算逻辑晶振标称的负载电容CL是指它被设计用来配合的外部电容值。实际电路中晶振两端各接一个电容到地这两个电容和PCB走线寄生电容、芯片引脚寄生电容一起构成了晶振看到的等效负载。计算公式是这样的CL (C1 * C2) / (C1 C2) Cstray其中C1和C2是两端的外部电容Cstray是寄生电容通常在3pF到5pF之间。如果C1C2C那么公式简化为CL C / 2 Cstray假设你选的晶振CL12pF估算Cstray4pF那么12 C / 2 4 C 16pF也就是说你应该选两个16pF的电容而不是12pF。这个计算过程很多人跳过直接凭感觉选结果就是频率对不准。2.2 负载电容选错会怎样负载电容偏大晶振频率会偏低负载电容偏小频率会偏高。这个偏移量在普通应用里可能只是几十ppm看起来无所谓但在需要精确计时或者射频通信的场景里几十ppm足以让系统工作异常。我遇到过一个案例一个带无线通信的板子晶振标称CL10pF工程师直接用了两个10pF电容结果实测频率偏了约40ppm通信距离明显缩短误码率上升。后来把电容换成两个12pF频率回到标称值附近问题解决。2.3 负性阻抗起振能力的隐藏指标除了负载电容还有一个参数叫负性阻抗Negative Resistance它衡量的是振荡电路能否稳定起振。如果负性阻抗不够晶振可能起振慢甚至在某些温度或电压条件下完全不振。测试方法不复杂在晶振回路里串一个可变电阻逐渐增大阻值直到晶振停振此时的阻值就是负性阻抗的临界值。一般要求这个值至少是晶振等效串联电阻ESR的5倍以上最好10倍才能保证可靠起振。很多低成本方案为了省电把驱动电流设得很小负性阻抗余量不足结果就是低温下起振困难。这个问题在消费类产品里特别常见因为成本压力大设计余量被压得很紧。3. 有源晶振选型输出类型和电源噪声是关键有源晶振的选型看起来比无源简单因为不需要算负载电容但实际上要考虑的东西更多输出电平标准、电源噪声抑制、抖动指标、封装尺寸、工作温度范围每一项都可能影响系统性能。3.1 输出电平标准怎么选有源晶振的输出类型常见的有CMOS、LVDS、LVPECL、HCSL等。选哪种取决于你的负载芯片支持什么输入。CMOS最常见适合大多数MCU、FPGA的普通时钟输入成本低但频率高了之后功耗和EMI都会上升。LVDS差分输出抗干扰能力强适合高速、长距离传输功耗适中。LVPECL速度更快抖动更低但功耗大通常需要端接电阻。HCSL主要用于PCIe等高速接口的参考时钟。如果你不确定选哪种先去看负载芯片的数据手册里面会明确写支持哪种输入类型。不要自己想当然否则可能出现电平不匹配、无法识别的问题。3.2 电源噪声对相位噪声的影响有源晶振内部有振荡电路对电源噪声非常敏感。电源上的纹波会直接调制到输出时钟上表现为相位噪声恶化进而影响射频系统的EVM、ADC的SNR等指标。所以有源晶振的电源去耦必须做好。通常建议在电源引脚旁边放一个0.1uF的陶瓷电容再并一个1uF或10uF的电容形成宽频去耦。如果对相位噪声要求很高还可以加一个LDO单独给晶振供电或者用RC滤波进一步抑制低频噪声。我做过一个射频板有源晶振和数字电路共用一路电源结果相位噪声在10kHz偏移处差了将近10dB后来给晶振单独加了一级LDO问题明显改善。这个经验告诉我有源晶振的电源不能省尤其是射频和精密测量场景。3.3 抖动指标怎么看有源晶振的抖动通常用相位抖动Phase Jitter或周期抖动Period Jitter来表示单位是ps或fs。对于高速串行接口比如PCIe、USB3.0参考时钟的抖动要求通常在1ps RMS以下选型时必须确认晶振的抖动指标满足协议要求。有些厂商会在手册里给出不同频偏范围内的相位噪声曲线你可以根据系统需求反推需要什么样的抖动性能。如果手册只给了一个笼统的抖动值那就要小心了可能是在特定条件下测的实际应用中未必达标。4. PCB布局晶振周围三毫米决定成败选型对了布局错了照样出问题。晶振的PCB布局有几个铁律违反了任何一条都可能让你在调试阶段痛不欲生。4.1 晶振尽量靠近芯片引脚无源晶振的两根走线要尽可能短最好控制在几毫米以内。走线越长寄生电容和寄生电感越大负载电容的计算就越不准而且容易引入噪声。有源晶振虽然不需要负载电容但输出走线也要短尤其是高频时钟走线长了会辐射EMI也会因为传输线效应导致信号质量下降。如果实在无法靠近就要考虑用差分输出或者加缓冲器。4.2 晶振下方禁止走线这是我最强调的一条晶振下方包括无源和有源绝对不要走任何信号线尤其是高速信号线和电源线。晶振本体是金属壳下方走线会和金属壳形成寄生电容影响频率稳定性同时高速信号线会耦合噪声到晶振上。如果板子层数紧张实在避不开那至少要在晶振下方铺一层完整的地并且保证地平面没有被分割。但即便如此也不如直接避开来得稳妥。4.3 负载电容的接地要干净无源晶振的两个负载电容接地端要直接连到干净的地平面上不要经过长长的走线再接地。接地路径上的寄生电感会和电容形成谐振影响振荡电路的稳定性。我见过一个板子负载电容的接地走线绕了半个板子才接到地结果晶振起振时间明显变长而且频率随温度漂移很大。后来把接地改短直接打过孔到地平面问题消失。4.4 有源晶振的电源去耦布局有源晶振的电源引脚旁边去耦电容要尽可能靠近引脚走线要短而粗。0.1uF电容的回路面积要小否则高频去耦效果大打折扣。如果用了LDO单独供电LDO的输出电容也要靠近LDO和晶振形成完整的去耦网络。不要为了布局美观把电容放得老远那样等于没放。4.5 晶振远离干扰源晶振要远离DC-DC电源、电感、继电器、电机驱动等强干扰源。如果板子上有这些器件晶振要放在对角位置或者至少保持足够的距离并在中间加屏蔽或地隔离。我做过一个带电机驱动的板子晶振离MOSFET驱动电路太近结果电机一转时钟就抖动MCU时不时复位。后来把晶振挪到板子另一侧问题解决。这个教训很深刻晶振是敏感器件不要把它放在热闹的区域。5. 实测中遇到的典型问题与排查思路理论和布局都说完了但实际调试中还是会遇到各种奇怪的问题。下面分享几个我亲身经历的案例以及排查思路希望能帮你少走弯路。5.1 起振慢或不振现象上电后MCU不工作示波器看晶振引脚没有波形或者波形幅度很小。排查步骤确认负载电容是否匹配先按公式重新计算。检查负性阻抗是否足够必要时减小串联电阻或增大驱动电流。检查晶振下方是否有走线尤其是高速信号线。检查负载电容接地是否干净。换一个批次的晶振试试排除器件本身问题。我遇到过一次晶振不起振查了半天发现是负载电容用了两个22pF而晶振CL8pF电容严重偏大导致负性阻抗不足。换成两个12pF后正常起振。5.2 频率偏移大现象通信距离短、误码率高、计时不准。排查步骤用频率计测量实际频率计算偏移量。根据偏移方向调整负载电容频率偏高就增大电容频率偏低就减小电容。检查PCB寄生电容是否过大比如晶振走线太长、下方有铺铜等。确认晶振本身精度是否满足要求必要时换更高精度的型号。频率偏移这个问题很多时候不是晶振本身的问题而是负载电容和寄生参数没算准。养成计算习惯能省很多调试时间。5.3 时钟抖动大现象射频EVM差、ADC信噪比低、高速接口误码。排查步骤用相位噪声分析仪测量时钟的相位噪声。检查有源晶振的电源去耦是否到位。检查晶振输出走线是否受到干扰是否靠近高速信号线。确认晶振的抖动指标是否满足系统要求。必要时给晶振单独供电或者加屏蔽。抖动问题往往比较隐蔽因为示波器上看波形可能很正常但相位噪声已经恶化了。如果系统对抖动敏感建议在设计阶段就预留单独供电和屏蔽的空间。5.4 温度变化导致时钟异常现象低温或高温下通信失败或系统复位。排查步骤确认晶振的工作温度范围是否覆盖实际使用环境。检查负载电容的温度特性避免使用温度系数大的电容。如果是无源晶振考虑换用温度补偿型TCXO或有源晶振。检查PCB布局是否导致局部温度过高或过低。温度问题在工业级和汽车级产品里特别重要消费级产品如果使用环境恶劣也要考虑。选型时不要只看常温指标要看全温度范围的保证值。6. 几个容易被忽略的细节和经验最后分享几个我在实际项目中总结的小经验都是文档里不会写、但实际很有用的。6.1 晶振的负载电容用NP0/C0G材质负载电容建议用NP0/C0G材质的陶瓷电容这种电容温度系数小、容值稳定适合振荡电路。不要用X7R或Y5V它们的容值随温度和电压变化大会导致频率漂移。6.2 有源晶振的输出端可以串一个小电阻有源晶振的输出端串一个22Ω到33Ω的电阻可以抑制反射和振铃改善信号质量。这个电阻要靠近晶振输出引脚放置。很多参考设计里都有这个电阻但有些人为了省事直接去掉结果信号质量变差。6.3 晶振的焊盘不要铺大面积铜晶振的焊盘下方不要铺大面积铜尤其是无源晶振铺铜会增加寄生电容影响频率。如果必须铺要在焊盘和铜之间留足够的间隙或者用网格铜。6.4 调试时先确认芯片内部振荡器配置有些MCU内部有可配置的振荡器增益增益设得太低会导致起振困难设得太高会增加功耗和EMI。调试时可以先尝试调整这个配置有时候比换电容更有效。6.5 备选方案要提前想好如果板子空间允许可以同时预留无源和有源晶振的焊盘调试时根据实际情况选择。虽然会增加一点成本但能大大缩短调试周期。我在做第一版样品时经常这么做等方案稳定后再去掉不用的部分。晶振选型和布局这件事说到底就是细节决定成败。选型时多算一步布局时多留一点余量调试时就能少熬几个夜。希望这些经验能帮到你如果你也在晶振上踩过坑欢迎一起交流。
返回列表