程控放大器的设计方案.docx

上传人:b****6 文档编号:3065504 上传时间:2022-11-17 格式:DOCX 页数:27 大小:597.90KB
下载 相关 举报
程控放大器的设计方案.docx_第1页
第1页 / 共27页
程控放大器的设计方案.docx_第2页
第2页 / 共27页
程控放大器的设计方案.docx_第3页
第3页 / 共27页
程控放大器的设计方案.docx_第4页
第4页 / 共27页
程控放大器的设计方案.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

程控放大器的设计方案.docx

《程控放大器的设计方案.docx》由会员分享,可在线阅读,更多相关《程控放大器的设计方案.docx(27页珍藏版)》请在冰豆网上搜索。

程控放大器的设计方案.docx

程控放大器的设计方案

长江大学电子系统设计竞赛参赛方案

作品名称

程控放大器

姓名

周健(电气1083)、高秀龙(电气1083)

所在院系

电子信息学院

完成时间

2011.5.29

 

程控放大器

摘要:

本设计以LF353、ATMEGA16、DAC0832芯片为核心,加以其它辅助电路实现对宽带电压放大器的电压放大倍数、输出电压进行精确控制。

放大器的电压放大倍数从0.5倍到127.5倍,以

倍为最小步进可设定增益步进,控制误差不大于5%,放大器的带宽大于200KHz。

键盘和显示电路实现人机交互,完成对电压放大倍数和输出电压的设定和显示。

关键字:

程控放大器、高精度、控制电压、电压变换、D/A、A/D。

一、系统方案设计与论证

1、方案的比较

程控放大器在信号调整与控制电路具有广泛的用途,如音响设备中音量的控制,电子设备中信号的准确放大,信号处理电路中输出信号的自动稳幅等。

准确程控增益可调放大器的实现方法通常有以下几种方案可供选用。

方案一:

利用可程控的模拟开关和电阻网络构成放大器的反馈电阻,通过接入不同的电阻来实现放大器的放大倍数改变,以达到程控增益的目的。

此方案的优点是控制简单,电路实现较为容易。

缺点是多路模拟开关使用频率较低,其导通电阻对信号传输精度影响较为明显,漂移较大,输入阻抗不高,对于较为精确的控制其影响难以进行后期修正,切换时抖动引起的误差比较大,切换速度较慢。

控制精度增加一位,电阻网络就增加一级,电阻网络的电阻选择也较为困难,很难做到高精度控制。

方案二:

利用数字电位器作为放大器的反馈电阻,实现放大器的放大倍数改变。

此方案和方案一原理基本相同,都是通过调节反馈电阻来实现对增益的控制,不同的是选用数字电位器来实现,缺点是数字电位器为了扩大使用电压范围,内部附加了由振荡器组成的充电泵,因而会产生有害的高频噪声,它同样不能满足高精度控制要求。

方案三:

利用电流型DAC自身的乘法功能,可以实现程控放大器。

此方案实现较为容易,控制精确较高,一般不能做到宽频使用。

方案四:

利用新型单片集成电压控制放大器实现程控放大器。

此方案实现也较为容易,控制电路成本较低,使用频率受限于放大器本身。

方案五:

利用D/A转换器与仪表放大器一起可组成程控增益放大器。

该方案电路简单,增益可调范围大,稳定性好,性价比高,其增益由输入数字量控制,电路很容易和计算机或单片机相连,组成自动测试系统。

2、方案确定

分析上述五种方案的优缺点,在满足要求的条件下,方案五具有更大的优越性和灵和性,因此我们采用D/A转换器与仪表放大器一起可组成程控增益放大器。

二、放大器的基本原理

1、D/A转换器原理

图一D/A转换器原理电路图

如图一所示,从

端看进去,无论各个开关在什么位置,R-2R网络是个恒阻值R,流入R-2R网络的电流即为

对于一个N位的MDAC来说,MSB处的2R上流过的电流大小为

MSB-1处的2R流过的电流为

MSB-2处的电流为

……,在LSB上流过的电流为

根据运放虚断的特有

;

通常集成在DAC内部,从而保证和R是相等的,这样可以得到

2、D/A转换器构成的程控增益放大器原理

根据DAC的原理可知,它是一种电压输入电压输出的关系。

将待放大的模拟信号从

输入,就构成了一个增益小于1的放大器,其增益为

,为了实现放大,在接一级或多级放大。

设后级放大

倍,则放大器的增益为

,其中D是给定的数字量范围为0到

,从而构成了程控放大/衰减器。

三、系统的硬件设计与实现

1、电源部分

运放LF353选用

的双电源供电,ATmega16工作电压为

电路如下:

2、D/A转换器构成的放大电路

电路设计如下:

当输入信号十分微弱时,通常会淹没在噪声中,为此采用具有高共模抑制比、高输入阻抗、低噪声、宽频带宽特性的运算放大器LF353作为输入缓冲,它单位带宽可达4MHz,完全满足系统频带宽10Hz到200KHz的要求,共摸抑制比高达100dB,等效输入噪声小于16nV/Hz,能有效抑制共模干扰引入的误差,提高信噪比和系统的精度;放大部分采用8位的DAC0832实现的数字量程控放大,其增益为:

其中D给定的范围从1到255,因此可以实现从0.5倍到127.5倍,最小步进为0.5倍的程控放大。

