当前位置:文档之家› 自动增益放大器剖析

自动增益放大器剖析

自动增益控制放大器
一、设计思路描述
本自动增益控制放大器系统以MSP430G2553为控制核心。

利用单片机内部ADC10对末级输出信号采样,可由按键控制三种模式以及增益倍数的切换,也可根据采样得到的末级输出信号幅度大小,自动控制DAC7811作为TLC085反馈电阻网络,从而实现对末级自动增益控制。

在软件设计中,我们实现三种不同的模式切换:
1.交流手动模式中。

根据选择增益倍数不同,我们可以算出不同的code值,将code值传给DAC7811。

例如:当我选择0.2倍增益时,那么需要控制前级衰减,同时code值为2048,因此增益倍数Av=0.1*4096/2048=0.2。

2.直流自动换挡模式。

根据单片机内部ADC10对输出信号采样幅度大小,自动控制前级是否衰减、控制CD4051选择OPA 2227反馈电阻,从而实现0.2、0.5、
2、5的最大增益倍数。

3.自动增益模式。

根据利用单片机内部ADC10对输出信号采样幅度大小自动控制前级是否衰减,控制CD4051选择OPA 2227反馈电阻。

二、硬件电路设计
2.1前级信号衰减电路
VDD
图2.1 前级衰减电路
如图2.1所示,前级衰减电路由CD4051、OPA2227、20KΩ以及2KΩ电阻组成,其中CD4051为单刀八掷开关。

在该电路中,单片机MSP430G2553通过P1.3口进行对CD4051中两种电阻进行选择,改变OPA2227反馈电阻,从而实现0.1倍与1倍的控制。

在整个电路中,前级衰减电路十分重要,它不仅仅是对输入信号进行衰减,还可以对单片机MSP430G2553进行保护。

2.2末级DAC7811增益自动控制电路
图2.2 DAC7811增益自动控制电路
图2.2为末级DAC7811增益自动控制电路。

利用单片机内部ADC10对输出信号经过OPA2340绝对值整形后的波形进行采样,根据幅值控制CD4051选择
OPA2227反馈电阻,进而控制衰减10倍或1倍。

该电路由TLC085与DAC7811组成,其中TLC085为四路运算放大器,在这次设计中,我们只使用两路,一路作电压跟随器使用,起缓冲作用;另一路放大器是与DAC7811形成反馈电路,实现增益调节。

在DAC7811的数据手册中,我们可以根据公式:

单片机MSP430G2553通过控制P2.0 P2.1 P2.2三个端口,给DAC7811发送数据。

由上公式可知,当Av=5时,我们只需要控制单片机MSP430G2553给DAC7811发送相对应的code 值。

在该电路中,DAC7811特别小,因此将其焊在洞洞板上是非常困难的,建议使用脚距为0.5mm 的转接板,也不要随意掰其引脚,谨防引脚断裂!!!!
2.3键盘显示模块
在键盘中,我们采用三个键设计,其关系如下图2.3所示,它们分别为模式选择键、增益选择键和确定键。

模式选择键可以在交流自动、直流换挡自动和自动增益三种模式切换;
增益选择可以选择0.2、0.5、2、5四种增益;最后的确定键的作用为总开关,
只有当确定键按下之后,单片机才会运行相应的模式。

图2.3 键盘设计电路
显示部分比较麻烦,为了节省I/O 端口,开始我们用74HC164和1602显示,这样只需要4个I/O 端口。

但是在实际中这种方案是不可行的,因此我们最后选择用12864作为显示,需要2个I/O 端口,实际运行通过。

三、软件程序设计
3.1
ADC10采样模块
code
V V in out 4096⨯
-=code
Av 4096
-
=
在程序中,每隔1607个时钟周期对输入的交流进行一次AD采样,因为1607是一个质数,所以基本可以保证采样在不同的正弦相位,通过10000次取点计算出峰峰值。

其流程图如图3.1所示。

3.11ADC10主要特性:
1)有内部基准1.5v或2.5v,还可以外接基准电压。

2)采样对象:可直接向内部温度传感器、芯片供电电
压、外部基准电压采样
3)AD采样起始信号触发方式,软件触发和Timer_A控
制触发
4)采样的方式:单通道单次,单通道多次,多通道轮
流,多通道重复。

5)可单独关闭ADC和基准电压
6)采样数据可自动存储在指定的存储空间ADC10MEM
寄存器中
3.12ADC10初始化设置:
主要是基准电压与通道选择的配置
1)内部基准电压
ADC10内部集成有带隙电压基准,可以产生1.5V或2.5V两种基准电压。

