0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的時鐘樹與配置方法

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2022-07-03 15:57 ? 次閱讀

STM32時鐘

時鐘信號推動單片機內(nèi)各個部分執(zhí)行相應(yīng)的指令,時鐘就像人的心跳一樣。

STM32本身十分復(fù)雜,外設(shè)非常多,任何外設(shè)都需要時鐘才能啟動,但并不是所有的外設(shè)都需要系統(tǒng)時鐘那么高的頻率,如果都用高速時鐘勢必造成浪費。同一個電路,時鐘越快功耗越大、抗電磁干擾能力越弱。復(fù)雜的MCU采用多時鐘源的方法來解決這些問題。如下圖,是STM32的時鐘系統(tǒng)框圖。

26fa0268-f91e-11ec-ba43-dac502259ad0.png

如上圖左邊的部分,看到STM32有4個獨立時鐘源,HSI、HSE、LSI、LSE。

HSI是高速內(nèi)部時鐘,RC振蕩器,頻率為8MHz,精度不高。

HSE是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,頻率范圍為4MHz~16MHz。

LSI是低速內(nèi)部時鐘,RC振蕩器,頻率為40kHz,提供低功耗時鐘。

LSE是低速外部時鐘,接頻率為32.768kHz的石英晶體。

時鐘樹的右邊紅色框中,則是系統(tǒng)時鐘通過AHB預(yù)分頻器,給相對應(yīng)的外設(shè)設(shè)置相對應(yīng)的時鐘頻率。

其中LSI、LSE是作為IWDGCLK(獨立看門狗)時鐘源和RTC時鐘源使用。而HSI、HSE以及PLLCLK經(jīng)過分頻或者倍頻作為系統(tǒng)時鐘SYSCLK來使用。

PLL為鎖相環(huán)倍頻輸出,其時鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇為2~16倍,但是其輸出頻率最大不得超過72MHz。通過倍頻之后作為系統(tǒng)時鐘的時鐘源。

配置時鐘

默認(rèn)時鐘

Keil編寫程序是默認(rèn)的時鐘為72Mhz,其實是這么來的:

外部高速晶振HSE提供的8MHz(大小與電路板上的晶振相關(guān))通過PLLXTPRE分頻器后,進入PLLSRC選擇開關(guān),進而通過PLLMUL鎖相環(huán)進行倍頻(x9)后,為系統(tǒng)提供72MHz的系統(tǒng)時鐘SYSCLK。之后是AHB預(yù)分頻器對時鐘信號進行分頻,然后為低速外設(shè)提供時鐘。相關(guān)文章推薦:時鐘失效之后,STM32還能運行?

內(nèi)部RC振蕩器HSI為8MHz,2分頻后是4MHz,進入PLLSRC選擇開關(guān),通過PLLMUL鎖相環(huán)進行倍頻(最大x16)后為64MHz。

USB時鐘

270fc936-f91e-11ec-ba43-dac502259ad0.png

如上圖,STM32的USB時鐘不能超過48MHz,因此如果時鐘源為72MHz,就需要進行1.5分頻。

如果時鐘源為48MHZ,則進行1分頻即可。

把時鐘信號輸出到外部

271b7826-f91e-11ec-ba43-dac502259ad0.png

STM32可以選擇一個時鐘信號輸出到MCO腳(PA8)上,可以選擇為PLL輸出的2分頻、HSI、HSE、或者系統(tǒng)時鐘,可以把時鐘信號輸出供外部使用。

AHB分頻器

如時鐘樹圖右邊的部分,系統(tǒng)時鐘通過AHB分頻器給外設(shè)提供時鐘。從左到右可以簡單理解為:

系統(tǒng)時鐘->AHB分頻器->各個外設(shè)分頻倍頻器->外設(shè)時鐘的設(shè)置。

右邊部分為:系統(tǒng)時鐘SYSCLK通過AHB分頻器分頻后送給各模塊使用,AHB分頻器可選擇1、2、4、8、16、64、128、256、512分頻。其中AHB分頻器輸出的時鐘送給5大模塊使用:

