09年C题实验报告宽带直流放大器.docx
《09年C题实验报告宽带直流放大器.docx》由会员分享,可在线阅读,更多相关《09年C题实验报告宽带直流放大器.docx(16页珍藏版)》请在冰豆网上搜索。
![09年C题实验报告宽带直流放大器.docx](https://file1.bdocx.com/fileroot1/2022-12/12/a2cb8413-b1ae-4b00-b45a-37ce6fb2000f/a2cb8413-b1ae-4b00-b45a-37ce6fb2000f1.gif)
09年C题实验报告宽带直流放大器
2009年全国大学生电子设计竞赛
【本科组】
宽带直流放大器(C题)
摘要:
本宽带直放大器使用一片ad8039两级前置放大然后经过由VCA810组成的程控放大电路经过5M和10M的三阶无源滤波器再通过AD811精密运放和BUF634缓冲电路接负载输出,整个系统由单片机通过键盘控制,可以在手动与步进放大倍数之间调节,也可以通过按键调节5M和10M通道的滤波器,该系统性能指标良好,增益可以在0~66.8dB之间调节,在规定的带宽范围内幅度波动没有超过1dB,完成了题目的要求。
关键词:
前置放大无源滤波步进放大
Abstract:
Thebroadbandamplifierusingastraightad8039twolevelsofpreamplifierandthenthroughaprogrammableamplifiercircuitcomposedofVCA810througha5mand10mofthird-orderpassivefilterthroughAD811precisionop-ampandBUF634loadoutputbuffercircuit,thewholesystemiscontrolledbyasingle-chipmicrocomputerbykeyboard,canstepbetweenmagnificationandmanualadjustment,canalsousebuttonsadjustthefilterof5mand10mchannel,thesystemperformanceisgood,canbebetween0~66.8dBgainadjustment,amplitudefluctuationswithinthebandwidthoftheprovisionsofnomorethan1dB,completedthetopicrequest.
KeyWord:
pre-amplificationPassivefilterStepamplification
1.系统设计
1.1设计要求
1.1.1设计任务
设计并制作一个宽带直流放大器及所用的直流稳压电源。
1.1.2技术指标
(1)基本要求
1 电压增益
,输入电压有效值
。
可在0~40dB范围内手动连续调节。
2 最大输出电压正弦波有效值
,输出信号波形无明显失真。
3 3dB通频带0~5MHz;在0~4MHz通频带内增益起伏
。
4 放大器的输入电阻
,负载电阻
。
5 设计并制作满足放大器要求所用的直流稳压电源。
(2)发挥部分
1 最大电压增益
,输入电源有效值
。
2 在
时,输出端噪声电压的峰—峰值
。
3 3dB通频带0~10MHz;在0~9MHz通频带内增益起伏
。
4 最大输出电压正弦波有效值
,输出信号波形无明显失真。
5 进一步降低输入电压提高放大器的电压增益。
6 电压增益
可预置并显示,预置范围为0~60dB,步距为5dB(也可以连续调节);放大器的带宽可预置并显示(至少5MHz、10MHz两点)。
7 降低放大器的制作成本,提高电源效率。
8 其他(例如改善放大器性能的其它措施等)。
1.2方案比较与选择
1.2.1可控增益放大方法比较与选择
方案一:
采用晶体管或场效应管控制增益
主要利用场效应管的可变电阻区或者晶体管的压控电阻实现增益控制。
该方案采用大量的分立元件,电路复杂且稳定性差。
方案二:
采用增益可调的运放来控制增益
直接选取增益可调的运放,如VCA810、AD603。
其可调增益分别为-40dB-40dB、-10dB-30dB。
可以用单片机以dB为单位方便地预置增益。
为满足题目要求,若采用AD603,需两片级联。
经比较,选用方案二的VCA810。
1.2.2功率输出部分方法比较与选择
方案一:
采用分立元件
采用分立元件,成本低,易于购买。
但设计调试难度太大,耗时长,短时间内手工制作难以保证性能指标及可靠性。
方案二:
采用宽带运算放大器
可采用宽带运算放大器,如AD811、THS3091、THS3001放大电压。
其中AD811为宽带电流反馈型运算放大器,-3dB带宽为120MHz(G=+2);THS3091为单路高压低失真电流反馈型运算放大器,带宽为210MHz(G=2);THS3001为超高速电流负反馈运算放大器,带宽为210MHz(G=2)。
经实验,采用AD811效果较好。
采用BUF634增大驱动电流。
BUF634为高速开环增益缓冲器,它可用于运算放大器的反馈环路内,以增加输出电流,消除热反馈并提高容性负载驱动。
对于低功耗的应用,BUF634静态电流,具有250mA输出、2000V/us压摆率和30MHz带宽,均满足题目需求。
综上,我们选择AD831和BUF634进行功率放大。
1.2.3直流稳压电源方案比较
方案一:
线性稳压电源
采用三端稳压芯片7818、7918、7805、7905及电容制作完成
、
,给各单元电路供电。
方案二:
开关稳压电源
此方案虽效率高,但理论电路复杂。
亦可采用开关稳压电源芯片,但实验要求采用制作开关稳压电源,才用稳压电源芯片恐不符合题目要求。
综上,选择方案一,制作直流稳压电源。
1.3方案论证
输入信号先经过50Ω阻抗匹配和前级放大,采用VCA810与后级电路相配合实现0~80dB范围内的增益控制。
信号经过5MHz(10MHz)滤波器后送入的功率放大电路,驱动50Ω负载,最大输出电压有效值为10V。
使用继电器切换滤波器模块,实现5MHz、10MHz的通带选择。
单片机控制完成电压增益的可预置并显示、可连续调节以及带宽的可预置并显示。
信号经过滤波器后送入的功率放大电路,驱动50Ω负载,最大输出电压有效值为10V。
图1.3系统总体框图
2.单元电路设计及参数计算
2.1前置放大模块
图2.1前置放大电路
若采用一级AD8039进行10倍的放大,则达不到10MHz以上带宽的要求。
于是采用两级放大,为保证输入电阻为50Ω,第一级放大采用同相比例放大。
第一级放大倍数
;第二级放大倍数
;前置放大倍数
,即放大20dB。
2.2可控增益放大模块
图2.2.1程控增益放大电路
VCA810为高增益变化范围、宽带的电压控制增益放大器,且其零漂较小。
其控制的增益的线性范围为-40dB~+40dB。
,其中
为控制电压,范围在-2V~0V。
VCA810的3脚接控制电压输入。
题目要求实现手动调节和单片机步进调节,采用单片机和继电器进行控制。
图2.2.2手动调节和步进调节电路
2.33dB截止频率为5MHz和10MHz滤波器模块
根据题目要求,需满足3dB通频带为0~5MHz和0~10MHz两种带宽。
设计采用两组3阶无源低通滤波器,3dB通频带为0~5MHz和0~10MHz,带内波动小于0.1dB,可由单片机控制加以切换。
图2.3.15M滤波器
图2.3.210M滤波器
2.4功率放大模
图2.4功率放大电路
3.软件设计
3.1程序总体流程图
图3.1程序总体流程图
3.2程序清单(见附录2)
4.系统测试
4.1测试仪器
台式万用表,型号:
UT802
任意波形发生器,型号:
YB32020
示波器,型号:
DXO-X2002A
4.2测试结果
(1)输入阻抗测试
在输入端串接50Ω电阻,测量输入端电压峰峰值,通过计算可测的输出阻抗。
结果分析:
经过测量,在不同带宽范围内均可满足输入阻抗
50Ω。
(2)
类型
序号
项目与指标
测试记录
基本
要求
(1)
放大器增益
电压增益>40dB
增益手动连续调节0~40dB
(2)
输出电压
最大输出电压有效值>2V
(3)
-3dB通频带
0~5MHz
0~4MHz通频带内增益起伏<1dB
最大值=
最小值=
(4)
负载电阻
负载电阻(50
2)Ω
类型
序号
项目与指标
测试记录
发挥
部分
(1)
放大器增益
电压增益>60dB
(2)
-3dB通频带
0~10MHz
0~9MHz通频带内增益起伏<1dB
最大值=10V
最小值=7.21V
(3)
输出电压
最大电压有效值
10V
(4)
提高电压增益
进一步降低输入电压提高放大器的电压增益,电压增益每提高2dB
(5)
可预置并显示
可预置并显示
可连续调节带宽并显示
带宽可预置并显示
5.结束语
本设计利用AD8039实现前级放大、VCA810实现可控增益调节,采用三阶无源滤波完成3dB截止频率为5MHz和10MHz的要求,最后采用AD811和BUF634实现功率放大部分。
采用C8051F020单片机进行DAC、按键控制和LCD显示。
在系统设计的过程中,我们遇到了很多问题,VCA810输出带宽不够、滤波器截止频率和通频带内增益起伏不满足1dB要求、AD811放大倍数不对、输出带宽过小、单片机控制后波形很不好等问题。
通过小组成员间的交流讨论、仔细分析最终解决了上述问题,但其中AD811输出带宽的问题还是没能得到很好的解决,不能满足带宽要求。
在这个过程中,我们深刻地体会到共同协作和团队精神的重要性,并且也提高了自己发现问题、解决问题的能力。
参考文献
[1]童诗白,华成英.模拟电子技术基础(第四版)[M].北京:
高等教育出版社,2006
[2]肖看,李群芳.单片机原理、接口及应用——嵌入式系统技术基础(第二版)[M].北京:
清华大学出版社,2010
[3]黄智伟,王彦,陈文光,朱卫华.全国大学生电子设计竞赛训练教程(修订版)[M].北京:
电子工业出版社,2010
附录
附录1主要元器件清单
(1)C8051F0201片
(2)LCD及矩阵键盘1个
(3)AD80391片
(4)VCA8101片
(5)OPA22271片
(6)AD8441片
(7)电容电阻电感若干
附录2程序清单
main.c
/********************************************************************
本程序为宽带直流放大器。
DAC0控制VCA810(第3脚);
TXD(P0.0)控制滤波器的截止频率是5MHz还是10MHz(默认5MHz);
RXD(P0.1)控制VCA810是手动调节还是以5db步距调节(默认5db步距调节);
Key1:
10MHz;
Key2:
5MHz;
Key3:
5db步距调节;
Key4:
手动调节;
********************************************************************/
#include"C8051F020.h"
#include"DataType.h"
#include"init.h"
#include"key.h"
#include"lcd.h"
sfr16DAC0=0xD2;
sfr16DAC1=0xD5;
sbitsps_0=P0^0;
sbitsps_1=P0^1;
staticintcount=0;
unsignedintsample[13]={0,188,404,613,822,1032,1241,1451,1660,1869,2078,2287,2499};
floatsample1[13]={0,0.125,0.250,0.375,0.500,0.625,0.750,0.875,1.000,1.125,1.250,1.375,1.500};
voidKeyPressedHandler();//按键检测函数
voidClear_LCD_all(void);//屏幕处理函数
voidmain(void)
{
inti=0;
WDTCN=0xde;//Disablewatchdogtimer
WDTCN=0xad;
Init();
LCD_Init();//液晶屏初始化
KeyPort_Init();//键盘初始化
EA=1;
Clear_LCD_all();
sps_0=0;
sps_1=0;
DAC0=0;
count=0;
while
(1)
{
for(i=0;i<30000;i++);
for(i=0;i<30000;i++);
KeyPressedHandler();
for(i=0;i<30000;i++);
for(i=0;i<30000;i++);
if(sps_0==0)
LCD_DispStrAt("带宽为5MHz",1,1);
}
}
voidKeyPressedHandler()
{
unsignedchari=0;
unsignedinti_delay=0;
switch(KeyScan())
{
case1:
sps_0=1;
LCD_ClearScreen();
LCD_DispStrAt("带宽为10MHz",1,1);
break;
case2:
sps_0=0;
LCD_ClearScreen();
LCD_DispStrAt("带宽为5MHz",1,1);
break;
case3:
sps_1=0;
LCD_ClearScreen();
if(count<12)
{
count++;
DAC0=sample[count]^0x8000;
LCD_DispNumberAt(count,2,1);
LCD_DispFloatNumberAt(sample1[count],3,2,4);
}
else
{
count=0;
DAC0=0;
LCD_ClearScreen();
}
break;
case4:
sps_1=1;
LCD_ClearScreen();
DAC0=3339^0x8000;
LCD_DispStrAt("手动",2,1);
LCD_DispFloatNumberAt(2.000,3,2,4);
break;
case5:
LCD_DispStrAt("KEY05",2,1);
break;
case6:
LCD_DispStrAt("KEY06",2,1);
break;
case7:
LCD_DispStrAt("KEY07",2,1);
break;
case8:
LCD_DispStrAt("KEY08",2,1);
break;
case9:
LCD_DispStrAt("KEY09",2,1);
break;
case10:
LCD_DispStrAt("KEY10",2,1);
break;
case11:
LCD_DispStrAt("KEY11",2,1);
break;
case12:
LCD_DispStrAt("KEY12",2,1);
break;
case13:
LCD_DispStrAt("KEY13",2,1);
break;
case14:
LCD_DispStrAt("KEY14",2,1);
break;
case15:
LCD_DispStrAt("KEY15",2,1);
break;
case16:
LCD_DispStrAt("KEY16",2,1);
break;
default:
break;
}
}