DSP数据采集实验报告姓名:学号:学院(系):专业:组员:指导老师:一、实验目的1、熟悉DSP的软硬件开发平台;2、熟悉TMS320F2812的ADC外设的使用;3、熟悉TMS320F2812的终端的设置;4、掌握代码调试的基本方法。二、实验仪器计算机、C2000DSP教学实验箱、XDS510USB仿真器、示波器、信号源三、实验内容建立工程,编写DSP的主程序,并对工程进行编译、链接,利用现有DSP平台实现数据的采集、存储以及模拟还原,通过图表以及示波器观察结果。对于实验所要求的内容,完成情况如下:(1)、独立完成项目编译、链接、调试的全过程;(2)、根据提示程序,给出ADC的采样频率计算公式,改写源程序中,修改ADC的采样频率;答:在源程序中添加的保存采样结果的程序为:interruptvoidadc_isr(void){EALLOW;GpioDataRegs.GPASET.all=0xFFFF;*(RamAddr+i)=AdcRegs.ADCRESULT0;i++;if(i==1024)i=0;*DAOUT=*(RamAddr+i);}频率计算公式为:f=9.3kHz*2^7/2^m本实验中,我们把m改为了5,即:EvaRegs.T1C0N.bit.TPS=5.(3)、指出波形数据保存的空间地址,并以图形方式显示采集的信号波形,并保存,附在实验报告中;答:保存的空间地址为:0x01000000信号波形图如下:(4)、利用上述图形,给出验证采样频率的方法。以此验证数据采集程序的正确性;答:由上图计算可以得到,采集的正弦信号波形一个周期内有373个点。修改后的采样频率为37.2kHz(9.3*2^7/2^5=37.2),信号源频率为100Hz.因为37.2*1000/100=372≈373,由此证明数据采集的正确性。(5)利用数码显示管,添加语句或者编写子程序,使之能够显示实验者的学号。答:完成的功能是数码管交替显示实验者的学号,所添加程序如下:interruptvoidadc_isr(void){EALLOW;GpioDataRegs.GPASET.all=0xFFFF;*(RamAddr+i)=AdcRegs.ADCRESULT0;i++;if(i==2000)i=0;*DAOUT=*(RamAddr+i);a++;if(a==20000)a=0;if(a==6000){*LED8=0x4F;*(LED8+0x100)=0x06;*(LED8+0x200)=0x5B;*(LED8+0x300)=0x3F;*(LED8+0x400)=0x5B;*(LED8+0x500)=0x5B;*(LED8+0x600)=0x66;*(LED8+0x700)=0x3F;*(LEDWR)=0X00;}elseif(a==12000){*LED8=0x66;*(LED8+0x100)=0x06;*(LED8+0x200)=0x5B;*(LED8+0x300)=0x3F;*(LED8+0x400)=0x5B;*(LED8+0x500)=0x5B;*(LED8+0x600)=0x66;*(LED8+0x700)=0x3F;*(LEDWR)=0X00;}elseif(a==18000){*LED8=0x6D;*(LED8+0x100)=0x06;*(LED8+0x200)=0x5B;*(LED8+0x300)=0x3F;*(LED8+0x400)=0x5B;*(LED8+0x500)=0x5B;*(LED8+0x600)=0x66;*(LED8+0x700)=0x3F;*(LEDWR)=0X00;}}四、实验中出现的问题及解决方案1、一开始输入信号源频率过大,以致违反了奈奎斯特采样定理,使得数据存储空间保存的采样结果显示总是不尽人意。后来在老师的提醒下,才恍然明白过来,最后使得输入信号频率为100Hz.2、在编写保存AD结果的程序时,刚开始没什么头绪,后来听了同学的建议,即先确定一个空间存储地址,然后再将程序中的数值赋值,最后顺利写出了程序。五、实验感想本实验是让我们利用ADC、DSP以及DAC三大基本部件来实现DSP的数据采集以及模拟的还原。我们采用ADC的中断功能实现数据的交换,由DSP完成数据采集的工作,模拟还原由DSP2000试验箱中的DAC1来完成。做完实验,我基本对这一套流程有了初步的认知与学习,也对DSP数据采集有了进一步的了解。实验中最让我觉得在意的地方便是自己以及队友组员都忘了最基本的奈奎斯特采样定律,以致于一开始实验结果一直不理想,后来在老师提醒下才反应过来。这一点告诫我要真正的学以致用,书本上的知识与实践是分不开的。