M487晶振从12MHz换成24MHz,软件中修改了晶振后,APROM程序正常,LDROM里的ISP程序卡死。
2022/09/07 15:55
更换外部晶振后,软件中需要相应的修改晶振的宏定义、HXTGAIN、PLL配置以及选择HXT作为时钟源的一些外设的时钟。APROM中PLL的配置是通过调用CLK_SetCoreClock函数根据HXT值计算后设置相关寄存器的。而LDROM里由于空间有限,是直接设置寄存器的,所以需要自己计算相关参数,再去修改寄存器。
ISP程序里修改HXT 24MHZ的步骤如下:
修改宏定义
#define __HXT (24000000UL) /*!< External Crystal Clock Frequency*/
配置HXTGAIN
CLK->PWRCTL |= CLK_PWRCTL_HIRCEN_Msk |
CLK_PWRCTL_HXTEN_Msk|
CLK_PWRCTL_HXTGAIN_Msk;
配置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));