# How do I create a circuit to reliably calculate a range of unknown resistances?

I'm designing a low power circuit which serves to determine the unknown resistance across a 16 channel sensor. So far the results are bit subpar. The resistances are a function of a different applied voltage and whatever they're sensing. The details of that aren't much important for my problem, but the constraints are. The sensor must not have more than a 200mV drop across it and the unknown resistance ranges from 300 to 6k ohms. Typically this DAC voltage would be constant at 200mV.

My setup right now using a high-side current sensing technique.

The DAC output is connected to another ADC input. That readback value is what's used in the calculation. With that information and the voltage across the sensing resistor, the unknown resistance can be calculated. $$V_{ADC} = V_p - V_n$$ $$I = \frac{V_{ADC}}{R_{sense}}$$ $$R_{unknown} = \frac{V_{DAC} - V_{ADC}}{I}$$

While this is great in theory, it's not so great in reality. Here's the results after sweeping the DAC across a range of voltages with Runknown replaced by 0.1% precision resistors. The Rsense I've chosen for now is a 0.01% precision 1k resistor.

At first I thought the mux could be introducing the nonlinearity, but that wouldn't make much sense at it has a 0.5ohm Ron. I decided to test this anyway. The top 3 graphs are showing the measurement with 3 different PGA values (1,2,4). The bottom is with the mux completely bypassed and just a 1k to 1k voltage divider. The nonlinearity is flattened, but the lower end of voltages swept is still quite bad. Ignore the chart x-axis title as it's incorrect.

The target application for this circuit is a very low-powered measurement system so I have chosen components which fit that bill. However, I believe that may also be responsible for failed measurement fidelity.

Component Datasheet Notes
MAX5530 datasheet 12 bit DAC. There is a fairly large offset and nonlinearity. The readback value is used at each voltage step rather than the commanded value.
OPA391 datasheet A low offset rail-to-rail amp used for buffering ADC input.
MAX1415 datasheet 16 bit sigma-delta ADC. Self-calibration routine is initiated for both channels upon startup.
ISL84781 datasheet An 8-channel multiplexer with ultra low Ron of about 0.5ohm.

Would increasing accuracy be a matter of choosing different components or should I try a different measurement technique entirely? I am not constrained to this design... I just need something adapted to the constraints of the unknown resistance range and voltage drop limit. What other techniques are there which provide a more reliable measurement across a wider range?

• Since you've already received a more detailed answer, I will give you a more general one. When confronted with these types of problems, I find it is often helpful to prototype more than one solution. It's very common that one that has far superior performance to the others "out of the box".
– Drew
Commented Jul 9 at 2:20
• If it is possible to use low side sensing in your application, many problems with noise and nonlinearity could be avoided. Commented Jul 10 at 3:24

You can do this, I've been able to calculate resistances down to the tens of milliohms. This circuit is also useful for calibration and delivering a known amount of power. The problem you have is you aren't accounting for voltage offsets in the analog system.

So this is the basic circuit:

simulate this circuit – Schematic created using CircuitLab

R2 is "in the loop" so the VDAC voltage is pretty close to the voltage of the load. So what I did is bought an expensive DAC (16 bit linear dac from analog with very low INL)

This circuit will also work if you have to put R4 on a cable and have additional cable resistance on R4. If you don't have the cable resistance then you don't need to know VADC1.

You can find R4 by knowing the sense resistor. I used a high precision resistor so I would not have to calibrate as calibrating is expensive (if you do know R2 exactly with a meter you can know R4 into the sub 10mΩ range)

Because the current is the same through both resistors:

$$\frac{V_{R2}}{R_2}=i=\frac{V_{R4}}{R_4}$$

So if you know R2 and the voltage across it (VADC) then you can know

You can use varying schemes of this circuit, if you can afford the cost of the DACs and ADC's you can lose precision at the expense of knowing the current exactly.

Another thing I did is use 5 voltage steps to calibrate the whole system and eliminate offsets.

Depending on the inductance of the traces/cables to R4, you may need to compensate the loop with an RC or some other way to cut off the resonance point that arises in the circuit. Spice is really handy at simulating if you put in the right parasitics.

Also make the sense resistor voltage connectors a kelvin connection (as close to the resistor as possible as to not pick up stray trace resistance)

You may not need the transistor if you are doing really low currents (10mA or lower) and the opamp will suffice.

• I would very much appreciate that… and any reference circuitry if you have examples. I’m designing a test Wheatstone bridge circuit as @EricEverton suggested, but I need to get a reliable system and measurement ASAP. Commented Jul 7 at 19:36
• Circuit posted, hope this helps. Commented Jul 8 at 16:53
• My analog knowledge is a bit limited. What exactly is the loop for and what is this method called? What amps are used? I probably won't need any cables nor VADC1 as this is a small device with short traces. I also won't need high currents as the sensor can only take about 500uA max. Commented Jul 9 at 20:00
• What amps are used? If you use the transistor, it's whatever the transistor can handle. This is just a VCVS Voltage Controlled Voltage source. I was trying to accurately deliver calibrated power in the nano watt range. Commented Jul 9 at 20:08

There is a lot of circuitry in your solution with plenty of areas where errors can be introduced. A Wheatstone bridge is probably more suitable (and simpler) for what you are trying to do.

It relies on a balance of resistances and can be made to be very precise. If you use large value resistors, your accuracy may suffer a little, but it will draw very low power.

This is well explained in the Wikipedia site below, so I won’t reproduce it here.

https://en.m.wikipedia.org/wiki/Wheatstone_bridge