单片机自动增益放大器(共16页)_第1页
单片机自动增益放大器(共16页)_第2页
单片机自动增益放大器(共16页)_第3页
单片机自动增益放大器(共16页)_第4页
单片机自动增益放大器(共16页)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PAGE 20 PAGE 0自动增益放大器摘 要:本系统(xtng)有四个模块组成:程控放大器,峰值检测,液晶。程控放大器采用两片AD603接连组成,放大电压增益可达50dB,增益0.2v步进可调,电压增益误差不大于5%。放大器输出无明显失真。峰值测量采用真有效值采样芯片AD637先进行(jnxng)有效值采样,然后通过PCF8951进行AD采样(ci yn),最后再转换成峰值,液晶采用LCD1602,系统以stc89c51单片机为控制核心,经测试验证,系统运行稳定,操作方便。关键词: 程控放大器,峰值检测,AD采样,单片机。 Abstract:This system has three m

2、odules: SPC amplifiers, peak detection, liquid crystal. By two AD603 program-controlled amplifier amplification voltage gain one, can gain 1db stepping 0.2v, adjustable, voltage gain error is not more than 5%. Amplifier output without obvious distortion. Measure true RMS peak by sampling AD637 chip

3、on sampling, then PCF8951 through effective sampling, finally to AD convert peak, LCD USES lcd1602 management system with stc8951 SCM as control core and tested, the system runs stably, convenient operation.Key: SPC amplifier Peak detection AD sampling chip SCM 1. 方案的论证与比较设计需求基本要求(1) 放大器可以从信号发生器或音乐播

4、放器输入音频信号(50Hz10KHz),输出可以带 200负载或驱动8喇叭(25W)。(20 分)(2) 当输入信号幅度在 10mV5V 间变化时,放大器输出默认值保持在 2V0.2V(有效值)内,波动越小越好。(30 分)(3) 可以显示输入信号幅度和频率。(10 分)(4) 能够在1V3V 范围内步进式调节放大器输出幅度,步距 0.2V。(15 分)(5) 能够根据环境噪声调整自动调节放大器输出幅度。(15分)(6) 其它发挥设计。(10 分)(7) 设计报告。(20 分)发挥(fhu)部分(1)输出(shch)电压步距可通过按键调整:0.2v、0.3v、0.4v;(3)显示当前(dngq

5、in)放大输出。(4)其它。总体方案方案一:选用结电容小,fT 高的晶体管,采用多种补偿法,多级放大加深度负反馈,以及组合各种组态的放大电路形式,可以组成优质的宽带放大器,而且成本较低。但若要全部采用晶体管实现题目要求,有一定困难,首先高频晶体管配对困难,不易购买;其次,理论计算往往与实际电路有一定差距,工作点不容易调整;而且,晶体管参数易受环境影响,影响系统总体性能。另外,晶体管电路增益调节较为复杂,不易实现题目要求的增益可调。方案二:使用专用的集成宽带放大器。如TITHS6022、NE592等集成电路。通过外接少数的元件就可以满足本题目要求,甚至远超过题目要求的带宽和增益的指标,但这种放大

6、器难以购买,价格较贵,灵活性不够,不易满足题目扩展功能要求。方案三:市面上有多种型号、各具特色的宽频带集成运算放大器。这些集成运算放大器有的通频带宽,有足够的增益,有的可以输出较高电压,使用方便,有的甚至可以实现增益可调及AGC的功能。总体上硬件的实现和调试较为简单,所以,我们决定采用多个集成运放级连实现本题目增益控控制:方案一:利用电阻网络和拨码开关,手动调节增益,可实现增益控制,但硬件规模较大,控制繁琐且人机界面欠佳,另外,利用电阻网络实现增益调节需使用不同阻值的高精度电阻,这种电阻价格昂贵且不易购买。方案二:可以用继电器或模拟开关构成电阻网络,由单片机控制以改变信号增益。这种方案同样存在

