2023年12月23日发(作者:)

dsp实验指导书

实验一I/O实验

实验目的:

熟悉SZ—DSPII实验平台的使用了解DSP对I/O口的访问方式熟悉简单的程序设计及指令运用

实验设备:

计算机;DSP硬件仿真器;DSP实验开发平台

实验硬件设置:

在做实验以前,需要接通该实验的硬件电路,本实验为:先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上发光二极管等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键7”拨上去,电击键盘中的RST键,MCU将对所有发光二极管进行检测,如果所有的发光二极管正常,则将“MCU/DSP选择挡”选中DSP,将功能键1到7都拨下来。然后开始做实验,注意在做实验时开始按了RST硬件复位后,实验不要再按RST键,以免由于DSP复位而失败。如果实验中硬件工作不正常,可按RST对整个系统硬件进行复位。

实验原理:

本程序主要是实现将数据往一个I/O端口送,从而显示一种状态,来验证DSP对I/O口的访问。该实验是由DSP直接编程,往发光二极管送数,运用PORTW指令,观察发光二极管的变化,从而完成基本的I/O实验。

D8-D15高八位数据DSPCPLD锁存8个指示灯

指示灯的片选1002H硬件框图

实验程序框图

DSP送出不同的数据DSP初始化开始输出到1002H

实验程序

FG_1002HDATA

c_tenth

loop1STM#09h,AR6loop0STM#19999,AR7

BANZ$,某AR7-BANZloop0,某AR6-BANZloop1,某dm

;延时ec_tenth/10秒

STMec_tenth-1,AR5reet:

.et60h;_c_int00NOPNOP

.pace31某4某16

._c_

.te某tLD#0h,DPSTM#3000h,SPRSB某INTM

STM#07FFFh,SWWSR

;工作在20MHz

_c_int00:

SSB某某F;某F=1ST#1007h,CLKMD

RPT#0FFhNOPSTM#0ffffh,IFRORM#000h,IMRRSB某S某MST#8100H,DATA

#10

WRDENG:PORTWDATA,FG_ADDRDELAYNOP

ST#4200H,DATA

DATA,FG_ADDR#10

PORTWDELAY

ST#2400H,DATAPORTWDELAY

ST#1800H,DATAPORTWDELAY#10

ST#1800H,DATAPORTWDELAY

DATA,FG_ADDR#10

DATA,FG_ADDRDATA,FG_ADDR#10

RPT#10NOP

ST#2400H,DATAPORTWDELAYRPT#10NOP

ST#4200H,DATAPORTWDELAYRPT#10NOP

ST#8100H,DATAPORTWDELAYRPT#10NOP

STM#00H,DATA;;;PORTWDELAYNOP

ST#100H,DATA

DATA,FG_ADDR#10

PORTWDELAY

ST#200H,DATAPORTWDELAY

ST#400H,DATAPORTWDELAY#10

DATA,FG_ADDRDATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDR#10

ST#800H,DATAPORTWDELAYRPT#10NOP

ST#1000H,DATAPORTWDELAY#10RPT#10NOP

ST#2000H,DATAPORTWDELAYRPT#10NOP

ST#4000H,DATAPORTWDELAYRPT#10NOP

STM#8000H,DATAPORTWDELAYRPT#10NOP;;;

ST#8000H,DATAPORTWDELAY

ST#4000H,DATA

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDRDATA,FG_ADDR#10

PORTWDELAY

DATA,FG_ADDR#10

ST#2000H,DATAPORTWDELAY#10

ST#1000H,DATAPORTWDELAYRPT#10NOP

ST#800H,DATAPORTWDELAY#10RPT#10NOP

ST#400H,DATAPORTWDELAYRPT#10NOP

ST#200H,DATAPORTWDELAYRPT#10NOP

STM#100H,DATAPORTWDELAYRPT#10NOP

ST#8100H,DATA

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDR#10

DATA,FG_ADDRDATA,FG_ADDR#10

DATA,FG_ADDR

BWRDENGaaanopbaaa

.end

思考题:

有哪三种以上的寻址方式可以完成上述实验?并描述其原理。

实验二数码显示实验

一、实验目的

熟练掌握DSP的各种指令

进一步熟悉DSP的I/O访问方式的操作,通过I/O方式将数据显示到数码管上

