娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

S5PV210初始化系統時鐘

發布者:superstar11最新更新時間:2024-12-04 來源: cnblogs關鍵字:S5PV210  初始化  系統時鐘 手機看文章 掃描二維碼
隨時隨地手機看文章

S5PV210時鐘體系
S5PV210中包含3大類時鐘domain,分別是主系統時鐘domain (簡稱MSYS,下面將使用簡稱來進行相關講解)、顯示相關的時鐘domain (DSYS)、外圍設備的時鐘domain (PSYS)。
1) MSYS:用來給cortex a8處理器,dram控制器,3D,IRAM,IROM,中斷控制器等提供時鐘;
2) DSYS:用來給顯示相關的部件提供時鐘,包括FIMC, FIMD, JPEG, and multimedia IPs;
3) PSYS:用來給外圍設備提供時鐘,如i2s, spi,i2c,uart等
S5PV210外接的晶振頻率(簡稱Fin)為24MHz,通過時鐘控制邏輯PLL可以提高系統時鐘。S5PV210共有4個倍頻器,即PLL,包括APLL(供MSYS使用),MPLL(供DSYS使用),EPLL(供PSYS使用),VPLL(供video相關的時鐘使用)。3大類時鐘domain中,可以使用不同的分頻,使其給不同部件輸出所需要的時鐘,各類時鐘的關系如下圖:

image

S5PV210時鐘分類圖

如何確定各類時鐘的值,芯片手冊上給出了參考值,我們按照參考值設置即可,各類時鐘的參考值如下圖:

image

                S5PV210時鐘設置參考值圖

具體如何設置上述各種各樣的時鐘,可參考下圖:

image

S5PV210時鐘設置參考圖

該圖十分重要,依據上圖我們就可以設置好所有硬件部件所需的工作時鐘(實際上我們并不需要設置好所有部件的工作時鐘,我們只需設置好我們需要使用的硬件部件的工作時鐘即可),在本章第二節中,我們將以上圖為基礎,通過設置時鐘相關的寄存器,達到初始化時鐘的目的。

程序例子:

分別用了匯編語言和C語言來編寫,詳細代碼見鏈接。下面以C語言代碼來講解:

1. start.S
在調用main函數之前,調用了時鐘初始化函數clock_init,進行時鐘相關的設置。
2. clock.c
clock_init()在clock.c中定義,具體代碼如下:
void clock_init()
{
    // 1 設置各種時鐘開關,暫時不使用PLL
    CLK_SRC0 = 0x0;
    // 2 設置鎖定時間,使用默認值即可
    APLL_LOCK = 0x0000FFFF;
    MPLL_LOCK = 0x0000FFFF;
    // 3 設置分頻
    CLK_DIV0 = 0x14131440;
    // 4 設置PLL
    APLL_CON0 = APLL_VAL;
    MPLL_CON = MPLL_VAL;
    // 5 設置各種時鐘開關,使用PLL
    CLK_SRC0 = 0x10001111;
}
上述代碼共有5個步驟,下面我們一一講解每一個步驟:
第一步 、設置各種時鐘開關,暫時不使用PLL
根據時鐘設置圖,下面是放大圖:

image

首先我們需要選擇使用外接24MHz晶振,由上圖可知,APLL和MPLL的時鐘源由“FIN_PLL”決定,在芯片手冊中搜索“FIN_PLL”,可知相關寄存器為CLK_SRC0,見下圖:

image

在未設置PLL和各種分頻系數之前,我們不能使用PLL,為了保險起見,暫時直接使用頻率較低的外接的24MHz晶振,待設置好PLL和分頻系數后再重新設置各種時鐘開關。

第二步 、設置鎖定時間
設置PLL后,時鐘從Fin提升到目標頻率時,需要一定的時間,即鎖定時間。

第三步 、設置分頻
與分頻相關的寄存器是CLK_DIV0,見下圖:

image

現在我們來根據本章第一節中給出的時鐘設置參考值來設置該寄存器。

image

  • ARMCLK = 1000MHz = MOUT_MSYS / (APLL_RATIO + 1),經過在第四和第五步的設置后,MOUT_MSYS會被設置為1000MHz,所以 APLL_RATIO=0即可

  • SCLKA2M=200MHz=SCLKAPLL / (A2M_RATIO + 1),由于SCLKAPLL=1000MHz,所以A2M_RATIO=4。

  • HCLK_MSYS=200MHz=ARMCLK / (HCLK_MSYS_RATIO + 1),所以HCLK_MSYS_RATIO=4

  • PCLK_MSYS=100MHz=HCLK_MSYS / (PCLK_MSYS_RATIO + 1),所以PCLK_MSYS_RATIO=1

  • HCLK_DSYS=166MHz=MOUT_DSYS / (HCLK_DSYS_RATIO + 1), 經過在第四和第五步的設置后,MOUT_DSYS =667MHz,所以HCLK_DSYS_RATIO=3

  • PCLK_DSYS=83MHz=HCLK_DSYS / (PCLK_DSYS_RATIO + 1),所以PCLK_DSYS_RATIO=1

  • HCLK_PSYS=133Mhz=MOUT_PSYS / (HCLK_PSYS_RATIO + 1),經過在第四和第五步的設置后,MOUT_PSYS =667MHz所以HCLK_PSYS_RATIO=4

  • PCLK_PSYS=66Mhz=HCLK_PSYS / (PCLK_PSYS_RATIO + 1),所以HCLK_PSYS_RATIO=1
    所以CLK_DIV0 = 0x14131440;

