找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

[NUC] 使用NUC120RD2DN,無法將CPUCLK從外部24MHZ XTAL經PLL倍頻為48MHZ

[复制链接]
跳转到指定楼层
楼主
程式設定如下,但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();



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
admin 发表于 2021-6-25 10:18:40 | 只看该作者
1、先设置PLL,等待PLL稳定后再将HCLK时钟源切换到PLL.   2、检查__HXT宏定义的值是否12MHZ ,如果是请更改成24M?
牛卧堂
回复 支持 反对

使用道具 举报

板凳
匿名  发表于 2021-6-25 12:45:27
1.穩定用的delay移到PLL設定後,沒有改善
2.搜尋所有使用到的driver程式,沒有搜到__HXT宏定义。
   但我程式原先已有更改__XTAL為24MHZ
/*----------------------------------------------------------------------------
  Define SYSCLK
*----------------------------------------------------------------------------*/
#define __XTAL      (24000000UL)        //##  24MHZ External X'tal
#define __RTC_XTAL  (32768UL)
#define __IRC22M    (22118400UL)
#define __IRC10K    (10000UL)
#define __HSI       (__IRC22M)      /* Factory Default is internal 22MHz */

3. 請問NUC120RD2DN這款版本內部有提供PLL倍頻的功能嗎? 我從旁測試感覺PLLFOUT好似一直被Bypass的(SYSCLK->PLLCON.BP = 1)


...我再試試,謝謝
回复 支持 反对

使用道具

地板
admin 发表于 2021-6-25 13:48:08 | 只看该作者
PLL有作用的,请参考 SYS例程 ,不过例程使用的是12MHZ,但是方法是一样的,请参考下图的设置
牛卧堂
回复 支持 反对

使用道具 举报

5#
admin 发表于 2021-6-25 13:48:28 | 只看该作者

牛卧堂
回复 支持 反对

使用道具 举报

6#
匿名  发表于 2021-6-25 22:09:32

再試試,謝謝
回复 支持 反对

使用道具

7#
 楼主| Albert_Kuang 发表于 2021-6-26 23:33:45 | 只看该作者
問題找到了
我程式中的數值表示法錯誤,一直沒發現:
錯誤--> SYSCLK->CLKSEL0.HCLK_S = 0x010;         //  HCLK clock source = PLL clock
正確--> SYSCLK->CLKSEL0.HCLK_S = 0x2;            //  HCLK clock source = PLL clock

更正後,原來PLL蠻容易控制的

謝謝你的協助
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU