打印
[应用相关]

STM32单片机的外部时钟晶振

[复制链接]
484|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
                                    

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

        你提到的时钟先分频再倍频,这个需要深入到STM32的内部去一探究竟了,在其技术参考手册的第7.2节Clocks的一开始有一个表格,时钟树(Figure 8. Clock tree),它完全地列出来STM32这个芯片内部各个模块的时钟来源以及相关的从属关系。

        在这个图的正中央,有一个核心时钟: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
       
        图示:

               
                                
            

使用特权

评论回复
沙发
powermaker2568| | 2020-9-30 15:53 | 只看该作者
时钟树?
感觉很不错啊!

使用特权

评论回复
板凳
RunningX| | 2020-9-30 17:57 | 只看该作者
时钟源频率可以有多种,PLL倍频后不要超出阀值,就可以用的

使用特权

评论回复
地板
晓伍| | 2020-10-10 10:24 | 只看该作者
楼主辛苦了啊

使用特权

评论回复
5
八层楼| | 2020-10-10 10:32 | 只看该作者
介绍的很详细 谢谢

使用特权

评论回复
6
观海| | 2020-10-10 10:33 | 只看该作者
开拓眼界了 谢谢

使用特权

评论回复
7
guanjiaer| | 2020-10-10 10:34 | 只看该作者
非常不错的资料

使用特权

评论回复
8
heimaojingzhang| | 2020-10-10 10:35 | 只看该作者
支持楼主一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

681

主题

1534

帖子

7

粉丝