This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

1mA - 500mA 频率为100Hz的交流 正弦电流信号的放大问题?

Other Parts Discussed in Thread: ADS1174, INA333

Hi,TIers:

              现在有一个案例,测量一个100Hz交流电流信号,信号的绝对值不是非常小,关键是范围很广,1mA - 500mA.

              想采用跨阻放大的形式,但是发现行不通,因为V = Iin * Rf,转换后的V需要在 3.3V以下,以供给ADC采样,因此采用跨阻放大时Rf不好选,

按照500mA输入来设定,Rf只能选择3.3V/0.5 =6.6欧,显然这个电阻值太小,在实际应用中从来没有见到过用这么小的电阻。也想到过用模拟开关来选择

控制不同的Rf,但是这种方式依赖于ADC采用后送给CPU计算,来判断是否超出当前量程,超出后再来切换放大系数,一直到寻找到一个合适的范围 为止,

因此存在着滞后效应,因为这是一个需要实时快速反应的场合。

             如果不采用跨阻放大的话,可以让这个电流流过Rsample,然后用差分放大的方式来放大Rsample上的电压信号,但是也存在一个输入电流范围太广,

Rsample不好选取的问题。

             因此,my question is:

 1:像这种1mA左右级别的低频交流电流放大,但是也不是特别的像光电二极管那么低至微安级别, 因此如果仅仅讨论1mA - 10mA输入范围,是使用跨阻放大好,          还是电流直接通过采样电阻Rsample后,来放大电阻上的电压?

2:本案例描述的由于输入范围太广,1 - 500mA,应该怎么处理啊?

