Schematic for current sensing circuit

Hello, I have to use this circuit as part of a school project so I'm limited to this design and these components. The voltage regulator works as anticipated however the differential amplifier does not. Here it amplifies, by a factor of 10, the voltage drop across the shunt resistor R8 which is ~28mV. I'm having two issues with this however circuit however.

  1. The output of the LM324N on the simulation is 303mV but shouldn't it be 280mV since the gain is set to 10 by the 100k and 10k resistors ?
  2. When I physically replicate the circuit the output voltage of the LM324N is 562mV with all the same parameters as the simulation but the voltage across the shunt is 27.2mV.

How can I solve both problems ? I think that it may have something to do with CMRR and the input offset voltage which according to the datasheet is typically 2mV. I'm also new to all of this and I don't completely understand CMRR

  • \$\begingroup\$ What tolerance resistors are you using? It wouldn't be 10%, would it? \$\endgroup\$ Commented Dec 4, 2016 at 4:03
  • \$\begingroup\$ @WhatRoughBeast Resistor Tolerance is 5% \$\endgroup\$
    – SRR
    Commented Dec 4, 2016 at 4:23

1 Answer 1


Yes, your problem with the physical circuit is CMRR -- common mode rejection ratio. The CMRR of the opamp itself is pretty good, but you have used very low tolerance (5%) resistors, and that has given your circuit a very poor common mode rejection.

To illustrate what is going on, open up your LTspice simulation and change one of the 10K resistors to 10.5k (i.e, 5% error). You will see a ~500 mV change in the output.

The reason for this is that the gain of your positive and negative inputs are different. What you want to measure is G*(V2-V1). In reality you have (G2*V2-G1*V1). When the gains are not matched (because your resistors are not matched), you have a term that doesn't precisely cancel that is proportional to the voltage at the input terminals, rather than only the voltage difference. This is called the common mode.

It is common to use high precision resistors (0.01% or even better) when constructing differential amplifiers with high common mode rejection. Frequently people use instrumentation amplifier ICs that have laser-trimmed resistors on the chip.

What can you do to fix this with what you have? The simplest is to move the current shunt resistor to the "low" side of the load (i.e., between RL and ground). This will reduce the common mode signal, and thus the impact of the poor CMRR.

You should use the most precise resistors you can find. 1% are common and cheap, but if you don't have them available, you can just grab a handful of 5% resistors and an ohmmeter and find matching pairs. Selecting parts like this isn't as good as actual precision resistors, since low spec parts usually have worse drift and temperature coefficient, but it still helps.

  • \$\begingroup\$ Thank you ! I've implemented your second solution (switching the shunt to lowside) and now I have a 200mV output. I think I'll try getting those precision resistors and see what happens. Also the program I used isn't LTSpice it's Multisim 13.0, I changed one resistor to 10.5k and the output on the simulation went up to 768mV. \$\endgroup\$
    – SRR
    Commented Dec 4, 2016 at 18:01
  • \$\begingroup\$ In addition to an instrumentation amplifier, one could also use a current sense amplifier. Both use trimmed resistors for accuracy. An in amp is more general-purpose and works fine but a current sense amplifier is designed for this application. \$\endgroup\$
    – Null
    Commented Dec 5, 2016 at 14:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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