From: Fred Bloggs on


Terry Given wrote:
> Fred Bloggs wrote:
>
>>
>>
>> Terry Given wrote:
>>
>>> Fred Bloggs wrote:
>>>
>>>>
>>>>
>>>> Terry Given wrote:
>>>>
>>>>>
>>>>> I recently built about 50,000 of this circuit, with a feedback cap
>>>>> too (mathcad rather than mathematica, and a pencil to start with
>>>>> for the analysis), and 15 inputs thru 100k resistors. the effect of
>>>>> the 14 "grounded" resistors shifted the center frequency by about
>>>>> 10% - Aol was about 50. power consumption (and cost) constraints
>>>>> meant I couldnt use a faster opamp, so instead I stopped assuming
>>>>> and started calculating :)
>>>>>
>>>>
>>>> What was the transfer function you were shooting for, and which amp?
>>>>
>>>
>>> a summing band-pass (ish) filter. 40 x TLV274.
>>>
>>> I didnt want to AC-couple the inputs (that would have cost me 240
>>> capacitors) so I used the bridged-T feedback network with an RC shunt
>>> to give a DC gain of about 1/16 - any DC is basically common-mode,
>>> and the next stage was AC coupled. 3 Rs and 2 Cs was a whole lot
>>> cheaper than an RLC. But 100k/14 = 7k in parallel with the -ve shunt
>>> arm, enough to move Fc 10% or so.
>>>
>>> SPICE clearly showed it, so I went back and re-did my opamp analysis
>>> using Dostals approach (originally I did it using the Woodgate
>>> approximation), and voila - out popped the same answer. Mr HP3577
>>> also agreed with spice and mathcad. Dostals method also allowed me to
>>> directly calculate the phase margin. Since then, I have analysed all
>>> opamp circuits thusly - but I use the Woodgate approach with pencil &
>>> paper as a bullshit detector :)
>>>
>>> Cheers
>>> Terry
>>
>>
>>
>> You can achieve a wild increase in effective GBW by going to current
>> mode feedback. The peaking and rapid rolloff due to that low impedance
>> -ve shunt is eliminated from any frequency bands usable with the
>> voltage feedback circuit. The output gain of 2x deals with the CMR
>> input range of the TLV274- requires about a volt of headroom to V+ -
>> facilitation odds and ends not shown...
>> View in a fixed-width font such as Courier.
>>
>> .
>> .
>> . >--[Ri]-+-------+------[R1]--+--[R2]------------+
>> . | | | |
>> . o | | [R3] +--[R]---+-->Vout
>> . | | +5V | | |
>> . | | | C | | |\ |
>> . o | | +-----||-+ +--|-\ |
>> . | | | | | >--+
>> . | | +-----[Rc]-----+------|+/
>> . o | | | | | |/
>> . | | | | |
>> . >--[Ri]-+ | +-----------+ | [R]
>> . | | | | | |
>> . >--[Ri]-+ +------|>|---+ | | |
>> . | | | | | | |
>> . >--[Ri]-+ +--------------------------+
>> . | | | | | |
>> . | | | | | |
>> . | | |\| c | |
>> . | +-|+\ |/ | | OA TLV274
>> . | | >-+---| c |
>> . 2.5V>-+-----|-/ | |\ |/ |
>> . |/| | e+ c
>> . | | |\ |/
>> . | [Rb] e+
>> . | | |\
>> . | | e
>> . | | |
>> . GND---------+--+-----------+------------
>
>
> I'll study that a bit later. unfortunately it also achieves a wild
> increase in parts count and cost - this circuit is replicated many, many
> times :)

I can't comment on your application since only you know what that is.
You may find this strange, but the idea is to overcome the limitations
of low inverting input shunt impedance and not to improve your product.

From: Fred Bartoli on
Sorry for the late reply.