7、方案一电阻网络的缺点,同时,如果使用模拟开关,其导通电阻较大,而且各通道信号会互相干扰,容易影响系统性能。方案三:由单片机、D/A转换器和可编程增益放大器AD603构成压控放大器。单片机通过对控制D/A输出直流电压来控制AD603的内部电阻衰减网络,实现增益调节。其外围元件少,电路简单,由于AD603带宽最大能达到90MHz,增益范围有40dB,增益精度在0.5dB,可精确实现增益控制,可以实现题目发挥部分减小增益步进间隔的要求。所以本部分采用该方案。峰值检测:方案一:采用分段逼近式有效值检波电路。该方法示值虽然是被测电压的有效值,但由于放大器动态范围的限制,对于被测信号会产生一定的波形误差,

8、并且硬件电路搭接复杂,且稳定性能不好。 方案二:采用真有效值转换芯片 AD637和高速A/D芯片PCF8951测量市电有效值。将从AD603输出的信号通过AD637转换成直流信号后接入PCF8951,利用单片机读取数据后进行相应的幅值变换得到峰值。利用集成电路芯片测量精度高,误差小、稳定性好,硬件电路实现简单,可减小硬件体积,所以本部分采用该方案。1.5 处理器选择(xunz):通过(tnggu)实验测试我以前买的stc89c51可以满足要求,为了节约成本就选择它为微处理器2. 系统(xtng)设计2.1 理论分析与计算 本系统以可变增益增益放大器AD603为核心,其它各单元电路都是根据AD6

9、03及题目要求设计。由于题目的发挥部分要求电压的输出范围2V2.5V,对于10mv的小信号,则至少要将信号放大200倍,而且输入信号的频率范围为10Hz500KHz,故采用两片AD603对信号进行放大,单片AD603增益公式为: DB = 40 * Vo+ Go;Vo为1、2脚之间的电压,范围为-500mv500mv,Go根据5、7脚的不同连接方式Go可取10dB,20dB,30dB。本系统将AD603的5脚和7脚相连,单级AD603增益调整范围为,1030 dB,带宽为90MHz,两级AD603级联,使得增益可调范围扩大到20 dB60 dB。可满足题目要求的电压放大和频率的要求,当AD60

10、3的增益为46dB的时候电压可以放大200倍,当AD603的增益为48dB的时候电压可以放大250倍.所以只要正确的控制1、2脚之间的电压就能实现电压的不同放大倍数,从而满足题目要求。 2.2 总体设计 根据带宽、电压的放大倍数,系统采用两级AD603程控增益放大器,增益可达60dB,能过满足题目的要求,而且AD603能够满足带宽的要求,有效值测量可有多种实现方案,但选用测量有效值的专用芯片AD637,则电路简洁方便,而且精度较高。由于系统模块所用IO口过多,一般51单片机不能够满足需求,故采用功能较强的C8051f020单片机作为主控机器。通过键盘进行增益和档位的调节,而液晶显示增益和峰值。

11、系统的整体框图如下:AD603小信号采集与放大AD637有效值检测PCF8951AD转换 PCF8951DA转换控制 STC89C51LCD1602液晶显示屏2.3 单元电路电路模块(m kui)设计2.3.1 自动增益电路(dinl) 本系统的自动增益控制功能(gngnng),实际是由增益控制电路转化而来。在输出级加入检波电路,检出直流电压送入A/D采样,经单片机计算后控制D/A输出,此电压加到AD603的增益控制端,从而控制AD603的增益达到使输出电压恒定的目的。AD603的简化原理框图如图 2-3-1所示,它由无源输入衰减器、增益控制界面和固定增益放大器三部分组成。图中加在梯型网络输入

12、端(VINP)的信号经衰减后,由固定增益放大器输出,衰减量是由加在增益控制接口的电压决定。增益的调整与其自身电压值无关,而仅与其差值VG有关,由于控制电压GPOS/GNEG端的输入电阻高达50M,因而输入电流很小,致使片内控制电路对提供增益控制电压的外电路影响减小。而且,如果AD603的增益用dB表示,则与控制电压成线性关系,以上特点很适合构成本题要求的放大器。图2-1-1图231 AD603原理(yunl)框图中的“滑动(hudng)臂”从左到右是可以连接移动的。当VOUT和FDBK两管脚的连接不同时,其放大器的增益范围也不一样(yyng),带宽在9MHz 90MHz之间为加大中间级的放大倍

