DSP课程设计AD_第1页
DSP课程设计AD_第2页
DSP课程设计AD_第3页
DSP课程设计AD_第4页
DSP课程设计AD_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州航空工业管理学院电子通信工程系DSP原理及应用课程设计报告设计题目:基于TMS320F2812 DSP处理器的信号仪的设计与实现 学 号: 101308205 姓 名: 韩 红 印 专 业: 电子信息工程 设计日期: 2013年6月8 日 指导老师: 陈 宇 老 师 1、 引言串行外设接口(SPI Serial Peripheral Interface)总线系统是一种同步串行外设接口,最早由Motorola公司推出,SPI是一种告诉、全双工、同步的通信总线,信号线集束在芯片只用到4根管脚,既节省芯片管脚资源,又便于PCB布局。SPI接口以串行方式建立微处理器与外围设备之间的信息通信,主要应

2、用对象有AD转换器、EEPROM、FLASH、实时时钟及数字信号处理器等,本设计就SPI接口在AD转换器方面的的应用,并结合数模转换器AD7303和TMS320F2812内置模数转换器来进行展开有关讨论,并对正弦信号波形进行处理,对数模转换性能进行必要的分析、处理。2、 设计目的及要求1、编写串行外设接口SPI的驱动程序;2、了解数模转换的基本操作,设计基于数模转换芯片AD7303的正弦信号发生电路;3、编写TMS320F2812利用SPI接口驱动AD7303输出正弦信号波形的应用程序。4、熟悉CCS集成开发环境的使用,能对程序进行跟踪,分析结果;5、熟悉SPI外设接口的相关知识,能通过SPI

3、接口与外围电路(芯片)进行通信。3、 总体设计4.1硬件部分数模转换操作的应用基础 数模转换器(ADC)基本上是一个比例上的问题,即由ADC产生的数字值跟输入模拟量与转换器量程的比值有关的。利用专用的数模转换芯片,可以实现将数字信号转换成模拟量输出的功能。在EXPIV型实验箱上,使用的是AD7303数模芯片,它可以实现同时转换2路模拟信号数出,并有8位精度(8位电压输出DAC),采用+2.7V至+5.5V单电源供电,DA转换时间1.2s。其控制方式较为简单:首先将需要转换的数值及控制指令同时通过SPI总线传送到AD7303上相应寄存器,经过一个时间延迟,转换后的模拟量就从AD7303输出引脚输

4、出。4.1.2 AD7303简介AD7303是一款双通道、8位电压输出DAC,采用+2.7 V至+5.5 V单电源供电。它内置片内精密输出缓冲,能够实现轨到轨输出摆幅。这款器件采用多功能三线式串行接口,能够以最高30MHz的时钟速率工作,并与QSPI(队列穿行外设接口)、SPI(串行外设接口)、MICROWIRE(导电带)以及数字信号处理器接口标准兼容。串行输入寄存器为16位,其中高8位用作DAC的数据位,其余低8位组成一个控制寄存器。图4-1-1 AD7303的芯片结构框图图4-1-2 AD7303的芯片外观结构及尺寸信息图4-1-3 AD7303 的模拟输出表图4-1-4 AD7303 的

5、移位寄存器的控制位(高八位)和数据位(低八位)图4-1-5 AD7303 的移位寄存器的位定义和设置4.1.3 应用AD7303的DAC电路设计图4-1-6 AD7303芯片与TMS320F2812芯片的SPI接口连接图4-1-7 AD7303通道A模拟信号调理电路图4-1-8 AD7303通道B模拟信号调理电路4.2 软件部分4.2.1 程序流程图无限循环处理器上电复位CPU及串行外设接口初始化产生128个点的正弦信号波形按AD7303输入移位寄存器的位定义,传输数据,进行数模转换双路波形输出4.2.2 在CCS集成开发环境下新建工程(1)实验准备设置软件仿真模式,启动CCS3.3,并设置成

