基于msp430的DDS程控信号源.docx

上传人:b****6 文档编号:7958778 上传时间:2023-01-27 格式:DOCX 页数:21 大小:1.21MB
下载 相关 举报
基于msp430的DDS程控信号源.docx_第1页
第1页 / 共21页
基于msp430的DDS程控信号源.docx_第2页
第2页 / 共21页
基于msp430的DDS程控信号源.docx_第3页
第3页 / 共21页
基于msp430的DDS程控信号源.docx_第4页
第4页 / 共21页
基于msp430的DDS程控信号源.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于msp430的DDS程控信号源.docx

《基于msp430的DDS程控信号源.docx》由会员分享,可在线阅读,更多相关《基于msp430的DDS程控信号源.docx(21页珍藏版)》请在冰豆网上搜索。

基于msp430的DDS程控信号源.docx

基于msp430的DDS程控信号源

多通道函数发生器

摘要:

波形发生器广泛应用于各种测量、激励和时域响应领域,产生信号的方法有很多种,DDS(DirectDigitalFrequencySynthesis直接数字频率合成器)作为一种新型技术,具有相对带宽宽,频率转换时间短,频率分辨率高,控制灵活方便等优点,成为现代频率合成技术中的佼佼者.AD公司生产的AD9833是一款低功耗、可编程波形发生器,能够产生正弦波、三角波、方波输出。

在msp430单片机的控制下可生成0~12.5MHz的正弦波、三角波和方波。

可实现频率高精度可调。

经过程控增益放大,峰值检测,椭圆滤波,功率放大后,幅值可调,可带50欧的负载。

幅值可调范围在10V一下。

经现场验证,基于msp430单片机和AD9833的信号发生器,可以非常方便地生成各种频率、幅值的正弦波、方波、三角波。

.

关键词:

DDS、程控增益放大、msp430、AD9833、峰值检测、功率放大

液晶显示、椭圆滤波

Abstract:

Waveformsprogramme-wideapplicationinallkindsofmeasurement,motivatingandthefieldofdomainresponseoftheway,therearemanykindsofthedds(directdigitalfrequencysynthesisdirectdigitalfrequencysynthesizers)asanewtechnology,witharelativelywidefrequencyconversion,withtime,frequencyandfacilitatecontrolflexibleresolutionadvantagesofamoderntechnologycenterfrequencysynthetic.Adcompanyad9833isalowpowerdissipation,programmablewaveformsgeneratorsproducesasinusoidalwaves,waveandwaves.theoutputmsp430monolithicintegratedcircuitstocontrolitproduces0~12.5mhzsinusoidalwaves,waveandthewaves.toachievehighaccuracyrateofthecontrolled.again,peakvalue,basedonanellipse,theenlargementofthepower,shouldbeadjustable,with50euroload.Beadjustablein10v.bythevalidation,basedonmsp430monolithicintegratedcircuitsandad9833ofgeneratorscanbeveryconvenienttocreateavarietyofthefrequency,besinusoidalwavesandwaves,thewave.

Keywords:

DDs,controlledlargegain,msp430,ad9833,peakvaluedetect,enlargepower;,lcddisplay,ellipsesfiltering

目录

1前言1

2方案论证与比较2

2.1信号产生部分2

2.2可控增益放大部分2

2.3功率放大部分2

3系统设计3

3.1总体设计思路3

3.2主要电路原理与分析4

3.2.1信号波形产生4

3.2.2直流滤除4

3.2.3压控增益放大4

3.2.4峰值检测4

3.2.5后级功率放大4

3.2.6单片机控制4

4软件设计10

4.1系统总程序框图10

4.2核心程序代码11

5系统调试方法与测试数据16

5.1测试仪器16

5.2测试方法与测试数据16

5.3测试结果分析16

6参考文献19

7附录:

20

7.1电路总图20

7.2单片机控制电路20

 

1前言

信号源广泛应用于各种测量、激励和时域响应电路中。

目前产生波形信号主要有两种方法,一是采用专用设备如信号发生器;二是采用正弦波振荡电路。

信号发生器虽然信号精确,调制方便,但是采购费用高,并且体积庞大,搬动不便。

而采用正弦波振荡电路,它的频率取决于外围电阻和电容,频率调整范围窄,需要改变频率时只有改变外围电路,而且外围电路的温飘对电路影响挺大。

我们在生产仪器时需要三种不同频率的正弦波作为信号源来检测仪器,针对目前现状,必须选择一种新的器件来取代现有的设备。

随着微电子技术的迅猛发展,DDS(直接数字频率合成器)是目前广为应用的频率合成技术,它具有频率转换时间短,相对带宽宽,频率分辨率高,频率和相位可编程,控制灵活方便的优点,成为现代频率合成技术中的佼佼者[1]I。

