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

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

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

ZYNQ的時鐘管理系統(tǒng)和配置方法

ZYNQ ? 來源:CSDN ? 作者:漫步的風(fēng)暴 ? 2022-11-01 09:18 ? 次閱讀

為了將ZYNQ的PS測的兩個核運(yùn)行頻率提升到1GHZ,同時正確的配置我的時鐘定時器以及時間戳,需要了解ZYNQ的時鐘管理系統(tǒng)和配置方法。

1.ZYNQ PS側(cè)的時鐘子系統(tǒng)及默認(rèn)配置

PS_CLK:系統(tǒng)晶振的時鐘,這個是PS端的的時鐘來源,經(jīng)過一個叫PLL的鎖相環(huán)功能部件,輸出到ARM PLL和I/O PLL以及DDR PLL,后續(xù)的子部件均由這三個時鐘源輸出。

這里對于cpu的時鐘源選擇,由寄存器ARM_CLK_CTRL(0XF8000120)控制,該寄存器時鐘源選擇的描述如下:

這里cpu的時鐘源可以選擇是IO還是DDR還是ARM的PLL,關(guān)于CPU后續(xù)時鐘的配置,cpu6x4x3x2x1x這些時鐘的配置,有一張更清晰的圖,如下:

這里經(jīng)過選擇以后,可以控制輸出到arm端的分頻系數(shù),這個分頻系數(shù)在13:8位,然后通過24~27位,選擇是否使能cpu各個分頻的時鐘。

這里各個部件的時鐘源都是可以選擇的,比如QSPI,可以選擇是IO還是DDR還是ARM的PLL,然后再去配置自己的時鐘,在節(jié)能模式下,可以優(yōu)化時鐘的配置,達(dá)到降低功耗的目的,這里不去深究,我的目的就是正確的配置時鐘。

比如我的PS_CLK是33.3MHZ,經(jīng)過PLL的倍頻,到了1333MHZ,然后經(jīng)過6bit的可編程分頻系數(shù),也就是ARM_CLK_CTRL的13:8位,這里假設(shè)是2,這個系數(shù)只能是2,4或者更大的數(shù),不能寫1或者3.

這之后假如各個cpux的時鐘都使能了,得到的結(jié)果就是cpu6x4x = 1333MHZ/2 = 667MHZ,這也是默認(rèn)的CPU主頻,其于依照倍數(shù)關(guān)系自然可以確認(rèn)。

這里還要注意的就是有一個CLK_621_TRUE,這個是控制cpu測的各個時鐘的倍頻關(guān)系,如果設(shè)置為1,則倍頻關(guān)系為61,否則為421關(guān)系,即41,這個默認(rèn)我們都是配置621模式。

2.設(shè)置ZYNQ CPU工作在1GHZ

由上面的配置信息可知,要提高CPU的工作頻率,有兩個方法,第一是降低分頻系數(shù),及上圖中的6bit programmable divider,這是由ARM_CLK_CTRL控制的寄存器,第二是提高前面三個的PLL輸出頻率,由于分頻系數(shù),一般都設(shè)置為最低的2,所以要提高cpu的頻率,只有想辦法提高前面PLL的輸出頻率,默認(rèn)是輸出1333MHZ,I/O是1G,DDR是1066MHZ;如下圖中的配置:

這里對應(yīng)的fdiv是40,有沒有辦法可以設(shè)置更高的fdiv,辦法肯定是有的,zynq對時鐘部分提供了可編程的特性,在手冊中有program model的介紹,這里對fdiv有一個配置表:

各個時鐘源,無論arm pll還是io pll還是ddr pll,都需要遵照這個表中的數(shù)據(jù)去配置,加入我要將arm cpu的運(yùn)行頻率提高為1GHZ,由于前面提到的divider是2,那么pll輸出過來的頻率需要為2GHZ。

由于PS_CLK為33.3,那就需要fdiv的倍頻系數(shù)為60,這樣可以達(dá)到,這個數(shù)值,芯片是支持的,只需要配置pll cp為2,pll res為4,lock cnt為250,那么配置這些只需要如下兩個寄存器:

ARM_PLL_CTRL----0xF8000100

ARM_PLL_CFG ---- 0xF8000110

其中ARM_PLL_CTRL:

