|
S3C2440 的時(shí)鐘設置時(shí)間:
一個(gè)嵌入式系統中,晶振就像心臟。必須先確定晶振,設置好系統的時(shí)鐘,
WDT,UART,PWM,TIMER 等模塊才能正常工作。
和51 系列單片機相比,S3C2440 的時(shí)鐘電路很復雜。
首先通過(guò)引腳OM2,OM3 來(lái)選擇時(shí)鐘源。
以TQ2440 開(kāi)發(fā)板為例,OM2,OM3 都接地,外接12M 晶振,主時(shí)鐘源和USB 時(shí)鐘源都是
外部晶振。
S3C2440 具有2 個(gè)PLL(Phase Locked Loop:用來(lái)產(chǎn)生高頻的電路),一個(gè)是MPLL, 用于
產(chǎn)生FCLK, HCLK, PCLK 三種頻率, 這三種頻率分別有不同的用途:
FCLK 是CPU 提供的時(shí)鐘信號,如果提到CPU 的主頻是400MHz,就是指的這個(gè)時(shí)鐘信號。
HCLK 是為AHB 總線(xiàn)提供的時(shí)鐘信號, Advanced High-performance Bus,主要用于高速
外設,比如內存控制器,中斷控制器,LCD 控制器, DMA 以及USB host 。
PCLK 是為APB 總線(xiàn)提供的時(shí)鐘信號,Advanced Peripherals Bus,主要用于低速外設,
比如WATCHDOG,IIS, I2C, SDI/MMC, GPIO,RTC ,UART,PWM,ADC and SPI 等等。
另外一個(gè)是UPLL,專(zhuān)門(mén)用于驅動(dòng)USB host/Device。并且驅動(dòng)USB host/Device 的頻率必
須為48MHz。
時(shí)鐘電路相關(guān)寄存器總共有7 個(gè),下面分別介紹。
MPLLCON(0X4C00 0004)和UPLLCON(0X4C00 0008)
這兩個(gè)寄存器用來(lái)設置主鎖相環(huán)產(chǎn)生的時(shí)鐘和USB 鎖相環(huán)產(chǎn)生的時(shí)鐘。
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
----------------------- Page 2-----------------------
注意:MDIV 【19:12】,PDIV 【9:4】,SDIV 【1:0】,當設置MPLL 和UPLL 值的時(shí)候,需要
先設置UPLL 再設置MPLL。
例如:MPLLCON = (92<<12) | (1<<4) |(1);//FCLK=400M
這里MDIV=92,PDIV=1,SDIV=1,那么m=100,p=3,s=1,且Fin=12M,所以FCLK=400M
CLKCON(0X4C00 000C) 控制各種模塊如 SPI,IIC,UART 等的時(shí)鐘電路開(kāi)關(guān)以及系統的
SLEEP,IDLE 模式,以便降低系統功耗。默認值是全部時(shí)鐘電路打開(kāi),系統工作在正常模式。
CLKSLOW(0X4C00 0010)用來(lái)選擇系統是否進(jìn)入慢模式,以及是否關(guān)閉MPLL 或UPLL,
和在慢模式下的分頻率。
CLKDIVN(0X4C00 0014)和CAMDIVN(0X4C00 0018 照相機時(shí)鐘分割寄存器)兩個(gè)寄存器
配合來(lái)確定FCLK,HCLK,PCLK 的比例。
LOCKTIME(0X4C00 0000)設置MPLL,UPLL 的鎖存時(shí)間,采用默認值0XFFFF FFFF,鎖存
時(shí)間各為300us。
說(shuō)到鎖存時(shí)間,就要分析下S3C2440 的時(shí)鐘工作過(guò)程。
在系統復位時(shí),晶振起振穩定后,PLL 開(kāi)始按照默認值開(kāi)始工作,但是在復位時(shí),PLL 工
作是不穩定的,所以 S3C2440 用 FIN (12M )作為 MPLL 。只到一個(gè)新的值寫(xiě)入
MPLLCON,UPLLCON,即使用戶(hù)不想改變復位后PLLCON 的默認值,仍然需要把這個(gè)默認
值寫(xiě)入PLLCON,寫(xiě)入值之后,系統會(huì )自動(dòng)插入一個(gè)PLL LOCK TIME,也就是LOCKTIME
寄存器中設置的300us。300us 后,PLL 就開(kāi)始正常工作。
深圳專(zhuān)業(yè)嵌入式ARM、Linux、單片機技術(shù)實(shí)訓。學(xué)習顧問(wèn)郭老師:QQ754634522
在系統正常工作時(shí),如果要改變FCLK,寫(xiě)入新值到MPLLCON 后,系統也會(huì )插入一個(gè)PLL
LOCK TIME,300us 后FCLK 就變成新的頻率。
|
|