For a crude current sense application I am wondering whether it is possible to build a non-inverting difference amplifier without common mode offset on the output.

Reason: I would like to avoid having to create a negative supply voltage just for this function.

I.e. I am looking for the following output: Vout = gain * (V2 - V1) where V2 > V1

  • 4
    \$\begingroup\$ "Inverting" and "non-inverting" make no sense applied to a difference amplifier. It always takes one input minus the other times the gain. You can change the polarity by swapping the inputs. \$\endgroup\$ – Olin Lathrop May 2 '12 at 21:50
  • 3
    \$\begingroup\$ Make sure you have a look at current sense amps like ZXCT1009. \$\endgroup\$ – markrages May 3 '12 at 0:44
  • \$\begingroup\$ @markrages sorry, I've involountarily "copied" your comment in my answer, but without even reading it: the content was coming from an old question of mine...and the answer there was yours XD \$\endgroup\$ – clabacchio May 3 '12 at 11:28

I don't see any problem. Connect your V1 and V2 as shown here


and make


Use precision resistors, to have an acceptable common-mode rejection ratio. If you need a high CMRR, use an integrated difference amplifier.


If what you need is just high CMRR, an instrumentation amplifier may be the best choice. Despite the name, you can use it everywhere and it behaves like a fully differential amplifier (usable also in cases where the common mode input is hundred times bigger than the signal).

The conceptual schematic of that amplifier is this:

enter image description here

$$ V_{OUT} = \left(1 + \dfrac{2 \cdot R_1}{R_{GAIN}}\right) \dfrac{R_3}{R_2} (V_2 - V_1) $$

As you can see, the symmetric structure gives a great performance in rejecting common mode, and the offset of the third op-amp is made less important by the gain in the previous stages.

Most (if not all) the amplifiers have offset correction, which can improved also using an external resistor; they have also programmable gain, also using a resistor.

Here you have a table from Analog Devices where you can choose the proper one.


For measuring currents, you have also the choice of dedicated current sense amplifiers or, even more appropriate, high-side current monitors (like markrages suggested in the comment and here).

  • 1
    \$\begingroup\$ TI's INA21x family is a very low offset high-side current monitor that I've had a great deal of success with. \$\endgroup\$ – Adam Lawrence May 3 '12 at 12:39

I agree with clabacchio's instrumentation amplifier solution to get a good CMRR. You can roll your own, but integrated InAmps are available at reasonable prices. Integrates ones will also have better resistor matching than you get with discrete components.

A word of warning, though, and for that we need the schematic:

enter image description here

Chances are that you use a high side current sensor, where \$V_2\$ is connected to \$V_+\$. If that same \$V_+\$ is the positive supply for your InAmp there's a problem. If \$V_2\$ > \$V_1\$ then there will flow a current through \$R_1\$/\$R_{GAIN}\$/\$R_1\$ from the bottom opamp to the top opamp. To make the inverting input of the bottom opamp equal to the non-inverting input (\$V_2\$) the output has to to go higher than that, and if \$V_2\$ = \$V_+\$ it can't do that. So the InAmp won't accept input voltages all the way to the rails.

The common difference amplifier from Telaclavo's answer doesn't have this limitation since the resistor divider \$R_2\$/\$R_g\$ will bring \$V_2\$ down from \$V_+\$.
For minimum offset error choose \$R_1\$ = \$R_2\$ and \$R_f\$ = \$R_g\$.

The AD820 is rail-to-rail output and has offset null inputs.

  • \$\begingroup\$ Whoops I didn't notice markrages' comment, I've taken the components from here :) nice catch anyway! \$\endgroup\$ – clabacchio May 3 '12 at 11:25
  • \$\begingroup\$ @clabacchio - Always read the comments, you never know you'll find something interesting in them. Let this be a lesson to you! :-) \$\endgroup\$ – stevenvh May 3 '12 at 11:40
  • \$\begingroup\$ The amazing thing is that I've taken the component name from a post of him to an old question of mine :) \$\endgroup\$ – clabacchio May 3 '12 at 11:50
  • \$\begingroup\$ @clabacchio - Yes, I know, I was just reading it. Oddly enough he mentions the Zetex, but comes with a more evolved solution of his own. That Zetex looks sexy! \$\endgroup\$ – stevenvh May 3 '12 at 11:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.