作為MCU運行的基礎,時鐘是MCU各個模塊工作時序的最小時間單位,推動MCU的各指令執行,是MCU選型的一個重要指標。CKS32F107xx系列MCU具有眾多的外設,但并非所有的外設均需要系統時鐘的高頻率,并且高時鐘頻率將導致功耗增加、抗電磁干擾能力變弱,因此,CKS32F107xx系列MCU內部具備多個時鐘源。本文將對CKS32F107xx系列時鐘組成進行介紹,以幫助讓用戶對系統時鐘了解。
CKS32F107系列時鐘介紹
在CKS32F107xx系列MCU中,有HSI、HSE、LSI、LSE、PLL五個重要的時鐘源。從時鐘頻率來分可以分為高速時鐘源(HSI、HSE、PLL)和低速時鐘源(LSI、LSE);從來源可分為外部時鐘源(HSE、LSE)和內部時鐘源(HSI、LSI、PLL);從功能應用配置劃分可分為系統時鐘(SYSCLK)、時鐘安全系統(CSS)、獨立看門狗時鐘、RTC時鐘。下圖為CKS32F107xx系列MCU時鐘樹時鐘樹:

圖1CKS32F107系列MCU時鐘樹
HSE時鐘
高速外部時鐘信號(HSE)由以下兩種時鐘源產生:
●HSE外部晶體/陶瓷諧振器
●HSE用戶外部時鐘
為了減少時鐘輸出的失真和縮短啟動穩定時間,晶體/陶瓷諧振器和負載電容器必須盡可能地靠近振蕩器引腳。負載電容值必須根據所選擇的振蕩器來調整。

