晶振上电后并不会瞬间进入稳定振荡状态。从上电开始,到振荡信号达到规定幅度,并满足系统正常工作要求,这段时间被称为起振时间(Start-up Time)。您是不是遇到过这种情况:同样使用24MHz晶振,为什么A方案瞬间起振,而B方案需要更长时间?这个情况是多方面因素决定的:晶体ESR、负载电容CL、振荡器负阻裕量、驱动能力、电源电压、温度以及PCB寄生参数。
一、晶振为什么需要一定时间才能起振?
晶体振荡器在刚上电时,并没有一个理想的、稳定的大幅度正弦波。振荡通常从非常微小的噪声或扰动开始。振荡能量逐渐积累,直到达到稳定振荡状态。如果振荡回路提供的增益较高、损耗较低,振幅增长就比较快。
如果晶体ESR较高、CL过大、振荡器负阻裕量不足、电源电压较低、温度较低,振荡能量积累速度就会下降,起振时间变长。起振时间与振荡回路的增益、损耗和工作条件有关。
二、晶振起振慢常见原因
晶体ESR过高:ESR表示晶体在谐振状态下的等效损耗。如果晶体ESR接近甚至超过芯片振荡器能够承受的范围,就可能出现起振慢、起振裕量不足、低温启动困难、低电压启动困难、部分批次不起振。
CL过大:外围电容、MCU管脚电容和PCB寄生电容共同构成实际负载。如果实际CL过大,振荡器需要推动更大的电容负载,可能导致起振时间增加、负阻裕量下降、驱动需求增加、低温下更难启动。
负阻裕量不足:振荡器需要提供等效负阻来抵消晶体的损耗。如果负阻裕量不足,就会出现起振时间长、低温启动困难、低电压启动困难、不同晶体批次表现不一致的情况。
驱动能力不足:为了缩短起振时间,有些设计会直接提高振荡器驱动能力。这确实可能让起振更快。但如果驱动过高,晶体振幅增加、晶体功耗增加、自热增加、非线性增加、频率可能发生变化、老化速度可能增加。
电源电压过低:例如某MCU在3.3V时起振正常,但在2.7V时,振荡器内部驱动能力下降,就可能导致起振时间增加。特别是电池供电、低功耗设备、无线传感器、IoT设备等应用。如果系统采用动态电压调节,还需要分别测试不同VDD条件下的启动表现。
低温:温度会影响晶体和振荡器的电气特性。在低温环境下,某些器件的ESR、振荡器增益、晶体参数可能发生变化。实验室25℃起振正常,不代表-40℃一定能够正常起振。汽车电子、工业设备和户外产品等应用,需要着重考虑低温、低电压、大ESR条件下的起振时间。
PCB寄生电容过大:KOAN晶体附近的走线、焊盘、过孔、MCU管脚都会产生寄生电容。如果晶振走线过长或者PCB布局发生变化,实际CL就可能与原设计不同。建议晶体靠近MCU、OSC_IN/OSC_OUT走线尽量短、减少不必要的过孔、控制焊盘尺寸、避免晶振附近存在高速信号。
噪声:晶振振荡回路属于比较敏感的节点。如果附近有DDR、USB、PCIe、Ethernet、RF、DC-DC开关节点,可能产生电磁干扰。严重情况下,会出现起振异常、起振时间增加、波形不稳定、频率跳动。需要考虑噪声隔离。
三、如何缩短晶振启动时间?
选择低ESR晶体:适合低功耗MCU、RTC、电池设备、快速唤醒设备。
优化负载电容:检查晶体CL和外部电容、MCU管脚电容、PCB寄生电容之间的关系。避免使用明显过大的负载电容。但不能为了追求起振速度而盲目降低CL,否则可能导致频率偏差、频率对寄生电容更加敏感、频率一致性变差。
增加合理的负阻裕量:如果测试发现负阻裕量不足,可以考虑调整振荡器驱动设置、更换低ESR晶体、优化负载电容、选择更适合的MCU振荡器配置。
优化PCB布局:KOAN晶振应尽量靠近MCU。建议MCU OSC引脚到晶体之间的距离,保持尽可能短的连接。另外,还需要避免长走线、不必要过孔、高速信号线从晶体附近经过、DC-DC开关节点靠近晶振。
优化供电:确保VDD满足MCU规格、电源纹波在允许范围、去耦电容位置合理、DC-DC噪声不会直接耦合到晶振回路。对于低功耗设备,还要验证最低电压条件下的起振时间。
四、常见问题 FAQ
1、起振时间越短越好吗?
不一定。只要满足系统启动要求,并且在全温、全压条件下可靠起振即可。过度追求快速起振可能导致驱动过强和可靠性问题。
2、减小CL能让晶振起振更快吗?
有可能。较小CL可能降低振荡回路负担,但也会增加频率对寄生电容的敏感性,因此不能盲目减小。
3、提高负阻一定能缩短起振时间吗?
通常增加合理的负阻裕量有助于提高起振能力,但过高的驱动可能增加Drive Level、功耗和晶体应力,因此需要实际测试。
4、换成低ESR晶振是不是一定更快?
不一定。起振时间还受到CL、振荡器参数、VDD、温度和PCB寄生参数等影响。
5、为什么同一颗晶振换到另一块PCB上起振时间不同?
因为PCB的走线、焊盘、MCU管脚和布局会改变寄生电容和振荡回路条件。
31