首页 > 版块 > 物联网 > 帖子正文

ESP8266物联网开发板设计3 ---晶振起振原理

张角 发布于 2021-10-27 14:33
收藏 0 回复 0 浏览 92 原创

大家好,我是张飞实战电子张角老师!我们今天继续物联网开发板硬件电路设计相关的探讨。

我们先来看晶振这块。首先,单片机是可以看成是一个高速数字电路的集合体,其中速度最快的部件就要算是中央处理器了,其余的外围部件,比如PWM模块、I2C模块、SPI模块等等速度相对慢一些。我们先看CPU,它自己需要进行计算,但是多长时间CPU及其相关寄存器的状态改变一次,必须有一个时钟信号进行配合。换句话说,晶振的频率影响或者决定了CPU的动作周期。从另外一个层面来看,各个部件之间要协同工作,这肯定是需要同步的。这个同步的动作,肯定就需要时钟的参与。

仅仅从上面两个部分来看,单片机要想高效地完成编程者设定的任务,时钟信号是不可或缺的。目前单片机的时钟信号的来源主要有两类,一类是内部的RC振荡器,另一类是外部的晶振电路。内部的RC振荡器,频率相对来说比较低,一个主要的原因是它受温度的影响比较大。主要的原因就是RC振荡器的外围电路,其实还都是半导体器件组成,而偏偏半导体器件温飘特性相对来说就是比较大。那么也就是RC振荡电路的周期就不准了,温度高的时候和温度低的时候,周期不一样。所以有些朋友家里安装的电子时钟,相对来说,时间一长,就容易不准,其实很大一部分原因就是这个产品使用的芯片内部的RC振荡器。

但是有一个器件,能够提供非常精准的震荡频率,那就是石英晶体。石英晶体是一种具有压电效应的器件,在石英晶体两个管脚添加上交变的电场时,它将会产生一定的机械变形,这种机械变形反过来又会产生交变电场。一般情况下,无论是机械震动的振幅,还是交变电场的振幅都非常小。但是,当交变电场达到某一个特定值的时候,振幅陡然增大,产生共振。这个频率,我们称之为石英晶体的谐振频率。

那么我们单片机配套的石英晶体振荡器,具体是如何起振的呢?我们只有知晓了具体的起振过程,才有可能搞清楚设计上需要注意的地方。

我们单片机上的晶振电路,本质上就是电容三点式震荡电路的改进版。那么我们要讲清楚单片机上的晶振电路,就要讲清楚以下几个问题。第一,什么是震荡电路,震荡电路起振需要满足什么条件。第二,电容三点式震荡电路怎么起振的,它怎么就满足了震荡条件了。第三,电容三点式振荡电路的改进方向是什么,石英晶体震荡器符合电容三点式振荡器的改进方向么?第四,我们单片机内部电容三点式震荡电路一般是怎么实现的,我们设计晶振电路的时候有哪些需要注意的地方。在讲解这些地方的时候,我们尽量减少公式的表达,更多的追求直观的理解,毕竟我们的目的不是去设计单片机的晶振电路。

我们说正弦波震荡电路起振的条件,主要是两个条件,一个是必须要引入正反馈,也就是说反馈信号必须要能够替代输入信号;第二个要有外加的选频网络,进而用来确定震荡的频率。我们下面来看一下,常见的电容三点式震荡电路是什么样子的。

如下图所示,图中的三极管T1是放大部分,对A点输入的信号进行了放大。同时三极管的基极和射极信号是反向的,这个是三极管本身的特性导致的。如果对这个不熟悉的话,大家可以下去看看三极管的知识。那么三极管在这里也就是提供了两个功能,一个是信号的幅值放大(当然放大的倍数可以通过调整RcRe等进行调节),另一个功能提供了信号的相位的反相(图中A点和B点信号)。

图中黑色虚线中的部分,就是电容三点式振荡器的选频网络。发生共振的时候,电感L1和电容C2C3组成的LC网络,可以近似为阻抗无穷大,也就是说电感L1和电容C2C3电流是环路电流。大家知道电容的特性,是不是电流相位超前电压90度呀。我们把C2C3的中间点接地,C点电压超前B90度,D点电压又超前C90度,那么D点电压是不是超前B180度呀。D点电压超前B180度,那是不是说D点的波形和B点是反向的呀。D点的波形和B点是反向的,B点的波形和A点是反向的,那么D点的波形和A点是不是就是同相的。那么这里是不是既有了正反馈,又有了选频网络。那么是不是就有可能满足正弦波的震荡条件呀,只要这个电路参数得当,那么就会产生正弦波。