AD公司生产的AD9833是一款采用DDS技术、低功耗、可编程波形发生器,器件采用MSOP封装,非常小巧,外围电路简单,通过SPI接口和单片机相连,编程可生成正弦波、三角波、方波。

输出频率和相位都可通过软件编程,易于调节,AD9833的主频时钟为25MHz时,精度为0.1Hz,主频时钟为lMHz时,精度可以达到0.004Hz[2]。

因此,采用单片机控制DDS器件AD9833就成为我们的首选的方案。

 

2方案论证与比较

2.1信号产生部分

方案一:

采用正弦波振荡电路。

信号发生器虽然信号精确,调制方便,但是采购费用高,并且体积庞大,搬动不便。

而采用正弦波振荡电路,它的频率取决于外围电阻和电容,频率调整范围窄,需要改变频率时只有改变外围电路,而且外围电路的温飘对电路影响挺大。

方案二:

采用DDS芯片ad9851,该芯片能够产生30M的正弦波信号,方波占空比可调。

频率输出可调,但其不能输出三角波,三角波需要外围电路对正弦波积分产生三角波,积分考虑到受带宽的影响,频率过高后产生波形失真。

方案三:

采用DDS芯片ad9833,该芯片AD公司生产的一款低功耗、可编程波形发生器,在单片机的控制下可生成0到12.5MHz的正弦波,还可以生成三角波和方波。

该芯片外围电路简单,在高频下输出受PCB布线的影响较小,输出频率、相位可调。

高精度输出,

输出波形稳定。

2.2可控增益放大部分

方案一:

由于ad9833产生的信号在200mv左右,需要的最大输出电压为10v,放大最大50倍,所以只需要一级放大加上一级功率放大。

由晶体管和运算放大器实现。

本方案由于大量采用分立元件,如三极管等,电路比较复杂,工作点难于调整,尤其增益的定量调节非常困难。

但电路成本较低。

方案二:

采用一级程控放大器+运算放大器实现。

前级运放完成高增益放大,后级程控放大器ad603实现程控功能,本方案控制简单,能对较大增益范围实现程控,前段高倍数放小,使得程控步进较较大,精度提高。

成本也相对提高。

2.3功率放大部分

方案一:

使用分立元件自行搭建后级放大器。

有不同电路分别对电压和电流进行放大,前级由运放对信号电压进行放大,后级由分立元件搭成功率放大电路对信号进行功率放大。

使用分立元件设计困难,调试繁琐,。

方案二:

使用集成电路芯片。

使用集成电路芯片电路简单、使用方便、性能稳定、有详细的文档说明。

可选择宽带的高波摆率的电流反馈运放ths3001,该运放可提供250mA的电流,实现题目要求的输出10V有效值,带50的负载和0-10MHz的带宽。

 

3系统设计

3.1总体设计思路

根据题目的要求,结合考虑过的各种方案,充分利用模拟和数字系统各自的优点,发挥其优势,采用单片机预置和控制放大器增益的方法,大大提高了系统的精度和可控性;后级放大器使用对管推挽互补输出驱动,提高了输出电压有效值。

我们使信号都在单片机的数字算法控制下得到最合理的前级放大,使其放大倍数精确。

图3-1所示即为本系统框图。

图3-1

Ad9833产生信号后通过前级可控增益放大,放大倍数由单片机通过D/A转换提供的电压控制。

ad603增益AGC模式下,此控制电压Vg有单片机DA输出,经过前级放大后的信号最后经过后级放大得到需要的输出信号,前级和后级增益的搭配,都是经过精确的测量和计算的。

同时单片机控制LCD128*64显示。

 

3.2主要电路原理与分析

3.2.1信号波形产生

AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz,无需外界元件。

仅需要1个外部参考时钟、1个低精度电阻器和一个解耦电容器就能产生高达12.5MHz的正弦波。

除了产生射频信号外,该电路还广泛应外于各种调制解调方案。

这些方案全都用在数字领域,采用DSP技术能够把复杂的调制解调算法简化,而且很精确。

电路见图3-2-1

AD9833的主要特点如下:

频率和相位可数字编程;

工作电压为3V时,功耗仅为20mW;

输出频率范围为0MHz-12.5MHz;

频率寄存器为28位(在25MHz的参考时钟下,精度为0.1Hz);

可选择正弦波、三角波、方波输出;

3线SPI接口;

电路见图3-2-1

 

3.2.2直流滤除

由于ad9833输出的信号有1v的直流偏置,需要虑除直流成分,不然将影响后续的交流放大,峰值检测,功率放大等。

