STM32F407ZGT6之時鐘系統(tǒng)介紹
時鐘系統(tǒng)是CPU的脈搏,就像人的心跳一樣。STM32F4 的時鐘系統(tǒng)比較復(fù)雜,不像簡單的51 單片機一個系統(tǒng)時鐘就可以解決一切。STM32F4 的框圖如下(可以看到相應(yīng)的時鐘):
1. 連至 APB2 的定時器從 TIMxCLK 提供時鐘 (最高 168 MHz) ,連至 APB1 的定時器從 TIMxCLK 提供時鐘 (取決于
RCC_DCKCFGR 寄存器中 TIMPRE 位的配置,最高 84 MHz 或 168 MHz)。
2. 攝像頭接口和網(wǎng)絡(luò)接口僅適用于 STM32F407xx 設(shè)備。
系統(tǒng)時鐘圖:
在STM32F4中,有5個重要的時鐘源,為 HSI、 HSE、 LSI、 LSE、 PLL。 其中 PLL 實際是分為兩個時鐘源,分別為主 PLL 和專用 PLL。 從時鐘頻率來分可以分為高速時鐘源和低速時鐘源,在這 5 個中 HSI, HSE 以及 PLL 是高速時鐘, LSI 和 LSE 是低速時鐘。從來源可分為外部時鐘源和內(nèi)部時鐘源,外部時鐘源就是從外部通過接晶振的方式獲取時鐘源,其中 HSE 和LSE 是外部時鐘源,其他的是內(nèi)部時鐘源。下面我們看看 STM32F4 的這 5 個時鐘源,我們講解順序是按圖中紅圈標(biāo)示的順序:
①、 LSI 是低速內(nèi)部時鐘, RC 振蕩器,頻率為 32kHz 左右。供獨立看門狗和自動喚醒單元使用。
②、 LSE 是低速外部時鐘,接頻率為 32.768kHz 的石英晶體。 這個主要是 RTC 的時鐘源。
③、HSE 是高速外部時鐘,可接石英/陶瓷諧振器,或者接外部時鐘源,頻率范圍為 4MHz~26MHz。核心板接的是 8M 的晶振。 HSE 也可以直接做為系統(tǒng)時鐘或者 PLL 輸入。
④、 HSI 是高速內(nèi)部時鐘, RC 振蕩器, 頻率為 16MHz。 可以直接作為系統(tǒng)時鐘或者用作 PLL輸入。
⑤、 PLL 為鎖相環(huán)倍頻輸出。 STM32F4 有兩個 PLL:
1) 主 PLL(PLL)由 HSE 或者 HSI 提供時鐘信號,并具有兩個不同的輸出時鐘。
第一個輸出 PLLP 用于生成高速的系統(tǒng)時鐘(最高 168MHz)
第二個輸出 PLLQ 用于生成 USB OTG FS 的時鐘( 48MHz),隨機數(shù)發(fā)生器的時鐘和 SDIO時鐘。
2) 專用 PLL(PLLI2S)用于生成精確時鐘,從而在 I2S 接口實現(xiàn)高品質(zhì)音頻性能。
給常見的外設(shè)提供時鐘:
A. 這里是看門狗時鐘輸入。從圖中可以看出,看門狗時鐘源只能是低速的 LSI 時鐘。
B. 這里是 RTC 時鐘源,從圖上可以看出, RTC 的時鐘源可以選擇 LSI, LSE,以及HSE 分頻后的時鐘, HSE 分頻系數(shù)為 2~31。
C. 這里是 STM32F4 輸出時鐘 MCO1 和 MCO2。 MCO1 是向芯片的 PA8 引腳輸出時鐘。它有四個時鐘來源分別為: HSI,LSE,HSE 和 PLL 時鐘。 MCO2 是向芯片的PC9 輸出時鐘,它同樣有四個時鐘來源分別為: HSE,PLL, SYSCLK 以及 PLLI2S時鐘。 MCO 輸出時鐘頻率最大不超過 100MHz。
D. 這里是系統(tǒng)時鐘。從圖可以看出, SYSCLK 系統(tǒng)時鐘來源有三個方面:HSI,HSE 和 PLL。在我們實際應(yīng)用中,因為對時鐘速度要求都比較高我們才會選用 STM32F4 這種級別的處理器,所以一般情況下,都是才用 PLL 作為 SYSCLK時鐘源。根據(jù)前面的計算公式,大家就可以算出你的系統(tǒng)的 SYSCLK 是多少。
E. 這里我們指的是以太網(wǎng) PTP 時鐘, AHB 時鐘, APB2 高速時鐘, APB1 低速時鐘。這些時鐘都是來源于 SYSCLK 系統(tǒng)時鐘。其中以太網(wǎng) PTP 時鐘是使用系統(tǒng)時鐘。AHB,APB2 和 APB1 時鐘是經(jīng)過 SYSCLK 時鐘分頻得來。這里大家記住, AHB最大時鐘為 168MHz, APB2高速時鐘最大頻率為 84MHz,而 APB1低速時鐘最大頻率為 42MHz。
F. 這里是指 I2S 時鐘源。從圖 可以看出, I2S 的時鐘源來源于 PLLI2S 或者映射到 I2S_CKIN 引腳的外部時鐘。 I2S 出于音質(zhì)的考慮,對時鐘精度要求很高。
G. 這是 STM32F4 內(nèi)部以太網(wǎng) MAC 時鐘的來源。對于 MII 接口來說,必須向外部PHY 芯片提供 25Mhz 的時鐘,這個時鐘,可以由 PHY 芯片外接晶振,或者使用STM32F4 的 MCO 輸 出 來 提 供 。 然 后 , PHY 芯 片 再 給 STM32F4 提 供ETH_MII_TX_CLK 和 ETH_MII_RX_CLK 時鐘。對于 RMII 接口來說,外部必須提供 50Mhz 的時鐘驅(qū)動 PHY 和 STM32F4 的 ETH_RMII_REF_CLK,這個 50Mhz時鐘可以來自 PHY、有源晶振或者 STM32F4 的 MCO。
H. 這里是指外部 PHY 提供的 USB OTG HS( 60MHZ)時鐘。