满足系统增益1倍到100倍,最大步进10倍的设计要求。

3、

测量电路

采用采样保持集成电路LF398和电压比较器LF353等组成的峰值采样保持电路,输入采样信号频率可达1MHz。

该电路通过控制信号实现对峰值采样,小于原峰值时,电容保持其原峰值,否则保持其新峰值。

其原理是:

输入的电压进入采样集成,对电容充电,电压达到最大值(峰值)之后,输出的电压和输入的电压作比较,产生控制信号控制LF398的逻辑控制脚电压,使其采样保持输入信号的峰值。

使用ATmega16内部含有8路复用的单端输入通道的10位ADC进行模数转换。

10位精度、0.5LSB的非线性度、±2LSB的绝对精度、65-260µs的转换时间、最高分辨率时采样率高达15kSPS、可选的2.56VADC参考电压、ADC转换结束中断,其误差为

,理论上能满足系统误差要求。

4、显示电路

此部分采用4个独立键盘完成功能的选择、放大倍数及增益步进的设置。

信号的幅值大小、放大倍数、步进大小以及工作模式等通过12864液晶进行显示,实现了友好的操作界面。

5、系统控制电路

采用ATMEL公司的一款8位单片机ATMEG16来完成信号放大倍数的控制、信号峰值的检测以及显示数值功能,其电路设计如下:

系统电路图

四、软件程序设计

1.12864的驱动时序

2、按键驱动时序

3、DAC0832的驱动时序

4、测量

子程序流程图

5、按键响应程序流程图

INT0中断函数流程图定时器1中断函数流程图

6、系统程序流程图

附录:

附录1:

主要元器件清单表

元器件类型

元器件型号

数量

单片机芯片

ATMEGA16

1

显示屏

12864

1

D/A转换芯片

DAC0832

1

运算放大器

LF353

5

采样保持集成芯片

LF398

2

集成稳压芯片

7805

1

7812

1

7912

1

瓷片电容

0.1uF

12

1uF

2

电解电容

10uF

1

470uF

1

电阻

560R

1

1K

4

10K

2

90K

1

精密可调电位器10K(50K)

2

二极管

IN4007

8

附录2:

程序源代码

/*名称:

Atmega16-程控放大器源代码*/

/*时钟:

8MHZ*/

/*交互器件:

LCD128*64、DAC0832、按键*4、模拟量输入*2*/

/*最后修改:

2011-5-28*/

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineRS_H()PORTD|=_BV(0);//H=数据;L=指令

#defineRS_L()PORTD&=~_BV(0);

#defineRW_H()PORTD|=_BV

(1);//H=读;L=写

#defineRW_L()PORTD&=~_BV

(1);

#defineE_H()PORTD|=_BV(3);//输入使能

#defineE_L()PORTD&=~_BV(3);

#definePSB_H()PORTD|=_BV(4);//H=并口;L=串口

#definePSB_L()PORTD&=~_BV(4);

#defineRST_H()PORTD|=_BV(5);//ResetSignal低电平有效

#defineRST_L()PORTD&=~_BV(5);

#defineDAC_H()PORTA|=_BV(3);//DAC0832输入使能

#defineDAC_L()PORTA&=~_BV(3);

#defineok0x01//按键定义

#definechange0x02

#defineadd0x03

#definereduce0x04

uchardigit[10]={"0123456789"};//数字表

volatileucharstate=0;//指令状态值

volatileucharframe=0;//当前界面状态量

volatileucharkey=0;//键值

volatileucharkey_state1=0;//进入中断时的按键状态

volatileucharkey_state2=0;//按键是否弹起

volatileucharkey_time=0;//按键是长按还是短按

volatileuintData_in=1000;//输入幅度值,这样可以避免过多的浮点数运算

volatileuintData_out=1000;//输出幅度值,这样可以避免过多的浮点数运算

volatileuintmultiple_set=10;//倍数初值设定,这样可以避免过多的浮点数运算

volatileuintamplitude_set=1000;//幅值初值设定,这样可以避免过多的浮点数运算

volatilefloatmultiple_real=1;//实际放大倍数

voiddelay_ms(uintnum)

{

uinti,j;

for(i=0;i

for(j=0;j<400;j++);

}

voiddelay_us(uintnum)

{

uinti;

for(i=0;i

}

voidDAC0832()//利用DA实现程控放大

{

staticuinttemp=2;

staticucharstate_new=1;//防止设定的倍数对反馈产生干扰

if(state==1)//确定倍数设定

{

state=0;

state_new=0;

temp=(uchar)((multiple_set*2)/10);//写给DAC0832的值要对放大倍数乘以2

}

elseif(state==2)//确定幅值设定

{

state=0;

state_new=0;

temp=(uchar)(amplitude_set*2/Data_in);//写给DAC0832的值要对放大倍数乘以2

//由于Data_in单位是ms,amplitude_set单位是s

}

elsestate_new=1;

if(temp>255)temp=255;

PORTB=(uchar)(temp);

DAC_L();

delay_us(5);

DAC_H();

if(!

state)

{

if((multiple_real*2)<(float)(temp-1)&&temp<255)temp+=1;//temp-1可保留一定死区,增加稳定性

elseif((multiple_real*2)>(float)(temp+1)&&temp>0)temp-=

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

当前位置:首页 > 法律文书 > 调解书

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

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