DSP课程设计AD+SCIWord下载.docx

上传人:b****3 文档编号:18297115 上传时间:2022-12-15 格式:DOCX 页数:11 大小:388.31KB
下载 相关 举报
DSP课程设计AD+SCIWord下载.docx_第1页
第1页 / 共11页
DSP课程设计AD+SCIWord下载.docx_第2页
第2页 / 共11页
DSP课程设计AD+SCIWord下载.docx_第3页
第3页 / 共11页
DSP课程设计AD+SCIWord下载.docx_第4页
第4页 / 共11页
DSP课程设计AD+SCIWord下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

DSP课程设计AD+SCIWord下载.docx

《DSP课程设计AD+SCIWord下载.docx》由会员分享,可在线阅读,更多相关《DSP课程设计AD+SCIWord下载.docx(11页珍藏版)》请在冰豆网上搜索。

DSP课程设计AD+SCIWord下载.docx

图1ADC机构框图

2.2ADC模块特点

(1)带2个8选1多路切换器和双采样/保持器的12位的ADC,共有16个模拟输入通道;

(2)模拟量输入范围:

0.0V-3.0V;

(3)转换率:

在25MHZ的ADC时钟下为80ns;

(4)转换结果存储在16个结果存储器中;

(5)转换结果=4095*(输入的模拟信号-ADCLO)/3;

(6)多种A/D触发方式:

软件启动、EVA和EVB;

(7)灵活中断方式:

可以在每次转换结束或每隔一次转换结束触发中断;

3.ADC转换步骤

(1)初始化DSP系统;

(2)设置PIE中断矢量表;

(3)初始化ADC模块;

(4)将ADC中断的入口地址装入PIE中断矢量表中,开中断;

(5)软件启动ADC转换;

(6)等待ADC中断;

(7)在ADC中断中读取ADC转换结果,软件启动下一次ADC中断。

三、实验实现

3.1硬件方案设计

本实验以TMS320F2812为核心控制部件,利用软件编程,通过ADC模块对试验箱上的信号发生器发出的正弦信号进行采集,由于试验箱上的信号发生器只能调节到2V,所以此次实验只针对2V的正弦信号,再通过串口线与PC机连接,将采集转换的数字信号传送到PC机端的串口助手,并还原成采集时的电压值。

硬件框架图如图2所示。

本次ADC采用SEED-DEC2812的AD接口的ADCINA6通道。

图2硬件框架图

3.2软件设计

程序主体沿用AD采样例程,用定时器产生中断,在中断程序中对电压信号进行AD转换并将转换值通过串口发送到电脑,在电脑上用串口助手对采样值进行实时显示。

主要工作:

是在AD程序的基础上初始化串口、修改中断程序及更改采样率、波特率参数。

程序要解决问题:

1、采样值的转换

2、采样率及波特率的设置

串口初始化程序可以直接使用SCI例程中的初始化程序,下面只介绍中断程序设计及采样率、波特率参数设置

中断程序设计

在中断程序中对电压信号进行采集,然后将采集到的12位有效值转换成实际电压值,取电压值的三位有效数字以字符形式用串口发送,这里要注意的是AD采集的12位有效数字在寄存器中是靠左放置的,需要右移四位后才能对其转换。

图3中断程序图

SCI波特率设置

SCI波特率的大小决定串口能每秒传送的数据多少,若太小则会限制采样率,本实验选择串口助手的最大波特率115200b/s,则:

1、每秒理论上能传送的字节数:

115200/10=11520B

2、波特值BRR由公式

可得BRR=40,在串口初始化程序中设置SciaRegs.SCILBAUD=0x28,可以把波特率设置成115200b/s。

图4串口初始化程序图

采样率设置

采样率受波特率和信号频率两方面控制

1、115200b/s波特率下最大采样率为

2、信号频率为100HZ,根据采样定理采样率要大于

综合考虑设采样率为1000HZ在单位周期内采样十次,采样率可以通过在主程序中ConfigCpuTimer(&

CpuTimer2,150,1000)设置,通过设置周期值(1000us)可以确定采样率1000。

图4部分主程序程序图

3.3软件调试

软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

本设计的软件调试使用CCS3.3测试软件进行调试,即可看到正确的测试结果,从而最终实现利用ADC采集正弦信号。

四、实验结果分析

1.实验箱的信号发生器上的设置如图5所示。

图5信号发生器设置

2.PC端上串口助手显示接收的数据,如图6所示。

图6串口调试助手界面