第四步 、設置PLL
PLL即倍頻器,用來放大運行頻率。設置好分頻后,我們就需要設置PLL了。APLL/MPLL的啟動是通過設置APLL_CON0/MPLL_CON寄存器,我們逐個來設置。

image

APLL_CON0

image

ALPP_CON0負責設置APLL,FINPLL=24MHz,經過APLL后,我們將輸 出FOUT=1000Mhz的時鐘頻率,FOUT的計算公式如下: FOUT=MDIV*FIN/(PDIV*2^(SDIV-1)) = 1000 MHz
由于FIN=24MHz,FOUT=1000MHz,我們可以這樣取值: MDIV= 0x7d,PDIV= 0x3,SDIV=1。這3個值并不是固定死的,只要能使FOUT=1000Mhz,任意搭配都是可以的。

MPLL_CON

image

MPLL_CON寄存器負責設置MPLL,經過MPLL后,我們將輸出FOUT=667Mhz的時鐘頻率,FOUT的計算公式如下: FOUT=MDIV*FIN/(PDIV*2^SDIV) = 667 MHz
由于FIN=24MHz,FOUT=667MHz,我們可以這樣取值: MDIV=0x29B, PDIV= 0xC,SDIV=1。這3個值并不是固定死的,只要能使FOUT=667Mhz,任意搭配都是可以的。

第五步 設置各種時鐘開關

image

S5PV210時鐘設置參考圖

在上圖中,所有的MUX都是用來選擇時鐘的,相關寄存器是CLK_SRC0, 見下圖:

image

參考S5PV210時鐘設置參考圖,設置各種時鐘開關:
APLL_SEL=1,使用FOUTAPLL
MPLL_SEL=1,使用FOUTMPLL
EPLL_SEL=1,使用FOUTEPLL
VPLL_SEL=1,使用FOUTVPLL
MUX_MSYS_SEL=0,使用SCLKAPLL
MUX_DSYS_SEL=0,使用SCLKMPLL
MUX_PSYS_SEL=0,使用SCLKMPLL
ONENAND_SEL=1,使用HCLK_DSYS
所以CLK_SRC0=0x10001111;

3. main.c
在main函數中實現LED閃爍的功能,與前面的代碼大同小異。


關鍵字:S5PV210  初始化  系統時鐘 引用地址:S5PV210初始化系統時鐘

上一篇:S5PV210 ADC轉換
下一篇:S5PV210 LCD顯示

推薦閱讀最新更新時間:2025-06-07 17:40

