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

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

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

一千余字解讀stm32時(shí)鐘樹

撞上電子 ? 2024-12-30 21:01 ? 次閱讀

第一節(jié) 概述

時(shí)鐘樹的概念可以類比于人體的心臟和血液循環(huán)系統(tǒng)。就像心臟通過(guò)周期性的收縮將血液泵向身體各處一樣,MCU的運(yùn)行依賴于周期性的時(shí)鐘脈沖來(lái)驅(qū)動(dòng)。這些脈沖通常由外部晶體振蕩器提供時(shí)鐘輸入,并最終轉(zhuǎn)換為多個(gè)外部設(shè)備的周期性運(yùn)作。這種時(shí)鐘“能量”的傳遞路徑類似于大樹的養(yǎng)分由主干流向各個(gè)分支,因此被稱為時(shí)鐘樹。

STM32內(nèi)部也是由多種多樣的電路模塊組合在一起實(shí)現(xiàn)的。當(dāng)一個(gè)電路越復(fù)雜,在達(dá)到正確的輸出結(jié)果前,它可能因?yàn)檠訒r(shí)會(huì)有一些短暫的中間狀態(tài),而這些中間狀態(tài)有時(shí)會(huì)導(dǎo)致輸出結(jié)果會(huì)有一個(gè)短暫的錯(cuò)誤,這叫做電路中的“毛刺現(xiàn)象”,如果電路需要運(yùn)行得足夠快,那么這些錯(cuò)誤狀態(tài)會(huì)被其它電路作為輸入采樣,最終形成一系列的系統(tǒng)錯(cuò)誤。為了解決這個(gè)問題,在單片機(jī)系統(tǒng)中,設(shè)計(jì)時(shí)以時(shí)序電路控制替代純粹的組合電路,在每一級(jí)輸出結(jié)果前對(duì)各個(gè)信號(hào)進(jìn)行采樣,從而使得電路中某些信號(hào)即使出現(xiàn)延時(shí)也可以保證各個(gè)信號(hào)的同步,可以避免電路中發(fā)生的“毛刺現(xiàn)象”,達(dá)到精確控制輸出的效果。

由于時(shí)序電路的重要性,因此在MCU設(shè)計(jì)時(shí)就設(shè)計(jì)了專門用于控制時(shí)序的電路,在芯片設(shè)計(jì)中稱為時(shí)鐘樹設(shè)計(jì)。由此設(shè)計(jì)出來(lái)的時(shí)鐘,可以精確控制我們的單片機(jī)系統(tǒng)。對(duì)于STM32WLE5,正常工作的主頻可以達(dá)到48Mhz,但并不是所有外設(shè)都需要系統(tǒng)時(shí)鐘這么高的頻率,比如看門狗以及RTC只需要幾十Khz的時(shí)鐘即可。同一個(gè)電路,時(shí)鐘越快功耗越大,同時(shí)抗電磁干擾能力也會(huì)越弱,所以對(duì)于較為復(fù)雜的MCU一般都是采取多時(shí)鐘源的方法來(lái)解決這些問題。

STM32本身非常復(fù)雜,外設(shè)非常的多,為了保持低功耗工作,STM32的主控默認(rèn)不開啟這些外設(shè)功能。用戶可以根據(jù)自己的需要決定STM32芯片要使用的功能,這個(gè)功能開關(guān)在STM32主控中也就是各個(gè)外設(shè)的時(shí)鐘。


第二節(jié) 時(shí)鐘源

3878c26c-c6ae-11ef-9434-92fbcf53809c.png

對(duì)于STM32,輸入時(shí)鐘源主要包括HSI,HSE,LSI,LSE。其中,從時(shí)鐘頻率來(lái)分可以分為高速時(shí)鐘源和低速時(shí)鐘源,其中HSI和HSE是高速時(shí)鐘,LSI和LSE 是低速時(shí)鐘。從來(lái)源可分為外部時(shí)鐘源和內(nèi)部時(shí)鐘源,外部時(shí)鐘源就是從外部通過(guò)接晶振的方式獲取時(shí)鐘源,其中HSE和LSE是外部時(shí)鐘源;其他是內(nèi)部時(shí)鐘源,芯片上電即可產(chǎn)生,不需要借助外部電路。兩個(gè)外部時(shí)鐘源建議使用外部晶振產(chǎn)生,這樣的時(shí)鐘精度高且穩(wěn)定。

