STM32关于外部时钟晶振为什么选用8MHz

发布者:BlissfulMoon最新更新时间:2017-11-02 来源: eefocus关键字:STM32  外部时钟  晶振 手机看文章 扫描二维码
随时随地手机看文章

芯片的主晶振频率范围一般来说在数据手册(Datasheet)和技术参考手册(Technical Reference Manual)中都有介绍。

 

你提到的时钟先分频再倍频,这个需要深入到STM32的内部去一探究竟了,

在其技术参考手册的第7.2节Clocks的一开始有一个表格,时钟树(Figure 8. Clock tree),它完全地列出来STM32这个芯片内部各个模块的时钟来源以及相关的从属关系。
STM32关于外部时钟晶振为什么选用8MHz


在这个图的正中央,有一个核心时钟:SYSCLK,它最大频率是72MHz,它的时钟信号通过选择器SW可以由PLLCLK提供(也可由HIS、HSE提供)。

PLL,毫无疑问,它是用来倍频的,可以*2,*3,*4……*16,它的时钟信号通过选择器PLLSRC可以由8MHz的高速内部RC振荡器经过二分频提供,也可由PLLXTPRE的选择器输出提供,

而PLLXTPRE的选择器就接的是我们的8MHz的高速外部时钟(直接接入或二分频接入)。

 

总的来说,对于我们这个板子,若使用高速外部时钟给STM32内核提供时钟源,一般以下两条路:

① [高速外部时钟:8MHz]>>>[不分频:8MHz]>>>>[PLL倍频,2到16倍]>>>[SYSCLK,16MHz-128MHz]

 

②[高速外部时钟:8MHz]>>>[二分频:4MHz]>>>>[PLL倍频,2到16倍]>>>[SYSCLK,8MHz-64MHz]

 

我们注意到,在8MHz外部时钟给PLL之前若分频的话,那么最大(×16)才64MHz,因此,我们都会给PLL以8MHz的时钟源让其倍频,这样能使它发挥到72MHz的高频率

正因如此,系统时钟总是8的倍数。

 

我们看这个芯片的数据手册,立刻就能明白,不是必须得接8MHz的晶振的

①   高速外部时钟源频率范围(P55-P58):1MHz~25MHz(有源);4MHz~16MHz(无源)

②   PLL输入时钟源频率范围(P62):1MHz-25MHz

③   PLL输出时钟源频率范围(P62):16MHz~72MHz

 

我们自己设计板子的时候只要满足它的范围就可以了。

例如:我们可以选择一个12MHz的无源晶体接到STM32芯片上。

在给STM32进行时钟配置的时候,

①   选择PLLXTMRE的输入源为12MHz/2 = 6MHz

②   选择PLLSRC的输入源为PLLXTMRE的输出6MHz,

③   在PLL内进行3到12倍的倍频(最小16MHz,最大72MHz),

最终我们可选择的频率就有:18MHz、24MHz、30MHz、36MHz、42MHz、48MHz、54MHz、60MHz、66MHz、72MHz

图示:
STM32关于外部时钟晶振为什么选用8MHz



关键字:STM32  外部时钟  晶振 引用地址:STM32关于外部时钟晶振为什么选用8MHz

上一篇:STM32的GPIO口工作的八种模式
下一篇:STM32的系统时钟的配置的代码的讲解

推荐阅读最新更新时间:2024-03-16 15:42

