I am trying to automatically measure the behavior of a batch of devices in order to guarantee that the current stays in the expected range for different supply voltages. For that purpose I am using an ADS1256 ADC.

Using the following circuit (simplified for the purpose of this question and showing only the voltage measurement) I get pretty good measurements.

enter image description here

Comparing the results from my DMM and from the ADC (first two columns of the following table) I get a reasonable error.

enter image description here

Since the excitation voltage can be greater than 2.5V (accepted by the ADC), I am trying to add two voltage dividers (one for channel) as shown in the following diagram.

enter image description here

Unfortunately, the error gets too high for my purposes, probably because the leakage current through the voltage dividers and value mismatch between the resistors. (I'm using 1% resistors for the prototype).

One option could be to use two opamps in voltage follower configuration (G=1) before the voltage dividers but this doesn't solve the resistors mismatch problem and I fear that two different input offset voltages could have a huge impact.

My questions are:

  1. which is the best way to scale down a differential signal?
  2. why do the dividers with 470k resistor (which should have the minimum leakage current) lead to an even higher error?

EDIT - Clarifications

  1. The prototype I am working on is focused on testing the ADC behavior (and software to drive it)

  2. R3: it is used to measure the current through the DUT (not shown in the schematic). The value of R3 used in the prototype is just for testing the ADC, the final value could be different accordingly with the actual current range to measure

  3. R$: it is just to simulate the actual device (which is not even linear)

  4. The general question is: how to scale down a differential voltage without too much leakage current and keeping the error possibly lower than 1%.

  • \$\begingroup\$ In your schematic you show four 470 ohm resistors for the divider - I believe those should be 470kohm? \$\endgroup\$ Sep 25, 2021 at 15:57
  • \$\begingroup\$ Due to ADC's finite input impedance and leakage current, high signal source impedance may cause significant error. You can use ADS1256's built in buffer to mitigate these problems. \$\endgroup\$
    – Long Pham
    Sep 25, 2021 at 16:11
  • \$\begingroup\$ @Cravero. As you can see from the data table, at 5.5V and with 470k the error is about -87% \$\endgroup\$
    – Fab
    Sep 25, 2021 at 16:29
  • \$\begingroup\$ @Pham. I am sorry, I forgot to mention that the built in buffer is activated. \$\endgroup\$
    – Fab
    Sep 25, 2021 at 16:30

1 Answer 1


It looks like you are trying to use R4 as a shunt to measure the current of the DUT, but because of the large size of R4 relative to R3 your input voltage is going to vary a lot based on the applied voltage. It's also not good practice to rely on a component in the DUT for measurement purposes, as the component will vary from part to part.

If you must stick with the circuit you already have I suggest you try looking at using a differential signal amplifier to attenuate the signal

I would recommend using a separate shunt resistor in series with your DUT with a shunt amplifier:

enter image description here (Image modified from: https://www.ti.com/lit/sg/slyb194e/slyb194e.pdf?ts=1632595416638 )

There are a number of off-the-shelf chips that would work for this, including the INA181

This will allow you to avoid having to deal with a signal that goes above the limits of your ADC and changes the differential signal to a single ended one that can feed directly into your ADC. You will also be able to use a much smaller resistor value for measuring the current which means that you can measure current across a much higher supply voltage range.

The equation for selecting the appropriate gain and shunt resistor value is straight forward and can be seen in the screenshot below:

Current shunt amplifier equation

If you don't need bidirectional current sensing, the equation gets even simpler by connecting the reference voltage to GND (Vref = 0).

  • \$\begingroup\$ Thanks Bartimaeus. Probably my question was not clear enough. R4 is simulating the DUT in the prototype. Conversely, R3 is used to measure the current through the DUT (not shown in the schematic). Please, see my edited question. \$\endgroup\$
    – Fab
    Sep 26, 2021 at 8:13

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.