找回密码
 注册
关于网站域名变更的通知
查看: 266|回复: 2
打印 上一主题 下一主题

解析STM32的时钟树

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-12-1 16:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
对于广大初次接触STM32的读者朋友(甚至是初次接触ARM器件的读者朋友)来说,在熟悉了开发环境的使用之后,往往“栽倒”在同一个问题上。这问题有个关键字叫:时钟树。
         众所周知,微控制器(处理器)的运行必须要依赖周期性的时钟脉冲来驱动——往往由一个外部晶体振荡器提供时钟输入为始,最终转换为多个外部设备的周期性运作为末,这种时钟“能量”扩散流动的路径,犹如大树的养分通过主干流向各个分支,因此常称之为“时钟树”。在一些传统的低端8位单片机诸如51,AVR,PIC等单片机,其也具备自身的一个时钟树系统,但其中的绝大部分是不受用户控制的,亦即在单片机上电后,时钟树就固定在某种不可更改的状态(假设单片机处于正常工作的状态)。比如51单片机使用典型的12MHz晶振作为时钟源,则外设如IO口、定时器、串口等设备的驱动时钟速率便已经是固定的,用户无法将此时钟速率更改,除非更换晶振。

! G: y9 }. \+ m8 s# r' w% I

STM32时钟树.pdf

432.3 KB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-12-1 17:09 | 只看该作者
芯片中的时钟是如何获取以及如何供应给各个功能模块,一般有如下方法:0 S& ^4 G/ {  K+ t' R

9 M" T8 z+ e/ W- w- m4 F    外部直接输入时钟信号
5 ]6 g' }, L# [' W) y0 \    这种情况比较少见。由于SOC系统中不同功能模块工作的频率不一样,因此从外部直接拉时钟信号进芯片,不具备可行性。对于某些特别简单的ASIC芯片,可能有机会用到这种方案。" a: S4 i. V# M" B% L" i6 k4 _

/ X; F1 `% c0 ]9 Q  x4 Q    外部晶振+内部时钟发生器
5 [! c0 b0 i* q5 b/ K& k    这种方案是从外部晶振引入 IO,与内部时钟发生器产生一个24MHz时钟信号,然后供给各种功能模块。
8 ^2 K: x$ ]0 H( s0 E+ A
6 }8 t9 g: J# _% d% i    外部晶振+内部时钟发生器+内部PLL产生高频时钟+内部分频器得到各种频率的时钟
' t) S9 A4 j0 F' p1 B    这种时钟获取方式是目前 SOC 芯片设计实现中普遍采用的时钟产生方案。这个方案的整体思路是先从晶振,时钟发生器产生一个24MHz信号,再经过 PLL 产生倍频时钟(高频时钟),最后再经过分频电路产生各种频点的时钟供给各个功能模块。

该用户从未签到

3#
发表于 2022-12-2 09:33 | 只看该作者
这个看懂对程序很有帮助
" w7 D3 C0 e$ M# V" Q- G5 [这个图很容易看出每个外设最高的速率
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 03:25 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表