视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于MSP430 自动增益控制
2025-10-04 09:40:55 责编:小OO
文档
    

摘要

在现代电子设备中,最常用的电路结构就是放大器。电子技术基础学习过程中我们知道,由于在高频状态下放大器内部结构,即极间电容的存在,会影响放大器的增益大小,进而导致输出信号幅度变化,使得输出的信号幅度值不能在高频时满足要求。所以用本设计可以自动调节放大器增益的大小,使输出信号幅度保持不变,又称作自动增益控制放大器设计。

本课题采用数字电路控制放大器的增益,通过闭环操作,使用MSP430为开发平台,通过采用对信号幅度补偿的技术,解决由于输入频率变化而引起的放大器输出幅度的变化,实现增益的自动调整,从而实现获得稳定输入幅度的设计。由于放大器的内部元件的影响使得它的可用性有一定的频率范围,所以本设计就是在保证放大器正常工作的情况下对原输出有损信号进行校准。AGC电路由可控增益电路,数模转换,模数转换,峰值监测电路和显示电路五部分组成。

本课题所要介绍的内容有自动控制增益的原理,MSP430的掌握,以及自动增益电路各部分的工作原理。最后对系统中ADC电路和DAC电路测量并对测试结果和实际中的问题做一定的分析。

关键字:自动控制增益   放大器   MSP430  补偿

Abstract

In the modern electronic equipment, the most common circuit structure is amplifier. In the process of learning Electronic technology basic we know, amplifier internal structure that is the existence of the capacitance will affect the amplifier's gain when amplifier is in the high frequency state lead to the output signal amplitude variation, make the output signal amplitude value cannot meet the requirements when in high frequency.So this design can use to automatically adjust to the size of the amplifier output signal and amplitude remains the same, namely the automatic gain control amplifier design.

 This subject adopts digital control circuits to control the amplifier gain with the closed loop operation, using MSP430 for development platform and through making use of amplitude compensation technology ro solve the amplifier output amplitude changing owing to the input frequency’s variation.Finally it will realize the automatic adjustment gain, so as to achieve a stable input the amplitude of the design.

Amplifier has its availability has certain frequency range due to the influence of the internal components of the amplifier so this design is that output signal of the original will be adjusted in the normal work of the amplifierAGC circuit consist of  controllable gain circuits, analog-to-digital conversion, digital -to- analog conversion, peak monitoring circuit and display circuit five parts.

This topic to be presented are the contents of the principle of automatic control gain, having a command of MSP430, as well as the circuit principle of the automatic gain circuit each part. In the end, in the system ADC and DAC circuit will be in measure and do some analysis to the result of the test and the actual problems.

Key word: automatic control   gain amplifier   MSP430   compensation

引  言

在现代通信系统和电子设备中,为了提高技术性能指标,或者实现某些特定的要求,广泛的采用自动控制电路。自动增益控制电路的使用具有重要的实际意义。因为在各种通信系统中,由于受放大器内部结构,尤其是极间电容的影响,当放大器工作频率太高或太低时所输出的信号也会改变,使信号传输受损。如果接收机增益不变,则信号太强时会造成饱和和阻塞,而信号太弱时又可能丢失。我们希望放大器的增益能随输入信号的强弱而变化,信号强时,则增益低;信号弱时,则增益高。因此对于强弱经常变化的信号采用自动增益控制,不失为一种很好的选择。自动增益控制放大电路(AGC电路)其主要功能是根据输出信号电平的大小,调整放大器的增益,从而使输出信号电平保持稳定。

对于自己,以前用做运算放放大实验时发现,当输入的信号频率高到一定程度时,输出信号波形幅度有所变化,即放大倍数小于理论算出的增益大小,而且频率越高,增益越小,当时觉得应该是自己搭电路时不规范所致,没有太在意,但是随着学习的深入我逐渐的了解到,放大器放大倍数减小并不是偶然因素引起而是由于放大器内部结构即极间电容导致了这中现象。总有理论的学习还不能让我有多大深入了解,正好毕业设计的这个题目给了我这个验证并扩展的机会。所以本设计就是基于放大器在高频时的这种增益减小现象为课题来展开分析。

自动增益控制电路包括放大器输出信号幅度检测电路、模拟/数字转换电路、幅度比较模块以及电压控制增益电路。在对增益控制的速度要求不高的情况下,使用微控制器是一种合适地选择,因为它支持C语言开发。TI公司的MSP430系列芯片具有的片内模拟/数字转换器、硬件乘法器以及低功耗特点使其能够方便地实现自动增益控制电路的设计。总体来说本设计是采用数字的方法实现模拟信号的调节。将模拟量采样转换为数字量,虽然采样值与实际值有所误差,但数字处理方法的也可以达到很高的精度,并且相对于模拟信号出来来说,大大减小了干扰量,即数字信号差错可控。

1 方案论证

按照被处理信号所具有的特点,应用系统可以被划分为数字系统和模拟系统。因此实现本设计的方法可以有数字和模拟两种方法。数字方法又分组合逻辑电路的实现和软件编程实现。数字系统具有容易设计、整个系统的准确度以及精度容易保持一致、信息存储方便、抗干扰能力强等优点。模拟系统的实时性能好,而且自然界的大多数信号是模拟信号,系统的逼真度好。

本章首先对当前用于设计数字电路和系统的主要器件的特点进行讨论;接着对在《数字电路逻辑设计》课程中学习的由标准逻辑器件组成的数字电路分析和设计方法进行回顾;然后介绍解决基于标准逻辑器件设计电路所具有的电路可靠性低、修改电路设计困难的方法:采用可编程逻辑器件进行讨论,最后给出本设计中所采用的器件。

1.1 总体方案

方案一:模拟电路实现。

在电子技术基础学习课程中我们知道负反馈的原理可以稳定放大电路的工作点,此外,还可以增加增益的恒定性,减小非线性失真,扩展频带以及控制输入输出阻抗等。虽然从负反馈的作用来看,可以减小非线性失真与扩展频带,但是这种稳定也是基于放大电路在可工作频率范围,同样避免不了在高频时极间电容对电路的影响。所以采用负反馈的方法只能对本设计有所改善但不能很好的完成设计。

放大电路的反馈方框图如下1.1所示:

1.1 反馈方框图

方案二:数字电路实现

从数字信号的处理方法实际应用情况,数字信号处理的实现方法分成两类,一类是软件实现,一类是硬件实现。在工作原理方面,数字电路又可以被划分为标准逻辑器件、微处理器。这两种方法的具体阐述如下:

标准逻辑器件:

它的实现一般按照以下步骤进行:

1) 列真值表

2) 画卡诺图

3) 化简逻辑表达式

4) 根据表达式选取相应的逻辑器件连线

微处理器:

微型计算机(PC)是最常见的计算机,它由一些数字集成电路芯片组成,这些芯片包括微处理器芯片、存储器芯片以及输入/输出接口芯片等。实际中,计算机可以完成人类所能完成的大部分东西,而且还可以更快更精确,所以它的高速让人们有了很大的应用。计算机依靠所运行的软件(程序)来完成工作。这个软件是人们给计算机的一组完整的指令,指令告诉计算机其操作的每一步应该干什么。这些指令以二进制代码的形式存储在计算机的存储器中,计算机从存储器中一次读取一条指令代码,并完成由指令代码指定的操作。

通过编写软件可以控制计算机完成不同的工作,这个特点使得设计灵活性得到提高。当修改系统设计时,设计者只需要改变软件,不需要或者较少需要修改电路连线。由于计算机一次只能执行一条指令,因此它的主要局限性是工作速度。采用硬件方案设计的数字系统总是比软件方案的数字系统的工作速度快。

集成电路制造工艺的发展使得在一个芯片上制造大量的数字电路成为可能,这也促进了计算机技术的发展。把计算机中的微处理器芯片、存储器芯片以及输入/输出接口芯片等做在一块芯片上就形成单片机,有的文献上它也被称作为微控制器。

综述:通过方案论证比较,以及几种方案对本设计的实现性的难易程度来讲,我们采用软件微处理器的方法即采用MSP430来实现本次课题的要求。

2  系统设计

