Author Topic: Circuit to measure resistance  (Read 1803 times)

0 Members and 1 Guest are viewing this topic.

Offline steaky1212Topic starter

  • Regular Contributor
  • *
  • Posts: 97
  • Country: gb
    • Steaky - Sleep is overrated
Circuit to measure resistance
« on: May 17, 2017, 10:04:25 am »
Hi all,

So starting out, this looks like a really easy question, but I'm hitting a few stumbling blocks...

I have a UUT that has 8 circuits that I need to test the resistance of each circuit (from 5R to 700R) as well as check that no circuit is shorted to another or itself (one or two circuits are indeed shorts though).

Originally I looked into using a CD74HC4067 (16:1 analog switch) to switch between the circuits and use a constant voltage source with small sense resistor to measure the current. The CD74HC4067 have a max current limit of 20mA, so I included a 150R dummy load. Sp If you look from the rail voltage... RailVoltage-SenseResistor-SwitchA-Load-SwitchB-Dummy-0V.

However, my colleague walked by my desk and suggested a different method of using an LM317 as a constant current source (and pointed out ADG706 as an alternative switch). Assuming a 10bit ADC (as the micro I'm using has a 12bit but I'd lose 2 bits in noise probably), then I've got 3mV per bit. In order to measure the 700R I'd want to use a 2mA current, then I'd lose the low resistance range too. Is there a way to switch in another resistor to almost auto-range the resistance measurement, or would the constant voltage source be better?

I know if feels like I'm reinventing the wheel here given I could use a low cost DMM for about £5, but there are other factors at play.
Also, I prefer to have semi-artificial constraints of cost (£50 in singles) and size (70x40mm) that means that moving to an 16bit ADC etc might not be possible.

Any ideas?

Thanks,
Steaky
 

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 13119
Re: Circuit to measure resistance
« Reply #1 on: May 17, 2017, 10:29:59 am »
Check the LM317 datasheet - its minimum load current is 10mA so if you want 2mA you are fubared.    You've got a greater than two decade measurement range, so to get reasonable accuracy, you are definitely going to need range switching or a programmable gain amplifier.

I think I'd have a low-side and high side MOSFET to connect each circuit one at a time, with its own standard series resistor chosen so that when the circuit resistance is nominal, the ADC reading will be near 50%. 

There would also be a 10K pulldown on all circuits so you can detect shorts. Leave all the low-side MOSFETs off, Switch on one high-side MOSFET at a time. Unpowered non-shorted circuits would give a 0% ADC reading, any shorted circuit would read near 100%.

For the 5R circuit, I'd use a 100R series resistor and feed the ADC input through a x10 amplifier to avoid the need for ridiculous currents from the supply rail. You can either use an analog switch and a single ADC input or if you've got enough ADC inputs, connect each circuit to an individual one.  The test supply also needs to feed the ADC reference so alll measurements are ratiometric.
« Last Edit: May 17, 2017, 10:33:36 am by Ian.M »
 

Offline tszaboo

  • Super Contributor
  • ***
  • Posts: 7938
  • Country: nl
  • Current job: ATEX product design
Re: Circuit to measure resistance
« Reply #2 on: May 17, 2017, 10:30:18 am »
The LM317 cannot really be used as a constant current regulator in the few mA range. It is ok in the 100mA-1A range. An LM334 is a much better choice. If you want more accuracy, an opamp+resistor is probably the way to go.
You can easily switch the current source, if you power it from a logic gate, microcontroller GPIO pin, etc. Maybe you need a diode somewhere.
 

Offline danadak

  • Super Contributor
  • ***
  • Posts: 1875
  • Country: us
  • Reactor Operator SSN-583, Retired EE
Love Cypress PSOC, ATTiny, Bit Slice, OpAmps, Oscilloscopes, and Analog Gurus like Pease, Miller, Widlar, Dobkin, obsessed with being an engineer
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf