一、前言
        今天突然想到一个问题,如果一个单片机的晶振坏了那单片机还能运行程序吗?带着这个问题我查询了很多的治疗发现对于这个问题的资料,发现网上关于这个问题的解释有很多的说法,今天就给大家分享一下我对于这个问题的理解。

        二、晶振是什么?

        晶振主要是指晶体振荡器,而晶体振荡器则是指从一块石英晶体上按照一定的方位角切下来的薄片,我们简称为晶片,是时钟电路中最重要的部件。石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。
        

        在单片机系统中晶振扮演者着重要的角色,如果单片机没有晶振(内部晶振也没有)那单片机是没有办法运行程序的,至于为什么不能运行程序我们后面会讲到。
        晶振在整个单片机系统里相当于单片机的心脏,一个完整的产品要想稳定可靠的工作,没有晶振的加入是很难达到应有的功能,晶振的作用是为电路的工作提供时序基准,使各个模块的工作能够有条不紊的进行下去,因此晶振的指标主要有频率准确度、频率稳定度、工作温度范围等,晶振还可以为锁相环提供频率基准,其频率的准确度决定了锁相环输出频率的精度。
        在单片机系统中晶振可能不止一个,不同频率的晶振在整个系统里扮演的角色也是不一样的,例如32.768K晶振通常用于时间显示,16MHZ、26MHZ等用于传输信号的。
        晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振一般又称作晶体,有源晶振又被称为振荡器。无源晶振需要借助于时钟电路才能产生振荡信号,有源晶振是一个完整的谐振振荡器,不需要外部提供震荡信号。

        三、没有晶振可以运行程序吗?

        我们通过前面的学习知道了单片机中的晶振主要是用来提供时钟信号的,那如果单片机上的晶振坏了单片机还能运行我们编写的程序吗?
        关于这个问题的答案我想给出以下回答:
  • 如果单片机存在内部晶振那么单片机是可以运行程序的,只不过运行的过程不太正常(可能是速度慢,也可能是某些功能不正常)
  • 如果单片机内部没有晶振,那么外部晶振坏了单片机是必然不能运行程序的,关于这点后面会进行讲解。

       在讨论这个问题之前我们先来看一下单片机是怎么运行程序的吧!单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,也是一个晶振周期。它的一个机器周期是12×(1/12)us,也就是1us。(来源于网络,仅供参考)
        上面的说法是网络上的大佬写的一篇文章,从上面的讲解我们知道单片机的程序运行需要晶振提供时钟信号,虽然单片机程序的运行和晶振之间没有直接的关系,但是却有着密切的联系,当然在单片机中还存在一个PLL锁相环的东西,它可以保证外部晶振与单片机内部晶振频率保持一致。
        通过上面的知识我们知道了晶振在单片机程序运行中的作用,那么结论就显而易见了,没有晶振单片机是肯定不能运行的,但是我在网上看到下面这个帖子:


        现在来回答上面的问题为什么在单片机系统中没有接外部晶振单片机仍然能够成功运行。在单片机内部是存在内部晶振的,可以为单片机提供低频的时钟信号。对于STM32F103c8t6用外部晶振+PLL,时钟频率可以去到72M,用内部振荡,只能到48M。
        所以在没有外部晶振的情况下有些单片机是可以维持正常工作的,只不过代码执行的速度会大打折扣,所以如果你要求单片机性能的话,还是建议使用外部晶振的。

        四、PCB中晶振电路的要求

        位置要选对:晶振内部是石英晶体,如果不慎掉落或受不明撞击,石英晶体易断裂破损,所以晶振的放置远离板边,靠近MCU的位置布局。               
         两靠近:耦合电容应尽量靠近晶振的电源管脚,如果多个耦合电容,按照电源流入方向,依次容值从大到小摆放;晶振则要尽量的靠近MCU。               
        走线短:所有连接晶振输入/输出端的导线尽量短,以减少噪声干扰及分布电容对晶振的影响。               
        高独立:尽可能保证晶振周围的没有其他元件。防止器件之间的互相干扰,影响时钟和其他信号的质量。晶振周围 1mm 禁布器件,0.5mm 禁布过孔走线,所有晶振下不打过孔(包括地过孔)。               
        外壳要接地:晶振的外壳必须要接地,除了防止晶振向外辐射,也可以屏蔽外来的干扰。               
        另外对于有源晶振和无源晶振还有这不同的不限需要,具体如下;
        无源晶振布线要求:
        振荡电路(振荡单元、振荡电容)应配置在振荡IC附近;               
        晶振电路下面的各层都需要铺地,不能放置器件和走线,尤其是高频信号线路;               
        晶振电路做包地处理时需要打大量地孔,否则包地无意义;               
        四脚晶振,建议晶振走线从内部走,减小晶振的环路,如下图所示。               
        有源晶振布线要求:
        振荡电路(振荡单元、振荡电容)应配置在振荡IC附近;
        晶振电路下面的各层都需要铺地,不能放置器件和走线,尤其是高频信号线路;               
        晶振电路做包地处理时需要打大量地孔,否则包地无意义;               
        电源先经过旁路电容,然后再进入晶振,如下图所示(高频噪声通常直线前进)。               

五、结语
对于上面讲的内容,如果不是做硬件的话作为了解内容即可,增加一下自己的知识面,不必深入研究。

本文由编辑推荐,原出处:https://www.eet-china.com/mp/a181059.html