单片机为什么需要时钟?2种时钟电路对比?

目录

一、晶体振荡器(Crystal Oscillator)的核心知识

二、单片机为什么需要时钟电路?

三、单片机的时钟电路方案

01、外部晶振方案

02、内部晶振方案

 四、总结        


单片机研发设计的项目中,它的最小电路系统包含

  1. 电源电路
  2. 复位电路
  3. 时钟电路;

这些是构成电路的基本单元

6e84993589dd1b6310b0fd87bad772e0.png

其中电源电路与复位电路,工程师一般非常容易理解与设计。

然而对于时钟电路,由于不同的开发项目功能需求不一样,设计的方案选择也不尽相同,很难得到有效的统一设计。

比如:一个项目对研发成本要求较严格,功能较简单;而另一个项目电路系统需要与外界电路系统完成串口通信,通信数据要求不能出错;这两个电路就有很大区别

首先,从最基本的晶体振荡器说起

一、晶体振荡器(Crystal Oscillator)的核心知识

晶体振荡器是一种常见且精度高的时钟源。它通常由一个石英晶体振荡器组成,其振荡频率由晶体的物理特性决定

晶体振荡器一般包括以下几点:

石英晶体:晶体的选择取决于所需的振荡频率和精度。常见的石英晶体频率包括32.758K, 12MHz、24MHz等。

振荡电路:晶体振荡器需要一个振荡电路来启动和维持振荡。这通常涉及到晶体振荡器芯片或集成电路。

负载电容:晶体振荡器的工作需要与其并联的负载电容。这些电容帮助调节振荡频率。

振荡器输出:振荡器的输出连接到单片机的时钟输入引脚。

da7c10a615c7b4aad12d33647e08a356.png

晶体振荡器的优点包括高稳定性和精度,适用于需要较高时钟精度的应用,如通信设备和精密测量仪器。

二、单片机为什么需要时钟电路?

时钟电路对于单片机的正常运行至关重要,因为它提供了基准时序,用于同步单片机内部各个模块的操作。主要用在以下地方:

同步操作:单片机内部的各个功能模块,如CPU、存储器、输入/输出接口等,需要在特定的时间点协同工作。时钟信号提供了一个同步基准,确保这些模块按照预定的时间序列进行操作。

指令执行:单片机的CPU执行指令的速度是由时钟信号控制的。每个时钟周期,CPU执行一个或多个指令。时钟的存在确保了指令的有序执行。

数据传输:在数据传输和处理过程中,时钟信号确保了数据在正确的时间被读取或写入。这对于确保数据的可靠性和一致性非常重要。

定时器和计数器:许多单片机内置了定时器和计数器,用于执行定时任务、计算时间间隔等。这些功能通常依赖于时钟信号的精准计时。

串行通信:时钟信号对于串行通信协议(如UART、SPI、I2C等)的正确传输和接收数据至关重要。时钟同步确保数据的准确传输。

功耗管理:单片机通常具有不同的功耗模式,如运行模式、睡眠模式等。时钟电路有助于在不同的模式之间切换,并控制单片机的整体功耗。

系统稳定性:时钟信号的稳定性对于整个系统的稳定性和可靠性至关重要。不稳定的时钟信号可能导致系统不可预测的行为。

综上所述,时钟电路为单片机提供了一个基准,确保内部各个部件在协调的时间序列内正常运行。这对于单片机的可编程性和灵活性至关重要,使其能够适应各种不同的应用场景。

三、单片机的时钟电路方案

针对单片机的时钟频率电路,工程师依据不同的项目要求去设计与选择匹配的方案,具体的选择方案以下两种。

01、外部晶振方案

所谓外部晶振方案,是指在单片机的时钟引脚X1与X2外部连接一个晶振。如下图所示,这种电路常用在早期的单片机电路中,或者对时钟要求精度高的系统中。因为,内部时钟,由于单片机内部设计空间成本考虑,所以,始终精度有限。

         07e58c262009515ca8da8bf17c470da8.png

单片机外部晶振图

优点:时钟频率精度高,稳定性能好;

对于一些数据处理能力要求较高的项目,尤其是多个电路系统彼此需要信息通讯,如包含USB通讯、CAN通讯的项目,选用外部晶振的方案较多。

缺点:由于增加了外部晶振,所以研发的BOM表元器件成本增加扩大了。成本会更高一些。


02、内部晶振方案

所谓内部晶振方案,是指单片机利用内部集成的RC振荡电路产生的时钟频率。

16a2025cd0a82a0a6a76c04226731f1a.png

单片机内部晶振电路图

优点:省去外部晶振,工程师可以有效节约研发BOM元器件成本。

缺点:RC振荡电路产生的时钟频率精度比较低,误差较大,容易引起一些高频率通信的数据交互错误。

这种电路,外部不需要晶振及电容,大批量生产,尤其节省成本,因此被多数成本敏感性方案所采纳。

