打印
[综合信息]

L136使用外部晶振倍频到48M失败

[复制链接]
2817|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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等待时间,应该是没加这一步直接切时钟了。

使用特权

评论回复
5
yelong98|  楼主 | 2021-9-4 12:27 | 只看该作者
kensilong 发表于 2021-9-4 12:12
M0的产品,时钟超过24MHZ都要插入1个flash等待时间,应该是没加这一步直接切时钟了。 ...

这个是基本操作,没有漏掉

使用特权

评论回复
6
zhlqy65| | 2021-9-6 08:40 | 只看该作者
本帖最后由 zhlqy65 于 2021-9-6 08:43 编辑

应该是 设置的SYSTEM_XTH值和实际外部晶振值不一致,查一下define SYSTEM_XTH 是多少。

使用特权

评论回复
7
yelong98|  楼主 | 2021-9-7 10:49 | 只看该作者
zhlqy65 发表于 2021-9-6 08:40
应该是 设置的SYSTEM_XTH值和实际外部晶振值不一致,查一下define SYSTEM_XTH 是多少。 ...

老哥,就是你说的这个问题我查了两天都没解决,幸好得你指点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

108

帖子

0

粉丝