<menu id="iquis"><strong id="iquis"></strong></menu>
<nav id="iquis"><nav id="iquis"></nav></nav>
  • <nav id="iquis"></nav>
  • ?
    欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

    专业IC测试网

    当前位置: 网站主页 > 测试实例 > 模拟芯片 >

    测试入门-运放之VOS

    时间:2015-09-05 16:10来源:www.kanwoda.com 作者:Seaman Zheng 点击:

    温故而知新,因工作需要,最近重新学习了一下运算放大器 测试开发,基于ASL1000的平台 DOAL的。在这里记录一下,并分享给刚入行的兄弟们,也许你已经知道!

    参考资料:
    – 什么是运算放大器
    – 通用集成运算放大器测试方法
    – ASL1000 DOAL programming manual
    – Op Amps For Everyone (运算放大器权威指南)

    定义:失调电压(Input Offset Voltage),又称输入失调电压。运放输出电压为零(或规定值时)时,运放两输入端间所加的直流补偿电压。

    在运放的应用中,不可避免的会碰到运放的输入失调电压VOS问题,尤其对直流信号进行放大时,由于输入失调电压VOS的存在,放大电路的输出端总会叠加我们不期望的误差。因此,我们希望VOS越小越好(不考虑成本因素)。

    常用 辅助放大器测试方法 来测试运算放大器,基本原理图如图一:

    op01

     

    图一

     其中,A为辅助放大器,DUT为待测运放,且K4为close。

    通过 瞬时信号极性分析法 进行分析,假设 a. 点信号增大(+),则可以推导出,经过反馈回路,将反馈回一个减小的信号(-)。因此为负反馈回路,电路最终会处于稳定状态。且电路稳定时,a. 点的电压 = 0.0V, 即DUT 的输出电压VO = -VREF。因此,可以通过改变VREF的值,来设置DUT的输出电压。比如,VREF=-1.4V时,VO=1.4V。

    A运放的输出电压为: VL=(VOS+IOS*RI)(1+RF/RI)

    当 IOS*RI<<VOS,且 RF/RI>>1 时,

    则有: VOS≌RI/RF*VL=VL/(RF/RI)。

    以上就是VOS的测试方法与计算公式。那么,如何应用DOAL来进行运放测试呢?

    ASL1000的DOAL板,全名为 Dual Operational Amplifier Loop,是ASL1000测试机内部一块资源板;可以直接用来进行运放测试,而不需要辅助运放。事实上,辅助运放已经集成在DOAL内部了。如下图二 是DOAL的测试电路原理图:

    op02

     

    图二

    其中,DUT为待测运放,SUM AMP 可视为辅助运放,INT_DAC_POLE 与 GAIN_DAC_ZERO可以消除振荡,使测试回路稳定。

    基于之前的分析,可以很容易知道整个测试回路也是负反馈。不过有一点不同,前面的VOS是通过VL近似计算得出,而DOAL是通过IA直接测量DUT输入端之间的电压,得到VOS。

    查询DOAL Manual可知,VOS的测试过程为:
    —————————————————————————————
    Force the output to 0 V using the feedback loop and OUTPUT_DAC. Use the following
    procedure to measure the difference between the inputs with the instrument amplifier.
    1. Connect the feedback loop.
    2. Open the INT_RESET switch on the INT_DAC.
    3. Set the pole and the zero values required to achieve circuit stability.
    4. Measure the offset with the DUT inputs shorted.
    5. Apply a reference voltage to the OUTPUT_DAC.
    6. Measure the offset voltage and subtract it from the previously measured value.
    —————————————————————————————

    测试代码如下:
    —————————————————————————————
    // Definitions & Variables
    int temp, cal;
    float vos;
    // set up for 10mV measure range
    oal_8->open_switch(IA_100MV);
    oal_8->close_switch(IA_10MV);
    // do cal with inputs shorted
    oal_8->close_relay(DUT_POS_ISOL);
    oal_8->close_relay(DUT_NEG_ISOL);
    oal_8->close_relay(DUT_INP_SHORT);
    oal_8->close_switch(IA_POS_IN);
    oal_8->close_switch(IA_NEG_IN);
    oal_8->select_adc_mux(IA_AMP);
    delay(ours->meas_delay);
    cal = oal_8->convert_read_adc();
    // set up to test Vos
    oal_8->open_relay(DUT_INP_SHORT);
    oal_8->close_switch(CLOSE_LOOP);
    dvi_9->set_current(DVI_CHANNEL_0, 0.02);
    dvi_11->set_current(DVI_CHANNEL_0, 0.02);
    // set compensation
    oal_8->set_int_dac_ch0 (ours->pole_stab);
    oal_8->set_gain_dac_ch0(ours->zero_stab);
    // power up and get measurement
    dvi_9->set_voltage(DVI_CHANNEL_0, 3.0);
    dvi_11->set_voltage(DVI_CHANNEL_0, -3.0);
    oal_8->set_output_voltage(0); //设置DUT的输出电压,为0 或者 规定值
    oal_8->open_switch(INT_RESET);
    delay(ours->meas_delay);
    temp = oal_8->convert_read_adc() – cal; //ADC直接测试VOS
    vos = temp / 3276800.0; // 32768 = 10mV //根据ADC的位数,来计算VOS值
    // Power down
    power_down();
    // Datalog
    do_dlog(func, 0, vos, ours->fail_bin, “vos”, POWER_MILLI);
    —————————————————————————————

    结合前面的分析,与Manual中的说明,可知DOAL内部是通过设置 SET_OUTPUT_DAC 的输出电压,来控制 DUT 的VOUT值的,相当于前面的VREF。

    查询ASL1000 programming guide,可知函数 void set_output_dac(unsigned short value) 可直接控制 SET_OUTPUT_DAC 的输出电压。

    因此我们只需要将测试代码中的  set_output_voltage(0) 修改为 set_output_dac(value),value为设置值,且与VOUT值反相。运行并得到测试结果,即可验证。有兴趣的朋友可以试试。

    以上,更多细节与内容在参考资料已经有详细说明,在此不再赘述。
    本文地址: http://www.kanwoda.com/blog/archives/08224334021067.html

    顶一下
    (8)
    100%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    用户名: 验证码: 点击我更换图片
    ?
    一分快3app