新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 2440test的時(shí)鐘調(diào)整

        2440test的時(shí)鐘調(diào)整

        作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
        代碼:
        key = 14;
        mpll_val = (92<<12)|(1<<4)|(1);
        ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);
        ChangeClockDivider(key, 12);
        cal_cpu_bus_clk();
        void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
        {
        rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;
        }
        void ChangeClockDivider(int hdivn_val,int pdivn_val)
        {
        int hdivn=2, pdivn=0;
        // hdivn_val (FCLK:HCLK)ratio hdivn
        // 11 1:1 (0)
        // 12 1:2 (1)
        // 13 1:3 (3)
        // 14 1:4 (2)
        // pdivn_val (HCLK:PCLK)ratio pdivn
        // 11 1:1 (0)
        // 12 1:2 (1)
        switch(hdivn_val) {
        case 11: hdivn=0; break;
        case 12: hdivn=1; break;
        case 13:
        case 16: hdivn=3; break;
        case 14:
        case 18: hdivn=2; break;
        }
        switch(pdivn_val) {
        case 11: pdivn=0; break;
        case 12: pdivn=1; break;
        }
        //Uart_Printf("Clock division change [hdiv:%x, pdiv:%x]n", hdivn, pdivn);
        rCLKDIVN = (hdivn<<1) | pdivn;
        switch(hdivn_val) {
        case 16: // when 1, HCLK=FCLK/8.
        rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8);
        break;
        case 18: // when 1, HCLK=FCLK/6.
        rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<9);
        break;
        }
        if(hdivn!=0)
        MMU_SetAsyncBusMode();
        else
        MMU_SetFastBusMode();
        }
        參考數(shù)據(jù)手冊(cè):FIN=12000000 MDIV=92 PDIV=1 SDIV = 1 m=100,p=3,s=1, HSIVN=2 PDIVN =1 ,
        根據(jù)MPLL的計(jì)算公式 2×100×1200000/(3×2)=400MHZ 即FCLK=400M
        HCLK=FCLK/4=100M , PCLK=HCLK/2


        關(guān)鍵詞: 2440時(shí)鐘調(diào)

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 西乌珠穆沁旗| 许昌县| 育儿| 兰西县| 静安区| 和顺县| 顺义区| 益阳市| 门头沟区| 宜昌市| 买车| 隆化县| 防城港市| 苏尼特左旗| 民和| 松原市| 抚松县| 舞钢市| 来宾市| 靖州| 吴忠市| 迭部县| 达尔| 广水市| 新蔡县| 广昌县| 界首市| 和林格尔县| 怀宁县| 库尔勒市| 格尔木市| 色达县| 芜湖市| 镇原县| 南召县| 陵水| 繁峙县| 开封县| 澄迈县| 宜川县| 依安县|