0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解STM32时钟体系结构分析

贸泽电子 来源:djl 作者:贸泽电子 2019-08-19 16:40 次阅读

STM32时钟体系可以直接以图概括(摘自STM32F10X参考手册)

详解STM32时钟体系结构分析


下面就此图做分析

1. STM32输入时钟源

1.1 时钟源的作用

无论是小型单片机还是像STM32这样高级单片机,它们工作的核心都是大规模的时序逻辑电路,而驱动时序逻辑电路的关键则是准确而又稳定的时钟源。它的作用就像小学在操场上做广播体操时候播放的背景音乐,用于协调和同步各单元运行,为时序电路提供基本的脉冲信号

1.2 STM32时钟源的设计

51单片机中,一般都外接一个11.0592MHz的晶振,注意,提供时钟的不是晶振,而是RC时钟电路,而晶振只是时钟电路的元件之一。同理,在STM32中,时钟源也是由RC时钟电路产生,与51单片机的区别是区别在于,RC电路的位置。根据RC电路的位置,可以将STM32的时钟源分为内部时钟电路和外部时钟、内外部时钟电路。

(1)内部时钟电路:

晶体振荡器和RC时钟电路都在STM32芯片内部,如图中标注1、标注4。

标注1处是产生8MHz的时钟源,称为HSI,高速内部时钟源(H意为高速,S意为源,I意为内部);

标注4处是产生32KHz的时钟源,称为LSI,低速内部时钟源;

(2)内外部时钟电路:

晶体振荡器在STM32芯片外部,RC时钟电路在STM32芯片内部,如图中标注2、标注3。

标注2处是产生4-16MHz的时钟源,称为HSE,高速外部时钟源;

标注3是产生32.768KHz的时钟源,称为LSE,低速外部时钟源;

OSC_OUT和OSC_IN、OSC32_OUT和OS32_IN分别接晶振的两个引脚。前者一般接8MHz晶振;后者一定接32.768KHz,因为这个时钟源是供给RTC实时时钟使用的。在51单片机中没有集成RTC模块,在做电子时钟时用到的DS1302集成芯片时,也是为其提供的也是32.768KHz的晶振。

(3)外部时钟电路

晶体振荡电路和RC时钟电路都在STM32芯片外部。如图中标注2、标注3。

OSC_OUT和OSC_IN、OSC32_OUT和OS32_IN除了分别接晶振的两个引脚,对于OSC_IN和OSC32_IN引脚,还可以接入外部的RC时钟电路,其时钟源直接由外部供给,不过这种方案少见。

综上所述,STM32的时钟源有4个: HSI、HSE和LSI、LSE。

HSI时钟源,它是在由STM32在内部用RC振荡电路实现的高速内部时钟源。HIS RC振荡器能够在不需要任何外部期间的条件下提供系统时钟,它的启动时间比HSE晶体振荡器短,但是不精准,即使在校准之后它的时钟频率精度仍较差。在手册中还明确说,当HSI被用作PLL时钟输入时,系统时钟能得到的最大频率是61MHz,这显然不能发挥STM32最极致的性能。

1.3 时钟信号通道选择

虽然HSI不精准,但是鉴于启动速度原因考虑,STM32上电复位,默认是采用HSI时钟源的,当然开发者可以不修改这个时钟源,那么系统将一直工作在一个时钟源不稳定不精准的环境下。


然而一般做法是改变时钟源,将时钟源改为HSE。改变时钟源的通道是在相关寄存器设置的,在图中的PLLSRC可以实现对这两个频率的切换。

详解STM32时钟体系结构分析

1.4 锁相环倍频器PLL/预分频器Prescaler

STM32的cpu的工作常规频率是72MHZ(超过72MHz工作称为超频工作,CPU耗电加剧,且会发烫),但是我们接入的晶振是8MHz,这就需要一个对频率加倍的操作,即倍频。如图中的PLLMUL,PLLMULL实现对接入时钟源的倍频,如x2、x3、x4…倍频后的时钟源为PLLCLK。

预分频器是实现对频率削减作用的。倍频器将HSE倍频之后提供给cpu,但是除了cpu之外,其他片内外设,如SPI控制模块、IIC控制模块等的工作同样需要时钟源,这些外设的时钟源肯定是低于cpu运行时钟的,例如USB通讯才需要48MHz,所以需要对倍频后的时钟源进行分频。一般芯片的分频做法都是对一个时钟源倍频后供给某些部件,其他低于此倍频后的时钟都是基于此时钟源来分频的。用户可通过多个预分频器配置AHB,高速APB(APB2)和低速APB(APB1)域的频率。AHB和APB2域的最大频率是72MHz。APB1域的最大允许频率是36MHz。SDIO接口的时钟频率固定在HCLK / 2。

经过时钟源的选择、分频/倍频,就可以到HCLK(高性能总线AHB用)、FCLK(供给cpu内核的用,常说的cpu主频)、PCLK(高性能外设总线APB)、USBCLK、TIMXCLK、TIM1CLK、RTCCLK等,外设是挂载STM32的总线上的,具体哪个外设挂载哪个总线,看下图:

详解STM32时钟体系结构分析

在软件开发中,我们要做的也无非设置门电路以选择时钟源输入、倍频/分频系数和打开/关闭对应外设所在总线的时钟。

2. STM32输出时钟源

图中的MCO功能模块,可以将PLLCLK / 2、HSI、HSE、SYSCLK输出,供给其他系统作为输入时钟源,对这一功能模块也是又相应的寄存器,图中以MCO标注。

详解STM32时钟体系结构分析

3. 系统滴答Systick

