时钟与定时器包括时钟产生器、通用定时器、实时时钟以及看门狗定时器等。
时钟产生器的功能是产生CPU的工作时钟,并提供CLKOUT时钟输出;通用定时器、实时时钟及看门狗定时器的功能是通过计数器为系统提供定时时钟和年、月、日、时、分、秒等时钟信号,以及监控系统正常运行的看门狗时钟,并能发出相应中断。
    1 . 时钟发生器
     1.1 时钟模式寄存器 CLKMD
           时钟发生器可以从CLKIN引脚接收输入的时钟,将其变换为CPU及其外设所需要的工作时钟,工作时钟经过分频也能够通过引脚CLKOUT输出,供其他器件使用,如图1所示。时钟发生器内有一个数字锁相环(Digital Phase Lock LoopDPLL)和一个时钟模式寄存器(CLKMD)。时钟模式寄存器用于控制时钟发生器的工作状态
在时钟模式寄存器中的PLL ENABLE位控制PLL的两种工作模式
1.旁路模式(BYPASS
如果PLL ENABLE=0PLL工作于旁路模式,PLL对输入时钟信号进行分频,分频值由BYPASS DIV确定:       

        如果BYPASS DIV=00,输出时钟信号的频率与输入信号的频率相同,即一分频。
        如果BYPASS DIV=01,输出时钟信号的频率是输入信号频率一半,即二分频。
        如果BYPASS DIV=1x,输出时钟信号的频率是输入信号频率1/4,即四分频。
2.锁定模式(LOCK
如果PLL ENABLE=1PLL工作于锁定模式,输出的时钟频率由下面公式确定:
输入时钟即可乘以或者除以一个系数来获得期望的输出频率,并且输出时钟相位与输入信号锁定。
为了降低功耗,时钟发生器也有Idle模式,可以通过关闭CLKGEN Idle模块,使时钟发生器工作在Idle模式。
1.2 CLKOUT引脚
CPU时钟也可以通过一个时钟分频器提供CLKOUT信号,CLKOUT的频率由系统寄存器(SYSR)中的CLKDIV确定:

如果CLKDIV=000b CLKOUT的频率等于CPU时钟的频率。
如果CLKDIV=001b CLKOUT的频率等于CPU时钟的频率的1/2
如果CLKDIV=010b CLKOUT的频率等于CPU时钟的频率的1/3
如果CLKDIV=011b CLKOUT的频率等于CPU时钟的频率的1/4
如果CLKDIV=100b CLKOUT的频率等于CPU时钟的频率的1/5
如果CLKDIV=101b CLKOUT的频率等于CPU时钟的频率的1/6
如果CLKDIV=110b CLKOUT的频率等于CPU时钟的频率的1/7
如果CLKDIV=111b CLKOUT的频率等于CPU时钟的频率的1/8

1.3 使用方法:

通过对时钟模式寄存器的操作,可以根据需要设定时钟发生器的工作模式和输出频率,在设置过程中除了工作模式、分频值和倍频值以外,还要注意其他因素对PLL的影响。
1.省电(IDLE
为了节省功耗,可以使时钟发生器处于省电状态,当时钟发生器退出省电状态时,PLL自动切换到旁路模式,进行跟踪锁定,锁定后返回到锁定模式,
时钟模式寄存器中与省电有关的位是IAI

2DSP复位

        DSP复位期间和复位之后,PLL工作于旁路模式,输出的时钟频率由CLKMD引脚上的电平确定。

如果CLKMD引脚为低电平,输出频率等于输入频率;
如果CLKMD引脚为高电平,输出频率等于输入频率的一半。

3.失锁

        锁相环对输入时钟跟踪锁定之后,由于其他原因使其输出时钟发生偏移,即失锁。出现失锁现象后,PLL的动作由时钟模式寄存器中的IOB确定
 
调用时钟发生器库函数首先要在头文件中包含csl_pll.h文件,接下来介绍利用库函数配置时钟发生器的方法。
        首先要声明PLL配置结构,具体声明如下:
PLL_Config Config_PLL = {
1, /*iai 休眠后重新锁相 */
1, /*iob 失锁后进入旁路模式并重新锁相 */
6, /*pllmult   CLKIN * pllmult = DSP主时钟*/
0   /*div   CLKOUT= DSP主时钟/div+1 */
};
        之后运行配置函数:
PLL_config&Config_PLL;
        也可以通过函数设置PLL频率:
       PLL_setFreq6, 1;
         通过PLL_setFreq函数可以复位PLL锁相环,并改变倍频和分频数从而得到所需的频率。
 
1.4 时钟发生器的调试
时钟发生器所产生的DSP工作时钟,如果时钟产生器没有正常工作,DSP将无法正常运行,而调试DSP也是不可能的。
        调试时钟发生器应遵循以下步骤:
      1)检查DSP的时钟输入引脚CLKIN、时钟输出引脚CLKOUT和时钟模式引脚CLKMD连接是否正确,正常情况下CLKIN应接时钟源,而CLKMD应拉高或降低,
CLKOUT应是信号输出引脚。
      2)系统加电后测量CLKIN引脚时钟输入是否正常,信号的高低电平及占空比是否满足需要。
      3)在没有进行软件设置的情况下,DSP在复位后CLKOUT的输出直接受CLKMD控制,当CLKMD为高,CLKOUT的输出频率将等于CLKIN的频率,CLKMD为低,
CLKOUT输出将等于CLKIN的频率的1/2
      4)如果以上步骤运行正常,则利用软件设置CLKMD寄存器,使时钟产生器工作于PLL锁相环模式下,此时再检测CLKOUT信号,查看锁相环是否正常工作。

DSP之时钟与定时器之一时钟发生器相关推荐

  1. DSP之时钟与定时器之四看门狗定时器

    1 工作方式                在数字信号处理器的工作过程中有时会发生一些异常情况,这可能是在软件执行时发生错误,如堆栈溢出.内存溢出等软件编写时没有预料到的错误,也可能是DSP在运行时受 ...

  2. DSP之时钟与定时器之三RTC

    实时时钟RTC提供一个时间基准,并且可以定时中断DSP. 1. 实时时钟RTC概述 TMS320VC5509实时时钟有如下功能: 可以到2099年的长达100年的日历: 同DSP内部CPU连接的外设总 ...

  3. DSP学习笔记之系统时钟、定时器、GPIO篇

    \qquad写在前面,不管是C51.MSP430.32也好,DSP也好,总要有一个掌握的比较熟练,不能每次都复制粘贴别人的代码然后修修补补吧.不要再做Ctrl +C.Ctrl+V工程师.主要参考来自于 ...

  4. 使用 FlipClock.js 制作精美的时钟、定时器和倒计时功能

    FlipClock.js 被创建出来是因为其他的解决方案不够抽象,不能够在不重写的代码的情况下提供了深层次的自定义.有些库的参数过多,而另外一些则是脚本中的硬编码太多,不够灵活. 在参考许多现有的解决 ...

  5. zigbee 协议栈的时钟和定时器分频

    系统时钟和定时器节拍时钟 设置寄存器 tickspd用于产生timer1 ,3,4的基本节拍,最大可以是32MHZ 此时定时器加1的所需事件最短,为1/32 us  定时器除了tickspd的分频,还 ...

  6. 西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍

    西门子PCS7系统NTP网络时钟同步(NTP时钟发生器)介绍 HR-901GB时钟服务器由安徽京准科技研制开发, 西门子PCS7系统时钟同步模式介绍 PCS7系统基于TIA构建方式,在整个系统下包含了 ...

  7. POSIX标准总体分析 执行调度 消息传递 调度参数 进程调度函数 关闭消息队列 得到消息队列参数 设置调度参数 时钟和定时器  时钟和定时器函数 消息传递函数 打开消息队列 设置消息队列参数

    粉丝不过w 调度参数 一个调度参数结构 sched_param 包括了调度策略所支持的执行者所需要的调度参数,它在头文件<sched.h>中定义 执行者可根据规对该结构进行扩展 调度策略 ...

  8. DSP之时钟与定时器之二通用定时器

    C55x DSP片内有两个2通用定时器,利用定时器可向CPU产生周期性中断或向DSP片外的器件提供周期信号.其中TMS320VC5503/5507/5509/5510 DSP提供的是2个20位通用定时 ...

  9. linux内核定时唤醒,Linux内核时钟与定时器的实现

    五.好大一棵树:高精度定时器的实现 在低精度下,级联方式管理的定时 器非常地高效,每一次时钟中断,只需要判断第一组下的表项(index = base->timer_jiffies & 2 ...

最新文章

  1. 第60天:js常用访问CSS属性的方法
  2. http头部信息解析
  3. 安装OpenResty,实现分发层、应用层nginx+lua开发(附加问题:bad argument #2 to ‘set_keepalive‘ (number expected, got nil)
  4. 二叉树的深度优先遍历与广度优先遍历 [ C++ 实现 ]
  5. 元组-元组和格式化字符串
  6. java开发常用jar包_Java开发中常用jar包整理及使用
  7. 【转载】LinkedHashMap和HashMap区别
  8. Linux中如何让进程(或正在运行的程序)到后台运行?[zz]
  9. 列表解析python_Python 列表解析
  10. cocos2dx[3.2](11)——新回调函数std::bind
  11. linux第五周微职位
  12. 断言(Assert)与异常(Exception)
  13. 30天敏捷生活(7):生成行动计划
  14. Safari/Chrome浏览器打不开淘宝/天猫网页怎么办?
  15. php多级审核,BOS单据多级审核需在单据头上列示多个审核人员的处理方法
  16. Hyperledger Fabric 实战(八):couchdb 丰富查询 selector 语法
  17. 历年计算机二级考试Java真题 JAVA笔试试题及答案(部分套题)
  18. matlab傅里叶光学仿真,关于微透镜阵列的傅里叶光学分析
  19. 360浏览器的html在哪里,360浏览器收藏夹路径在哪里
  20. 怀疑chinaitlab的一个Linux模块被黑了!!

热门文章

  1. ssh X11 Forwarding(本地共享远程服务器界面)
  2. Android系统信息获取 之十三:Linux内核版本信息获取
  3. Android常用权限permission列表摘录
  4. 非均匀采样的kalman滤波
  5. linux shell locate,shell学习之locate和find命令
  6. mysql执行程序_Sql在Mysql的执行
  7. 接收二进制数据_漫话TCP/IP:数据链路层-以太网(1)
  8. ❤️和广告说再见,将“沉浸式阅读”进行到底❤️
  9. linux pkill窗口,在Linux系统中pkill命令的基础,附pkill命令的使用示例
  10. vue封装echarts示例