目录

  • PLL1和PLL1控制器
  • PLL2和PLL2控制器
  • CSL的使用

本文主要介绍TMS320C6455的时钟相关的内容,参考文档为:

  • SPRS276M - TMS320C6455 Fixed-Point Digital Signal Processor
  • SPRUE56 - TMS320C645x DSP Software-Programmable Phase-Locked Loop (PLL) Controller

  C6455有两个PLL,PLL1输出的时钟用于大部分外设,PLL2输出的时钟专门用于DDR2控制器和以太网媒体访问器(EMAC)。

PLL1和PLL1控制器

  PLL1相关的框图如下图所示。从框图上看,整个PLL1控制器是虚线框里的部分,包括一个预分频器、一个二选一的多路选择器和四个分频器,另外可以通过PLLM配置PLL1的倍频系数。

  SYSREFCLK就是系统的主频。
  SYSCLK2固定为主频的三分频,用于驱动Switched Central Resources(SCRs)、EDMA3、VCP2、TCP2和RapidIO,还有EMIFA和DDR2的数据总线。
  SYSCLK3固定为主频的六分频,主要用于驱动PCI、HPI、UTOPIA、McBSP、GPIO、TIMER和I2C外设。
  SYSCLK4的分频系数可以在一定范围内设置,主要作为EMIFA的内部时钟。
  SYSCLK5的分频系数也可以在一定范围内设置,主要用于在线仿真。
  系统复位之后PLL1控制寄存器中的PLLEN值为0,PLL1被旁路,因此复位后的系统时钟即为输入的时钟信号的频率。因此每次复位后都需要对PLL1重新进行配置,才可以保证系统工作在较高的工作频率。
  在调试过程中,因为我们只能对PLL的控制器进行操作,所以如果系统不掉电,PLL1的状态会保持前一次配置的结果。比如在第一次下板调试时,我对PLL1做了一次配置;而在不断电的情况下,我又重新载入新的程序,而不对PLL1做配置,那么PLL1还是会保持前一次程序中的设置结果。
  与之相关的寄存器配置也很简单,无非就是一些使能和倍频、分频系数的控制。设置完成后,通过PLLCMD寄存器中的GOCMD字段写入“1”来确认配置,当PLLSTAT寄存器中的GOSTAT字段变为“0”时,表示配置完成。

PLL2和PLL2控制器

  PLL2的结构比PLL1更加简单,下图就是PLL2的框图。别看图中有个多路选择器,其实仔细看会发现它的控制端始终是1,所以它的输出始终是来自PLL2产生的时钟。

  PLL2固定20倍频,然后输出再二分频,所以总共就是十倍频。参考时钟如果是25MHz,那么在系统复位后,送给DDR2控制器的时钟以及SYSREFCLK都是250MHz。
PLL2能够控制的就只是D1的分配系数,以及D1的使能。默认D1为二分频且上电就使能,用户可以通过PLLDIV1来修改,使其禁用或者改为五分频。

CSL的使用

  • CSL_pllcInit()没有什么实际的作用。
  • CSL_pllcOpen()用于指定具体要用的PLLc,PLL1的控制器或者PLL2的控制器。
  • CSL_pllcHwSetup()根据CSL_PllcHwSetup的配置结构体进行配置。
  • 然后用CSL_pllcGetHwStatus()查询GOSTAT,等待配置完成即可。