內(nèi)核總線:送給AHB總線、內(nèi)核、內(nèi)存和DMA使用的HCLK時鐘。

Tick定時器:通過8分頻后送給Cortex的系統(tǒng)定時器時鐘。

I2S總線:直接送給Cortex的空閑運行時鐘FCLK。

APB1外設(shè):送給APB1分頻器。APB1分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB1外設(shè)使用(PCLK1,最大頻率36MHz),另一路送給通用定時器使用。該倍頻器可選擇1或者2倍頻,時鐘輸出供定時器2-7使用。

APB2外設(shè):送給APB2分頻器。APB2分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB2外設(shè)使用(PCLK2,最大頻率72MHz),另一路送給高級定時器。該倍頻器可選擇1或者2倍頻,時鐘輸出供定時器1和定時器8使用。另外,APB2分頻器還有一路輸出供ADC分頻器使用,分頻后送給ADC模塊使用。ADC分頻器可選擇為2、4、6、8分頻。需要注意的是,如果APB預(yù)分頻器分頻系數(shù)是1,則定時器時鐘頻率(TIMxCLK)為PCLKx。否則,定時器時鐘頻率將為 APB 域的頻率的兩倍:TIMxCLK = 2xPCLKx。

APB1和APB2的對應(yīng)外設(shè)

27272b26-f91e-11ec-ba43-dac502259ad0.png

F1系列中,APB1上面連接的是低速外設(shè),包括電源接口、備份接口、CAN、USB、I2C1、I2C2、USART2、USART3、UART4、UART5、SPI2、SP3等。

APB2上面連接的是高速外設(shè),包括UART1、SPI1、Timer1、ADC1、ADC2、ADC3、所有的普通I/O口(PA-PE)、第二功能I/O(AFIO)口等。

具體可以在stm32f10x_rcc.h中查看外設(shè)掛在哪個時鐘下。

時鐘監(jiān)視系統(tǒng)(CSS)

27374a6a-f91e-11ec-ba43-dac502259ad0.png

另外,STM32還提供了一個時鐘監(jiān)視系統(tǒng)(CSS),用于監(jiān)視高速外部時鐘(HSE)的工作狀態(tài)。倘若HSE失效,會自動切換(高速內(nèi)部時鐘)HSI作為系統(tǒng)時鐘的輸入,保證系統(tǒng)的正常運行。

原文標(biāo)題:詳解STM32的時鐘系統(tǒng),收藏了

文章出處:【微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628296
  • STM32
    +關(guān)注

    關(guān)注

    2257

    文章

    10828

    瀏覽量

    352433
  • 時鐘樹
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    10709
  • 時鐘系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    95

    瀏覽量

    11614

