s3c2410 ARM 時鐘與設定

2021-05-28 16:42:45 字數 2633 閱讀 2464

osc是用無源晶振,ext是用有源晶振或外部時鐘2440的12m是oscillator 是有源的呀!

2440的12m是oscillator

crystal 無源晶體

oscillator 有源晶體(裡面有有源器件)

無源晶振內只有一片按一定軸向切割的石英晶體薄片,供接入運放(或微處理器的xtal端)以形成振盪.有源晶振內帶運放,工作在最佳狀態,電源後,可直接輸出一定頻率的等幅正弦波,一般至少有4引腳,體積稍大.

準備先不跑系統,把s3c2440和周邊硬體熟悉一下再說。

對於任何乙個微控制器,要使用它首先就要弄明白他的時鐘系統,mcu的時鐘就像人的心臟,跳動的快慢,決定著系統的工作速度。s3c2440的datesheet上說,可以達到400m,但是也不是說,必須在400m的頻率下工作,主時鐘晶振來自於外部晶振(xtipll)或者是外部時鐘(extclk)。時鐘生成器包含了乙個振盪器(振盪放大器),其連線外部晶振,並且還有2個pll,可以產生需要的高頻。

通過引腳om[3:2]來決定時鐘源是crystal還是extclk,不過我用的開發板將om[3:2]固定接地了,都是用外部晶振。有一點值得注意,在對mpllcon寫入有效值之前,系統使用外部晶振或外部時鐘源的時鐘。即使使用者不準備改變mpllcon的值,也應當重新寫一次。

簡單說一下,s3c2440的時鐘構成。

s3c2440具有2個pll(phase locked loop:用來產生高頻的電路),乙個是mpll, 用於產生fclk,hclk,pclk三種頻率, 這三種頻率分別有不同的用途:

fclk是cpu提供的時鐘訊號,如果提到cpu的主頻是400mhz,就是指的這個時鐘訊號。

hclk是為ahb匯流排提供的時鐘訊號,advanced high-performance bus,主要用於高速外設,比如記憶體控制器,中斷控制器,lcd控制器,dma 以及usb host 。

pclk是為apb匯流排提供的時鐘訊號,advanced peripherals bus,主要用於低速外設,比如watchdog,iis, i2c,sdi/mmc, gpio,rtc ,uart,pwm,adc and spi等等。

另外乙個是upll,專門用於驅動usb host/device。並且驅動usb host/device的頻率必須為48mhz。

在系統復位之後,如果沒有設定pll,則採用外部晶振的頻率作為fclk,同時fclk:hclk:pclk的比例關係為1:1:1。

下面說一些跟時鐘有關的暫存器設定:通過改變clkdivn可以改變fclk,hclk,pclk的分頻比。

鎖定時間計數暫存器locktime(0x4c000000):一般使用預設就可以。

鎖相環控制暫存器[mpllcon(0x4c000004)&upllcon(0x4c000008)]:

mpll=(2*m*fin)/(p*2^s)    upll=(m*fin)/(p*2^s)

其中m=(mdiv+8),p=(pdiv+2),s=sdiv

p,m範圍:1<=p<=62,1<=m<=248

注意:mdiv[19:12],pdiv[9:4],sdiv[1:0],當設定mpll和upll值的時候,需要先設定mpll再設定upll。

例如:mpllcon = (92<<12) | (1<<4) |(1);//fclk=400m

這裡mdiv=92,pdiv=1,sdiv=1,那麼m=100,p=3,s=1,且fin=12m,所以fclk=400m

再設定clkdivn=0x03;//fclk:hclk:pclk=1:2:4

這裡clkdivn(0x4c000014)用於決定三者的分配比例

一般設定這兩個就可以了。還有乙個時鐘控制暫存器clkcon(0x4c00000c)向相應位寫1使能相應時鐘,不過一般預設為1.

s3c2410與s3c2440的部分細節區別整理

這兩個soc都是arm920,cpuid都是0x41129200,很多暫存器設定都是一樣的,但是你要想直接把2410的bootloader 核心拿到2440上用,那是肯定會出錯的 網上這樣的文章很多,大多都僅僅是巨集觀上比劃兩句,如攝像頭驅動 主頻之類,沒有什麼意義 細節是魔鬼,只有在細節上充分積累...

arm學習筆記 時鐘(s3c2451)

主鎖相環mpll作為系統時鐘的參考時鐘 輔助鎖相環epll作為特殊的功能塊的參考時鐘 mpll的配置方法 om暫存器配置為0,則時鐘源為xtl,配置為1,則時鐘源為外部時鐘extclk epll的配置方法 如下圖配置clksrc,clksrc和om暫存器 正常狀況下當改變mpll時,此時會產生一段l...

S3C6410和S3C2410的區別

s3c6400平台和s3c24xx平台而言,基本上沒什麼大的變化 1.記憶體支援ddr記憶體一般都是128m,起始位址是0x50000000,其他暫存器位址與s3c24xx有很大的不同。2.時鐘沒有了epll換上了mpll所以時鐘方面要小心了。3.新增tv卡的支援,以及keypad.的支援。4.fl...