Circuit design for high resistance sensor measurement

dannyf

Joined Sep 13, 2015
2,197
The schematic is simple:

1) connect the opamp's non-inverting input to ground (or a common mode voltage);
2) connect the opamp's inverting input to a voltage source (V) through the unknown resistor (Rx);
3) connect the opamp's inverting input to its output with a known resistor (Rf).
4) the current through the unknown resistor is V/Rx, and the opamp's output sits at -V/Rx*Rf.

The two opamps I mentioned are classic opamps for low input bias current. The topology is basically what Keithley used in one of their picoammeters (602 I think).
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
Hi Danny.

The LMP7721 has Vos of 50uV. in 12BIT ADC it is ~2points of error. In 16BIT ADC it is of course worse than that. BTW: there is no information on noise <10Hz.
Will it make problems in accuracy of reading?
 

dannyf

Joined Sep 13, 2015
2,197
Most of adc's last 1-2 LSBs are noises. so I wouldn't worry about it.

As to offset, you can fairly easily null it in software.

As to noise, in this topology, the use of a very large resistor (-> very low current) pretty much takes care of it. The use of low resistance T-network in the feedback path would have materially worsened the noise performance.
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
Hi again,
I received some parts and connected all together as @MikeML suggested in post #35.
When I measure V(s) I measure different values than what I expect to see. If I use the Arduino 5V reference voltage and the GND, I measures 2.46V on -In of the op-amp (V(s)).
Any suggestions why it happens?
I am using AD820 op-amp and BSS84,215 for the transistor.

Other calculations:
Arduino voltage = 4.95V
Vref = 4.38V (because I used different resistors for R1 and R2)
V(d) = 0.37V for R4=20Meg
V(s) = 2.46V
The voltage across R3 = 0.55V

It doesn't make sense or I am missing something.

Thanks.
Sagi
 

MikeML

Joined Oct 2, 2009
5,444
Hi.
I hope you all OK. I wasn't active much lately and I am back to business.

I tried to re-create the circuit @MikeML designed but I have a few problems - please see picture attached. I don't know what is the problem but the Voutput and Ioutput is not the same as seen in the graphs above. Any suggestions where is my fault?
I hadn't seen this thread for weeks.

Why did you connect the feed back to the opamp directly from its output pin instead of from the current sensing resistor as I showed in my posts?
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
I hadn't seen this thread for weeks.

Why did you connect the feed back to the opamp directly from its output pin instead of from the current sensing resistor as I showed in my posts?
This was already fixed. It was a drawing mistake I did while copying the design.
Can you comment on post #45 ?
 

MikeML

Joined Oct 2, 2009
5,444
...
Can you comment on post #45 ?
Do you have Source and Drain swapped on M1?
R4 is not what you think?

Here is what the voltages/currents should be doing:

new.gif

Note that the simulated voltage across R3 is V(ss)-V(s) = 4.95-4.38 = 0.65V.

Could M1 be damaged? What is your V(g)?
 
Last edited:

Thread Starter

sagi4422

Joined Aug 29, 2009
34
I used the same wiring as described in the schematics. I don't think there is a problem with wiring of M1.
The only thing I can think of is that M1 is malfunctioning. I solder it to a SOIC to DIP board but I rather think that it is so fragile in soldering.
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
Attached a picture demonstrating the circuit I wired.
Can you think of any problem with this wiring?
The components are for demonstration only.
I used BSS84 and tried different op-amps such as LM7721, AD820

CurrentSource_bb_800x521.jpg
 
Make sure R4 is connected to what you think it is on the top bus with an ohmmeter. Some breadboards split the upper lower rails into 8 sections rather than 4 as your breadboard shows. e.g. the upper rail is split in the middle so the top of R4 may not be connected to anything.
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
Make sure R4 is connected to what you think it is on the top bus with an ohmmeter. Some breadboards split the upper lower rails into 8 sections rather than 4 as your breadboard shows. e.g. the upper rail is split in the middle so the top of R4 may not be connected to anything.
This was checked and no problem with the bus-wiring connection.
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
Update:
After changing again to the AD820 op-amp I decided to build the full circuit and not just the constant-current source stage.
A miracle was happened and it works.
I measured linear voltages values for 10M,20M,30M - 0.42V, 0.84V, 1.25V respectively and calculated the current from the equation.
In addition, I used 0.1uF capacitor between D and GND to reduce the noise of the output signal.

Thanks for the effort and support! Now we need to make it less noisy :)
 

marcf

Joined Dec 29, 2014
300
You could also just use your dvm on volts. My dvm (Fluke 97) is just a rather pricey 20meg resistor on the DC Volts range. Applying a 5 vdc to the circuit with the DVM in series with it, would read 2.5Volts on the DVM if your unknown resistance was 20Meg, 0.25V if 100Meg...etc.
 

Thread Starter

sagi4422

Joined Aug 29, 2009
34
Hello guys.

After playing along with the device, I found out that the circuit is very sensitive to vibration-related activities - when I am knocking/walking on the floor in a distance of ~30cm, I receive spikes and drops in the signal. The problem is seen in different rooms with different amplitudes.
I thought about filtering to reduce the low frequency signal but my sensors are in the low frequency range so I damage the relevant signal.
Any suggestions how to deal with it?

Thanks.
 
Top