ARM學(xué)習(xí)筆記(一)"S3C2440A時(shí)鐘初始化"
S3C2440A時(shí)鐘初始化:
1.根據(jù)OM[3:2]判定系統(tǒng)時(shí)鐘來(lái)源(Fin)
2.設(shè)置CLKCON[0x4C00000C]
默認(rèn)即可,如有功耗要求,可參考手冊(cè)設(shè)置,關(guān)閉部分時(shí)鐘.
3.設(shè)置CLKSLOW[0x4C000010]
默認(rèn)即可,不用SLOW模式.
4.LOCKTIME設(shè)定(略),默認(rèn)設(shè)置
5.設(shè)置鎖相環(huán)
MPLLCON[0x4C000004]
UPLLCON[0x4C000008]
MDIV= MP(U)LLCON[19:12] PDIV= MP(U)LLCON[9:4]SDIV= MP(U)LLCON[1:0]
約定:m=MDIV+8 ; p=PDIV+2; s=SDIV
系統(tǒng)時(shí)鐘FCLK=Fmpll=(2*m*Fin)/(p*2^s) 【與S3C2410不同】
USB時(shí)鐘UCLK=Fupll=(m*Fin)/(p*2^s)=48MHz或96MHz
【注意】
1)PPL設(shè)置時(shí),MDIV、PDIV不能為零,否則可能導(dǎo)致CPU運(yùn)行故障
2)MDIV、PDIV、SDIV盡可能選用手冊(cè)中提供的參考值
3)UPLLCON設(shè)置:
Fin=17MHz
MDIV=60;PDIV=4;SDIV=2 時(shí) Fupll=48MHz
MDIV=60;PDIV=4;SDIV=1 時(shí) Fupll=96MHz
Fin=12MHz
MDIV=56;PDIV=2;SDIV=2 時(shí) Fupll=48MHz
MDIV=56;PDIV=2;SDIV=1 時(shí) Fupll=96MHz
6.設(shè)置CLKDIVN[0x4C000014]
DIVN_UPLL: CLKDIVN[3]
UCLK 選擇位.UCLK可以在UPLLCON中設(shè)置為48MHz和96MHz兩種,但是最終UCLK是為USB提供時(shí)鐘的,也就是說(shuō)必須是48MHz,所以當(dāng)UCLK被設(shè)置成96MHz時(shí),需要設(shè)置DIV_UPLL=1這樣
UCLK=Fupll/2=48MHz
HDIVN: CLKDIVN[2:1]
PDIVN: CLKDIVN[0]
這兩個(gè)參數(shù)決定HCLK與PCLK(當(dāng)使用CAMERA CLOCK時(shí),CAMDIVN[9:8]也會(huì)影響HCLK和PCLK),具體取值參考數(shù)據(jù)手冊(cè).