实验二DSP 数据存取实验.docx
《实验二DSP 数据存取实验.docx》由会员分享,可在线阅读,更多相关《实验二DSP 数据存取实验.docx(10页珍藏版)》请在冰豆网上搜索。
实验二DSP数据存取实验
实验二DSP数据存取实验
一、实验目的
1.了解TMS320VC6713的内部存储器空间的分配及指令寻址方式;
2.学习用CodeComposerStudio修改、填充DSP内存单元的方法;
3.学习操作TMS320VC6713内存空间的指令。
二、实验内容
1.读写DSP内存单元数据;
2.复制内存单元的数据。
三、实验要求
通过本试验,了解TMS320VC6713存储空间的操作,掌握DSP内存单元数据的存取、复制操作。
四、实验步骤
1.打开CCS,进入CCS的操作环境。
2.装入Memory.pjt工程文件,添加DEC6713.gel文件。
3.装载程序Memory.out,进行调试。
4.程序区的观察和修改
运行到main函数入口:
选择菜单Debug->GoMain,当程序运行并停止在main函数入口时,展开“Disassembly”反汇编窗口,发现main函数入口地址为09ccH,也就是说从此地址开始存放主函数的程序代码。
修改程序区的存储单元:
程序区单元的内容由CCS的下载功能填充,但也能用手动方式修改;双击“Code”窗口地址“0x09cc:
”后的第一个数,显示“EditMemory”窗口,在“Data”中输0x00000000,单击“Done”按钮,观察“Code”窗口中相应地址的数据被修改,同时在反汇编窗口中的反汇语句也发生了变化,当前语句被改成了“NOP”。
将地址0x09cc上的数据改回0x01BCD4F6,程序又恢复成原样。
5.观察修改数据区
显示片内数据存储区:
同样打开窗口Data1,起始地址在0x4100。
修改数据单元:
数据单元可以单个进行修改,只需双击想要改变的数据单元即可,与修改程序区单元的操作相同。
填充数据单元:
选择Edit->Memory->Fill…观察“Data”窗口中的变化。
同样将0x4100开始的头16个单元的值用0填充。
6.运行程序观察结果
在Memory.c程序的第55行”for(i=0,pz=py;i<16;i++,pz++)”,第59行”for(i=0;i<16;i++,px++,py++)”,第64行”}”处设置断点。
运行程序,程序会停在断点处,此时可观察到Data窗口中前16个单元的值被写入0000至000F。
继续运行程序,程序会停在第二个断点处,此时可观察到Data1窗口中前16个单元的值被均被写入1234。
继续运行程序,程序结束,此时0x4080前16个单元的值复制到0x4100的前16个单元。
五、实验总结和心得
通过本次实验,我了解了TMS320VC6713的内部存储空间的分配及指令寻址方式,学习了用CodeComposerStudio修改、填充DSP内存单元的方法。
通过实验中对DSP内存单元数据的读写和复制内存单元的数据,从一开始的CCS程序的安装使我进一步熟悉了CCS的运行环境及调试,到后来进行存储器程序区的修改相关配置及操作是我受益匪浅。
实验三定时器控制实验
一、实验目的
1.了解TMS320VC6713的定时器;
2.熟悉定时器各寄存器的配置;
3.掌握TMS320VC6713的中断结构和对中断的处理流程;
4.学会C语言中断程序设计,以及运用中断程序控制程序流程
二、实验内容
1.系统初始化;
2.定时器中断初始化;
三、实验要求
通过本实验,熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用。
四、实验步骤
1.打开CCS,进入CCS的操作环境。
2.装入time.pjt工程文件,添加DEC6713.gel文件。
3.装载time.out文件,进行调试。
4.打开DEC6713_Timer.c,在程序的第163行“TimerEventHandler();”处设置断点。
5.运行程序,程序会停在断点处,表明已进入定时器中断。
此时观察CCS下方的“Stdout”窗口,会看到“Count:
1”。
继续运行程序,程序每次都会停在断点处,连续进入中断100次后,退出主程序。
提示:
实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间。
五、实验总结和心得
本次实验,主要了解TMS320VC6713的定时器,熟悉定时器各寄存器的配置,了解TMS320VC6713的终端结构和终端的处理过程。
通过定时器的中断的流程图对中断有了大致了解。
在操作中需在C语言程序中”TimerEvntHandler();”设置断点,若设置100,在CCS下方会看到”Count:
1”。
继续运行程序,程序每次都会停在断点处,,连续进入中断100次后,退出程序。
定时器实验原理图:
实验四交通灯实验
一、实验目的
1.熟悉使用SEED-DEC6713板控制SEED-DTK_MBoard上交通灯的方法;
2.掌握DSP扩展数字I/O口的方法;
3.了解SEED-DEC6713的硬件系统。
二、实验内容
1.DSP的初始化;
2.TMS320C6713的扩展数字I/O口使用;
3.交通灯实现程序。
三、实验要求
通过本实验,了解DSP对I/O口的操作,完成交通灯的控制。
熟练使用CCS对程序进行调试。
DSP系统中一般只有少量的数字I/O资源,而一些控制中经常需要大量的数字量的输入与输出。
因而,在外部扩展I/O资源是非常有必要的。
在扩展I/O资源时一般占用DSP的I/O空间。
其实现方法一般有两种:
其一为采用锁存器像74LS273、74lS373之类的集成电路;另一种是采用CPLD在其内部做锁存逻辑,我们采用的是后者。
SEED-DEC6713模板提供标准化的存储器扩展总线,以方便用户扩展其专用的电路。
SEED-DEC6713的存储器扩展总线,包含4个存储空间,每个存储空间有20-位地址线、32-位数据线。
SEED-DEC6713的这4个存储空间被映射到’C6713的和
空间中
四、实验步骤
1.打开CCS,进入CCS的操作环境;
2.装入IO.wk,,添加DEC6713.gel文件开始进行调试;
3.打开6IO.c文件,到第29行,修改TESTCOMMAND的宏定义;TESTCOMMAND是交通灯操作控制选项。
可以为1、2、3、4、5这5个数。
1为自动运行;2为夜间模式;3为交通灯东西通;4为交通灯南北通;5为禁行。
SEED-DTK_MBoard单元的TrafficLamp处将显示结果;
4.装载程序IO.out;
5.运行,观察。
在程序运行过程中,可直接在WatchWindow里修改TestCommand的值,即将每一种运行方式所对应宏定义的值直接赋值给TestCommand,即可改变运行方式。
例如在程序运行过程中,若想将运行方式改为夜间模式,就请将TestCommand赋值为0xAA16(关于各种方式的宏定义已在第33行到第37行给出)即可。
6.重新到第3)步开始尝试其他情况或者退出实验。
五、实验总结和心得
通过本次实验中,基本掌握了C600的指令系统的特点,进一步加深了对DSP的认识。
同时,通过实验操作DSP的IO操作使用方法,对于DSP的IO操作可以熟悉的运用,学到更多的知识。
在交通灯的控制程序中,在TESTCOMMAND处可以用1到5这五个数分别代表交通灯的各种运行状况。
例如在程序运行的过程中,若想将运行方式改为夜间模式,可赋值为0Xaa16。
实验五EMIF口读写实验——同步动态存储器的访问与控制
一、实验目的
1.认识DEC6713外部存储器SDRAM;
2.掌握外部接口EMIF的配置;
3.熟悉SDRAM的读取操作。
二、实验内容:
1.系统初始化
2.外部接口的初始化;
3.SDRAM的读写操作。
三、实验要求
通过本试验,掌握外部存储器接口的配置,熟悉SDRAM程序的读写。
四、实验步骤
1.打开CCS,进入CCS的操作环境;
2.装入SDRAM.pjt工程文件,添加DEC6713.gel文件;
3.装载SDRAM.out文件,进行调试;
4.打开DEC6713_SDRAM.c程序,在第59行“Src_StartAdd=(Uint32*)0x80000000;”和第73行“for(;;);”设置断点;
5.运行程序,程序会停在断点处,观察SDRAM的值;
6.继续运行程序,观察结果。
五、实验总结和心得
EMIF口读写实验,通过对同步动态存储器的访问与控制,认识了DEC6713外部存储器SDROM。
SDRAM被映射到C6713的存储空间,字节地址为0x8000000-0x80ffffff。
在连接完毕实验器材后,同样需要在C语言程序中设置断点。
运行程序,程序会停在断点处,从而观察SDRAM可得出结论。
实验六直流步进电机驱动实验
一、实验目的
1.了解直流步进电机驱动的原理;
2.了解PWM对直流电机的驱动原理;
3.了解PWM调速的实现过程。
4.了解步进电机的控制原理;
5.通过IO总线锁存产生的脉冲的频率与相位的顺序控制速度与方向。
二、实验内容
1.DSP的初始化;
2.PWM产生的定时中断服务程序。
3.步进电机的驱动程序。
三、实验要求
通过电机实验,了解对直流电机的驱动的基本原理;区分定时器延时与软件延时的区别。
了解对步进电机的驱动的基本原理。
四、实验步骤
直流电机
1.打开CCS,进入CCS的操作环境;
2.装入motor.pjt工程文件,添加DEC6713.gel文件;
3.打开MOTOR.c文件,到第26行,修改TESTCOMMAND的宏定义;TESTCOMMAND是操作控制选项,可以为1-3这5个数;
1为直流电机运行;
2为直流电机停止;
4.编译,链接,生成MOTOR.out文件。
装载MOTOR.out;
5.运行程序,观察实验箱上电机的运行是否与设置相符。
。
同时用户可查看step变量的值观察电机运行速度。
注:
因外部信号效果不好,以及算法比较简单,step计数值有一定误差,用户可自行进行算法设计,取得电机速度反馈值。
6.此时若想改变电机的运行状态,无需停止程序后通过修改TESTCOMMAND的宏定义来实现。
而只需在程序运行过程中打开WatchWindow窗口,在其中修改TestCommand变量,输入1-2宏定义所对应的具体数值。
如:
若想使直流电机停止,请输入0xAA39(DCMTRRVS所对应的宏定义,可在MOTOR.c程序找到),此时若直流电机正在运行,其将立刻停止运行。
7.MOTOR.c文件243行的interruptvoidc_int14(void)函数下列代码的功能为电机调速。
用户可通过调整time_num变量的值实现电机速度变化。
步进电机
1.打开CCS,进入CCS的操作环境。
2.装入motor.pjt工程文件,添加DEC6713.gel文件。
3.打开MOTOR.c文件,到第36行,修改TESTCOMMAND的宏定义。
TESTCOMMAND是操作控制
选项,可以为1-3这3个数。
1为步进电机运行;
2为步进电机反向运行;
3为步进电机停止;
4.编译,链接,生成MOTOR.out文件。
装载MOTOR.out。
5.运行程序,观察实验箱上电机的运行是否与设置相符。
此时若想改变电机的运行状态,无需停止程序后通过修改TESTCOMMAND的宏定义来实现。
而只需在程序运行过程中打开WatchWindow窗口,在其中修改TestCommand变量,输入1-3宏定义所对应的具体数值。
如:
若想使步进电机反向,请输入0xAA26(STPMTRRVS所对应的宏定义,可在MOTOR.c文件第243行中找到),此时若步进电机正在运行,其将立刻反向运行。
修改motorset[4]初始值,可以改变电机的设置。
motorset[]各位的具体含义见MOTOR.c第53,54行的注释。
可根据此修改电机步长,初始方向等参量。
五、实验总结和心得
通过电机控制实验,要知道计数器的计数方式,当计数寄存器的值与比较寄存器的值相等时,发生事件匹配,得到想要的波形来控制电机的转动方向以及转动速度。
同时,在实验过程中也学习了CCS软件的使用,以及对SEED仿真器的熟悉和使用。
由于以前接触的相关课程非常少,基础知识比较薄弱,学起来比较吃力。
但是在老师和同学的帮助和指导下,对DSP有一定的了解。
但还是有许多的不足,希望在后面的大作业中取得进一步的提升。
实验一开发环境建立
一、实验目的
1.学会CCS软件的安装方法。
2.熟悉CCS集成开发环境,掌握工程的生成方法。
3.熟悉CCS常用菜单的使用。
4.掌握CCS集成开发环境的调试方法。
二、实验仪器和设备
1.主机1台
2.仿真器1台
3..主机1台
三、实验原理
CCS是进行DSP开发的一个集成环境,它是在WINDOWS系统下工作的一个软件,通过该软件,我们可以进行DSP程序及系统的开发。
CCS提供了配置、建立、调试、跟踪和分析程序的工具,是进行DSP开发的常用工具,它是在WINDOWS系统下工作的一个软件,通过该软件,我们可以进行DSP程序的编辑及系统的开发。
(1)cmd文件用于DSP代码的定位。
由3部分组成:
1.输入/输出定义:
2.MEMORY命令:
描述系统实际的硬件资源。
3.SECTIONS命令:
描述"段"如何定位。
(2)创建源文件
1.打开CCS选择File→New→SourceFile命令
2.编写源代码并保存
3.保存源程序名为math.c,选择File→Save
4.创建其他源程序(如.cmd)可重复上述步骤
(3)创建工程文件
1.打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定。
2.在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成即可完成工程创建;
3.点击Project选择addfilestoproject,添加工程所需文件;
4.在弹出的对话框中的下拉菜单中分别选择.c点击打开,即可添加源程序math.c添加到工程中;
5.同样的方法可以添加文件math.cmd、rts.lib到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib文件已经加到工程文件中。
、
(4)设置编译与连接选项
1.点击Project选择BuildOpitions;
2.在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以;
3.在弹出的对话框中选择连接的参数设置,设置输出文件名(可执行文件与空间分配文件),堆栈的大小以及初始化的方式。
(5)工程编译与调试
1.点击Project→Buildall,对工程进行编译,如正确则生成out文件;若是修改程序,可以使用Project→Build命令,进行编译连接,它只对修改部分做编译连接工作。
可节省编译与连接的时间。
编译通过,生成.out文件;
2.点击File→loadprogram,在弹出的对话框中载入debug文件夹下的.out可执行文件;
3.装载完毕;
4.点击debug→GoMain回到C程序的入口;
5.打开File→Workspace→SaveWorkspace保存调试环境,以便下次调试时不需要重新进行设置。
只要File→Workspace→LoadWorkspace即可恢复当前设置。
四、实验内容及步骤
1.通过实际安装CCS软件,学会CCS软件的安装方法,熟悉CCS集成开发环境,了解CCS安装程序所建立的目录结构,熟悉CCS软件的操作。
详细实验内容和步骤见《DSP实验箱使用手册》中调试工具安装与使用说明。
2.DSP源文件的建立、DSP程序工程文件的建立,学会使用CCS调试工具。
编写一段DSP程序,实现文本的输出。
3.编译与链接的设置、生成可执行的DSP文件、进行DSP程序的调试与改错、学会使用CCS调试工具。
详细实验内容和步骤见《DSP实验箱使用手册》中简单应用程序的调试。
五、实验总结和心得
通过本次实验,通过SEED-DTK6713试验箱的配置与特点及功能的实现,CCS的安装与调试,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。
基本掌握了CCS实验环境的使用,并能够通过本次实验,通过SEED-DTK6713试验箱的配置与特点及功能的实现,CCS的安装与调试,加深了我对DSP的认识,使我对DSP实验的操作有了更进一步的理解。
基本掌握了CCS实验环境的使用,并能够使用C语言进行简单的DSP程序设计。