其中18:12位,就是設(shè)置fdiv的值,這個值理論上最小為1最大為66,設(shè)置60已經(jīng)接近極限了,下面的幾個位是用來配置的時候重啟以及設(shè)置旁路模式,也需要關(guān)注一下;

ARM_PLL_CFG

這個寄存器就是需要按照上面的表,當(dāng)fdiv為60的時候,pll_cp和pll_res以及l(fā)ock_cnt的值填寫進(jìn)去。

整體配置思路如下:

設(shè)置

ARM_CLK_CTRL----0xF8000120

設(shè)置分頻為2,選擇arm PLL,使能各個倍頻輸出

ARM_PLL_CTRL----0xF8000100

設(shè)置FDIV為60

ARM_PLL_CFG ---- 0xF8000110

設(shè)置LOCK PLL_CP PLL_RES分別為250,2,4

具體過程:

step1:確認(rèn)該寄存器可以解鎖鎖定

step2:設(shè)置以上三個寄存器

step3:將PLL設(shè)置為旁路模式

step4:重啟PLL,reset置位

step5:重啟PLL,reset清零

step6:設(shè)置為非旁路模式,使得pll輸出工作

經(jīng)過測試,我校準(zhǔn)了udelay,測試了時間戳和sleep等接口,均準(zhǔn)確:

CPU Freq Get Test!

cpu freq = 1000.00 Mhz

Sleep[tick] 5S:[5000.000000]ms

Sleep[timestamp] 1S:[994.901318]ms

udelay[100ms]:[100.012590]ms

udelay[100us]:[100.224000]us

CPU頻率的計算公式:

cpu frequency = PS_CLK*FDIV/DIVIDER*1.0

3.定時器的時鐘來源

在cortex a9的官方手冊,以及zynq7000 ug585手冊中,時鐘定時器的來源為cpu3x2x,所以當(dāng)主頻改變?yōu)?GHZ的時候,cpu2x3x的頻率也需要修改為499MHZ,這樣系統(tǒng)的定時器功能才正常。





審核編輯:劉清

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

    關(guān)注

    134

    文章

    9027

    瀏覽量

    366490
  • DDR
    DDR
    +關(guān)注

    關(guān)注

    11

    文章

    704

    瀏覽量

    65164
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3232

    瀏覽量

    114329

原文標(biāo)題:ZYNQ7000 時鐘配置方法

