运算放大器开环电压增益剖析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

运算放大器开环电压增益

开环电压增益AVOL的定义与量测方法

1. AVOL的定义:

在不具负反馈情况下(开环路状况下),运算放大器的放大倍数称为开环增益,

简称A

VOL 。A

VOL

的理想值为无限大,一般约为数千倍至数万倍的间,其表示法有使

用dB 及V/mV等,例如μA741C及LM318的AVOL典型值均为200V/mV或106dB。在运算放大器中为使计算简便而有虚接地(Virtual Ground) 的假设,在此假设A

VOL

必须越大越容易满足此需接地的条件。

2. AVOL的量测方法:

AVOL 的量测方法有很多种,介绍较易量测的方法如下:

如图1所示为一种AV

OL

的测试方式,此图的动作原理很类似图2的电路,除了R4对地的间加入一电压源VA外,并无差别。图中AUT(Amplifier Under Test)为待测放大器;BUF(Buffer)为缓冲放大器。如运算放大器输入偏置电流所述,

当VA为0V时,由于电路具有负反馈作用,此时的V

O1自动趋近于0V,而V

O2

等于待测运算放大器输入抵补电压的一千倍;同理,当VA为10V时,由于负反馈的作用,V

O1

亦自动的平衡于-10V(实际上由于运算放大器皆不可能达到理想

状态,故V

O1只能趋近于-0V)。VA等于0V时VO1趋近于 0V,VA等于10V时V

O1

则趋近于-0V,因此V

O1的输出约有10V的变化量,所以我们将此变化量以△V

O

代替的。VO1的输出有变化,在该放大器的输入端必也引起相对应的变化,我们将此变化量以△V

1

代替的。在图1中待测放大器本身不具有负反馈,因此求出

VO 与△

V1

的比值即为待测放大器的开环路电压增益(A

VOL

)。在量测的技术上,因

∆Vi很小,不容易准确测得,故利用缓冲放大器与R1、R2分压的关系,VO2的

相对应变化量∆V

O2为∆Vi的一千倍(实际上是1001倍)。因此,我们仅需将∆V

O2

测出就可以利用1式导出待测放大器AVOL的值。

(1)

在上述实验中,VA不一定要用10V代入,用VA为-10V代入亦可,只不过此时

V O1会趋近于正10V。同理VA亦可用±5V 代入,以求取A

VOL

;但VA不能用大于

电源电压的电压源代入,以免使待测放大器进入饱和区或毁损,A

VOL

是电源电压

的函数,以μA741C为例,电源电压为时A

VOL

约为2×105,但电源电压为±9V

时A

VOL

仅为1×105。

图1 AVOL的量测电路

1.#include

2.#include

3.#include "wave.h"

4.void da_out(void); //声明函数

5.sbit DIN=0x97; //P1.7位定义

6.sbit SCLK=0x96; //P1.6位定义

7.sbit DACS=0x95; //P1.5位定义

8.sbit SWF1 =0x94; //P1.4位定义

9.sbit SWF0 =0x93; //P1.3位定义

10.sbit WDI =0x92; //P1.2位定义

11.sbit FLAG = 0x90;

12.IUI word; //IUI即idata unsigned int,在wave.h中预定义

13.void main(void)

14.{

15. IUI i;

16. TMOD =0x01; //定时器0方式1;

17. TH0=0xff;TL0=0x00; //置定时器0常数;

18. TR0=1; //启动定时器0

19. ET0=1;EA=1; //开定时器中断及总中断

20. SWF0=1;SWF1=1; //设P1.3,P1.4为输入

21. WDI=1; //看门狗输入置高电平

22.while(1)

23. {

24.for(i=0;i<128;i++)

25. {

26. FLAG=1; //置标志,FLAG在定时器0中断程序中被清除

27. WDI=0;_nop_();WDI= 1;//看门狗复位

28.if(SWF1) word=512; //SWF1=1时,DA输出同一量,无正弦信号输出

29.else

30. {

31.if(SWF0) word=waveh[i];//取倍频数字量

32.else word=wavel[i]; //取基频数字量

33. }

34. word=word<<6; //10位数字量移至高位

35.while(FLAG); //等待,直至定时器中断程序中清FLA G

36. da_out(); //调用DA输出子程序

37. }

38. }

39.}

40.void timer0(void) interrupt 1 using 2

41.{

42. TH0=0xff;TL0=0x00;//重置定时器常数

43. FLAG=0;//清主程序中的等待标志

44.}

45.void da_out(void){

46. IUI i;

47. SCLK =0;_nop_();DACS=0; //准备传送数据

48.for(i=0;i<10;i++)

49. {

50. DIN= (bit)(word&Ox80); //取最高位送数据线

51. word = word << 1; //左移,准备下一位传送

52. SCLK =1;_nop_();SCLK =0; //一个CLK信号

53. }

54. DACS= 1;_nop_();SCLK=1; //传送结束

55.}

hhh

1.typedef idata unsigned int IUI;

2.int code wavel[]=

3.{

4. 512,524,537,550,563,698,707,715,723,731,775,775,774,772,770,698,689,679,

669,658,

5. 512,499,486,473,460,325,316,308,300,292,248,248,249,251,253,325,334,344,

354,365,

6.};

7.int code waveh[]=

8.{

9. 512,562,611,660,707,753,796,836,874,907,937,963,985,1001,1014,1021,

相关文档
最新文档