[综合信息] L136使用外部晶振倍频到48M失败

[复制链接]
 楼主| yelong98 发表于 2021-9-2 16:39 | 显示全部楼层 |阅读模式
测试过标准库和lite库,外挂16M和24M晶振都试过,使用外部晶振作为pll时钟源,然后倍频到48M都会卡死,何解?参考demo的switch那个例子,切换到pll代码如下:
    stcPLLCfg.enInFreq    = SysctrlPllInFreq20_24MHz;   //RCH 24MHz
    stcPLLCfg.enOutFreq   = SysctrlPllOutFreq36_48MHz;  //PLL 输出48MHz
    stcPLLCfg.enPllClkSrc = SysctrlPllXthXtal;              //输入时钟源选择RCH
    stcPLLCfg.enPllMul    = SysctrlPllMul2;             //24MHz x 2 = 48MHz
    Sysctrl_SetPLLFreq(&stcPLLCfg);
    Sysctrl_SetPLLStableTime(SysctrlPllStableCycle16384);
    Sysctrl_ClkSourceEnable(SysctrlClkPLL, TRUE);
   
    ///< 时钟切换
    Sysctrl_SysClkSwitch(SysctrlClkPLL);
watermellon 发表于 2021-9-3 13:27 | 显示全部楼层
参考从RCH24Mhz切换到XTH32MHz的函数,先把外部时钟配置好
 楼主| yelong98 发表于 2021-9-3 19:52 来自手机 | 显示全部楼层
watermellon 发表于 2021-9-3 13:27
参考从RCH24Mhz切换到XTH32MHz的函数,先把外部时钟配置好

外部时钟工作正常,示波器测量晶振也频率正常,但是pll选外部时钟做时钟源就不能工作了,
pll用内部rch做源也是ok的
kensilong 发表于 2021-9-4 12:12 | 显示全部楼层
M0的产品,时钟超过24MHZ都要插入1个flash等待时间,应该是没加这一步直接切时钟了。
 楼主| yelong98 发表于 2021-9-4 12:27 | 显示全部楼层
kensilong 发表于 2021-9-4 12:12
M0的产品,时钟超过24MHZ都要插入1个flash等待时间,应该是没加这一步直接切时钟了。 ...

这个是基本操作,没有漏掉
zhlqy65 发表于 2021-9-6 08:40 | 显示全部楼层
本帖最后由 zhlqy65 于 2021-9-6 08:43 编辑

应该是 设置的SYSTEM_XTH值和实际外部晶振值不一致,查一下define SYSTEM_XTH 是多少。
 楼主| yelong98 发表于 2021-9-7 10:49 来自手机 | 显示全部楼层
zhlqy65 发表于 2021-9-6 08:40
应该是 设置的SYSTEM_XTH值和实际外部晶振值不一致,查一下define SYSTEM_XTH 是多少。 ...

老哥,就是你说的这个问题我查了两天都没解决,幸好得你指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

108

帖子

0

粉丝
快速回复 返回顶部 返回列表