DSP5509的时钟发生器(翻译总结自TI官方文档)
一、C5509时钟发生器的两个功能
1.将从CLKIN引脚输入的时钟信号变换为适当频率的CPU时钟,提供给CPU、外设和其他模块使用;
2.将CPU时钟通过可编程分频器输出到CLKOUT引脚。
时钟发生器内部有数字锁相环PLL(phase lock ring)和时钟模式寄存器(CLKMD)。
二、时钟发生器的工作模式
1.旁路模式Bypass Mode
时钟模式寄存器CLKMD中的PLL ENABLE位为0,此时锁相环(PLL)被禁用,输出时钟信号频率为输入时钟信号频率的一分频、二分频或者四分频。分频值由BYPASS DIV确定:
|
BYPASS DIV |
分频值 |
|
00 |
1 |
|
01 |
2 |
|
1X |
4 |
旁路模式下LOCK位为0。
2.锁定模式Lock Mode
时钟模式寄存器CLKMD中的PLL ENABLE位为1,此时锁相环(PLL)进入锁相程序,当PLL产生所需输出频率,并且输出时钟信号的相位被锁定在输入信号相位之后,时钟发生器进入锁定模式(Lock Mode)。在那之前,时钟发生器一直处于旁路模式(Bypass Mode)。
如果时钟发生器处于锁定模式,并且PLL需要重新进行相位锁定时 (IOB = 1 in CLKMD),时钟发生器会进入旁路模式直到相位被再次锁定为止。
输出时钟频率的计算:

PLL MULT:2~31
PLL DIV:0~3
最大时钟频率:31*input frequency
最小时钟频率:1/2*input frequency
此外锁定模式中遇到的相关寄存器位还包括:
IAI(initialize after idle):时钟发生器退出空闲模式时锁相环是否需要重启锁相程序。0:不重启;1:重启。
BREAKLN:指示锁相状态是否中断。0:已中断;1:已修复或向CLKMD写入了新值。
IOB(initialize on break):相位失锁时是否需要重新锁相。0:不需要;1:需要。
LOCK:锁定模式下该值为1。
3.空闲模式Idle(Low-Power) Mode
为了节省电量,可以通过加载Idle Configuration使时钟发生器进入空闲模式。空闲模式下,输出时钟停止,时钟保持在高电平。
如果进入空闲模式之前,时钟发生器为旁路模式,则在退出空闲模式之后,时钟发生器仍为旁路模式;如果进入空闲模式之前,时钟发生器为锁定模式,则在退出空闲模式之后,时钟发生器先进入旁路模式,进行重新锁相,再进入锁定模式。重新锁相的方式与IAI位有关。IAI=0:不重启锁相程序,使用之前的锁相设置进行锁相;IAI=1:重启锁相程序,适用于空闲模式下输入时钟改变或者可能改变的情况。
三、CLKOUT引脚和相关的分频器
时钟产生器产生的CPU时钟除了供CPU,外设和其他模块使用之外,还可以通过分频器传送给CLKOUT引脚。CLKOUT的频率值由系统寄存器SYSR中的CLKDIV位决定。

四、DSP复位过程中时钟发生器的情况
复位时(during reset):(此时复位信号保持为低电平)
1.时钟发生器处于旁路模式;
2.输出时钟频率由输入引脚CLKMD的电平决定。CLKMD为低电平时,输出时钟频率等于输入时钟频率;CLKMD为高电平时,输出时钟频率等于输入时钟频率的1/2。
复位后(after reset):(复位信号的上升沿)
时钟模式寄存器CLKMD的预设值由输入引脚CLKMD的电平决定。CLKMD为低电平时,时钟模式寄存器CLKMD的值为2002H;CLKMD为高电平时,时钟模式寄存器CLKMD的值为2006H。根据此值计算得知:复位之后时钟发生器也处于旁路模式,输出时钟频率也由输入引脚CLKMD的电平决定。
五、时钟模式寄存器CLKMD

六、使用方法和实例
利用库函数配置时钟发生器的方法:
1.在头文件中包含csl_pll.h文件;
2.声明PLL配置结构体:
PLL_Config Config_PLL={
1, //IAI
1, //IOB
6, //PLL MULT
0 //PLL DIV
};
3.运行配置函数:
PLL_config(&Config_PLL);
也可以通过函数设置PLL频率:PLL_setFreq(6,1);
DSP5509的时钟发生器(翻译总结自TI官方文档)的更多相关文章
- 如何使用CSL(翻译总结自TI官方文档)
为了使用CSL来进行编译和连接,必须先配置CCS开发环境. 1.指定目标设备 Project/options/complier/preprocessor,在define symbols中输入设备支持符 ...
- CSL概述(翻译总结自TI官方文档)
一.简单介绍 CSL是函数,宏和符号常数的集合,用来控制和配置片上外设.(Chip Support Library) 每一个外设都有自己对应的CSL模块.每个模块有自己的支持符,来表示对于给定的设备, ...
- 【翻译】Django Channels 官方文档 -- Tutorial
Django Channels 官方文档 https://channels.readthedocs.io/en/latest/index.html 前言: 最近课程设计需要用到 WebSocket,而 ...
- Google Android官方文档进程与线程(Processes and Threads)翻译
android的多线程在开发中已经有使用过了,想再系统地学习一下,找到了android的官方文档,介绍进程与线程的介绍,试着翻译一下. 原文地址:http://developer.android.co ...
- [转]Commons IO 官方文档
原文地址:http://ifeve.com/commons-io/ 本文翻译自 Commons IO 官方文档 译者:MagicWolf Common IO 是一个工具库,用来帮助开发IO功能 它包括 ...
- Spark官方文档 - 中文翻译
Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...
- Spark SQL 官方文档-中文翻译
Spark SQL 官方文档-中文翻译 Spark版本:Spark 1.5.2 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 Data ...
- 自己翻译 delegation 官方文档
什么是代理,知道怎么用,见过N次.会用代理传值,还不够.代理到底是用来干嘛的嘛?还是看看官方文档吧,自己翻译出来看看是不是通顺 代理: 代理是一个简单高效的模式,尤其是一个类在编程的过程中代表或者需要 ...
- Spring boot 1.3.5 RELEASE 官方文档中文翻译--目录
说明: 打算利用闲暇时候翻译一下Spring boot的官方文档,翻译的版本是1.3.5 RELEASE. 做这件事的目的呢有四: 国内中文的Spring boot资料实在不多,希望能给后来人一点小小 ...
随机推荐
- 11)Java abstract class 和 interface
abstract class 和 interface 的区别 含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象.含有abstract方法的类必须定义 ...
- opengl基础学习专题 (二) 点直线和多边形
题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...
- mybatis数据库基本配置包括数据源事物类型等
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- Spring IOC 方式结合TESTGN测试用例,测试简单java的命令模式
java命令模式: 可以命令("请求")封装成一个对象,一个命令对象通过在特定的接收着上绑定一组动作来封装一个请求.命令对象直接把执行动作和接收者包进对象中,只对外暴露出执行方法的 ...
- VMware共享目录设置
1.保证虚拟机中已经成功安装了 VMware Tools (非常关键) 2.打开VMware,并使虚拟机处于关机状态,然后请按图中箭头所示进行操作 这样就大功告成了,此时进入虚拟机, 执行命令 cd ...
- Android:简单实现ViewPager+TabHost+TabWidget实现导航栏导航和滑动切换
viewPager是v4包里的一个组件,可以实现滑动显示多个界面. android也为viewPager提供了一个adapter,此adapter最少要重写4个方法: public int getCo ...
- hdu 2034 人见人爱A-B
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2034 人见人爱A-B Description 参加过上个月月赛的同学一定还记得其中的一个最简单的题目, ...
- .net 面试问题 汇总
用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答: 从下至上分别为:数据访问层.业务逻辑层(又或成为领域层).表示层 数据访问层:有时候也称为是持久层,其 ...
- ios中怎么样设置drawRect方法中绘图的位置
其中drawRect方法中的参数rect就是用来设置位置的,
- python 删除list中重复元素
list = [1,1,3,4,6,3,7] 1. for s in list: if list.count(s) >1: list.remove(s) 2. list2=[] for s in ...