0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM內(nèi)核及8路PFD頻率怎么配置

汽車電子技術(shù) ? 來源:程序猿搬磚 ? 作者:壞人 ? 2023-03-02 16:23 ? 次閱讀

芯片要工作就需要讀取指令,解析指令然后運行指令,需要在某種固定的周期性運動的設(shè)備驅(qū)動下有條不紊的進行,它就是頻率。

默認情況下I.MX6ULL工作在默認頻率下(396MHz),工作頻率相對保守。為了更好發(fā)揮I.MX6ULL的性能,需要對它的時鐘頻率進行配置。I.MX6ULL開發(fā)手冊標注的內(nèi)核最高頻率支持528MHz,實際上它還可以超頻到696MHz。

配置內(nèi)核頻率

I.MX6ULL支持24MHz32.768kHz兩個OSC,32.768為低頻率,目前使用的所有時鐘來源都是24MHz。

圖片從上面這張圖可以看出,pll1_sw_clk是進入到內(nèi)核頻率的,通過CCSRpll1_sw_clk_sel來選擇到底使用哪一路作為最終進入ARM內(nèi)核頻率。step_clk在這里通過CCSRstep_sel選擇為與OSC相同頻率24MHz,它主要是用于在配置pll1_main_clk時的備用頻率使用。

  • 讀取CCSR的第2位值,如果是0表示當前選擇的是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);
}
  • 配置CCM_ANALOG_PLL_ARMn寄存器

    /// 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)配置
    • CCMCACRR的1-3位配置分頻器的值
    • 配置完成切換回pll1_main_clk

到目前為止,會使用到的PLL除了內(nèi)核以外還有PLL2PLL3PLL2PLL3是固定的頻率,但他們都各分出去了4路FPD是可以靈活配置的。圖片上面紅色框里面看到的就是。分別有兩個寄存器控制,PLL2CCM_ANALOG_PFD_528n, PLL3CCM_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中的LED0BEEP閃燈與響聲的頻率更高了,這是由于內(nèi)核工作在了更高的頻率。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51030

    瀏覽量

    425445
  • 頻率
    +關(guān)注

    關(guān)注

    4

    文章

    1518

    瀏覽量

    59295
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    608

    瀏覽量

    35777
收藏 人收藏

    評論

    相關(guān)推薦

    arm內(nèi)核結(jié)構(gòu)

    ARM內(nèi)核結(jié)構(gòu)有4個功能模塊T、D、M、I,可供生產(chǎn)廠商根據(jù)不同用戶的要求來配置生產(chǎn)ARM內(nèi)核結(jié)構(gòu)芯片。本文詳細講解了什么是
    發(fā)表于 01-03 13:45 ?1w次閱讀

    賽靈思發(fā)布1GHz頻率ARM內(nèi)核的FPGA

    美國賽靈思(Xilinx)發(fā)布了配備ARM處理器內(nèi)核“Cortex-A9 MPCore”的FPGA系列“Zynq-7000 Extensible Processing Platform(EPP)”的新產(chǎn)品“Zynq-7045”。其ARM
    發(fā)表于 08-17 08:51 ?8037次閱讀

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

    電路程序函數(shù)代碼時鐘配置
    充八萬
    發(fā)布于 :2023年08月17日 03:52:26

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

    電路程序函數(shù)代碼時鐘配置
    充八萬
    發(fā)布于 :2023年08月17日 03:54:08

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

    電路程序函數(shù)代碼時鐘配置
    充八萬
    發(fā)布于 :2023年08月17日 03:54:59

    ADRF6850 PFD頻率泄露frequence leakage

    當我使用ADRF6850時,發(fā)現(xiàn)IQ輸出信號中包含有如圖所示的毛刺。 經(jīng)驗證,這些毛刺之間的頻率間隔正好是PFD頻率。 當我通過程序改變PFD
    發(fā)表于 09-18 11:23

    「正點原子Linux連載」第十六章主頻和時鐘配置實驗

    ,PLL4~PLL6都是針對特殊外設(shè)的,用到的時候再設(shè)置。因此,接下來重點就是設(shè)置PLL2和PLL3的各自4PFD,NXP推薦的這8PFD
    發(fā)表于 12-23 11:18

    對于輸入頻率130MHz左右的pll設(shè)計,應該選擇哪種結(jié)構(gòu)的PFD比較好?

    請教各位大蝦:小弟剛開始學習pll設(shè)計不久 請問對于輸入頻率130MHz左右 應該選擇哪種結(jié)構(gòu)的PFD比較好?TSPC的嗎?謝謝了
    發(fā)表于 06-24 07:09

    I.MX6ULL時鐘樹的相關(guān)資料推薦

    聲稱7PLL,每一又升成PFD_PLL。?配置詳見時鐘樹。還要學會看RM手冊進行配置頻率,具
    發(fā)表于 01-18 09:05

    如何對RK3399 CPU arm64的內(nèi)核進行配置

    如何對RK3399 CPU arm64的內(nèi)核進行配置
    發(fā)表于 02-16 06:20

    XN31202雙PLL頻率合成器

    XN31202是一種高性能1.3GHz的雙PLL頻率合成器,芯片內(nèi)部集成了兩雙模前置分頻器和可編程分頻器。具有無死區(qū)PFD、可選擇電荷泵電流、節(jié)電模式、鎖相檢測輸出、環(huán)路濾波時間常
    發(fā)表于 03-22 14:12 ?65次下載

    基于Arm的Linux內(nèi)核編譯指導

    基于Arm的Linux內(nèi)核編譯指導
    發(fā)表于 10-30 10:13 ?15次下載
    基于<b class='flag-5'>Arm</b>的Linux<b class='flag-5'>內(nèi)核</b>編譯指導

    arm內(nèi)核全解析_arm內(nèi)核體系結(jié)構(gòu)分類介紹

    本文介紹了arm內(nèi)核的特點、體系結(jié)構(gòu)、分類,以及對兩種典型的arm內(nèi)核進行了詳細介紹說明。
    發(fā)表于 12-29 15:49 ?1.9w次閱讀
    <b class='flag-5'>arm</b><b class='flag-5'>內(nèi)核</b>全解析_<b class='flag-5'>arm</b><b class='flag-5'>內(nèi)核</b>體系結(jié)構(gòu)分類介紹

    AN-1347:在高PFD頻率下操作ADF4360-7

    AN-1347:在高PFD頻率下操作ADF4360-7
    發(fā)表于 04-27 18:42 ?3次下載
    AN-1347:在高<b class='flag-5'>PFD</b><b class='flag-5'>頻率</b>下操作ADF4360-7

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

    XL32F003系列微控制器采用高性能的32位ARM?Cortex?-M0+內(nèi)核,寬電壓工作范圍的MCU。嵌入高 達64 Kbytes flash和8 Kbytes SRAM存儲器,最高工作
    的頭像 發(fā)表于 11-09 15:44 ?2697次閱讀
    32位<b class='flag-5'>ARM</b>?Cortex?-M0+<b class='flag-5'>內(nèi)核</b>單片機XL32F003系列MCU