DSP实验报告李志刚精.docx
- 文档编号:11359304
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:43
- 大小:88.38KB
DSP实验报告李志刚精.docx
《DSP实验报告李志刚精.docx》由会员分享,可在线阅读,更多相关《DSP实验报告李志刚精.docx(43页珍藏版)》请在冰点文库上搜索。
DSP实验报告李志刚精
实验报告
实验课程:
TMS320X281XDSP原理及C程序开发
*********
学号:
**********
专业班级:
自动化061
2009年12月12日
一、实验一CCS应用及DSPC程序设计………………………3
二、实验二DSP定时器及GPIO应用试验……………………7
三、实验三DSP模数(AD)转换实验……………………………10
四.实验四DSP数模(DA)转换实验……………………………14
五.实验五PWM输出及电机控制实验……………………………16
六、实验六DSP串行通信实验……………………………………27
南昌大学实验报告
学生姓名:
李志刚学号:
**********专业班级:
自动化061
实验类型:
□验证□综合□设计□创新实验日期:
2009.9.23实验成绩:
实验一CCS应用及DSPC程序设计
一.实验目的
1.掌握CodeComposerStudio2.21的安装和配置步骤过程。
2.了解DSP开发系统和计算机与目标系统的连接方法。
3.学习创建工程和管理工程的方法。
4.了解基本的编译和调试功能。
5.学习使用观察窗口。
二.实验设备
PC兼容机一台、ICETEK-VC5509-S60(6.1实验箱一台、USB连接电缆一条
三.实验原理
1.开发TMS320C55xx应用系统一般需要以下几个调试工具来完成:
a.软件集成开发环境(CodeComposerStudio2.21:
完成系统的软件开发,进行软件和硬件仿真调试。
它也是硬件调试的辅助手段。
b.开发系统(ICETEK5100-USB或ICETEK5100-PP:
实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。
c.评估模块(ICETEKVC5509-A或ICETEKVC5509-C等:
提供软件运行和调试的平台和用户系统开发的参照。
2.CodeComposerStudio2.21
主要完成系统的软件开发和调试。
它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF(公共目标文件格式的可执行文件,并能将程序下载到目标DSP上运行调试。
3.用户系统的软件部分
可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:
源程序文件:
C语言或汇编语言文件(*.C或*.ASM
头文件(*.H
命令文件(*.CMD
库文件(*.LIB,*.OBJ
四.实验步骤
1.实验准备
连接实验设备:
关闭实验箱上扩展模块和信号源电源开关。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator方式下运行
3.启动CodeComposerStudio2.21
4.创建工程:
⑴创建新的工程文件:
⑵在工程文件中添加程序文件:
选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中
⑶编译链接工程:
选择菜单“Project”的“RebuildAll”项,或单击工具条中的按钮;注意编译过程中CCS主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。
5.编辑修改工程中的文件:
⑴查看工程文件:
展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中包含“volume.h”、“rts55.lib”、“volume.c”和“volume.cmd”文件,其中第一个“volume.h”为程序在编译时根据程序中的“include”语句自动加入的。
⑵查看源文件:
双击工程管理窗中的“volume.c”文件,可以查看程序内容。
⑶编辑修改源文件及编译程序:
打开“volume.c”,找到“main(”主函数,将语句“input=inp_buffer;”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错
⑷修改工程文件的设置
6.基本调试功能:
⑴下载程序:
执行FileLoadProgram
⑵设置软件调试断点:
在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main(行上,单击鼠标右键选择ToggleBreakpoint或按F9设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记。
⑶利用断点调试程序:
选择DebugRun或按F5运行程序,程序会自动停在main(函数上。
7.使用观察窗口:
⑴执行ViewWatchWindow打开观察窗口。
⑵在volume.c中,用鼠标双击一个变量(比如num,再单击鼠标右键,选择“QuickWatch”,CCS将打开QuickWatch窗口并显示选中的变量。
⑶在volume.c中,选中变量num,单击鼠标右键,选择“AddtoWatchWindow”,CCS将把变量添加到观察窗口并显示选中的变量值。
8.文件输入/输出:
Probe断点可以设置在程序的任何位置,当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。
在这一节里,Probe断点触发的事件是:
将PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。
9.图形功能简介:
(1)在弹出的图形窗口中单击鼠标右键,选择“ClearDisplay”。
(2)按F12运行程序。
观察Input窗口的内容。
10.编写一个以C语言为基础的DSP程序
11.退出CCS。
五、试验程序
#include"stdio.h"
#include"volume.h"
intinp_buffer[BUFSIZE];
intout_buffer[BUFSIZE];
int*input;
int*output;
intvolume=2;
structPARMSstr=
{
2934,9432,213,9432,&str
};
intread_signals(int*input;
intwrite_buffer(int*input,int*output,intcount;
intoutput_signals(int*output;
main(
{
intnum=BUFSIZE;
inti;
i=0;
input=inp_buffer;
output=out_buffer;
while(TRUE
{
read_signals(input;
write_buffer(input,output,num;
output_signals(output;
i++;printf("Number:
%d\n",i;
}
}
intread_signals(int*input
{
return(TRUE;
}
intwrite_buffer(int*input,int*output,intcount
{
inti;
for(i=0;i
output[i]=input[i]*volume;return(TRUE;
}
intoutput_signals(int*output
{
return(TRUE;
}
六、实验结果
通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:
南昌大学实验报告
学生姓名:
李志刚学号:
6101206014专业班级:
自动化061
实验类型:
□验证□综合□设计□创新实验日期:
2009.9.23实验成绩:
实验二DSP定时器及GPIO应用实验
一.实验目的
1.通过实验熟悉VC5509A的定时器;
2.掌握VC5509A定时器的控制方法;
3.掌握VC5509A的中断结构和对中断的处理流程;
4.学会C语言中断程序设计,以及运用中断程序控制程序流程。
二.实验设备
计算机,ICETEK-VC5509AE-S60实验箱(或ICETEK仿真器+ICETEK–VC5509-AE系统板+相关连线及电源)。
三.实验原理
1.通用定时器介绍及其控制方法
*PSCR寄存器说明:
1510965430
ReservedPSCReservedTDDR
PSC:
4位的预定标值,与TIM共同组成20位的定时计数器.
TDDR:
预定标周期寄存器(在需要时重装入PSC的值
TCR寄存器说明
2.中断响应过程
外设事件要引起CPU中断,必须保证:
IER中相应使能位被使能,IFR相应中断也被使能。
3.中断程序设计:
程序中应包含中断向量表,VC5509A默认向量表从程序区0地址开始存放,根据IPVD和IPVH的值确定向量表的实际地址。
4.实验程序流程图:
5.实验程序分析:
四.实验步骤
1.实验准备
2.设置CodeComposerStudio2.21在硬件仿真(Emulator方式下运行
3.启动CodeComposerStudio2.21
4.打开工程文件:
打开菜单“Project”的“Open”项。
5.编译、下载程序
6.运行程序,观察结果
7.改变TIMER_init(函数里*prd0=0x0ffff为“=0x0fff”;重复步骤5,6观察实验现象
8.退出CCS
五、实验程序
#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile
#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile
//Prototypestatementsforfunctionsfoundwithinthisfile.
interruptvoidcpu_timer0_isr(void;
#defineLEDS*(int*0xc0000
#defineCTRGR*(int*0x108000
#defineCTRLCDCMDR*(int*0x108001
#defineCTRKEY*(int*0x108001
#defineCTRLCDCR*(int*0x108002
#defineCTRCLKEY*(int*0x108002
#defineCTRLCDLCR*(int*0x108003
#defineCTRLCDRCR*(int*0x108004
#defineCTRLA*(int*0x108005
#defineCTRLR*(int*0x108007
inti=0,nCount;
unsignedintuLBD;
voidmain(void
{unsignedintuPort8000;
InitSysCtrl(;//初始化cpu
DINT;//关中断
InitPieCtrl(;//初始化pie寄存器
IER=0x0000;//禁止所有的中断
IFR=0x0000;
InitPieVectTable(;//初始化pie中断向量表
EALLOW;//ThisisneededtowritetoEALLOWprotectedregisters
PieVectTable.TINT0=&cpu_timer0_isr;//指定中断服务子程序
EDIS;//ThisisneededtodisablewritetoEALLOWprotectedregisters
CpuTimer0.RegsAddr=&CpuTimer0Regs;
//Initializetimerperiodtomaximum:
CpuTimer0Regs.PRD.all=0xffff;
//Initializepre-scalecountertodivideby1(SYSCLKOUT:
CpuTimer0Regs.TPR.all=0;
CpuTimer0Regs.TIM.all=0;
CpuTimer0Regs.TPRH.all=0;
//Makesuretimerisstopped:
CpuTimer0Regs.TCR.bit.TSS=1;
CpuTimer0Regs.TCR.bit.SOFT=1;
CpuTimer0Regs.TCR.bit.FREE=1;
//Reloadallcounterregisterwithperiodvalue:
CpuTimer0Regs.TCR.bit.TRB=1;
CpuTimer0Regs.TCR.bit.TIE=1;
//Resetinterruptcounters:
CpuTimer0.InterruptCount=0;
StartCpuTimer0(;//启动定时器0
//EnableCPUINT1whichisconnectedtoCPU-Timer0:
IER|=M_INT1;
//EnableTINT0inthePIE:
Group1interrupt7
PieCtrlRegs.PIEIER1.bit.INTx7=1;
//EnableglobalInterruptsandhigherpriorityreal-timedebugevents:
EINT;//EnableGlobalinterruptINTM
ERTM;//EnableGlobalrealtimeinterruptDBGM
CTRGR=0;//初始化ICETEK-CTR
CTRGR=0x80;
CTRGR=0;
CTRLR=0;//关闭东西方向的交通灯
CTRLR=0x40;//关闭南北方向的交通灯
uPort8000=CTRCLKEY;
while(1
{
}
}
interruptvoidcpu_timer0_isr(void
{intj,k;
//CpuTimer0.InterruptCount++;
//Acknowledgethisinterrupttoreceivemoreinterruptsfromgroup1
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;
CpuTimer0Regs.TCR.bit.TIF=1;
CpuTimer0Regs.TCR.bit.TRB=1;
if(nCount==0
{LEDS=uLBD;
uLBD++;uLBD%=16;
}
nCount++;nCount%=194;
}
六、实验结果
1.灯在定时器的定时中断中按照设计定时闪烁。
2.定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP定时启动A/D转换,日常生活中的计时器计数、空调的定时启动和关闭等。
3.试程序时,有时需要指示程序工作的状态,可以利用指示灯的闪烁来达到,指示灯灵活的闪烁方式可表达多种状态信息。
南昌大学实验报告
学生姓名:
李志刚学号:
6101206014专业班级:
自动化061
实验类型:
□验证□综合□设计□创新实验日期:
2009.9.23实验成绩:
实验三DSP模数(AD转换实验
一.实验目的
1.通过实验熟悉F2812A的定时器。
2.掌握F2812A片内AD的控制方法。
二.实验设备
计算机,ICETEK-F2812-EDU实验箱(或ICETEK仿真器+ICETEK–F2812-AE系统板+相关连线及电源)。
三.实验原理
1.TMS320F2812A芯片自带模数转换模块特性
12位模数转换模块ADC,快速转换时间运行在25mhz,16个模拟输入通道(AIN0—AIN15)。
-内置双采样-保持器-采样幅度:
0-3v,
2.模数模块介绍
ADC模块有16个通道,可配置为两个独立的8通道模块以方便为事件管理器A和B服务。
两个独立的8通道模块可以级连组成16通道模块。
虽然有多个输入通道和两个序列器,但在ADC内部只有一个转换器,同一时刻只有1路ad进行转换数据。
3.模数转换的程序控制
模数转换相对于计算机来说是一个较为缓慢的过程。
一般采用中断方式启动转换或保存结果,这样在CPU忙于其他工作时可以少占用处理时间。
设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果。
4.实验程序流程图
四.实验步骤
1.实验准备
(1连接实验设备
(2准备信号源进行AD输入。
①取出2根实验箱附带的信号线(如右图,两端均为双声道语音插头。
②用1根信号线连接实验箱左侧信号源的波形输出A端口和“A/D输入”模块的“ADCIN0”插座注意插头要插牢、到底。
这样,信号源波形输出A的输出波形即可送到ICETEK–F2812-AE板的AD输入通道0。
③用1根信号线连接实验箱左侧信号源的波形输出B端口和“A/D输入”模块的“ADCIN1”插座注意插头要插牢、到底。
这样,信号源波形输出B的输出波形即可送到ICETEK–F2812-AE板的AD输入通道1。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行
3.启动CodeComposerStudio2.21
4.打开工程文件工程目录:
C:
\ICETEK\F2812AES60\F2812AES60\DSP281x_examples\Lab0305-AD\ADC.pjt。
5.编译、下载程序。
6.打开观察窗口
7.设置信号源
由于模数输入信号未经任何转换就进入DSP,所以必须保证输入的模拟信号的幅度在0-3V之间。
必须用示波器检测信号范围,保证最小值0V最大值3V,否则容易损坏DSP芯片的模数采集模块。
8.运行程序观察结果
-单击“Debug”菜单,“Run”项,运行程序;
-停止运行,观察“ADCIN0”、“ADCIN1”窗口中的图形显示;
-适当改变信号源,按F5健再次运行,停止后观察图形窗口中的显示。
9.选择菜单File→workspace→saveworkspacsAs…,输入文件名SY.wks。
10.退出CCS
五、试验程序
#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile
#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile
//Prototypestatementsforfunctionsfoundwithinthisfile.
interruptvoidadc_isr(void;
//Globalvariablesusedinthisexample:
Uint16LoopCount;
Uint16ConversionCount;
Uint16Voltage1[1024];
Uint16Voltage2[1024];
main(
{
InitSysCtrl(;//初始化cpu
DINT;//关中断
InitPieCtrl(;//初始化pie寄存器
IER=0x0000;//禁止所有的中断
IFR=0x0000;
InitPieVectTable(;//初始化pie中断向量表
//Interruptsthatareusedinthisexamplearere-mappedto
//ISRfunctionsfoundwithinthisfile.
EALLOW;//ThisisneededtowritetoEALLOWprotectedregister
PieVectTable.ADCINT=&adc_isr;
EDIS;//ThisisneededtodisablewritetoEALLOWprotectedregisters
AdcRegs.ADCTRL1.bit.RESET=1;//ResettheADCmodule
asm("RPT#10||NOP";//Mustwait12-cycles(worst-caseforADCresettotakeeffect
AdcRegs.ADCTRL3.all=0x00C8;//firstpower-uprefandbandgapcircuits
AdcRegs.ADCTRL3.bit.ADCBGRFDN=0x3;//Powerupbandgap/referencecircuitry
AdcRegs.ADCTRL3.bit.ADCPWDN=1;//PoweruprestofADC
//EnableADCINTinPIE
PieCtrlRegs.PIEIER1.bit.INTx6=1;
IER|=M_INT1;//EnableCPUInterrupt1
EINT;//EnableGlobalinterruptINTM
ERTM;//EnableGlobalrealtimeinterruptDBGM
LoopCount=0;
ConversionCount=0;
//ConfigureADC
AdcRegs.ADCMAXCONV.all=0x0001;//Setup2conv'sonSEQ1
AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0;//SetupADCINA3as1stSEQ1conv.
AdcRegs.ADCCHSELSEQ1.bit.CONV01=0x1;//SetupADCINA2as2ndSEQ1conv.
AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1=1;//EnableEVASOCtostartSEQ1
AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1=1;//EnableSEQ1interrupt(everyEOS
//ConfigureEVA
//AssumesEVAClockisalreadyenabledinInitSysCtrl(;
EvaRegs.T1CMPR=0x0080;//SetupT1comparevalue
EvaRegs.T1PR=0x10;//Setupperiodregister
EvaRegs.GPTCONA.bit.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 实验 报告 李志刚精
![提示](https://static.bingdoc.com/images/bang_tan.gif)