TMS320C6455入门实践(三)——PLL相关相关推荐

  1. TMS320C6455入门实践(六)——编写boot程序

    本文主要介绍C6455的二级boot的启动程序,参考文档为: SPRUEC6G - TMS320C645x/C647x DSP Bootloader User's Guide SPRU732J - T ...

  2. OWIN的理解和实践(三) –Middleware开发入门

    原文:OWIN的理解和实践(三) –Middleware开发入门 上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的M ...

  3. QT快速入门、三点求圆心实现详解

    在编程中,会经常用到数学计算,所以C++将常用的数学计算,例如求正余弦等,封装成函数(正是我们在3.2 数学计算中学习到的),我们只需要写入简单的语句就可以执行所需要的功能,这正是函数的意义.在这一章 ...

  4. 【转】推荐系统入门实践:世纪佳缘会员推荐(完整版)

    推荐系统入门实践:世纪佳缘会员推荐(完整版) 版本 作者 联系 日期 1.0 周巍然 weiran.chow@gmail.com 20120723 2.0 严 程 supersteven198701@ ...

  5. kubernetes 入门实践-搭建集群

    ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(一个人的真正伟大之处就在于他能够认识到自己的渺小 -- 保罗) ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤ 上一篇:kubernetes 入门实践-核心概念 下 ...

  6. Python与人工智能入门实践——简易人脸识别系统

    Python与人工智能入门实践--简易人脸识别系统 写在前面: 笔者在寒假期间进行了一些简短的实训,主要内容包括简单的爬虫和简单的人脸识别算法,由于时间有限,对于python也是第一次详细学习,功能较 ...

  7. 机器学习入门实践——线性回归模型(波士顿房价预测)

    机器学习入门实践--线性回归模型(波士顿房价预测) 一.背景介绍 给定一个大小为 n n n的数据集 { y i , x i 1 , . . . , x i d } i = 1 n {\{y_{i}, ...

  8. 爬虫入门实践之多线程爬虫

    有的爬重只需要单线程就可以完成,而有的爬虫可以拆分成多线程实现,能够提高爬虫效率.比如爬虫入门实践之爬取虎扑论坛帖子一文中,介绍使用的是用单线程实现的,首先在首页找出所有的url,然后遍历url,找出 ...

  9. 推荐系统入门(三):矩阵分解MF因子分解机FM(附代码)

    推荐系统入门(三):矩阵分解MF&因子分解机FM(附代码) 目录 推荐系统入门(三):矩阵分解MF&因子分解机FM(附代码) 一. 矩阵分解MF 1. 隐含语义分析技术 1.1 隐语义 ...

最新文章

  1. 重磅图书——PHP MySQL开发新圣经
  2. 机器学习高阶认识(一): 机器学习假设与迁移学习
  3. 程序员怎么样保证自己的程序没有BUG
  4. Android HAL 层,三个重要的结构体的源码~
  5. cesium html源码,Cesium源码的本地运行及调试
  6. python模块typing的作用
  7. 要认识流程管理的局限性
  8. linux创建分区_在Linux中创建分区-分步指南
  9. linux查看essbase进程,ESSBASE的使用及优化.doc
  10. c++11 线程的互斥量
  11. 推挽变压器与正激变压器的功率比较
  12. 苹果延长13英寸MacBook Pro背光维修计划
  13. 帮我起个名字,带淇,两个字的
  14. 体育技术机器学习金钱和灵感的圣杯
  15. setResulttransformer过期NativeQueryImpl,cannot be cast to org.hibernate.query.internal.NativeQueryImpl
  16. LeetCode70. 爬楼梯(Java解法——使用完全背包求解)
  17. 关于options请求的一点理解
  18. The requested contract was not found
  19. 有服务器可以远程连接电脑软件,支持远程控制电脑的工具有哪些?这几款软件值得一试!...
  20. reportlab教程1--第一个pdf生成

热门文章

  1. 计算机专业英语听力答案,计算机专业英语答案.doc
  2. 5.5 信号复归——一个强耦合模块的解耦过程
  3. 又在放大招!这个 Github 项目针对 Python 初学者!
  4. pandas数据分析给力教程【完整版】(一)
  5. 计算机应用基础office201,计算机应用基础试题及答案(填空题100道)
  6. Codeforces Round #723 (Rated for Div 2)
  7. webgl中加载模型要求以及优化方案
  8. 关于minio文件服务器的使用
  9. 第五十三讲 获取设备树属性
  10. IPC\DVS\DVR\NVR|XVR