系統(tǒng)復(fù)位和時(shí)鐘控制講解
一、系統(tǒng)復(fù)位
復(fù)位除了部分RCC寄存器和備份區(qū)域以外的其他所有的寄存器;
來(lái)源: NRST引腳上的低電平(外部復(fù)位) WWDG計(jì)數(shù)結(jié)束 IWDG計(jì)數(shù)結(jié)束 軟件復(fù)位(通過(guò)NVIC) 低電壓管理的復(fù)位
電源復(fù)位
復(fù)位除了備份區(qū)域以外所有的寄存器; 來(lái)源: 上電/掉電復(fù)位(POR/PDR復(fù)位) 退出STANDBY模式
軟件復(fù)位
通過(guò)將Cortex-M3中斷應(yīng)用和復(fù)位控制寄存器中的SYSRESETREQ位置1。
低功耗管理復(fù)位
在進(jìn)入待機(jī)模式時(shí),系統(tǒng)產(chǎn)生低功耗管理復(fù)位:
設(shè)置選擇字中的nRST_STDBY位為1。
在進(jìn)入停止模式時(shí),系統(tǒng)產(chǎn)生低功耗管理復(fù)位:
設(shè)置選擇字中的nRST_STOP位為1。
備份區(qū)域的復(fù)位
復(fù)位所有的備份區(qū)域; 復(fù)位源:
設(shè)置RCC的BDCR寄存器的BDRST位;
如果VDD和VBAT都已掉電,二者再次上電。
二、時(shí)鐘
外部高速振蕩器(HSE):4MHz到16MHz主振蕩器,可通過(guò)PLL進(jìn)行倍頻用以提供寬廣的頻率范圍。
可使用外部時(shí)鐘信號(hào)(最大25MHz):設(shè)置時(shí)鐘控制寄存器的HSEBYP和HSEON位。
內(nèi)部高速RC振蕩器(HSI):頻率為8MHz,溫度在0-70°C時(shí)誤差位為±1%。(出廠時(shí)進(jìn)行校準(zhǔn),工廠校準(zhǔn)值被裝載到時(shí)鐘控制寄存器的HSICAL[7:0]位)
為了節(jié)省功耗,運(yùn)行后可以關(guān)閉內(nèi)部RC振蕩器:清除HISON位; 復(fù)位或從停止模式退出后,用作MCU的系統(tǒng)時(shí)鐘,可快速啟動(dòng)(啟動(dòng)時(shí)間:最大2us); 如果應(yīng)用基于不同的電壓或環(huán)境溫度,將會(huì)影響RC振蕩器的精度。可通過(guò)利用時(shí)鐘控制寄存器里的HSITRIM[4:0]位來(lái)調(diào)整HSI頻率; 當(dāng)HSE失效時(shí),HSI將被切換為系統(tǒng)時(shí)鐘源(如果HSI被關(guān)閉,硬件將其開(kāi)啟);
注: 當(dāng)HSI被用作PLL的時(shí)鐘輸入時(shí),最大系統(tǒng)時(shí)鐘可達(dá)64MHz。
外部低速振蕩器(LSE): 32.768kHz振蕩器,提供一個(gè)極低功耗(最大1?A)的精確的時(shí)鐘??蛇x用為驅(qū)動(dòng)RTC從停止/待機(jī)模式中喚醒。
通過(guò)備份域控制寄存器(RCC_BDCR)里的LSEON位啟動(dòng)和關(guān)閉。
可用外部時(shí)鐘信號(hào) --- 具有50%占空比的外部時(shí)鐘信號(hào)(方波、正弦波或三角波)連到OSC32_IN管腳,同時(shí)保證OSC32_OUT管腳懸空。
內(nèi)部低速RC(LSI): 40KHz的內(nèi)部RC,可用作IWDG和自動(dòng)喚醒的RTC的時(shí)鐘。
通過(guò)控制/狀態(tài)寄存器(RCC_CSR)里的LSION位來(lái)啟動(dòng)或關(guān)閉。 LSI校準(zhǔn):(僅大容量產(chǎn)品有)
可以通過(guò)校準(zhǔn)內(nèi)部低速振蕩器LSI來(lái)補(bǔ)償其頻率偏移,獲得精度可接受的RTC時(shí)間基數(shù),以及獨(dú)立看門(mén)狗(IWDG)的超時(shí)時(shí)間(當(dāng)這些外設(shè)以LSI為時(shí)鐘源)。
三、時(shí)鐘配置
系統(tǒng)時(shí)鐘源(SYSCLK):
HSI HSE PLL:
注:在激活PLL的設(shè)置時(shí),必須先完成選擇HSI振蕩器除2或HSE振蕩器為PLL的輸入時(shí)鐘,和選擇倍頻因子。
RTC時(shí)鐘源(RTCCLK):
LSE LSI 經(jīng)過(guò)128分頻的HSE時(shí)鐘
當(dāng)HSE時(shí)鐘失效時(shí),時(shí)鐘安全系統(tǒng)將系統(tǒng)(CSS)時(shí)鐘切換到使用備用時(shí)鐘HSI。
通過(guò)軟件使能,將該中斷連接到CortexM3內(nèi)核的NMI中斷上。(不可屏蔽中斷)
在MCO引腳(PA.08)可將時(shí)鐘輸出。
最大可達(dá)50MHz
多個(gè)時(shí)鐘源可實(shí)現(xiàn)全速運(yùn)行/低功耗模式下的復(fù)雜應(yīng)用。 可配置分頻器為AHB、APB1/2、ADC、TIM提供時(shí)鐘。
HCLK --- Cortex-M3內(nèi)核、AHB總線、內(nèi)存、DMA
USB時(shí)鐘源(USBCLK)由內(nèi)部的PLL倍頻提供。
使用USB接口時(shí),PLL必須被設(shè)置為輸出48或72MHZ時(shí)鐘。