东南大学DSP第一次实验报告.docx
《东南大学DSP第一次实验报告.docx》由会员分享,可在线阅读,更多相关《东南大学DSP第一次实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
![东南大学DSP第一次实验报告.docx](https://file1.bdocx.com/fileroot1/2022-12/9/faa08a14-aceb-479e-a871-810cc15bc8c6/faa08a14-aceb-479e-a871-810cc15bc8c61.gif)
东南大学DSP第一次实验报告
东南大学自动化学院
实验报告
第一、二次实验
实验名称:
定时器与基本I/O实验(指示灯、拨码开关)
院(系):
自动化
专业:
自动化
姓名:
学号:
同组人员:
实验时间:
2017年3月23日
第一部分实验!
CodeComposerStudio入门及浮点运算
一-实验目的
二.实验设备
三-实验原理
四.实验步骤
第二部分实验:
基于DSP系统的实验——指示灯和拨码开关
一.实輪冃的
13
二-实验设备
13
三-实验原理
13
四-实验步骤
14
五-实验结果
14
六•问题与思考
16
第三部分实验:
基于DSP系统的实验一一定时器
一-实验R的
17
二-实验设备
17
三-实验原理
17
四-实验步骤
18
五-实验结果
20
六・实验小结
21
第一部分实验JCodeComposerStudio入门及浮点运算
1-实验目的
1.掌握CodeCoii^oserStudio33的安装和配S步骤过程。
2.了解DSP开发系统和计算机与冃标系统的连接方法•
3.了解CodeCon^oserStudio33软件的操作环境和基本功能,了解TMS320C28xx软件
开发过程。
⑴学习创建匸程和管理工程的方法。
(2)了解基本的編译和调试功能。
(3)学习使用观察窗【I。
(4)了解图形功能的使用。
4.学习用标准C语R编制程序:
了解常用的C语育程序设计方法和组成部分。
5.学习编制连接命令文件,并用来控制代码的连接。
6.学会建立和改变map文件,以及利用它观察DSP内存使用情况的方法。
7•了解F28335简单的浮点运算
8.熟悉F28335的浮点运算编程
2.实验设备
1.PC机一台;操作系统为WindowsXP(或WindowsNTsWindows98、Windows2000)。
2.ICETEK-F28335-A实验箱一台。
3.USB连接电缆一条。
3-实验原理
(1)开发TMS320C5XXX应用系统一般需要以下几个调试工具來完成:
软件集成开发坏境(CodeComposerSnidio33):
完成系统的软件开发,进行软件
和硬件仿真调试.它也是硬件调试的辅助于•段。
开发系统aCETEK5100USB):
实现硬件仿真调试时与破件系统的通信•控制和读取硬件系统的状态和数据。
评估模块(ICETEKF28335.A等):
提供软件运行和调试的平台和用户系统开发
的参照。
CodeCoiiq)oserStudio3.3主要完成系统的软件开发和调试。
它提供一整套的程序编制■
维护、编译.调试环境,能将汇编语言和C语肓程序编译连接生成COFF(公共0标文件)格
式的可执行文件,并能将程序下載到目标DSP上运行调试。
用户系统的软件部分可以由CCS建立的工程文件进行管理.工程一般包含以卜•儿种文
ft:
源程序文件:
C语言或汇編语肓文件eASM或*.C)
头文件CTH)
标准C语言程序
(2)标准C语言程序
CCS支持使用标准C诺言开发DSP应用程序.当使用标准C语言編制的程序时.其
源程序文件名的后缀应为.c(如:
FPU.C)。
CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序•再进一步编译成冃标0$卩的町执行代码。
最后生成的是coff(公共目标文件)格式的可下载到DSP中运行的文件,其文件名后缀为.oiit。
由于使用C语言编制程序•其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负资构建C运行环境。
所以用户工程中需要注明使用C的支持库。
(3)命令文件的作用
命令文件(X件名后«为《1】
(1)为链接程序提供程序和数据在貝体DSP锁件中的位S分配信息。
通过编制命令文件,我们町以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。
命令文件也为链接程序提供了DSP外扩存储器的描述•在程序中使用CMD
文件描述破H牛存储区,可以只说明使用部分,但只要是说明的,必须和锁件匹配,也就是只要说明的存储区必须是存在的和叮用的。
(4)内存映射(map)文件的作用
一般地,我们设计、开发的DSP程序在调试好后・要固化到系统的ROM中。
为了更精确地使用ROM空间,我们就需要知道程序的兴小和位置,通过建立目标程序的map文件可以了解
DSP代码的确切信息。
当需要更改程序和数据的小和位置时■就要适当修改cmd文件和
源程序,再重新生成map文件來观察结果。
另外,通过观察map文件,町以掌握DSP存储器的使用和利用情况,以便进行存储器方而的优化工作。
(5)浮点运算
TMS320F28335是一款32位浮点通用数字信号处理芯片,它具冇存储空间人、运算
精度高等特点•
4-实验步骤
1.实验准备
连接实脸箱,检查电源线、JTAG仿真线、USB线等是否连接好,然后打开电源。
2•i殳置CodeComposerStudio3.3
双击心动SetupCCStudiov33>在AvailableFactoryBoards栏里选择F283xx的Emulator
开发板型号(),然后点击Save&Quit.C动CCS。
3•启动CCS。
4・添加工程
点击菜单栏ProjectVOpen,打开工程文件Lab202-float5.编译源文件、下我町执行程序
⑴单击菜单Project"、“RebuildAU”。
⑵执行File->LoadProgram.在随后打开的对话框中选择刚刚建立的out文件•完成后•系
统自动打开一个反汇编窗H“Disassembly"。
6•浮点运算实验
打把yl和y2添加到观察®h运行程序.观察U和y2结果。
然后选择菜单栏的DEug中的Real-timeModeO再在WatchWindow中单击右键.选择ContinuousRefresho然后按F5・
或者Debug菜单•下的Rum运行程序・观察yl,y2的数值的变化。
实验结果如下:
(1)n接运行
初始时刻yl=y2=0・一段时间后,yl.y2的值均发生变化。
理论上来说,t>0时,
y2的值陶始终保持不变Ily2=13.28,而yl每单位时间增加13.28。
Hwe1
Value
Typ«
1Radix1
QRB
0x00000000
po・・.
htx
0STP
0x00000000
po.,
h«x
QROH
0x00000000
po…
hex
QRIH
0x00000000
po…
hex
0R2H
0x00000000
P6.
hex
0R3H
0x00000000
P6・
h«x
QMH
0x00000000
po・・
htx
QRSH
0x00000000
po…
h«x
QR6H
0x00000000
po…
hex
$R7H
0x00000000
po…
hex
0yl
8.268386e+07
float
float
Qy2
1328
float
float
Byl
8.268386tt07
float
float1
Qy2
13.28
fLc«t
・flOftt
n
r
1
图1tl时刻yl和y2的值
Name|
Value1Type|
Radix1
QR£
0x00000000
po.
hex
eSTF
0x00000000
P6
hex
QROH
0x00000000
pc
hftX
0RIH
0x00000000
po.
hex
0R2H
QR3H
QR4HQRSH
QR6H
QR7H
Oyl
WatchLoc&$处Natch1
图2t2时刻yl和y2的值
从图1和图2町以看出,y2始终等于13.28不变•yl的值一直在堆加.与理论一致。
(2)单步运行
添加如下图所示断点
1&Exup“2833・FPILc
匚忙「X
cil»10;ci2=.6;xl=7;
22=7.3;bl=■4.2;b2•8.9;
―f
■
•
yl=Bl/xl+bl;
•
y2=+b2;
while
(1)
f
yl+-y2;
,,TWa57处刃"2力V";1
)
}
intreod_3ignnls(1nt*input)
1f
11
…在此取采黑栽擔徨号放繪入缓冲区丄冲",仃
r*tum(1J;}
,八A57aww.
■
4
►
图3添加断点
初始时刻yl=y2=0・单步运行如卞:
V^ue
1丁yp*
Rftdix1
QXI
OxCOOCOOCO
hix
QST?
Orrnamora
hr
•JtCH
OxCOOCOOCO
foigr
htx
«RIH
OXCOOCOOCO
poiRUr
htx
QO
OxCOOCOOCO
(oinUr
htx
gOt
OxCOOCOOCO
}oi€Ur
hex
QX4][
OkCOOCOOCO
fOinttft
hex
QHEM
OXCOOCOOCO
peiMor
hftK
0MM
OxCOOCOOCO
poiLler
hex
Qm
OxCOOCOOCO
pointer
hex
Qzl
5628E71
flo&l
Hoat
Q沱
0G
Hoftl
float
eri
5628571
£lDfloat
Q虫
00
£104.t
floAt
P3
金UJg卜Locob刪Hitch1
图4执行到第一个断点处yl和y2变化值
ITyp.IE.iix
QKB
OxOCOOOJOO
pointer
Lex
0STF
OxOCOOOJOO
poinlet
hex
QKOK
O^flXOOCOOO
pointer
Lex
QRIH
OxOCOOCOOO
pointer
hex
Q£2H
OxOCOOCOOO
pointer
Loz
QESK
(bdXOOCOOO
pointer
hex
QMK
OxOCOOCOOO
pointer
hex
etsK
0x00000000
pointv
Uz
QK6rf
OxOCOOCOOO
pointer
tex
Qm
OxOCQOCOOO
pointer
ktz
«T1
5.628571
flctt
£L»tt
]3.28
float
fl»at
Oyl
5.628571
£lc&t
£l»at
«y2
】3・28
Heat
£lxt
矗IHabhLocal;&Hatch1
图5
执行到第二个断点处yl和y2的变化值
Kam«
1Value
1Typ<
1Radix1
0JtE
0x30030030
pointer
K«x
QSTF
0x30000000
poinUr
Lex
Q3tCH
00030030
p«inlUx
QXIK
OQOCDOCOO
pointer
hex
QJt2H
0x30000030
pointer
Lex
$X3H
0x30000030
pointer
hex
QS4H
0x30030030
pointer
Lex
9J£H
QQfmxoo
pointer
hex
0xeH
oxjomoojo
poinltr
h«x
QX7H
000000)0
pointer
Ltx
Qrl
J8907
Gott
«y2
13,28
Goat
£l”t
n1
Id.90357
Goat
fbd
«r2
13.28
float
flxt
13
%kJSchLocas余Match1
图6执行到第三个断点处yl和y2的变化值
Ntire
1yg
1
1Xtdiz1
0O
DzOOOOQOOO
p・int・r
Mx
OSTF
OxOOOOGOOD
p•inter
K0KOH
OxOODOGOOD
p^intn
K«x
0HH
DxOODOGOOD
p^intn
K«x
Q£2H
OxCDOOOaiO
p^xnln
h«x
Q13H
0,8000000
pfintn
h・x
0R4H
OxCOOOGOOO
ptinlir
0&SH
O.COOOQ8D
Xoc
dI6H
OtCOOOCOOD
ORTH
OxCOOOOCDD
pwinter
Xtx
32.18857
£lcat
□oat
W
13.2B
float
Ooftt
Qyl
32,18857
float
□oat
Vyz
n.zB
CIc&t
tloat
rs
#WachUote&Matck1|
图7再一次执行whileO
从实验结果町以看出,yl和y2的变化情况与理论结果一致。
7.文件输入能出
卜•面介绍如何从PC机上加载数据到DSP上。
用于利用已知的数据流测试算法。
在完成卞面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据・Probe断点可以设置在程序的任何位置•.当程序运行到Probe断点时.与Probe断点相关的爭件将会被触发,当事件结束后,程序会继续执行。
在这一节里Probe断点触发的爭件是:
从PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。
注:
在CCS3.3以上版本中Probe断点被合并到防胡I断点中断几
在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。
在
这里•代替A/D模块完成这个工作的足Probe断点。
当执行到曲数read_signals时.Probe断点完成这个工作。
(1)将代码段中被注解掉的read_signals(input);前的注释符号删除•ffi新编译卞载°
(2)在程序彳jread_signals(input);上单击鼠标右键选择"Togglesoftwarebreakpoint"・设
豐软件断点。
(3)再在同一行上单击鼠标右键■选择“softwarebreakpoint”,“edit”来设g断点.此时
打开了一个新的窗II。
并修改相关内容。
I•忆IX
Tk*夕OitahrvKk^Pin*bvlan^
图8设置Pmbe断点并修改相关设置
此时,已经配置好了Pinbe断点和与之关联的爭件•进一步的结果在下面实验中显示。
8•图形功能简介
使用CCS的图形功能检验上一节的结果。
首先进行卜•面设置操作:
/F^»y3frIPSblUKBQlaloF/CPU.l-T・Sy?
2»S8-CodoCotpn<«cStudio
*3-liCTfrufir.,.'>rwFiflB
r
BGraphPropertyDialog
IDispl^yType
SiTim
A
ICr^phTiUt
Input
N
1StartAddress
irLp_I>uffer
|Page
Dm
1AcquisitionBufferSize
100
■IndexTncrement
1
■DisplayDataSize
100
DSrDdtftType
116"bitsignedinteger
成
Q-value
0
S«fhplin(R1
PlotDate.From
LefttoRisht
L«ft*shift«dD&tftDisplay
Y“
.=/
Autoscale
Oit
DCyjuG
0
AxesDispl$y
Oil
TimDisplayUnit
5
V
r…S2K…]Cancel1
Kelp1
图9设S图形功能
在弹出的图形窗11中单•击鼠标右键,选择"ClearDisplay",然后按Alt+F5运行程序•观察input甜H的内容。
图10inputis11的正弦波形
第二部分实验:
基于DSP系统的实验一一指示灯和拨码开关
一.实验目的
1.了解ICETEK-F28335-A评估板在TMS32OF28335DSP外部扩展存储空间上的扩展。
2•了解ICETEK-F28335-A评估板上指示灯和拨码开关扩展原理。
3.学习在C语言中便用扩展的控制寄存器的方法。
2-实验设备
计算机,ICETEK-F28335.A实验箱(或ICETEK仿真器+ICETEK-F28335-A评估板
+相关连线及电源)。
3.实验原理
1.TMS320F28335DSP的存储器扩展接I】
存储器扩展接「1是DSP扩展片外资源的主要接【1・它提供了一组控制信巧和地址、数据线.町以扩展各类存储器和存储器、寄存器映射的外设。
JCETEK-F28335.A评估板在扩展接门上除了扩展了片外SRAM夕卜,还扩展了指示灯、
DIP开关和D/A设备。
具体扩展地址如下:
0x180004-0x180005:
D/A转换控制寄存器
0x180001:
板上DIP开关控制寄存S
0x180000:
板上指示灯控制寄存器
■与ICETEK・F28335.A评估板连接的ICETEK-CTR显示控制模块也使用扩展空间控
制主要设备,相关寄存器地址如下表:
名称
地址
功能
属性
CTRGR
0x208000
企!
甘如¥存養
W
CTRLCDCR
0x208002
液晶刃泯寄心益
W
CTRLCDCMDR
0x208001
液為命令寄心益
W
CTRLCDLCR
0x208003
液晶左、卜W拎:
制當心器
W
CTRLCDRCR
0x208004
泱品右半Jjf拧制住佟器
W
CTRLR
0x208007
轴肋拧总寄心器
W
CTRLA
0x208005
发比一枚管控剳住存器
W
CTRKEY
0x208001
谜盈数丸冋汝奇心器
R
CTRCLKEY
0x208002
汇:
除筑£{奇存茶
R
2.指示灯与拨码开关扩展原理
4.实验步骤
1.打开工程文件
丁程文件为:
Lab301-Led
2.添加代码,编译、卜•載程序。
完成LED工程中led.c里的三个要求^即TASK1、TASK2.TASK3。
其中TASK3应注总:
DIP的端
【】地址定义.并II可以通过修改LED4DIP两者之间的对应关系,来修改拨码开关与LED
灯的对应关系,请自行尝试。
3.运行程序观察结果
5-实验结果
1.测试LED
//LED=1;
//LED=2;
LED=6;//提示^分别测试这些代码点亮了哪些LED.令助丁•理解
LED=1时第一个灯亮,LED=2时第二个灯亮,LED=6时中间两个灯亮
2.TSAKbLED灯以递增的方式点亮
LED程序:
ffdefineLED(•(unsignedshortint*)0x180000)
for(;;)//递增点亮
LED=0x01;Delay(lOOO);
LED=0x02:
Delay(lOOO):
LED=0x04:
Delay(lOOO):
LED=0x08;Delay(lOOO);
/*for(;;)〃递减点亮
LED=0x01:
Delay(lOOO):
LED=0x02;Delay(lOOO);
LED=0x04:
Delay(lOOO):
LED=0x08:
Delay(lOOO):
开关程序:
#defineSW(*(unsignedshortint*)0x100001)//添加丨的定义
LED=SW:
町知:
映射在扩展存储器空间地址上的指示灯寄存器在设置时是低4位有效的・数据的%殳低位对应指示灯D1,次低位对应D2,•…依次类推。
町知:
映射在扩展存储器空间地址上的拨码开关控制寄存器在回读时是低4位冇效的,数据的址低位对应拨码开关1,次低位对应2,•…依次类推。
JJ
eal11meCsp.co*.&
水一F283354ft叫PW
Ifffffi
L12941
wTpTSSri^
图5.1实验现象
六•问题与思考
ICETEK-F28335-A评估板上的指示灯控制寄存器是町读可写的,请问用什么办法M
以回读指示灯状态?
答:
ftdefineLED(*(unsignedshortint*)0x180000)
unsignedintLIGHT;〃定义变量
LIGHT=LED:
再将LIGHT添加到观察窗,选择菜单栏中Debug的Real-timeMode.在WatchWindow中
选IfContinuousRefresh.并选择16进制观察。
运行程序,就町以观蔡到指示灯的状态。
一.实验目的
4.
学会C语言中断程序设汁,以及运用中断程序控制程序流程。
二-实验设备
计算机,ICETEK-F28335-A实验箱(或ICETEK仿真器+ICETEK-F28335-A系统板+相关
连红及电源)O
3-实验原理
1.通用定时器介绍及共控制方法
TMS320F28335A内部有三个32位通用定时器(TIMERO1/2),定时器1和2被保留给
实时操作系统(DSPBIOS)用,只有定时器0町以提供给用户使用。
2•中断响应过程
a.接受中断请求。
必须由软件中断(从程序代码)或锁件中断(从一个引脚或一个基
丁・芯片的设备)捉出请求去暂停当前主程序的执行。
b.响应中断。
必须能够响应中断请求。
如果中断是町屏蔽的,则必须满足一定的条件,
按照一定的顺序去执行。
而对于非可屏蔽中断和软件中断,会立即作出响应。
C.准备执行中断服务程序并保存寄存器的值0
d・执行中断服务子程序。
调用相应得中断服务程序ISR,进入预先规定的向量地址,并
且执行已写好的ISR。