image.png

这个电路的反馈系数F等于C2/C3, 电压放大倍数A = β*RL/rbe,其中RL = Rc//(Ri/F^2)

我们是正弦波要能够起振,是不是 AF的值要大于1呀。如果我们通过调整C2/C3的值,就会出现一个相悖的结论,调大了F,结果A却小了。那么AF的乘积变化的趋势反而不明朗了。实际实验中,C2/C3的值既不能太大,也不能太小,具体指只能靠测试来设定。电容三点式震荡电路,相对来说它的缺点也在于此,通过调节电容去调节频率的话,会影响起振条件,但是通过调节电感办法来调节震荡频率,实现上又会比较困难。

通过LC谐振点的公式来看,如果我们要想提高震荡的频率,只能是不断减小C2C3以及电感L。但是C2C3减小到一定程度的时候,比如和电路的杂散电容一个级别的时候,我们就很难确定震荡的频率了,因为杂散电容的电容值几乎很难确定。那么我们有没有其他办法来解决这个问题呢?如果我们把C2C3电容的容值设定在远大于杂散电容,那么杂散电容对电路的影响是不是就可以忽略掉了,电路的震荡频率是不是就会相对来说非常稳定。那么问题来了,震荡的频率如何提高呢?具体的措施,就是在电感上串联一个小电容C,同时C<<C2, C<<C3, 这样震荡频率只和这个C有关,f = 1/(2πsqrt(LC))。电容C2C3这里只是起到分压作用而已。整体的设计,如下图所示。

image.png

分析完了电容三点式震荡电路,那么我们看一下晶振怎么参与进来。因为我们前面已经提到了,我们单片机电路的晶振模块本质上也是电容三点式震荡电路。要看清楚这个问题,我们必须要了解晶振的高频模型,看看晶振的物理特性到底是什么。

image.png

实际上,晶振的高频等效模型如上图所示。这里的L,可以等效为晶振的惯性,这个值大概是几mH到几十mH。电容C等效为晶振的弹性,这个电容比较小,容值大概在0.01pF0.1pFR等效为晶振的摩擦损耗,这个值大概在100R,当然理想情况下这个值是零。电容C0等效为晶振的静态电容,它的大小和晶振的几何尺寸和极间面积有关,一般是几到几十个pF。那么实际上,晶振是惯性和弹性的结合体。结合我们前面提到的电容三点式振荡电路,我们更希望利用的其实是晶振的惯性部分,也就是电感部分对吧。在晶振组成的震荡电路中,震荡的稳定性主要是靠晶振本身的高Q值来稳定的,不是靠我们上面提到的那个思路,而且我们也不需要在外部震荡处那么高的频率,比如100Mhz的震荡。一般情况下,我们使用的是12Mhz的无源晶振,单片机内部的更高频次的震荡信号,是通过分频器和锁相环来实现的。

既然,我们使用的是晶振的惯性部分,那么我们就来分析一下,在什么频率下晶振会更多的呈现惯性,也就是感性。

当晶振的LCR电路发生谐振的时候,这个回路呈现纯阻性,等效电阻为R。谐振频率fs=1/(2πsqrt(LC))。当f低于fs的时候,C0这里起到主导作用,晶振呈现容性。当f大于fs的时候,LCR这条支路呈现感性。LCR这条支路将和C0发生并联谐振,谐振的频率fp = fs*sqrt(1+C/C0),这个具体的公式大家可以下去推导一下,我们这里就不再做更深入的介绍了。大家可以看一下,因为C远远小于C0,所以fsfp是不是无限接近呀。那么也就是说晶振只有在很窄的频率范围内,才会呈现感性。

回到我们前面提到的电容三点式震荡电路,晶振只在一个很窄的范围内呈现感性,而且受温度的影响比较小。那么是不是说用晶振组成的三点式震荡电路,它的频率会非常稳定呀。具体电路设计如下图所示。那这样,我们使用晶振搭建的电容三点式震荡电路就算完成了。

image.png

那么下一个任务就要回答,单片机中的晶振电路一般是如何实现的呢?我们以80C51来距离,它震荡电路的框图大概是下面这个样子。

image.png

image.png

0 0
发表评论 侵权投诉
评论 (0)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表乌云踏雪网立场。

文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。