## Jul 09, 2018 - Nixie MultiMeter, Part 15

## Various Updates

### Multi-board Schematic

I found a nice write-up about how to use a single set of schematics to design a multi-board project in Altium, and by extension, CircuitStudio: https://resources.altium.com/pcb-design-blog/multi-board-design-projects-in-altium-designer . The key trick is to create one project which contains all of the schematics, and then create another project in the same directory for each board, but only add the schematics for that board to that project.

Setting this up for my project was pretty easy; the hardest part was assigning each schematic sheet to the right board.

### Resistance Measurement Circuit

The basic premise for measuring resistance is to apply a known current, and measure the resulting voltage. The ICL7103 reference design that I studied in part 2 re-uses the precision resistor ladder from the voltage divider in combination with an adjustable voltage source to generate the test current. The reference design doesn’t state the test current, but it looks like it was 100uA, generated by a voltage of 0.1V applied across a 1k resistor. The same voltage is applied across the precision resistor ladder, which generates a precise current through the device under test. Measuring the voltage across the device and dividing by the current gives the measured resistance.

The ADD3501 uses a similar principle, but a very different circuit. Instead of using a single op-amp, it uses two op-amps, once to develop the reference voltage, and another to drive the output. It drives the output through a discrete BJT instead of driving it directly, and uses a separate set of precision resistors instead of re-using the voltage divider ladder. This design uses the precision voltage reference, but since the precision voltage is applied across an adjustable resistor, it doesn’t seem like the precision of the voltage reference is very important; it just looks like it’s used as a stable voltage source.

My existing schematic has a precision resistor ladder for voltage measurements, similar to the other designs, but I’ve added some extra protection resistors to the back of the ladder in a way that at least 1M of resistance is always present between the input and the rest of the circuit, and the added resistance makes it difficult to use as part of the precision current source.

From Part 6, I wanted to have 100 Ohm, 1k, 10k, 100k, 1M and 10M resistance measurement ranges, and I have a ADC full-scale range of 10mV. Since I don’t need to to concurrent power measurements, I can potentially adjust the ADC gain for a different range. The low 10mV sensing voltage implies a lower applied current, so I’m going to run with it for now.

To start, a basic table of the test currents required for each resistance range. This is mostly a quick check that the test current is in the right ballpark. (I’ve added a few lower resistance ranges for good measure).

Resistance Range | Test Current | Resistance at 0.2V |
---|---|---|

0.1 Ohm | 100 mA | 2 Ohms |

1 Ohm | 10 mA | 20 Ohms |

10 Ohm | 1mA | 200 Ohms |

100 Ohm | 100 uA | 2k Ohms |

1k Ohm | 10uA | 20k Ohms |

10k Ohm | 1uA | 200k Ohms |

100k Ohm | 0.1uA | 2M Ohms |

1M Ohm | 10nA | 20M Ohms |

10M Ohm | 1nA | 200M Ohms |

That’s a lot of resistor values! I’d like to have most of that range, but that’s too many resistors and relays for my taste. I looked at using a current mirror to generate the current reference, but given the wide range of operating voltages and currents, I don’t think a current mirror is a good idea (and The Art of Electronics agrees).

If I can generate two voltage references (probably 0.1V and 1V), then I can use the same resistor to generate two test currents.

Resistance Range | Test Current | Resistance at 0.1V | Resistance at 1.0V |
---|---|---|---|

0.1 Ohm | 100 mA | 1 Ohms | 10 Ohms |

1 Ohm | 10 mA | 10 Ohms | 100 Ohms |

10 Ohm | 1mA | 100 Ohms | 1k Ohms |

100 Ohm | 100 uA | 1k Ohms | 10k Ohms |

1k Ohm | 10uA | 10k Ohms | 100k Ohms |

10k Ohm | 1uA | 100k Ohms | 1M Ohms |

100k Ohm | 0.1uA | 1M Ohms | 10M Ohms |

1M Ohm | 10nA | 10M Ohms | 100M Ohms |

10M Ohm | 1nA | 100M Ohms | 1G Ohm |

If I choose 10, 1k, 100k and 10M resistors, I can get 0.1, 1, 10, 100, 1k, 10k, 100k and 1M measurement ranges.

The LTC6078 has maximum source and sink currents of 5mA and 7mA respectively, so it won’t be able to generate the 10mA and 100mA currents needed for the 1 Ohm and 0.1 Ohm ranges by itself. If I want those ranges, I’ll need to use a different op-amp or a transistor to generate enough output current. I suspect this is why the ADD3501 design uses a BJT in the drive portion of the current measurement stage.

