Fully differential op-amp expression

steveb

Joined Jul 3, 2008
2,436
I get a different result, steveb. I get:

\( A_c=\frac{R1R4-R2R3}{R1R4+R2R3+2R1R3} \)

For the case where the input is floating (Rs=∞), I get:

\( A_d=\frac{R2+R4}{R1+R3}\)
OK, I made a mistake with a minus sign which screwed up the result. Unfortunately, I let the result override my intuition. So ignore that previous post. CMRR is infinity with matching resistors R1R4=R2R3.

So I agree with the result for Ac with no source resistance, but when I include source resistance I get something a little different as follows.

\( A_c=\frac{R1R4-R2R3}{R1R4+R2R3+2R1R3+Rs(R1+2R3)} \)

Given the mistake I already made, I should double check this. However, I have to get ready for work now, so I'll check it later if you disagree with it.
 

steveb

Joined Jul 3, 2008
2,436
\( A_d=\frac{R2+R4}{R1+R3}\)
For the differential case, I did not do any derivation. I agree with the above, but my previous equation was including Rsd which is a source impedance for the differential sources. I figure the differential source impedances should directly add to R1 and R3 to give effective resistances R1+Rsd/2 and R3+Rsd/2 (assuming balancing holds).
 
OK, I made a mistake with a minus sign which screwed up the result. Unfortunately, I let the result override my intuition. So ignore that previous post. CMRR is infinity with matching resistors R1R4=R2R3.

So I agree with the result for Ac with no source resistance, but when I include source resistance I get something a little different as follows.

\( A_c=\frac{R1R4-R2R3}{R1R4+R2R3+2R1R3+Rs(R1+2R3)} \)

Given the mistake I already made, I should double check this. However, I have to get ready for work now, so I'll check it later if you disagree with it.
I get almost the same thing but with a tiny difference:

\( A_c=\frac{R1R4-R2R3}{R1R4+R2R3+2R1R3+Rs(2R1+2R3)} \)

For the differential case I get a general expression including Rs:

\( A_d=\frac{R1R4+R2R3+2R2R4+2Rs(R2+R4)}{R1R4+R2R3+2R1R3+2Rs(R1+R3)} \)

This expression gives the OP's result if you take the limit as Rs->0, or it gives the expression for floating differential input if you take the limit as Rs->∞.

Setting the floating differential gain (differential gain with Rs=∞) equal to the differential gain with Rs=0 gives two different constraints on the resistances.

One is R1*R4 = R2*R3; this is the infinite CMRR case.

But a second constraint which makes the floating gain equal to the non-floating gain is R1+R2 = R3+R4. I haven't decided if this is a useful case or not.
 

steveb

Joined Jul 3, 2008
2,436
I get almost the same thing but with a tiny difference.
I'd guess you are right. Just based on symmetry, yours seems to make more sense. Also, I worked too quickly and could have easiliy lost that factor of two somewhere. I'll check it later, but won't post unless the result is different than this.

Anyway, your results are interesting and worth thinking about.
 
Last edited:

hgmjr

Joined Jan 28, 2005
9,027
For the case where the input is floating (Rs=∞), I get:

\( A_d=\frac{R2+R4}{R1+R3}\)
For the case where the input signal source is floating and the positive terminal of the input signal feeds the opamp's negative input through series resistor R1 and the negative terminal of the input signal source feeds the opamp's positive input through series resistor R3, I get the following expression:

\( \frac{V_{out}}{V_{in}}=-\frac{R2+R4}{R1+R3}\)
 

Thread Starter

kdillinger

Joined Jul 26, 2009
141
Well I certainly started an interesting conversation. :cool:
As an aside, is there an available software package that is capable of driving symbolic transfer functions to double check my work? It does not have to be free, but of course that is always preferred.
 
As an aside, is there an available software package that is capable of driving symbolic transfer functions to double check my work? It does not have to be free, but of course that is always preferred.
The ones I know of are big name packages, not free.

Both Mathematica and Maple can do symbolic arithmetic. I believe Mathcad now comes with a reduced version of Maple included, which can do symbolic arithmetic.

Even though Mathematica and Maple are expensive, I think they are available in student versions for a reasonable price. Check their web sites.

I also think a lot of universities will have one or the other available on the network for student use.
 

Tesla23

Joined May 10, 2009
542
Well I certainly started an interesting conversation. :cool:
As an aside, is there an available software package that is capable of driving symbolic transfer functions to double check my work? It does not have to be free, but of course that is always preferred.
If I wanted to double check my algebra I'd use Maxima, and it is free!

e.g. for the common-mode circuit (R1 and R3 tied together at Vx) and fed from Vc through Rs, if you type in your nodal equations:

e1:0=Vx*(1/Rs+1/R1+1/R3)-Vc/Rs-Vm/R1-Vp/R3;
e2:0=Vm*(1/R1+1/R2)-Vx/R1-Vo/R2;
e3:0=Vp*(1/R3+1/R4)-Vx/R3+Vo/R4;
e4:Vp=Vm;
solve([e1,e2,e3,e4],[Vo,Vx,Vp,Vm]);

