开环电压增益AVOL的定义与量测方法
1. AVOL的定义:
在不具负反馈情况下(开环路状况下),运算放大器的放大倍数 称为开环增益,简称AVOL。AVOL的理想值为无限大,一般约为数千倍至数万倍的间,其表示法有使用dB 及V/mV等,例如μA741C及LM318的AVOL典型值均为200V/mV或106dB。在运算放大器中为使计算简便而有虚接地(Virtual Ground) 的假设,在此假设AVOL必须越大越容易满足此需接地的条件。
2. AVOL的量测方法:
AVOL 的量测方法有很多种,介绍较易量测的方法如下:
如图1所示为一种AVOL的测试方式,此图的动作原理很类似图2的电路,除了R4对地的间加入一电压源VA外,并无差别。图中AUT(Amplifier Under Test)为待测放大器;BUF(Buffer)为缓冲放大器。如运算放大器输入偏置电流 所述,当VA为0V时,由于电路具有负反馈作用,此时的VO1自 动趋近于0V,而VO2就等于待测运算放大器输入抵补电压的一千倍;同理,当VA为10V时,由于负反馈的作用,VO1亦 自动的平衡于-10V(实际上由于运算放大器皆不可能达到理想状态,故VO1只能趋近于-0V)。VA等于0V时VO1趋近于 0V,VA等于10V时VO1则趋近于-0V,因此VO1的输出约有10V的变化量,所以我们将此变化量以 △VO代替的。VO1的输出有变化,在该放大器的输入端必也引起相对应的变化,我们将此变化量以△V1 代替的。在图1中待测放大器本身不具有负反馈,因此求出△VO与△V1的比值即为待测放大器的开环路电压增 益(AVOL)。在量测的技术上,因∆Vi很小,不容易准确测得,故利用缓冲放大器与R1、R2分压的关系,VO2的相对应变化量 ∆VO2为∆Vi的一千倍(实际上是1001倍)。因此,我们仅需将∆VO2测出就可以利用1式导出待测放 大器AVOL的值。
……………(1)
在上述实验中,VA不一定要用10V代入,用VA为-10V代 入亦可,只不过此时VO1会趋近于正10V。同理VA亦可用±5V 代入,以求取AVOL;但VA不能用大 于电源电压的电压源代入,以免使待测放大器进入饱和区或毁损,AVOL是电源电压的函数,以μA741C为例,电源电压为时AVOL约 为2×105 ,但电源电压为±9V时AVOL仅为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,6,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, 10. 1023,1021,1014,1001,985,963,937,907,874,836,796,753,707,660,611,562, 11. 512,46l,412,363,316,270,227,187,149,116,86,60,38,22,9,2, 12. 0,2,9,22,38,60,86,116,149,187,227,270,316,363,412,461, 13. 512,562,611,660,707,753,796,836,874,907,937,963,985,1001,1014,1021, 14. 1023,1021,1014,1001,985,963,937,907,874,836,796,753,707,660,611,562, 15. 512,461,412,363,316,270,227,187,149,116,86,60,38,22,9,2, 16. 0,2,9,22,38,60,86,116,149,187,227,270,316,363,412,461 17.};