利用STM32 的串口来发送和接收数据实验
0目标 1 STM32 串口简介 2 硬件设计 3 软件设计 4 下载验证 0.目标 利用串口 1 不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑。 1.STM32 串口简介 串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能, GPIO 时钟使能 2) 串口复位 3) GPIO 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤) 6) 使能串口 7) 编写中断处理函数 注:对于复用功能的 IO,我们首先要使能 GPIO 时钟,然后使能复用功能时钟,同时要把 GPIO 模式设置为复用功能对应的模式。 查看
[单片机]
利用<font color='red'>STM32</font> 的串口来发送和接收数据实验
STM8的AIR与STM32的Keil的指定地址存数据
一, 经验分享描述 写这篇经验分享的原因是,之前有一个客户,他希望在KE02的芯片中,不要出现使用EEPROM操作命令的形式初始化EEPROM,但是需要芯片的EEPROM中就有他所规定好的数据,以便于程序直接调用。其实就把EEPROM中的数据当做固定在flash的数据一样使用。而目前也没有看到使用具体的工具去直接烧写EEPROM,所以我们就想是否能够像flash的constant的定义一样定义EEPROM的数据呢?通过实际操作发现还是切实可行的,于是就分享了这篇在IAR与KEIL中如何直接定义常量到EEPROM中的经验分享。其实方法和之前本人分享过的经验分享“KE02在CW中使用常量形式初始化EEPROM值”合为姐妹篇,当然这种方
[单片机]
STM8的AIR与<font color='red'>STM32</font>的Keil的指定地址存数据
STM32知识:什么是SYSTICK 作用是什么
什么是SYSTICK: 这是一个24位的系统节拍定时器system TIck TImer,SysTIck,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。 作用: 在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,进而导致整个系统崩溃。要解决这个问题,可以使用实时操作系统(RTOS). 因为RTOS以并行的架构处理任务,单一任务的崩溃并不会牵连到整个系统。这样用户出于可靠性的考虑可能就会基于RTOS来设计自己的应用程序。这样SYSTICK存在的意义就是提供必要的时钟节拍,为RTOS的任务调度提供
[单片机]
<font color='red'>STM32</font>知识:什么是SYSTICK 作用是什么
STM32 FMSC使用理解
看了很长时间 FMSC资料 都说的模糊的。 其实很简单: fsmc就是为了扩展内存的,如我们在 STM32 芯片外添加一个sram芯片,那么我们只需要把 sram芯片的地址线和数据线和 STM32 连接后,然后将内核规定的地址数赋给sram的地址,那么我们就可以通过内核规定的地址去访问sram芯片了
[单片机]
<font color='red'>STM32</font> FMSC使用理解
STM32单片机中RTC的秒中断的原理解析
RTC(Real Time Clock)是实时时钟的意思,它其实和TIM有点类似,也是利用计数的原理,选择RTC时钟源,再进行分频,到达计数的目的。 该文主要讲述关于RTC的秒中断功能,这个功能类似SysTIck系统滴答的功能。RTC秒中断功能其实是每计数一次就中断一次。注意,这里所说的秒中断并非一定是一秒的时间,它是由RTC时钟源和分频值决定的“秒”的时间,当然也是可以做到1秒钟中断一次。 本文章提供的实例工程,其实验效果是: 主函数间隔0.5秒LED变化一次; 秒中断一次打印数据“RTC Sec.。.”; 也就是LED变化一次,串口打印一次数据“RTC Sec.。.” 扩展部分的功能RTC计数:可以实现RTC闹钟,本文
[单片机]
<font color='red'>STM32</font>单片机中RTC的秒中断的原理解析
STM8s外部时钟晶振失效时钟安全系统CSS启动演示
使用的最小系统晶振是8m的。 这里说下配置过程: 时钟自动切换,开启切换中断 在中断里面清除中断标志,使能CSS并开启CSS中断 CSS中断发生,清除CSS中断标志,将HSI二分频,即16M/2=8M,与外部晶振相同,这样不会影响串口波特率 窗口输出配置信息: 用手触碰PA1、PA2引脚使外部晶振失效 串口输出CSS中断
[单片机]
STM8s<font color='red'>外部</font><font color='red'>时钟</font><font color='red'>晶振</font>失效<font color='red'>时钟</font>安全系统CSS启动演示
STM32 DMA使用详解
DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。下面用问答的形式表达我的思路。 DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。 有多少个DMA资源? 有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。 数据从什么地方送到什么地方? 外设到SRAM(I2C/UART等获取数据并送入SRAM); SRAM的两个区域之间; 外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比); SRAM到外
[单片机]
<font color='red'>STM32</font> DMA使用详解
STM32单片机半主机模式的应用
在keil中编程时常会遇到__use_no_semihosting_swi的警告,这时你就是进入了半主机模式。 在嵌入式的编程中你是避免不了使用printf、fopen、fclose等函数的但是因为嵌入式的程序中并没有对这些函数的底层实现,使得设备运行时会进入软件中断BAEB处,这时就需要__use_no_semihosting_swi这 个声明,使程序遇到这些文件操作函数时不停在此中断处,具体操作如下,将下列程序加入你的工程中: #pragmaimport(__use_no_semihosting_swi)#pragmaimport(_main_redirection)constchar__stdin_name[150]
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved