晶振在单片机中扮演着什么角色?晶振坏了单片机还能运行程序吗?

news2025/7/6 17:47:59

晶振坏了单片机还能运行程序吗?

    • 前言
    • 晶振是什么?
    • 单片机没有晶振可以运行程序吗?
    • PCB中晶振电路的要求
    • 结语

前言

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

晶振是什么?

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

在这里插入图片描述
在单片机系统中晶振扮演者着重要的角色,如果单片机没有晶振(内部晶振也没有)那单片机是没有办法运行程序的,至于为什么不能运行程序我们后面会讲到。

晶振在整个单片机系统里相当于单片机的心脏,一个完整的产品要想稳定可靠的工作,没有晶振的加入是很难达到应有的功能,晶振的作用是为电路的工作提供时序基准,使各个模块的工作能够有条不紊的进行下去,因此晶振的指标主要有频率准确度、频率稳定度、工作温度范围等,晶振还可以为锁相环提供频率基准,其频率的准确度决定了锁相环输出频率的精度。

在单片机系统中晶振可能不止一个,不同频率的晶振在整个系统里扮演的角色也是不一样的,例如32.768K晶振通常用于时间显示,16MHZ、26MHZ等用于传输信号的。

晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振一般又称作晶体,有源晶振又被称为振荡器。无源晶振需要借助于时钟电路才能产生振荡信号,有源晶振是一个完整的谐振振荡器,不需要外部提供震荡信号。

单片机没有晶振可以运行程序吗?

我们通过前面的学习知道了单片机中的晶振主要是用来提供时钟信号的,那如果单片机上的晶振坏了单片机还能运行我们编写的程序吗?

关于这个问题的答案我想给出以下回答:

  1. 如果单片机存在内部晶振那么单片机是可以运行程序的,只不过运行的过程不太正常(可能是速度慢,也可能是某些功能不正常)
  2. 如果单片机内部没有晶振,那么外部晶振坏了单片机是必然不能运行程序的,关于这点后面会进行讲解。

在讨论这个问题之前我们先来看一下单片机是怎么运行程序的吧!单片机工作时,是一条一条地从RoM中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括12个时钟周期。如果一个单片机选择了12MHz晶振,它的时钟周期是1/12us,也是一个晶振周期。它的一个机器周期是12×(1/12)us,也就是1us(来源于网络,仅供参考)

上面的说法是网络上的大佬写的一篇文章,从上面的讲解我们知道单片机的程序运行需要晶振提供时钟信号,虽然单片机程序的运行和晶振之间没有直接的关系,但是却有着密切的联系,当然在单片机中还存在一个PLL锁相环的东西,它可以保证外部晶振与单片机内部晶振频率保持一致。

通过上面的知识我们知道了晶振在单片机程序运行中的作用,那么结论就显而易见了,没有晶振单片机是肯定不能运行的,但是我在网上看到下面这个帖子:

现在来回答上面的问题为什么在单片机系统中没有接外部晶振单片机仍然能够成功运行。在单片机内部是存在内部晶振的,可以为单片机提供低频的时钟信号。对于STM32F103c8t6用外部晶振+PLL,时钟频率可以去到72M,用内部振荡,只能到48M。

所以在没有外部晶振的情况下有些单片机是可以维持正常工作的,只不过代码执行的速度会大打折扣,所以如果你要求单片机性能的话,还是建议使用外部晶振的。

PCB中晶振电路的要求

  • 位置要选对:晶振内部是石英晶体,如果不慎掉落或受不明撞击,石英晶体易断裂破损,所以晶振的放置远离板边,靠近MCU的位置布局。

  • 两靠近:耦合电容应尽量靠近晶振的电源管脚,如果多个耦合电容,按照电源流入方向,依次容值从大到小摆放;晶振则要尽量的靠近MCU。

  • 走线短:所有连接晶振输入/输出端的导线尽量短,以减少噪声干扰及分布电容对晶振的影响。

  • 高独立:尽可能保证晶振周围的没有其他元件。防止器件之间的互相干扰,影响时钟和其他信号的质量。晶振周围 1mm 禁布器件,0.5mm 禁布过孔走线,所有晶振下不打过孔(包括地过孔)。

  • 外壳要接地:晶振的外壳必须要接地,除了防止晶振向外辐射,也可以屏蔽外来的干扰。

另外对于有源晶振和无源晶振还有这不同的不限需要,具体如下;

无源晶振布线要求:

  1. 振荡电路(振荡单元、振荡电容)应配置在振荡IC附近;

  2. 晶振电路下面的各层都需要铺地,不能放置器件和走线,尤其是高频信号线路;

  3. 晶振电路做包地处理时需要打大量地孔,否则包地无意义;

  4. 四脚晶振,建议晶振走线从内部走,减小晶振的环路,如下图所示。

有源晶振布线要求:
5. 振荡电路(振荡单元、振荡电容)应配置在振荡IC附近;

  1. 晶振电路下面的各层都需要铺地,不能放置器件和走线,尤其是高频信号线路;

  2. 晶振电路做包地处理时需要打大量地孔,否则包地无意义;

  3. 电源先经过旁路电容,然后再进入晶振,如下图所示(高频噪声通常直线前进)。

结语

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

👇点击下方公众号卡片获取资料👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/37141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML5期末考核大作业 基于HTML+CSS+JavaScript沪上美食(9页)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

我的DW个人网站设计——安徽宣城6页HTML+CSS+JavaScript

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

SpringBoot+Mybaits搭建通用管理系统实例十:基础增删改查功能实现下

一、本章内容 实现系统基础增删改查功能,使用抽象类实现基础增删改查功能,包括数据详情加载、列表加载、分页加载、数据删除、批量删除、数据保存、数据更新等功能。 完整课程地址 二、开发视频 SpringBoot+Mybaits搭建通用管理系统实例二:service层实现 三、代码实现 3.1 删…

Flutter高仿微信-第48篇-群聊-图片

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考Flutter高仿微信-第44篇-群聊, 这里只是群聊的图片实现代…

NeRF~

NeRF实在太重要了代表着计算机视觉、图像学结合的未来重要方向;NeRF对于计算机视觉背景的同学有一定的理解门槛,本次试图以最小背景知识补充、最少理解成本为前提介绍NeRF。 NeRF,即Neural Radiance Fields(神经辐射场&#xff0…

【语音识别】动态时间规整算法(RTW)语音识别系统【含GUI Matlab源码 341期】

⛄一、动态时间规整算法(RTW)语音识别 软件算法主要分为语音信号滤波去噪、预加重、分帧、端点检测、特征参数提取、模式匹配。算法的关键点和难点是特征参数提取和模式匹配。孤立词的语音识别应用程序也是基于MATLAB的GUI进行开发。 1 语音预处理 语音…

C++11标准模板(STL)- 算法(std::lower_bound)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 返回指向第一个不小于给定…

Hystrix原理

背景 分布式系统环境下&#xff0c;服务间类似依赖非常常见&#xff0c;一个业务调用通常依赖多个基础服务。如下图&#xff0c;对于同步调用&#xff0c;当库存服务不可用时&#xff0c;商品服务请求线程被阻塞&#xff0c;当有大批量请求调用库存服务时&#xff0c;最终可能…

jupyter中安装scala和spark内核详细教程

jupyter中安装scala和spark内核 jupyter中安装scala和spark内核 文章目录jupyter中安装scala和spark内核一、前期准备二、安装&#xff08;一&#xff09;Anaconda1、文件上传到Linux系统上方法一&#xff1a;方法二&#xff1a;使用wget2、安装Anaconda3、激活环境4、jupyter…

一文剖析Linux内核中内存管理

Linux中内存管理 内存管理的主要工作就是对物理内存进行组织&#xff0c;然后对物理内存的分配和回收。但是Linux引入了虚拟地址的概念。 文章推荐&#xff1a; 关于如何快速学好&#xff0c;学懂Linux内核。内含学习路线 需要多久才能看完linux内核源码&#xff1f; ​​…

windows位图绘制(显示位图资源)LoadBitmap、CreateCompatibleDC、BitBlt、StretchBlt

位图绘制 位图相关 光栅图形-记录图像中每一点的颜色等信息。 矢量图形-记录图像算法、绘图指令等。 HBITMAP-位图句柄 位图的适用 1.在资源中添加位图资源&#xff08;在vs中点鼠标增加&#xff09; 2.在资源中加载位图LoadBitmap 3.创建一个与当前DC相匹配的DC&#xff08;内…

Js逆向教程-13浏览器和JS的关系/伪造浏览器环境 )

