一块控制板上电后,MCU偶尔无法启动,换成外部时钟或换一批晶振又恢复正常。面试官问你如何定位晶振不起振,重点是能否把晶体参数、MCU振荡器驱动能力、负载电容和PCB寄生参数联系起来。
MCU外部晶振电路通常是Pierce振荡器,晶体与芯片内部反相放大器构成反馈振荡回路。不起振可能来自晶体ESR过大、负载电容不匹配、振荡器增益裕量不足、驱动配置、PCB寄生参数或焊接问题。负载电容可按CL≈(C1×C2)/(C1+C2)+Cs估算,其中Cs包含引脚和PCB寄生电容;计算只是起点,还必须核对芯片和晶体规格并验证起振裕量。
02核心原理与工程判断
晶振为什么能够形成稳定时钟
常见MCU外部晶振利用芯片内部反相放大器和外部石英晶体构成Pierce振荡器。晶体提供高Q值频率选择特性,两个负载电容与寄生电容共同决定晶体看到的等效负载。振荡器必须有足够的环路增益和相位条件,才能从噪声中建立稳定振荡。
负载电容如何估算
晶体数据手册中的CL是晶体两端看到的等效负载电容。常见近似公式为CL=(C1×C2)/(C1+C2)+Cs,其中C1、C2为外接电容,Cs为引脚、PCB走线及周围结构形成的等效寄生电容。若C1=C2=C,则C≈2(CL−Cs)。例如CL=12pF、Cs估算为3pF时,两个电容初值约18pF;但Cs不能随意套用固定经验值,应结合芯片资料、布局和实测校准。
为什么电容不合适会导致不起振或频偏
负载电容偏离晶体标称要求,会使振荡频率偏移;负载过大还可能降低环路增益、延长起振时间甚至无法起振。负载过小也可能造成频率偏差、驱动电平变化或振荡裕量不足。还要检查晶体ESR是否超过MCU振荡器能够驱动的范围,不能只根据频率和CL选型。
起振裕量和驱动电平有什么关系
起振裕量反映振荡器克服晶体损耗并建立振荡的能力。晶体ESR越大,所需负阻能力越强;MCU振荡器驱动能力、外接电阻和负载网络都会影响起振条件。另一方面,驱动电平过高可能超过晶体允许值,增加老化或可靠性风险,因此不是把驱动档位调到最大就一定更好。
PCB布局和测量为什么容易引入问题
晶体及负载电容应尽量靠近MCU振荡引脚,走线短、对称,避免经过高速开关节点和噪声源;地参考要连续。普通10×无源探头的输入电容可能改变晶体负载,造成测量时停振或频偏。测量应使用低电容有源探头或芯片厂商建议的方法,避免把探头引入的变化误判为原设计故障。
03实际排查与设计步骤
01核对MCU数据手册和参考手册,确认HSE/LSE模式、允许晶体频率、驱动档位、晶体ESR和CL范围。
02根据晶体CL和估算寄生电容计算C1、C2初值,检查两侧电容容差和介质类型,优先考虑稳定性较好的C0G/NP0。
03检查晶体焊接、焊盘、走线长度、回流参考、负载电容接地和周边噪声源,排除短路、虚焊及错误封装。
04在不明显加载振荡回路的前提下测量起振时间、频率和幅度;必要时按芯片厂商建议进行负阻/起振裕量测试。
05在低温、高温、低电压、不同批次晶体及量产板上验证启动成功率,确认驱动电平没有超过晶体规格。
04面试中的常见失分点
误区1:晶体标称CL是多少,就把两颗外接电容都选成这个数值,忽略串联等效关系和寄生电容。
误区2:用普通高电容探头直接测晶振引脚,测量本身改变振荡条件,却把停振归咎于芯片或晶体。
05面试官可能继续追问
Q:为什么实验室样机晶振能够正常起振,批量生产后却出现低温偶发不起振?
重点检查晶体ESR批次差异、MCU振荡器增益裕量、负载电容容差、焊接质量、PCB寄生电容以及低温下器件参数变化。建议按晶体和MCU规格做最差条件分析,并在低温、低电压、不同批次组合下验证起振时间和成功率。

扫码关注