"The Phantom" <phantom(a)aol.com> a ?crit dans le message de
news:j23lj1t9rtj0lbt32ghtmru7f717h79g9i(a)4ax.com...
> On Thu, 22 Sep 2005 09:53:22 +0200, "Fred Bartoli"
> <fred._canxxxel_this_bartoli(a)RemoveThatAlso_free.fr_AndThisToo> wrote:
>
> >
> >"The Phantom" <phantom(a)aol.com> a ?crit dans le message de
> >news:7sr3j157pdfap23guks1go3p9g7qjrvn5k(a)4ax.com...
> >> On Wed, 21 Sep 2005 17:36:57 -0500, John Fields

<snipped>

> >> If A is the op amp gain and C1 is included in the calculation, the
gain
> >is :
> >>
> >> -A*(r4 + r5) - A*c1*(r5*r6 + r4*(r5 + r6))*s
>
-----------------------------------------------------------------------
> >--
> >> r3 + A*r3 + r4 + r5 + c1*(r5*r6 + r4*(r5 + r6) + r3*(r5 + r6 +
> >A*r6))*s
> >>
> >
> >Well, you've forgotten the GBW in all that :-)
>
> No, I didn't forget at all; it's implicit in A.
>

Well, yes, I somewhat figured that.
But not mentionning A(s) when you explicitly use s somewhere else might lead
the not so careful to some error, i.e. forgetting its phase which is -90d
over almost the bandwidth.


> >If we set WT=2.pi.GBW then we have
> >
> > -A - B p
> >----------------- with
> > 1 + C p + D p^2
> >
> > A0(R4+R5)
> >A = ----------------
> > R3(1+A0)+R4+R5
> >
> > A0.C1(R4 R5 + (R4 + R5) R6)
> >B = ----------------------------
> > R3(1+A0)+R4+R5
> >
> > (A0(R3 + R4 + R5 ) + C1.WT((R3 + R4)R5 + R6(R3 + A0.R3 + R4 + R5))
> >C = --------------------------------------------------------------------
> > (R3 (1 + A0) + R4 + R5 ) WT
> >
> >
> > A0.C1 ((R3 + R4) R5 + (R3 + R4 + R5) R6)
> >D = ------------------------------------------
> > (R3 + A0 R3 + R4 + R5) WT
> >
> >
> >Less than 2 min to work this out from scratch, incl. sign error
correction.
>
> What sign error is that?

That was in the starting equations (wrong opamp gain sign).


>
> >Isn't that Mathematica lovely? ;-)
>
> Unfortunately, the result doesn't seem to be correct. Put the
> expressions for A, B, C (the numerator of the "C" expression seems to
> be missing a closing parenthesis), and D into the first expression,
> namely:
>
> -A - B p
> -----------------
> 1 + C p + D p^2
>
> Then when you have it written out in all it's glory, find the limit
> as A0 --> infinity, and then the limit as C1 --> infinity. You
> *should* get: -((r5*r6 + r4*(r5 + r6))/(r3*r6))
>
> But, alas, you don't.
>

But then I do :-)
I've doubled checked the results the brute force way, taking the A,B,C,D
directly from here back into mathematica and all the limits are OK.


--
Thanks,
Fred.


