DSP之时钟与定时器之一时钟发生器

    时钟与定时器包括 时钟产生器、通用定时器、实时时钟以及看门狗定时器等。
    时钟产生器的功能是产生CPU的工作时钟,并提供CLKOUT时钟输出;通用定时器、实时时钟及看门狗定时器的功能是通过计数器为系统提供定时时钟和年、月、日、时、分、秒等时钟信号,以及监控系统正常运行的看门狗时钟,并能发出相应中断。
    1 . 时钟发生器
     1.1 时钟模式寄存器 CLKMD
           时钟发生器可以从CLKIN引脚接收输入的时钟,将其变换为CPU及其外设所需要的工作时钟,工作时钟经过分频也能够通过引脚CLKOUT输出,供其他器件使用,如图1所示。时钟发生器内有一个数字锁相环(Digital Phase Lock LoopDPLL)和一个时钟模式寄存器(CLKMD)。时钟模式寄存器用于控制时钟发生器的工作状态
DSP之时钟与定时器之一时钟发生器_第1张图片
在时钟模式寄存器中的 PLL ENABLE 位控制 PLL 的两种工作模式
1 .旁路模式( BYPASS
如果 PLL ENABLE=0 PLL 工作于旁路模式, PLL 对输入时钟信号进行分频,分频值由 BYPASS DIV 确定:       
        如果 BYPASS DIV=00 ,输出时钟信号的频率与输入信号的频率 相同,即一分频。
        如果 BYPASS DIV=01 ,输出时钟信号的频率是输入信号频率一 半,即二分频。
        如果 BYPASS DIV=1x ,输出时钟信号的频率是输入信号频率 1/4 ,即四分频。
2 .锁定模式( LOCK
如果 PLL ENABLE=1 PLL 工作于锁定模式,输出的时钟频率由 下面公式确定:
         输入时钟即可乘以或者除以一个系数来获得期望的输出频率,并且输出时钟相位与输入信号锁定。
 
为了降低功耗,时钟发生器也有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
2 DSP 复位
        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_setFreq 6, 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 信号,查看锁相环是否正 常工作。

你可能感兴趣的:(工作,div)