3:另外一个延伸的问题,一个需要很大放大倍数比如几百倍,一般采用多级放大,不知道为何?

    谢谢!

  • 对于问题2,我想到一个解决方案不知道行得通不,采用跨阻放大是有点不太合适,就让这个电流流过2欧姆左右的采样电阻,1-500mA为有效值,对应峰峰值为

    2.828mV - 1.414V,因此经过2偶电阻后得到Vpp在5.6mV - 2.828V范围的电压范围,然后采用1倍的差分放大驱动ADC,可否行得通?(因为采用跨阻放大时,Rf才2欧姆,太小,不知道这么小的Rf用在放大电路里面会导致什么后果,环路稳定or功耗过大 ?)

    以上还请TI专家一起讨论定型方案,十分谢谢!

  • Hi Sanzheng,

    看完你的介绍,我有两个问题:

    (1)测量1-500mA要求的精度是多少?对全范围即对1mA和500mA测量时精度要求是否相同?

    (2)假如采用串电阻采样,那么采样电阻两端的共模电压是多少?

    如果可以,请给出系统的电路图。

  • Hi TIer:

          感谢您的及时回复。

           因为此问题还没有解决,所以具体的原理图还没有定夺,但是电路的基本架构如下,我临时画了个草图:

              CT为互感器,二次侧的电流就是需要采集的电流1-500mA,经过采样电阻Rsample后用差分放大器放大后驱动ADC采集。U1D即为以后要使用的差分放大器。采样电阻一端接上一个电压(就叫参考电压吧)Vcom,如果我没有理解错误的话,这个Vcom就是后级差分运放的输入共模电压吧。

              Vcom没有特别要求时接到AGND的,即接地处理。

    因此回复您的问题
    1):关于精度的问题,技术要求全量程千分之5:

              这个精度是在满量程输入时的要求,即500mA输入时能分辨到千分之五;在1mA输入时要求千分之五是不可能的,10mA以下时只要能分辨出1,2,3,。。。。。7,8,9,10mA就可以了。

              如果是在有难度,10mA以下可以不要,只考虑10 - 500mA.

    2:共模电压范围:

            目前Vcom打算接地,即后级的运放输入共模电压为0V.

     

            

  • Hi Sanzheng,

    请问后端是哪一款ADC?输入是单极性还是双极性的呢?

  •             双极性的1-500mA的交流电流信号需要转换成单极性电压信号,AD打算采用ADS1174类似即可,对AD的要求是16bit,支持单端/差分输入,输入信号要求支持单极性既可(考虑兼容以前的产品)。

               初步方案是经过采样电阻后,经过运放放大同时抬高一个电平,抬高电平可以采用如图所示方案,也可以采用INA333自带的Vref引脚实现:

  • Hi Sanzheng,

    这里采用INA333有些浪费,可以采用这样一种方案。将CT的一端浮到ADC参考电压的中间电平,CT两端串接2欧姆电阻,用电压跟随器跟随CT另一端电压,输出直接到ADC进行采样或加RC缓冲后进入ADC采样,这个方案更简单一些。这里要保证CT端基准电压稳定,跟随器运放选用输入输出轨到轨的精密运放,精度能够得到保证。附件是TINA仿真,你可以自行验证。

    CT with OPA333.TSC
  • 其实你是想要准确的采集到1-500mA的信号。

    我觉得你可能进入一个误区。

    Sanzheng Yin 说:

     想采用跨阻放大的形式,但是发现行不通,因为V = Iin * Rf,转换后的V需要在 3.3V以下,以供给ADC采样,因此采用跨阻放大时Rf不好选,

    按照500mA输入来设定,Rf只能选择3.3V/0.5 =6.6欧,显然这个电阻值太小,在实际应用中从来没有见到过用这么小的电阻。

    ADC采样输入你可以选择大量程高位数的。比如正负10V输入,16位或24位AD。

    ADC输入的电压必须在3.3V以下这个条件本身就是一种很怪的条件,就算是用DSP读取ADC的结果,也只是说ADC输出1的电平为3.3V而不是要求输入电平在3.3V以下。

    你想准确取得大范围的结果主要取决于你的ADC采集范围和位数,也就是ADC的精度。

    相同位数下ADC范围越大,精度越差。相同范围下,ADC位数越多,精度越好。

    至于运放起的作用只是把信号放大到ADC量程内并且使ADC的最小分辨率可以满足使用精度。运放的放大倍数过大,反而会影响最终的精度。

    简单的一句话,你先重点关注一下ADC采样的选择,其次运放电路要最大程度保证信号不失真不被干扰。

  • 这是是ADC输入范围决定额,因为ADC型号已定,输入只能是0-3.3V.

  • 我也想用那种直接正负10V输入的ADC啊,还不用抬高电平

  • 谢谢你的思路,但是这种运放输出不是差分输出啊,我想做成差分输出,这样驱动差分输入的ADC不是更好?

    对于我这种50HZ信号进行采集,最高采样率在10KHz以下的案例,单端输出和差分输出,性能上的差异能量化计算吗?

    因为我还想到如下方案做成差分输出:

    ,后面就直接接到ADC进行采集。之所以想到这个方案,是参考了ti的文档slaa577.因为我的信号采样速率比较低,并且也是差分输出,所以我上述给出的电路应该可以驱动后级ADC,因为信号频率和采样率都比较低,所以对ADC内部电容充电过程能很好的满足。

         怎么感觉选择有点乱了。。。。一共3种方案:

    1:用您这种单端输出的是一种方案,

    2:在你这个方案后面再加一级查分驱动器比如THS5421也算一种方案,

    3:我给出的这种没有用云方驱动的差分方案。

    不考虑从成本的话,能否帮我定量分析下方案1和方案3是否能满足很好的驱动后级ADC?(考虑ADC的输入阻抗,输入电容)或者有参考的文章,谢谢!

  • Hi Sanzheng,

    如果后级是全差分输入,那么推荐使用全差分输入信号驱动后级ADC输入,全差分抗干扰能力强,能够减小长走线带来的误差。

    对于全差分ADC,在设计输入滤波器时,首先要保证Vin+,Vin-两端电容足够大,在采样器件能够提供足够的电荷,一般去Cin > 20Csaple;另外输入滤波器时间常数和ADC采样时间应满足一定的关系。具体的可以参考下面链接里“Driving ADC”部分。

    http://www.ti.com.cn/zh-cn/data-converters/learning-center.html

  • 支持你的想法,其实这个电流比较大,完全可以在一个电阻上形成电压之后,经过跟随再进ADC,实现大动态范围的方法其实比较多,主要看经济不经济,实际一百赫兹的频率真不能说它有多快,事实上,这种频率的大电流检测往往都集成在一个系统上,如步进电机的pls模块,或者一些流速控制模块,完全用不着再做ADC加系统,当然非要做的话,有一个比较简单的方法,电流流过两个串联后接地的电阻,分别将两个电阻上的电压,输到两个通道的adc上,根据量程设置两个分压电阻阻值,不用切换,可以保证保证,至少有一个adc可以获得正常的度数,至于是哪个adc的读数作为最终结果,程序可以根据阈值事先设置好