本设计的系统原理框图如图2.1所示。该系统中包括数字和模拟两部分。数字部分有ADC,DAC模块。模拟部分有放大电路和显示电路。

设计采用闭环操作,首先向放大器中输入幅度恒定的正弦信号,从VCA822放大器输出端的信号分两路,一路信号输出送入示波器观察输出信号峰值是否满足设计要求,另一路信号输出送到MSP430进行采样模数转换,由于要使信号输出幅度值恒定,而且采样补偿的方法,也就是实际信号与参考值进行比较,所以CPU内部应该设定这个要求的参考值。CPU的操作就是将采样得到的数字信号和要求的信号峰值比较(当然也转换成数字量才可以比较),如果采样峰值和参考值一样不做处理,如果采样峰值比参考值小,则输出信号需要放大,经运算就可以算出需要放大器放大的差值大小,同理也可以算出采样值比参考值大时需要放大器减小的差值大小,当这个差值算出来后,就把这个值通过模数转换再次送到VCA822程控芯片 ,通过用这个值转换为电压去控制芯片,也就是控制放器的增益大小,依次反复比较与调整,直到输出信号的幅度趋于恒定。

 

图2.1 系统原理框图

另外需要说明的是,如果将原始输入信号和经过修正后的信号同时加到VCA822芯片,这两路信号会相互影响,带来很大的误差,甚至不能测量,所以必须在他们的前级各加一级隔离电路,即跟随器。对VCA822调整是对电压VG做处理,从AD输出的电压值不可以直接送到该芯片,还得通过一个反相器才可以,以上的原理框图中没有画出,但实际中需要注意。

3  MSP430 概述

3.1 TI公司的MSP430介绍

3.2 MSP430F169

3.3  最小系统-复位电路

4单元模块电路

4.1信号峰峰值检测电路

方案一:在通信原理的学习中,我们知道对信号的检测可以用检波电路实现,检波电路是由二极管,电容和电阻组成。这个检波电路是根据电容充放电的原理实现。原理图如下所示.由于负载电容C的高频阻抗很小,因此高频电压大部分加到二极管D上。在信号正半轴,二极管导电,并对电容充电,由于二极管导通后的内阻很小,所以充电电流i很大,是电容上的电压在很短时间内就接近最大值。这时二极管导通与否,由电容上的电压和输入信号共同决定。当信号电压下降到小于电容上的电压时,二极管截止,点头就会通过负载电阻R放电。当电容上的电压下降不多是,第二个正半周期的电压又超过二极管上的负压使二极管又导通,就这样不断循环反复,就可以得到信号波形,进而得到峰峰值。但是这个检波电路适合高频信号的应用,本此设计中的信号频率时变化的,从低频一直加到高频。所以当输入信号频率低时,不能完成测量。

4.1 检波电路

方案二:采用AD536芯片。该芯片的作用是将输入正弦信号的峰峰值转换为有效值。采用本芯片将转换为的有效值输入到MSP430,利用AD进行多次采样,求平均值,并利用交流信号有效值计算的方法得出信号峰峰值,然后和已知幅度对比再做一定的处理,就可以完成满足要求的设计。但是AD536的转换速度相对较慢,经过测量大致需要1s才可以完成转换。所以采用它比较耗时。

方案三:直接用软件进行测量。具体如下:采用MSP430,直接对输入信号在一个周期内进行多次采样,通过软件编程即比较可以得到采样信号的最大值与最小值,两者相减得到的就是信号的峰峰值,当然对信号一个周期采样所得到的信号幅度大小也是不稳定的,所以可以对信号N个周期重复采样得到N个峰峰值,对这几个值求平均,就可以得到相对稳定准确的幅度值。这样做的测量速度远远快于采用AD536芯片的转换速度。

综上所述:直接采样求最大值与最小值不仅节约资源而且处理速度也加快。基于此,本设计不用AD536,而直接用采样,即MSP430。

这部分主要讲解设计中各个模块的介绍,包括四部分:数模转换电路,模数转换电路,放大电路VCA822和显示模块。

则峰峰值检测电路的代码如下:

int vpp(void)