圖2HSE時鐘源
外部晶體/陶瓷諧振器(HSE晶振):
4~16Mz外部振蕩器可為系統提供更為精確的時鐘。相關的硬件配置可參考圖1,在時鐘控制寄存器RCC_CR中的HSERDY位用來指示高速外部振蕩器是否穩定。直到這該位被硬件置’1’,才能使用HSECLK。如果在時鐘中斷寄存器RCC_CIR中允許產生中斷,將會產生相應中斷。
HSE晶振可以通過設置時鐘控制寄存器里RCC_CR中的HSEON位被啟動和關閉。
HSE用戶外部時鐘(HSE旁路):
在這個模式里,必須提供外部時鐘。它的頻率最高可達25MHz。用戶可通過設置在時鐘控制寄存器中的HSEBYP和HSEON位來選擇這一模式。外部時鐘信號(50%占空比的方波、正弦波或三角波)必須連到OSC_IN引腳,同時保證OSC_OUT引腳懸空。見圖1。
HSI時鐘
HSI時鐘信號由內部8MHz的RC振蕩器產生,可直接作為系統時鐘,也可在不分頻或2分頻后作為PLL輸入源。HIS RC振蕩器能夠在不需要任何外部器件的條件下提供系統時鐘。它的啟動時間比HSE晶體振蕩器短。但是,即使在校準之后它的時鐘頻率精度仍較HSE晶振差。
PLL
主PLL以下述時鐘源之一為輸入,產生倍頻的輸出:
●HSI時鐘
●HSI的二分頻時鐘
●HSE通過一個可配置分頻器提供的時鐘
●PLL2通過一個可配置分頻器提供的時鐘
PLL2和PLL3由HSE通過一個可配置的分頻器提供時鐘。必須在使能每個PLL之前完成PLL的配置(選擇時鐘源、預分頻系數和倍頻系數等),同時應該在它們的輸入時鐘穩定(就緒位)后才能使能。一旦使能了PLL,這些參數將不能再被改變。當改變主PLL的輸入時鐘源時,必須在選中了新的時鐘源(通過時鐘配置寄存器(RCC_CFGR)的PLLSRC位)之后才能關閉原來的時鐘源。時鐘中斷寄存器(RCC_CIR),可以在PLL就緒時產生一個中斷。
LSE時鐘
LSE晶振是一個32.768kHz的低速外部晶體或陶瓷諧振器。它為實時時鐘或者其他定時功能提供一個低功耗且精確的時鐘源。
(1)外部晶體/陶瓷諧振器(LSE晶振)
LSE晶振通過在備份域控制寄存器(RCC_BDCR)里的LSEON位啟動和關閉。在備份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶體振蕩是否穩定。在啟動階段,直到這個位被硬件置’1’后,LSE時鐘信號才能被使用。如果在時鐘中斷寄存器里被允許,可產生中斷請求。
(2)外部時鐘源(LSE旁路)
在這個模式里必須提供一個32.768kHz頻率的外部時鐘源。可以通過設置在備份域控制寄存器(RCC_BDCR)里的LSEBYP和LSEON位來選擇這個模式。具有50%占空比的外部時鐘信號(方波、正弦波或三角波)必須連到OSC32_IN引腳,同時保證OSC32_OUT引腳懸空。
LSI時鐘
LSI RC擔當一個低功耗時鐘源的角色,它可以在停機和待機模式下保持運行,為獨立看門狗和RTC提供時鐘。LSI時鐘頻率大約40kHz(在30kHz和60kHz之間)。進一步信息請參考數據手冊中有關電氣特性部分。
LSI RC可以通過控制/狀態寄存器(RCC_CSR)里的LSION位來啟動或關閉。在控制/狀態寄存器(RCC_CSR)里的LSIRDY位指示低速內部振蕩器是否穩定。在啟動階段,直到這個位被硬件設置為’1’后,該時鐘才能使用。如果在時鐘中斷寄存器(RCC_CIR)里被允許,將產生LSI中斷請求。
系統時鐘(SYSCLK)選擇
系統復位后,HSI振蕩器被選為系統時鐘。當時鐘源被直接或通過PLL間接作為系統時鐘時,它將不能被停止。當系統時鐘從一個時鐘源到另一個時鐘源切換時,只有當目標時鐘源準備就緒(經過啟動穩定階段的延遲或PLL穩定),才能進行切換,否則,系統時鐘的切換不允許發生。在時鐘控制寄存器(RCC_CR)的狀態位會指示哪個時鐘已經準備好了,哪個時鐘目前被用作系統時鐘。
時鐘安全系統(CSS)
時鐘安全系統可以通過軟件被激活。一旦其被激活,時鐘監測器將在HSE振蕩器啟動穩定后被使能,并在HSE時鐘關閉后關閉。
如果HSE時鐘發生故障,HSE振蕩器被自動關閉,時鐘失效事件將被送到高級定時器(TIM1的剎車輸入端,并產生時鐘安全中斷CSSI,允許軟件完成營救操作。此CSSI中斷連接到內核的NMI中斷(不可屏蔽中斷)。
需要強調的是一旦CSS被激活,并且HSE時鐘出現故障,CSS中斷就產生,并且NMI(不可屏蔽的中斷)也自動產生。NMI將被不斷執行,直到CSS中斷掛起位被清除。因此,在NMI(不可屏蔽的中斷)的處理程序中必須通過設置時鐘中斷寄存器(RCC_CIR)里的CSSC位來清除CSS中斷。
如果HSE振蕩器被直接或間接地作為系統時鐘,(間接的意思是:它被作為PLL輸入時鐘,并且PLL時鐘被作為系統時鐘),時鐘故障將導致系統時鐘自動切換到HSI振蕩器,同時外部HSE振蕩器被關閉。在時鐘失效時,如果HSE振蕩器時鐘(被分頻或未被分頻)是用作系統時鐘的PLL的輸入時鐘,PLL也將被關閉。
獨立看門狗時鐘
如果獨立看門狗已經由硬件選項或軟件啟動,LSI振蕩器將被強制在打開狀態,并且不能被關閉。在LSI振蕩器穩定后,時鐘供應給IWDG模塊。
RTC時鐘
通過設置備份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK時鐘源可以由HSE/128、LSE或LSI時鐘提供。除非備份域復位,此選擇不能被改變。
LSE時鐘在備份域里,但HSE和LSI時鐘不在備份域。因此:
(1)如果LSE被選為RTC時鐘:只要VBAT維持供電,即使VDD供電被切斷,RTC仍能工作。
(2)如果LSI被選為RTC時鐘:如果VDD供電被切斷,RTC不能工作。
(3)如果HSE時鐘128分頻后作為RTC時鐘:如果VDD供電被切斷或內部電壓調壓器被關閉(1.5V域的供電被切斷),則RTC狀態不確定。
時鐘輸出(MCO)
微控制器允許輸出時鐘信號到外部MCO引腳。相應的GPIO端口寄存器必須被配置為相應功能。以下8個時鐘信號可被選作MCO時鐘:
●SYSCLK
●HSI
●HSE
●PLL時鐘的二分頻
●PLL2時鐘
●PLL3時鐘的二分頻
●XT13-25MHz外部晶振時鐘(用于以太網)
●PLL3時鐘(用于以太網)
時鐘配置寄存器(RCC_CFGR)中的MCO[3:0]位控制。
審核編輯:劉清
-
以太網
+關注
關注
41文章
6130瀏覽量
181438 -
振蕩器
+關注
關注
28文章
4188瀏覽量
143135 -
寄存器
+關注
關注
31文章
5615瀏覽量
130342 -
RTC
+關注
關注
2文章
662瀏覽量
72186 -
電壓調壓器
+關注
關注
0文章
6瀏覽量
916
原文標題:MCU微課堂|CKS32F107xx系列時鐘介紹
文章出處:【微信號:中科芯MCU,微信公眾號:中科芯MCU】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
中科芯CKS32F107XX系列MCU的獨立看門狗介紹
中科芯CKS32F107XX系列MCU的窗口看門狗介紹
中科芯CKS32F107XX系列MCU的bxCAN介紹
MCU微課堂|CKS32F4xx系列產品時鐘配置
基于CKS32F4xx系列的MCU互補PWM方案
CKS32F4xx系列產品串口DMA傳輸
CKS32F4xx系列RNG功能設置
CKS32F107xx系列MCU中ADC介紹
CKS32F107xx系列MCU的GPIO內部硬件結構和工作模式
詳解CKS32F107xx系列的定時器同步功能
CKS32F107xx系列時鐘組成介紹
評論