STM32F103时钟系统


前言

本文主要介绍STM32F103的时钟系统,包括输出时钟、系统时钟、以及由系统时钟得到的各个时钟。

    在嵌入式开发中,很少有人关注系统的时钟。一般配置好片上外设寄存器,就能使用这些外设。但STM32F103的时钟可谓非常重要,是整个的心脏,开发者也能通过时钟,宏观上把握STM32F103外设的工作机制。


一、储备知识

  • STM32F103时钟最大频率是72MHZ
  • APB1是低速总线,APB2是高速总线

二、输入时钟

STM32F103的输入时钟可以来自不同时钟源

  • 按时钟频率分,有高速时钟和低速时钟。高速时钟为STM32F103的主时钟提供时钟信号,低速时钟为实时时钟(Real Time Clock,RTC)和独立看门狗(Independent Watch Dog,IWDG)提供时钟信号
  • 按芯片角度分,有内部时钟源和外部时钟源。内部时钟由RC振荡器产生,起振较快,因此系统主时钟在芯片刚上电时默认采用内部高速时钟。而外部时钟通常由外部晶振输入,有较高的精度和稳定性。故上电后将主时钟转而采用外部高速数字信号。

1、高速外部时钟

    高速外部时钟(High Speed External clock signal,HSE)通常以外部晶振作为时钟源,频率范围为4~16MHz,一般推荐使用8MHz
在这里插入图片描述

    下面以外接8M晶振作为高速外部时钟为例,沿着图中时钟树((1)–>(2)–>…)介绍STM32F103的时钟系统是如何从高速外部时钟开始一步步得到系统时钟SYSCLK的。

  • OSC_IN和OSC_OUT:连接8M晶振两端
  • PLLXTPRE(HSE divider for PLL entry,PLL输入前的分频):通过配置寄存器,可以控制PLLXTPRE的输出,一般选择不分频。因此,经过PLLXTPRE后,输出仍然是8MHz的信号。
  • PLLSRC(PLL entry clock source,PLL输入时钟源):通过配置寄存器,控制PLLSRC的输出是HSE还是HSI。通常选择HSE。故经过PLLSRC后,输出仍是8M.
  • PLL(Phase Locked Loop,锁相环,用于配置倍频系数):8M的HSE经过PLL后的输出时钟称为PLLCLK。通过配置寄存器,选择倍频系数PLLMUL(PLL multiplication factor),可决定PLLCLK的输出频率。通常为了是STM32D103满频工作,将倍频系数设为9。于是,经过PLL后,8M的HSE变成了72M的PLLCLK。
  • SW:PLLCLK遇到多路选择器SW。通过配置寄存器,可以选择SW输出为PLLCLK、HSE、或HSI。SW的输出即为系统时钟SYSCLK。通常选择PLLCLK作为SW输出。因此,STM32F103的系统时钟SYSCLK为72MHz。

2、高速内部时钟

    高速内部时钟(High Speed Internal clock signal,HSI)由片内RC振荡器产生,频率为8MHz,但不稳定。

3、低速外部时钟

    低速外部时钟(Low Speed External clock signal,LSE)通常以外部晶振作为时钟源,主要供给实时时钟模块,所以一般采用32.768kHz(32768=215)

4、低速内部时钟

    低速内部时钟(Low Speed Internal clock signal,LSI)由片内RC振荡器产生。可以提供给实时时钟模块和看门狗模块,频率为40kHz

三、系统时钟

    系统时钟由SW多路选择器决定,有HSE、HSI、PLLCLK三种选择。SYSCLK的最高频率可达72MHz(通常也工作在72MHz),是STM32F103大部分部件的时钟来源。
    STM32F103从上电开始,选用HSI作为初始系统时钟。完成初始化后,选用更加稳定可靠的HSE作为系统时钟的来源。
    用户可以通过MCO引脚(Main Clock Output,主时钟输出)来实时检测时钟系统是否正常运行。

四、系统时钟分频得到的其他时钟

系统时钟SYSCLK经过AHB预分频器输出到各个部件:

  • HCLK:
  • FCLK:
  • PCLK1:
  • PCLK2:
  • SDIOCLK:
  • FSMCCLK:
  • STCLK:
  • TIMXCLK:
  • TIMxCLK:
  • ADCCLK:
  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值