dsp硬件实验报告北邮.docx

上传人:叶*** 文档编号:35157356 上传时间:2022-08-20 格式:DOCX 页数:22 大小:40.10KB
返回 下载 相关 举报
dsp硬件实验报告北邮.docx_第1页
第1页 / 共22页
dsp硬件实验报告北邮.docx_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《dsp硬件实验报告北邮.docx》由会员分享,可在线阅读,更多相关《dsp硬件实验报告北邮.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、北邮DSP硬件实验报告学院:班级:学号:姓名:班内序号:指导老师: 第三章 5416常规实验实验一:常用指令实验1. 实验目的:了解DSP开发系统的组成和结构,熟悉DSP开发系统的连接和开发界面,熟悉C54X系列的寻址系统, 熟悉常用的C54X系列指令的用法。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱3. 程序源代码注释;* 北京达盛科技有限公司;* 研 发 部;* ;* 文件名称 : xf.asm ;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP TMS320VC54X;* 软件环境 : CCS3.1 (5000系列);* 试验接线 : 1、实验箱的

2、拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 可以观察到实验箱CPLD右上方的D3按一定频率闪烁。.mmregs -(entermemory-mappedregistersintothesymboltable)-进入记忆映射注册进入符号表.global _main -(identifyoneormoreglobal(external

3、)symbols)-定义全局变量_main: stm #3000h,sp(堆栈指针寄存器)堆栈指针寄存器的值为3000h (#表示立即数)ssbx xf ;将XF置位,灯亮call delay (存储器延时) 调用延时子程序,延时 rsbx xf ;将XF复位 灯灭 call delay ;调用延时子程序b _main ;转移回main 函数,意为无限循环nop 无操作,延时子程序 nop delay: stm 270fh,ar1 指定ar1寄存器地址,设置为9999loop1: stm 0f9h,ar4 指定ar4寄存器地址,设置为249loop2:banz loop2,*ar4- ;条件转

4、移,每次转移ar4地址减一banz loop1,*ar1-; 条件转移,每次转移ar1地址减一ret ;循环嵌套,总循环次数为270f*0f9nopnop.end4. 实验现象可以看到实验箱上的XF灯以一定的频率闪烁当单击“Halt”时程序暂定,XF灯停止闪烁,当再次单击RUN时,XF灯又开始闪烁。实验二:数据储存实验1. 实验目的掌握TMS320C54的程序空间分配,掌握TMS320C54的数据空间的分配,熟悉操作TMS320C54数据空间的指令。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱3. 实验系统相关资料介绍本实验指导书是以TMS32OVC5410为例,介绍相关的内

5、部和外部内存资源。对于其它类型的CPU请参考查阅相关的资料手册。下面给出TMS32OVC5410的内存分配表: 对于存储空间而言,映像表相对固定。值得注意的是内部寄存器与存储空间的映像关系。因此在编程应用时这些特定的空间不能作其它用途。对于程序存储空间而言,其映像表和CPU的工作模式有关。当MP/MC引脚为高电平时,CPU工作在微处理器模式;当MP/MC引脚低电平时,CPU工作在为计算机模式。具体的内存映像关系如上图所示。4. 程序源代码及注释;* 北京达盛科技有限公司;* 研 发 部;* ;* 文件名称 : xf.asm ;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP

6、 TMS320VC54X;* 软件环境 : CCS3.1 (5000系列);* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x CPU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 可以观察到实验箱CPLD右上方的D3按一定频率闪烁。.mmregs.global _main _main: ;store datastm 1000h,ar1 ;address of

7、internal memory 指定内部ar1寄存器地址1000h stm 5000h,ar1 ;address of exterior memory 指定外部寄存器ar1的地址为5000hrpt #07h ;循环执行下一条指令,循环次数07h st0aaaah,*ar1+ ;ar1所指的内存赋予0aaaah,然后ar1所指地址加1,此语句过后1000至1007地址空间中存入了0AAAAstm 7h,ar3 指定ar3地址7h,循环次数stm1000h,ar1 设置ar1地址为1000hstm 1008h,ar2 ;设置ar2地址为1008hloop: ld*ar1+,t ;循环读取1000h

