单片机为什么需要时钟?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振荡器方案的优点在于成本低、设计简单,适用于一些对时钟精度要求不高的应用,例如一般的嵌入式系统。        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

动态规划(算法竞赛、蓝桥杯)--状态压缩DP蒙德里安的梦想

1、B站视频链接&#xff1a;E31 状态压缩DP 蒙德里安的梦想_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; const int N12,M1<<N; bool st[N];//st[i]存储合并列的状态i是否合法 long long f[N][M];//f[i][j]表示摆放第i列&#xff0c;状态为…

第四节 JDBC简单示例代码

本文章教程中将演示如何创建一个简单的JDBC应用程序的示例。 这将显示如何打开数据库连接&#xff0c;执行SQL查询并显示结果。 这个示例代码中涉及所有步骤&#xff0c;一些步骤将在本教程的后续章节中进行说明。 创建JDBC应用程序 构建JDBC应用程序涉及以下六个步骤 - 导…

Python 全栈系列232 再次搭建RabbitMQ

说明 最近想重新上RabbitMQ&#xff0c;主要目的还是为了分布式任务调度。在Kafka和RabbitMQ两者犹豫了一下&#xff0c;还是觉得RabbitMQ好一些。 在20年的时候有搞过一阵子的RabbitMQ,看了下当时的几篇文章&#xff0c;觉得其实想法一直没变过。 Python - 装机系列24 消息…

Redis之事务(详细解析)

请直接看原文:不能回滚的Redis事务还能用吗 - 知乎 (zhihu.com) ------------------------------------------------------------------------------------------------------------------------------ 1、Redis事务的概念&#xff1a; Redis 事务的本质是一组命令的集合。…

结合大象机器人六轴协作机械臂myCobot 280 ,解决特定的自动化任务和挑战!(上)

项目简介 本项目致力于探索和实现一种高度集成的机器人系统&#xff0c;旨在通过结合现代机器人操作系统&#xff08;ROS&#xff09;和先进的硬件组件&#xff0c;解决特定的自动化任务和挑战。一部分是基于Jetson Orin主板的LIMO PPRO SLAM雷达小车&#xff0c;它具备自主导航…

2024-03-05 linux 分区老显示满,Use 100%,原因是SquashFS 是一种只读文件系统,它在创建时就已经被填满,所有空间都被使用。

一、这两天一直纠结一个问题&#xff0c;无论怎么修改&#xff0c;linux 分区老显示满&#xff0c;Use 100%&#xff0c;全部沾满。如下图的oem分区。 二、导致出现上面的原因是&#xff1a;SquashFS文件系统里的空间利用率总是显示为100%。 三、SDK里面也说明SquashFS文件系统…

Linux笔记--make

使用上一节的 main.c、add.c、sub.c文件进行编译&#xff0c;编译的过程有很多步骤&#xff0c;如果要重新编译&#xff0c;还需要再重来一遍&#xff0c;能不能一步完成这些步骤?将这些步骤写到makefile文件中&#xff0c;通过make工具进行编译 一个工程中的源文件不计其数&a…

java-ssm-jsp-大方县粮油购销有限公司粮食收购管理系统

java-ssm-jsp-大方县粮油购销有限公司粮食收购管理系统 获取源码——》公主号&#xff1a;计算机专业毕设大全

Maven【5】在IDEA环境中配置和使用Maven

文章目录 【1】创建父工程1.创建 Project2.开启自动导入 【2】配置 Maven 信息【3】创建 Java 模块工程1.创建2.maven命令操作 【4】创建 Web 模块工程1.创建模块2.Web设定 【1】创建父工程 1.创建 Project 按照idea工程的布局&#xff0c;project相当于父工程&#xff0c;里…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(二)-向量元素到向量寄存器状态的映射

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容&#xff1a; 这是一份关于向量扩展的详细技术文档&#xff0c;内容覆盖了向量指令集的多个关键方面&#xff0c;如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

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

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

【操作系统概念】 第3章:进程

文章目录 0.前言3.1进程概念3.1.1 进程3.1.2 进程状态3.1.3 进程控制块&#xff08;PCB&#xff09; 3.2、进程调度3.2.1 调度队列3.2.2 调度程序3.2.3 上下文切换 3.3 进程操作3.3.1 进程创建3.3.2 进程终止 3.4 进程间通信 0.前言 早期的计算机一次只能执行一个程序。这种程序…

Nginx 可视化管理软件 Nginx Proxy Manager

一、简介 Nginx Proxy Manager 是一款开源的 Nginx 可视化管理界面&#xff0c;基于 Nginx 具有漂亮干净的 Web UI 界面。他允许用户通过浏览器界面轻松地管理和监控 Nginx 服务器&#xff0c;可以获得受信任的 SSL 证书&#xff0c;并通过单独的配置、自定义和入侵保护来管理…

备战蓝桥杯---动态规划的一些思想2

话不多说&#xff0c;直接看题&#xff1a; 1.换根DP&#xff1a; 我们肯定不能对每一个根节点暴力求&#xff0c;我们不妨先求f[1]&#xff0c;我们发现当他的儿子作为根节点时深度和为f[1](n-cnt[i])-cnt[i](cnt[i]表示以i为根的节点数&#xff09;&#xff0c;这样子两遍DFS…

CSS的三种定位,web前端开发入门学习

正文 js逻辑判断 1)请写出下面的答案? 内存泄漏 1)哪些操作会造成内存泄漏&#xff1f; 2)js内存泄漏的解决方式 dom 1)dom是哪种基本的数据结构&#xff1f; 2)dom操作的常用api有哪些&#xff1f; 3)dom节点的attribute和property有何区别&#xff1f; 4)dom结构操作/ …

相机类型的分辨率长宽、靶面尺寸大小、像元大小汇总

镜头的靶面尺寸大于等于相机靶面尺寸。 相机的芯片长这样&#xff0c;绿色反光部分&#xff08;我的手忽略&#xff09;&#xff1a; 基本所有像素的相机的靶面大小都可以在这个表格里面找到。 镜头的靶面尺寸在镜头外表上可以找到&#xff0c;选型很重要&#xff01;

Mysql80服务无法启动请输入Net helpMsg3534以获得更多的帮助

起因&情景&#xff1a; 朋友正在操作数据库&#xff0c;然后电脑突然死机&#xff0c;再重启电脑后启动数据库服务报&#xff1a; 然后朋友尝试各种操作都没有办法正常启动&#xff0c; 一、网上解决方案&#xff1a;&#xff08;先别操作&#xff09; 1 删掉&#xff1a…

吴恩达deeplearning.ai:机器学习的开发过程与优化方法

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 我想在接下来分析下开发机器学习系统的过程&#xff0c;这样当你自己动手时&#xff0c;能够做出更加正确的判断。 机器学习开发的迭代 Iterative loop of ML development 决定模型架构 第…

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型

惯性导航 | 测量方程中的噪声模型与离散时间噪声模型 IMU测量方程中的噪声模型IMU的离散时间噪声模型 IMU测量方程中的噪声模型 在大多数系统中&#xff0c;IMU的噪声由两部分组成&#xff1a;测量噪声&#xff08;Measurement Nosie&#xff09;与零偏&#xff08;Bias&#…

【Numpy】给数组增加一个维度

【Numpy】给数组增加一个维度 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 创…