{    unsigned char t,k;

for(t=0;t<10;t++)

    {

    TACTL=TASSEL1+TACLR;

    CCTL0=CCIE;

    CCR0=10;

    TACTL|=MC0;

    delay_1ms( );

    cmp1=0;

    cmp2=4095;

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

{ if(ram_data[k]>cmp1) cmp1=ram_data[k];

if(ram_data[k]       }

      chaju[t]=cmp1-cmp2;        

    }

for(t=0;t<9;t++)

    { if(chaju[t]>chaju[t+1]) chaju[t+1]=chaju[t]; } 

    chaju[10]=sum/10;*/

    return chaju[9];

}

4.2 显示电路介绍

4.3模数转换电路

4.3.1模数转换器ADC12

MSP430F169芯片内包含大量外围模块。其他系列单片机或多或少需要外部扩展器件才能实现功能,如RAM,ROM,A/D转换,D/A转换等MSP430系列单片机内部就可以完成。这样省去了大量硬件的开发调试工作,提高了工作效率,系统可靠性,抗干扰能力也得到显著改,并且可使系统体积进一步小型化。本设计中需要对输入信号采样,所以用到ADC,MSP430F169自带模数转换与数模转换模块,接下来就模数模块做基本介绍。

ADC12支持12位高速模数转换,ADC12模块主要由SAR核,采样时钟电路,参考电压发生器,采样保持电路以及采样时间定时电路,多路模拟信号选择器,转换结果存储控制器等。

(1)参考模块

所有模数转换器和数模转换器都需要一个基准信号,通常为电压基准。从图中我们可以看到,ADC126中可编程选择,有内部基准1.5V或2.5V电压,这两个电压的选取可以由位REFON和INCH的组合来决定;也有外部基准,VeREF+、VREF+ 、VREF-/ VREF+这几种电压的选取可以位REFON控制参考电压的的打开与关闭,再通过位SREF1,SREF0的不同组合来决定。这样可以灵活设置参考电压发生器。

(2)模拟多路器模块

当对多个模拟信号进行采样并进行ADC转换时,为了共用一个转换内核,模拟多路器需要分时的将多个模拟信号接通,即每次接通一个信号采样并转换。MSP430F169的ADC12配置有8路外部通道与四路内部通道,通过A0~A7实现尾部8路模拟信号的输入。这样可以同时对多路模拟信息进行测量与控制,从而满足实际控制欲实时数据处理系统的要求。

(3)具有采样与保持功能的12位转换内核

ADC12内核是一个十二位的模数转换器,并能够将结果存放在转换器中。该内核使用两个可编程参考电压(VR+和 VR-)定义转换的最大值与最小值。当输入模拟电压等于或高于VR+时,ADC12输出慢量程值0FFFH,当输入电压等于或小于VR+时,ADC12输出0,输入模拟电压的最终转换结果满足公式:

,其中等于输入模拟电压,  为参考电压的负电压(一般为0V),为参考的正电压。

因为ADC12转换需要一定的时间来完成量化和编码操作,对高速变化信号进行瞬时采样时,不等A/D转换完毕,采样的值却已经改变。为了保证转换精度ADC12内核具有采样和保持功能,即使现场模拟信号变化比较快,也不会影响ADC12的转换。采样状态,输出随输入而变化,保持状态,输出保持某个值一段时间以备转换。

(4) 采样采样及转换所需时序控制电路。

这个模块提供采样及转换所需的各种时钟信号:ADC12CLK转换时钟,SHT控制采样周期,ADC12SSELx选择的内核时钟源,ADC12DIV选择分频系数,从图也可以看出,由位ADC12SSELx可以选择时钟源为主时钟MCLK,辅助时钟ACLK和子时钟SMCLK,时钟源选择之后又可以根据实际情况通过位ADC12DIVx将时钟源进行1/2/4/8倍数的分频,最后产生出ADC12CLK转换时钟。

(5)转换结果缓存

ADC共有16个转换寄存器暂存转换结果,为ADCMEMx,即采样编码完成后硬件会自动将转换结果存放到相应的ADCMEMx。另外,每个转换寄存器ADCMEMx都有自己对应的控制寄存器ADCCTLx。

4.3.2  ADC12相关寄存器介绍

MSP430系列微控制器最多可以提供8个数字输入/输出端口,P1~P8。每个数字输入/输出端口最多可以提供8个数字输入/输出管脚,Px.0~Px.7。这里的x表示可以提供8个数字输入/输出端口中的任意一个。

P1和P2端口具有中断能力,它们具有各自的中断矢量。P1和P2端口的每1个管脚的中断可以配置和使能,但是每个端口的所有管脚共用一个中断矢量。当然并不是所有芯片都能够提供所有这些数字输入/输出管脚资源。数字输入/输出端口的相关寄存器包括任意端口都具有的寄存器和只有P1端口和P2端口具有的寄存器。前者包括输入寄存器(PxIN)、输出寄存器(PxOUT)、方向寄存器(PxDIR)和功能寄存器(PxSEL);后者还包括中断使能寄存器(PxIE)、中断触发边沿选择寄存器(PxIES)和中断标志寄存器(PxIFG)。

ADC12有大量的控制寄存器供用户使用。在这里我们只对用到的相关寄存器做详细介绍。

(1)转换寄存器ADC12CTL0

ADC12CTL0寄存器各位含义如下:

15141312111098
位名称SREFxADC12SHTxADC12SRREFOUTREFBURST
操作方式rwrwrwrwrwrwrwrw
复位值00000000
76543210
位名称MSCREF2_5VREFONADC12ONADC10IEADC12IFGENCADC12SC
操作方式rwrwrwrwrwrwrwrw
复位值00000000
注:标注为阴影的数据位仅能在位ENC=0的前提下才能修改。

ADC12SC  采样/转换控制位

1没有采样和转换

2开始采样和转换

ENC  转换允许位

1ADC12为初试状态,不能启动A/D转换,即AD不使能

2首次转换由SAMPCON上升沿启动

只有该位为高电平时,才能用软件或外部信号启动转换。

ADC12ON  ADC12内核控制位

     0  关闭ADC12内核

     1  打开ADC12内核

REFON  参考电压控制位

1内部参考电压发生器关闭

2内部参考电压发生器打开

SHT1,SHT0  采样保持定时器1,采样保持定时器0

分别定义了保存在转换结果寄存器ADC12MEM8~ADC12MEM15和ADC12MEM0~ADC12MEM7中转换采样时序与采样时钟ADC12CLK的关系。采样周期是ADC12CLK周期乘4 的整数倍,即:

SHTx0123456789101112~15
n12481624324896128192256
(2)转换寄存器ADC12CTL1

ADC12CTL1寄存器各位含义如下:

15141312111098
位名称INCHxSHSxADC10DFISSH
操作方式rwrwrwrwrwrwrwrw
复位值00000000
76543210
位名称ADC10DIVxADC10SSELxCONSEQxADC10BUSY
操作方式rwrwrwrwrwrwrwr
复位值00000000
注:标注为阴影的数据位仅能在位ENC=0的前提下才能修改。

ADC12BUSY   ADC12忙标志

1表示没有活动的操作

2ADC12正处于采样采样期间

Note:此寄存器只用于单通道转换模式

ADC12SSEL  ADC12内核时钟源选择

1ADC12内部时钟源为ADCOSC   

2ACLK

2  MCLK             

3  SMCLK

ADC12DIV  ADC12时钟源分频因子选择位。

     从000~111分别将时钟源分为1/2/3/4/5/6/7/8种。

(3)存储及其控制寄存器:ADC12MCTL0~ ADC12MCTL15

                         ADC12MEM0~ ADC12MEM15

ADC12MEMx  转换存储寄存器

这个寄存器是16位的,用来存放A/D转换结果

ADC12MCTLx 转换存储控制寄存器

由于每一个转换存储器有一个对应的转换器控制寄存器,所以在进行CSSTARTADD转换存储器地址位设置的同时,也确定了ADC12MCTLx。

ADC12MCTLx寄存器各位定义如下:

76,5,4

3,2,1,0

位名词EOSSREFINCH
操作方式rwrwrw
复位值000
INCH  选择模拟输入通道。该4位所表示的二进制数为所选的模拟输入通道。

0~7  A0~A7

以上是相关寄存器的介绍,接下来用一个子函数编写数模转换器的程序,如下:

void int_adc(void)

{ ADC12CTL0&=~ENC;

  ADC12CTL0|=REFON+SHT0_1+REF2_5V+ADC12ON;

  ADC12CTL1|=ADC12DIV_0+CSTARTADD_1+ADC12SSEL1;                           

  ADC12MCTL1|=INCH_1;

  ADC12CTL0|=ENC;

  P6SEL|=BIT1;                                                 P6DIR&=~BIT1;                                               

}

定时器中断采样函数:

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A1(void)

{ADC12CTL0|=ADC12SC;   // ADC 转换软件启动控制位使能

ADC12CTL0&=~ADC12SC;  // ADC 转换软件启动控制位清除                                           // 手册指出 ADC12SC 位可以自动清零

while((ADC12CTL1&0x01)==1);  // 等模拟 / 数字转换结束

 ram_data[i++]=ADC12MEM0;  // 读取 ADC 通道 0 结果 

if(i==200) 

 {TACTL&=~MC0;i=0; }

}

4.3.3  MSP430(169)片内ADC12转换特性测量

显示数据为10次转换结果求平均,模拟电压测试仪表为M0D三用表,20V档。

表1  MSP430片内ADC12转换特性

输入模拟电压(V)

测量模拟电压(V)

绝对误差(V)

相对误差(%)

0.000.0021/0.0088

0.0055

/
0.100.1002/0.1072

0.0037

3.700
0.200.1987/0.2038

0.0013

0.650
0.300.2981/0.3051

0.0016

0.533
0.400.3992/0.4038

0.0015

0.375
0.500.4993/0.5040

0.0017

0.340
0.600.5991/0.6043

0.0023

0.383
0.700.6988/0.7027

0.0007

0.100
0.800.7980/0.8037

0.0009

0.113
0.900.81/0.9046

0.0014

0.156
1.000.998/1.0040.0010.100
1.101.099/1.1060.0030.273
1.201.198/1.2030.0010.083
1.301.297/1.3040.0010.077
1.401.397/1.4050.0010.072
1.501.497/1.5050.0010.067
1.601.597/1.6040.0010.063
1.701.698/1.7030.0010.059
1.801.798/1.8040.0010.057
1.901.9/1.9040.0020.105
2.002.002/2.0080.0050.25
2.102.097/2.1060.0020.095
2.202.197/2.2060.0020.091
2.302.298/2.3040.0010.044
2.402.398/2.4020.0000.000
2.502.498/2.501-0.001-0.04
2.602.596/2.603-0.001-0.039
2.702.698/2.7060.0020.074
2.802.797/2.8030.0000.000
2.902.6/2.902-0.0010.035
3.002.996/3.002-0.001-0.033
3.103.098/3.1030.0010.032
3.203.197/3.2030.0000.000
3.313.304/3.307-0.0050.151
从表中可以看到,当输入信号小时,所得信号误差值大,当输入信号大时,所得信号误差小,并随着输入信号值的增大,误差值趋于稳定。

出现以上结果的原因是由于ADC转换的结果是经过采样量化和编码后得到的,所以肯定存在误差,另外,学习通信原理课程时我们知道,编码分为均匀编码和非均匀编码。均匀编码对小信号编码时,设备与计算简单,但对小信号输出不使用,输出的信噪比小;所以为了克服这个缺点,改善小信号时的信号量噪比,实际中通常采样非均匀编码的方法。ADC采用的就是均匀编码。

4.4 数模转换电路

4.4.1数模转换器DAC12

本设计中需要将模数转换后的数据做一定的处理之后再转化为模拟电压值输出,以控制放大器的工作。上面介绍了ADC的各模块与工作过程与代码,DAC电路与ADC很相似。

MSP430的DAC模块是12位、电压输出模数转换模块,在使用过程中可以被设置为0位或者12位的转换模式,并能够和DMA结合使用,当MSP430内部有多个DAC12模块时,MSP430可以对他们进行统一管理,并能够做到同步更新。 

为了更好了理解和应用MSP430DAC模块,了解DAC模块的结构与功能是很有必要的。

从图中我们可以看到MSP43016X系列的DAC模块包括两个DAC转换通道:DAC12_0和DAC12_1,这两个通道在操作上完全平等。每个转换通道有内部参考源发生器,DAC12内核,数据,电压输出缓存器等。

1)参考模块

   ADC12介绍中我们知道,数模转换器也需要一个基准信号,也就是电压基准。参考电压是唯一影响DAC12输出结果的模拟参考量,是DAC12转换模块的主要部分。DAC12可以选择内部或外部参考源内部参考源就是用DAC12SREFx位选择DAC12的1.5V或者2.5V电压,当DAC12SREF=(0,1)时,参考源为VREF+,当DAC12SREF=(2,3)时,参考源为VeREF+,只有在ADC12模块中进行相关设置之后,DAC12才能使用它的内部参考源。

