晶振仿真
有关晶振的说明比较多,EPSON的官网说明的比较全EPSON,对此不作具体说明,文后会提供参考文档
晶振的等效模型
石英晶体的等效模型如下图所示。
- C0:代表电极引入的并联电容
- Lm:(振荡电感)代表晶体的振荡量
- Cm:(振荡电容)代表晶体的振荡弹性
- Rm:(振荡电阻)代表电流损耗
晶体的阻抗计算如下图所示。
以上公式忽略了Rm的作用,在以下程序中并未忽略该参数。
from scipy import signal
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
""" 32768Hz osc """
Rm = 90e3
Lm = 3.932e3
Cm = 6e-15
Co = 1.2e-12
system = signal.lti([Lm/Co, Rm/Co, 1/(Co*Cm)], [Lm, Rm, (1/Co+1/Cm), 0])
#w1, Hw = signal.freqs([Lm/Co, Rm/Co, 1/(Co*Cm)],
# [Lm, Rm, (1/Co+1/Cm), 0], worN=np.logspace(-3, 9, 1000))
f = np.logspace(1, 6, 1000000)#尤其注意此处1000000表示从10e1到10e6细分的点数,越大越好,太小会导致失真
w, mag, phase = signal.bode(system, 2*np.pi*f)
plt.subplot(212)
plt.grid()
plt.semilogx(f, phase, 'g', label='phase')
plt.legend()
plt.subplot(211)
plt.grid()
#plt.semilogx(w1/(2*np.pi), Hw, 'r', label='mag')
plt.semilogx(f, mag, 'r', label='mag')
plt.legend()
plt.show()
结果如下图所示。
结果跟阻抗曲线类似。
可见在32768Hz左右出现180°的相位变化和幅度上的翻转。
在pspice中,晶振的模型也是按照上面的电路进行组合。以其中的FC1610AN
为例子,在pspice model中描述如上下。
* 32768 hertz watch crystal, XY cut, series resonant, Q=81780
*
.subckt FC1610AN 1 2
*
lqz 1 11 lmod 3.932e3
.model lmod ind(tc2 = 8.68e-8)
cs 11 12 6.0e-15
rqz 12 2 90e3
cp 1 2 1.2e-12
.ends
*$
解读上面的spice语言。
FC1610AN子电路模型有1、2两个管脚。模型实现为:
lqz使用lmod模型(温度系数为TC2),电感为3932H,管脚为1、11。
cs为0.006pF,管脚为11、12。
rqz为90k,管脚为12、2。
cp为1.2pF,管脚为1、2。
最终模型参数如下图所示。
使用PMOS和NMOS搭建的CMOS电路对以上模型进行仿真,电路图和仿真结果如下图所示。
等效ESR
根据晶振模型,可知标称频率为振荡电感
和振荡电容
的谐振频率,而由于并联电容
的等效阻抗很高,故可以等效为晶振在振荡谐振时的阻抗为振荡电阻的大小(ESR)。
以上晶振为例,晶振的谐振阻抗在100dB左右(因为此时阻抗急剧变化,并出现180°相位差),此时阻抗为100k与rqz(90k)接近。即模型中的rqz为ESR。
根据曲线可知晶体工作在并联谐振状态下,其表现像一个电感(为前半部分曲线)。谐振阻抗为130dB-110dB之间,约为3.2M~0.32M。若反馈电阻取1M、5M、10M,则仿真波形如下图所示。
结果显示1M和5M均没起振,而10M起振。可见反馈电阻的取值需要几十倍~几百倍于晶振的谐振阻抗ESR才行。
ESR值是一个机械晶振振荡损耗的电气表示。一个较大的晶振在振荡期间损耗较小,这将导致一个较低的ESR值。小型晶振,特别是表面贴装器件(SMD)晶振,往往有较高的ESR。一个较高的ESR值反映出一个晶振的较高损耗。如果ESR太高,振荡器就会变得不稳定并停止振荡。因此,每一个振荡器有ESR值的最大限值。ESR值比建议的最大值越低,那么振荡器启动和稳定性就越好。
在起振期间,噪声将在反相放大器中放大。晶振将充当带通滤波器并且仅反馈将被放大的晶振谐振频率分量。在实现稳态振荡之前,晶振/反相放大器环路的环路增益大于1,信号幅值将增大。达到稳态时,环路增益将满足巴克豪森准则,环路增益为1,幅值恒定。影响起振时间的因素:高ESR晶振的起振速度慢于低ESR晶振高Q因数晶振的起振速度慢于低Q因数晶振高负载电容会增加起振时间振荡器放大器驱动能力。此外,晶振频率也会影响起振时间(晶振频率越高,起振就越快),但对于32kHz晶振,此参数固定。
仿真1MHz的晶振,其参数如下所示。
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* 1Mhz frequency standard, AT cut, parallel resonant, Q=25000,
* calibration capacitance = 1n
.subckt QZP1MEG 1 2
*
lqz 1 11 2.54647909
cs 11 12 9.95357648e-015
*vsin 12 3 SIN 0 1k 1meg 0.1n 1e6 0
rqz 12 2 640
cp 1 2 2.48839412e-012
.ends
*$
可知ESR约为640R。仿真结果如下图所示。
起振时间明显快于32768。
振荡原理
不论串联振荡还是并联振荡,晶振都需要处于电感区,才可以与外部电容形成LC振荡,并提供180°的相移,同时加上反相器的180°,总计360°。
简化的皮尔斯振荡器如下图所示。
由于RC无法提供90°相移,故只有当晶振处于电感状态时,才能提供大于90°的相移。
使用上图进行仿真分析,结果如下图所示。
三段分别为75.16、104.273、180,变化和为359.433近似为360。
5倍来源
根据E.Vittoz阁老的分析如下图所示。-Rmax为最大负阻,而一般C1=C2,则-Rmax=-1/2wC3(1+2C3),晶振稳定起振gm不能太大或太小,其介于Gmcrit和Gmmax之间,即下图中的A、B两点。
根据上图可知,QC/C3>2(1+2C3/C1),由于C3 << C1,故QC/C3>2,则gmmax/gmcrit>41。
参考文献
版权属于:Yokay
本文链接:https://www.mythbird.com/crystal-oscillator-simulation.html
本文所有内容采用 CC BY-NC-SA 4.0 许可协议,如文章内容涉及侵权,请联系 yokay@mythbird.com。