最近项目中需要用到STM32L系统中的低功耗RTC定时唤醒的功能,使用示波器测试RTC晶振,没有看见晶振波形。 看了几篇关于STM32L低速晶振不起阵的分析原因,分析的原因种类很多,在看过ST的手册Oscillator design guide for ST Microcontrollers后,说一下自己的想法。 首先STM32L是低功耗的单片机,它的实际初衷是用于低功耗产品中,因此ST关于推荐的LSE选择了等效并联电容C0低的晶振,晶振起振的前提是MCU内放大器的驱动力应大于晶振的负载阻力,根据公式或者经验,为了降低晶振的等效电阻ESR和电导Gmcirt,需要负载电容CL与晶振的C0相匹配选用较低的容值才能在低驱动能力下正常起振。因此LSE的驱动能力与晶振的等效并联电容、负载电容CL需要匹配,低驱动+低C0晶振+低负载电容CL=低功耗。
下面是ST手册中关于ESR和Gmcirt的公式,可以看出两个参数与Co和CL的关系 ESR=Rm*(1+C0/CL)*(1+C0/CL); Gmcirt=4*ESR*(2*pi*F)*(2*pi*F)*(C0+CL)*(C0+CL) MCU的驱动能力可以通过手册查到,例如:(此参数可以通过寄存器进行调整)
实际使用中要注意:实际匹配出来的Gmcirt<GM,这样才能使芯片有足够的能力驱动晶振起振。 再次,实际测量时,要注意示波器表笔的阻抗特性,尽量使用高阻抗探头,我在使用时用的时10X档的。
|