东南大学DSP第一次实验报告.docx

上传人:b****3 文档编号:4807876 上传时间:2022-12-09 格式:DOCX 页数:22 大小:640.08KB
下载 相关 举报
东南大学DSP第一次实验报告.docx_第1页
第1页 / 共22页
东南大学DSP第一次实验报告.docx_第2页
第2页 / 共22页
东南大学DSP第一次实验报告.docx_第3页
第3页 / 共22页
东南大学DSP第一次实验报告.docx_第4页
第4页 / 共22页
东南大学DSP第一次实验报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

东南大学DSP第一次实验报告.docx

《东南大学DSP第一次实验报告.docx》由会员分享,可在线阅读,更多相关《东南大学DSP第一次实验报告.docx(22页珍藏版)》请在冰豆网上搜索。

东南大学DSP第一次实验报告.docx

东南大学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

£lD

float

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«inl

Ux

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

K

0KOH

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(R

1

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。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1