28033的PLL时钟设置问题求教

2019-08-04 18:00发布

在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;我糊涂了,求教指导
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
zhangmangui
1楼-- · 2019-08-04 23:48
我个人的认识:
表里的描述是对的  DIVSEL=0或1都表示不分频
代码也是对的吧  DIVSEL最小肯定是1  即使等于2  也是从1升到2   或从3降到2
变化1
如果DIVSEL=3   如果从1直接升到3   频率跳变就到   带来了电源等的不稳定
然后先升到2   再升到3
我觉得影响不大吧   你可以试试 直接幅值
但是延时是有必要的   稳定时钟
fengyefeng
2楼-- · 2019-08-05 04:55
 精彩回答 2  元偷偷看……

一周热门 更多>