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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32的時鐘樹與配置方法

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

STM32時鐘

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

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

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

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

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

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

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

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

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

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

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

配置時鐘

默認時鐘

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

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

內部RC振蕩器HSI為8MHz,2分頻后是4MHz,進入PLLSRC選擇開關,通過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分頻器給外設提供時鐘。從左到右可以簡單理解為:

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

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

內核總線:送給AHB總線、內核、內存和DMA使用的HCLK時鐘。

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

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

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

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

APB1和APB2的對應外設

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

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

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

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

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

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

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

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

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

審核編輯:湯梓紅

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

    關注

    6037

    文章

    44558

    瀏覽量

    635355
  • STM32
    +關注

    關注

    2270

    文章

    10900

    瀏覽量

    356049
  • 時鐘樹
    +關注

    關注

    0

    文章

    54

    瀏覽量

    10752
  • 時鐘系統(tǒng)

    關注

    1

    文章

    101

    瀏覽量

    11723

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

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

收藏 人收藏

    評論

    相關推薦

    介紹主時鐘

    我們使用庫函數編程時, STM32默認調用了SetSysClockTo72()函數;已經配置了內部72MHz時鐘,所以一般不需要配置時鐘一.
    發(fā)表于 08-06 06:11

    總結STM32時鐘時鐘配置

    總結STM32時鐘時鐘配置預習:(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時鐘是由哪些部分構成的?如何對STM32F4XX時鐘系統(tǒng)的
    發(fā)表于 09-24 07:24

    stm32時鐘及systemclock簡介

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

    基于STM32Cube的時鐘配置

    本文檔內容介紹了基于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)時鐘時鐘配置函數介紹及系統(tǒng)時鐘設置步驟資料

    本文檔的主要內容詳細介紹的是STM32時鐘系統(tǒng)時鐘時鐘配置函數介紹及系統(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>函數介紹及系統(tǒng)<b class='flag-5'>時鐘</b>設置步驟資料

    STM32Cube學習教程之時鐘配置的詳細資料概述

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

    基于STM32單片機的時鐘設計方案

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

    STM32時鐘配置——時鐘解析

    STM32為什么要有復雜的時鐘系統(tǒng)首先STM32 本身非常復雜,外設非常的多,但是并不是所有外設都需要系統(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-時鐘詳細介紹

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

    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為例)

    本文將詳細解析STM32微控制器的時鐘STM32CubeMX Clock Configuration的配置關系。
    發(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為例)