From: Terry Given on
Fred Bloggs wrote:
>
>
> Terry Given wrote:
>
>> Fred Bloggs wrote:
>>
>>>
>>>
>>> Terry Given wrote:
>>>
>>>> Fred Bloggs wrote:
>>>>
>>>>>
>>>>>
>>>>> Terry Given wrote:
>>>>>
>>>>>>
>>>>>> I recently built about 50,000 of this circuit, with a feedback cap
>>>>>> too (mathcad rather than mathematica, and a pencil to start with
>>>>>> for the analysis), and 15 inputs thru 100k resistors. the effect
>>>>>> of the 14 "grounded" resistors shifted the center frequency by
>>>>>> about 10% - Aol was about 50. power consumption (and cost)
>>>>>> constraints meant I couldnt use a faster opamp, so instead I
>>>>>> stopped assuming and started calculating :)
>>>>>>
>>>>>
>>>>> What was the transfer function you were shooting for, and which amp?
>>>>>
>>>>
>>>> a summing band-pass (ish) filter. 40 x TLV274.
>>>>
>>>> I didnt want to AC-couple the inputs (that would have cost me 240
>>>> capacitors) so I used the bridged-T feedback network with an RC
>>>> shunt to give a DC gain of about 1/16 - any DC is basically
>>>> common-mode, and the next stage was AC coupled. 3 Rs and 2 Cs was a
>>>> whole lot cheaper than an RLC. But 100k/14 = 7k in parallel with the
>>>> -ve shunt arm, enough to move Fc 10% or so.
>>>>
>>>> SPICE clearly showed it, so I went back and re-did my opamp analysis
>>>> using Dostals approach (originally I did it using the Woodgate
>>>> approximation), and voila - out popped the same answer. Mr HP3577
>>>> also agreed with spice and mathcad. Dostals method also allowed me
>>>> to directly calculate the phase margin. Since then, I have analysed
>>>> all opamp circuits thusly - but I use the Woodgate approach with
>>>> pencil & paper as a bullshit detector :)
>>>>
>>>> Cheers
>>>> Terry
>>>
>>>
>>>
>>>
>>> You can achieve a wild increase in effective GBW by going to current
>>> mode feedback. The peaking and rapid rolloff due to that low
>>> impedance -ve shunt is eliminated from any frequency bands usable
>>> with the voltage feedback circuit. The output gain of 2x deals with
>>> the CMR input range of the TLV274- requires about a volt of headroom
>>> to V+ - facilitation odds and ends not shown...
>>> View in a fixed-width font such as Courier.
>>>
>>> .
>>> .
>>> . >--[Ri]-+-------+------[R1]--+--[R2]------------+
>>> . | | | |
>>> . o | | [R3] +--[R]---+-->Vout
>>> . | | +5V | | |
>>> . | | | C | | |\ |
>>> . o | | +-----||-+ +--|-\ |
>>> . | | | | | >--+
>>> . | | +-----[Rc]-----+------|+/
>>> . o | | | | | |/
>>> . | | | | |
>>> . >--[Ri]-+ | +-----------+ | [R]
>>> . | | | | | |
>>> . >--[Ri]-+ +------|>|---+ | | |
>>> . | | | | | | |
>>> . >--[Ri]-+ +--------------------------+
>>> . | | | | | |
>>> . | | | | | |
>>> . | | |\| c | |
>>> . | +-|+\ |/ | | OA TLV274
>>> . | | >-+---| c |
>>> . 2.5V>-+-----|-/ | |\ |/ |
>>> . |/| | e+ c
>>> . | | |\ |/
>>> . | [Rb] e+
>>> . | | |\
>>> . | | e
>>> . | | |
>>> . GND---------+--+-----------+------------
>>
>>
>>
>> I'll study that a bit later. unfortunately it also achieves a wild
>> increase in parts count and cost - this circuit is replicated many,
>> many times :)
>
>
> I can't comment on your application since only you know what that is.
> You may find this strange, but the idea is to overcome the limitations
> of low inverting input shunt impedance and not to improve your product.
>

What about the typo? the 2nd transistor shorts out the +5V supply....

Cheers
Terry
From: The Phantom on
On Mon, 3 Oct 2005 21:13:16 +0200, "Fred Bartoli"
<fred._canxxxel_this_bartoli(a)RemoveThatAlso_free.fr_AndThisToo> wrote:

>Sorry for the late reply.
>
>"The Phantom" <phantom(a)aol.com> a ?crit dans le message de
>news:j23lj1t9rtj0lbt32ghtmru7f717h79g9i(a)4ax.com...
>> On Thu, 22 Sep 2005 09:53:22 +0200, "Fred Bartoli"
>> <fred._canxxxel_this_bartoli(a)RemoveThatAlso_free.fr_AndThisToo> wrote:
>>
>> >
>> >"The Phantom" <phantom(a)aol.com> a ?crit dans le message de
>> >news:7sr3j157pdfap23guks1go3p9g7qjrvn5k(a)4ax.com...
>> >> On Wed, 21 Sep 2005 17:36:57 -0500, John Fields
>
><snipped>
>
>> >> If A is the op amp gain and C1 is included in the calculation, the
>gain
>> >is :
>> >>
>> >> -A*(r4 + r5) - A*c1*(r5*r6 + r4*(r5 + r6))*s
>>
> -----------------------------------------------------------------------
>> >--
>> >> r3 + A*r3 + r4 + r5 + c1*(r5*r6 + r4*(r5 + r6) + r3*(r5 + r6 +
>> >A*r6))*s
>> >>
>> >
>> >Well, you've forgotten the GBW in all that :-)
>>
>> No, I didn't forget at all; it's implicit in A.
>>
>
>Well, yes, I somewhat figured that.
>But not mentionning A(s) when you explicitly use s somewhere else might lead
>the not so careful to some error, i.e. forgetting its phase which is -90d
>over almost the bandwidth.