2)DAC12内核

    用DAC12RES位选择DAC12的8位或12位精度,DAC12位选择DAC12的最大输出电压为参考电压的1倍或者3倍,于是用户可以动态控制DAC12的范围。

DAC12的主要特征有

(1)12位的分辨率

(2)内部或外部参考电压

(3)支持无符号和有符号数据输入

(4)具有自检验功能

(5)可直接用存储器存取

4.4.2 数模转换DAC12寄存器

DAC12的很多操作都是通过对它的内部寄存器的设置来实现的。相关寄存器介绍如下:

(1)DAC12_xCTL  DAC12控制寄存器

DAC12_xCTL寄存器各位定义如下:

15141312111098
位名称保留DAC2REFxDAC12REsDAC12LSELxDAC12CALONDAC12IR
操作方式rwrwrwrwrwrwrwrw
复位值00000000
76543210
位名称DAC12AMPxDAC12DFDAC12IEDAC12IFGDAC12ENCDAC12GRP
操作方式rwrwrwrwrwrwrwrw
复位值00000000
注:标注为阴影的数据位仅能在位ENC=0的前提下才能修改。

DAC12RES  选择DAC12分辨率

112位分辨率

1  8位分辨率

DAC12IR  DAC12输入范围选择位,设定输入参考电压和输出的关系