以下是各時(shí)鐘源的說(shuō)明:

1,高速外部振蕩器HSE (High Speed External Clock signal):外接石英/陶瓷諧振器,頻率為4MHz~32MHz。

2,低速外部振蕩器LSE (Low Speed External Clock signal):外接32.768kHz石英晶體,主要作用于RTC和IWDG的時(shí)鐘源。

3,高速內(nèi)部振蕩器HSI(High Speed Internal Clock signal):由內(nèi)部RC振蕩器產(chǎn)生,頻率為16MHz。

4,低速內(nèi)部振蕩器LSI(Low Speed Internal Clock signal):由內(nèi)部RC振蕩器產(chǎn)生,頻率為31~32kHz。

芯片上電時(shí)默認(rèn)由內(nèi)部的HSI時(shí)鐘啟動(dòng),如果進(jìn)行了硬件和軟件的配置,芯片才會(huì)根據(jù)配置調(diào)試嘗試切換到對(duì)應(yīng)的時(shí)鐘源


第三節(jié) 鎖相環(huán)

鎖相環(huán)是自動(dòng)控制系統(tǒng)中常用的一個(gè)反饋電路,在STM32主控中,鎖相環(huán)的作用主要有兩個(gè)部分:輸入時(shí)鐘凈化和倍頻。前者是利用鎖相環(huán)電路的反饋機(jī)制實(shí)現(xiàn),后者我們用于使芯片在更高且頻率穩(wěn)定的時(shí)鐘下工作。如圖所示:

388e3606-c6ae-11ef-9434-92fbcf53809c.png

PLL時(shí)鐘的時(shí)鐘源要先經(jīng)過(guò)一個(gè)分頻系數(shù)為PLLM的分頻器,然后經(jīng)過(guò)倍頻系數(shù)為N的倍頻器出來(lái)之后的時(shí)候還需要經(jīng)過(guò)一個(gè)分頻系數(shù)為P或者Q或者R的分頻器分頻之后,最后才生成最終的主PLL時(shí)鐘。

例如我們的外部晶振選擇32MHz。同時(shí)我們?cè)O(shè)置相應(yīng)的分頻器PLLM=8,倍頻器倍頻系數(shù)N=6,分頻器分頻系數(shù)R=2,那么PLL輸出高速時(shí)鐘PLLP為:32MHZ/2*6/2,即48MHZ。


第四節(jié) 系統(tǒng)時(shí)鐘

STM32的系統(tǒng)時(shí)鐘SYSCLK為整個(gè)芯片提供了時(shí)序信號(hào)。講解PLL作為系統(tǒng)時(shí)鐘時(shí),講到了如何把主頻通過(guò)PLL設(shè)置為48MHz。從時(shí)鐘樹圖可知,AHB、APB1、APB2、內(nèi)核時(shí)鐘等時(shí)鐘通過(guò)系統(tǒng)時(shí)鐘分頻得到。根據(jù)得到的這個(gè)系統(tǒng)時(shí)鐘,下面我們結(jié)合外設(shè)來(lái)看一看各個(gè)外設(shè)時(shí)鐘源:

3878c26c-c6ae-11ef-9434-92fbcf53809c.png

可以看到,系統(tǒng)時(shí)鐘輸入源可選時(shí)鐘信號(hào)有外部高速時(shí)鐘HSE32、內(nèi)部高速時(shí)鐘HSI16、經(jīng)過(guò)倍頻的PLLCLK和MSI。這里選擇PLLCLK作為系統(tǒng)時(shí)鐘,此時(shí)系統(tǒng)時(shí)鐘的頻率為48MHz。之后變成APB1,APB2和APB3。


第五節(jié) 時(shí)鐘輸出

