1宽带前置放大电路2宽带前置放大电路【摘要】:本系统设计的宽带前置放大电路由频率显示装置、输入阻抗匹配单元、无源衰减网络、有源放大电路四部分组成,带宽可达40MHz,具有良好的直流和交流特性。频率显示部分使用TI公司的OPA842、TLV3501及MSP430F149单片机进行信号处理,使用12864液晶进行显示。输入阻抗匹配单元有50Ω和1MΩ可选,由电阻电容组成的无源衰减网络与后级相匹配可实现不低于DC~35MHz的1倍和10倍衰减,有源放大单元选用TI公司的OPA690和OPA684可实现对信号1倍和10倍放大,电路输出电阻近似为0。一、系统整体方案论证与比较题目要求有源放大电路采用正负5V供电,在正负5V电源及1M欧输入阻抗的条件下进行1倍、10倍衰减,以及1、10倍有源放大,可供选择方案如下:方案一:为了实现衰减和放大的功能,考虑直接选取可调增益的运放实现,如AD603。其内部由R-2R梯形电阻网络和固定增益放大器构成,加在梯形网络输入端的信号经衰减后,由固定增益放大器输出,衰减量是由加在增益控制接口的电压决定的,优点是电路集成度高、结构简单。缺点是此芯片的衰减量是由加在增益控制接口的参考电压决定的,要手动精准控制,难度大;梯形电阻网络的输入阻抗低,不能满足1MΩ的要求;且工作频带仅为50MHz,很难满足题目工作带宽要求。方案二、根据题目对电路衰减和放大倍数的要求,特别是工作频带高的要求,采用宽带运放,如TI的OPA690、OPA684构成后级有源放大环节,其增益带宽积带宽均在500M以上,满足题目要求的DC~35M工作带宽的要求,1、10倍放大分开,10倍放大采用5倍与2倍相乘的形式可以降低对单级运放带宽的要求,无源衰减网络采用电阻分压构成,采用电阻分压不会限制输入信号的带宽,阻抗匹配部分采用电阻串并联形式。综上所述:我们选择方案二作为本次比赛的总体方案。二、系统整体框图系统整体框图如图2-1所示。图2-1系统整体框图3三、系统硬件设计1、单片机及显示装置小信号经过OPA842构成的21倍有源放大电路放大,而大信号则经过无源衰减网络衰减。之后,信号通过过零比较器变成可捕脉冲,低频脉冲经过无源衰减网络直接由单片机测得频率,高频脉冲经过74LS163和74LS00构成的10分频、100分频、1000分频或10000分频电路进行分频,再经过无源衰减网络即可由单片机测得频率。最后由12864液晶进行显示。(1)21倍有源放大电路采用TI公司的宽带高速运放OPA842,其增益带宽积为200MHz。电路图如图3-1所示。图3-121倍有源放大电路(2)2倍无源衰减电路采用电阻串联分压,电路图如图3-2所示。图3-22倍无源衰减电路(3)波形转换电路采用TI公司的轨对轨高速比较器TLV3501搭建过零比较电路。使用单电源+5V供电。经过21倍有源放大电路或者2倍无源衰减电路的信号被控制在2V左右,比较适合作为TLV3501的输入信号。经过过零比较电路之后,输出频率和输入信号的频率相同的脉冲信号。TLV3501的轨对轨输出能够直接驱动CMOS或者TTL逻辑电路,因此,这给我们之后的逻辑分频电路带来了方便。电路如4图3-3所示。图3-3波形转换电路(4)分频电路采用74LS163四位十六进制计数器和74LS00四二输入与非门搭建10分频电路。再通过10分频电路的级联,实现100分频、1000分频、10000分频电路。使用分频电路对高频信号进行分频处理。电路如图3-4所示。图3-4分频电路(5)单片机处理及显示装置采用TI公司的MSP430F149单片机对输入信号进行处理。在单片机对信号进行处理之前首先要用无源衰减电路对波形转换电路或者分频电路的输出信号进行衰减,同样采用电阻串联分压的形式,使输入单片机的信号稳定在3V左右,电路图不再赘述。使用F149的定时器A的捕获/比较功能,捕获输入脉冲的上升沿,优先级较高的定时器B定时50ms,测得1s内的上升沿数目,即可得到输入信号的频率。再通过12864液晶对测得频率进行显示。源程序如下:#includeMSP430x14x.h#includecry12864.c5voidInitSys();unsignedlongupflag=0;unsignedlongf_50ms=0;unsignedlongfrequency=0;uintfy[7];//==用于存放频率显示数据==constunsignedcharpinlv[]={频率为:(Hz)};voidprocess(void);//==函数声明==voiddelay();//==延时函数==/*******************************************主函数********************************************/voidmain(void){WDTCTL=WDTPW+WDTHOLD;//StopWDTInitSys();//MCLK,SMCLK----8M//---------------------------------------------------------------------//Timer_B的设置,用于产生定时中断,中断时间为50000usP1DIR|=BIT3;//SetP1.3tooutputdirectionTBCCTL0=CCIE;//TBCCR0interruptenabledTBCCR0=50000;TBCTL=TBSSEL_2+ID_3+MC_1;//SMCLK,1M,upmode//---------------------------------------------------------------------//Timer_A的设置,用于捕获外部信号的边沿触发,可以设置为上升沿触发,或者下降沿触发P1DIR&=~BIT2;P1SEL=BIT2;//==设置P1.2端口为功能模块使用,即:做捕获源==TACTL=TASSEL_2+TACLR+TAIE+MC1;//==定时器A时钟信号选择ACLK,CCTL1=CM_1+SCS+CAP+CCIE;//==输入上升沿捕获,CCI0A为捕获信号源==_EINT();Ini_Lcd();//==初始化液晶==Disp_HZ(0x80,pinlv,8);while(1){process();Write_Cmd(0x90);//==写地址==Write_Data(0x30+fy[6]);delay();Write_Data(0x30+fy[5]);delay();Write_Data(0x30+fy[4]);delay();Write_Data(0x30+fy[3]);6delay();Write_Data(0x30+fy[2]);delay();Write_Data(0x30+fy[1]);delay();Write_Data(0x30+fy[0]);delay();}}/*******************************************函数名称:InitSys功能:初始化时钟函数参数:无返回值:无********************************************/voidInitSys(){unsignedinti;BCSCTL1&=~XT2OFF;//==打开XT2振荡器==do{IFG1&=~OFIFG;//==清除振荡器失效标志==for(i=0xFF;i0;i--);//==延时,等待XT2起振==}while((IFG1&OFIFG)!=0);//==判断XT2是否起振==BCSCTL2=SELM_2+SELS;//==选择MCLK、SMCLK为XT2,8M==}/*******************************************函数名称:Timer_B功能:定时器B中断服务子函数,产生50ms定时参数:无返回值:无********************************************///TimerB0interruptserviceroutine#pragmavector=TIMERB0_VECTOR__interruptvoidTimer_B(void){P1OUT^=BIT3;//定时50msf_50ms=upflag;upflag=0;}/*******************************************函数名称:Timer_A7功能:捕获待测信号上升沿********************************************/#pragmavector=TIMERA1_VECTOR//==定时器A中断处理==__interruptvoidTimer_A(void){switch(TAIV)//向量查询{case2://捕获中断if(CCTL1&CM0)//捕获到上升沿upflag++;break;default:break;}}/*******************************************************延时函数*******************************************************/voiddelay(){unsignedinti;unsignedintj=10;for(i=10;i0;i--){while(j--);}}/********************************************************************数据处理********************************************************************/voidprocess(void){frequency=f_50ms*20;fy[6]=frequency/1000000;fy[5]=(frequency-1000000*fy[6])/100000;fy[4]=(frequency-1000000*fy[6]-100000*fy[5])/10000;fy[3]=(frequency-1000000*fy[6]-100000*fy[5]-10000*fy[4])/1000;fy[2]=(frequency-1000000*fy[6]-100000*fy[5]-10000*fy[4]-1000*fy[3])/100;fy[1]=(frequency-1000000*fy[6]-100000*fy[5]-10000*fy[4]-1000*fy[3]-100*fy[2])/10;fy[0]=frequency%10;}2、输入阻抗及无源衰减部分设计(1)输入阻抗匹配部分8输入阻抗要求最大允许误差为2%,同时50Ω输入阻抗可承受5V的过载能力。若采用单个电阻作为输入,不仅没有标称值为50Ω的电阻,而且该电阻承受的功率为:22151502UPWR大于电阻的额定功率W81,电阻会由于功率过大而毁坏,故考虑选用6个300Ω电阻并联组成的输入电阻网络,这样输入阻抗仍为50Ω,且每个电阻承受的功率为:WP12162121MΩ输入阻抗直接采用单个1MΩ电阻作为输入电阻,题目要求能承受36V输入过载,当输入电压为36V时,电阻承受的功率为:WRUP001296.010366223满足要求。(2)无源衰减电路10倍衰减采用电阻串联分压的形式,实际上一个电阻等效于一个电容,一个电感,和一个电阻的串连,在低频情况下电容和电感效应表现不是很明显,而在高频情况下,等效值会增大,不能忽略,小电阻在高频时的寄生电容比大电阻小,本设计采用180Ω和20Ω电阻串联进行分压实现10倍衰减。当输入电阻选为1MΩ时,会与200Ω的电阻衰减网络相并联,致使输入阻抗降到199.96Ω,所以在中间加入高速运放AD811缓冲作为隔离,使前级输入阻抗与此