【STM32】时钟
00. 目錄
文章目錄
- 00. 目錄
- 01. 時鐘概述
- 02. HSE時鐘
- 03. HSI時鐘
- 04. PLL配置
- 05. LSE時鐘
- 06. LSI時鐘
- 07. 系統時鐘 (SYSCLK)選擇
- 08. 附錄
- 09. 聲明
01. 時鐘概述
可以使用三種不同的時鐘源來驅動系統時鐘 (SYSCLK):
● HSI 振蕩器時鐘
● HSE 振蕩器時鐘
● 主 PLL (PLL) 時鐘
器件具有以下兩個次級時鐘源:
● 32 kHz 低速內部 RC (LSI RC),該 RC 用于驅動獨立看門狗,也可選擇提供給 RTC 用于停機/待機模式下的自動喚醒。
● 32.768 kHz 低速外部晶振(LSE 晶振),用于驅動 RTC 時鐘 (RTCCLK)對于每個時鐘源來說,在未使用時都可單獨打開或者關閉,以降低功耗
時鐘控制器為應用帶來了高度的靈活性,用戶在運行內核和外設時可選擇使用外部晶振或者使用振蕩器,既可采用最高的頻率,也可為以太網、USB OTG FS 以及 HS、I2S 和 SDIO等需要特定時鐘的外設保證合適的頻率
可通過多個預分頻器配置 AHB 頻率、高速 APB (APB2) 和低速 APB (APB1)。AHB 域的最大頻率為 168 MHz。高速 APB2 域的最大允許頻率為 84 MHz。低速 APB1 域的最大允許頻率為 42 MHz。
除以下時鐘外,所有外設時鐘均由系統時鐘 (SYSCLK) 提供:
● 來自于特定 PLL 輸出 (PLL48CLK) 的 USB OTG FS 時鐘 (48 MHz)、基于模擬技術的隨機數發(fā)生器 (RNG) 時鐘 (<=48 MHz) 和 SDIO 時鐘 (<=48 MHz)。
● I2S 時鐘
要實現高品質的音頻性能,可通過特定的 PLL (PLLI2S) 或映射到 I2S_CKIN 引腳的外部時鐘提供 I2S 時鐘。有關 I2S 時鐘頻率和精度的詳細信息,請參見 第 27.4.4 節(jié):時鐘發(fā)生器 。
● 由外部 PHY 提供的 USB OTG HS (60 MHz) 時鐘
● 由外部 PHY 提供的以太網 MAC 時鐘(TX、RX 和 RMII)。有關以太網配置的更多信息,請參見以太網外設說明中的 第 29.4.4 節(jié): MII/RMII 選擇 。當使用以太網時,AHB時鐘頻率至少應為 25 MHz。
RCC 向 Cortex 系統定時器 (SysTick) 饋送 8 分頻的 AHB 時鐘 (HCLK)。SysTick 可使用此時鐘作為時鐘源,也可使用 HCLK 作為時鐘源,具體可在 SysTick 控制和狀態(tài)寄存器中配置。
STM32F405xx/07xx 和 STM32F415xx/17xx 的定時器時鐘頻率由硬件自動設置。分為兩種情況:
02. HSE時鐘
高速外部時鐘信號 (HSE) 有 2 個時鐘源:
● HSE 外部晶振/陶瓷諧振器
● HSE 外部用戶時鐘
諧振器和負載電容必須盡可能地靠近振蕩器的引腳,以盡量減小輸出失真和起振穩(wěn)定時間。負載電容值必須根據所選振蕩器的不同做適當調整。
外部源(HSE 旁路)
在此模式下,必須提供外部時鐘源。此模式通過將 RCC 時鐘控制寄存器 (RCC_CR) 中的HSEBYP 和 HSEON 位置 1 進行選擇。必須使用占空比約為 50% 的外部時鐘信號(方波、正弦波或三角波)來驅動 OSC_IN 引腳,同時 OSC_OUT 引腳應保持為高阻態(tài) (hi-Z)。
外部晶振/ 陶瓷諧振器(HSE 晶振)
HSE 的特點是精度非常高。
RCC 時鐘控制寄存器 (RCC_CR) 中的 HSERDY 標志指示高速外部振蕩器是否穩(wěn)定。在啟動時,硬件將此位置 1 后,此時鐘才可以使用。如在 RCC 時鐘中斷寄存器 (RCC_CIR) 中使能中斷,則可產生中斷。
HSE 晶振可通過 RCC 時鐘控制寄存器 (RCC_CR) 中的 HSEON 位打開或關閉。
03. HSI時鐘
HSI 時鐘信號由內部 16 MHz RC 振蕩器生成,可直接用作系統時鐘,或者用作 PLL 輸入。HSI RC 振蕩器的優(yōu)點是成本較低(無需使用外部組件)。此外,其啟動速度也要比 HSE 晶振塊,但即使校準后,其精度也不及外部晶振或陶瓷諧振器。
校準
因為生產工藝不同,不同芯片的 RC 振蕩器頻率也不同,因此 ST 會對每個器件進行出廠校準,達到 T A = 25 °C 時 1% 的精度。
復位后,工廠校準值將加載到 RCC 時鐘控制寄存器 (RCC_CR) 的 HSICAL[7:0] 位中。
如果應用受到電壓或溫度變化影響,則這可能也會影響到 RC 振蕩器的速度。用戶可通過RCC 時鐘控制寄存器 (RCC_CR) 中的 HSITRIM[4:0] 位對 HSI 頻率進行微調。
RCC 時鐘控制寄存器 (RCC_CR) 中的 HSIRDY 標志指示 HSI RC 是否穩(wěn)定。在啟動時,硬件將此位置 1 后,HSI 才可以使用。
HSI RC 可通過 RCC 時鐘控制寄存器 (RCC_CR) 中的 HSION 位打開或關閉。
HSI 信號還可作為備份時鐘源(輔助時鐘)使用,以防 HSE 晶振發(fā)生故障。
04. PLL配置
STM32F4xx 器件具有兩個 PLL:
● 主 PLL (PLL) 由 HSE 或 HSI 振蕩器提供時鐘信號,并具有兩個不同的輸出時鐘:
— 第一個輸出用于生成高速系統時鐘(最高達 168 MHz)
— 第二個輸出用于生成 USB OTG FS 的時鐘 (48 MHz)、隨機數發(fā)生器的時鐘 (<=48 MHz) 和 SDIO 時鐘 (<=48 MHz)。
● 專用 PLL (PLLI2S) 用于生成精確時鐘,從而在 I2S 接口實現高品質音頻性能。
由于在 PLL 使能后主 PLL 配置參數便不可更改,所以建議先對 PLL 進行配置,然后再使能(選擇 HSI 或 HSE 振蕩器作為 PLL 時鐘源,并配置分頻系數 M、N、P 和 Q)。
PLLI2S 使用與 PLL 相同的輸入時鐘(PLLM[5:0] 和 PLLSRC 位為兩個 PLL 所共用)。但是,PLLI2S 具有專門的使能/禁止和分頻系數(N 和 R)配置位。在 PLLI2S 使能后,配置參數便不能更改。
當進入停機和待機模式后,兩個 PLL 將由硬件禁止;如將 HSE 或 PLL(由 HSE 提供時鐘信號)用作系統時鐘,則在 HSE 發(fā)生故障時,兩個 PLL 也將由硬件禁止。RCC PLL 配置寄存器 (RCC_PLLCFGR) 和RCC 時鐘配置寄存器 (RCC_CFGR) 可分別用于配置 PLL 和 PLLI2S。
05. LSE時鐘
LSE 晶振是 32.768 kHz 低速外部 (LSE) 晶振或陶瓷諧振器,可作為實時時鐘外設 (RTC) 的時鐘源來提供時鐘/日歷或其它定時功能,具有功耗低且精度高的優(yōu)點。
LSE 晶振通過 RCC 備份域控制寄存器 (RCC_BDCR) 中的 LSEON 位打開和關閉。
RCC 備份域控制寄存器 (RCC_BDCR) 中的 LSERDY 標志指示 LSE 晶振是否穩(wěn)定。在啟動時,硬件將此位置 1 后,LSE 晶振輸出時鐘信號才可以使用。如在 RCC 時鐘中斷寄存器(RCC_CIR) 中使能中斷,則可產生中斷。
外部源(LSE 旁路)
在此模式下,必須提供外部時鐘源,最高頻率不超過 1 MHz。此模式通過將 RCC 備份域控制寄存器 (RCC_BDCR) 中的 LSEBYP 和 LSEON 位置 1 進行選擇。必須使用占空比約為 50%的外部時鐘信號(方波、正弦波或三角波)來驅動 OSC32_IN 引腳,同時 OSC32_OUT 引腳應保持為高阻態(tài) (Hi-Z)。
06. LSI時鐘
LSI RC 可作為低功耗時鐘源在停機和待機模式下保持運行,供獨立看門狗 (IWDG) 和自動喚醒單元 (AWU) 使用。時鐘頻率在 32 kHz 左右。有關詳細信息,請參見數據手冊的電氣特性部分。
LSI RC 可通過 RCC 時鐘控制和狀態(tài)寄存器 (RCC_CSR) 中的 LSION 位打開或關閉。
RCC 時鐘控制和狀態(tài)寄存器 (RCC_CSR) 中的 LSIRDY 標志指示低速內部振蕩器是否穩(wěn)定。在啟動時,硬件將此位置 1 后,此時鐘才可以使用。如在 RCC 時鐘中斷寄存器 (RCC_CIR) 中使能中斷,則可產生中斷。
07. 系統時鐘 (SYSCLK)選擇
在系統復位后,默認系統時鐘為 HSI。在直接使用 HSI 或者通過 PLL 使用時鐘源來作為系統時鐘時,該時鐘源無法停止。
只有在目標時鐘源已就緒時(時鐘在啟動延遲或 PLL 鎖相后穩(wěn)定時),才可從一個時鐘源切
換到另一個。如果選擇尚未就緒的時鐘源,則切換在該時鐘源就緒時才會進行。RCC 時鐘
控制寄存器 (RCC_CR) 中的狀態(tài)位指示哪個(些)時鐘已就緒,以及當前哪個時鐘正充當系
統時鐘。
08. 附錄
8.1 【STM32】STM32系列教程匯總
網址:【STM32】STM32系列教程匯總
09. 聲明
該教程參考了正點原子的《STM32 F4 開發(fā)指南》
總結
- 上一篇: 【STM32】复位
- 下一篇: 【STM32】STM32F4时钟系统