8、1007h stt,*ar2+ ;并将值赋予1008h1016hbanz loop,*ar3- ;循环次数为AR3here: ;死循环. b here ;可选择延迟的无条件转移,循环执行,无条件移至here.end5. 实验现象在CCS的“View”下拉菜单中的Memory窗口中查找C5416各个区段的数据存储器地址,在可以改变的存储器内容的地方,选定地址随意改变其中内容并观察结果;本实验要查看0x10000x100F单元的数值变化,输入地址0x1000;查看0x10000x100F单元的初始值,单击“Run”运行程序,也可以“单步”运行程序;单击“Halt”暂停程序运行。实验三:I/O实验1

9、. 实验目的了解I/O口的扩展,掌握I/O口的操作方法,熟悉PORTR,PORTW指令的用途,了解数字量与模拟量的区别和联系。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱,DSP仿真器3. 流程框图开始读入I/O数据 读出I/O数据结束 4. 程序源代码及注释;* 北京达盛科技有限公司;* 研 发 部;* ;* 文件名称 : exp03.asm ;* 适用平台 : EXPIII+实验系统;* CPU类型 : DSP TMS320VC54X;* 软件环境 : CCS3.1 (5000系列);* 试验接线 : 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54x C

10、PU板的跳线J2的1、2短接;* (HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;;* CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);;* 试验现象 : 分别调整数字输入单元的开关K1K8,观察LED1LED8亮灭的变化,以及输入和输出状态是否一致。.mmregs.global_main.text_main:stm3100h,sp ;定义sp的地址为3100stm1000h,ar1 ;定义ar1的地址为1000portr 8000h,*ar1 ;读入I/O 8000H数据,将其存储到数据空间的1

11、000H,读按键nop ;nopportw*ar1,8001h ;将数据空间的1000H单元的数据,写出到I/O 8001Hnopnop b _main ;程序跳转到main函数 nop nop .end5. 实验现象任意调整K0K7开关,可以观察到对应LP0LP7灯“亮”或“灭”;单击Halt”,暂停持续运行,开关将对灯失去控制。实验四:定时器实验1. 实验目的熟悉C54的定时器,掌握C54定时器的控制方法,学会使用定时器中断方式控制程序流程。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱,DSP仿真器3. 实验原理及流程框图1) 实验原理定时器实验时要用到C54芯片的定时器

12、控制寄存器,定时器时间常数寄存器,定时器中断响应,寄存器定义详见C54芯片资料。C54的定时器是一个20位的减法计数器,可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断,控制定时器中断频率的两个寄存器是定时周期寄存器PRD和定时减法寄存器TDDR。定时器实验通过 LED(LP1LP7)来显示。在本系统中,时钟频率为20MHZ,令PRD = 0x4e1f,这样得到每1/1000秒中断一次,通过累计1000次,就能定时1秒钟。2) 流程框图主程序:开始系统初始化 定时器初始化执行程序,定时中断端口赋值输出结束设置定时器长度关掉中断停止中断器 中断程序: 打

13、开中断运行定时器允许定时器中断4. 源程序代码及注释* 文件名称 : exp04.c#include tms320uc5402.h/*全局变量定义与初始化*/ioport unsigned port8001;unsigned int show=0x00aa;unsigned int num=0x0000;/*函数、子程序声明与定义*/void sys_ini() 系统初始化子程序 asm( ssbx INTM); 全局禁止所有可屏蔽中断 PMST &=0x00FF; 向量表映射到0x0080空间 前八位全部置0 SWWSR=0x7000; io空间7个等待周期,程序与数据空间0个等待周期 CL

14、KMD=0x17FA; 定义最长延长时间void timer0_ini() 定时器初始化子程序 TCR|=0x0010; 停止定时器0 PRD=0x2710; PRD=10000(D) TCR|=0x000A; 定义定时器时钟=1/(20M/10/10000)=5ms IMR=0x0008; 使能定时器0中断 IFR=0xFFFF; 清除所有中断标志位 asm( rsbx INTM); 全局使能可屏蔽中断 TCR&=0xFFEF; 开始定时器0 TCR|=0x0020; 复位定时起0/*中断服务子程序声明与定义*/interrupt void timer0() 定时器0中断子程序 if(num

15、=200) 记200次定时器中断,时间=200*5ms=1s,即灯闪烁频率 show=show; 取反 num=0; else num+; return; /*主程序*/void main(void) sys_ini(); timer0_ini(); for(;) 循环中断子程序 port8001=show; 定义show,灯亮地址*文件名称:vectors.asm 向量程序 .global _c_int00(c程序入口),_timer0(时间间断点) .sect .vecsreset: 复位中断响应 b _c_int00 ;c_int00是c程序的入口,这里即进入main函数中 nop no

