时钟与定时器包括
时钟产生器、通用定时器、实时时钟以及看门狗定时器等。
时钟产生器的功能是产生CPU的工作时钟,并提供CLKOUT时钟输出;通用定时器、实时时钟及看门狗定时器的功能是通过计数器为系统提供定时时钟和年、月、日、时、分、秒等时钟信号,以及监控系统正常运行的看门狗时钟,并能发出相应中断。
1 . 时钟发生器
1.1 时钟模式寄存器 CLKMD
时钟发生器可以从CLKIN引脚接收输入的时钟,将其变换为CPU及其外设所需要的工作时钟,工作时钟经过分频也能够通过引脚CLKOUT输出,供其他器件使用,如图1所示。时钟发生器内有一个数字锁相环(Digital Phase Lock Loop,DPLL)和一个时钟模式寄存器(CLKMD)。时钟模式寄存器用于控制时钟发生器的工作状态
在时钟模式寄存器中的
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 使用方法:
2
.
DSP
复位
通过对时钟模式寄存器的操作,可以根据需要设定时钟发生器的
工作模式和输出频率,在设置过程中除了工作模式、分频值和倍
频值以外,还要注意其他因素对
PLL
的影响。
1
.省电(
IDLE
)
为了节省功耗,可以使时钟发生器处于省电状态,当时钟发生器退出省电状态时,
PLL
自动切换到旁路模式,进行跟踪锁定,锁定后返回
到锁定模式,
时钟模式寄存器中与省电有关的位是
IAI
。
在
DSP
复位期间和复位之后,
PLL
工作于旁路模式,输出的
时钟频率由
CLKMD
引脚上的电平确定。
3
.失锁
如果
CLKMD
引脚为低电平,输出频率等于输入频率;
如果
CLKMD
引脚为高电平,输出频率等于输入频率的一半。
锁相环对输入时钟跟踪锁定之后,由于其他原因使其输出时
钟发生偏移,即失锁。出现失锁现象后,
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
信号,查看锁相环是否正
常工作。