热门标签 | HotTags
当前位置:  开发笔记 > 开放平台 > 正文

STM32学习三之时钟树分析

上一章我们已经将STM32的开发环境搭建成功了,那么接下来我们就可以开始进行实际操作了。在进行实际操作之前我们需要提前准备好一些资料文档,这些资料文档大家可以在我的百度网盘 htt

上一章我们已经将STM32的开发环境搭建成功了,那么接下来我们就可以开始进行实际操作了。在进行实际操作之前我们需要提前准备好一些资料文档,这些资料文档大家可以在我的百度网盘 https://pan.baidu.com/s/1BejuAkvtU5KKlJEo3HAXMA  提取码:dfs6  中进行下载。

《STM32学习三之时钟树分析》

很多同学在学习单片机的时候都有遇到过一个东西,那就是晶振。其实这个所谓的晶振全名叫做晶体振荡器,其作用是用于产生原始的时钟频率,晶振产生的频率经过频率发生器的放大或缩小后就成了计算机中各种不同的总线频率 ,用于计算机中各个不同的外设工作,常用晶振的模样如下图所示:

《STM32学习三之时钟树分析》

一、什么是时钟频率

计算机是一个由各种集成电路和电子器件组成,每一块集成电路中都集成了数以万计的晶体管和其他电子元件。这样一个十分庞大的系统,要使它能够正常地工作,就必须有一个指挥者,对各部分的工作进行协调。各个元件的动作就是在这个指挥下按不同的先后顺序完成自己的操作的,这个先后顺序我们称为时序。时序是计算机中一个非常重要的概念,如果时序出现错误,就会使系统发生故障,甚至造成死机。那么是谁来产生和控制这个操作时序呢?这就是“时钟”。“时钟”可以认为是计算机的“心脏”,如同人一样,只有心脏在跳动,生命才能够继续。不要把计算机的“时钟”等同于普通的时钟,它实际上是由晶体振荡器产生的连续脉冲波,这些脉冲波的幅度和频率是不变的,这种时钟信号我们称为外部时钟。它们被送入 CPU 中,再形成 CPU 时钟。其实总的来说晶振的作用就是给计算机提供一个时钟信号(一个非常稳定的频率信号),使单片机各内部组件同步工作,并且在和外部设备通信时是也能达到同步。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。

二、STM32F407时钟树

系统时钟的选择是在启动时进行,复位时内部 16MHZ 的 RC 振荡器被选为默认的 CPU时钟,随后可以选择外部的、具失效监控的 4-26MHZ 时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的 RC 振荡器。在 STM32 中,有五个时钟源,为 HSI、 HSE、 LSI、 LSE、 PLL,它们都是时钟所提供的来源,具体如下图所示:

《STM32学习三之时钟树分析》

2.1、HSI 是高速内部时钟, RC 振荡器,频率默认为 16MHz,可以从 STM32 时钟树中看到如下所示

《STM32学习三之时钟树分析》

2.2、HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为3MHz~25MHz,时钟树的截图如下

《STM32学习三之时钟树分析》

2.3、LSI 是低速内部时钟, RC 振荡器,频率为 32kHz,可以用于驱动独立看门狗和通过程序选择驱动 RTC(RTC 用于从停机/待机模式下自动唤醒系统),时钟树的截图如下

《STM32学习三之时钟树分析》

2.4、LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体,也可以被用来驱动 RTC,时钟树的截图如下

《STM32学习三之时钟树分析》

2.5、PLL 为锁相环输出,其时钟输入源可选择为 HSI 或者 HSE/等。但是其输出频率最大不得超过 120MHz,时钟树的截图如下

《STM32学习三之时钟树分析》

三、STM32F407的时钟树深入分析

众所周知,微控制器(处理器)在运行时必须要依赖周期性的时钟脉冲来驱动,而我们的微控制器往往由一个外部晶体振荡器提供时钟作为时钟输入源,之后经过一些分频器或者倍频器转换为多个外部设备的运行时钟,这种时钟“能量”扩散流动的路径就像是大树的养分通过主干流向各个分支,因此常称之为“时钟树”。

《STM32学习三之时钟树分析》

上述是STM32F407的外部时钟怎样由8M转变为168M的系统时钟以及各个外设频率分析,以下开始介绍固件库工程中对相应分频器以及倍频器的设置

《STM32学习三之时钟树分析》

四、温馨小提示

1、STM32外设时钟在复位之后全部处于关闭状态,这么做的目的是为了降低功耗,当我们使用相关外设时务必先打开相应外设的时钟 !!!

2、硬件设计时外部晶振应该尽量靠近芯片。

3、硬件连接外部晶振时一般需要外接两个瓷片电容,这两个瓷片电容的范围一般在10~50pF之间,这两个瓷片电容的作用是在晶体振荡器产生振荡时进行削减谐振保证频率的稳定。

4、锁相环(PLL)中的压控振荡器(VCO)的作用保证锁相环电路Q值稳定,而VCO的输入频率必须在1~2M之间,所以我们设置 M 值为8,由此得到PLL输入时钟频率为1M。VCO的输出时钟频率必须在192~432M之间,所以我们设置 N 值为336,由此得到PLL输出时钟为336M。

 

 


推荐阅读
  • pypy 真的能让 Python 比 C 还快么?
    作者:肖恩顿来源:游戏不存在最近“pypy为什么能让python比c还快”刷屏了,原文讲的内容偏理论,干货比较少。我们可以再深入一点点,了解pypy的真相。正式开始之前,多唠叨两句 ... [详细]
  • 【转】强大的矩阵奇异值分解(SVD)及其应用
    在工程实践中,经常要对大矩阵进行计算,除了使用分布式处理方法以外,就是通过理论方法,对矩阵降维。一下文章,我在 ... [详细]
  • 高效重装Windows 10系统指南
    如何快速地为您的电脑重装Windows 10系统?本文将详细介绍从下载系统镜像到安装完成的每一步操作。 ... [详细]
  • 短暂的人生中,IT和技术只是其中的一部分。无论换工作还是换行业,最终的目标是成功、荣誉和收获。本文探讨了技术人员如何跳出纯技术的局限,实现更大的职业发展。 ... [详细]
  • MATLAB是科技工作者的重要工具,以其强大的科学计算能力和简洁的编程风格而广受好评。然而,MATLAB生成的图形默认分辨率较低,这在某些情况下可能会影响图形的质量。本文将介绍如何在MATLAB中保存高分辨率的图形。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • 最近偶然读到zac关于‘频繁修改页面标题会导致降权吗?’的文章,引发了广泛讨论。本人多次修改标题,每月修改两次以上已成常态。虽然有时文章收录会略有下降,但总体影响不大。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 本文详细介绍了 Python 中的快速排序算法,包括其原理、实现方法以及应用场景。同时,还探讨了其他常见排序算法及其特点。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 使用Tkinter构建51Ape无损音乐爬虫UI
    本文介绍了如何使用Python的内置模块Tkinter来构建一个简单的用户界面,用于爬取51Ape网站上的无损音乐百度云链接。虽然Tkinter入门相对简单,但在实际开发过程中由于文档不足可能会带来一些不便。 ... [详细]
  • 分享两个GitHub链接,今天看到的,超赞超赞不能更赞了,答应我一定要去看好吗~~~~不论是笔记还是github中分享的其它资源ÿ ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
author-avatar
辰小坏2602938945
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有