16、pnmi: rete 中断屏蔽置为0,响应中断,不可屏蔽中断产生时,使中断屏蔽取消,后返回。 nop nop nop; software interrupts 软件中断sin17: .space 4*16 保留出中断向量的地址空间sin18: .space 4*16sin19: .space 4*16sin20: .space 4*16sin21: .space 4*16sin22: .space 4*16sin23: .space 4*16sin24: .space 4*16sin25: .space 4*16sin26: .space 4*16sin27: .space 4*16sin28

17、: .space 4*16sin29: .space 4*16sin30: .space 4*16int0: rete ;EXTERNAL INT0 外部用户中断中断寄存器设置RETE返回并允许中断外部中断产生时,直接返回。 nop nop nopint1: rete ;EXTERNAL INT1 nop nop nopint2: rete ;EXTERNAL INT2 nop nop noptint0: b _timer0 ;计时器每中断一次,返回一个值到TINT端口,此时转移回TIMER函数,计数器加1 nop nopbrint0: rete ; nop nop nopbxint0: re

18、te ; nop nop nopdmac0: rete ;RESERVED OR DMA CHANNEL0 INTERRUPT nop nop noptint1_dmac1: rete ;TIMER1 INTERRUPT OR DMA CHANNEL1 INTERRUPT nop nop nopint3: rete ;EXTERNAL INT3 nop nop nophpint: rete ;HPI INTERRUPT nop nop nopbrint1_dmac2: rete ;McBSP1 RECEIVE INTERRUPT OR DMA CHANNEL 2 INTERRUPT nop n

19、op nopbxint1_dmac3: rete ;McBSP1 TRANSMIT INTERRUPT OR DMA CHANNEL 3 INTERRUPT nop nop nopdmac4: rete ;DMA CHANNEL 4 INTERRUPT nop nop nopdmac5: rete ;DMA CHANNEL 5 INTERRUPT nop nop nop; *结束*5. 实验现象单击“Run”运行,可观察到LED灯(LP0LP7)以一定的间隔时间不停摆动;单击“Halt”,暂停程序运行,LED灯停止闪烁;.单击“Halt”,暂停程序运行,LED灯停止闪烁。实验五:INT2中断实

20、验1. 实验目的1) 掌握中断技术,学会对外部中断的处理方法;2) 掌握中断对程序流程的控制,理解DSP对中断的响应时序。2. 实验设备计算机,CCS3.3版软件,EXPIII+实验箱,DSP仿真器3. 源程序代码及注释* 文件名称 : initial.asm.mmregs.global _initial .text _initial:(初始化)NOP LD #0, DP ; reset data pointer ld stm赋值的意思 dp指针置0STM #0, CLKMD ; 定义DSP时钟STM #0, CLKMD ; 分频设置TstStatu1: LDM CLKMD, A SLKMD的

21、0值给a AND #01b, A ;poll STATUS bit BC TstStatu1, ANEQ STM #0xF7FF, CLKMD ; set C5402 DSP clock to 10MHz 把时钟设为10mhzSTM 0x3FA0, PMST ; vectors at 3F80h 把pmst向量表映射到0x3fa0空间地址上ssbx 1,11 ; set st1.intm=1 stop all interrupt设置ST1.INTM=1,停止所有的中断stm #00h,imr;stop all interrupt停止所有的中断 出现imr跳转到向量程序stm #0ffffh,i

22、fr;clear all interrupt sign全置1清除所有中断的标志位,中断标志寄存器(IFR)用来指明各个中断的目前状态。stm #04h,imr;allow int2 interrupt开启int2的外部中断 4=0100跳转到向量程序rsbx 1,11 ;allow all interrupt打开所有中断总开关ret .end* 文件名称 : int2.cinterrupt void int2c(); extern void initial(); extern void porta();extern void portb();int flag=0,i=0; 声明两个整形变量ma

23、in()initial(); 初始化while(1) 死循环interrupt void int2c() 中断子程序 i=i+1; if(i=1)if(flag=0) flag=1;porta();i=0;elseflag=0; portb(); i=0; else i=0;return; 死循环执行下面步骤 * 文件名称 : port.asm.mmregs.global_porta.global_portb_porta: stm304h,ar1 将304h赋给辅助寄存器ar1st0005h,*ar1 为内存304h赋予5555h(0101010101010101)portw*ar1,8001

