復位
有三種復位:系統復位、電源復位和后備域復位
時鐘
三種不同的時鐘源可被用來驅動系統時鐘(SYSCLK)
● HSI振蕩器時鐘
● HSE振蕩器時鐘
● PLL 時鐘
這些設備有以下2種二級時鐘源:
● 40kHz 低速內部RC(LSI RC)振蕩器,可以用于驅動獨立看門狗,或通過程序選擇驅動RTC,用于從停機/ 待機 模式下自動喚醒系統。
● 也可以通過程序選擇32.768kHz 低速外部晶體(LSE晶體)用來驅動RTC(RTCCLK)。
當不被使用時,任一個時鐘源都可被獨立地啟動或關閉,由此優化系統功耗。
從下圖看出有:
LSI(40KHz的內部低速時鐘)
LSE(32.768KHz的外部時鐘)
HSE (3-25M的外部輸入高速時鐘)
HSI (8M的內部高速時鐘)
系統時鐘SYSCLK經過AHB分頻后可以直接給AHB、DMA等用,或者再經過APB1或APB2的分頻再給外設使用。
除去以下情況,所有外設的時鐘都是從系統時鐘(SYSCLK) 得到:
● Flash存儲器編程接口時鐘始終是HSI時鐘
● 全速USB OTG的48MHz時鐘是從PCC VCO時鐘(2xPLLCLK) ,和隨后可編程預分頻器(除3或除2) 得到,這是通 過RCC_CFGR寄存器的OTGFSPRE位控制。為了正常地操作USB全速OTG,應該配置PLL 輸出72MHz或48MHz。
● 全速USB OTG的48MHz時鐘是從PCC VCO時鐘(2xPLLCLK) ,和隨后可編程預分頻器(除3或除2) 得到,這是通 過RCC_CFGR寄存器的OTGFSPRE位控制。為了正常地操作USB全速OTG,應該配置PLL 輸出72MHz或48MHz。
● I2S2和I2S3的時鐘還可以從PLL3 VCO 時鐘(2xPLL3CLK)得到,這是通過RCC_CFGR2寄存器的I2SxSRC位制。 更多有關PLL3的內容和如何配置I2S 時鐘,以得到高質量的音頻效果,請參閱第23.4.381/754 節:時鐘發 生器。
● 以太網MAC的時鐘(TX 、RX和RMII)是由外部PHY提供。更多有關以太網配置的詳情,請見
第27.4.4 MII/RMII的選擇 節: 。
當使用以太網模塊時,AHB時鐘頻率必須至少為25MHz。
RCC通過AHB時鐘(HCLK)8 分頻后作為Cortex 系統定時器(SysTick)的外部時鐘。通過對SysTick控制與狀態寄存器的設置,可選擇上述時鐘或Cortex(HCLK)時鐘作為SysTick時鐘。ADC時鐘由高速APB2時鐘經2、4 、6或8分頻后獲得。 定時器時鐘頻率分配由硬件按以下2種情況自動設置:
1. 如果相應的APB預分頻系數是1,定時器的時鐘頻率與所在APB 總線頻率一致。
2. 否則,定時器的時鐘頻率被設為與其相連的APB 總線頻率的2倍。
FCLK是Cortex??-M3的自由運行時鐘。
HSE時鐘
高速外部時鐘信號(HSE) 由以下兩種時鐘源產生:
● HSE外部晶體/ 陶瓷諧振器
● HSE用戶外部時鐘
為了減少時鐘輸出的失真和縮短啟動穩定時間,晶體/ 陶瓷諧振器和負載電容器必須盡可能地靠近振蕩器引腳。負載電容值必須根據所選擇的振蕩器來調整。
HSI時鐘
HSI時鐘信號由內部8MHz 的RC振蕩器產生,可直接作為系統時鐘或在2分頻后作為PLL 輸入。 HSI RC振蕩器能夠在不需要任何外部器件的條件下提供系統時鐘。它的啟動時間比HSE晶體振蕩器短。然而,即使在校準之后它的時鐘頻率精度仍較差。
PLL
主PLL 以下述時鐘源之一為輸入,產生倍頻的輸出:
● HSI時鐘除以2
● HSE或通過一個可配置分頻器的PLL2時鐘
LSE 時鐘
LSE 晶體是一個32.768kHz 的低速外部晶體或陶瓷諧振器。它為實時時鐘或者其他定時功能提供
一個低功耗且精確的時鐘源。
LSI時鐘
系統時鐘(SYSCLK) 選擇
/////////////////////////////////////
寄存器介紹 0x4002 1000 - 0x4002 13FF 復位和時鐘控制(RCC)
時鐘控制寄存器(RCC_CR) -->內外部各種時鐘的使能,各個PLL的使能等
時鐘配置寄存器(RCC_CFGR)-->配置各個時鐘的分頻系數以及PLL的分配系數以及時鐘源的選擇等
時鐘配置寄存器(RCC_CFGR2)-->配置各個時鐘的分頻系數以及PLL的分配系數以及時鐘源的選擇等