ARM芯片的时钟系统详解(S5PV210芯片)
1、時鐘介紹
時鐘是同步工作系統(tǒng)的同步節(jié)拍,時鐘的快慢就是我們常說的工作頻率,以赫茲(HZ)為單位。時鐘系統(tǒng)指導(dǎo)器件的運行,我們分析器件的工作特性時,常常會看器件的時序圖,時序圖中的時鐘周期就是時鐘系統(tǒng)來決定的。
2、時鐘來源
2.1、 三種時鐘配置
1、外部直接輸入時鐘信號,SoC有個引腳用來輸入外部時鐘信號,用的很少。
2、外部晶振+內(nèi)部時鐘發(fā)生器產(chǎn)生時鐘,大部分低頻單片機都是這么工作的。
3、外部晶振+內(nèi)部時鐘發(fā)生器+內(nèi)部PLL產(chǎn)生高頻時鐘+內(nèi)部分頻器分頻得到各種頻率的時鐘。
2.2、S5PV210的時鐘來源
S5PV210的時鐘來源屬于第三種,也可以說復(fù)雜的Soc都是第三種,因為復(fù)雜Soc的內(nèi)部器件是很多的,具體原因如下:
1、使用外部晶振的原因:Soc自身是不帶晶振的,所以肯定需要外部提供。
2、使用低頻晶振的原因:外部的晶振提供的都是低頻的信號,像S5PV210芯片就是接的24MHZ的晶振。不接高頻晶振是因為高頻晶振價格高,而且高頻信號的傳導(dǎo)輻射比較難控制。就算接高頻晶振也不能解決問題,Soc的主頻高達(dá)1GHZ,就算是高頻晶振也達(dá)不到這個頻率。
3、采用內(nèi)部時鐘發(fā)生器:晶振產(chǎn)生的信號不一定滿足Soc的需求,所以需要時鐘發(fā)生器來進(jìn)行處理才能給后級使用;
4、采用內(nèi)部PLL:PLL是鎖相環(huán),作用就是倍頻器,將低頻信號變成高頻信號。因為外接晶振是低頻的,但是Soc需要高頻信號,所以要倍頻;
5、采用分頻器:經(jīng)過倍頻器后時鐘信號變成高頻信號,但是Soc外接多個外設(shè),每個外設(shè)需要的時鐘頻率是不同的,有的外設(shè)需要低頻信號,比如串口。所以要用分頻器將高頻信號,分頻成低頻信號。
3、時鐘和系統(tǒng)性能的關(guān)系
參考博客《時鐘系統(tǒng)和系統(tǒng)功耗的關(guān)系》。
4、時鐘和外設(shè)編程的關(guān)聯(lián)
外設(shè)工作都需要一定頻率的時鐘信號,但是絕大部分外設(shè)自身是沒有信號產(chǎn)生的電路的,需要主控芯片提供時鐘信號。因此我們程序員可以為每個外設(shè)指定時鐘來源、時鐘分頻系統(tǒng)、從而設(shè)置這個外設(shè)的工作時鐘。
5、S5PV210的時鐘系統(tǒng)簡介
5.1、時鐘域
S5PV210芯片的時鐘體系比較復(fù)雜,主要原因是有太多的外設(shè),并且不同的外設(shè)工作要求的時鐘頻率越相差很大,從幾十Hz1GHZ。所以將時鐘分成不同的時鐘域,每個時鐘域的時鐘頻率都不同,分別對應(yīng)不同時鐘頻率需求的外設(shè)器件。S5PV210芯片分為三個時鐘域:MSYS、DSYS、PSYS。各個時鐘域之間是彼此獨立的,然后通過BRG(異步總線橋:asynchronous bus bridges)連接起來。
5.1.2、MSYS域
1、MSYS域包含CPU(Cortex-A8內(nèi)核)、DRAM控制器(DMC0和DMC1)、IRAM&IROM等,都是一些高速的設(shè)備。
2、包含的時鐘信號:
ARMCLK: 給cpu內(nèi)核工作的時鐘,也就是所謂的主頻。
HCLK_MSYS: MSYS域的高頻時鐘,給DMC0和DMC1使用
PCLK_MSYS: MSYS域的低頻時鐘
HCLK_IMEM:給iROM和iRAM(合稱iMEM)使用
5.1.3、DSYS域
1、都是和視頻顯示、編解碼等有關(guān)的模塊;
2、包含的時鐘信號:
HCLK_DSYS:DSYS域的高頻時鐘
PCLK_DSYS:DSYS域的低頻時鐘
5.1.4、PSYS域
1、和內(nèi)部的各種外設(shè)時鐘有關(guān),譬如串口、SD接口、I2C、AC97、USB等。
2、包含的時鐘信號:
HCLK_PSYS:PSYS域的高頻時鐘
PCLK_PSYS:PSYS域的低頻時鐘
SCLK_ONENAND:ONENAND芯片用的
5.2、推薦時鐘系統(tǒng)設(shè)置值
Values for the high-performance operation:
? freq(ARMCLK) = 1000 MHz
? freq(HCLK_MSYS) = 200 MHz
? freq(HCLK_IMEM) = 100 MHz
? freq(PCLK_MSYS) = 100 MHz
? freq(HCLK_DSYS) = 166 MHz
? freq(PCLK_DSYS) = 83 MHz
? freq(HCLK_PSYS) = 133 MHz
? freq(PCLK_PSYS) = 66 MHz
? freq(SCLK_ONENAND) = 133 MHz, 166 MHz
5.3、時鐘體系框圖詳解
5.3.1、時鐘體系框圖
5.3.2、PLL器件
1、PLL是鎖相環(huán),功能上是倍頻器,把低頻的時鐘信號變成高頻時鐘信號;
2、PLL有鎖存周期,因為PLL是物理器件,不是理想器件,把低頻信號輸入PLL到PLL輸出高頻信號,這中間是需要時間的。
5.3.3、MUX器件
1、MUX是多路選擇器件,有多個輸入和一個輸出,在邏輯上相當(dāng)于或門,實現(xiàn)多選一的功能;
2、控制MUX器件的寄存器有一個狀態(tài)位,當(dāng)MUX器件切換輸入源時,是需要一定時間的,當(dāng)切換成功時硬件會將狀態(tài)位置位,我們需要去讀取狀態(tài)位來判斷是否切換完成。
DIV器件
1、DIV是分頻器,將高頻信號分頻成低頻信號,Fout=Fin / 分頻系數(shù);
2、DIV也有狀態(tài)位,當(dāng)修改分頻系數(shù)時,需要讀取狀態(tài)位來判斷修改是否已經(jīng)生效。
6、時鐘設(shè)置的關(guān)鍵性寄存器
6.1、xPLL_LOCK寄存器
該寄存器的功能是設(shè)定PLL的鎖存周期,每個PLL都有一個對應(yīng)的xPLL_LOCK寄存器。
6.2、xPLL_CON/xPLL_CON0/xPLL_CON1寄存器
1、這些都是PLL的控制寄存器,每個PLL的控制寄存器個數(shù)有差異,具體查閱收據(jù)手冊。其中比較重要的配置:PLL的使能、倍頻系數(shù)的設(shè)置、鎖存狀態(tài)。
2、PLL的倍頻參數(shù)是PDIV、MDIV、SDIV,最終輸出信號FOUT = MDIV X FIN / (PDIV X 2^SDIV-1)。
3、在設(shè)置每個PLL的倍頻參數(shù)時也不是隨意設(shè)置的,數(shù)據(jù)手冊對不同的頻率都有建議值,其實就是讓你照著抄,別自己瞎搞。芯片是物理器件,有自己的物理特性,倍頻參數(shù)并不是只滿足上面的計算公式就行。
6.3、CLK_SRCn寄存器
CLK_SRCn寄存器是時鐘源控制寄存器,控制時鐘信號的來源。對應(yīng)到時鐘框圖里,就是控制MUX器件的。
6.4、CLK_SRC_MASKn寄存器
CLK_SRC_MASKn寄存器是MUX的使能控制寄存器,可以禁止/使能MUX器件。
6.5、CLK_DIVn寄存器
CLK_DIVn寄存器是控制DIV分頻器的,控制各個DIV分頻器的分頻系數(shù)。
6.6、CLK_GATE_x寄存器
>各個時鐘信號的使能控制信號,當(dāng)需要某個器件停止工作時,可以操作此寄存器將器件使用的時鐘信號給禁止掉。
6.7、CLK_DIV_STATn寄存器
表示每個DIV分頻器的狀態(tài),用來查詢當(dāng)前DIV是否可以輸出穩(wěn)定的時鐘信號。
6.8、CLK_MUX_STATx寄存器
表示每個MUX器件的狀態(tài),用來查詢當(dāng)前MUX器件的的輸入源是哪一個,或者查詢當(dāng)前MUX的參數(shù)修改后是否已經(jīng)穩(wěn)定。
總結(jié)
以上是生活随笔為你收集整理的ARM芯片的时钟系统详解(S5PV210芯片)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目标检测后处理:从nms到softer
- 下一篇: ARM芯片(S5PV210芯片)——串口