MCO時(shí)鐘輸出的作用是為外部器件提供時(shí)鐘。STM32允許通過(guò)設(shè)置,通過(guò)MCO引腳輸出一個(gè)穩(wěn)定的時(shí)鐘信號(hào)。

38a37340-c6ae-11ef-9434-92fbcf53809c.png

MCO時(shí)鐘輸出的時(shí)鐘來(lái)源從上向下依次為:LSE,LSI,HSE,HSI,PLLCLK,SYSCLK,MSI,PLLP和PLLQ。

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

    關(guān)注

    146

    文章

    17269

    瀏覽量

    352055
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10918

    瀏覽量

    356890
  • 時(shí)鐘樹
    +關(guān)注

    關(guān)注

    0

    文章

    55

    瀏覽量

    10784
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    解析STM32時(shí)鐘

    對(duì)于廣大初次接觸STM32的讀者朋友(甚至是初次接觸ARM器件的讀者朋友)來(lái)說(shuō),在熟悉了開發(fā)環(huán)境的使用之后,往往“栽倒”在同一個(gè)問題上。這問題有個(gè)關(guān)鍵叫:時(shí)鐘。眾所周知,微控制器(
    發(fā)表于 10-21 14:36

    STM32 時(shí)鐘的學(xué)習(xí)

    STM32時(shí)鐘對(duì)于廣大初次接觸STM32的讀者朋友(甚至是初次接觸ARM器件的讀者朋友)來(lái)說(shuō),在熟悉了開發(fā)環(huán)境的使用之后,往往“栽倒”在同一個(gè)問題上。這問題有個(gè)關(guān)鍵
    發(fā)表于 05-15 22:21

    STM32時(shí)鐘介紹

    時(shí)鐘大小如何得來(lái),其他外設(shè)的時(shí)鐘又如何劃分,這些問題都可以通過(guò)一張時(shí)鐘圖找到答案,只要理解好時(shí)鐘
    發(fā)表于 01-14 17:30

    對(duì)STM32時(shí)鐘的理解

    對(duì)STM32時(shí)鐘的理解
    發(fā)表于 08-02 10:28

    STM32時(shí)鐘學(xué)習(xí)記錄

    STM32 時(shí)鐘學(xué)習(xí)記錄時(shí)鐘介紹在STM32 時(shí)鐘
    發(fā)表于 08-13 07:38

    STM32時(shí)鐘案例詳解

    STM32時(shí)鐘案例詳解時(shí)鐘直接使用HSI作為時(shí)鐘源使用配置相應(yīng)的結(jié)構(gòu)體,最后調(diào)用HAL_RC
    發(fā)表于 08-20 06:11

    基于STM32Cube的時(shí)鐘配置

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

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

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

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

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

    STM32F429--RCC時(shí)鐘

    RCC時(shí)鐘的簡(jiǎn)單分析
    發(fā)表于 11-29 16:36 ?7次下載
    <b class='flag-5'>STM32</b>F429--RCC<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>樹</b>

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

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

    STM32 RCC時(shí)鐘

    學(xué)習(xí)目標(biāo):STM32的RCC時(shí)鐘學(xué)習(xí)內(nèi)容:HSE時(shí)鐘、HSI時(shí)鐘、鎖相環(huán)時(shí)鐘(PLLCLK)(
    發(fā)表于 12-01 15:06 ?5次下載
    <b class='flag-5'>STM32</b> RCC<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>樹</b>

    STM32時(shí)鐘

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

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

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

    利用STM32CubeMX解讀時(shí)鐘

    提供給芯片中的RTC(實(shí)時(shí)時(shí)鐘)及IWDG(獨(dú)立看門狗)使用。2,中速時(shí)鐘MSIRC是“中速內(nèi)部時(shí)鐘”或“中速內(nèi)部振蕩器”,是STM32L系列獨(dú)有的
    的頭像 發(fā)表于 11-24 08:00 ?1308次閱讀
    利用<b class='flag-5'>STM32</b>CubeMX<b class='flag-5'>解讀</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>樹</b>