最好的.docx
《最好的.docx》由会员分享,可在线阅读,更多相关《最好的.docx(9页珍藏版)》请在冰点文库上搜索。
最好的
设计题目:
基于TMS320F2812DSP处理器的信号仪的设计与实现
学部:
电子信息工程(自动化方向)
班级:
电信0904
姓名:
苏思
一、设计目的
1、编写串行外设接口SPI的驱动程序;
2、了解数模转换的基本操作,设计基于数模转换芯片AD7303的正弦信号发生电路;
3、编写TMS320F2812利用SPI接口驱动AD7303输出正弦信号波形的应用程序。
二、设计要求
用DSP2812做一个简单的应用电路
三、总体设计
3.1硬件部分
3.1.1数模转换操作的应用基础
利用专用的数模转换芯片,可以实现将数字信号转换成模拟量输出的功能。
在EXPIV型实验箱上,使用的是AD7303数模芯片,它可以实现同时转换2路模拟信号数出,并有8位精度,DA转换时间1.2μs。
其控制方式较为简单:
首先将需要转换的数值及控制指令同时通过SPI总线传送到AD7303上相应寄存器,经过一个时间延迟,转换后的模拟量就从AD7303输出引脚输出。
3.1.2AD7303简介
AD7303是一款双通道、8位电压输出DAC,采用+2.7V至+5.5V单电源供电。
它内置片内精密输出缓冲,能够实现轨到轨输出摆幅。
这款器件采用多功能三线式串行接口,能够以最高30MHz的时钟速率工作,并与QSPI、SPI、MICROWIRE以及数字信号处理器接口标准兼容。
串行输入寄存器为16位,其中8位用作DAC的数据位,其余8位组成一个控制寄存器。
3.1.3应用AD7303的DAC电路设计
图4AD7303电路设计
3.2软件部分
3.2.1程序流程图
3.2.2在CCS集成开发环境下新建工程
3.2.3在Simulator环境下观察信号的时域及FFTMagnitude波形
3.2.4程序清单
;*************************************************************/
/*-----------------------文件信息----------------------------
;*
;*文件名称:
Example_DSP281x_da.c
;*适用平台:
DSP专家4实验箱
;*CPU类型:
DSPTMS320F2812
;*软件环境:
CCS2.20(2000系列)
;*试验接线:
1、F2812CPU板的JUMP1的2和3脚短接,JUMP2的1和2脚短接;
;*2、实验箱底板的开关K9拨到右侧,选择CPU2.
;*试验现象:
设置好CCS的环境,打开本工程,编译、下载、运行。
;*利用示波器观察实验箱DA单元的二号孔"输出1"有正弦波输出。
;*地址译码说明:
基地址(0x80000)
*/
/***************************头文件*******************************/
#include"DSP281x_Device.h"
#include"DSP281x_Examples.h"
#include"math.h"
#definepi3.1415926
unsignedintcurve[128];
unsignedintcurve1[128];
unsignedintcurve2[128];
voidspi_init(void);
voiddelay(void);
voidmain(void)
{
inti,p,data;
EALLOW;
GpioMuxRegs.GPFMUX.all=0x000F;
EDIS;
DINT;
InitPieCtrl();
IER=0x0000;
IFR=0x0000;
InitPieVectTable();
spi_init();
for(i=0;i<128;i++)
{
data=(int)(127.5*(1+sin(2*pi*i/127)));
curve[i]=data;
curve1[i]=data&0x00ff|0x0100;
且用数据寄存器同时更新A和B两个DA的值*/
curve2[i]=data&0x00ff|0x2500;
}
for(;;)
{
for(p=0;p<128;p++)
{
SpiaRegs.SPITXBUF=curve1[p];
delay();
SpiaRegs.SPITXBUF=curve2[p];
delay();
}
}
}
voidspi_init()
{
SpiaRegs.SPICCR.bit.SPISWRESET=0;//ResetSCI
SpiaRegs.SPICCR.all=0x000F;
SpiaRegs.SPICTL.all=0x000E;
SpiaRegs.SPISTS.all=0x0080;
SpiaRegs.SPIBRR=0x0000;
SpiaRegs.SPICCR.bit.SPISWRESET=1;
}
voiddelay(void)
{
unsignedintk;
for(k=0;k<50;k++);
}
四、总结
通过本实验的设计,了解了CCS集成开发环境的大体使用情况,并会对程序实现跟踪,了解了数模转换的基本操作,并分析了其结果。
熟悉了SPI外设接口的相关知识,能通过SPI接口与外围电路进行通信。
通过这次课程设计,让我对所学的DSP课程有了实在的应用,并对其产生了一些兴趣,我会在以后的学习中,继续努力学习!
虽然在做的过程中,出现了一些问题,但通过询问老师和同学都得到了解决!