3.采用matlab对上图的数据进行绘图,如图7所示,横坐标为时间/s,y轴为幅值,图中可以较直观的显示出经AD采集到的正弦信号发送到PC机上也是正弦信号的数据。

图7MATLAB绘制图

五、实验结论

通过本次实验我们掌握DSP芯片功能及其在实际中的应用方法,对于DSP基础知识的了解。

学习到了很过关于DSPAD模块和SCI的知识,并且更加巩固和掌握了课堂上所学的课本知识,是自己对DSP技术有了更进一步的认识和了解。

本实验是由实验箱的信号发生器产生一正弦信号(电压范围:

0~2V),通过DSP的AD功能对此正弦信号进行采集,通过DSP的SCI功能与PC机之间进行通信,把所采集的AD信号发送至PC机端,在超级终端上进行实时显示。

本实验最终达到了实验要求,实现了电压值的实时显示。

附录

实验代码如下所示:

#include<

math.h>

#include"

DSP28_Device.h"

comm.h"

///////////////////////////////////////////////////////////////////

#defineSAMPLERATE1

unsignedintuart_sendtype;

unsignedintSampleRate;

unsignedintSampleLong=1024;

///////////////////

unsignedinti,j;

unsignedintAd_data[10]={0};

charsend[5]={0};

floatresults=0;

floattemp=0;

//////////////////

unsignedintconvcount=0;

volatileunsignedintadconvover=0;

//Prototypestatementsforfunctionsfoundwithinthisfile.

interruptvoidISRTimer2(void);

interruptvoidad(void);

voidmain(void)

{

/*初始化系统*/

InitSysCtrl();

#ifSAMPLERATE==1

SampleRate=ADSAMPL8K;

#endif

/*关中断*/

DINT;

IER=0x0000;

IFR=0x0000;

/*初始化PIE中断*/

InitPieCtrl();

/*初始化PIE中断矢量表*/

InitPieVectTable();

//初始化cputimer

InitCpuTimers();

InitSci();

/*设置中断服务程序入口地址*/

EALLOW;

//ThisisneededtowritetoEALLOWprotectedregisters

PieVectTable.TINT2=&

ISRTimer2;

PieVectTable.ADCINT=&

ad;

EDIS;

//ThisisneededtodisablewritetoEALLOWprotectedregisters

/*开中断*/

IER|=M_INT1;

//ADC中断

EINT;

//EnableGlobalinterruptINTM

ERTM;

//EnableGlobalrealtimeinterruptDBGM

/*启动AD采样*/

/*AD采样率*/

adconvover=0;

switch(SampleRate){

caseADSAMPL8K:

//采样率为1k

DINT;

/*设置CPU*/

ConfigCpuTimer(&

CpuTimer2,150,1000);

StartCpuTimer2();

/*开中断*/

IER|=M_INT14;

EINT;

InitAdc();

SampleRate=0;

break;

default:

}

for(;

;

{

}

}

interruptvoidad(void)

IFR=0x0000;

PieCtrl.PIEACK.all=0xffff;

Ad_data[0]=AdcRegs.RESULT0;

temp=Ad_data[0]>

>

4;

results=(temp/4095.0)*3.0;

results=results*100;

send[3]=(int)results%10+0x30;

results=results/10;

send[2]=(int)results%10+0x30;

send[1]='

.'

send[0]=(int)results+0x30;

send[4]='

\n'

for(i=0;

i<

5;

i++)

{

SciaRegs.SCITXBUF=send[i];

while(!

SciaTx_Ready());

}

}

interruptvoidISRTimer2(void)

AdcRegs.ADC_ST_FLAG.bit.INT_SEQ1_CLR=1;

AdcRegs.ADCTRL2.bit.SOC_SEQ1=1;

串口初始化子程序

void 

InitSci(void)

// 

Initialize 

SCI-A:

*UART_MODE 

0x44;

EALLOW;

GpioMuxRegs.GPFMUX.all 

0x0030;

EDIS;

/* 

loopback 

bit 

data 

*/

SciaRegs.SCICCR.all 

0x07;

SciaRegs.SCICTL1.all 

0x03;

SciaRegs.SCICTL2.all 

SciaRegs.SCIHBAUD 

0x00;

SciaRegs.SCILBAUD 

0x28;

//波特率为115200b/s

0x23;

PieCtrl.PIEIER9.bit.INTx1 

1;

//PieCtrl.PIEIER9.bit.INTx2 

//tbd...

SCI-B:

欢迎您的下载,

资料仅供参考!

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1