除掉此直流有两种方式。

可以用减法电路将此直流减掉。

另一中方法就是利用电容加上运放组成交流跟随电路,这样不仅滤除了直流,还做了一级跟随,增加了电路操作的稳定性。

电路见图3-2-2

图3-2-2

 

3.2.3压控增益放大

电压增益控制放大器原理框图如图3-2-3所示,放大器增益取决于增益控制电压VG。

由D/A转换器输出的控制电压VG输出到VG端,即可实现连续线性增益控制。

图3-2-3电压增益控制放大器原理框图ad603具有dB线性可变增益控制放大器的150MHzBW。

da603:

可变增益放大器;150MHz带宽与1700V/μs压摆率;可利用外置电阻器在-10dB(1V/V)至30dB(100V/V)的范围内设置最大增益;在dB/V或V/V的线性增益间进行选择;只需要一片ad603就可以多信号放大到需要的3v以下。

如图3-2-3

图3-2-3

 

3.2.4峰值检测

在上一级有ad603实现压控放大后输出的电压可能与想要输出的电压有一定的差异,如果差异过大经过后级固定增益功率放大产生的误差将会增大。

所以需要在ad603输出的波形进行峰值检测,检测其峰值电压,通过AD输入单片机进行比较从而调节DA的输出,继而控制ad603的增益,起到闭环控制的目的,使输出更精确。

电路如图

图3-2-4。

图3-2-4

 

3.2.5后级功率放大

在信号输出端增加功率放大模块,以系统的带负载能力满足要求。

鉴于运算放大器THS3001自身负载驱动能力在250mA,输出最大电压10v,负载50欧,本模块选用宽带、高波摆率的电流反馈型运放THS3001图3-2-5所示,经过实际测试,整个电路输出阻抗小于30欧姆,通频带大于10MHz,输出端接50欧姆负载时,无失真最大输出正弦波电压峰-峰值大于10v。

图3-2-5

 

3.2.6单片机控制

单片机是整个放大器控制的核心部分,它主要完成以下功能:

接收用户按键信息以控制增益;对ad603的增益控制电压进行控制。

各个功能由不同的模块实现:

键盘测模块记录用户对键盘的操作,将设定的增益数值记录下来。

控制电压模块:

根据用户对增益的设置,得到D/A转换器TLV5619的控制字串,输出给D/A转换器以产生精确的控制电压。

也可采用调节电位器来控制压控增益放大器da603的控制电压,从而实现增益控制的连续可调。

见图3-2-6

图3-2-6

 

4软件设计

4.1系统总程序框图

图4-1系统总体流程图

4.2核心程序代码

#include"msp430x16x.h"

#defineucharunsignedchar

#defineuintunsignedint

#defineAD9833_FSYNC_HP3OUT|=BIT3

#defineAD9833_FSYNC_LP3OUT&=~BIT3

#defineAD9833_SCLK_HP2OUT|=BIT7

#defineAD9833_SCLK_LP2OUT&=~BIT7

#defineAD9833_SDATA_HP2OUT|=BIT3

#defineAD9833_SDATA_LP2OUT&=~BIT3

unsignedintConfig_Data[8];

voidWave_Generate(unsignedlongFreq,unsignedcharShape);

/*****************************************************************

函数名称:

Delayms()

入口参数:

intTime

出口参数:

******************************************************************/

voidDelayms(intTime)

{

inti;

for(;Time>0;Time--)

{

for(i=0;i<207;i++);

}

}

/*****************************************************************

函数名称:

init()

入口参数:

出口参数:

功能:

初始化时钟以及与ISD4004相连接的IO口

******************************************************************/

voidinit()

{

uintiq0;

//使用XT2振荡器

BCSCTL1&=~XT2OFF;//打开XT2振荡器

do

{

IFG1&=~OFIFG;//清除振荡器失效标志

for(iq0=0xFF;iq0>0;iq0--);//延时,等待XT2起振

}while((IFG1&OFIFG)!

=0);//判断XT2是否起振

BCSCTL2|=SELM_1;//选择时钟源为XT2,不分频

BCSCTL1&=~XT2OFF;//开启XT2

}

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;

P3DIR=0XFF;

P2DIR=0XFF;

P3OUT=0XFF;

P2OUT=0XFF;

AD9833_FSYNC_H;

AD9833_SCLK_L;

Wave_Generate(800000,1);

while

(1);

}

voidSend_Word(unsignedintData_In)

