文章目錄
- 1. 時鐘與啟動
- 2. CubeMX 時鐘樹
- 2.1 時鐘源
- 2.2 PLL 鎖相環
- 2.3 時鐘分發與選擇
- 2.4 頻率限制
1. 時鐘與啟動
-
復位默認時鐘:系統復位后,CPU 時鐘默認由 16MHz 內部 RC 振蕩器(HSI)提供,該 RC 振蕩器經工廠校準,確保在全溫度范圍(-40℃~125℃等工業級場景)內,頻率精度維持在 1% 以內。
-
系統時鐘源切換:可以手動選擇系統時鐘源,支持兩種路徑:
- 內部 HSI:16MHz RC。
- ?外部 HSE:4~26MHz 外部時鐘源(晶體/陶瓷諧振器 或 時鐘信號)。
- SW:系統時鐘選擇器,選擇 SYSCLK的來源。
- ?PLLCLK:鎖相環輸出時鐘,通過倍頻技術,將 HSI/HSE 輸入時鐘放大至高頻,F407 最高 168MHz。
-
時鐘故障監測:持續監測外部時鐘 HSE 運行狀態,若檢測到失效,硬件自動切回內部 RC 振蕩器,同時可觸發軟件中斷。
-
PLL 倍頻:來自HSI/HSE的原始時鐘信號,經過??/M分頻器?(分頻系數M=2–63)降低輸入頻率至VCO可接受范圍,VCO×N倍頻器輸出高頻信號到分頻器,轉化為多路可用時鐘:??/P–系統主時鐘分頻器輸出SYSCLK,??/Q–高速外設時鐘分頻器輸出嚴格48MHz。
-
AHB - APB 分層總線架構:通過預分頻器(Prescalers)靈活配置總線時鐘:
- AHB 高速系統總線,連接 CPU、內存(SRAM/Flash)、高性能外設(如 DMA、ETH 以太網),最大頻率 168MHz。
- APB 外設總線,進一步分為:
- APB2(高速域):連接對時鐘速率敏感的外設(如 ADC、高級定時器 TIM1/TIM8),最大頻率 84MHz。
- APB1(低速域):連接低功耗 / 低速外設(如 UART、I2C、基礎定時器 TIM2 - TIM7),最大頻率 42MHz。
-
PLLI2S:專為 I2S 音頻接口設計,通過精準倍頻 / 分頻,生成穩定的 I2S 主時鐘(I2S Master Clock),覆蓋 8kHz~192kHz 標準音頻采樣頻率。
2. CubeMX 時鐘樹
2.1 時鐘源
- ?LSE (Low-Speed External):?? 外部低速晶振 ?32.768KHz,為 RTC 實時時鐘提供精準計時。
- LSI (Low-Speed Internal):?? 內部低速 RC 振蕩器,給獨立看門狗 IWDG 提供獨立可靠的時鐘,或作為低功耗下的備用 RTC 時鐘。
- ?HSE (High-Speed External):?? 外部高速晶振,支持 4-26MHz 范圍,作為 系統時鐘SYSCLK 和 PLL 的來源,或者供某些高速外設使用。
- ?HSI (High-Speed Internal):?? 內部高速 RC 振蕩器16MHz,當HSE失效作為備用源,可以輸入到PLL,系統啟動時默認先使用HSI。
2.2 PLL 鎖相環
- HSE/HSI --> PLL Source Mux選擇 --> M分頻器 --> N倍頻器 --> P分頻器 --> 主PLL輸出 PLLCLK。
- Q分頻器 給USB,SDIO,RNG 等外設提供 48MHz 時鐘。
- PLLI2S 為音頻接口 I2S 提供專用時鐘。
2.3 時鐘分發與選擇
- ?System Clock Mux 決定了 SYSCLK 系統主時鐘的來源:HSI,HSE,PLLCLK。
- SYSCLK 直接輸入到 ?AHB Prescaler 可以被分頻(可選擇的分頻系數為1,2,4,8,16,32,64,128,256,512)得到 HCLK,HCLK最高168MHz。
- ?APB1 Prescaler(分頻因子可以選擇1,2,4,8,16) 供低速外設使用,最高42MHz;?APB2 Prescaler(分頻因子可以選擇1,2,4,8,16) 供高速外設使用,最高84MHz。
2.4 頻率限制
各模塊和總線的頻率有上限?,在CubeMX配置時,如果超出,相關框會變成醒目的紅色或橙色警告。
- SYSCLK ≤ 168MHz。
- HCLK ≤ 168MHz。
- PCLK1 ≤ 42MHz。
- PCLK2 ≤ 84MHz。
- USB OTG FS ?必須? 48MHz ±0.25% (PLL48CLK)。
- 以太網 PTP ≤ 168MHz。
- VCO頻率必須在100 - 432MHz之間。
關于HSE和LSE晶振電路的設計可參考這篇文章!