使用内部基准电压具体配置如下:
ADC10CTL0|=REFON;(配置内部基准电压1.5v)
ADC10CTL0|=REFON+REF2_5V;(配置内部基准电压2.5v)
REFON:内部基准电压发生器控制
0 关闭内部基准电压发生器
1 开启内部基准电压发生器
REF2_5V:内部基准电压选择1.5V/2.5V
0 选择1.5V内部参考电压
1 选择2.5V内部参考电压
2)外部基准电压
使用外部基准电压具体配置如下:
ADC10CTL0|=SREF_x;
SREFx:基准源选择
0 Vr+=AVcc, Vr-=AVss
1 Vr+=Vref+, Vr-=AVss
2,3 Vr+=Veref+, Vr-=AVss
4 Vr+=AVcc, Vr-=Vref-/Veref-
5 Vr+=AVcc, Vr-=Vref-/Veref-
6,7 Vr+=AVcc, Vr-=Vref-/Veref-
3)通道选择
ADC10CTL1|= CONSEQ_x;
COMSEQx:转换模式
0 单通道单次转换
1 序列通道单次转换
2 单通道多次转换
3 序列通道多次转换
3.2DAC7811模块
在该模块的软件设计中,我们控制单片机MSP430G2553的3个I/O端口,通过单片机给DAC芯片写入code值,控制增益倍数。

DAC总共16位,12位为数据位,为4096,因此DAC最大值为4096。

3.3CD4051模块
在该模块的软件设计中,我们控制单片机MSP430G2553的1个I/O端口,控制CD4051选择OPA2227反馈电阻,进而控制衰减10倍或1倍。

3.4 主程序
附件1为主程序流程图。

在该流程图中,我们通过三个按键的切换,选择不同的模式和增益倍数,进而选择不同的子程序。

其关系如下表所示:
3.5交流换挡模式
附件2为交流换挡程序流程图。

在交流换挡子程序中,主要根据按键选择增益倍数不同,控制前级CD4051是否衰减,以及DAC中计算出相应的code值,这些值都是固定的,如下表3.5。

当ADC10采样之后,我们需要计算出输入电压的值,并将其显示在12864上。

3.6直流自动换挡模式
附件3为直流自动换挡程序流程图。

在直流自动换挡主程序中,我们把0.1~5V的电压划分为很个区间,在区间内,其电压正义和前级衰减关系是固定的,选择最大增益档位,这样的方法便于程序运行,不需要其判断是否为最大增益,节省时间,其区间关系如下表所示:
3.7自动增益模式
附件4为自动增益程序流程图。

在自动程序中,我们把输入电压0.1~10V 的输入电压分为十个区间,先通过采样值判断其区间,然后在区间里确定其code 值。

在判断其是否为最佳增益时,我们选用了求最小值方法,code1和code0的采样值都在1±0.2V的区间内,那么如果code1比code0小,则保留code1的值,并等待下次比较值,若code1采样值为最小,则code1为最佳增益。

采用区间划分的方法可以节省更多的时间,因为在自动增益中其输入电压是渐变的,并不是稳定不变的,因此我们采样处理时间要尽可能的短一些,如果觉得区间划分法所需时间很长,可以code从每次自加1提高到每次自加10,也可以考虑PID算法。

四、心得与体会
在分配任务值初,应该合理的分配I/O端口,在单片机上只有14个端口可
以让我们使用,那我们在显示方面使用2个I/O端口佬控制12864;在按键方面,我们使用3个I/O端口;CD4051使用1个I/O端口;DAC7811使用3个I/O端口。

因此在I/O端口方面,还是够用的。

另外要主要的是,组长应该在分配任务值初,规定一下程序编程时格式要求、变量定义和文件名称的统一,这样在后面调试的时候更加轻松。

在硬件方面要特别注意,OPA2227和DAC7811都是非常小的芯片,不要随意的去掰其引脚,很容易断裂,在焊接时,应采用转接板进行焊接,对芯片起到一个很好的保护。

在显示方面,1602加74HC164是不可以显示的,我们采用12864显示,使用的I/O端口更少,并且12864能显示汉字,这是1602不能做到的。

在按键上,可以有很多种方法,但是那个确定键是必不可少的。

如果没有确定键的话,我们要进入模式3自动增益模式,那么按键程序必定会经过模式1与模式2,单片机便会认为你选择模式1和模式2,单片机会执行相应的子程序,因此确定键在这起到一个总开关的作用,只要确定键没有按下,你可以任意的切换模式与增益,当确定键按下后,程序便会进入你设好的模式当中,防止其跑飞。

附件:
附件1 主程序流程图
附件2 交流换挡程序流程图
附件3 直流自动换挡程序流程图
附件4 自动增益程序流程图
附件6 自动增益放大总电路图。

相关主题