This is a circuit to measure a current flow that is 0-10A DC. The output goes to an ADC.

The circuit itself works fine, however, over a dozen cards, the output of this circuit is all over the place.

At rest, I=0, the output offset can vary by a factor 10 (300 to 3'000 count on the ADC) from one board to another; but is stable in a specific board.

So far, it might be related to the input offset voltage, given at 0.11mV typ. but this would account for perhaps 10%.

The manufacturing of the cards was also poor and noticed some pads seem not well soldered, I wonder if that could be a cause as well.

Are there other fundamental flaws in this circuit?

I need to fix an existing batch of boards.

enter image description here

  • VDD: 3.3V
  • ADC is 0-3V with 0.1% reference. the ADC is not saturating.
  • ADC is 12bits, 16 measurements summed: 16*12bits = 65535 counts.

Two random cards measured at rest I = 0A voltage at the circuit output:

  • A: 150mV / 3445 count
  • B: 34mV / 336 count

enter image description here

  • \$\begingroup\$ Exactly what 'differences' are you getting? (you say "it might be related to the input offset voltage" so I'm guessing it is different offsets?). Please give some example numbers. Also show us a photo of the board. \$\endgroup\$ Dec 7 '19 at 6:58
  • \$\begingroup\$ Yes big offset difference, factor of 10. will edit the question. \$\endgroup\$
    – Damien
    Dec 7 '19 at 6:59
  • \$\begingroup\$ What is the resolution and full scale input voltage of your ADC? \$\endgroup\$ Dec 7 '19 at 7:01
  • \$\begingroup\$ ADC is 0-3V (0.1% reference). the ADC is not saturating. ADC is 12bits but 16 measurements are added so full range is 16*12bits = 65535 @BruceAbbott \$\endgroup\$
    – Damien
    Dec 7 '19 at 7:05
  • \$\begingroup\$ With a 1mΩ resistor layout can have an effect too. can you show a screen shot of the layout? A Kelvin connection to R19 is a must. \$\endgroup\$
    – Aaron
    Dec 7 '19 at 7:07

Your input signal is 10A, which through your R19 sensing resistor develops a voltage of 10mV. Your opamp is specified with a maximum offset voltage of 7mV, which is 70% of full scale!

Note, calacuating the offset like this, it doesn't matter what your gain is (it's about x250), or your ADC resolution or scale, it's presupposes you have the gain and ADC correct to get a full scale measurement, and gives the offset in terms of full scale.

You have several options:

1) Calibrate the offset. The specified offset drift is fairly small, 1uV/C, or in full scale terms 0.01% FSD per degree C, which also fits with your description of the error being stable on any particular board.

2) Use an amplifier with a bit better offset, down to 1mV should be easily acheivable for not too much money with a bit of research. Offset down to 10% FSD.

3) Use a 'zero offset' amplifier, chopper or AutoZero based, which will be pricey, but will work. There are several options now from the big beasts TI and AD, which will get you 0.01% FSD offset.

4) Can you increase the size of R19? 10mV is quite a small burden voltage for an ammeter, though it could be all you want to budget for an in-circuit meter.

  • 1
    \$\begingroup\$ I agree, and went to the same conclusion (plan to revise with another opamp), but the typical offset is 0.11mV. I can understand that some device would end up at 7mV, but I observe about half being there. If that was the cause, I would expect most of the card to have relatively similar value with perhaps some being far. Although in this situation it seems to be about half/half. \$\endgroup\$
    – Damien
    Dec 7 '19 at 7:09
  • \$\begingroup\$ I tried to calibrate the offset, (substracting the I=0 count to the actual measurement) but it does not seem to work. Might it be related to the offsets being below the rail and thus can't be corrected at such? I agree the opamp has to be replaced, although I have to fix a batch already produced. \$\endgroup\$
    – Damien
    Dec 7 '19 at 7:14
  • \$\begingroup\$ @Damien "Might it be related to the offsets being below the rail and thus can't be corrected at such?" - could be, but there's an easy fix for that. Just pull the input up through a high value resistor to get a reliable positive offset, then subtract it out during calibration. Note that most 'rail-to-rail' op amps (and some ADCs) don't go down to ground, so you may need this offset for accurate calibration. \$\endgroup\$ Dec 7 '19 at 7:27
  • \$\begingroup\$ Thanks for the input @BruceAbbott. I will probably implement that on the revision. Any idea for a dirty fix that can be done for the existing boards by software or simple hack. Also I want to make 100% sure that is the issue, so far i'm quite sceptical 50% of the boards are at the 7mV edge while the typ value is 0.1mV. \$\endgroup\$
    – Damien
    Dec 7 '19 at 7:30
  • \$\begingroup\$ @Damien For a 'quick fix' you could solder a resistor from pin 2 to pin 3 or 4 of the op amp, depending on whether you need to increase or decrease the offset. But don't take it all out. You want a bit of positive offset to maintain accuracy at low current. \$\endgroup\$ Dec 7 '19 at 7:49

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.