当利用ST处理器做产品开发时,如果有使用其中的RTC功能,而且使用外部32.768KHz的晶振作为其时钟源,如果晶振及其负载电容选择不当,可能会出现时钟非常不准,甚至出现晶振不起振的情况。
特别是批量生产出货量比较大时,更有可能碰到部分产品的晶振不起振的情况。
[size=1.059em]晶振电路
几乎所有的振荡电路都采用了Pierce(皮尔斯)电路。
该电路简单,工作有效而且稳定。
如下,该设计包含一个反相器、一个电阻、一个石英晶体、两个小电容。
石英晶体在此作为高选择度的滤波元件:
皮尔斯振荡电路
激励功率计算公式如下:
Inv:内部反相器器,作用等同于放大器。
Q:石英或陶瓷晶振。
Rf:内部反馈电阻(它的存在使反相器工作在线性区, 从而使其获得增益,作用等同于放大器)。
RExt:外部限流电阻。
CL1和CL2:两个外部负载电容。
Cs:由于PCB布线及连接等寄生效应引起的等效杂散电容(OSC_IN和OSC_OUT管脚上)
[size=1.059em]跨导裕度的要求
早在1988年, Eric Vittoz发表了晶振RLC动态等效电路的相关理论研究。
根据该理论,反相器跨导gm必须大于gmcrit才能满足起振条件,为保证可靠性,还必须满足至少5倍的关系;即:gmargin = gm / gmcrit>5;
而gmcrit = 4 x ESR x (2πF)² x (C0 + CL)²,
ESR、C0、CL都可以从晶振规格书中获取,gm可以从处理器的规格书中获得;
以Murata的晶振为例,如下图:
Murata晶振参数
对于负载电容为12.5pF的电容,其gmcrit = 4 x ESR x (2πF)² x (C0 + CL)²
即处理器的标称的跨导gm必须要大于5x1.987uA/V=9.94uA/V。
[size=1.059em]ST 处理器支持的晶振
从STM32F051R8T6的规格书中,
我们知道,其跨导gm为:
STM32F051R8T6的跨导
从规格书中,我们知道,STM32F051R8T6的晶振驱动能力可以通过(RCC_BDCR)寄存器进行配置,默认为高驱动能力。
晶振驱动能力的选择
由此,当STM32F051R8T6的处理器选择晶振的中-高或者高驱动能力时,可以使用负载电容为12.5pF的晶振。
对于STM32F103RCT6,则是另一种情况,规格书标称的参数为:
STM32F103RCT6的跨导
STM32F103RCT6的晶振驱动能力不能通过寄存器设置,其固定为5uA/V。
不满足负载电容为12.5pF的晶振的跨导要求,只能使用负载电容为6pF的晶振。