使用NUC120RD2DN,無法成功將CPUCLK從外部24MHZ XTAL,經PLL倍頻為48MH

Albert_Kuang |浏览616次
收藏|2021/06/24 23:00

程式設定如下,但CPUCLK一直維持在24MHZ,PLL沒有倍頻輸出


main (void)

{

    uint32_t delayCnt;

    UNLOCKREG();

 

    SYSCLK->PWRCON.XTL12M_EN = 1; //  24MHZ External X'TAL

    SYSCLK->PWRCON.OSC22M_EN = 1;

    SYSCLK->PWRCON.OSC10K_EN = 1;

    SYSCLK->PWRCON.XTL32K_EN = 1;

    for (delayCnt=0;delayCnt<100000;delayCnt++); // Delay for clock stable

     

    SYSCLK->CLKSEL0.HCLK_S = 0x010;     //  HCLK clock source = PLL clock


    SYSCLK->PLLCON.PLL_SRC = 0;

    SYSCLK->PLLCON.OE = 0;

    SYSCLK->PLLCON.BP = 0;

    SYSCLK->PLLCON.PD = 0;

    SYSCLK->PLLCON.OUT_DV = 3; // NO = 4

    SYSCLK->PLLCON.IN_DV = 1; // NR = 3

    SYSCLK->PLLCON.FB_DV = 22; // NF = 24

// PLLFOUT = FIN * NF/NR * 1/NO

//    = 24MHZ * 24/3 * 1/4 = 48MHZ


LOCKREG();

 


满意回答

2022/09/05 16:07

请用BSP 例程测试,要SYS_Init()函数中,调用函数CLK_SetCoreClock(24000000); 即可配置为24M 

另外,你的代码里面先切HCLK到PLL,之后才起振PLL,这样切不过去的,要先起振PLL,并且等它stable之后,再切HCLK的时钟

admin

其他回答(0)
0人关注该问题
+1
 加载中...