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