DSP实验指导书2.docx
《DSP实验指导书2.docx》由会员分享,可在线阅读,更多相关《DSP实验指导书2.docx(20页珍藏版)》请在冰豆网上搜索。
DSP实验指导书2
DSP原理及应用
实验指导书
佟宁宁编
黑龙江工程学院电子工程系
2009年3月·哈尔滨
目录
实验一CodeComposerStudio入门1
实验二指示灯实验...................................................................................................................................12
实验三拔码开关控制..................................................................................................................................15
实验四DSP的定时器17
实验一CodeComposerStudio入门
一、实验目的
1.掌握CodeComposerStudio2.21的安装和配置步骤过程。
2.了解DSP开发系统和计算机系统与目标系统连接的方法。
3.了解CodeComposerStudio2.21软件的操作环境和基本功能,了解TMS320C55x的软件开发过程。
(1)学习创建工程和管理工程的方法;
(2)了解基本的编译和调试功能;
(3)学习使用观察窗口;
(4)了解图形功能的使用。
二、实验设备
PC兼容机一台
ICETEK-VC5509-A-USB-EDU试验箱一台。
USB连接电缆一条(如使用PP型仿真器换用并口电缆一条)。
三、实验原理
开发TMS320C55xx应用系统一般需要以下几个调试工具来完成:
软件集成开发环境(了解CodeComposerStudio2.21):
完成系统的软件开发,进行软件和硬件仿真调试。
它也是硬件调试的辅助手段。
开发系统(ICETEK-5100–USB或ICETEK5100-PP):
实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。
评估模块(ICETEK-VC5509-A或ICETEK-VC5509-C等):
提供软件运行和调试的平台和用户系统开发的参照。
CodeComposerStudio2.21主要完成系统的软件开发和调试。
它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。
用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:
源程序文件:
C语言或汇编语言文件(*.C或*.ASM)
头文件(*.H)
命令文件(*.CMD)
库文件(*.LIB,*.OBJ)
四、实验步骤
1.实验准备
连接实验设备:
打开试验箱,取出三相电源连接线(如下图),将电源线的一端插入实
验箱外部左侧箱壁上的电源插孔中。
确认试验箱面板上电源总开关(位于试验箱底板左上角)处于“关”的位置,连接电源线的另一端至220V交流供电插座上,保证稳固连接。
使用电源连接线(如上图,插头是带孔的)连接各模块电源:
确认实验箱总电源断开。
连接ICETEK-CTR板上边插座到实验箱底板上+12V电源插座:
ICETEK-CTR板下边插座到试验箱底板上+5V电源插座;如使用PP(并口)型仿真器,则连接仿真器上插座到试验箱底板上+5V电源插座;连接DSP评估板模块电源插座到实验箱底板上+5电源插座。
注意各插头要插到底,防止虚接或接触不良。
连接DSP评估板信号线:
当需要连接信号源输出到A/D输入插座时,使用信号连接线(如上图)分别连接相应插座。
接通电源:
检查实验箱上220V电源插座(箱体左侧)中保险管是否完好,在连接电源线以后,检查各模块供电连线是否正确连接,打开实验箱上的电源总开关(位于实验箱底板左上角),使开关处于“开”的位置,电源开关右侧的指示灯亮。
关闭实验箱上扩展模块和信号源开关。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行:
(1)双击桌面上的图标:
进入CCS设置窗口。
(2)在出现的窗口中按标号顺序进行如下设置:
(3)接着在下面的窗口中按标号顺序进行如下选择:
(4)在出现的窗口中按标号顺序进行如下设置:
(5)在出现的窗口中按标号顺序进行如下设置:
以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB仿真器连接ICETEK-VC5509-A评估板。
如果需要一直使用这一方式就不需要重新进行以上设置操作了。
3.启动CodeComposerStudio2.21
(1)首先将实验室电源关闭。
连接实验箱的外接电源线。
(2)检查ICETEK-5100USB仿真器的黑色JTAG插头是否正确连接到ICETEK-VC5509-A板的J1插头上。
注:
仿真器的插头中有一个孔加入了封针,与J1插头上的缺针位置应重合,保证不会插错。
(3)检查是否已经用电源连接线连接了ICETEK-VC5509-A板上的POW1插座和实验箱底板上+5V电源插座.
(4)检查其它连线是否符号实验要求。
检查实验箱上三个拨动开关位置是否符合实验要求。
(5)打开实验箱上电源开关(位于实验箱底板左上角),注意开关边上红色指示灯点亮。
ICETEK-VC5509-A板上指示灯D5和D6点亮。
如果打开了ICETEK-CTR的电源开关,ICETEK-CTR板上指示灯L1、L2和L3点亮。
如果打开了信号源电源开关,相应开关边的指示灯点亮。
(6)用实验箱附带的USB信号线连接ICETEK-5100USB仿真器和PC机后面的USB插座,注意ICETEK-5100USB仿真器上指示灯Power和Run灯点亮。
(7)双击桌面上仿真器初始化图标:
如果出现下面提示窗口,表示初始化成功,按一下空格键进入下一步操作。
如果窗口中没有出现“按任意键继续…”,请关闭窗口,关闭实验箱电源,在将USB电缆从仿真器上拔出,返回第
(2)步重试。
如果窗口中出现“Theadapterreturnedanerror”,并提示“按任意键继续…”,表示初始化失败,关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第
(2)步重试。
(8)双击桌面上图标:
启动CCS2.21。
(9)如果进入CCS提示错误,先选“Abort”,然后用“初始化ICETEK-5100USB2.0仿真器”初始化仿真器,如果提示出错,可多做几次。
如仍然出错,拔掉仿真器上USB接头(白色方形),按一下ICETEK-VC5509-A板上S1复位按钮,连接USB接头,再做“初始化ICETEK-5100USB2.0仿真器”。
(10)如果遇到反复不能连接或复位仿真器、进入CCS报错,打开Windows的“任务管理器”,在“进程”卡片上的“映像名称”栏中查找是否有“cc_app.exe”,将它结束再试。
选择菜单Debug→ResetCPU,成功地启动了CCS后会出现如下窗口:
4.创建工程:
(1)创建新的工程文件:
选择菜单“Project”的“New…”项。
弹出下图,按编号顺序操作建立volume.pjt工程文件:
展开主窗口左侧工程管理窗中“Projects”下新建立的“volume.pit”,其中各项均为空。
(2)在工程文件中添加程序文件:
选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中选择文件目录为C:
\ICETEK-VC5509-EDULab\Lab0101-UseCCS,改变文件类型为“CSourceFiles(*.c;*.ccc)”,选择显示出来的文件“volum.c”;重复上述步骤,添加volume.cmd文件到volume工程中;添加C:
\ti\C5500\cgtools\lib\rts55.lib文件到工程中。
(3)编译链接工程:
选择菜单“Project”的“RebuildAll”项,或单击工具条中
的按钮;注意编译过程中CCS主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。
5.编辑修改工程中的文件:
(1)查看工程文件:
展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包含”volume.h”、“rts55.lib”、“volume.c”和“volume.cmd”文件,其中第一个“volume.h”为程序在编译时根据程序中的“include”语句自动加入的。
(2)查看源文件:
双击工程管理窗中的“volume.c”文件,可以查看程序内容。
可以看到,用标准C语言编制的程序。
(3)编辑修改源文件及编译程序:
打开“volume.c”,找到“main()”主函数,将语句“input=inp_buffer;”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示:
双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS自动保存。
(4)修改工程文件的设置:
通过以上设置操作,重新编译后,程序中的用户堆栈的尺寸被设置成1024个字。
6.基本调试功能:
(1)下载程序:
执行File→LoadProgram,在随后打开的对话框中选择刚刚建立的C:
\ICETEK-VC5509-EDULab\Lab0101-UseCCS\Debug\volume.out文件。
(2)设置软件调试断点:
在项目浏览窗口中,双击volume.c激活这个文件,移动光标main()行上,单击鼠标右键选择ToggleBreakpoint或按F9设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记)。
(3)利用断点调试程序:
选择Debug→Run或按F5运行程序,程序会自动停在main()函数上。
按F10执行到write_buffer()函数;
在按F8,程序将转到write_buffer函数中运行;
此时,为了返回主函数,按shift-F7完成write_bufer函数的执行;
再次执行到write_buffer一行,按F10执行程序,对比与F8执行的不同。
提示:
在执行C语言的程序时,为了快速的运西功能到主函数调试自己的代码,可以使用Debug→Gomain命令,上述实验中的使用方法是较为繁琐的一种方法。
7.使用观察窗口:
(1)执行View→WatchWindow打开观察窗口。
(2)在volume.c中,用鼠标双击一个变量(比如num),再单击鼠标右键,选择“QuickWatch”,CCS将打开QuickWatch窗口并显示选中的变量。
(3)在volume.c中,选中变量num,单击鼠标右键,选择“AddtoWatchWindows”,CCS将变量添加到观察窗口并显示选中的变量值。
(4)在观察窗口中双击变量,则可以在这个窗口中改变变量的值。
(5)把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。
(6)把str变量加到观察窗口中;执行程序进入write_buffer函数,此时num变量超出了作用范围,可以利用CallStack窗口察看在其他函数中的变量:
选择菜单View→CallStack打开堆栈窗口。
双击堆栈窗口的main()选项,此时可以观察看num变量的值。
8.文件输入/输出:
下面介绍如何从PC机上加载数据到DSP上。
用于利用已知的数据流测试算法。
在完成下面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据。
Probe断点可以设置在程序的任何位置,当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。
在这一节里,Probe断点触发的事件是:
将PC机存储的数据文件中的一段数据加载到DSP缓冲区中。
⑴在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。
在
这里,代替A/D模块完成这个工作的是Probe断点。
当执行到函数read_signals时,Probe
断点完成这个工作。
①在程序行read_signals(input);上单击鼠标右键,选择“Togglebreakpoint”,设置软件断点。
②再在同一行上单击鼠标右键,选择“ToggleProbePoint”,设置Probe断点。
此时,已经配置好了Probe断点和与之关联的事件。
进一步的结果在下面实验中显示。
9.图形功能简介:
下面我们使用CCS的图形功能检验上一节的结果。
首先进行下面设置操作:
在弹出的图形窗口中单击鼠标右键,选择“ClearDisplay”。
按F12运行程序。
观察Input窗口的内容。
10.选择菜单File→workspace→saveworkspacsAs…,输入文件名SY.wks。
11.退出CCS。
实验二指示灯实验
一.实验目的
1.了解ICETEK-VC5509-A板在TMS320VC5509DSP外部扩展存储空间上的扩展。
2.了解ICETEK-VC5509-A板上指示灯扩展原理。
3.学习在C语言中使用扩展的控制寄存器的方法。
二.实验设备
计算机,ICETEK-VC5509-EDU实验箱(或ICETEK仿真器+ICETEK-VC5509-A系统板+
相关连线及电源)。
三.实验原理
1.TMS320VC5509DSP的EMIF接口:
存储器扩展接口(EMIF)是DSP扩展片外资源的主要接口,它提供了一组控制信号和地
址、数据线,可以扩展各类存储器和寄存器映射的外设。
-ICETEK-VC5509-A评估板在EMIF接口上除了扩展了片外SDRAM外,还扩展了指示灯、
DIP开关和D/A设备。
具体扩展地址如下:
400800-400802h:
D/A转换控制寄存器
400000-400000h:
板上DIP开关控制寄存器
400001-400001h:
板上指示灯控制寄存器
-与ICETEK-VC5509-A评估板连接的ICETEK-CTR显示控制模块也使用扩展空间控制主
要设备:
602800-602800h:
读-键盘扫描值,写-液晶控制寄存器
600801-600801h:
液晶辅助控制寄存器
602801h、600802h:
液晶显示数据寄存器
602802-602802h:
发光二极管显示阵列控制寄存器
2.指示灯扩展原理:
3.实验程序流程图:
四.实验步骤
1.实验准备:
连接实验设备
关闭实验箱上扩展模块和信号源电源开关。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行。
3.启动CodeComposerStudio2.21:
选择菜单Debug→ResetCPU。
4.打开工程文件:
工程文件为:
C:
\ICETEK-VC5509-EDULab\Lab0301-LED\LED.pjt。
打开源程序LED.c阅读程序,理解程序内容。
5.编译、下载程序。
6.运行程序,观察结果。
7.退出CCS:
五、观察实验结果
实验三:
拨码开关控制实验
一.实验目的
1.了解ICETEK-VC5509-A板在TMS320VC5509DSP外部扩展存储空间上的扩展。
2.了解ICETEK-VC5509-A板上拨码开关扩展原理。
3.熟悉在C语言中使用扩展的控制寄存器的方法。
二.实验设备
计算机,ICETEK-VC5509-EDU实验箱(或ICETEK仿真器+ICETEK-VC5509-A系统板+相
关连线及电源)。
三.实验原理
1.TMS320VC5509DSP的EMIF接口:
存储器扩展接口(EMIF)是DSP扩展片外资源的主要接口,它提供了一组控制信号和地址、
数据线,可以扩展各类存储器和寄存器映射的外设。
-ICETEK-VC5509-A评估板在EMIF接口上除了扩展了片外SDRAM外,还扩展了指示
灯、DIP开关和D/A设备。
具体扩展地址如下:
400800-400802h:
D/A转换控制寄存器
400000-400000h:
板上DIP开关控制寄存器
400001-400001h:
板上指示灯控制寄存器
-与ICETEK-VC5509-A评估板连接的ICETEK-CTR显示控制模块也使用扩展空间控制主
要设备:
602800-602800h:
读-键盘扫描值,写-液晶控制寄存器
600801-600801h:
液晶辅助控制寄存器
602801h、600802h:
液晶显示数据寄存器
602802-602802h:
发光二极管显示阵列控制寄存器
2.拨码开关扩展原理:
3.实验程序流程图:
四.实验步骤
1.实验准备:
连接实验设备:
关闭实验箱上扩展模块和信号源电源开关。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行。
3.启动CodeComposerStudio2.21:
选择菜单Debug→ResetCPU。
4.打开工程文件:
工程文件为:
C:
\ICETEK-VC5509-EDULab\Lab0302-DIP\DIP.pjt。
打开源程序DIP.c阅读程序,理解程序内容。
5.编译、下载程序。
6.运行程序,观察结果。
7.拨动拨码开关U4的各位,观察指示灯D1-D4的显示。
8.退出CCS:
五.观察实验结果
实验四:
DSP的定时器
一.实验目的
1.通过实验熟悉VC5509A的定时器;
2.掌握VC5509A定时器的控制方法;
3.掌握VC5509A的中断结构和对中断的处理流程;
4.学会C语言中断程序设计,以及运用中断程序控制程序流程。
二.实验设备
计算机,ICETEK-VC5509-EDU实验箱(或ICETEK仿真器+ICETEK-VC5509-A系统板+相关连线及电源)。
三.实验原理
1.通用定时器介绍及其控制方法:
TMS320VC5509A内部有两个20位通用定时器(GP):
每个通用定时器包括:
一个16位的减计数的计数器TIM;
一个16位的定时器周期寄存器PRD;
一个16位的定时器控制寄存器TCR;
一个16位的定时器预定标寄存器PSCR;
PSCR寄存器说明:
PSC:
4位的预定标值,与TIM共同组成20位的定时计数器.
TDDR:
预定标周期寄存器(在需要时重装入PSC的值)
TCR寄存器说明(详见spru595b.pdf)
2.中断响应过程(详见spru595b.pdf):
外设事件要引起CPU中断,必须保证:
IER中相应使能位被使能,IFR相应中断也被使能。
在软件中,当设置好相应中断标志后,开中断,进入等待中断发生的状态;外设(如定时器)中断发生时,首先跳转到相应中断高级的服务程序中(如:
定时器1会引起TINT中断),程序在进行服务操作之后,应将本外设的中断标志位清除以便能继续中断,然后返回。
3.中断程序设计:
程序中应包含中断向量表,VC5509A默认向量表从程序区0地址开始存放,根据IPVD和IPVH的值确定向量表的实际地址。
注意观察程序中INTR_init()函数的定义部分,其中IPVD和IPVH的值都为0x0d0;同时观察配置文件ICETEK-VC5509-A.cmd中的VECT段描述中o=0x0d000。
向量表中每项为8个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址。
第一个向量表的首项为复位向量,即CPU复位操作完成后自动进入执行的程序入口。
服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务。
4.实验程序流程图:
5.实验程序分析:
实验程序的工程中包含了两种源代码,主程序采用C语言编制利于控制,中断向量表在vector
.asm汇编语言文件中,利于直观地控制存储区分配。
在工程中只需将它们添加进来即可,编译系统会自动识别分别处理完成整合工作。
四.实验步骤
1.实验准备:
连接实验设备。
关闭实验箱上扩展模块和信号源电源开关。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行:
3.启动CodeComposerStudio2.21:
选择菜单Debug→ResetCPU。
4.打开工程文件:
打开菜单“Project”的“Open”项;选择C:
\ICETEK-VC5509-EDULab\Lab0303-Timer录中的“Timer.pjt”。
在项目浏览器中,双击main.c,激活main.c文件,浏览该文件的内容,理解各语句作用。
打开ICETEK-VC5509-A.cmd,对照vector.asm源程序学习中断向量表的写法。
5.编译、下载程序。
6.运行程序,观察结果。
7.改变TIMER_init()函数里*prd0=0x0ffff为“=0x0fff”;重复步骤5,6观察实验现象。
8.退出CCS。