ⅰ、概述
对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳。
对于使用开发板学习的朋友来说,rcc系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的晶振基本都是官方标准的时钟频率,使用官方的标准库,这样系统时钟就是默认的配置,也就是默认的频率。但对于自己设计开发板,或者想要改变系统时钟频率(如:降低功耗就需要降频)的朋友来说,配置系统时钟就有必要了。
关于时钟这一块对定时器(tim、rtc、wdg等)相关的外设也比较重要,因为要求精准,就需要时钟频率精准。
ⅱ、关于时钟
1.时钟分类
stm32芯片(所有型号)的时钟包含4类:
hse(high speed external)高速外部时钟
hsi(high speed internal)高速内部时钟
lse(low speed external)低速外部时钟
lsi(low speed internal)低速内部时钟
2.时钟源
stm32芯片(所有型号)驱动系统时钟的时钟源:
hsi内部高速时钟
hse外部高速时钟
pllclk倍频时钟
stm32具有以下两个次级时钟源:
32 khz 低速内部 rc (lsi rc),该 rc 用于驱动独立看门狗,也可选择提供给 rtc 用于停机/待机模式下的自动唤醒。
32.768 khz 低速外部晶振( lse 晶振),用于驱动 rtc 时钟 (rtcclk)。对于每个时钟源来说,在未使用时都可单独打开或者关闭,以降低功耗。
3.时钟树(框图)
关于stm32的时钟树针对不同系列芯片可能存在差异。f0、f1和f3系列芯片(主流芯片,频率相对较低)有很多相似的地方,f2和f4(高性能芯片)系列芯片有很多相似的地方。但是,f3芯片和f4芯片的时钟树之间却存在很大差异,具体请看参考手册rcc相关章节。
stm32时钟控制器为应用带来了高度的灵活性,用户在运行内核和外设时可选择使用外部晶振或者使用振荡器,既可采用最高的频率,也可为以太网、 usb otg fs 以及 hs、 i2s 和 sdio等需要特定时钟的外设保证合适的频率。
以f417芯片为例:可通过多个预分频器配置 ahb 频率、高速 apb (apb2) 和低速 apb (apb1)。 ahb 域的最大频率为 168 mhz。高速 apb2 域的最大允许频率为 84 mhz。低速 apb1 域的最大允许频率为 42 mhz。实际上输出的最大时钟可以适当提高一点,但为了保证在多种环境下,最好还是不要超过标准的最大值。
stm32f4xx 器件具有两个 pll:
主 pll (pll) 由 hse 或 hsi 振荡器提供时钟信号,并具有两个不同的输出时钟:
第一个输出用于生成高速系统时钟(最高达 168 mhz)
第二个输出用于生成 usb otg fs 的时钟 (48 mhz)、随机数发生器的时钟
专用 pll (plli2s) 用于生成精确时钟,从而在 i2s 接口实现高品质音频性能。
由于在 pll 使能后主 pll 配置参数便不可更改,所以建议先对 pll 进行配置,然后再使能(选择 hsi 或 hse 振荡器作为 pll 时钟源,并配置分频系数 m、 n、 p 和 q)。
plli2s 使用与 pll 相同的输入时钟( pllm[5:0] 和 pllsrc 位为两个 pll 所共用)。但是, plli2s 具有专门的使能/禁止和分频系数( n 和 r)配置位。在 plli2s 使能后,配置参数便不能更改。
ⅲ、代码分析
以stm32f4x5、x7系列芯片为例来分析一下系统时钟的配置。
参考软件工程:
https://yunpan.cn/crepwdshsk4yc访问密码 65b1
1.倍频参数
结合上面时钟树和源代码可以看得出来,系统时钟pllclk的计算主要是配置pll_m、pll_n、pll_p这三个参数,最后168m是通过分频、倍频得出来的。
2.验证时钟频率
对于stm32芯片来说,验证系统时钟最终运行多大的速度,最准确的验证方法的用示波器测试它的系统时钟。
这里描述一下怎样用示波器来测试系统时钟。其实很简单,就是在软件代码里面配置时钟输出(这里可以输出多种类型的时钟hse、hsi、pllclk等),根据代码配置不同,相应输出的时钟就不同。请看源代码:
我提供的代码里面就有这一选项,将定义配置为1,就打开了这个功能。时钟输出的参数有两个,时钟源,分频值。注意:这里的最大输出时钟是100m,所以pllclk时钟分频之后才能输出,不然你用示波器检测不到波形(我测试过了)。
最后输出的波形如图:
ⅳ、说明
关于stm32的开发,软件兼容性是很好的,不要觉得你的芯片和我总结的实例有差异就不看了,其实是错误的认识,特别是同一个系列的芯片基本上程序都兼容,也就是可以互相使用。
云知声公司有望成为科创板AI语音第一股
近红外光激励纳米发光材料新进展
IR扩充坚固可靠的600V节能沟道IGBT系列
激光手套的制作
什么是激光雷达技术?单线激光雷达原理揭秘
STM32F4_ RCC系统时钟配置及描述
3.5和2.8寸串口在衣物护理机的应用
ThinkPadT440超极本拆解 变薄以后机身内部设计发生了那些变化
浅谈嵌入式中ADC技术
工业互联网平台推广的必要性 实施路径是什么
高通推AllJoyn开放架构 实现物联网互操作性
5G通讯基站增加PCB需求,依顿电子抢占PCB需求空缺
基于51内核和FPGA器件实现便携式幅频特性测试仪的应用方案
SiP和SoC的协同发展
华为完成5G技术研发试验第三阶段NSA测试,测试使用5G端到端商用系统
径流仪是什么,它都有哪些用途
生成视频如此简单,给句提示就行,还能在线试玩
明星疯狂安利 华为MateBook 14 2020款 潮物一生推
黑芝麻智能以安全可靠的车规级大算力自动驾驶芯片助力行业向前
首个带电运行人工智能电力管廊改建项目