<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> STM32 >> 瀏覽文章

        STM32F103單片機系統時鐘部分歸納

        作者:小鄧   來源:會員上傳   點擊數:  更新時間:2014年05月19日   【字體:

         STM32F103系列增強型微控制器

        ——時鐘控制(RCC)
        三種不同的時鐘源可用作系統時鐘(SYSCLOCK):
         HIS振蕩器時鐘(由芯片內部RC振蕩器提供)
         HSE振蕩器時鐘(由芯片外部晶體振蕩器提供)
         PLL時鐘(通過倍頻HIS或HSE振蕩器倍頻得到)
        另外還有兩個時鐘源:
         LSI內部40kHz低速RC振蕩器時鐘,用于驅動獨立看門狗或選擇驅動RTC
         LSE外部32.768kHz低速外部輸入時鐘,用于驅動RTC
         
        時鐘模塊框圖如下:

         

        圖1 時鐘樹框圖
        1.當HSI被用于作為PLL時鐘的輸入時,系統時鐘能得到的最大頻率是64MHz。
        2.用戶可通過多個預分頻器配置AHB、高速APB(APB2)和低速APB(APB1)域的頻率。AHB和APB2域的最大頻率是72MHz。APB1域的最大允許頻率是36MHz。SDIO接口的時鐘頻率固定為HCLK/2。
        3. RCC通過AHB時鐘(HCLK)8分頻后作為Cortex系統定時器(SysTick)的外部時鐘。通過對SysTick控制與狀態寄存器的設置,可選擇上述時鐘或Cortex(HCLK)時鐘作為SysTick時鐘。ADC時鐘由高速APB2時鐘經2、4、6或8分頻后獲得。 定時器時鐘頻率分配由硬件按以下2種情況自動設置:
        a. 如果相應的APB預分頻系數是1,定時器的時鐘頻率與所在APB總線頻率一致。
        b. 否則,定時器的時鐘頻率被設為與其相連的APB總線頻率的2倍。
        4. FCLK是Cortex??-M3的自由運行時鐘。詳情見ARM的Cortex??-M3技術參考手冊。
         
         
        關于HSE、HIS、PLL、LSE、LSI時鐘特性及校準直接參考STM32相關Datasheet。
         
        系統時鐘配置過程:
        配置過程主要對RCC_CR、RCC_CFGR、RCC_CIR這三個寄存器,進行讀寫訪問,配置系統時鐘完成后進行對要使用的相應外設時鐘進行使能和配置,不用的外設建議關閉相應的外設時鐘(降低功耗)。
        比較經典的系統時鐘選擇配置為:使用外部8MHz的HSE時鐘源作為PLL時鐘輸入,PLL再進行9倍頻得到72MHZ的時鐘作為系統時鐘輸出,具體實現過程如下:
        1、置RCC_CR的HSION[0]位,啟動HIS時鐘。
        2、清RCC_CFGR的MCO[26:24],ADCPRE[15:14],PPRE2[13:11],PPRE1[10:8],HPRE[7:4],SWS[3:2],SW[1:0]位,選擇默認的HIS時鐘且設置相應的時鐘不分頻。
        3、清RCC_CR的PLLON[24],CSSON[19],HSEON[16]位,關閉PLL和HSE時鐘,且關閉時鐘檢測。
        4、清RCC_CR的HSEBYP[18]位,說明HSE時鐘為外部的陶瓷晶體振蕩器,并非旁路模式。
        5、清RCC_CFGR的USBPRE[22],PLLMUL[21:18],PLLXTPRE[17],PLLSRC[16]位,使HSE不分頻作為PLL的時鐘輸入,PLL的1.5倍頻作為USB的時鐘。
        6、清RCC_CIR所有位,關閉全部的時鐘中斷。
        7、置RCC_CR的HSEON[16]位,開啟HSE振蕩器。
        8、檢測RCC_CR的HSERDY[17]位來檢測HSE振蕩器是否準備就緒,若該位為1則接著往下配置,否則一直等待檢測直到該位被硬件置1或等待檢測時間結束。
        9、清RCC_CFGR的HPRE[7:4]位,設置AHB預分頻值使SYSCLCK不分頻。
        10、清RCC_CFGR的HPRE2[13:11]位,設置APB2時鐘(PCLK2)不分頻。
        11、置RCC_CFGR的HPRE1[10:8]位為110,設置APB1時鐘(PCLK1)二分頻。
        12、置RCC_CFGR的PLLMUL[21:18]位為0111,設置PLL9倍頻輸出,得到SYSCLK為72MHz。
        13、置RCC_CR的PLLON[24]位,使能PLL時鐘。
        14、檢測RCC_CR的PLLRDY[25]位,若為1表示PLL時鐘鎖定成功,為0表示鎖定未完成,繼續檢測等待直到該位被硬件置1.
        15、置RCC_CFGR的SW[]1:0]位為10,選擇PLL輸出作為系統時鐘。
        16、檢測RCC_CFGR的SWS[3:2]位,若為10表示PLL作為系統時鐘使用成功,否則一直等待直到該位為10,。
        17、至此系統時鐘配置全部完成。
         
        總結系統時鐘配置大體過程:
        1、上電初始,開啟HSI振蕩器,關閉PLL及HSE,清RCC_CR及RCC_CFGR形影位為缺省值
        2、開啟HSE振蕩器,等待HSE振蕩器啟動并進入穩定。
        3、選擇HSE作為PLL時鐘輸入,配置好各個預分頻器相應的預分頻系數。
        4、啟動PLL時鐘,等待PLL時鐘準備就緒。5、選擇PLL時鐘輸出作為系統時鐘輸入。

         

         

        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