13、数及增益调节范围,我们使用两片AD603级联作为中间级放大(图232)。如果将AD603的5脚和7脚相连,单级AD603增益调整范围为,1030 dB,带宽为90MHz,两级AD603级联,使得增益可调范围扩大到20 dB60 dB。可满足题目要求的电压放大。图232 级联AD603电路图两级AD603采用5V,5V电源供电(n din),两级的控制端GNEG都接地,另一控制端GPOS接D/A输出,从而精确地控制(kngzh)AD603的增益。AD603的增益与控制电压成线性关系,其增益控制端输入电压范围为500mv500mv,增益调节(tioji)范围为40dB,当步进1dB时,控制端电压需

14、增大VG25mv, 由于两级AD603由同一电压控制,所以,步进1dB的控制电压变化幅度为25mv/2=12.5mv。由于AD603的控制电压需要比较精确的电压值。我们使用12位的C8051F020的内部DA,可满足指标要求。另外,通过A/D采样输出信号,由单片机计算后,再去调整D/A输出电压,就可实现AGC功能,扩大通频带.具体电路如下:2.3.1 峰值检测与DA/AD转换(zhunhun) 峰值检测是利用真有效值芯片AD637先进行(jnxng)有效值采样然后通过PCF8951进行AD采样把有效值采样回来给单片机,再通过单片机进行数值处理(chl)把有效值转换成峰值并计算增益通过pcf89

15、51DA输出到AD603增益控制端,具体电路如下:2.3.2功率放大部分:考虑到成本与实际效果功放采用TAD2822来实现,具体电路如下所示:2.3.3电源(dinyun)部分:本系统运放使用正负5V 电源给单片机系统工作,为了能给系统提供稳定的电源,对市电变压后进行整流,滤波(lb),稳压得到系统工作电源。电路(dinl)如下: 此部分电路比较典型,采用通常使用的桥式全波整流,大电容滤波,集成三端固定稳压片稳压。2.3.3显示部分本系统用LCD1602显示,电路图如下:3. 系统(xtng)功能测试3.1 测试使用(shyng)仪器 Agilent 33250A 函数(hnsh)信号发生器

16、Tektronix TDS 2012 数字示波器SS7200。3.2 测试结果完整性及结果分析基础部分在以下输入电压(Vpp)和频率下,手动调节输出范围在10mV-5mV10mV/100Hz0.1V/1kHz0.5V/10kHz0.7V/20kHz0.8V /30kHz1V /50kHz幅度(/)2.112.021.962.021.972.05信号放大和控制部分在制作部分难易程度有很大的差别,所以我们采用分模块制作方法,信号放大电路中涉及的是低频小信号的处理,所以元件的选定和参数的确定有很大的难度,关键部分还在于电路元件的布局,如何抑制噪声,防止自激是电路布局的难点,我们采用了单点接地的方法。

17、控制部分电路调试较为简单。5 结束语本系统有stc8951单片机与AD603、AD637等模块组成,基本实现了题目基本部分与发挥部分的要求。参考文献单片机原理及应用,陈为:中国石油出版社模拟电子技术基础,童诗白著,高等教育出版社3 自动增益放大器百度(bi d)文库6 附录(fl) 6.1 附录(fl)1 集成芯片明细表液晶LCD1602 AD603PCF85914. AD6375. TDA28226. STC89516.2 附录2 部分参考程序#include#include#include#include#include#define PCF8591 0 x90 /PCF8591 地址un

18、signed char output=2;unsigned int AD,DA;void keyscan(void); void delay(int ms);/*DAC 变换, 转化函数 */bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) Start_I2c(); /启动总线 SendByte(sla); /发送器件地址 if(ack=0)return(0); SendByte(c); /发送控制字节 if(ack=0)return(0); SendByte(Val); /发送DAC的数值 if(a

19、ck=0)return(0); Stop_I2c(); /结束总线 return(1);/*ADC发送字节命令数据函数 */bit ISendByte(unsigned char sla,unsigned char c) Start_I2c(); /启动(qdng)总线 SendByte(sla); /发送(f sn)器件地址 if(ack=0)return(0); SendByte(c); /发送数据 if(ack=0)return(0); Stop_I2c(); /结束(jish)总线 return(1);/*步进函数函数 */ void keydown(void) P1=0 xF0;if