然后,看看芯片内部的时钟大概结构

系统时钟控制器为单片机的CPU和所有外设系统提供时钟源,系统时钟有3个时钟源可供选择:内部高精度24MHz的IRC、内部32KHz的IRC(误差较大)、外部晶体振荡器或外部时钟信号。用户可通过程序分别使能和关闭各个时钟源,以及内部提供时钟分频以达到降低功耗的目的。

单片机进入掉电模式后,时钟控制器将会关闭所有的时钟源

1a63eee6b473de88eb058f5e6a081159.png

 四、总结        

单片机的时钟电路设计方案主要有两种:

外部晶振方案和内部RC振荡器方案。

外部晶振方案:

晶振选择:需要选择一个适当的晶振,通常是石英晶振。选择的晶振频率应符合单片机的时钟要求,如8MHz、11.0596MHz等。

振荡电路:外部晶振方案需要一个振荡电路来启动和维持晶振的振荡。这个电路通常由外部的振荡器芯片或晶振驱动芯片提供。

负载电容:晶振通常需要连接负载电容以确保振荡的稳定性。这些电容的值通常在晶振的数据手册中给出。

连接至单片机:振荡器的输出连接到单片机的时钟输入引脚。

外部晶振方案的优点包括稳定性高、精度好,适用于对时钟要求较高的应用,例如通信设备、高精度测量仪器等。

内部RC振荡器方案:

内部振荡器:很多单片机都内置了RC(电阻-电容)振荡器。这种振荡器通常比外部晶振简单,但精度较低。

调整频率:有些单片机允许通过软件调整内部RC振荡器的频率,以满足应用的要求。

成本和尺寸:内部RC振荡器方案通常更简单,成本更低,适用于对时钟要求不那么严格的应用。

连接至单片机:内部振荡器的输出直接连接到单片机的时钟输入引脚。

3ecc23a1163e215bd96726a55c622e72.png

二者对比:

内部RC振荡器方案的优点在于成本低、设计简单,适用于一些对时钟精度要求不高的应用,例如一般的嵌入式系统。        

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL安装与卸载

安装 1). 双击官方下来的安装包文件 2). 根据安装提示进行安装(全部默认就可以) 安装MySQL的相关组件,这个过程可能需要耗时几分钟,耐心等待。 输入MySQL中root用户的密码,一定记得记住该密码 配置 安装好MySQL之后,还需要配置环境变量&am…

技术选型思考:分库分表和分布式DB(TiDB/OceanBase) 的权衡与抉择

在当今数据爆炸的时代,数据库作为存储和管理数据的核心组件,其性能和扩展性成为了企业关注的重点。随着业务的发展和数据量的不断增长,传统的单库单表架构逐渐暴露出性能瓶颈和扩展性限制。为了应对这些挑战,企业常常需要在分库分…

【Redis知识点总结】(三)——Redis持久化机制、内存淘汰策略、惰性删除机制

Redis知识点总结(三)——Redis持久化机制、内存淘汰策略、惰性删除机制 Redis持久化RDBAOFAOF与RDB的对比混合持久化 内存淘汰策略惰性删除机制 Redis持久化 Redis有两种数据持久化的方式,一种是RDB、一种是AOF。 RDB RDB是内存快照&#…

Python学习日记之学习turtle库(下 篇)

前言: 书接上篇,我们继续来了解Python内置库 turtle功能库。在前面的文章中,我们初步的了解了一下 turtle库,画布和画笔相关的函数,那么我们继续来深入了解一下吧。 详情见: Python学习日记之学习turtle库…

练习3-softmax分类(李沐函数简要解析)与d2l.train_ch3缺失的简单解决方式

环境为:练习1的环境 网址为:https://www.bilibili.com/video/BV1K64y1Q7wu/?spm_id_from333.1007.top_right_bar_window_history.content.click 代码简要解析 导入模块 导入PyTorch 导入Torch中的nn模块 导入d2l中torch模块 并命名为d2l import torch from torch import nn…

Pytorch学习 day07(神经网络基本骨架的搭建、2D卷积操作、2D卷积层)

神经网络基本骨架的搭建 Module:给所有的神经网络提供一个基本的骨架,所有神经网络都需要继承Module,并定义_ _ init _ _方法、 forward() 方法在_ _ init _ _方法中定义,卷积层的具体变换,在forward() 方法中定义&am…

SpringBoot整合Redis实现分布式锁

SpringBoot整合Redis实现分布式锁 分布式系统为什么要使用分布式锁? 首先,分布式系统是由多个独立节点组成的,这些节点可能运行在不同的物理或虚拟机器上,它们通过网络进行通信和协作。在这样的环境中,多个节点可能同…

UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

