您好,欢迎访问三七文档
实验一数字IO应用实验—、实验目的1.了解DSP开发系统的组成和结构2.在实验设备上完成I/O硬件连接,编写I/O实验程序并运行验证。3.内存观察工具的使用二、实验设备计算机,CCS3.1版本软件,DSP仿真器,教学实验箱三、实验原理本实验程序由二部分组成:1.由外部中断1产生中断信号2.键值读取程序:该部分有两种方法进行键值的判断。方法1:利用内存观察工具进行观察方法2:利用LED1-LED8的亮灭对应显示键值。a)外部中断1的应用参照实验五;b)内存观察键值:程序中定义了三个变量“W”“row”和“col”。“W”代表是CPLD中键盘的扫描数值,“row”和“col”分别代表键盘的行和列,由行和列可以判定按键的位置。上述三个变量可以在观察窗口中观察的。c)利用LED灯显示键值原理,参看实验一。具体的LED灯显示值以查表的形式读出,请参看“e300_codec.h”库文件。本实验的CPLD地址译码说明:基地址:0x0000,当底板片选CS0为低时,分配有效。CPU的IO空间:基地址+0x0200LED灯output8位外部中断用XINT1:由CPLD分配,中断信号由键盘按键产生,中断下降沿触发。KEY_DAT_REG(R):基地址+0x0004;四、实验步骤和内容1.2407CPU板JUMP1的1和2脚短接,拨码开关S1的第一位置ON,其余置OFF;2.E300板上的开关SW4的第一位置ON,其余OFF;SW3的第四位置ON其余的SW置OFF3.运行CodeComposerStudio(CCS)(ccs3.1需要“DEBUG→Connect”)4.打开系统项目文件\e300.test\normal\05_keyinterface\E300_keyled.pjt;5.编译全部文件并装载“\Debug\keyled.out”文件6.单击“Debug\GoMain”跳到主程序的开始;7.指定位置设置断点;8.View--〉WatchWindow打开变量观察窗口;9.将变量“w”“row”和“col”添加到观察窗口中,改变变量观察窗口的显示方式为HEX显示。10.点击“Debug--〉Animate”全速运行,然后点击E300板上键盘按键,观察窗口中变量变化,同时LED1-LED8灯也相应变化,指示键值。(注意程序中KEY_E和KEY_F分别代表键盘上的“*”和“#”键值。十六进制数代表的意义为:高4位为按键的行值,低4位为按键的列值。注意:“w”中的低八位表示11.关闭所有窗口,本实验完毕.五、实验程序框图六、实验结论本实验程序采用外部中断的方法来判断键盘是否被按下,除了这种方法外,还可以根据键盘按下标志位“KEY_FLAG”,利用查询方式来编写程序.“KEY_FLAG”是CPLD内部状态寄存器中的一个只读位.如下表:CPLD内部状态寄存器(只读):CPLD_ST_REG(R):基地址+0x002D7D6D5D4D3D2D1D0KEY_FLAGLCD_ndefLCD_OUT实验二定时器应用实验一、实验目的1、熟悉LF2407的定时器;2、掌握LF2407的定时器的控制方法;3、学会使用CPU定时器中断方式控制程序流程。二、实验设备计算机,CCS3.1版软件,DSP教学实验箱,F2407CPU板。三、实验原理说明本实验是采用CPU定时器来定时使LED亮灭的。LF2407的通用定时器功能强大,除了做通用定时使用外,还可以配合事件管理器模块产生PWM波形。可以被特定的状态位实现停止、重新启动、重设置或禁止,可以使用该定时器产生周期性的CPU中断。在本系统中,时钟频率为40MHz,设置相应寄存器,使得到每1/1000秒中断一次,通过累计1000次中断,就能产生1秒钟的定时。样例实验的程序框图如下:四、实验步骤和内容1、F2407CPU板的JUMP1的1和2脚短接,拨码开关S1的第一位置ON;其余置OFF。2、E300底板的开关SW4的第1位置ON,其余位置OFF。其余开关设置为OFF。3、运行CCS软件,调入样例程序,装载并运行;(进入CCS界面后需要点“Debug--Connect”)4、用“Project//Open”系统项目文件\e300.test\normal\03_timer\timer.pjt;5、编译全部文件并装载“..\debug\timer.out”;6、单击“Debug\RUN”运行,可观察到灯LED1~LED8的闪烁变化。7、单击“Debug\Halt”,暂停程序运行,LED灯停止闪烁;单击“RUN”,LED灯又开始闪烁变化8、结束实验程序五、小结与体会通过本次实验,让我对DSP这门课程在应用软件上有了基本的操作知识,以及通过对定时器控制C语言编程的编写,已经基本掌握了定时器的基本原理以及中断基本原理,并能够很好的进行设计,达到对软硬件结合使用。实验三AD转换实验—、实验目的1.熟悉CPU内部AD转换的基本原理。2.掌握TMS320LF2407A的内部ADC功能模块的指标和常用方法。二、实验设备计算机,CCS3.1版本软件,DSP教学实验箱,2407CPU板,信号线,示波器三、实验原理TMS320LF2407ADSP自带16路10位单极性ADC转换器,内置一个采样保持器。快速转换时间运行在375ns。16个通道可配置为两个独立的8通道模块以便为事件管理器A和B服务。两个独立的8通道模块可以级联组成一个16通道模块。虽然有多个输入通道和两个序列器,但是ADC模块只有一个转换器。下图给出了LF2407的ADC模块框图。两个8通道模块具有一对系列转换和自动序列化的能力,通过模拟多路复用器,每个模块都可以选择可用的8个通道中的任何一个通道。在级联模式下,自动序列发生器可作为一个单一的16通道序列发生器。在每个序列发生器上,一旦转换结束,已选择的通道值就保存在各个通道的结果寄存器ADCRESULT中。自动序列化允许系统对同一通道转换多次,允许用户执行过采样算法。这较传统的单一采样转换结果增加了更多的解决方案。输入模拟电压的数字值为:数字值=1024×(输入模拟电压值)/3多触发源启动序列转换(SOC)包括:●S/W:软件直接启动;●EVA/B:事件管理器A/B(EVA/B内有多个事件源);●Ext:外部引脚(ADCSOC)。本实验是用DSP自带的ADC转换器采集信号源的信号。并将采集到的信号储存到指定的内存区域。由于ADC是单极性的,所以从信号源过来的双极性信号经过偏置电路转换成单极性信号然后由ADC采样。四、实验步骤和内容1.2407CPU板JUMP1的1和2脚短接,拨码开关S1的第一位置ON,其余置OFF;2.E300板上的开关SW4的第1位置ON,其余OFF.其余开关全部置OFF。3.用导线连接E300底板“Signalexpansionunit”的2号孔接口“SIN”到“Signalexpansionunit”的2号孔“AIN0”;“SQU”到“AIN1”.SIN输出正弦波。SQU输出方波。4.运行CodeComposerStudio(CCS3.1);(ccs3.1需要“DEBUG→Connect”)5.打开系统项目文件\e300.test\normal\DSP281x_examples\06_adcpu\adcpu.pjt。6.编译全部文件并装载“adcpu.out”文件;7.在加软件断点处加软件断点。单击“Debug\RUN”运行程序,程序运行到断点处停止8.用下拉菜单中的View/Graph的“Time/Frequency”打开一个图形观察窗口;设置该图形观察窗口的参数设置如下:观察起始地址为point和point1,Mixing.长度为1024的存储器单元内的数据,该数据为输入信号经A/D转换之后的数据,数据类型为16位无符号整型;Mixing为混频波形9.单击“Debug\Animate”运行程序,在图形观察窗口观察A/D转换后的数据波形变化,调节输入信号的频率和幅值可以在图形窗口观察到相应的波形变化。单击“Halt”暂停程序运行。10.实验结束五、程序框图六、小结与体会通过本次实验,我学习了将TMS320F2812片上外设AD,也了解了片上AD的使用及通道的选择,学会了如何利用片上AD进行数据采集。实验四串行通信实验一、实验目的1.熟悉2407内部的SCI模块;2.通过学习串口通讯实验,理解DSP的传口与PC之间是怎样进行交互的;3.学会C语言中断程序设计,以及运用中断程序控制程序流程。二、实验设备计算机,串行通信数据线、DSP教学实验箱三、实验原理2407内部的SCI模块都有一个接收器和发送器。SCI的接收器和发送器各具有一个两级深度的FIFO(Firstinfistout先入先出)队列,它们还都有自己独立的使能位和中断位,可以在半双工通信中进行独立的操作,或者在全双工通信中同时进行操作。根据信息的传送方向,串行通信可以分为单工、半双工和全双工三种。SCI模块具有两个引脚,SCITXDA和SCIRXDA,分别实现发送数据和接收数据的功能,这两个引脚对应于GPIOF模块的第4和第5位,在编程初始化的时候,需要将GPIOFMUX寄存器的第4和第5位置为1,才能使得这两个引脚具有发送和接收的功能,否则就是普通的I/O引脚。外部晶振通过PLL模块产生了CPU的系统时钟SYSCLKOUT,然后SYSCLKOUT经过低速预定标器之后输出低速时钟LSPCLK供给SCI。要保证SCI的正常运行,系统控制模块下必须使能SCI的时钟,也就是在系统初始化函数中需要将外设时钟控制寄存器PCLKCR的SCIAENCLK位置1。之所以SCI能工作于全双工模式,是因为它有独立的数据发送器和数据接收器,这样能够保证SCI既能够同时进行,也能够独立进行发送和接收的操作。SCI发送数据的过程如下:在FIFO功能使能的情况下,首先,发送数据缓冲寄存器SCITXBUF从TXFIFO中获取由CPU加载的需要发送的数据,然后SCITXBUF将数据传输给发送移位寄存器TXSHF,如果SCI的发送功能使能,TXSHF则将接收到的数据逐位逐位的移到SCITXD引脚上。SCI接收数据的过程如下:首先,接收移位寄存器RXSHF逐位逐位的接收来自于SCIRXD引脚的数据,如果SCI的接收功能使能,RXSHF将这些数据传输给接收缓冲寄存器SCIRXBUF,CPU就能从SCIRXBUF读取外部发送来的数据。当然,如果FIFO功能使能的话,SCIRXBUF会将数据加载到RXFIFO的队列中,CPU再从FIFO的队列读取数据。四、实验说明在进行通信的时候,双方都必须以相同的数据格式和波特率进行通信,否则通信会失败。例如2812和PC机上的串口调试软件进行通信时,2812采用了什么样的数据格式和波特率,那么串口调试软件也需要设定成相同的数据格式和波特率,反之也一样,这是SCI通信不成功最简单,然而大家常常会忽略的问题。编写程序,打开串口调试工具,波特率设置在19200,数据位8,停止位1,其他无,然后输入一串数据“hellopc!over”,发送给DSP,DSP也将收到的数据原样回发给上位机。五、实验步骤1.实验准备(1)连接USB-UART数据线,USB端接计算机的USB,串行数据口接DSP的串口。(2)当计算机发现新设备时,安装USB驱动CH341SER;(3)打开计算机的设备管理器,查看端口,记下USB-SERIALCH340(COM?),串口号COM后面的数字;(4)设置串口调试助手的通讯设置,和DSP程序中设置的要一致。2、按上次实验的方法连接实验设备;打开DSP电路板电源;3.启动CCS2.2选择菜单Debug→ResetCPU;4.打开工程文件;5、编写主程序main.c;6.编译程序;7、运行程序,观察结果。(1)通过CCS中装载Debug文件夹中的.out文件;(2)Debug-GOMain;(3)Debug-RUN(快捷键F5)全速运行;8.退出CCS。六.实验结果通过DSP传送到PC机上的信息,可以看出:SCI正确工作。当第一
本文标题:DSP实验报告书
链接地址:https://www.777doc.com/doc-6315672 .html