I think that anyone sufficiently well versed in complex arithmetic
as used nowadays to write transfer functions will know that if they
want the DC gain, they can just use the TF I gave with A constant, and
if they want AC results, then of course they will know that A must be
a function of frequency..

>
>
>> >If we set WT=2.pi.GBW then we have
>> >
>> > -A - B p
>> >----------------- with
>> > 1 + C p + D p^2
>> >
>> > A0(R4+R5)
>> >A = ----------------
>> > R3(1+A0)+R4+R5
>> >
>> > A0.C1(R4 R5 + (R4 + R5) R6)
>> >B = ----------------------------
>> > R3(1+A0)+R4+R5
>> >
>> > (A0(R3 + R4 + R5 ) + C1.WT((R3 + R4)R5 + R6(R3 + A0.R3 + R4 + R5))
>> >C = --------------------------------------------------------------------
>> > (R3 (1 + A0) + R4 + R5 ) WT
>> >
>> >
>> > A0.C1 ((R3 + R4) R5 + (R3 + R4 + R5) R6)
>> >D = ------------------------------------------
>> > (R3 + A0 R3 + R4 + R5) WT
>> >
>> >
>> >Less than 2 min to work this out from scratch, incl. sign error
>correction.
>>
>> What sign error is that?
>
>That was in the starting equations (wrong opamp gain sign).

Did you notice that three different people contributed to the
posting that you originally replied to? John Woodgate did the first
ASCII schematic, John Fields did the second and provided an equation,
viz:

R4 + R5 Vcc R2
Vout = -Vin --------- + ---------
R3 R1 + R2

All I (Phantom) posted was a couple of transfer functions. I didn't
use John's equations, and I don't think there was a sign error in what
I posted. Most of your reply was directed to me, so I thought you
were suggesting I had made a sign error.

It would make it easier for others to comment without ambiguity and
misunderstanding on your posting if you would cut and paste in the
equation you think is in error, perhaps even indicating what you think
the correct equation should be.

>
>
>>
>> >Isn't that Mathematica lovely? ;-)
>>
>> Unfortunately, the result doesn't seem to be correct. Put the
>> expressions for A, B, C (the numerator of the "C" expression seems to
>> be missing a closing parenthesis), and D into the first expression,
>> namely:
>>
>> -A - B p
>> -----------------
>> 1 + C p + D p^2
>>
>> Then when you have it written out in all it's glory, find the limit
>> as A0 --> infinity, and then the limit as C1 --> infinity. You
>> *should* get: -((r5*r6 + r4*(r5 + r6))/(r3*r6))
>>
>> But, alas, you don't.
>>
>
>But then I do :-)
>I've doubled checked the results the brute force way, taking the A,B,C,D
>directly from here back into mathematica and all the limits are OK.

You set WT=2.pi.GBW, but you haven't indicated what kind of op amp
model you're using. Was it the standard one pole model:

A(s) = WT/(s + Wa)

or something else? I can't comment further until you tell me your
model, but I still think there is something out of kilter with your
expression:

-A - B p
-----------------
1 + C p + D p^2

after A, B, C and D are substituted.
From: Fred Bartoli on