1DAC12的满量程输出为参考电压的3倍

2DAC12的满量程输出等于参考电压

 DAC12REFx  选择参考电压

00  VREF+

01  VREF+

10  VeREF+

11 VeREF+

DAC12AMPx  DAC12运算放大器设置位

  选择DAC12输入和输出的稳定时间及电流消耗。稳定时间是DAC12模块的一个重要动态参数,当输入到DAC12的数码发生变化时,模拟输出电压也要跟着变化,经过一定时间才能使新的模拟电压稳定下来,这段时间就是DAC12稳定时间,DAC12AMPx的控制功能如下表

DAC12AMPx输入缓冲器输出缓冲器
000关闭DAC12关闭,输出高阻

001关闭DAC12关闭,输出)0V电压

010低速度/电流

低速度/电流

011低速度/电流

中速度/电流

100低速度/电流

高速度/电流

101中速度/电流

中速度/电流

110中速度/电流

高速度/电流

111高速度/电流

高速度/电流

(2)DAC12_xDAT  DAC12数据寄存器

1514131211~0
位名称0000DAC12数据

操作方式rwrwrwrwrw
复位值00000
DAC12_xDAT高四位经常为零,不影响DAC12转换。当DAC12工作于12为模式时,DAC12_xDAT的最大值为0FFFH,若值超过这个最大值,则高位部分被忽略。同理DAC12工作于8位模式。

