信号与系统实验箱--DSP应用实验
发布时间:2017-06-27 点击次数:次
一、实验目的
1、熟悉DSP定时器/计数器、I/O口使用、DSP缓冲串口的使用、各存贮空间访问等基本原理;
2、熟悉DSP的指令系统。
二、实验原理说明
实验平台提供DSP应用的硬件支持有:基本I/O口XF的使用(有发光二极管[XF]指示和测试点[TPXF])、定时器/计数器使用(定时溢出,有发光二极管指示[TOUT]和测试点[TPTOUT])、串行方式的A/D接口、串行方式的D/A接口。
选择哪部分的应用实验就应查阅相应的DSP资料,如定时器使用部分:
C5402的定时器/计数器有2个,工业应用中,计数器和定时器常用于检测及控制。这些定时器可能通过软件编程或硬件锁相环精确定时。该实验以方波发生器为例介绍定时器的编程,时钟频率为16.384MHz,在XF端输出一个周期为20ms的方波,方波的周期由片上定时器确定,采用中断方法实现。
1、定时器0的初始化:
(1)设置定时控制寄存器TCR(地址0024H)
15~12(保留位):通常情况下设置为0000
11(soft)和10(free)软件调试控制位:
free=0、soft=0时定时器立即停止工作。
free=0、soft=1且计数器TIM减为1时,定时器停止工作。
ree=1、soft=X时,定时器继续工作。该例中设free=1、soft=0。
9~6(PSC)预定标计数器:复位或其减为0时,分频系数TDDR自动加载到PSC上。该例中设置TDDR=1001H=9。
5(TRB)定时器重新加载控制位:用于复位片内定时器。当TRB=1,预标定分频系数TDDR和定时器周期寄存器PRD中的数据分别加载到定时器预标定计数器PSC和定时器TIM中。该例中设TRB=1。
4(TSS)定时器停止控制位:用于停止启动定时器。当TSS=0时定时器启动开始工作。当TSS=1时,定时器停止工作。该例中设TSS=0。
3~0(TDDR)预标定分频系数:最大的预标定值为16,最小值为1。按照这个分频系数,定时器对时钟输出信号CLKOUT进行分频,分频是通过预标定计数器PSC进行的。当复位或减为0时,分频系数TDDR自动加载到PSC上,开始新一轮计数。该例中设置TDDR=1001H=9。
最后程序中设置TCR=669H
(2)设置定时寄存器TIM(地址0025H);
复位时,TIM和PRD为0FFFFH,TIM由PRD中的数据加载。
(3)设置定时周期寄存器PRD(地址0026H):
因为输出脉冲周期为20ms,所以定时中断周期应该为10ms,每中断一次,输出端电平取反一次。
定时时间计算公式:t=T×(1+TDDR)×(1+PRD)=10ms
T:CLKOUT主频f=16.384MHz,T=61ns;给定TDDR=9,
2、定时器是对c5402的主时钟CLKOUT进行分频的。CLKOUT与外部晶体振荡器频率(在本实验系统中外部晶体振蒎器的频率为16.384MHz)之间的关系的c5402的三个引脚CLKMD1、CLKMD2、CLKMD3的电平值决定,具体关系如表18-1所示:
表21-1
在本实验系统中,使用的主时钟频率,为81.925MHz(CLKMD1=0、CLKMD2=1和CLKMD3=0)。
3、中断初始化
(1)中断屏蔽寄存器IMR中的定时屏蔽位TINT0置1,开放定时器0中断。
(2)状态控制寄存器ST1中的中断标志位INTM位清零,开放全部中断。
三、实验内容
1、编写并实现20ms溢出率的定时程序,并使DSP的XF脚每20ms电平变化一次即使其对应的发光二极管闪烁,用示波器检测XF(TPXF)上的信号周期是否正确?
2、认真阅读TLC5608D/A变换芯片的资料,编写D/A变换的软件,使8路D/A分别输出锯齿波。
3、认真阅读TLC1572A/D变换芯片的资料,编写A/D变换的软件,使8路D/A分别输出采集到的输入信号。
四、实验报告要求
1、总结定时器/计数器、DSP缓冲串口的原理与应用,并写出各寄存器的控制字;
2、给出相应程序的框图。
五、实验设备
1、双踪示波器1台
2、YUY-XH3信号与系统实验箱1台
1、熟悉DSP定时器/计数器、I/O口使用、DSP缓冲串口的使用、各存贮空间访问等基本原理;
2、熟悉DSP的指令系统。
二、实验原理说明
实验平台提供DSP应用的硬件支持有:基本I/O口XF的使用(有发光二极管[XF]指示和测试点[TPXF])、定时器/计数器使用(定时溢出,有发光二极管指示[TOUT]和测试点[TPTOUT])、串行方式的A/D接口、串行方式的D/A接口。
选择哪部分的应用实验就应查阅相应的DSP资料,如定时器使用部分:
C5402的定时器/计数器有2个,工业应用中,计数器和定时器常用于检测及控制。这些定时器可能通过软件编程或硬件锁相环精确定时。该实验以方波发生器为例介绍定时器的编程,时钟频率为16.384MHz,在XF端输出一个周期为20ms的方波,方波的周期由片上定时器确定,采用中断方法实现。
1、定时器0的初始化:
(1)设置定时控制寄存器TCR(地址0024H)
15~12(保留位):通常情况下设置为0000
11(soft)和10(free)软件调试控制位:
free=0、soft=0时定时器立即停止工作。
free=0、soft=1且计数器TIM减为1时,定时器停止工作。
ree=1、soft=X时,定时器继续工作。该例中设free=1、soft=0。
9~6(PSC)预定标计数器:复位或其减为0时,分频系数TDDR自动加载到PSC上。该例中设置TDDR=1001H=9。
5(TRB)定时器重新加载控制位:用于复位片内定时器。当TRB=1,预标定分频系数TDDR和定时器周期寄存器PRD中的数据分别加载到定时器预标定计数器PSC和定时器TIM中。该例中设TRB=1。
4(TSS)定时器停止控制位:用于停止启动定时器。当TSS=0时定时器启动开始工作。当TSS=1时,定时器停止工作。该例中设TSS=0。
3~0(TDDR)预标定分频系数:最大的预标定值为16,最小值为1。按照这个分频系数,定时器对时钟输出信号CLKOUT进行分频,分频是通过预标定计数器PSC进行的。当复位或减为0时,分频系数TDDR自动加载到PSC上,开始新一轮计数。该例中设置TDDR=1001H=9。
最后程序中设置TCR=669H
(2)设置定时寄存器TIM(地址0025H);
复位时,TIM和PRD为0FFFFH,TIM由PRD中的数据加载。
(3)设置定时周期寄存器PRD(地址0026H):
因为输出脉冲周期为20ms,所以定时中断周期应该为10ms,每中断一次,输出端电平取反一次。
定时时间计算公式:t=T×(1+TDDR)×(1+PRD)=10ms
T:CLKOUT主频f=16.384MHz,T=61ns;给定TDDR=9,
2、定时器是对c5402的主时钟CLKOUT进行分频的。CLKOUT与外部晶体振荡器频率(在本实验系统中外部晶体振蒎器的频率为16.384MHz)之间的关系的c5402的三个引脚CLKMD1、CLKMD2、CLKMD3的电平值决定,具体关系如表18-1所示:
表21-1
在本实验系统中,使用的主时钟频率,为81.925MHz(CLKMD1=0、CLKMD2=1和CLKMD3=0)。
3、中断初始化
(1)中断屏蔽寄存器IMR中的定时屏蔽位TINT0置1,开放定时器0中断。
(2)状态控制寄存器ST1中的中断标志位INTM位清零,开放全部中断。
三、实验内容
1、编写并实现20ms溢出率的定时程序,并使DSP的XF脚每20ms电平变化一次即使其对应的发光二极管闪烁,用示波器检测XF(TPXF)上的信号周期是否正确?
2、认真阅读TLC5608D/A变换芯片的资料,编写D/A变换的软件,使8路D/A分别输出锯齿波。
3、认真阅读TLC1572A/D变换芯片的资料,编写A/D变换的软件,使8路D/A分别输出采集到的输入信号。
四、实验报告要求
1、总结定时器/计数器、DSP缓冲串口的原理与应用,并写出各寄存器的控制字;
2、给出相应程序的框图。
五、实验设备
1、双踪示波器1台
2、YUY-XH3信号与系统实验箱1台