6、软件仿真状态。如图4-2-1、图4-2-2、图4-2-3、图4-2-4。图4-2-1 CCS3.3 Simulator/Emulator设置图4-2-2 CCS3.3设置成Simulator模式图4-2-3图4-2-4 CCS3.3界面(2)建立新工程图4-2-5 设置工程名称图4-2-6 添加Example_281x_da.c文件到工程图4-2-7 添加DSP281x_Headers_nonBIOS.cmd文件到工程图4-2-8 添加DSP281x_GlobalVariableDefs.c文件到工程图4-2-9 添加F2812_EzDSP_RAM_lnk.cmd文件到工程图4-2-10 添加

7、DSP281x_DefaultIsr.c、DSP281x_PieCtrl.c、DSP281x_PieVect.c、DSP281x_Spi.c、DSP281x_SysCtrl.c文件到工程图4-2-11 添加DSP281x_CodeStartBranch.asm文件到工程图4-2-12 打开Example_281x_da.c(3)对Project下的Build Options进行如图4-2-13到图4-2-23的操作.图4-2-13 编译器基本设置图4-2-14 编译器高级设置图4-2-15 编译器反馈信息设置图4-2-16 目录填写“C:my fir projectsine waveDebug

8、”图4-2-17 编译器汇编设置图4-2-18 编译器的解析设置图4-2-19 填入“C:my fir projectsine waveDSP281x_headersinclude;C:my fir projectsine waveDSP281x_commoninclude”图4-2-20 编译器诊断项设置图4-2-21链接器的基本设置图4-2-22 库文件搜索路径“C:my fir projectsine waveDSP281x_headersinclude”包含到库文件“rts2800_ml.lib”图4-2-23 链接器高级设置(4)执行“File”下的“Load Program”操作,

9、如下图4-2-24和图4-2-25。图4-2-24 执行“File/Load Program”图4-2-25 执行“File/Load Program”结果(5)执行“Graph”的“Time/Frequency”操作,如图4-2-26、图4-2-27和图4-2-28。图4-2-26 执行“Graph”的“Time/Frequency”操作图4-2-27 执行相关参数设置(时域)图4-2-28 执行相关参数设置(频域)(6)设置断点,生成波形图4-2-29 设置断点在Simulator环境下观察信号的时域及FFT Magnitude波形图4-2-30 生成的正弦波形图4-2-31 时域正弦波图

10、4-2-32 对正弦波进行快速傅里叶变换后的频域波形4.2.4 程序清单;* CPU类型 : DSP TMS320F2812 ;* 软件环境 : CCS3.3;* 接线说明 : 1、F2812CPU板的JUMP1的2和3脚短接,JUMP2的1和2脚短接;;* 2、实验箱底板的开关K9拨到右侧,选择CPU2.;* 测试现象 : 设置好CCS的环境,打开本工程,编译、下载、运行。;* 利用示波器观察实验箱DA单元的二号孔"输出1"有正弦波输出。*/ /*头文件*/#include "DSP281x_Device.h" / DSP281x Headerfile

11、 Include File#include "DSP281x_Examples.h" / DSP281x Examples Include File#include "math.h"#define pi 3.1415926unsigned int curve128; unsigned int curve1128; unsigned int curve2128;/ Prototype statements for functions found within this file.void spi_init(void);void delay(void); v

12、oid main(void) int i,p,data;/ Step 1. Initialize System Control:/ PLL, WatchDog, enable Peripheral Clocks/ This example function is found in the DSP281x_SysCtrl.c file. InitSysCtrl();/ Step 2. Initalize GPIO: / This example function is found in the DSP281x_Gpio.c file and/ illustrates how to set the

13、 GPIO to it's default state./ InitGpio(); / Skipped for this example / Setup only the GP I/O only for SPI functionality EALLOW; GpioMuxRegs.GPFMUX.all=0x000F;/ Select GPIOs to be SPI pins / Port F MUX - x000 0000 0000 1111 EDIS;/ Step 3. Clear all interrupts and initialize PIE vector table:/ Dis