DAC12的源代码如下所示:

#include                      // 包含名称定义和对应地址或数据的头函数

void int_clk(void);                           // 声明系统时钟 XT2 初始化函数

int main(void)                               // 主函数

{

  unsigned char data_dac;                     // 声明存储待转换数字的变量

  unsigned char delay_dac;                    // 声明用于检测 DAC 工作速度的延迟变量

  int_clk( );                                  // 系统时钟初始化

  WDTCTL=WDTPW+WDTHOLD;                     // 关闭看门狗

  P6SEL=0xff;                               // 设置 P6 端口为特殊功能输入 / 输出口

  P6DIR=0xff;                               // 设置 P6 端口为输出口

  ADC12CTL0=REF2_5V+REFON;                  // 电路板上 VeREF+ 未连接,必须使用参考电压 VREF+

  DAC12_0CTL=DAC12IR+DAC12AMP1;

                                            // 参考电压选择 VREF+

                                            // 选择 12 位分辨率

                                            // 向 DAC12_0DATA 写数据触发数字/模拟转换

                                            // 模拟电压输出范围与参考电压相同

                                            // 输出模拟模拟电压建立时间选择:慢

                                            // 输入数据格式:线性 2 进制

                                            // 不使能中断

  DAC12_1CTL=DAC12IR+DAC12AMP1;

                                            // 参考电压选择 VREF+

                                            // 选择 12 位分辨率

                                            // 向 DAC12_0DATA 写数据触发数字/模拟转换

                                            // 模拟电压输出范围与参考电压相同

                                            // 输出模拟模拟电压建立时间选择:慢

                                            // 输入数据格式:线性 2 进制

                                            // 不使能中断

                                            

  while(1)                                  // 重复执行

  {

for(data_dac=0x00; data_dac<0x10; data_dac++)

    {

      DAC12_0DAT=data_dac*0x100;

      DAC12_1DAT=data_dac*0x100;

// 引入时间延迟,满足 DAC 输出电压的建立( 参考 MSP430F16x 技术手册 P47 )

// 单位 delay_dac 产生 6 个 MSP430 系统周期延迟

for(delay_dac=0x00; delay_dac<0x8; delay_dac++)

      {   }

    }

  }}