Linux-3.0.8中基于S5PV210的GPIO模塊代碼追蹤和分析
編寫按鍵驅動時,想知道內核是如何管理GPIO的,所以開始追蹤代碼,中間走了一些彎路,現記錄于此。 追蹤代碼之前,我猜測:第一,這部分代碼應該在系統set up階段執行;第二,GPIO的代碼應該在machine或者platform或者vendor相關的目錄下。事實證明,第一點是正確的,第二點基本是錯誤的,因為內核依靠對GPIO的抽象來管理之,這層抽象層給具體的machine留出了一些它們需要是實現的接口,這與其他的設備驅動框架在使用上是很類似的,當然,GPIO也是一種設備啊... ...所以,管理GPIO的多數代碼位于drivers/gpio/目錄下。 好了,開始走讀代碼,那么對于S5PV210這塊SoC,GPIO子系統的入
[單片機]
ARM-Linux S5PV210 UART驅動(1)----用戶手冊中的硬件知識
一、概述 The Universal Asynchronous Receiver and Transmitter (UART) in S5PV210 provide four independent asynchronous, and serial input/output (I/O) ports. All the ports operate in an interrupt-based or a DMA-based mode. The UART generates an interrupt or a DMA request to transfer data to and from the CPU and the UART. T
[單片機]
ARM-Linux <font color='red'>S5PV210</font> UART驅動(1)----用戶手冊中的硬件知識
S5PV210 | 裸機按鍵檢測、控制外設實驗
電路原理 對應的GPIO口默認硬件上拉,有按鍵按下時對應的IO口變為低電平,將對應的GPIO口設置為輸入,檢測對應的電平即可檢測按鍵的動作。 將LED、BEEP、KEY相關的GPIO都初始化,然后進入while(1)死循環,不停的判斷按鍵的動作,一旦有按鍵按下,執行對應的if-else語句,然后控制對應的LED、BEEP。 DATASHEET(寄存器詳解) 2.2.56 GPH0控制寄存器端口組 GPH0控制寄存器組包含4個控制寄存器:GPH0CON, GPH0DAT, GPH0PUD 和 GPH0DRV。 2.2.56.1 Port Group GPH0 Control Register (GPH0CON
[單片機]
<font color='red'>S5PV210</font> | 裸機按鍵檢測、控制外設實驗
S5PV210 LCD顯示
第一節 S5PV210 LCD控制器 要使一塊LCD正常顯示文字或圖像,不僅需要LCD驅動器,還需要相應的LCD控制器。 LCD控制器的主要作用是將在系統存儲器中的顯示緩沖區中的LCD圖像數據傳送到外部LCD驅動器, 并產生必要的控制信號,例如VSYNC、HSYSNC、VCLK。S5PV210內部集成了LCD控制器,它結構圖如下: 主要有VSFR,VDMA,VPRCS,VTIME和視頻時鐘產生器幾個模塊組成: 1) VSFR由121個可編程寄存器組,一套gamma LUT寄存器組(包括64個寄存器),一套i80命令寄存器組(包括12個寄存器)和5塊256*32的調色板存儲器組成,主要用于lcd控制器的配置; 2) VDMA是
[單片機]
<font color='red'>S5PV210</font> LCD顯示
S5PV210時鐘詳解
1、S5PV210時鐘分類: 2、S5PV210時鐘流: 3、S5PV210時鐘經典配置: 初始化時鐘步驟: Step1:選擇是否開啟PLL,使用PLL(PLL輸出時鐘為800Mhz ~1Ghz),不使用PLL(繞過PLL模塊輸出時鐘為晶振時鐘24Mhz); Step2:設置PLL鎖定時間,默認值為0x0FFF,保險起見設置為0xFFFF(寄存器最大值); Step3:設置分頻系統,決定由PLL出來的最高時鐘如何分頻得到各個分時鐘(MSYSDSYSPSYS); Step4:設置PLL主要是設置PLL的倍頻系統,決定輸入端24Mhz的原始頻率可以得到多大的輸出頻率,默認值設置輸出為ARMCLK為1Ghz; Step5:
[單片機]
<font color='red'>S5PV210</font><font color='red'>時鐘</font>詳解
STM32時鐘系統介紹與總結
時鐘樹: 1. HSI振蕩器時鐘 The HSI clock signal is generated from an internal 8 MHz RC Oscillator and can be used directly as a system clock or divided by 2 to be used as PLL input. The HSI RC oscillator has the advantage of providing a clock source at low cost (no external components). It also has a faster startup time than
[單片機]
單片機stm32之時鐘樹以及修改系統時鐘頻率
  前言:在學51的時候我們知道單片機想要工作必須要有時鐘,在stm32中,外部時鐘源不是必須的,因為內部就有時鐘源,因此我們需要了解stm32的時鐘樹以方便以后我們設置自己所需要的時鐘頻率   時鐘樹   解讀   1.首先我們找到最重要的系統時鐘:   他的最高頻率為168MHZ,他可以由三個提供,一個是HSI(內部高速時鐘源,h=high,i=internal),可以在主圖中找到這個HSI RC,還有一個是HSE(外部高速時鐘源,e=external),最后一個是PLLCLK(pll為鎖相環提供,也可以在主圖中找到)。。但系統時鐘主要還是由PLLCLK提供   注意:   是指這個東西可以由三個其中之
[單片機]
單片機stm32之<font color='red'>時鐘</font>樹以及修改<font color='red'>系統</font><font color='red'>時鐘</font>頻率
msp430f5529學習筆記(2)時鐘系統
什么是時鐘系統和時鐘源 在單片機中,單片機每開始一個周期的工作就需要一個節拍來告訴它,這就相當于我們的心臟每跳動一次,血液被泵到身體各處一次一樣。那么單片機的時鐘就是單片機工作所需要的節拍,單片機的取指令、譯指令等工作都需要以這樣的時鐘周期為最小周期。 而實際上這樣一個時鐘就是一個方波信號,在每一個上升沿或者下降沿會迫使單片機工作一次。產生這樣有規律的方波信號的源頭就叫做時鐘源(振蕩器),因此單片機工作的快慢就和這個時鐘源的頻率有關系,頻率越高,單片機完成一次工作的時間就越短,頻率越低,單片機完成一次工作的時間就越長。但并不意味著可以無腦的選擇最高頻率,對很多不需要大量處理,只是控制的情況,為了增加可靠性,降低編
[單片機]
msp430f5529學習筆記(2)<font color='red'>時鐘</font><font color='red'>系統</font>
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 濉溪县| 凤阳县| 县级市| 松阳县| 湖南省| 竹北市| 寿光市| 彭州市| 淳化县| 晋州市| 宿迁市| 武汉市| 陆丰市| 天全县| 天祝| 鄂伦春自治旗| 遂宁市| 锦屏县| 惠水县| 红安县| 恩平市| 广水市| 望江县| 西藏| 镇宁| 安西县| 泸定县| 靖安县| 汪清县| 临潭县| 遵义市| 永泰县| 和顺县| 新竹县| 黄冈市| 邯郸县| 景洪市| 辽阳县| 伽师县| 湘潭县| 松原市|