作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; Js逆向教程-13浏览器和JS的关系/伪造浏览器环境 ) 一、浏览器必然包含几个部分&#xff1a; 显示区域、输入网址、刷新按钮DOMBOM运行…

计算机网络笔记【面试】

计算机网络笔记【面试】前言推荐计算机网络笔记二、基础篇三、HTTP篇四、TCP 篇4.1 TCP 三次握手与四次挥手面试题什么是 TCP &#xff1f;UDP 和 TCP 有什么区别呢&#xff1f;分别的应用场景是&#xff1f;TCP 连接建立TCP 三次握手过程是怎样的&#xff1f;为什么是三次握手…

Aspose.Slides 21.11.0 For .NET Crack

适用于 .NET 的 Aspose.Slides 用于 PowerPoint 文件格式的 .NET API 在 .NET C# 中读取、写入、修改、合并、克隆、保护和转换 PowerPoint 和 OpenOffice 演示文稿&#xff0c;无需任何外部软件。 Aspose.Slides for .NET 是一个用于 PowerPoint 和 OpenOffice 格式的演示文稿…

Linux Mint 的更新管理器现在支持 Flatpak

导读Linux Mint 的更新管理器变得更有用了&#xff01; Linux Mint 的更新管理器是该发行版的一个重要组成部分&#xff0c;它使新用户可以获得更为方便简易的体验。 最近的一次更新 Linux Mint 21 推出了许多改进&#xff0c;包括更新管理器对 Flatpak 的支持。 你只需要更新…

【每周CV论文推荐】初学模型蒸馏值得阅读的文章

欢迎来到《每周CV论文推荐》。在这个专栏里&#xff0c;还是本着有三AI一贯的原则&#xff0c;专注于让大家能够系统性完成学习&#xff0c;所以我们推荐的文章也必定是同一主题的。模型蒸馏是非常重要的模型压缩方法&#xff0c;在学术界研究非常广泛&#xff0c;本次我们来简…

HTML5期末考核大作业网站——卫生与健康HTML+CSS+JavaScript

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

SpringBoot SpringBoot 原理篇 1 自动配置 1.14 自动配置思想

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 原理篇 文章目录SpringBootSpringBoot 原理篇1 自动配置1.14 自动配置思想1.14.1 自动配置原理1 自动配置 1.14 自动配置思…

LeetCode_dijkstra 算法_困难_882.细分图中的可到达节点

目录1.题目2.思路3.代码实现&#xff08;Java&#xff09;1.题目 给你一个无向图&#xff08;原始图&#xff09;&#xff0c;图中有 n 个节点&#xff0c;编号从 0 到 n - 1。你决定将图中的每条边细分为一条节点链&#xff0c;每条边之间的新节点数各不相同。 图用由边组成…

使用 Next.js 搭建 Monorepo 组件库文档

文章为稀土掘金技术社区首发签约文章&#xff0c;14 天内禁止转载&#xff0c;14 天后未获授权禁止转载&#xff0c;侵权必究&#xff01; 阅读本文你将&#xff1a; 使用 pnpm 搭建一个 Monorepo 组件库使用 Next.js 开发一个组件库文档changesets 来管理包的 version 和生成…