振荡器是否能正常工作,主要取决于几方面的因素:振荡器本身的特性、MCU振荡电路的特性、负载电容CL的影响(包括杂散电容)。 其中,振荡器本身的特性由振荡器厂商提供,在振荡器的手册中说明。 MCU振荡电路的特性由MCU的数据手册给出。以STM32F103RB来说,在数据手册中表格“LSE oscillator characteristics”给出,其中最重要的是跨导gm这个参数。 负载电容CL包括振荡器外接的电容CL1和CL2 (注意,负载电容CL并不等同于CL1和CL2),同时也包括各种因素引入(例如PCB板材、布线,PCB板清洁、干燥程度等等)的杂散电容。 简单的以振荡器在别的芯片上能用来说明这个芯片有问题是不合适的;同样,以这个芯片用别的振荡器没问题来说明这个振荡器有问题也是不合适的。这里存在一个匹配的因素。 可参考AN2867进行振荡器设计: 特别是section5 Easyguideline for the selection of suitable crystaland external components andsection 8 SomePCB hints. 一个振荡器能够正常稳定的工作,必须满足一定的条件,即gain margin>5。 如果计算就不能满足gain margin的要求,实际中出现问题也不足为怪。 此外,要注意首先保证系统稳定(例如电源稳定,去耦电容正确放置,复位引脚上加去耦电容且摆放靠近芯片等)。 如果芯片本身就工作在不稳定的情况下,那么各种意外都是有可能的。 |