【M487】晶振从12MHz换成24MHz,软件中修改了晶振后,LDROM里的ISP程序卡死。

chrishu |浏览350次
收藏|2022/09/07 11:40

M487晶振从12MHz换成24MHz,软件中修改了晶振后,APROM程序正常,LDROM里的ISP程序卡死。

满意回答

2022/09/07 15:55

更换外部晶振后,软件中需要相应的修改晶振的宏定义、HXTGAIN、PLL配置以及选择HXT作为时钟源的一些外设的时钟。APROM中PLL的配置是通过调用CLK_SetCoreClock函数根据HXT值计算后设置相关寄存器的。而LDROM里由于空间有限,是直接设置寄存器的,所以需要自己计算相关参数,再去修改寄存器。

ISP程序里修改HXT 24MHZ的步骤如下:

  1. 修改宏定义

    #define __HXT   (24000000UL)    /*!< External Crystal Clock Frequency*/

  2. 配置HXTGAIN

    CLK->PWRCTL |= CLK_PWRCTL_HIRCEN_Msk |

     CLK_PWRCTL_HXTEN_Msk|

    CLK_PWRCTL_HXTGAIN_Msk;

  3. 配置PLL

/* Set core clock as PLL_CLOCK from PLL */

CLK->PLLCTL = CLK_PLLCTL_PLLSRC_HXT | ((2 - 1UL) << 14) | ((3 - 1UL) << 9) | (0x18 - 2UL);//CLK_PLLCTL_192MHz_HXT;

while (!(CLK->STATUS & CLK_STATUS_PLLSTB_Msk));

nuvoton2022

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