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资料实在不多,希望能给后来人一点小小 ...
随机推荐
- phpStorm使用技巧及快捷键
下面是PhpStorm的注册码.Key,其license由用户名和License值组成. User name: EMBRACE License key: ===== LICENSE BEGIN === ...
- 小木棍 (codevs 3498)题解
[问题描述] 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过100. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长 ...
- 消息队列之RabbitMQ
参考教程: http://www.rabbitmq.com/getstarted.html http://www.cnblogs.com/shanyou/p/4067250.html http://w ...
- jQuery学习笔记(2)
val() 当鼠标放上去的时候,文本消失,鼠标拿开,文本恢复 效果图: code as below: <html xmlns="http://www.w3.org/1999/xhtml ...
- Learning Scrapy笔记(六)- Scrapy处理JSON API和AJAX页面
摘要:介绍了使用Scrapy处理JSON API和AJAX页面的方法 有时候,你会发现你要爬取的页面并不存在HTML源码,譬如,在浏览器打开http://localhost:9312/static/, ...
- SQLAlchemy连接数据库并在django admin显示
SQLAlchemy 0.7 postgersql 9.0 SQLAlchemy连接数据库有两种方法,一种是classic,一种是modern 1,modern方法 from sqlalch ...
- IOS笔记 : addChildViewController
一下addChildViewController,一个ViewController可以添加多个子ViewController,但是这 些子ViewController只有一个是显示到父视图中的,可以通 ...
- WPF工作笔记:本地化支持、主进程通知、两种最常用异步编程方式
1.本地化支持 (1)重写控件默认的依赖属性LanguageProperty FrameworkElement.LanguageProperty.OverrideMetadata( typeof(Fr ...
- [转]pro*c/c++编译错误 ” error: sqlca.h: No such file or directory “ 的解决办法
$ gcc -o test test.c 出现错误:error: sqlca.h: No such file or directory [解决方法]知道 sqlca.h 在 $ORACLE_HOME/ ...
- EMVTag系列4《5A 应用主账号》
L:var.最大10 -M(必备):此数据应存在并提供给终端,终端在读应用数据过程中,如果没有读到必备数据,终端中止交易:等同磁条上的应用主帐户. 银行卡号一般是16位或者19位.由如下三部分构成: ...