芯片要工作就需要讀取指令,解析指令然后運行指令,需要在某種固定的周期性運動的設(shè)備驅(qū)動下有條不紊的進行,它就是頻率
。
默認情況下I.MX6ULL
工作在默認頻率下(396MHz),工作頻率相對保守。為了更好發(fā)揮I.MX6ULL
的性能,需要對它的時鐘頻率進行配置。I.MX6ULL
開發(fā)手冊標(biāo)注的內(nèi)核最高頻率支持528MHz,實際上它還可以超頻到696MHz。
配置內(nèi)核頻率
I.MX6ULL
支持24MHz
與32.768kHz
兩個OSC,32.768
為低頻率,目前使用的所有時鐘來源都是24MHz
。
從上面這張圖可以看出,
pll1_sw_clk
是進入到內(nèi)核頻率的,通過CCSR
的pll1_sw_clk_sel
來選擇到底使用哪一路作為最終進入ARM內(nèi)核
頻率。step_clk
在這里通過CCSR
的step_sel
選擇為與OSC
相同頻率24MHz
,它主要是用于在配置pll1_main_clk
時的備用頻率使用。
- 讀取
CCSR
的第2位值,如果是0表示當(dāng)前選擇的是pll1_main_clk
,需要將它切換到step_clk
,同時將step_clk
選擇成24MHz
頻率
/// CCM->CCSR的第二位判斷是否選擇的是pll1_main_clk(值是0)
if (((CCM->CCSR >> 2) & 0x1) == 0)
{
/// 需要先切換時鐘源到24MHz晶振
CCM->CCSR &= ~(1 << 8);
CCM->CCSR |= (1 << 2);
}
-
/// bit 13: enable register /// 配置(696MHz) CCM_ANALOG->PLL_ARM = (1 << 13) | (58); /// 分頻器配置為1 CCM->CACRR = 0; /// 將時鐘源切換回CCSR的第二位判斷是否選擇的是pll1_main_clk CCM->CCSR &= ~(1 << 2);
這里配置了一個超頻數(shù)值696MHz
8路FPD配置
BYPASS_CLK_ SRC(15 - 14)
配置成0x0
,即選擇使用24MHz
作為時鐘源ENABLE(13)
配置成1即使能時鐘頻率輸出DIV_SELECT
按公式(PLL output frequency = Fref * DIV_SEL/2)配置CCM
的CACRR
的1-3位配置分頻器的值- 配置完成切換回
pll1_main_clk
到目前為止,會使用到的PLL除了內(nèi)核以外還有PLL2
與PLL3
。PLL2
與PLL3
是固定的頻率,但他們都各分出去了4路FPD是可以靈活配置的。上面紅色框里面看到的就是。分別有兩個寄存器控制,
PLL2
是CCM_ANALOG_PFD_528n
, PLL3
是CCM_ANALOG_PFD_480n
。配置的公式是 528(480) * 18 / 實際頻率,具體配置代碼如下:
/// 配置PPL2(528MHz)的PFD0 ~ FPD3
int reg = CCM_ANALOG->PFD_528;
/// PFD0: 352MHz
reg |= (27 << 0);
/// PFD1: 594MHz
reg |= (16 << 8);
/// PFD2: 396MHz
reg |= (24 << 16);
/// PFD3: 297MHz
reg |= (32 << 24);
CCM_ANALOG->PFD_528 = reg;
/// 配置PPL3(480MHz)的PFD0 ~ FPD3
reg = CCM_ANALOG->PFD_480;
/// PFD0: 720MHz
reg |= (12 << 0);
/// PFD1: 540MHz
reg |= (16 << 8);
/// PFD2: 508.2MHz
reg |= (17 << 16);
// PFD3: 454.7MHz
reg |= (19 << 24);
CCM_ANALOG->PFD_480 = reg;
配置完成后,燒寫后可看到實驗07
中的LED0
與BEEP
閃燈與響聲的頻率更高了,這是由于內(nèi)核工作在了更高的頻率。
-
芯片
+關(guān)注
關(guān)注
458文章
51412瀏覽量
428566 -
頻率
+關(guān)注
關(guān)注
4文章
1537瀏覽量
59467 -
指令
+關(guān)注
關(guān)注
1文章
613瀏覽量
35865
發(fā)布評論請先 登錄
相關(guān)推薦
arm內(nèi)核結(jié)構(gòu)
賽靈思發(fā)布1GHz頻率ARM內(nèi)核的FPGA

48 第14.3講 主頻和時鐘配置實驗-8路PLL和8路PFD時鐘設(shè)置 - 第1節(jié)

48 第14.3講 主頻和時鐘配置實驗-8路PLL和8路PFD時鐘設(shè)置 - 第3節(jié)

48 第14.3講 主頻和時鐘配置實驗-8路PLL和8路PFD時鐘設(shè)置 - 第4節(jié)
ADRF6850 PFD頻率泄露frequence leakage
「正點原子Linux連載」第十六章主頻和時鐘配置實驗
對于輸入頻率130MHz左右的pll設(shè)計,應(yīng)該選擇哪種結(jié)構(gòu)的PFD比較好?
XN31202雙路PLL頻率合成器
arm內(nèi)核全解析_arm內(nèi)核體系結(jié)構(gòu)分類介紹

32位ARM?Cortex?-M0+內(nèi)核單片機XL32F003系列MCU

評論