资源描述:
《轻松学会dsp——第9章-定时器和时钟说课讲解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、轻松学会DSP——第9章-定时器和时钟它有3个存储器映象寄存器:TIM、PRD和TCR。这3个寄存器在数据存储器中的地址及其说明如下表所示(C5402)。控制定时器的寄存器Timer0地址Timer1地址寄存器说明0024H0030HTIM定时器寄存器,每计数一次自动减10025H0031HPRD定时器周期寄存器,当TIM减为0后,CPU自动将PRD的值装入TIM0026H0032HTCR定时器控制寄存器,包含定时器的控制和状态位(1)TIM定时器计数寄存器,每计数一次,TIM的值减一,但是,并不是
2、来一个时钟,就减一次。是16bit的一个寄存器,无符号的一个寄存器,最大的初始值是FFFFh。(2)PRD计数器周期寄存器,当TIM减为0后,CPU将自动把PRD的值装入TIM。PRD的物理属性同TIM是一样的。(3)TCR3、定时器的启动启动编程:设置TCR,使得TSS=1,停止定时器;设置PRD;打开定时器中断,包括FIR,IMR,INTM;设置TCR中的TDDR;设置TCR中的TRB=1,复位TIM和PSC;设置TCR中的TSS=0,启动定时器;二、数字振荡器及其实现1、定时器的中断频率2、数
3、字振荡器-原理数字振荡器就是单位冲击响应为正弦序列的离散系统其中A=2cosωT,B=-1,C=sinωT差分方程当x[k]为单位冲击信号时,假定初始条件为03、设计实例设DSP主频为80MHz,设计一个输出1kHz,采样频率为10kHz的数字振荡器。定时器计数器初值为80M/10k-1=7999为了将系数A和B转换到带符号整型格式,可以将它们除2,计算结果再乘2。程序举例;定时器控制ORM#0C10h,TCR;Soft=1,Free=1,TSS=1STM#PERIOD-1,PRDANDM#0010
4、h,TCR;TDDR=0ORM#0020h,TCR;TRB=1STM#0FFFFh,IFR;清除所有中断ORM#8h,IMR;打开时钟中断RSBXINTM;开中断ANDM#0FFEFh,TCR;TSS=0,启动时钟Y2.word079BChY1.word04B3ChCA.set0678EhCB.set0C000h………;时钟中断处理y=Y1*CB+Y2*CAtimer:MPYY1,#CB,A;A=Y1*CBLTDY2,Y1;T=Y2,Y2复制到Y1MAC#CA,A;A=A+T*CASTHA,1,Y2
5、;Y2=A*2RETE三、时钟发生器1、时钟来源外部时钟通过X2/CLKIN输入;内部振荡电路配合外部晶体,即X1和X2/CLKIN管脚2、PLL电路硬件配置PLL软件可编程PLL硬件配置PLL用于C541、C542、C543、C545和C546芯片。所谓硬件配置PLL,就是通过C54x的3个引脚CLKMD1、CLKMD2和CLKMD3的状态,选定时钟方式,如表所示。由表可见,不用PLL时,CPU的时钟频率等于晶体振荡器频率或外部时钟频率的一半;若用PLL,CPU的时钟频率等于晶体振荡器频率或外部时
6、钟频率乘以系数N(PLLN),使用PLL可以使用比CPU时钟低的外部时钟信号,以减少高速开关时钟所造成的高频噪声。时钟方式的配置软件可编程PLL541B,545A,546A,548,549,5402,5410,5420配置的是软件可编程PLL;CPU时钟复位时通过配置管脚CLKMD1,CLKMD2,CLKMD3,确定CLKMD寄存器来对时钟源分频和倍频;复位后则是通过修改CLKMD寄存器来实现对时钟源的分频和倍频。通过软件编程,可以选用以下两种时钟方式:PLL方式,其比例系数共31种。靠锁相环电路
7、完成;分频(DIV)方式,其比例系数为1/2和1/4,在此方式下,片内PLL电路不工作以降低功耗。时钟模式寄存器(CLKMD)复位时的工作模式软件编程PLL系统复位启动后,需要通过对寄存器CLKMD的设置来改变CPU工作时钟CLKMD中设置选择何种工作模式,选择分频和倍频的系数;PLLDIV,PLLMUL,PLLNDIV:联合控制DIV和PLL模式的系数;PLLCOUNT:从未锁定状态进入PLL模式时的锁定时间,未锁定状态包括以下情况:(1)onpower-up(2)afterchangingthe
8、PLLMULorPLLDIVvalues(3)afterturningoffthePLL(PLLON/OFF=0)(4)afterlossofinputreferenceclock.模式切换关键一点是,对于CLKMD中的PLLMUL,PLLDIV,PLLCOUNT,PLLON/OFF必须在DIV模式下才可以修改,而只有PLLNDIV才可以在PLL和DIV模式下修改。从DIV到PLL从PLL到DIV例如:从PLL×3模式到DIV-2模式从PLL到PLL首先要从PLL模式