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