STM32 32.768KHz 和 8MHz 兩個晶振的作用#
通常情況下,對於一些成熟的STM32
開發板,在其電路原理圖的設計中,MCU
外接了兩個晶振。一個是低速晶振 32.768kHz
,另一個是高速晶振 8MHZ
。下文探討二者的作用。
1. STM32
原理圖#
通常情況下,一些成熟的開發板在對STM32
晶片進行原理圖設計時,會使用兩個晶振,如下圖:
在進行晶振貼片時,由於晶振的體積比四周電阻體積大很多,晶振會佔用較多的空間。如下圖:
這對我們製作一些超小型電路板是不利的,因為板子空間有限。為此,我們需要理解這兩個晶振的作用,尤其是低速晶振 32.768kHz
,對其適當取捨。
2. CubeMX
時鐘配置圖#
在STM32
官方推薦的開發工具CubeMX
中,我們可以直觀的看到MCU
的時鐘配置圖。在圖中可以看到晶片的時鐘配置情況,同時也可以看到低速晶振 32.768kHz
和高速晶振 8MHZ
的入口。如下圖左側紅框:
2.1 低速晶振 32.768kHz
#
從圖中可以看出,低速晶振 32.768kHz
連接LSE
(low-speed external clock signal),最終到達 **RTC
**(real-time clock)。
RTC
是一個獨立的定時器 1 。從 real-time clock(實時時鐘)四字可以理解,RTC
可以為系統實時記錄當前系統時間和日期,不管晶片有沒有掉電。如果想要使用 RTC
實時記錄系統時間,晶片需要接入額外備用電源,通常為紐扣電池。這樣以來,RTC
在晶片掉電後,可以由電池供電繼續運行 2 。
對於掉電後不需要記錄系統時間的電路板,我們將低速晶振 32.768kHz
捨去,節約板子空間,精簡電路設計。
2.2 高速晶振 8MHZ
#
從圖中可以看出,高速晶振 8MHz
連接HSE
(high-speed external clock signal),最終到達 **SYSCLK
**(system clock)。
SYSCLK
是系統時鐘,為晶片內部各大模塊的運轉提供動力,不可缺少。高速晶振8MHz
作為系統時鐘的來源,可以由晶片內部的 HSI
RC 時鐘源或晶片外部的 獨立時鐘源 提供。這篇文章3提到在使用晶片內部的 HSI
RC 時鐘源做為系統時鐘時,發現時鐘有偏差,導致串口設備無法使用。由於晶片內部的 HSI
RC 時鐘源不夠精準,我們通常採用外部獨立時鐘源來為晶片提供系統時鐘。
對於 STM32
電路板,外部高速晶振 8MHz
需要保留,為晶片提供系統時鐘,使晶片能夠正常工作。
3. 參考文獻#
- 【STM32】RTC 實時時鐘,步驟超細詳解,一文看懂 RTC ↩︎
- [RTC 實時時鐘實驗 (低功耗、紐扣電池供電)](https://blog.csdn.net/zhuguanlin121/article/details/121430674?ops_request_misc=&request_id=&biz_id=102&utm_term=RTC 需要供電 & utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-121430674.142^v40^control,185^v2^control&spm=1018.2226.3001.4187) ↩︎
- [STM32 HSI 時鐘偏差問題](https://blog.csdn.net/Roomen0/article/details/105782637/?ops_request_misc=&request_id=&biz_id=102&utm_term=stm32 HSI 不準 & utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-105782637.142^v40^control,185^v2^control&spm=1018.2226.3001.4187) ↩︎