Since the virtual ground in my circuit is also driven by an LTC6078, I’ll need to update the virtual ground or find another way to sink the matching test current.

Section 4.3.1, subsection E provides a couple of suggestions for increasing the output drive current of an op-amp. The easy suggestions are the LT1010, BUF633 and BUF634 power boosters, which are just unity-gain amps with an output current capability of 200mA. The other suggestion is a BJT push-pull follower. This also suggests a third option: using more generic op-amps with high-current capability for the virtual ground and constant current source. I’m already using a dual op-amp IC for the virtual ground and current source; swapping it for a different part number isn’t much work (and it doesn’t have the same input leakage and offset requirements as the input buffer op-amps).

The only thing I’ll need to be careful with, regardless of what kind of op-amp I use, is the power dissipation in the virtual ground, the reference resistor, and the op-amp or transistor providing the constant current source. At 3.3V and 100mA, that’s 0.33W total (probably spread across several components). My general rule of thumb is that anything under 1W is within the thermal envelope of most IC, so it’s probably not enough to overheat anything, but the resulting heating should be taken into account along with the other tolerances on components.

Most of the op-amps that are able to source more current have a higher input offset. The input current leakage and voltage offset just needs to be low enough to avoid introducing additional error into the test voltage. For the 0.1V reference voltage, 1 lsb corresponds to 1/10000 * 0.1V = 10uV. At the 1M range, the input leakage current needs to be below 1/10000 * 10nA = 1pA. Based on previous specs, I suspect it will be quite tricky to find an op-amp that meets all of these criteria.

Instead, I can take advantage of the low leakage current of the buffer op-amp, and use the output from the buffer as the negative input to the current stage.

### 4 Wire Mode

For resistance measurements where the resitance of the wires may be a significant percentage of the test resistance, a 4-wire resistance test applies the test current with one set of leads, and uses separate test leads to sense the resulting voltage. There may be some voltage drop in the leads that apply the test current, but since the current in the test leads is nearly zero, there’s no voltage drop to affect the measurement.

### Precision Voltage/Current Source

The current source in the ICL7103 uses a JFET as as stable current source across a wide voltage range, and I’m intending to roughly duplicate this design, but with two output resitors to provide a switchable output voltage range. Since the output resitors are adjustable, the current source needs to be stable across the measurement voltage range and across temperature. Since the JFET or current source may have some internal heating and poor internal heat dissipation, it’s best to assume that it may be operating within spec but well above the ambient temperature range.

The voltage across the current source will probably be between 1.65V (virtual ground voltage) and the maximum input voltage of 10mV + 1.65V = 1.66V. Similarly, the output voltage of the current source op-amp will be 0.1V or 1.0V above the sense voltage, so the total op-amp voltage will be between 1.75V (0.1V + 1.65V) and 2.66V (1.0V + 1.65V + 10mV). Specifically, this means that the op-amp will need to operate within 0.6V of the high rail.

I could re-use the MMBF4117 that I’m using in the input protection circuit as the current source. According to the MMBF4117 Datasheet, the drain current at Vgs = 0 varies from 80uA to 60uA over a temperature range of -55C to 125C (0.2% / C). Similarly, the drain current varies from 52uA to 55uA over a Vds range of 1.0V to 2.0V. (5.7% / V or 0.006% / mV).

As an alternative, I could use an adjustable current source like the LM234. Over the same temperature range, the reference voltage varies from 48mV to 84mV (0.4% / C). According to the datasheet, the current doesn’t vary above about 1.0V for a resistor value of 68 Ohm and a current of 1mA. (This is obviously very good, but may also be a modest exaggeration by the manufacturer).

A third, possibly more accurate current source is the REF200, but the minimum compliance voltage is 2.5V. That’s too far above our minimum current source compliance voltage of 1.65V to be useful.

Given that the MMBF4117 is about $0.50 and the LM234 is $1.34 for similar performance, the MMBF4117 seems like the obvious choice.

### Trimmer Potentiometers

The minimum current through the MMBF4117 is 30uA. Rounding down to 20uA to give a bit of headroom, the maximum resitances required to generate 0.1V and 1.0V are 3.3k and 33k. (3.7k and 33k in parallel produce about 3.3k). I’d like to use a multi-turn potentiometer for both adjustments. On digikey, there aren’t any 3.7k or 33k multi-turn potentiometers, but a larger resitor would also be acceptable. Digikey has 4.7k, 5k, 10k, 47k and 50k, and choosing the 5k and 50k models gives me a bit of extra margin for variation in the JFET current.

Home