20、(P1!=0 xF0) /判断按键是否按下 如果按钮按下 会拉低P1其中的一个端口 keyscan(); /*步距函数 */void keyscan(void)P1=0 xf0;delay(1);switch(P1)case 0 xf1:output=output+0.2;break;case 0 xf2:output=output+0.3;break;case 0 xf4:output=output+0.4;break;case 0 xf8:output=output+0.5;break;if(output3)output=1;/*AGC函数(hnsh) */unsigned int AGC

21、(unsigned int ad)DA=(log(output/ad)-2)/4;return DA;/*ADC读字节(z ji)数据函数 */unsigned char IRcvByte(unsigned char sla) unsigned char c; Start_I2c(); /启动(qdng)总线 SendByte(sla+1); /发送器件地址 if(ack=0)return(0); c=RcvByte(); /读取数据0 Ack_I2c(1); /发送非就答位 Stop_I2c(); /结束总线 return(c);void delay(int ms) /延时子程序int i;

22、while(ms-) for(i = 0; i 250; i+) _nop_(); /空执行 _nop_(); _nop_(); _nop_(); main()unsigned char r;while(1)keydown();ISendByte(PCF8591,0 x40);AD=IRcvByte(PCF8591); /ADC0 模数转换1 AGC(AD);/增益(zngy)计算DACconversion(PCF8591,0 x40,DA);/dac 数模输出(shch)r=output*1.414;agc1602(output,r);/1602显示(xinsh)/*此部分为I2C总线的驱动

23、程序*/#include#include #include #define NOP() _nop_() /* 定义空指令 */#define _Nop() _nop_() /*定义空指令*/ sbit SCL=P21; /I2C 时钟 sbit SDA=P20; /I2C 数据 bit ack; /*应答标志位*/ /* 起动总线函数 函数原型: void Start_I2c(); 功能: 启动I2C总线,即发送I2C起始条件. */void Start_I2c() SDA=1; /*发送起始条件的数据信号*/ _Nop(); SCL=1; _Nop(); /*起始条件建立(jinl)时间大于

24、4.7us,延时*/ _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /*发送(f sn)起始信号*/ _Nop(); /* 起始条件(tiojin)锁定时间大于4s*/ _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /*钳住I2C总线,准备发送或接收数据 */ _Nop(); _Nop();/* 结束总线函数 函数原型: void Stop_I2c(); 功能: 结束I2C总线,即发送I2C结束条件. */void Stop_I2c() SDA=0; /*发送结束条件的数据信号*/ _Nop(); /*发送结束条件的时钟信号*/

25、SCL=1; /*结束条件建立时间大于4s*/ _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /*发送I2C总线结束信号*/ _Nop(); _Nop(); _Nop(); _Nop();/* 字节数据发送函数 函数原型: void SendByte(UCHAR c);功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对 此状态位进行(jnxng)操作.(不应答或非应答都使ack=0) 发送数据正常,ack=1; ack=0表示(biosh)被控器无应答或损坏。*/void SendByte(unsigned char c)

26、unsigned char BitCnt; for(BitCnt=0;BitCnt8;BitCnt+) /*要传送的数据(shj)长度为8位*/ if(cBitCnt)&0 x80)SDA=1; /*判断发送位*/ else SDA=0; _Nop(); SCL=1; /*置时钟线为高,通知被控器开始接收数据位*/ _Nop(); _Nop(); /*保证时钟高电平周期大于4s*/ _Nop(); _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); SDA=1; /*8位发送完后释放数据线,准备接收应答位*/ _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); _Nop(); if(SDA=1)ack=0; else ack=1; /*判断是否接收到应答信号*/ SCL=0; _Nop(); _Nop();/* 字节数据接收函数 函数原型: UCHAR R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论