14、able CPU interrupts DINT;/ Initialize PIE control registers to their default state./ The default state is all PIE interrupts disabled and flags/ are cleared. / This function is found in the DSP281x_PieCtrl.c file. InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000

15、; IFR = 0x0000;/ Initialize the PIE vector table with pointers to the shell Interrupt / Service Routines (ISR). / This will populate the entire table, even if the interrupt/ is not used in this example. This is useful for debug purposes./ The shell ISR routines are found in DSP281x_DefaultIsr.c./ Th

16、is function is found in DSP281x_PieVect.c. InitPieVectTable();/ Step 4. Initialize all the Device Peripherals:/ This function is found in DSP281x_InitPeripherals.c/ InitPeripherals(); / Not required for this example/ spi_fifo_init(); / Initialize the Spi FIFO spi_init(); / init SPI for(i=0; i<128

17、;i+) data=(int)(127.5*(1+sin(2*pi*i/127); /产生128个点的正弦信号波形 curvei=data; curve1i=data&0x00ff|0x0100; /将数据打包成“从移位寄存器到DAC A数据寄存器 curve2i=data&0x00ff|0x2500; /将数据打包成“从移位寄存器到DAC B数据寄存器 /且用数据寄存器同时更新A和B两个DA的值 for(;) for(p=0;p<128;p+) /*将数据写入AD7303*/ SpiaRegs.SPITXBUF=curve1p; delay(); /*将数据写入AD73

18、03*/ SpiaRegs.SPITXBUF=curve2p; delay(); void spi_init() RESET=0; / Reset SCISpiaRegs.SPICCR.all =0x000F; / Reset on, rising edge, 16-bit char bits SpiaRegs.SPICTL.all =0x000E; / Enable master mode, normal phase, SpiaRegs.SPISTS.all=0x0080; / enable talk, and SPI int disabled.SpiaRegs.SPIBRR =0x0000

19、; / Baud rate; SpiaRegs.SPIPRI.bit.FREE = 1; / Set so breakpoints don't disturb xmission SpiaRegs.SPICCR.bit.SPISWRESET=1; / Enable SPI void delay(void) /延时子程序 unsigned int k; for(k=0;k<50;k+);4.3 调试部分4.3.1 硬件调试(进行硬件调试时要先进行相关设置)(1)将CCS设置Emulator的方式(通过硬件仿真调试器XDS510连接C2000开发板进行硬件仿真调试的方式),并且指定通过

20、XDS510 USB接口仿真器C2000硬件评估电路板。如图4-3-1。图4-3-1 Emulator方式设置(2) 打开路径“C:my fir projectsine wave”文件中的工程文件。 (3)编译链接工程。选择菜单“Project”的“Rebuild All”项,或单击工具条中的按钮。注意编译过程中CCS3.3主窗口下部“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。如图4-3-2图4-3-2 编译结果(4)下载程序。执行FileàLoad Program,在随后打开的对话框中选择刚刚建立的C:my fir projectsine waveDebugs

21、ine wave.out文件,点击“打开”按钮如图4-3-3。CCS将程序加载到硬件仿真器上,并打开Disassembly窗口,该窗口显示反汇编指令。图4-3-3 下载sine wave.out文件(5)运行程序。先使用Debug下的Go main命令,然后选择DebugRun。(6)测试输出信号。先将示波器一信号输入线接在实验板上的END上,然后将另一个信号输入线接在A/D信号输出口上,调试示波器,示波器屏幕上将出现一个正弦波。如图4-3-4所示:图4-3-4 波形输出单击完成和保存设置(7)通过传输线连接到试验台并通过示波器进行输出,可测得模拟输出电压约为3.3V,即的电压约为1.6V。(基本符合AD7303的设置,即)4.3.2 软件调试这次课程设计所需的基本资料和程序平时已经由老师已经给定,所以我在操作过程按所给资料进行必要的整合和设计,基本上可以很好地实现设计的要求。可以先使用Debug8Go

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论