其中,高速時鐘(HSE和HSI)提供給芯片主體的主時鐘.低速時鐘(LSE和LSI)只是提供給芯片中的RTC(實時時鐘)及獨立看門狗使用,圖中可以看出高速時鐘也可以提供給RTC。內部時鐘是在芯片內部RC振蕩器產生的,起振較快,所以時鐘在芯片剛上電的時候,默認使用內部高速時鐘。而外部時鐘信號是由外部的晶振輸入的,在精度和穩定性上都有很大優勢,所以上電之后我們再通過軟件配置,轉而采用外部時鐘信號.
高速外部時鐘(HSE):以外部晶振作時鐘源,晶振頻率可取范圍為4~16MHz,我們一般采用8MHz的晶振。
高速內部時鐘(HSI): 由內部RC振蕩器產生,頻率為8MHz,但不穩定。
低速外部時鐘(LSE):以外部晶振作時鐘源,主要提供給實時時鐘模塊,所以一般采用32.768KHz。
低速內部時鐘(LSI):由內部RC振蕩器產生,也主要提供給實時時鐘模塊,頻率大約為40KHz。
OSC_OUT和OSC_IN開始,這兩個引腳分別接到外部晶振8MHz,第一個分頻器PLLXTPRE,遇到開關PLLSRC(PLL entry clock source),我們可以選擇其輸出,輸出為外部高速時鐘(HSE)或是內部高速時鐘(HSI)。這里選擇輸出為HSE,接著遇到鎖相環PLL,具有倍頻作用,在這里我們可以輸入倍頻因子PLLMUL,要是想超頻,就得在這個寄存器上做手腳啦。經過PLL的時鐘稱為PLLCLK。倍頻因子我們設定為9倍頻,也就是說,經過PLL之后,我們的時鐘從原來8MHz的 HSE變為72MHz的PLLCLK。緊接著又遇到了一個開關SW,經過這個開關之后就是STM32的系統時鐘(SYSCLK)了。通過這個開關,可以切換SYSCLK的時鐘源,可以選擇為HSI、PLLCLK、HSE。我們選擇為PLLCLK時鐘,所以SYSCLK就為72MHz了。PLLCLK在輸入到SW前,還流向了USB預分頻器,這個分頻器輸出為USB外設的時鐘(USBCLK)。回到SYSCLK,SYSCLK經過AHB預分頻器,分頻后再輸入到其它外設。如輸出到稱為HCLK、FCLK的時鐘,還直接輸出到SDIO外設的SDIOCLK時鐘、存儲器控制器FSMC的FSMCCLK時鐘,和作為APB1、APB2的預分頻器的輸入端。GPIO外設是掛載在APB2總線上的, APB2的時鐘是APB2預分頻器的輸出,而APB2預分頻器的時鐘來源是AHB預分頻器。因此,把APB2預分頻器設置為不分頻,那么我們就可以得到GPIO外設的時鐘也等于HCLK,為72MHz了。
SYSCLK:系統時鐘,STM32大部分器件的時鐘來源。主要由AHB預分頻器分配到各個部件。
HCLK:由AHB預分頻器直接輸出得到,它是高速總線AHB的時鐘信號,提供給存儲器,DMA及cortex內核,是cortex內核運行的時鐘,cpu主頻就是這個信號,它的大小與STM32運算速度,數據存取速度密切相關。
FCLK:同樣由AHB預分頻器輸出得到,是內核的“自由運行時鐘”。“自由”表現在它不來自時鐘 HCLK,因此在HCLK時鐘停止時 FCLK 也繼續運行。它的存在,可以保證在處理器休眠時,也能夠采樣和到中斷和跟蹤休眠事件 ,它與HCLK互相同步。
PCLK1:外設時鐘,由APB1預分頻器輸出得到,最大頻率為36MHz,提供給掛載在APB1總線上的外設,APB1總線上的外設如下:
RCC_APB1Periph_TIM2 TIM2時鐘
RCC_APB1Periph_TIM3 TIM3時鐘
RCC_APB1Periph_TIM4 TIM4時鐘
RCC_APB1Periph_WWDG WWDG時鐘
RCC_APB1Periph_SPI2 SPI2時鐘
RCC_APB1Periph_USART2 USART2時鐘
RCC_APB1Periph_USART3 USART3時鐘
RCC_APB1Periph_I2C1 I2C1時鐘
RCC_APB1Periph_I2C2 I2C2時鐘
RCC_APB1Periph_USB USB時鐘
RCC_APB1Periph_CAN CAN時鐘
RCC_APB1Periph_BKP BKP時鐘
RCC_APB1Periph_PWR PWR時鐘
RCC_APB1Periph_ALL 全部APB1外設時鐘
PCLK2:外設時鐘,由APB2預分頻器輸出得到,最大頻率可為72MHz,提供給掛載在APB2總線上的外設,APB2總線上的外設如下:
RCC_APB2Periph_AFIO 功能復用IO時鐘
RCC_APB2Periph_GPIOA GPIOA時鐘
RCC_APB2Periph_GPIOB GPIOB時鐘
RCC_APB2Periph_GPIOC GPIOC時鐘
RCC_APB2Periph_GPIOD GPIOD時鐘
RCC_APB2Periph_GPIOE GPIOE時鐘
RCC_APB2Periph_ADC2 ADC2時鐘
RCC_APB2Periph_TIM1 TIM1時鐘
RCC_APB2Periph_SPI1 SPI1時鐘
RCC_APB2Periph_USART1 USART1時鐘
RCC_APB2Periph_ALL 全部APB2外設時鐘
-
單片機
+關注
關注
6043文章
44622瀏覽量
638550 -
STM32
+關注
關注
2272文章
10923瀏覽量
357572 -
時鐘
+關注
關注
11文章
1746瀏覽量
131801
原文標題:圖文教你理解單片機STM32時鐘
文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
STM32F103單片機時鐘樹結構圖及時鐘配置
![<b class='flag-5'>STM32</b>F103<b class='flag-5'>單片機時鐘</b>樹結構圖及<b class='flag-5'>時鐘</b>配置](https://file.elecfans.com/web2/M00/8B/42/pYYBAGPCaASAVYzjAARHw3eM974926.png)
STM32單片機RTC模塊的分析
STM32單片機為什么必須先配置時鐘
![<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>為什么必須先配置<b class='flag-5'>時鐘</b>](https://file.elecfans.com/web1/M00/9E/FB/o4YBAF1BAbiARB9OAAEsGMpEehA444.png)
評論