{

unsignedinti,j;

AD9833_SCLK_H;

AD9833_FSYNC_L;

for(i=0;i<16;i++)

{

AD9833_SCLK_H;

if((Data_In&0x8000)==0x8000)AD9833_SDATA_H;

elseAD9833_SDATA_L;

//AD9833_SDATA=(bit)((Data_In&0x8000)>>15);

j=0x01;

while(j--);

AD9833_SCLK_L;

Data_In=Data_In<<1;

j=0x01;

while(j--);

}

AD9833_FSYNC_H;

AD9833_SCLK_L;

}

//波形发生函数

//入口参数:

频率<=10MHz

//形状:

0正弦波1三角波2方波

//默认:

FMCLK-20MHz0相移

voidWave_Generate(unsignedlongFreq,unsignedcharShape)

{

unsignedlongtemp;

unsignedchark;

if(Freq>10000000)Freq=10000000;

switch(Shape)

{

case0:

Config_Data[0]=0x2108;

Config_Data[7]=0x2008;

break;

case1:

Config_Data[0]=0x210A;

Config_Data[7]=0x200A;

break;

case2:

Config_Data[0]=0x2128;

Config_Data[7]=0x2028;

break;

default:

Config_Data[0]=0x2108;

Config_Data[7]=0x2008;

break;

}

//20M13.4218

//19.6608M13.6533

//16M16.7772

//24M11.1848

temp=Freq*11.18477;

Config_Data[1]=temp&0x00003fff;

Config_Data[3]=Config_Data[1];

Config_Data[2]=(temp&0x0fffc000)>>14;

Config_Data[4]=Config_Data[2];

Config_Data[1]=Config_Data[1]|0x4000;

Config_Data[2]=Config_Data[2]|0x4000;

Config_Data[3]=Config_Data[3]|0x8000;

Config_Data[4]=Config_Data[4]|0x8000;

Config_Data[5]=0xC000;

Config_Data[6]=0xE000;

for(k=0;k<8;k++)

{

Send_Word(Config_Data[k]);

}

}

 

5系统测试方法与测试数据

5.1测试仪器

测试仪器仪器名称型号规格

数字万用表VC9800四位半

数字示波器TDS100260M1GS

5.2测试方法与测试数据5.3开关电源的调试

正弦波

输入频率HZ

100

1000

1000000

5000000

10000000

输入电压mv

1000

3000

4000

7000

10000

实际频率HZ

99.8

1001

1000001

499999.5

10000001.5

实际电压mv

950

2970

4080

7090

99980

方波

输入频率HZ

100

1000

300000

500000

1000000

输入电压mv

1000

2000

3000

5000

6000

实际频率HZ

99.8

1001

300001

49999.0

1000001.5

实际电压mv

950

1978

3060

5030

5980

三角波

输入频率HZ

100

1000

300000

500000

1000000

输入电压mv

1000

2000

3000

5000

6000

实际频率HZ

99.8

1001

300001

49999.0

1000001.5

实际电压mv

950

1972

3080

5040

5980

5.3测试结果分析

测试结果分析:

上述结果是在没有带负载的条件下测量的,输出结果精度很准确,特别是频率。

都在1赫兹以内,带上100欧的负载后输出幅值有所下降。

正弦波的输出频率大10M,

方波、三角波的频率可以达到2M,失真度很小。

误差分析:

由于人为读数存在误差,周围环境如磁场,温度等一因数影响,测量的数据

达不到理论计算值,但是我们通过多次测量取平均把误差降低到最小控制在5%以内。

整个电路系统由手工制作完成,无法实现严格的阻抗匹配,布线无法避免线路之间以及外界磁场的干扰,干扰抑制还不够。

 

 

6参考文献

[1]康光华﹒电子技术基础—模拟部分(第四版)﹒北京:

高等教育出版社,1999.6

[2]康光华﹒电子技术基础—数字部分(第四版)﹒北京:

高等教育出版社,2000.7

[3]谢自美﹒电子线路设计·实验·测试﹒华中科技出版社,2000.5

[4]石东海﹒单片机数据通信技术从入门到精通﹒西安电子科技大学出版社,2002.11

[5]全国大学生电子设计竞赛组委会﹒第五届全国大学生电子设计竞赛获奖作品选编﹒北京理工大学出版社,2003.1

[6]鲁标.潘玉恒.孟克DDS技术在步进电动机控制系统中的应用-应用科技2005(08)

[7]沈建华、杨艳琴、翟骁曙﹒msp430系列16位超低功耗单片机原理与应用﹒清华大学出版社,2004.07.03

[8]中国电子网:

[9]程序员联合开发网:

[10]万方数据库:

 

7附录:

7.1电路总图

附录1

7.2单片机控制电路

附录2

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

当前位置:首页 > 解决方案 > 学习计划

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

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