您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> BF518的PLL详解
本帖共有806个阅读者
发表帖子 发表投票 回复主题
BF518的PLL详解
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF518的PLL详解

PLL(Phase Locked Loop)是ADSP-BF51x 的内核和时钟设置的机制,叫做锁相环。通过PLL 配置当前处理器工作的内核和系统时钟。

PLL 机制如图:

上传的图片
  2012658511578.jpg [ 23.16 KB 753×338 ] (缩略时请点击查看原图)

 

输入时钟送给 ADSP-BF51x 后,通过DF 设置是否对输入时钟分频,然后将根据MSEL 的值对时钟进行倍频,倍频后将时钟送给VCO,由VCO 根据设置的分频系数,分出内核时钟和系统时

上传的图片
  2012658521178.jpg [ 20.49 KB 488×304 ] (缩略时请点击查看原图)

 

MSEL 占用6Bit,最大可设置64 倍倍频。通常情况下,该倍频频率不要超过芯片允许的最大频率。

上传的图片
  201265853978.jpg [ 27.65 KB 744×264 ] (缩略时请点击查看原图)

 

内核时钟分频系数占 2Bit,最大可设置8 倍分频,当为00 时,内核时钟等于VCO 时钟。设置的内核时钟不要超过芯片允许的最高频率。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/5 8:53:38
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

上传的图片
  2012658542078.jpg [ 47.44 KB 740×438 ] (缩略时请点击查看原图)

 

系统时钟分频系数占 4bit,最大进行15 倍的分频。设置的系统时钟不要超过100MHz。

接口寄存器说明

PLL_DIV :PLL分频寄存器,设置系统时钟和内核时钟分频系数
PLL_CTL :PLL控制寄存器,设置VCO 倍频系数和一些控制开关
PLL_STAT :PLL状态寄存器,获取芯片当前工作的状态
PLL_LOCKCNT :PLL 计数器,用于设置计数时钟

源码分析

*pPLL_DIV = pssel; //设置系统时钟分频系数,内核不做分频
  asm("ssync;"); //系统同步
  new_PLL_CTL = (pmsel & 0x3f) << 9; //将VCO 倍频系数移位至需设置的位置
  *pSIC_IWR |= 0xffffffff; //将系统中断唤醒使能
  if (new_PLL_CTL != *pPLL_CTL) //判断是否已经配置过倍频系数
{
  *pPLL_CTL = new_PLL_CTL; //配置倍频系数
  asm("ssync;"); //系统同步
  asm("idle;"); //将处理器设置为空闲
}

配置完PLL 后,系统必须将系统设置为空闲后,系统再一次唤醒后,设置的值才会生效。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/5 8:57:38
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

源码下载

上传的附件
   201265859978.rar [ 796.11 KB ]

代码实现功能

代码实现了将内核时钟配置为 16 倍倍频,将系统时钟配置为4 倍分频。板卡上输入时钟为25MHz,所以VCO时钟配置后为25*16 =400MHz,内核时钟没有做分频,所以内核时钟等于VCO 时钟,也为400MHz,系统时钟为400/4=100MHz。

运行结果

运行代码后,处理器的内核时钟会运行在 400MHz,系统时钟运行在100MHz。


我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/5 9:00:10
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159047 Call, 1 Queries, Processed in 0.015625 second(s),