一.颜色叠加混合 1.Blend混合 // 正常,透明度混合 Normal Blend SrcAlpha OneMinusSrcAlpha //柔和叠加 Soft Additive Blend OneMinusDstColor One //正片叠底 相乘 Multiply Blend DstColor Zero //两倍叠加 相加 2x Multiply Blend DstColor SrcColor //变暗…

论文研读笔记1:

1.Improving Domain-Adapted Sentiment Classification by Deep Adversarial Mutual Learning: 1.1本篇论文提出了一种名为深度对抗性互学习(Deep Adversarial Mutual Learning, DAML)的新方法,用于改进领域适应性情感分类。 对…

Python快速入门系列-1

Python快速入门系列 第一章: Python简介1.1 Python的历史与发展1.2 Python的优势与特点1.2.1 易学易用1.2.2 动态类型1.2.3 丰富的标准库与第三方库1.2.4 面向对象与函数式编程1.2.5 广泛应用领域 1.3 Python的应用领域 第一章: Python简介 1.1 Python的历史与发展 Python是一…

Winform窗体随着屏幕的DPI缩放,会引起窗体变形及字体变形,superTabControl标签字体大小不匹配

一、前言 superTabControl做的浏览器标签(cefsharp)在缩放比例(125%,150%时字体不协调) 物联网浏览器,定制浏览器,多媒体浏览器(支持H264)参考栏目文章即可 二、配置参数 app.manifest参数 dpiAware =true <application xmlns="urn:schemas-microsoft-c…

ComfyUI-Flowty-TripoSR

这是一个自定义节点&#xff0c;可让您直接从ComfyUI使用TripoSR。TripoSR 是由 Tripo AI 和 Stability AI 合作开发的最先进的开源模型&#xff0c;用于从单个图像快速前馈 3D 重建。&#xff08;TL;DR 它从图像创建 3d 模型。这篇文章主要介绍了将TripoSR作为ComfyUI节点的配…

Git 入门

Git 入门 版本控制 什么是版本控制 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 除了项目源代码&#xff0c;你可以对任何类型的文件进行版本控制。 为什么要版本控制 有了它你就可以将某个文件回溯到之前的状态&#xff…

JVM——执行引擎

文章目录 1、概述2、计算机语言的发展史2.1、机器码2.2、汇编语言2.3、高级语言2.4、字节码 3、Java代码编译和执行过程4、解释器5、JIT编译器5.1、为什么HotSpot VM同时存在JIT编译器和解释器5.2、热点代码探测确定何时JIT5.3、设置执行模式5.4、C1编译器和C2编译器 6、AOT编译…

想到2024年最有前景的副业创业机会?那这个项目你绝对不能错过!

大家好&#xff0c;我是电商花花。 现在看到别人要么都有自己的副业&#xff0c;要么都在做创业项目&#xff0c;你是不是也看的激情澎湃&#xff0c;想要做抖音小店&#xff0c;想要创业赚钱。 2024年做什么副业、创业有盼头&#xff1f;我觉得还得是抖音小店无货源这个电商…

【异常处理】sbt构建Chisel库时出现extracting structure failed:build status:error的解决办法

文章目录 报错背景&#xff1a;解决思路&#xff1a;①IDEA中配置本地的SBT进行下载②更改下载源为华为的镜像站1. 修改sbtconfig.txt2. 增加repositories文件 ③查看报错信息 总结整理的Scala-Chisel-Chiseltest版本信息对应表 报错背景&#xff1a; 最近在写Chisel时&#x…

机器学习--循环神经网络(RNN)1

一、简介 循环神经网络&#xff08;Recurrent Neural Network&#xff09;是深度学习领域中一种非常经典的网络结构&#xff0c;在现实生活中有着广泛的应用。以槽填充&#xff08;slot filling&#xff09;为例&#xff0c;如下图所示&#xff0c;假设订票系统听到用户说&…

【Pytorch】进阶学习:基于矩阵乘法torch.matmul()实现全连接层

【Pytorch】进阶学习&#xff1a;基于矩阵乘法torch.matmul()实现全连接层 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448…

sentinel docker 基础配置学习

1&#xff1a;去官网下载 Releases alibaba/Sentinel GitHub 2&#xff1a;保存到linux 3&#xff1a;编写dockerfile FROM openjdk:8-jreLABEL authors"xxx" #第二步创建一个文件夹Z RUN mkdir /app #第三步复制jar 到app 下 COPY xxxxxx-1.8.7.jar /app/#第四…

原油数据处理:1.聚类、盐含量测定与近红外光谱快速评估

一、原油种类的聚类分析 在塔里木盆地塔河油田的原油处理过程中&#xff0c;需要对原油进行地球化学特征研究&#xff0c;以了解其成因和特征。根据地球化学手段的综合研究结果&#xff0c;塔河油田奥陶系原油属于海相沉积环境&#xff0c;成熟度较高&#xff0c;正构烷烃分布…