很多同学在学习单片机的时候都有遇到过一个东西,那就是晶振。其实这个所谓的晶振全名叫做晶体振荡器,其作用是用于产生原始的时钟频率,晶振产生的频率经过频率发生器的放大或缩小后就成了计算机中各种不同的总线频率 ,用于计算机中各个不同的外设工作,常用晶振的模样如下图所示:
一、什么是时钟频率
计算机是一个由各种集成电路和电子器件组成,每一块集成电路中都集成了数以万计的晶体管和其他电子元件。这样一个十分庞大的系统,要使它能够正常地工作,就必须有一个指挥者,对各部分的工作进行协调。各个元件的动作就是在这个指挥下按不同的先后顺序完成自己的操作的,这个先后顺序我们称为时序。时序是计算机中一个非常重要的概念,如果时序出现错误,就会使系统发生故障,甚至造成死机。那么是谁来产生和控制这个操作时序呢?这就是“时钟”。“时钟”可以认为是计算机的“心脏”,如同人一样,只有心脏在跳动,生命才能够继续。不要把计算机的“时钟”等同于普通的时钟,它实际上是由晶体振荡器产生的连续脉冲波,这些脉冲波的幅度和频率是不变的,这种时钟信号我们称为外部时钟。它们被送入 CPU 中,再形成 CPU 时钟。其实总的来说晶振的作用就是给计算机提供一个时钟信号(一个非常稳定的频率信号),使单片机各内部组件同步工作,并且在和外部设备通信时是也能达到同步。就好像我们做广播体操的时候 广播上喊的节拍1234 2234 3234。。。。然后我们全部的同学就按照这个节奏进行一个个动作。节拍越快我们动作越快。节拍越慢我们动作的越慢。
二、STM32F407时钟树
系统时钟的选择是在启动时进行,复位时内部 16MHZ 的 RC 振荡器被选为默认的 CPU时钟,随后可以选择外部的、具失效监控的 4-26MHZ 时钟;当检测到外部时钟失效时,它将被隔离,系统将自动地切换到内部的 RC 振荡器。在 STM32 中,有五个时钟源,为 HSI、 HSE、 LSI、 LSE、 PLL,它们都是时钟所提供的来源,具体如下图所示:
2.1、HSI 是高速内部时钟, RC 振荡器,频率默认为 16MHz,可以从 STM32 时钟树中看到如下所示
2.2、HSE 是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为3MHz~25MHz,时钟树的截图如下
2.3、LSI 是低速内部时钟, RC 振荡器,频率为 32kHz,可以用于驱动独立看门狗和通过程序选择驱动 RTC(RTC 用于从停机/待机模式下自动唤醒系统),时钟树的截图如下
2.4、LSE 是低速外部时钟,接频率为 32.768kHz 的石英晶体,也可以被用来驱动 RTC,时钟树的截图如下
2.5、PLL 为锁相环输出,其时钟输入源可选择为 HSI 或者 HSE/等。但是其输出频率最大不得超过 120MHz,时钟树的截图如下
三、STM32F407的时钟树深入分析
众所周知,微控制器(处理器)在运行时必须要依赖周期性的时钟脉冲来驱动,而我们的微控制器往往由一个外部晶体振荡器提供时钟作为时钟输入源,之后经过一些分频器或者倍频器转换为多个外部设备的运行时钟,这种时钟“能量”扩散流动的路径就像是大树的养分通过主干流向各个分支,因此常称之为“时钟树”。
上述是STM32F407的外部时钟怎样由8M转变为168M的系统时钟以及各个外设频率分析,以下开始介绍固件库工程中对相应分频器以及倍频器的设置
四、温馨小提示
1、STM32外设时钟在复位之后全部处于关闭状态,这么做的目的是为了降低功耗,当我们使用相关外设时务必先打开相应外设的时钟 !!!
2、硬件设计时外部晶振应该尽量靠近芯片。
3、硬件连接外部晶振时一般需要外接两个瓷片电容,这两个瓷片电容的范围一般在10~50pF之间,这两个瓷片电容的作用是在晶体振荡器产生振荡时进行削减谐振保证频率的稳定。
4、锁相环(PLL)中的压控振荡器(VCO)的作用保证锁相环电路Q值稳定,而VCO的输入频率必须在1~2M之间,所以我们设置 M 值为8,由此得到PLL输入时钟频率为1M。VCO的输出时钟频率必须在192~432M之间,所以我们设置 N 值为336,由此得到PLL输出时钟为336M。
关键字:STM32F4 时钟树 晶振
引用地址:
关于STM32F4中的时钟树
推荐阅读最新更新时间:2024-11-17 11:38
从5方面描述STM32F407+ESP8266连接机智云过程
一、硬件组成如下图所示: 硬件全家福: STM32F407ZGT6+ESP8266 二、下载通用APP DEMO: 1.在应用商店,搜索“机智云”APP。 通用APP Demo 又称“机智云”APP 2.安装、注册、登陆后如下图所示: 三、调试过程详解: 创建数据点 生成MCU工程 下载MCU工程并根据开发板原理图修改工程,修改的地方如程序中红色加注释的部分 main.c 中加入红色标出的GPIO初始化代码 static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ __HAL_RCC_GP
[单片机]
STM32F4 TIMER定时器配置(二)
一. TIMER配置结构体 1. TIM_TimeBaseInitTypeDef 结构体 2. 计数方式TIM_CounterMode 3.中断服务函数 二. 定时器配置 1.开启定时器时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIMx,ENABLE); 2. 配置定时器结构体 3. 配置NVIC结构体 详解NVIC笔记 4. 编写中断服务函数 5. 例 定时器3初始化函数 void timer_init(int Period,int Prescaler) { //使能时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_T
[单片机]
STM32F407ZGT6学习之工程建立及点灯
(一). 使用的平台 使用的软件平台有两个,分别是IAR8.1和source insight4,下面给出两个软件的下载链接,仅供学习使用,其他用途请使用正版软件: 1. IAR8.1的编译下载平台,百度网盘下载链接:链接:https://pan.baidu.com/s/10_9VpOSaXK8ClsWqcTFSaQ,提取码: 6v2a IAR8.1的安装流程可以参考第三方的网址:https://www.sdbeta.com/wg/2018/0307/220301.html 注意:IAR8.1在破解的时候可能会出现“Could not get infornation...的问题”,原因是IAR存放许可证的文件夹没有创
[单片机]
以STM32F4为控制核心的四轴航拍飞行器的设计与实现
摘要 本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理,通信模块,动力系统,机架,云台伺服系统组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID作为控制器,实现飞行,云台增稳等功能。具有灵活轻盈,延展性,适应性强好等特点。 引言 四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。 四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平
[单片机]
怎么用示波器丈量晶振是不是起振
笔者在这次电路板测验时,发现一块电路板老是烧不进程序。遂予以查看: 1、电源,地都没有疑问 2、用示波器测晶振是不是起振,发现了一个古怪的疑问,XOUT端的24MHz类正弦波呈现,而XIN即是没有?是何要素,没有找出来要素。 所以就不得换了颗主芯片,QFP128早年不会,如今拆装起来现已很轻松了,谢谢伙伴的辅导(小满意一把,要知道早年最通常的贴片我都不敢装)。 可是换过芯片后,尽管能够烧写程序了,可是我又量了一下晶振,仍是XIN没有,XOUT有。能够供认芯片已正常作业了,为啥量不出晶振起振呢?电路无误,只能查看示波器是不是有疑问。 用探头在示波器上做自校对,5V 1KHz方波正常。那疑问出在
[测试测量]
stm32F4 配置串口+DMA 接收不定长数据 串口空闲中断
串口是一种很常见的通讯接口,通过串口回传数据是很多智能型的传感器都拥有的特点。 很多智能型传感器内置单片机 通过单片机将原始的数据处理,然后以串口的形式发送给用户单片机,用户单片机在利用串口得来的信息进行决策。 那么有没有一种简化通讯的方式呢 ?那就是串口 +DMA了! 主要思想: 配置一个串口DMA接收 任务,任务搬运的数据量要大于一次通讯的总数据量(也就是DMA 的搬运工作还没结束 我们的数据就已经搬完了) 然后这时候因为串口的总线 没有数据传输了(数据传输频率不是特别高 完全占用总线的情况下,总线肯定会有一段时间空闲!) 这时候 因为串口的总线空闲会触发一个 串口总线控线中断,在这个中断里面 我们进行数据处理(获取感兴趣
[单片机]
LUCT低不确定性时钟树设计方法、算法和工具
前言 – LUCT是什么 第一层时钟树和第二层时钟树 时钟树设计及其设计方式是引起系统芯片性能差异的主要原因。 从历史角度看,ASIC时钟树设计人员利用商用自动化工具设计时钟树,以确保执行时间等性能取得预期结果,但是,这种方法的时钟偏差和插入延时等性能却不尽人意,另外,高复杂性、频率和尺寸设计使得传统方法完全没有可行性。 低不确定性时钟树 设计及算法与在系统芯片上实现的第一层时钟树的物理定义有关,能够让设计人员克服传统设计方法的所有低效率问题。 从顶层的根时钟网络(通常是PLL输出)到中层时钟网络,LUCT是一个高质量的负载均衡的时钟树,其目标是将时钟信号从中央锁相环PLL送到芯片的大部分区域,详情参见参
[半导体设计/制造]
【STM32】STM32F4 GPIO八种模式及工作原理详解
1 GPIO简介 GPIO,即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F407有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口 通常称为 PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。 并且F4系列是基于Cortex-M4内核 GPIO的复用: STM32F4 有很多的内置外设,这些外设的外部引脚都是与 GPIO 共用的。也就是说,一个引脚可以有很多作用,但是默认为IO口,如果想使用一个 GPIO内置外设的功能引脚,就需要GPIO
[单片机]