您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [讨论] 关于BF518的PLL设置?
本帖共有806个阅读者
发表帖子 发表投票 回复主题
[讨论] 关于BF518的PLL设置?
szrong3000(论坛新手)
szrong3000
头衔:社区公民
帮派:无帮无派
帖数:22
金钱:305
积分:27
注册时间:2012/1/10
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[讨论] 关于BF518的PLL设置?

在 BF518安装样例中,一般使用init_PLL()来初始化PLL,但我现在想用set_PLL()来设置,但效果不一样?

两个函数代码如下。希望高手指点一下其差别???

/*******************************************************************
*   Function:    Init_PLL
*   Description: initializes the PLL registers
*******************************************************************/
void Init_PLL(void)
{
u32 SIC_IWR1_reg;                /* backup SIC_IWR1 register */

/* use Blackfin ROM SysControl() to change the PLL */
    ADI_SYSCTRL_VALUES sysctrl ={ VRCTL_VALUE,//0x0000
         PLLCTL_VALUE,//0x2000 /* (25MHz CLKIN x (MSEL=16))::CCLK = 400MHz */
         PLLDIV_VALUE,//0x0005   /* (400MHz/(SSEL=5))::SCLK = 80MHz */
         PLLLOCKCNT_VALUE,//0x0000
         PLLSTAT_VALUE };//0x0000

SIC_IWR1_reg = *pSIC_IWR1;    

*pSIC_IWR1 = 0;      

/* use the ROM function */
bfrom_SysControl( SYSCTRL_WRITE | SYSCTRL_PLLCTL | SYSCTRL_PLLDIV, &sysctrl, NULL);

*pSIC_IWR1 = SIC_IWR1_reg;    /* restore SIC_IWR1 due to anomaly 05-00-0432 */

}

而我们一般使用 的set_PLL()是:

void Set_PLL(int pmsel,int pssel)

{
int new_PLL_CTL;
*pPLL_DIV = pssel;
asm("ssync;");
new_PLL_CTL = (pmsel & 0x3f) << 9;  
*pSIC_IWR |= 0xffffffff;
if (new_PLL_CTL != *pPLL_CTL)
{
  *pPLL_CTL = new_PLL_CTL;
  asm("ssync;");
  asm("idle;");
}
}





blackfine 的初学者~~
等级:论坛新手 参考IP地址:*.*.*.*
2012/5/18 11:53:11
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

我没仔细看过ADI给的那个函数,你可以这样:

打开VDSP中PLL的寄存器,然后分别运行两个函数,看看配置寄存器值的差异,然后通过帮助文件来查看差异的含义。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/5/18 11:59:44
zoubinbin(论坛新手)
zoubinbin
头衔:社区公民
帮派:无帮无派
帖数:7
金钱:130
积分:6
注册时间:2012/7/12
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

我在506上用的bfrom_SysControl()可行,但是将Set_PLL拷入,居然提示进入security mode。。。。。。正在解决中,谢谢andy关于ssync的回答


佛怕因 人怕果 而不如不见
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/21 9:57:51
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你配置完PLL有没有执行   asm("idle;");  


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/21 20:40:14
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154013 Call, 1 Queries, Processed in 0.015625 second(s),