作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是MCU各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)MCU的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。CKS32F107xx系列MCU具有眾多的外設(shè),但并非所有的外設(shè)均需要系統(tǒng)時(shí)鐘的高頻率,并且高時(shí)鐘頻率將導(dǎo)致功耗增加、抗電磁干擾能力變?nèi)?,因此,CKS32F107xx系列MCU內(nèi)部具備多個(gè)時(shí)鐘源。本文將對(duì)CKS32F107xx系列時(shí)鐘組成進(jìn)行介紹,以幫助讓用戶對(duì)系統(tǒng)時(shí)鐘了解。
CKS32F107系列時(shí)鐘介紹
在CKS32F107xx系列MCU中,有HSI、HSE、LSI、LSE、PLL五個(gè)重要的時(shí)鐘源。從時(shí)鐘頻率來分可以分為高速時(shí)鐘源(HSI、HSE、PLL)和低速時(shí)鐘源(LSI、LSE);從來源可分為外部時(shí)鐘源(HSE、LSE)和內(nèi)部時(shí)鐘源(HSI、LSI、PLL);從功能應(yīng)用配置劃分可分為系統(tǒng)時(shí)鐘(SYSCLK)、時(shí)鐘安全系統(tǒng)(CSS)、獨(dú)立看門狗時(shí)鐘、RTC時(shí)鐘。下圖為CKS32F107xx系列MCU時(shí)鐘樹時(shí)鐘樹:
圖1CKS32F107系列MCU時(shí)鐘樹
HSE時(shí)鐘
高速外部時(shí)鐘信號(hào)(HSE)由以下兩種時(shí)鐘源產(chǎn)生:
●HSE外部晶體/陶瓷諧振器
●HSE用戶外部時(shí)鐘
為了減少時(shí)鐘輸出的失真和縮短啟動(dòng)穩(wěn)定時(shí)間,晶體/陶瓷諧振器和負(fù)載電容器必須盡可能地靠近振蕩器引腳。負(fù)載電容值必須根據(jù)所選擇的振蕩器來調(diào)整。
圖2HSE時(shí)鐘源
外部晶體/陶瓷諧振器(HSE晶振):
4~16Mz外部振蕩器可為系統(tǒng)提供更為精確的時(shí)鐘。相關(guān)的硬件配置可參考圖1,在時(shí)鐘控制寄存器RCC_CR中的HSERDY位用來指示高速外部振蕩器是否穩(wěn)定。直到這該位被硬件置’1’,才能使用HSECLK。如果在時(shí)鐘中斷寄存器RCC_CIR中允許產(chǎn)生中斷,將會(huì)產(chǎn)生相應(yīng)中斷。
HSE晶振可以通過設(shè)置時(shí)鐘控制寄存器里RCC_CR中的HSEON位被啟動(dòng)和關(guān)閉。
HSE用戶外部時(shí)鐘(HSE旁路):
在這個(gè)模式里,必須提供外部時(shí)鐘。它的頻率最高可達(dá)25MHz。用戶可通過設(shè)置在時(shí)鐘控制寄存器中的HSEBYP和HSEON位來選擇這一模式。外部時(shí)鐘信號(hào)(50%占空比的方波、正弦波或三角波)必須連到OSC_IN引腳,同時(shí)保證OSC_OUT引腳懸空。見圖1。
HSI時(shí)鐘
HSI時(shí)鐘信號(hào)由內(nèi)部8MHz的RC振蕩器產(chǎn)生,可直接作為系統(tǒng)時(shí)鐘,也可在不分頻或2分頻后作為PLL輸入源。HIS RC振蕩器能夠在不需要任何外部器件的條件下提供系統(tǒng)時(shí)鐘。它的啟動(dòng)時(shí)間比HSE晶體振蕩器短。但是,即使在校準(zhǔn)之后它的時(shí)鐘頻率精度仍較HSE晶振差。
PLL
主PLL以下述時(shí)鐘源之一為輸入,產(chǎn)生倍頻的輸出:
●HSI時(shí)鐘
●HSI的二分頻時(shí)鐘
●HSE通過一個(gè)可配置分頻器提供的時(shí)鐘
●PLL2通過一個(gè)可配置分頻器提供的時(shí)鐘
PLL2和PLL3由HSE通過一個(gè)可配置的分頻器提供時(shí)鐘。必須在使能每個(gè)PLL之前完成PLL的配置(選擇時(shí)鐘源、預(yù)分頻系數(shù)和倍頻系數(shù)等),同時(shí)應(yīng)該在它們的輸入時(shí)鐘穩(wěn)定(就緒位)后才能使能。一旦使能了PLL,這些參數(shù)將不能再被改變。當(dāng)改變主PLL的輸入時(shí)鐘源時(shí),必須在選中了新的時(shí)鐘源(通過時(shí)鐘配置寄存器(RCC_CFGR)的PLLSRC位)之后才能關(guān)閉原來的時(shí)鐘源。時(shí)鐘中斷寄存器(RCC_CIR),可以在PLL就緒時(shí)產(chǎn)生一個(gè)中斷。
LSE時(shí)鐘
LSE晶振是一個(gè)32.768kHz的低速外部晶體或陶瓷諧振器。它為實(shí)時(shí)時(shí)鐘或者其他定時(shí)功能提供一個(gè)低功耗且精確的時(shí)鐘源。
(1)外部晶體/陶瓷諧振器(LSE晶振)
LSE晶振通過在備份域控制寄存器(RCC_BDCR)里的LSEON位啟動(dòng)和關(guān)閉。在備份域控制寄存器(RCC_BDCR)里的LSERDY指示LSE晶體振蕩是否穩(wěn)定。在啟動(dòng)階段,直到這個(gè)位被硬件置’1’后,LSE時(shí)鐘信號(hào)才能被使用。如果在時(shí)鐘中斷寄存器里被允許,可產(chǎn)生中斷請求。
(2)外部時(shí)鐘源(LSE旁路)
在這個(gè)模式里必須提供一個(gè)32.768kHz頻率的外部時(shí)鐘源??梢酝ㄟ^設(shè)置在備份域控制寄存器(RCC_BDCR)里的LSEBYP和LSEON位來選擇這個(gè)模式。具有50%占空比的外部時(shí)鐘信號(hào)(方波、正弦波或三角波)必須連到OSC32_IN引腳,同時(shí)保證OSC32_OUT引腳懸空。
LSI時(shí)鐘
LSI RC擔(dān)當(dāng)一個(gè)低功耗時(shí)鐘源的角色,它可以在停機(jī)和待機(jī)模式下保持運(yùn)行,為獨(dú)立看門狗和RTC提供時(shí)鐘。LSI時(shí)鐘頻率大約40kHz(在30kHz和60kHz之間)。進(jìn)一步信息請參考數(shù)據(jù)手冊中有關(guān)電氣特性部分。
LSI RC可以通過控制/狀態(tài)寄存器(RCC_CSR)里的LSION位來啟動(dòng)或關(guān)閉。在控制/狀態(tài)寄存器(RCC_CSR)里的LSIRDY位指示低速內(nèi)部振蕩器是否穩(wěn)定。在啟動(dòng)階段,直到這個(gè)位被硬件設(shè)置為’1’后,該時(shí)鐘才能使用。如果在時(shí)鐘中斷寄存器(RCC_CIR)里被允許,將產(chǎn)生LSI中斷請求。
系統(tǒng)時(shí)鐘(SYSCLK)選擇
系統(tǒng)復(fù)位后,HSI振蕩器被選為系統(tǒng)時(shí)鐘。當(dāng)時(shí)鐘源被直接或通過PLL間接作為系統(tǒng)時(shí)鐘時(shí),它將不能被停止。當(dāng)系統(tǒng)時(shí)鐘從一個(gè)時(shí)鐘源到另一個(gè)時(shí)鐘源切換時(shí),只有當(dāng)目標(biāo)時(shí)鐘源準(zhǔn)備就緒(經(jīng)過啟動(dòng)穩(wěn)定階段的延遲或PLL穩(wěn)定),才能進(jìn)行切換,否則,系統(tǒng)時(shí)鐘的切換不允許發(fā)生。在時(shí)鐘控制寄存器(RCC_CR)的狀態(tài)位會(huì)指示哪個(gè)時(shí)鐘已經(jīng)準(zhǔn)備好了,哪個(gè)時(shí)鐘目前被用作系統(tǒng)時(shí)鐘。
時(shí)鐘安全系統(tǒng)(CSS)
時(shí)鐘安全系統(tǒng)可以通過軟件被激活。一旦其被激活,時(shí)鐘監(jiān)測器將在HSE振蕩器啟動(dòng)穩(wěn)定后被使能,并在HSE時(shí)鐘關(guān)閉后關(guān)閉。
如果HSE時(shí)鐘發(fā)生故障,HSE振蕩器被自動(dòng)關(guān)閉,時(shí)鐘失效事件將被送到高級(jí)定時(shí)器(TIM1的剎車輸入端,并產(chǎn)生時(shí)鐘安全中斷CSSI,允許軟件完成營救操作。此CSSI中斷連接到內(nèi)核的NMI中斷(不可屏蔽中斷)。
需要強(qiáng)調(diào)的是一旦CSS被激活,并且HSE時(shí)鐘出現(xiàn)故障,CSS中斷就產(chǎn)生,并且NMI(不可屏蔽的中斷)也自動(dòng)產(chǎn)生。NMI將被不斷執(zhí)行,直到CSS中斷掛起位被清除。因此,在NMI(不可屏蔽的中斷)的處理程序中必須通過設(shè)置時(shí)鐘中斷寄存器(RCC_CIR)里的CSSC位來清除CSS中斷。
如果HSE振蕩器被直接或間接地作為系統(tǒng)時(shí)鐘,(間接的意思是:它被作為PLL輸入時(shí)鐘,并且PLL時(shí)鐘被作為系統(tǒng)時(shí)鐘),時(shí)鐘故障將導(dǎo)致系統(tǒng)時(shí)鐘自動(dòng)切換到HSI振蕩器,同時(shí)外部HSE振蕩器被關(guān)閉。在時(shí)鐘失效時(shí),如果HSE振蕩器時(shí)鐘(被分頻或未被分頻)是用作系統(tǒng)時(shí)鐘的PLL的輸入時(shí)鐘,PLL也將被關(guān)閉。
獨(dú)立看門狗時(shí)鐘
如果獨(dú)立看門狗已經(jīng)由硬件選項(xiàng)或軟件啟動(dòng),LSI振蕩器將被強(qiáng)制在打開狀態(tài),并且不能被關(guān)閉。在LSI振蕩器穩(wěn)定后,時(shí)鐘供應(yīng)給IWDG模塊。
RTC時(shí)鐘
通過設(shè)置備份域控制寄存器(RCC_BDCR)里的RTCSEL[1:0]位,RTCCLK時(shí)鐘源可以由HSE/128、LSE或LSI時(shí)鐘提供。除非備份域復(fù)位,此選擇不能被改變。
LSE時(shí)鐘在備份域里,但HSE和LSI時(shí)鐘不在備份域。因此:
(1)如果LSE被選為RTC時(shí)鐘:只要VBAT維持供電,即使VDD供電被切斷,RTC仍能工作。
(2)如果LSI被選為RTC時(shí)鐘:如果VDD供電被切斷,RTC不能工作。
(3)如果HSE時(shí)鐘128分頻后作為RTC時(shí)鐘:如果VDD供電被切斷或內(nèi)部電壓調(diào)壓器被關(guān)閉(1.5V域的供電被切斷),則RTC狀態(tài)不確定。
時(shí)鐘輸出(MCO)
微控制器允許輸出時(shí)鐘信號(hào)到外部MCO引腳。相應(yīng)的GPIO端口寄存器必須被配置為相應(yīng)功能。以下8個(gè)時(shí)鐘信號(hào)可被選作MCO時(shí)鐘:
●SYSCLK
●HSI
●HSE
●PLL時(shí)鐘的二分頻
●PLL2時(shí)鐘
●PLL3時(shí)鐘的二分頻
●XT13-25MHz外部晶振時(shí)鐘(用于以太網(wǎng))
●PLL3時(shí)鐘(用于以太網(wǎng))
時(shí)鐘配置寄存器(RCC_CFGR)中的MCO[3:0]位控制。
審核編輯:劉清
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5419瀏覽量
171598 -
振蕩器
+關(guān)注
關(guān)注
28文章
3832瀏覽量
139032 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
RTC
+關(guān)注
關(guān)注
2文章
538瀏覽量
66460 -
電壓調(diào)壓器
+關(guān)注
關(guān)注
0文章
4瀏覽量
717
原文標(biāo)題:MCU微課堂|CKS32F107xx系列時(shí)鐘介紹
文章出處:【微信號(hào):中科芯MCU,微信公眾號(hào):中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論