I.MX RT 時鍾控制模塊(CCM)


時鍾控制模塊(CCM)的主要作用

        RT1052 的時鍾系統由時鍾控制模塊 CCM 進行控制,其主要功能如下:
        1)使用 PLL 鎖相環電路將參考時鍾倍頻,得到頻率更高的時鍾。為芯片內核和外設提供可選的時鍾源。 RT1052 共有 7 PLL 鎖相環電路, 分別為 ARM PLL(PLL 1)System PLL(PLL 2)USB1 PLL(PLL 3)Audio PLL(PLL 4)Video PLL(PLL 5)ENET PLL(PLL 6) USB2 PLL(PLL 7)
        2)提供 PLL 控制寄存器、時鍾選擇寄存器、時鍾分頻寄存器 靈活控制輸出到外設和內核的時鍾頻率。
        3)控制低功耗機構。

時鍾控制模塊結構構圖

           

 

CCM_CLK_IGNITION 管理從外部晶振時鍾到穩定的根時鍾輸出的整個過程。 CCM 完成重置之后 CCM_CLK_IGNITION 模塊立即啟動。 GPC General Power Controller 的縮寫,
即總電源管理模塊,它不屬於 CCM,系統電壓與時鍾關系密切,簡單來說,系統電壓影響系統最高的時鍾頻率, CCM 又可以控制總電源管理模塊(GPC)進入待機或低功耗狀態。
1. PLL 時鍾產生
CCM_ANALOG CCM 的模擬部分,作用是將頻率較低的參考時鍾(例如 24MHz XTALOSC 時鍾)使用 PLL 鎖相環電路倍頻到更高的時鍾。 CCM_CLK_SWITCHER 模塊接收來自 CCM_ANALOG 模塊的鎖相環時鍾輸輸出,以及鎖相環的旁路時鍾,並為CCM_CLK_ROOT_GEN 子模塊生成切換時鍾輸出(pll3_sw_clk)RT1052 共有 7 PLL
相環電路, 可以獨立配置。其中 PLL2 PLL3 結合 PFD 能夠輸出多個頻率可調的時鍾。

2. ③根時鍾生成
CCM_CLK_ROOT_GEN 接收來自 CCM_CLK_SWITCHER 模塊的 PLL PFD 時鍾,經過時鍾的選擇、分頻等操作之后產生並輸出根時鍾。根時鍾將會作內核或外設的時鍾源。

 

3. ④時鍾同步
當更改某些時鍾的時鍾源時需要進行時鍾的同步 CCM_HND_SK 模塊用於管理時鍾握手,即時鍾的同步。

4. ⑤低功耗管理與時鍾啟用模塊
CCM_LPM 用於管理低功耗模式,管理時鍾的開啟與關閉。 CCM_CLK_LOGIC,根據來自 CCM_LPM 模塊和 CCM_IP 的信號產生時鍾啟用或關閉信號。

5. ⑥低功耗時鍾門控模塊(LPCG
低功耗時鍾門控模塊(LPCG)根據 CCM_CLK_LOGIC 模塊輸出信號控制時鍾輸出。時鍾越多、頻率越高功耗也就越高。關閉沒有使用的時鍾或降低時鍾頻率能夠有效的降低功耗 。

3 時鍾樹簡介
       RT1052 芯片時鍾的結構以時鍾樹的方式進行描述。當我們設置外設時鍾時大多會參考時鍾樹進行設置。

1. ①時鍾轉換器 CLOCK SWITCHER
        RT1052 外部連接了兩個晶振,分別用於提供 32.768KHz 24MHz 時鍾。其中32.768KHz 晶振稱為外部低速時鍾(CKIL),當芯片上電后要保持該時鍾一直處於運行狀
態, 為需要的外設提供時鍾。
        32.768KHz 時鍾主要為芯片的實時時鍾外設(RTC)提供時鍾源,若不使用 RTC,可以不提供該時鍾。
        24Mhz 晶振產生的時鍾稱為外部高速時鍾(CKIH) , 芯片利用內部振盪器產生基准時鍾(OSC), 內部振盪器產生基准時鍾(OSC)與外部高速時鍾(CKIH)連接, 產生 24MHz 的參
考時鍾。24MHz 參考時鍾常用作 PLL 鎖相環電路的輸入時鍾。下面以 ARM PLL(PLL 1)為例講解從 24MHz 參考時鍾到 ARM PLL(PLL 1)時鍾的過程

     

 

ARM PLL(PLL 1)只有一個控制寄存器 CCM_ANALOG_PLL_ARMnCCM_ANALOG_PLL_ARMn[BYPASS_CLK_SRC]用於選擇輸入鍾源(Fin), 一般我們使用24MHz 參考時鍾,當然也可以選擇外部引腳輸入引腳(CLK1_N / CLK1_P)輸入的外部時
鍾。 CCM_ANALOG_PLL_ARMn[DIV_SELECT]位選擇鎖相環分頻值(DIV_SELECT)。取值范圍為 54 108。輸出頻率計算公式為 ARM_PLL = Fin * DIV_SELECT/ 2.0。如果選擇
24MHz 參考時鍾作為時鍾輸入, DIV_SELECT 選擇 88 ARM PLL 的輸出頻率為1056MHzCCM_ANALOG_PLL_ARMn[ENABLE]用於配置是否使能 ARM PLL 輸出,如
果要使用 ARM PLL 就需要將該位設置為 1

PLL2 PLL3 下方各有一組 PFDPFD Phase FractionalDividers 的縮寫,我們這里翻譯為分數分頻。 PFD 的頻率由 PLL2 PLL3 輸出頻率分頻產生。

          

 

寄存器 CCM_ANALOG_PFD_528n 用於控制 PFD0~PFD3 的輸出頻率。以 PFD0 為例,CCM_ANALOG_PFD_528n[PFD0_FRAC]用於設置分頻值,取值范圍為 12 35PFD0
輸出頻率計算公式為:
             PFD0_out =528*18/ PFD0_FRAC

如果 PFD0_FRAC = 27PFD0 的輸出頻率為 352MHzCCM_ANALOG_PFD_528n[PFD0_CLKGATE]門控寄存器,用於設置是否使能 PFD0的輸出。

2. ②根時鍾生成模塊 CLOCK ROOT GEN
根時鍾生成模塊主要完成兩個工作,第一選擇時鍾,第二設置時鍾分頻。
時鍾轉換器(CLOCK SWITCHER)輸出了多個頻率不同的 PLL時鍾。每個外設時鍾通過 MUX 模塊連接到多個 PLL 時鍾輸出,每個 MUX 實際是一個寄存器,用於選擇時鍾源。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM