s3c2440a包含兩個時鐘子產品, mpll和upll,mpll提供FCLK,HCLK和PCLK,upll是一個專用于USB子產品。是時鐘頻率Fin經過pll電路提升頻率後的兩個時鐘頻率,
int main(int argc,char **argv)
{
int i;
uchar key;
uint mpll_val=0;
i=2;
switch(i){
case 0: //200
key=12;
mpll_val=(92<<12)|(4<<4)|(1); //mpll=200MHz的計算方法:mpll二進制值為0101 1100 0000 0100 0001即MDIV=0x92,PDIV=4,SDIV=1
//mpll=(2*m*Fin)/(p*2s) m=MDIV+8,p=PDIV+2,s=SDIV
//m=100,p=6,s=1,Fin預設為12MHz,是以mpll=(2*100*12)/(6*2)=200MHz
break;
case 1:
key=13;//300
mpll_val=(67<<12)|(1<<4)|(1);
break;
case 2://400
key=14;
mpll_val=(92<<12)|(1<<4)|(1);
break;
case 3:
key=14;
mpll_val=(92<<12)|(1<<4)|(1);
break;
default:
key=14;
mpll_val=(92<<12)|(1<<4)|(1);
break;
再cpu剛上電的時候不存在mpll和upll,當pll電路工作了一個lock time之後才産生,上電之初,FCLK=Fin,lock time之後,FCLK=mpll