ARM学习笔记(一)"S3C2440A时钟初始化"
扫描二维码
随时随地手机看文章
S3C2440A时钟初始化:
1.根据OM[3:2]判定系统时钟来源(Fin)
2.设置CLKCON[0x4C00000C]
默认即可,如有功耗要求,可参考手册设置,关闭部分时钟.
3.设置CLKSLOW[0x4C000010]
默认即可,不用SLOW模式.
4.LOCKTIME设定(略),默认设置
5.设置锁相环
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
系统时钟FCLK=Fmpll=(2*m*Fin)/(p*2^s) 【与S3C2410不同】
USB时钟UCLK=Fupll=(m*Fin)/(p*2^s)=48MHz或96MHz
【注意】
1)PPL设置时,MDIV、PDIV不能为零,否则可能导致CPU运行故障
2)MDIV、PDIV、SDIV尽可能选用手册中提供的参考值
3)UPLLCON设置:
Fin=17MHz
MDIV=60;PDIV=4;SDIV=2 时 Fupll=48MHz
MDIV=60;PDIV=4;SDIV=1 时 Fupll=96MHz
Fin=12MHz
MDIV=56;PDIV=2;SDIV=2 时 Fupll=48MHz
MDIV=56;PDIV=2;SDIV=1 时 Fupll=96MHz
6.设置CLKDIVN[0x4C000014]
DIVN_UPLL: CLKDIVN[3]
UCLK 选择位.UCLK可以在UPLLCON中设置为48MHz和96MHz两种,但是最终UCLK是为USB提供时钟的,也就是说必须是48MHz,所以当UCLK被设置成96MHz时,需要设置DIV_UPLL=1这样
UCLK=Fupll/2=48MHz
HDIVN: CLKDIVN[2:1]
PDIVN: CLKDIVN[0]
这两个参数决定HCLK与PCLK(当使用CAMERA CLOCK时,CAMDIVN[9:8]也会影响HCLK和PCLK),具体取值参考数据手册.