華大單片機HC32L130使用內部RCH時鍾源倍頻24M外設PCLK到48M


最近使用HC32L130xxx單片機做項目,使用內部RCH做為主時鍾源,RCH時鍾源最高頻率為24M,但是可以通過倍頻PLL到48M,時鍾源示意圖如下圖所示。

 配置時鍾時注意事項

1、在配置時鍾源頻率時,不能配置當前正在用的時鍾源。比如當前正在使用RCH作為時鍾源,那么就不可更改RCH的時鍾源,如果要更改,需要將時鍾源切換到其他時鍾源上,比如切換到RLH。然后設置RCH,時鍾源切換完成后,時鍾源在切換到RCH。

2、當時鍾源HCLK大於24M,此處設置FLASH 讀等待周期為1 cycle(前面已經配置,此處無需重復配置),否則當切換時鍾源到PLL48M時鍾源時就會死機。

初始化程序如下所示。PCLK時鍾可以通過Sysctrl_GetPClkFreq()函數讀回,用以驗證時鍾是否設置正確。

  1.  
    void App_RCH24MHzToPll48MHz (void)
  2.  
    {
  3.  
    stc_sysctrl_pll_cfg_t stcPLLCfg;
  4.  
     
  5.  
     
  6.  
    ///<============== 將時鍾從RCH4MHz切換至RCH24MHz ==============================
  7.  
    ///< RCH時鍾不同頻率的切換,需要先將時鍾切換到RCL,設置好頻率后再切回RCH
  8.  
    Sysctrl_SetRCLTrim(SysctrlRclFreq32768);
  9.  
    Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
  10.  
    Sysctrl_SysClkSwitch(SysctrlClkRCL);
  11.  
     
  12.  
    ///< 加載目標頻率的RCH的TRIM值
  13.  
    Sysctrl_SetRCHTrim(SysctrlRchFreq24MHz);
  14.  
    ///< 使能RCH(默認打開,此處可不需要再次打開)
  15.  
    //Sysctrl_ClkSourceEnable(SysctrlClkRCH, TRUE);
  16.  
    ///< 時鍾切換到RCH
  17.  
    Sysctrl_SysClkSwitch(SysctrlClkRCH);
  18.  
    ///< 關閉RCL時鍾
  19.  
    Sysctrl_ClkSourceEnable(SysctrlClkRCL, FALSE);
  20.  
     
  21.  
     
  22.  
    ///< 注意十分重要 當前時鍾源HCLK大於24M:此處設置FLASH 讀等待周期為1 cycle(前面已經配置,此處無需重復配置)
  23.  
     
  24.  
    Flash_WaitCycle(FlashWaitCycle1);
  25.  
     
  26.  
    stcPLLCfg.enInFreq = SysctrlPllInFreq20_24MHz; //RCH 24MHz
  27.  
    stcPLLCfg.enOutFreq = SysctrlPllOutFreq36_48MHz; //PLL 輸出48MHz
  28.  
    stcPLLCfg.enPllClkSrc = SysctrlPllRch; //輸入時鍾源選擇RCH
  29.  
    stcPLLCfg.enPllMul = SysctrlPllMul2; //24MHz x 2 = 48MHz
  30.  
    Sysctrl_SetPLLFreq(&stcPLLCfg);
  31.  
    Sysctrl_SetPLLStableTime(SysctrlPllStableCycle16384);
  32.  
    Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);
  33.  
     
  34.  
    ///< 時鍾切換
  35.  
    Sysctrl_SysClkSwitch(SysctrlClkPLL);
  36.  
     
  37.  
    Sysctrl_GetPClkFreq(); //獲取PCLK時鍾頻率
  38.  
     
  39.  
     
  40.  
    }

 

debug在線調試讀取結果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM