在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            S3C2440時鐘電源管理

            作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
            S3C2440時鐘可以選用晶振(XTAL),也可以使用外部時鐘(EXTCLK),由系統(tǒng)復(fù)位時,在復(fù)位信號上升沿對引腳OM3、OM2所測的狀態(tài)來確定。由于我所用的開發(fā)板這兩個引腳接地,故外部晶振作為主鎖相環(huán)(MPLL)和usb鎖相環(huán)(UPLL)的時鐘源。

            含有兩個鎖相環(huán)MPLL、UPLL產(chǎn)生系統(tǒng)所需要的不同頻率的時鐘
            MPLL:
            為CPU產(chǎn)生FCLK時鐘
            為AHB產(chǎn)生HCLK時鐘
            為APB產(chǎn)生PCLK時鐘

            本文引用地址:http://www.biyoush.com/article/201611/319196.htm

            UPLL:
            為usb(Host and Device)產(chǎn)生UCLK(48M)


            FCLK,HCLK和 PCLK
            FCLK是提供給ARM920T 的時鐘。
            HCLK 是提供給用于 ARM920T,存儲器控制器,中斷控制器,LCD 控制器,DMA 和 USB 主機(jī)模塊的 AHB
            總線的時鐘。
            PCLK 是提供給用于外設(shè)如WDT,IIS,I2C,PWM 定時器,MMC/SD 接口,ADC,UART,GPIO,RTC 和
            SPI的APB 總線的時鐘。


            下圖為PLL(鎖相環(huán))方框圖

            設(shè)置FCLK要用到PLL控制寄存器MPLLCON

            例如:如果外部晶振Fin為12MHZ,設(shè)置FCLK為400MHZ,

            由公式Fout = 2 × m × Fin / ( p*2^s) 此處:m =MDIV+8, p=PDIV+2, s=SDIV

            可知rMPLLCON=((92<<12)|(1<<4)|1) 其中(MDIV=92, PDIV=1,SDIV=1)。

            下面的這個函數(shù)是配置FCLK HCLK PCLK的比例的函數(shù),用到時鐘分頻寄存器CLKDIVN

            1. voidChangeClockDivider(inthdivn,intpdivn)
            2. {
            3. //hdivn,pdivnFCLK:HCLK:PCLK
            4. //0,01:1:1
            5. //0,11:1:2
            6. //1,01:2:2
            7. //1,11:2:4
            8. //2,01:4:4
            9. //2,11:4:8
            10. //3,01:3:3
            11. //3,11:3:6
            12. rCLKDIVN=(hdivn<<1)|pdivn;
            13. if(hdivn==2)
            14. rCAMDIVN=(rCAMDIVN&~(3<<8))|(1<<9);
            15. if(hdivn==3)
            16. rCAMDIVN=(rCAMDIVN&~(3<<8))|(1<<8);
            17. }


            [cpp]view plaincopy
            1. //**************************[UPLL]*******************************
            2. voidChangeUPllValue(intmdiv,intpdiv,intsdiv)//配置UPLLCON寄存器
            3. {
            4. rUPLLCON=(mdiv<<12)|(pdiv<<4)|sdiv;
            5. }
            [cpp]view plaincopy
            1. voidCalcBusClk(void)//計算總線頻率
            2. {
            3. U32val;
            4. U8m,p,s;
            5. val=rMPLLCON;
            6. m=(val>>12)&0xff;
            7. p=(val>>4)&0x3f;
            8. s=val&3;
            9. //(m+8)*FIN*2不要超出32位數(shù)!
            10. FCLK=((m+8)*(FIN/100)*2)/((p+2)*(1<
            11. val=rCLKDIVN;
            12. m=(val>>1)&3;//HDIVN的值
            13. p=val&1;//PDIVN的值
            14. val=rCAMDIVN;
            15. s=val>>8;//CAMDIVN[8:9],為HDIVN分頻改變位
            16. switch(m)//計算HCLK頻率
            17. {
            18. case0:
            19. HCLK=FCLK;
            20. break;
            21. case1:
            22. HCLK=FCLK>>1;
            23. break;
            24. case2:
            25. if(s&2)//見CAMDIVN寄存器HCLK4_HALF
            26. HCLK=FCLK>>3;
            27. else
            28. HCLK=FCLK>>2;
            29. break;
            30. case3:
            31. if(s&1)//見CAMDIVN寄存器HCLK3_HALF
            32. HCLK=FCLK/6;
            33. else
            34. HCLK=FCLK/3;
            35. break;
            36. }
            37. if(p)//計算PCLK頻率
            38. PCLK=HCLK>>1;
            39. else
            40. PCLK=HCLK;
            41. val=rUPLLCON;
            42. m=(val>>12)&0xff;
            43. p=(val>>4)&0x3f;
            44. s=val&3;
            45. UPLL=((m+8)*FIN)/((p+2)*(1<
            46. UCLK=(rCLKDIVN&8)?(UPLL>>1):UPLL;//計算UCLK頻率
            47. }

            下圖為外部時鐘為晶振時的上電復(fù)位順序




            關(guān)鍵詞: S3C2440時鐘電源管

            評論


            技術(shù)專區(qū)

            關(guān)閉