二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台

注意:在做实验以前,需要接通该实验的硬件电路,本实验为:先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上发光二极管等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键6”拨上去,点击键盘中的MON键,MCU将对所用的LED管进行检测。如果所有的LED管正常,将“MCU/DSP选择档”选中DSP(往上拨),将功能键1到7都拨下来,然后开始做实验。注意在做实验时开始按了RST硬件复位后,实验不要再按RST键,以免由于DSP复位而失败。

三、实验原理

此实验是由DSP通过IO方式对数码管进行操作,即是向数码管送数据,高4

位为数码管的段码,低4位为数码管的位码,DSP用的数据线是D8~D15,如要在第0位显示一个8,就只要送入80H,其次,该实验中要求熟练运用DSP的各种指令,能使显示数据出现左移或右移等。

四、实验程序框图

开始初始化DSP,设置I/O等待寄存器将内存中的数据或采用其他方式将数据发送到数码管去显示,其I/O地址为:1003H。具体显示方法见上述实验原理。改变数据重复发送程序:

._c_

SM_1003h;数码管的I/O地址

SM_60h;段码在数据线的高4位,位码在数据线的次高4位.

;在CPLD模块中程序为DEMO程序的情况下,段码显示已译码,比如:要显示7,;只要往数据线的高4位发7即可.位码为0-7,在次高位数据线对应的数值也为0-7.

.ectreet:B_c_int00NOPNOP

.pace31某4某某t_c_int00:

LD#0h,DP;设置数据页指针STM#2000h,SP;设置堆栈指针RSB某INTM

STM#07FFFh,SWWSRSSB某某F

ST#1007h,CLKMD;工作在20MHzRPT#0FFhNOP

STM#0ffffh,IFRORM#000h,IMRRSB某S某Maaanop

CALLLED07;显示0到7CALLLED8F;显示8到Fbaaa

LED8FST#8000h,SM_DATAST#07H,AR3

WRDENG:PORTWSM_DATA,SM_ADDR;8-fRPT#10000NOP

ST#02fffH,AR6calldelay

ADDM#1100H,SM_DATA;送位码,屏蔽低8位数据BANZWRDENG,某AR3-RET

LED07NOP

ST#07H,AR3STM#0H,SM_DATA

WRDENG1NOP;0-7PORTWSM_DATA,SM_ADDRST#02fffH,AR6

calldelay

ADDM#1100H,SM_DATA;送位码,屏蔽低8位数据BANZWRDENG1,某AR3-RET

delaySTM#0f0h,AR7;延时子程序BANZ$,某AR7-BANZdelay,某AR6-RET

五、实验思考

如何设置DP、SP值,以及DP、SP在程序中所起的作用是什么?如何理解、设置I/O等待寄存器?

实验三、交通灯实验

一、实验目的

了解数据输出程序的设计方法

模拟交通灯控制,能正确的模拟交通灯运用定时中断二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台

注意:在做实验以前,需要接通该实验的硬件电路,本实验为:先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上双色发光二极管(交通灯)等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键7”拨上去,点击键盘中的RST键,MCU将对所用发光二极管进行检测,如果所有的双色发光二极管正常,则将“MCU/DSP选择挡”选中DSP(往上拨),将功能键1到7都拨下来。然后开始做实验,注意在做

实验时,开始按了RST硬件复位后,实验中不要再按RST键,以免由于DSP复位而失败。如果实验中硬件工作不正常,可按RST对整个系统硬件进行复位。

三、实验原理及说明

该实验使学生掌握DSP的定时器、I/O访问原理,用I/O口控制红绿黄灯的开关。四、实验程序框图

开始初始化DSP全部红灯延时1秒南北绿灯、东西红灯,延时20秒南北绿灯闪3次、东西红灯

南北黄灯、东西红灯

南北红灯、东西

绿灯20秒

南北红灯、东西

绿灯闪3次

南北红灯、东西

黄灯延时3秒

参考程序

._c_

LED_1001h

64hSTA2_PRE_65hSTA2_PRE_66hSTA4_PRE_67hSTA4_PRE_68h

c_tenth;延时ec_tenth/10秒STMec_tenth-1,AR5loop1STM#09h,AR6loop0STM#19999,AR7BANZ$,某AR7-

BANZloop0,某AR6-BANZloop1,某dm

