stm32学习日记之时钟树

  stm32的时钟树系统十分的复杂,接下来我们将用stm32f103c8t6的单片机来进行学习举例。

一.树的概念

  关于树的概念很简单,学过计算机的数据结构朋友应该对于这些很熟悉,可以跳过这些。那么,神马是树呢?

  和字面意思一样,树有源,有枝干,营养(数据)从根部传输到茎叶(外设),然后茎叶(外设)又能反哺根部(输出数据),那么我们大概就能明白一个时钟数大概有哪些结构了。

二.内部晶振与外部晶振的选择

对于stm32可以选择内部时钟(RC震荡器),也可以选择外部时钟时钟(外部晶振),在通常情况下我们经常习惯使用外部高速晶振(HSE)来当时钟源,因为比较与内部时钟,外部时钟的稳定性更好一些。但是如果想应用内部时钟的时候,应该注意一下几点

(1)对于100阵脚和144阵脚的产品,OSC-IN应该接地,OSC-OUT应该浮空。

(2)对于小于100阵脚的产品,则有两种接法:

  1.OSC-IN和OSC-OUT 分别通过10k的电阻接地,此方法可以提高emc的性能。

  2.分别重新映射OSC-IN OSC-OUT到PD0和PD1,在配置PD0以及PD1为推挽输出,并且输出0,此方法相对于方法1,可以减小功耗,并且能够节约两个外部电阻。

  3.内部8MHz的RC振荡器的误差在1%左右,内部RC振荡器的精度通常比用HSE要低十倍以上。STM32的ISP就是利用了HSI(内部RC振荡器)

三.时钟源

在32里面,有5个时钟源,分别为HSI HSE LSI LSE PLL

HSI是高速内部时钟,RC振荡器,频率为8MHz。

HSE是高速外部时钟,也是我们经常用的一种时钟,可以接石英谐振器,陶瓷谐振器,或者接外部时钟源,它的频率为4~16MHz。

LSI是内部低速时钟,RC振荡器,频率为40kHz。

LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

PLL为锁相环倍频输出,其时钟的输入源可以选择HSI/2 HSE或者HSE/2。倍频可以选择2~16倍,但是其输出品最大不可以超过72MHz.(具体详细请自行查询官方手册半导小芯-芯片查询工具_芯片替代查询_数据手册查询_规格书查询_datasheet查询_IC查询 (semiee.com))。

四.32的时钟的输入和输出

  对于初次接触32的学习者来说,个人认为这部分是很难去理解的一部分知识,为什么要有时钟树,如何掌握它,它是干嘛的。

  一个处理器,它的运行必须要有供电,而且要兼具处理数据发射数据的作用,那么处理器的运行就必须依靠与周期行的脉冲信号,这个信号往往是由外部晶振提供,最后转化到多个外设上,这就是时钟数据扩散的路径,相比于一些基础性的51和AVR等单片机,他们的自身的时钟树系统多半是不有用户设置的,时钟树时钟处于某种固定状态,用户无法更改时钟的频率,除非更换晶振。

  但32的时钟树有着更灵活的选择,这就意味着32有着更私人化理性化的性能,时钟树输入源和外设处的时钟频率不再有固定关系,所以,学习32必须哟啊理解时钟树的输入输出关系

输入输出之间的路径可以为HSE-PLLXTPRE-PLLSRC-PLLMUL-SW-AHB-APB2.

第二中路径可以为HSE-SW-AHB-APB2等等。。。

就拿第一种的路径举例:

1——输入,外部晶振(HSE),可以选为2~16MHz。

2——第一个分频器PLLXTPRE,可以选择1分频或者2分频。

3——时钟源选择,开关PLLSRC,我们可以选择其输出为外部高速时钟(HSE)或者是内部高速时钟(HSI)。这里选择为HSE.

4——PLL,具有倍频功能(个人感觉和运算放大器好像,2~16倍),经过pll的时钟被称为PLLCLK。倍频因子设定为9倍,也就是说,经过PLL之后8MHz的HSE能变为 72MHz

5——开关SW,经过这个开关就是32的时钟树内部,通过这个开关可以切换SYSCLK的时钟源,可以选择为HSI PLLCLK HSE 我们这里选择PLLCLK,所以为72MHz

6——AHB预分频器(分频系数为1~512),如果选1,则分频系数就是1.

7——APB2预分频器(分频系数为1,2,4,8,16).如果选1,分频系数为1所以APB2(PCLK2)为72MHz。

五.32中几个关于时钟树的相关概念

SYSCLK:系统时钟,大部分器件的始终来源,它由SHB预分频器分配到其他部件。

HCLK:由AHB预分频器直接输出得到,他是AHB的时钟信号,提供给储存器。DMA以及Cortex内核,是Cortex内核运的时钟,CPU的主频就是这个信号,它与32的运算速度密切相关。

FCLK:同样由AHB预分频输出得到,是内核的“自由运行时钟”,它的自由表现在他不来自HCLK,因此在HCLK时钟停止FCLK也会继续运行,它的存在,保证了处理器休眠时候,也能够采样中断和跟踪休眠事件,他与HCLK相互同步。

PCLK1:外部时钟,由APB1预分频器输出得到,最大频率为36MHz,要提供给APB1总线上的外设(低速外设)

PCLK2:同上,频率为72,为APB2总线上的外设提供(高速外设)。

粗略如上,想要详细数据请详见官方手册,有错误望请更正。

以上图片截于官方手册。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值