24、h 将内存304h的值写入8001h端口ret_portb:stm304h,ar1 st000ah,*ar1 为内存304h赋予0aaaah(1010101010101010)portw*ar1,8001h 将内存304h的值写入8001端口ret* 文件名称 : vectors.asm .sect .vectors .ref _c_int00 ; C entry point .ref _int2c .align 0x80 ; must be aligned on page boundary RESET: ; reset vector复位中断响应 BD _c_int00 ; branch to

25、 C entry point进入main函数中 STM #200,SP ;开辟堆栈空间 stack size of 200nmi: RETE ; enable interrupts and return from one NOP NOP NOP ; software interruptssint17 .space 4*16 sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .spa

26、ce 4*16sint26 .space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: RETE NOP NOP NOPint1: RETE NOP NOP NOPint2: b _int2c ;启动int2 外部中断每当接收到外部信号时跳转到int2c,int2c函数,LED灯的状态变化一次 NOP NOPtint: RETE NOP NOP NOPrint0: RETE NOP NOP NOPxint0: RETE NOP NOP NOPrint1: RETE NOP NO

27、P NOPxint1: RETE NOP NOP NOPint3: RETE NOP NOP NOP4. 实验现象单击“Run”运行程序,反复拨动开关K0,观察LP1LP7 LED灯亮灭变化;单击“Halt”暂停程序运行,反复拨动开关K0,LP1LP7 LED灯亮灭不发生变化。实验六:A/D转换实验1, 实验目的熟悉A/D转换的基本原理,掌握AD7822BN的技术指标和常用方法,掌握并熟练使用DSP和AD7822BN的接口及其操作。2, 实验设备计算机,CCS3.3版软件,EXPIII+实验箱,DSP仿真器3, 实验步骤a) 开关的设置 1、实验箱的拨码开关SW2.4置OFF(54x的译码有效

28、);54x CPU板的跳线J2的1、2短接(HPI 8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态); 2、SW2的sw2=ON,sw1=OFF;对应5X的int1中断分配给AD中断使用;JP3的3、6位置ON,其余置OFF;S23全部置OFF;用连接线连接模拟信号源2号孔信号源1与A/D单元2号孔ADIN1。b) 运行程序加载“exp06.out”示范程序,在“exp06.c”中设置断点,运行程序,通过用下拉菜单中的View / Graph的“Time/Fre

29、quency”打开一个图形观察窗口,调节输入信号的频率或幅值,观察图形情况(幅值和频率),设置该图形观察窗口的参数,观察起始地址为0x1000H,长度为256的内存单元内的数据,单击“Animate”运行程序,在图形观察窗口观察A/D转换后的采样波形。4, 源程序代码及注释* 文件名称 : exp06.c#include tms320uc5402.h/*全局变量定义与初始化*/ad7822的地址ioport unsigned port8008; unsigned int data_buff256; unsigned int j=0;/*函数、子程序声明与定义*/void sys_ini() 系

30、统初始化子程序 全局禁止所有可屏蔽中断 asm( ssbx INTM); 向量表映射到0x0080空间 PMST&=0x00FF; io空间7个等待周期,程序与数据空间0个等待周期 SWWSR=0x7000; 分频模式 CLKMD=0x0000; while(CLKMD=0x0001); 0x16进制 0001每个对应4个二进制 /CLKOUT=(3+1)*CLKIN=40M,自动延时最长时间 根据器件来 时钟变成40mhz CLKMD=0x37FA; /CLKOUT=(1+1)*CLKIN=20M,自动延时最长时间 /CLKMD=0x17FA; void int1_ini() IMR=0x0

31、002; imr到向量程序 IFR=0xFFFF; 置1清除所有中断标志位 asm( rsbx INTM); /*中断服务子程序声明与定义*/interrupt void int1() int1中断子程序 data_buffj(数组)=port8008&0x00FF; 读取数据 j+; if(j=255) 每隔256取一个 j=0; 进行采样 return; /*主程序*/void main(void) sys_ini(); 调用系统初始化函数 int1_ini(); for(;) 死循环 /*结束*/ *文件名称:vectors.asm .global _main,_int1 .sect .

32、vecsreset: b _main ;RESET VECTORS nop nopnmi: rete ;NMI nop nop nop; software interruptssin17: .space 4*16sin18: .space 4*16sin19: .space 4*16sin20: .space 4*16sin21: .space 4*16sin22: .space 4*16sin23: .space 4*16sin24: .space 4*16sin25: .space 4*16sin26: .space 4*16sin27: .space 4*16sin28: .space 4*16sin29: .space

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