gives:
\($$[[Vo=-\frac{Vc\,R2\,R3-Vc\,R1\,R4}{R1\,\left( R4+2\,Rs\right) +\left( R2+2\,R1+2\,Rs\right) \,R3},Vx=\frac{Vc\,R1\,R4+\left( Vc\,R2+2\,Vc\,R1\right) \,R3}{R1\,\left( R4+2\,Rs\right) +\left( R2+2\,R1+2\,Rs\right) \,R3},Vp=\frac{Vc\,R1\,R4+Vc\,R2\,R3}{R1\,\left( R4+2\,Rs\right) +\left( R2+2\,R1+2\,Rs\right) \,R3},Vm=\frac{Vc\,R1\,R4+Vc\,R2\,R3}{R1\,\left( R4+2\,Rs\right) +\left( R2+2\,R1+2\,Rs\right) \,R3}]]$$\)


which if you highlight the Vo solution and click 'factor' you get:

\($$Vo=\frac{Vc\,\left( R1\,R4-R2\,R3\right) }{R1\,R4+R2\,R3+2\,R1\,R3+2\,Rs\,R3+2\,Rs\,R1}$$\)

It's not perfect, but is pretty good value for money.
 

steveb

Joined Jul 3, 2008
2,436
It's not perfect, but is pretty good value for money.
Thanks for this suggestion. I downloaded a version of this for my MAC and it works great. You mentioned that it is not perfect. What are the drawbacks of Maxima versus Mathematica and Maple?
 

Tesla23

Joined May 10, 2009
542
Thanks for this suggestion. I downloaded a version of this for my MAC and it works great. You mentioned that it is not perfect. What are the drawbacks of Maxima versus Mathematica and Maple?
I am really only a novice user, and it is great for what I use it for. I recall seeing some comparisons out there, but don't have any to hand.

The UI is a bit clunky, I don't find it intuitive to find more advanced features, but it's been a great help at times. I don't know if mathematica and maple are better in this way, the UI reminds me of an old version of Mathematica I had about 10 years ago, and the only maple I used was when there was some basic functionality included in Mathcad.

As an example of its power consider the case of finite gain in the op amp, so change equation 4 to be:

e4:Vo=A*(Vp-Vm);

then

\(
$$Vo=\frac{Vc\,A\,\left( R1\,R4-R2\,R3\right) }{R2\,R4+A\,R1\,R4+R1\,R4+Rs\,R4+A\,R2\,R3+R2\,R3+2\,A\,R1\,R3+R1\,R3+2\,Rs\,A\,R3+Rs\,R3+Rs\,R2+2\,Rs\,A\,R1+Rs\,R1}$$
\)

now I'm a novice and don't know how to make maxima express in terms of 1/A instead of A, so I change equation 4 to be

e4:m*Vo=Vp-Vm;

and then

\(
$$Vo=\frac{Vc\,\left( R1\,R4-R2\,R3\right) }{m\,R2\,R4+m\,R1\,R4+R1\,R4+m\,Rs\,R4+m\,R2\,R3+R2\,R3+m\,R1\,R3+2\,R1\,R3+m\,Rs\,R3+2\,Rs\,R3+m\,Rs\,R2+m\,Rs\,R1+2\,Rs\,R1}$$\)

all in a few keystrokes!!

If anyone knows how to tell it to group the m terms together please tell me, otherwise I'll do this remaining step by hand.
 

steveb

Joined Jul 3, 2008
2,436
If anyone knows how to tell it to group the m terms together please tell me, otherwise I'll do this remaining step by hand.
It sounds like any shortcomings would not be a major issue, and, like you say, you can't beat the price.

I tried using the command ratsimp(%,m) and it grouped the terms with "m" together and factored out the "m" . This is not perfect because the expression in parentheses which is multiplied with the "m" is then not simplified and has parentheses inside. I imagine that learning a few commands will give you the ability to either prevent this, or to simplify after the fact.

I'm thinking the use of ratsimp(%,s) will be useful when doing frequency domain stuff. I tried a few examples and it seems to work. The only thing was that the ordering of powers did not follow the nice ... s^3+s^2+ ...
decending order pattern, but I expect there is a simple way to fix that.

This is really cool though and will save me a lot of time and reduce the number of mistakes I make.

EDIT: I just tried the command ratsimp(%,Rs,m) and I liked the result I got.

\( Vo={{(V_cR_1R_4-V_cR_2R_3)}\over{m(R_s(R_4+R_3+R_2+R_1)+(R_2+R_1)R_4+(R_2+R_1)R_3)\;+\;R_1R_4\;+\; R_s(2R_3+2R_1)\;+ \; (R_2+2R_1)R_3}} \)

This form allows a quick mental view of the equation if m=0 and Rs=0. Still not perfect, but I'll keep playing around with it.
 
Last edited:

Tesla23

Joined May 10, 2009
542
I tried using the command ratsimp(%,m) and it grouped the terms with "m" together and factored out the "m" .
thanks - I searched for a while around the factor functions and gave up.

This is really cool though and will save me a lot of time and reduce the number of mistakes I make.
agreed - I don't know why unis aren't teaching the kids how to make use of the great free tools that are out there!
 
Top