4.4.4   MSP430(169)片内DAC12转换特性测量

DAC12的参考电压源使用VREF+=1.5V,DAC12AMP=2,用示波器1V档观察。

表2  MSP430片内ADC12转换特性

输入数值理论输出值实际输出值相对误差mv

绝对误差(%)

003.023.02/
25693.7597.13.353.573
512187.519810.55.600
768281.2529412.754.533
1024375395205.333
1280468.7548011.252.400
1536562.557815.52.756
1792656.2567720.753.162
2048750763131.733
2304843.7586016.251.926
2560937.595921.52.293
28161.031251.0628.752.788
30721.1251.16353.111
33281.218751.2641.253.385
35841.31251.3647.53.619
38401.406251.4433.752.400
从表中可以看出,当输入数字量的值小时,对应转换后的模拟值小,实际测量出来的值与模拟值之差即误差大;当输入数字量的值大时,对应转换后的模拟电压值大,误差值小。

出现这种误差结果的原因同数模转换的原理,也是由于均匀转换的结果。

    实际当中的自动控制增益系统的应用并不是使输出信号的幅度保持很定,之间将太强的信号进行适当的减小,对太弱的信号进行适当的增加,以使最终输出的信号处在一个接收机可接收的一个范围中。当然,本设计是具体话,将输出幅度值处理后成为一个恒定值。

5  系统连调及结果分析

    本次设计结果通过示波器观察可以得到,输出结果基本可以保持一个恒定值,只是有稍微的波动,幅度在4mV左右。出现这种误差值的原因是因为本设计中电源等器件本身就不稳定有噪声干扰,所以,最后出来的效果肯定会有误差。这此的毕设本着就是学习的态度,所以精度不是很高。

6 总结

在通信系统和电子设备中 , 为了提高技术性能 , 或者实现某些特殊的高指标要求 , 广泛的采用自动增益控制电路。本系统以TI公司的MSP430F169为控制核心,结合VCA822等芯片完成了课题中的要求。在本文中详细介绍了自动增益控制的概念及原理,对自动增益控制放大器的中的方案也进行了讨论及分析。设计出具体的电路,对各部分电路的工作原理也进行了详细介绍。在文章的最后,列出了具体实验中的实验数据及分析结果,对存在的问题也有了一定的认识。随着微电子技术、计算机网络技术和通信技术的发展,自动增益控制的研究也在不断的进步,实现自动增益控制的方法也在不断的完善,改进目前在性能方面的一些不足,得到更大的提高。鉴于时间和只是的局限性,本系统还有待改善与优化。下载本文

显示全文
专题