DSP实验报告 11.docx
《DSP实验报告 11.docx》由会员分享,可在线阅读,更多相关《DSP实验报告 11.docx(26页珍藏版)》请在冰豆网上搜索。
DSP实验报告11
实验注意事项:
1、电源的开关顺序。
开电源的时候,插上总电源,再打开5v的LED电源,最后才是芯片的3.3v电源。
关电源是要先关芯片电源,5v电源次之。
电后才是总电源。
2、因为人体上有许多静电,应尽量不去触摸实验箱。
否则有可能使某管脚之间短路。
特别是DSP芯片。
3、不玩耍感测技术的实验仪器。
4.课前预习思考题
实验一基础实验
一、实验目的
1.熟悉CCS开发环境;
2.了解DSP54XEVM板的硬件环境;
二、实验内容
1.打开或新建工程文件(.pjt);
2.查看了解工程的文件(.c,.cmd,.asm,.h,.lib等文件格式);
3.编译工程文件;(BUILD),汇编联接后生成DSP的可执行文件(.out);
4.使用FILE菜单中的LOADPROGRAM命令调入可执行文件(.out)
5.程序运行(RUN)或单步运行程序;
6.打开view菜单中的CPURegisters观察DSP54XEVM板存储器值和DSP寄存器值;
7.打开view菜单中的memory,设定要观察的单元地址,观察DSP54X的内存值。
8.打开view菜单中的watchwindows窗口,观察变量值的变化
9.打开debug菜单中的breakpoints在程序中建立断点,观察程序运行到断点是变量值、存储器的变化;
10.在程序的空函数处设置探针,程序运行到探针这个地方,会从计算机上读取正弦波的数据。
经过处理之后,在view菜单中的graph中观看波形。
三、实验要求
打开运行一个小程序,熟悉CCS工程的文件结构,熟悉CCS各个功能的使用,并掌握DSP54X的工程建立、编译方法。
自己编写一个小程序,进一步熟悉DSP的CCS开发平台。
四、实验环境
计算机、DSP仿真器,DSP54XEVM板,CCS软件,EVM54X库文件
五、实验步骤
1.将DSP仿真器与计算机USB口连接好;
2.将DSP仿真器JTAG头插入DSP5416EVM板JTAG上;
注意:
千万不要带电插拨。
3.打开计算机电源,当计算机启动完毕后,打开电源仿真器和DSP54XEVM板电源,板上3.3V、1.8V电源指示灯均亮,若不亮,请立即关闭EVM板电源,检查连线和电源电压;(注意电源的开关顺序)。
4.双击桌面上CCS图标,进入CCS操作环境;
5.新建工程文件(.pjt)
工程文件名及路径(文件名和路径可任意命名,但必须是唯一的)
按鼠标确定
已新建一个名为a.pjt的工程文件,路径为E:
\a\
添加源文件到工程中(源文件可为*.c,*.cmd,*.s,……)
添加c文件到工程中
添加源文件完毕
添加其他源文件到工程中,可重复上述步骤。
若想从工程中移出一个源文件,
若想了解一个源文件的属性,
按鼠标右键确定
6.新建源文件
已创建一个未命名的源文件
编写源程序并保存
保存源程序名为a.c,路径为E:
\a\
创建其他源程序(*.s,*.cmd……),可重复上述步骤,
7.编译(Build)文件,产生一个名为a.out的可执行文件
在Build程序前的option设置
选中“LoadProgramAfterBu”,编译后,执行文件自动装载到EVM板上的程序区。
8.装载(load)可执行文件(*.out)
9.观察CPU寄存器
CPU各寄存器的值
10.调试(debug)
按F5运行,F8单步运行且进入子程序中,F9设置断点,F10单步运行,
按F9设置断点,按F5运行到该行
按F10单步运行到下一行
更多的内容详见帮助文件。
(用鼠标双击“Help”)
六、问题与思考:
1、自己写一个程序,在stdout窗口输出“Hello World”,应该注意什么问题?
2、写一个工程,实现产生一个方波的程序,并在图形观察窗口观察这个图形。
(你可以实现把这个方波的数据存储到fanbo.dat的文件中吗?
)
3、总结CCS的工程文件和C/C++工程文件结构的不同。
实验四定时器及中断实验
一、实验目的
1.熟悉CCS开发环境;
2.熟悉DSP54XEVM板的硬件环境;
3.了解DSP54X定时器工作原理;
4.了解DSP54X中断原理及中断向量表建立;
5.了解数码LED显示原理(动态扫描);
6.掌握键盘扫描原理;
7.掌握DSP54XI/O寻址方式;
8.掌握长整型数的运算;
9.掌握中断优先级设置;
11.掌握全局变量、局部变量的概念。
二、实验内容
1.DSP初始化;
2.定时器0初始化;
3.中断寄存器初始化;
4.中断向量表;(详见附录B)
5.定时器中断服务程序(LED扫描驱动程序);
6.键盘扫描驱动程序;
7.外部中断1中断服务程序;
三、实验要求
通过定时器启动中断,在中断服务程序中扫描数码LED显示,由扫描键盘得到不同的键值,根据不同的键值完成正计数、倒计数、停止、复位等功能。
外部中断可终止计数。
资源
驱动程序见附录。
键盘I/O地址(0X3FFF);(详见库函数说明)
数码LED的I/O地址:
段地址=0X1FFF,位地址=0X2FFF
A#键=0x01h(正计数),
B#键=0x02h(倒计数),
C#键=0x03h(复位)。
LED显示段码:
0=00H,1=01H,2=02H,3=03H,4=04H,5=05H,6=06H,7=07H,
8=08H,9=09H,A=0AH,B=0BH,C=0CH,D=0DH,E=0EH,F=0FH
空=1FH(详见附录库文件说明)。
注意:
做该实验时,须闭合开关K2,给LED供电。
四、实验环境
计算机、DSP仿真器,DSP54XEVM板,CCS软件,EVM54库文件,
五、实验步骤
1.把程序编译加载到仿真器中(过程见实验1)。
2.对照实验的原理图,了解硬件结构,了解程序的原理和流程。
3.运行程序,观察程序执行的结果(按A正计数,按B倒计数)。
4.自己修改、添加程序,实现按某键时计数停止,按C#键时清除(具体见后面的问题与思考)。
六、实验框图
键盘原理图
C5C4C3C2C1
K1k2k3k4k5
R4
总线R3
R2
R1
K16k17k18k19k20
该原理图表示4X5的矩阵键盘,共20个键,各键值的读取方法为:
1.设置第一行为低(R1=0),其它行为高(R2=R3=R4=1),选通一行;
2.读5位列数据,并暂存;
3.延时消抖(100ms);
4.再读5位列数据,并同上次的数据比较,若相同,则为有效键;
5.若5位数据全1,则无键按下;
6.根据行、列关系,确定键值,
7.重复上述过程,可读出所有键值。
DSP由I/O总线寻址方式向CPLD2读写数据,
键盘I/O地址=0X3FFF,
向(0X3FFF)写数据可选通行;
(0X3FFF)=0XFE,选通第一行(R1);
(0X3FFF)=0XFD,选通第二行(R2);
(0X3FFF)=0XFB,选通第三行(R3);
(0X3FFF)=0XF7,选通第四行(R4);
读(0X3FFF)为列数据;
(0X3FFF)=0XFE,第一列(C1);
(0X3FFF)=0XFD,第二列(C2);
(0X3FFF)=0XFB,第三列(C3);
(0X3FFF)=0XF7,第四列(C4);
(0X3FFF)=0XEF,第五列(C5)
数码LED显示原理
该原理图表示6位8段数码LED显示原理,为动态扫描显示,扫描频率大于50HZ,在每一时刻,只有1位数码被选通,位地址=0X2FFF,段地址=0X1FFF
位数据=0X20H,0X10H,0X08H,0X04H,0X02H,0X01H,
段数据=0X00H—0X1FH(详见库函数说明)。
七、问题和思考:
1、所提供的程序并不能在计数时实现暂停或清除。
在正计数和倒计数的子程序中加入键盘扫描程序,修改主程序,使其实现在正计数、倒计数时可以自由地暂停和清除。
2、小挑战:
你可以实现按某个健时正计数,再按这个键时倒计数,如此反复的程序吗?
3、想一想还有什么有趣的实验,看自己能不能实现。
实验六步进电机控制实验
一、实验目的
1.熟悉CCS开发环境;
2.熟悉DSP54XEVM板的硬件环境;
3.了解步进电机原理;
4.掌握DSP54XI/O寻址方式;
5.掌握DSP54X中断原理;
通过改变I/O总线输出脉冲频率和相位顺序,控制步进电机调速和方向。
二、实验内容
1.DSP初始化;
1.中断控制寄存器初始化;
2.中断向量表;
3.外部中断1服务程序;
4.键盘扫描程序;
5.LCD显示程序;
7.步进电机控制程序;
资源:
(详见库函数说明)
步进电机I/O口地址=0X8FFF,数据的有效位数为D7D6D5D4,向该地址循环写数据0x80,0x40,0x20,0x10,可控制步进电机正转;向该地址循环写数据0x80,0x10,0x20,0x40,可控制步进电机反转。
步进电机为四相四拍,
A->B->C->D->A为正转,其时序为:
1000xxxxb->0100xxxxb->0010xxxxb->0001xxxxb->1000xxxxb,
A->D->C->B->A为反转,其时序为:
1000xxxxb->0001xxxxb->0010xxxxb->0100xxxxb->1000xxxxb,
其中步进电机A相=D7,B相=D6,C相=D5,D相=D4,
1#健=0x01用于控制步进电机正转;
2#健=0x02用于控制步进电机反转;
3#健=0x03用于控制步进电机加速;
4#健=0x04h用于控制步进电机减速;
外部中断按键用于控制步进电机停止。
三、实验要求
扫描键盘,读取不同的健值,根据不同的健值启动步进电机正转、反转、加速、减速,能由外部中断使步进电机停止转动。
并能由LCD显示各任务的状态。
四、实验环境
计算机、DSP仿真器,DSP54XEVM板,CCS软件,EVM54库文件,步进电机。
五、实验步骤
1、将工程在CCS中打开,查看工程文件,理解程序的流程,了解步进电机的控制原理(打开查看的步骤见实验1)。
2、加载并运行程序,按1、2、3、4控制观察步进电机的转动。
3、并没有使步进电机停止转动的按键,修改程序,使步进电机在转动时可以按中断键停止(见问题与思考1)。
六、实验框图
做该实验时,须闭合开关K2,给电机供电。
注:
GPIO.0与EXINT1管脚相连,用于按键消抖,第一次
按键时,进入中断服务程序,再按键时,须查询GPIO.0
状态.可退出中断服务程序.
七、问题与思考:
1、如何实现用外部中断的按键实现步进电机的停止?
(步进电机转动时进入了控制子程序中,可能要在这些子程序中设置状态位,当中断发生时就可以对此状态位进行设置,并跳返回到主程序,使主程序对状态位的判断而进行相应的动作。
)如果不使用外部中断,也可用键盘扫描进行控制。
2、你能增加一个键,使当按下这个键时实现正转加速,再按一次实现正转减速吗?