文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    玩轉(zhuǎn)Zynq連載28——[ex50] 第一個Zynq系統(tǒng)工程“Hello Zynq

    Zynq,而是如何新建Zynq系統(tǒng)模塊、配置PS的參數(shù)、導(dǎo)出硬件、新建軟件工程并且在線板級運(yùn)行起來。流程很重要,大家在開始的時候總要先走一遍流程了解開發(fā)的全貌,然后再細(xì)細(xì)把玩,逐個精
    發(fā)表于 09-30 12:57

    使用Zynq PL結(jié)構(gòu)時鐘驅(qū)動代碼沒有反應(yīng)是為什么?

    錯誤。然后,我在SDK中編程PS端,led閃爍正確的頻率!我的問題,當(dāng)鎖定Zynq PL時鐘? PS程序之后?需要多長時間?是不是意味著,PL配置期間LED閃爍錯誤,在非易失性Flas Boot中編程PS期間(或之后)閃爍?謝謝
    發(fā)表于 08-27 15:09

    STM32時鐘配置(超頻配置

    STM32時鐘配置(超頻配置),時鐘三種不同的時鐘源可被用來驅(qū)動系統(tǒng)
    發(fā)表于 08-10 06:00

    配置STM32F407系統(tǒng)時鐘方法

    STM32F4的系統(tǒng)時鐘非常重要,涉及到整個系統(tǒng)的運(yùn)行結(jié)果,無論是什么操作,都需要時鐘信號,不同型號的微控制器的默認(rèn)系統(tǒng)
    發(fā)表于 08-12 06:23

    STM32F407系統(tǒng)時鐘配置時鐘方法

    STM32F407系統(tǒng)時鐘配置時鐘方法一,采用官方庫提供的配置(這里外部晶振25MHz,
    發(fā)表于 08-12 08:19

    如何使用HSE配置系統(tǒng)時鐘

    STM32入坑(六)配置RCC時鐘HSE簡介原理所用GPIO配置方法插入鏈接與圖片如何插入一段漂亮的代碼片生成一個適合你的列表創(chuàng)建一個表格設(shè)定內(nèi)容居中、居左、居右SmartyPants
    發(fā)表于 12-10 07:16

    在Vivado中配置ZYNQ的Clock Configuration時,發(fā)現(xiàn)時鐘頻率不能修改

    配置ZYNQ的一些外設(shè)的時鐘時,在Clock Configuration中無法修改時鐘頻率的解決比如,在這里,想修改QSPI的時鐘頻率,發(fā)
    發(fā)表于 01-18 23:08

    4.3.2的ZYNQ時鐘驅(qū)動架構(gòu)和原理解析

    在查看zynq的clk時鐘驅(qū)動時,在源碼文件clkc.c中我們看到匹配屬性字段”xlnx,ps7-clkc”,該字段匹配zynq-7000.dtsi的時鐘子節(jié)點的compatible關(guān)
    發(fā)表于 11-10 14:49 ?4151次閱讀

    STM32時鐘系統(tǒng)時鐘樹和時鐘配置函數(shù)介紹及系統(tǒng)時鐘設(shè)置步驟資料

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32時鐘系統(tǒng)時鐘樹和時鐘配置函數(shù)介紹及系統(tǒng)
    發(fā)表于 10-11 08:00 ?22次下載
    STM32<b class='flag-5'>時鐘</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>時鐘</b>樹和<b class='flag-5'>時鐘</b><b class='flag-5'>配置</b>函數(shù)介紹及<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>時鐘</b>設(shè)置步驟資料

    ZYNQ的啟動原理和配置

    在ps的控制下,可以實現(xiàn)安全或非安全的配置所有ps和pl。通過zynq提供的JTAG接口,用戶可以在外部主機(jī)的控制下對zynq進(jìn)行配置,zynq
    的頭像 發(fā)表于 05-15 11:41 ?7680次閱讀
    <b class='flag-5'>ZYNQ</b>的啟動原理和<b class='flag-5'>配置</b>

    Zynq UltraScale+ MPSoC解密學(xué)習(xí)2】Zynq UltraScale+的電源系統(tǒng)

    目錄一、電源優(yōu)化方法1.1 功能禁用1.2 動態(tài)功耗管理 (Dynamic Power Management)1.3 頻率縮放1.4 時鐘門控1.5 使用PL加速二、四大功耗域及PMU2.1 電池
    發(fā)表于 11-06 21:06 ?6次下載
    【<b class='flag-5'>Zynq</b> UltraScale+ MPSoC解密學(xué)習(xí)2】<b class='flag-5'>Zynq</b> UltraScale+的電源<b class='flag-5'>系統(tǒng)</b>

    32單片機(jī) 時鐘 HSE配置系統(tǒng)時鐘(五)

    32單片機(jī)時鐘相關(guān)知識使用HSE配置系統(tǒng)時鐘,可以用來控制燈的亮滅快慢
    發(fā)表于 11-23 18:21 ?8次下載
    32單片機(jī) <b class='flag-5'>時鐘</b> HSE<b class='flag-5'>配置</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>時鐘</b>(五)

    STM32入坑(七)使用HSI配置系統(tǒng)時鐘

    STM32入坑(七)使用HSI配置系統(tǒng)時鐘簡介原理用到的GPIO配置方法及程序注意事項簡介名稱:使用HSI
    發(fā)表于 11-26 18:51 ?65次下載
    STM32入坑(七)使用HSI<b class='flag-5'>配置</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>時鐘</b>

    如何配置SWM系列系統(tǒng)時鐘?

    如何配置SWM系列系統(tǒng)時鐘?
    的頭像 發(fā)表于 09-18 16:35 ?739次閱讀
    如何<b class='flag-5'>配置</b>SWM系列<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>時鐘</b>?

    CKS32F107xx系列時鐘系統(tǒng)具體配置方法講解

    上一章節(jié)對CKS32F107xx系列時鐘做了整體介紹,本章節(jié)以使用HSI內(nèi)部高速時鐘為例對時鐘具體配置方法進(jìn)行講解。
    的頭像 發(fā)表于 05-28 10:05 ?497次閱讀
    CKS32F107xx系列<b class='flag-5'>時鐘</b><b class='flag-5'>系統(tǒng)</b>具體<b class='flag-5'>配置</b><b class='flag-5'>方法</b>講解