Systick就是一个定时器而已,只是它放在了NVIC中,主要的目的是为了给操作系统提供一个硬件上的中断,称之为滴答中断操作系统进行运转的时候,也会有时间节拍。它会根据节拍来工作,把整个时间段分成很多小小的时间片,而每个任务每次只能运行一个时间片的时间长度,超时就退出给别的任务运行,这样可以确保任何一个任务都不会霸占操作系统提供的各种定时功能,都与这个滴答定时器有关。因此,需要一个定时器来产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统的节拍。只要不把它在SysTick控制及状态寄存器中的使能位清除,就一直执行。

RCC(复位与时钟控制器)通过AHB时钟(HCLK)8分频后作为Cortex系统定时器(SysTick)的外部时钟。通过对SysTick控制与状态寄存器的设置,可选择上述时钟或Cortex(HCLK)时钟作为SysTick时钟(后者图中没画出)。另外,还有其他时钟,如USB时钟,ADC时钟、独立看门狗时钟等,它们各自的时钟源通过前面学习,也可以轻易分析出来,这里不再赘述。

4. 时钟相关的寄存器

时钟体系涉及到的寄存器有:

详解STM32时钟体系结构分析

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    172

    文章

    5846

    浏览量

    171900
  • 寄存器
    +关注

    关注

    31

    文章

    5317

    浏览量

    120001
  • 时钟
    +关注

    关注

    10

    文章

    1720

    浏览量

    131360
收藏 人收藏

    评论

    相关推荐

    无线传感器网络的体系结构分析

    本文对无线传感器网络体系结构进行了较为深入的研究,从物理体系结构、软件体系结构和通信体系结构三个层面进行了分析
    发表于 11-03 16:24 8838次阅读
    无线传感器网络的<b class='flag-5'>体系结构</b><b class='flag-5'>分析</b>

    S3C2440时钟体系结构

    这些文章不太懂,建议购买视频进一步学习。购买地址:http://t.elecfans.com/topic/20.html?elecfans_trackid=xybanner第001节_S3C2440时钟体系结构
    发表于 05-08 11:34

    时钟体系疑问

    老师讲时钟体系时,FCLK=400MHz,HCLK=100MHz,PLCK=50MHz,为啥说FCLK:HCLK:PLCK=1:4:8,不是应该是400 : 100 : 50 = 8 : 4 : 1吗?
    发表于 05-06 02:28

    PSoC 5体系结构中是否存在时钟锁定?

    寄存器TRM提到USB时钟锁定,但没有指定UBSYLID位的位置。PSoC 5体系结构中是否存在时钟锁定?这在架构TRM中没有提到,但那并不是第一个遗漏。-) 以上来自于百度翻译 以下为原文
    发表于 05-16 11:25

    STM32的存储器、电源和时钟体系

    STM32的存储器、电源和时钟体系-第3季第2部分视频课程 互联网课程品牌《...
    发表于 08-03 06:55

    为什么要了解时钟体系

    stm32时钟系统基于stm32f407zgt6芯片给单片机提供一个时钟信号(一个非常稳定的频率信号),使单片机各内部组件同步工作,并且在和外部设备通信时是也能达到同步。为什么要了解
    发表于 08-10 08:10

    STM32时钟体系介绍

    STM32时钟体系可以直接以图概括(摘自STM32F10X参考手册)下面就此图做分析1. STM32输入
    发表于 08-19 06:10

    S3C2440芯片的时钟体系是怎样的

    ARM嵌入式系统中S3C2440芯片的时钟体系
    发表于 12-17 07:39

    Arm的DRTM体系结构规范

    本规范定义了基于Arm A配置文件体系结构的处理器的动态测量信任根(DRTM)体系结构。本规范基于TCG D-RTM体系结构[4]的概念,但作为一个独立的独立文档发挥作用。它使用了TCG体系结
    发表于 08-08 07:45

    LTE体系结构

    LTE体系结构 LTE体系结构可以借助SAE 体系结构来做详细描述。在SAE 体系结构中,RNC部分功能、GGSN、SGSN 节点将被融合为一个新的节点,
    发表于 06-16 13:09 9809次阅读

    网络体系结构,什么是网络体系结构

    网络体系结构,什么是网络体系结构 通过通信信道和设备互连起来的多个不同地理位置的计算机系统,要使其能协同工作实现信息交换和资源共享
    发表于 04-06 16:30 1691次阅读

    体系结构建模工具SA分析

    研究体系结构需要一套特定的开发工具,国外已经开发了多种体系结构工具,其中SA(System Architect)是先进成熟的体系结构分析、设计、可视化建模与验证工具,在
    发表于 07-11 10:33 0次下载
    <b class='flag-5'>体系结构</b>建模工具SA<b class='flag-5'>分析</b>

    软件体系结构分析

    软件系统因具有节点众多、节点间联系复杂、随时间演化、自组织临界等特性可将其视为复杂系统。在软件安全领域,对软件体系结构分析一直是研究的重点。软件体系结构具有自身的脆性,这体现在软件系统的运行过程
    发表于 11-24 10:34 15次下载
    软件<b class='flag-5'>体系结构</b>的<b class='flag-5'>分析</b>

    基于DoDAF的卫星应用信息链体系结构

    based methodology)的体系结构建模方法,构建了相应的侦察卫星应用信息链体系结构模型。本文首先分析了侦察卫星应用信息链的组成结构和任务活动,尔后依据DoDAF
    发表于 01-10 16:58 1次下载

    2.STM32的存储器、电源和时钟体系

    3.2.6.复位与时钟概述3.2.7.STM32时钟框图详解13.2.8.STM32时钟框图
    发表于 01-07 15:32 1次下载
    2.<b class='flag-5'>STM32</b>的存储器、电源和<b class='flag-5'>时钟体系</b>