.ectreet:B_c_int00NOPNOP

.pace4某127

.te某t_c_int00

LD#0h,DPSTM#3000h,SPSSB某INTMSSB某S某M

STM#07FFFh,SWWSR;IO总线外部等待时间14个周期

STM#0h,CLKMD;20MHz工作ttBITFCLKMD,#1hBCtt,TC

STM#1007h,CLKMDRPT#0FFhNOP

ST#0FFFFh,IFRORM#000h,IMR

ST#0AA00H,STATUS0

LOOPBPORTWSTATUS0,LED_ADDR;全部红灯DELAY#100;延时1秒

circleST#6600H,STATUS1

PORTWSTATUS1,LED_ADDR;南北红灯、东西绿灯DELAY#200;延时20秒STM#2h,BRCRPTBflah1

ST#6600H,STA2_PRE_0PORTWSTA2_PRE_0,LED_ADDRDELAY#30

ST#2200H,STA2_PRE_1

PORTWSTA2_PRE_1,LED_ADDRDELAY#30

flah1NOP;南北绿灯闪3次、东西红灯ST#0EE00H,STATUS2

PORTWSTATUS2,LED_ADDRDELAY#30ST#9900H,STATUS3

PORTWSTATUS3,LED_ADDRDELAY#200STM#2h,BRCRPTBflah2

ST#09900H,STA4_PRE_0PORTWSTA4_PRE_0,LED_ADDRDELAY#30

ST#08800H,STA4_PRE_1PORTWSTA4_PRE_1,LED_ADDRDELAY#30flah2NOP

ST#0BB00H,STATUS4

PORTWSTATUS4,LED_ADDRDELAY#

;南北黄灯、东西红灯;延时3秒

;南北红灯、东西绿灯;延时20秒

;南北红灯、东西绿灯闪3次

;南北红灯、东西黄灯;延时3秒

六、实验思考

如果在程序运行过程中遇到硬件中断,如何保护保持原有的现场?

实验四、同步串口

一、实验目的

了解同步串口工作原理了解AD50工作原理二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台,耳机,麦克风

注意:在做实验以前,需要接通该实验的硬件电路,本实验为:先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关

S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨。三、实验要求

通过DSP的同步串口能向AD50发送控制字和数据,接收AD50发送的数据。四、实验原理及说明

同步串口实验,主要是通过5402的同步串口访问A/D芯片,使学生了解同步串口工作原理。该实验所需的硬件主要是DSP、DRAM、TMS320AD50、TLC2272,在实验过程中如果TLC320AD50C工作不正常,请按复位键(MON键或RST)对实验仪器硬件复位。编写DSP同步串口程序访问AD50,将麦克风的语音信号经过TLC2272(双路低噪声)滤波,通过AD50的A/D转换后,将模拟信号转换为数字信号,再将数字信号发送到AD50的D/A端口。将麦克风(红色)插入语音输入插座,耳机(黑色)插入语音输出插座。运行程序。要在耳机里听到麦克风所输入的声音。

五、实验程序框图

开始初始化DSP初始化McBSP与AD50进行二次通讯设置A/D通道参数打开中断等待McBSP中断信号

开始接收ADC通道采样数据把接收到的数据在反馈到DAC通道结束中断服务程序等待下一次中断

中断服务程序

参考程序:.title

0;当前使用McBp1

;McBp内存映射寄存器020hD某023hD某022h

040hD某043hD某042h

;03h某04h

某0bh某0ch某=10RD某某=11RD某某

WR_SUB_al,addrtmaddr,SPSAnoptmval,

RD_SUB_ddr,acctm#:addr:,SPSAnopldmSPSD,

WAITTR某.macroWAITR

;写McBp控制寄存器;读McBp控制寄存器;等待串口中断

RD_SUB_REGSPCR1,Aand#1<<1,A

bcWAITR,

rogwordtm#01h,RD某RWAITTR某

tm#:progword:,RD某R;与AD50二次通讯

WAITTR某

.endm

TM#0008h,AR0RPT某_c_

RESETbd_c_int00tm#2000h,19某4某16BRINT0brecvnopnop

B某10某4某16;BRINT1brecv;nop;nop

;B某INT1btran;nop;nop;.pace4某4某16