"The Phantom" <phantom(a)aol.com> a ?crit dans le message de
news:r7f3k19amd4737csli9d1c7c7c1d5engqn(a)4ax.com...
> On Mon, 3 Oct 2005 21:13:16 +0200, "Fred Bartoli"
> <fred._canxxxel_this_bartoli(a)RemoveThatAlso_free.fr_AndThisToo> wrote:
>
> >> >Well, you've forgotten the GBW in all that :-)
> >>
> >> No, I didn't forget at all; it's implicit in A.
> >>
> >
> >Well, yes, I somewhat figured that.
> >But not mentionning A(s) when you explicitly use s somewhere else might
lead
> >the not so careful to some error, i.e. forgetting its phase which is -90d
> >over almost the bandwidth.
>
> I think that anyone sufficiently well versed in complex arithmetic
> as used nowadays to write transfer functions will know that if they
> want the DC gain, they can just use the TF I gave with A constant, and
> if they want AC results, then of course they will know that A must be
> a function of frequency..
>

OK, fair enough.

> >
> >
> >> >If we set WT=2.pi.GBW then we have
> >> >
> >> > -A - B p
> >> >----------------- with
> >> > 1 + C p + D p^2
> >> >
> >> > A0(R4+R5)
> >> >A = ----------------
> >> > R3(1+A0)+R4+R5
> >> >
> >> > A0.C1(R4 R5 + (R4 + R5) R6)
> >> >B = ----------------------------
> >> > R3(1+A0)+R4+R5
> >> >
> >> > (A0(R3 + R4 + R5 ) + C1.WT((R3 + R4)R5 + R6(R3 + A0.R3 + R4 +
R5))
> >> >C
= --------------------------------------------------------------------
> >> > (R3 (1 + A0) + R4 + R5 ) WT
> >> >
> >> >
> >> > A0.C1 ((R3 + R4) R5 + (R3 + R4 + R5) R6)
> >> >D = ------------------------------------------
> >> > (R3 + A0 R3 + R4 + R5) WT
> >> >
> >> >
> >> >Less than 2 min to work this out from scratch, incl. sign error
> >correction.
> >>
> >> What sign error is that?
> >
> >That was in the starting equations (wrong opamp gain sign).
>
> Did you notice that three different people contributed to the
> posting that you originally replied to? John Woodgate did the first
> ASCII schematic, John Fields did the second and provided an equation,
> viz:
>
> R4 + R5 Vcc R2
> Vout = -Vin --------- + ---------
> R3 R1 + R2
>
> All I (Phantom) posted was a couple of transfer functions. I didn't
> use John's equations, and I don't think there was a sign error in what
> I posted. Most of your reply was directed to me, so I thought you
> were suggesting I had made a sign error.
>
> It would make it easier for others to comment without ambiguity and
> misunderstanding on your posting if you would cut and paste in the
> equation you think is in error, perhaps even indicating what you think
> the correct equation should be.
>

Oh, I see.
Sorry for the misunderstanding, I wasn't implying somebody made a sign
error.
It was just *me* that made the sign error when first writing the problem and
got obviously wrong results.
Error corrected in a snap.

By saying:
> >> >Less than 2 min to work this out from scratch, incl. sign error
> >correction.

I was just emphasing how easy it is to correct such errors vs the
paper/pencil method.


> >
> >
> >>
> >> >Isn't that Mathematica lovely? ;-)
> >>
> >> Unfortunately, the result doesn't seem to be correct. Put the
> >> expressions for A, B, C (the numerator of the "C" expression seems to
> >> be missing a closing parenthesis), and D into the first expression,
> >> namely:
> >>
> >> -A - B p
> >> -----------------
> >> 1 + C p + D p^2
> >>
> >> Then when you have it written out in all it's glory, find the limit
> >> as A0 --> infinity, and then the limit as C1 --> infinity. You
> >> *should* get: -((r5*r6 + r4*(r5 + r6))/(r3*r6))
> >>
> >> But, alas, you don't.
> >>
> >
> >But then I do :-)
> >I've doubled checked the results the brute force way, taking the A,B,C,D
> >directly from here back into mathematica and all the limits are OK.
>
> You set WT=2.pi.GBW, but you haven't indicated what kind of op amp
> model you're using. Was it the standard one pole model:
>
> A(s) = WT/(s + Wa)
>

