打印

28033的PLL时钟设置问题求教

[复制链接]
1144|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fengyefeng|  楼主 | 2014-1-6 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在PLL初始化函数里有这么一段:
// If switching to 1/2
    if((divsel == 1)||(divsel == 2))
    {
        EALLOW;
        SysCtrlRegs.PLLSTS.bit.DIVSEL = divsel;
        EDIS;
    }

    // If switching to 1/1
    // * First go to 1/2 and let the power settle
    //   The time required will depend on the system, this is only an example
    // * Then switch to 1/1
    if(divsel == 3)
    {
        EALLOW;
        SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;
        DELAY_US(50L);
        SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;
        EDIS;
    }
可是在PLL设置表30里的描述却是:DIVSEL=0或1,DIVSEL=2,DIVSEL=3,怎么回事呀?
另外上面函数中 SysCtrlRegs.PLLSTS.bit.DIVSEL = 2;然后又SysCtrlRegs.PLLSTS.bit.DIVSEL = 3;我糊涂了,求教指导

相关帖子

沙发
zhangmangui| | 2014-1-6 23:18 | 只看该作者
我个人的认识:
表里的描述是对的  DIVSEL=0或1都表示不分频
代码也是对的吧  DIVSEL最小肯定是1  即使等于2  也是从1升到2   或从3降到2
变化1
如果DIVSEL=3   如果从1直接升到3   频率跳变就到   带来了电源等的不稳定
然后先升到2   再升到3
我觉得影响不大吧   你可以试试 直接幅值
但是延时是有必要的   稳定时钟

使用特权

评论回复
板凳
fengyefeng|  楼主 | 2014-1-7 08:42 | 只看该作者
呵呵,谢谢你的回答,我试试

使用特权

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

本版积分规则

21

主题

87

帖子

1

粉丝