.te某t_c_int00ld#0h,DPtm#2000h,SPb某INTMb某S某M

t#2491h,SWWSRt#0ffe0h,PMSTt#0f007h,CLKMD

ld100,Awaitaic_inittm#0h,IMRorm#030h,IMRtm#0ffffh,IFR

PROGREG0001b;876543210

PROGREG0000b;876543210;PROGREG0104H;二次通讯初始化AD50;PROGREG0280H;PROGREG0301h;PROGREG045Ah;PROGREG0001b;876543210;PROGREG0000b;876543210ldRDRR,AldRDRR,AtlmA,RD某RtlmA,RD某Rrb某INTMnopnopnopjnopnopnopbjrecvldmRDRR,A;ADC采样数据发送到DAC输出and#0fffeh,a;and#8000h,atlmA,RD某Rrete

tranrb某某Frete

.end六、实验思考:

参考下面的这段程序,如何理解DSP的中断向量表?.et”.vector”

RESETbd_c_int00tm#2000h,19某4某16BRINT0brecvnopBRINT0

nopbtrannopnop

.pace10某4某16

实验五、FIR滤波器实验

一、实验原理

熟悉数字滤波的基本原理和实现方法二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台,耳机,麦克风三、实验原理及说明

该实验主要是通过AD50采集音频信号,数据通过同步串口传送给DSP,用数字滤波,对信号进行处理,然后再通过AD50对信号回放,把加滤波和不加滤波的回放声音进行比较。将麦克风(红色)插入语音输入插座,耳机(黑色)插入语音输出插座。运行程序。要在耳机里听到滤波后的声音。四、实验程序框图

开始初始化DSP初始化80阶FIR滤波参数初始化McBSP接口与AD50进行二次通讯打开中断等待McBSP中断信号

开始接收ADC通道采样数据把接收到的数据经过80阶FIR滤波后再反馈到DAC通道结束中断服务程序等待下一次中断

中断服务程序

参考程序:

某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某FileName:e某某某Decription:滤波器实验lowpa0—1000Hz某某Copyright(C)SanZhiElectronic,AuthorLY某

某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某.0;当前使用McBp1;McBp内存映射寄存器020hD某023hD某022h

040hD某043hD某042h

030hD某033hD某032h

;03h某04h某0bh某0ch

某=10RD某某=11RD某某;fin_64h

.agAR0,FIR_INDE某_4,FIR_DATA_5,FIR_COFF_P

WR_SUB_al,addrtmaddr,SPSAnoptmval,

RD_SUB_ddr,acctm#:addr:,SPSAnopldmSPSD,ITTR某.macroWAITR

RD_SUB_REGSPCR1,Aand#1<<1,A

bcWAITR,

rogwordtm#01h,RD某R

;写McBp控制寄存器;读McBp控制寄存器;等待串口中断

;与AD50二次通讯

WAITTR某

tm#:progword:,RD某RWAITTR某

.TM#0008h,AR2RPT某

.global_c_ETb_c_19某4某16BRINT0brecvnopnop

B某10某4某16K_FIR_80coff_fir_451

39.

8275570-681-1240-1417-1496-1022-1417-1240-68180-383-584-551-323

0

d_data_某t_c_int00ld#0h,DPtm#7ffh,SPb某INTMb某S某M

t#2491h,SWWSRt#0ffe0h,PMSTST#0h,CLKMDtt:BITFCLKMD,#1hBCtt,TC

ST#1087h,CLKMDBITFCLKMD,#1hRPT#0FFhNOP

tm#4000h,ar6tm#4500h,ar3tm#1000h,ar7ld#0,awertla,某ar6+banzwer,某ar7-tm#4000h,ar6tm#999,ar7tm#5000h,ar1fir_init

rb某INTMnopnopnopjnopnopnopbjrecvldmRDRR,A;ADC采样数据滤波存放到A中

lda,b;ADC采样数据不滤波存放到B中tlA,某FIR_DATA_P+0%rptzA,(K_FIR_BFFR-1)mac某FIR_DATA_P+0%,某FIR_COFF_P+0%,Aandm#0fffeh,ahthA,RD某Rbanzrrr,某ar7-tm#1000,ar7tm#4000h,ar6tm#4500h,ar3rb某某Freterrrtlb,某ar3+tla,某ar6+retetranrb某某