Yes it is.


> or something else? I can't comment further until you tell me your
> model, but I still think there is something out of kilter with your
> expression:
>
> -A - B p
> -----------------
> 1 + C p + D p^2
>
> after A, B, C and D are substituted.

Well, you can't just make A0 and C1 go to the limit and expect the DC
response. You also have to either make WT go to the limit, or make s=0.

Then all goes fine.

But then you can see that it's easy, even for someone "sufficiently well
versed in complex arithmetic
as used nowadays" (to take your words), to forget something in the process.
Hence my preference for writing A(s). It's just one thing less to remember.

From some of your previous posts I believe you have mathematica, so you'll
find the code herewith.


--
Thanks,
Fred.


In[1]:=
\!\(Eqs = {\[IndentingNewLine]Vo == \(-Vn\)\ \[Omega]T\/\(\[Omega]T\/A0 + \
p\), (*\
opamp\ gain\ *) \[IndentingNewLine]\(Vn - VA\)\/R4 + \(Vo - VA\)\/R5 \
+ \(0 - VA\)\/\(R6 + 1\/\(C1\ p\)\) == 0, \ \ \ (*\
node\ A\ = \
T\ common\ node\ *) \[IndentingNewLine]\(Vin - Vn\)\/R3 + \(VA - Vn\
\)\/R4 == 0\ (*\
opamp\ minus\ input\ *) \[IndentingNewLine]}\[IndentingNewLine]\
\[IndentingNewLine]
sol = \(\(Vo\/Vin /. Solve[Eqs, Vo, {Vn, VA}] // Simplify\) //
Collect[#, p] &\) // First\[IndentingNewLine]\[IndentingNewLine]
\(Print["\<\nChecking the gain limits:\>"];\)\[IndentingNewLine]
Limit[sol, A0 -> \[Infinity]]\[IndentingNewLine]
Limit[%, C1 -> \[Infinity]]\[IndentingNewLine]
Limit[%, \[Omega]T -> \[Infinity]] // FullSimplify\[IndentingNewLine]
Limit[%%, p -> 0] // FullSimplify\[IndentingNewLine]\[IndentingNewLine]
\(solnum = Numerator[sol] // Collect[#, p] &;\)\[IndentingNewLine]
\(solden = \(Denominator[sol] // FullSimplify\) //
Collect[#, {p, \[Omega]T}] &;\)\[IndentingNewLine]
\(cl = CoefficientList[solden, p];\)\[IndentingNewLine]\[IndentingNewLine]
\(Print["\<\nTF numerator:\>"];\)\[IndentingNewLine]
solnum = \(solnum\/cl[\([1]\)] // FullSimplify\) //
Collect[#, {\ p}] &\[IndentingNewLine]\[IndentingNewLine]
\(Print["\<\nTF denominator:\>"];\)\[IndentingNewLine]
solden = \((cl[\([3]\)]\/cl[\([1]\)] //
FullSimplify)\)\ p\^2 + \((cl[\([2]\)]\/cl[\([1]\)] //
FullSimplify)\)\ p\ + \ 1\[IndentingNewLine]\[IndentingNewLine]
\(Print["\<\nThe results:\>"];\)\[IndentingNewLine]
\(cln = CoefficientList[solnum, p];\)\[IndentingNewLine]
\(cld = CoefficientList[solden, p];\)\[IndentingNewLine]
Print["\<A = \>", a = \(-cln[\([1]\)]\)\ ]\[IndentingNewLine]
Print["\<B = \>", b = \(-cln[\([2]\)]\)\ ]\[IndentingNewLine]
Print["\<C = \>", c = cld[\([2]\)]\ ]\[IndentingNewLine]
Print["\<D = \>", d = cld[\([3]\)]\ ]\[IndentingNewLine]\[IndentingNewLine]
(*\ Checking\ *) \[IndentingNewLine]
\(Print["\<\nFinal check:\>"];\)\[IndentingNewLine]
\((sol - \(\(-a\) - b\ p\)\/\(1 + c\ p + d\ p\^2\))\) // Simplify\)