原文標(biāo)題:詳解STM32的時鐘系統(tǒng),收藏了

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    介紹主時鐘

    我們使用庫函數(shù)編程時, STM32默認(rèn)調(diào)用了SetSysClockTo72()函數(shù);已經(jīng)配置了內(nèi)部72MHz時鐘,所以一般不需要配置時鐘一.
    發(fā)表于 08-06 06:11

    總結(jié)STM32時鐘時鐘配置

    總結(jié)STM32時鐘時鐘配置預(yù)習(xí):(1)5到6個時鐘源,HSI、HSE、LSI、LSE、MSI
    發(fā)表于 08-10 06:37

    STM32F407系統(tǒng)時鐘配置時鐘方法

    STM32F407系統(tǒng)時鐘配置時鐘方法一,采用官方庫提供的
    發(fā)表于 08-12 08:19

    STM32時鐘案例詳解

    STM32時鐘案例詳解時鐘直接使用HSI作為時鐘源使用
    發(fā)表于 08-20 06:11

    如何對STM32F4XX時鐘系統(tǒng)的時鐘進行配置

    STM32F4XX時鐘是由哪些部分構(gòu)成的?如何對STM32F4XX時鐘系統(tǒng)的
    發(fā)表于 09-24 07:24

    stm32時鐘及systemclock簡介

    stm32時鐘及systemclock1.時鐘:1)框圖:如上圖:內(nèi)部系統(tǒng)的時鐘來源,常被
    發(fā)表于 03-01 07:42

    基于STM32Cube的時鐘配置

    本文檔內(nèi)容介紹了基于STM32Cube的時鐘配置,以及使用操作步驟圖解。
    發(fā)表于 11-28 18:02 ?22次下載
    基于<b class='flag-5'>STM32</b>Cube的<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>配置</b>

    STM32時鐘系統(tǒng)時鐘時鐘配置函數(shù)介紹及系統(tǒng)時鐘設(shè)置步驟資料

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32時鐘系統(tǒng)時鐘時鐘配置函數(shù)介紹及系統(tǒng)
    發(fā)表于 10-11 08:00 ?22次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>時鐘</b>系統(tǒng)<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>和<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>函數(shù)介紹及系統(tǒng)<b class='flag-5'>時鐘</b>設(shè)置步驟資料

    STM32Cube學(xué)習(xí)教程之時鐘配置的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32Cube學(xué)習(xí)教程之時鐘配置的詳細(xì)資料概述。
    發(fā)表于 08-14 08:00 ?3次下載
    <b class='flag-5'>STM32</b>Cube學(xué)習(xí)教程之<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>配置</b>的詳細(xì)資料概述

    基于STM32單片機的時鐘設(shè)計方案

    基于STM32單片機的時鐘設(shè)計方案
    發(fā)表于 08-04 16:37 ?38次下載

    STM32時鐘配置——時鐘解析

    STM32為什么要有復(fù)雜的時鐘系統(tǒng)首先STM32 本身非常復(fù)雜,外設(shè)非常的多,但是并不是所有外設(shè)都需要系統(tǒng)時鐘這么高的頻率,比如看門狗以及 RTC 只需要幾十 k 的
    發(fā)表于 11-23 18:21 ?8次下載
    <b class='flag-5'>STM32</b>的<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>——<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>解析

    STM32入坑(七)使用HSI配置系統(tǒng)時鐘

    STM32入坑(七)使用HSI配置系統(tǒng)時鐘簡介原理用到的GPIO配置方法及程序注意事項簡介名稱:使用HSI
    發(fā)表于 11-26 18:51 ?65次下載
    <b class='flag-5'>STM32</b>入坑(七)使用HSI<b class='flag-5'>配置</b>系統(tǒng)<b class='flag-5'>時鐘</b>

    STM32F10X-時鐘詳細(xì)介紹

    RCC是reset clock control的簡稱(即復(fù)位和時鐘控制器),本文將詳細(xì)介紹時鐘的構(gòu)成,通過理解時鐘我們可以更加的理解
    發(fā)表于 12-01 14:36 ?9次下載
    <b class='flag-5'>STM32</b>F10X-<b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>詳細(xì)介紹

    STM32時鐘

    STM32時鐘問題1:為什么需要時鐘?答:STM 32的時鐘系統(tǒng)類似于人的心臟,需要為芯片提供時鐘
    發(fā)表于 12-06 09:51 ?16次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>時鐘</b><b class='flag-5'>樹</b>

    參照STM32時鐘配置STM32CubeMX Clock Configuration(STM32L011G4U6為例)

    本文將詳細(xì)解析STM32微控制器的時鐘STM32CubeMX Clock Configuration的配置關(guān)系。
    發(fā)表于 12-14 18:42 ?2次下載
    參照<b class='flag-5'>STM32</b><b class='flag-5'>時鐘</b><b class='flag-5'>樹</b><b class='flag-5'>配置</b><b class='flag-5'>STM32</b>CubeMX Clock Configuration(<b class='flag-5'>STM32</b>L011G4U6為例)