High precision constant current circuit - Page 1
Forum section: electronics / beginners

author: PascalNE
author_rank: Regular Contributor
timestamp: December 09, 2024, 10:31:36 pm
content: Hello, I'm currently designing a constant current source for use in a high precision DIY multimeter. I was just wondering what are common circuit designs for this purpose as there seems to be many designs out there but none I could find that were properly focused on high precision. I want the circuit to set the current based on a precision resistor (not an input voltage). I believe I wont need a BJT or MOSFet stage since the maximum current I want is 1mA (please correct me if I am wrong) I have a reference voltage of 5v available in the circuit (provided by a TI REF54)Ive had a look at other DIY projects likehttps://hackaday.io/project/174022-diy-6-digit-multimeterbut due to the hand drawn schematics I couldnt fully understand the circuit.Any help would be appreciated.Thank you, Pascal.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 09, 2024, 11:00:52 pm
content: You are right, that one could get away with just a JFET and can get away without an extra BJT for more current. The choice of JFET or MOSFET is not such a big difference. Modern MOSFETs can still be an issue with gate current from the protection part.One can look at the current source of the HP34401 or Keithley 2000.There are some details that can be solved different, with some pros and cons.Another point to decide is with the protection. Most now use groups of BJTs. The alternative is a high voltage MOSFET (e.g. used in the Keithley 2001).The available supply voltage and targeted voltage at the DUT can be relevant factor. E.g. the BJT protection, especially with more in series for higher voltage usually looses more voltage compared to a MOSFET protection.

author: Benta
author_rank: Super Contributor
timestamp: December 09, 2024, 11:09:07 pm
content: Quantify "precision", please.And what output voltage compliance do you need?

author: Analog Kid
author_rank: Super Contributor
timestamp: December 09, 2024, 11:09:50 pm
content: I'm also quite interested in learning more about constant-current sources.Let me throw this into the discussion,as a starting point only. (No claims that this is in any way a "high-precision" current source.) But I've been experimenting with this circuit for a project of mine, and it does have the virtue of beingsomewhatindependent of voltage:I copied the source circuit out of Horowitz & Hill, and modeled the sink circuit after it.I guess one question would be how do you define "high-precision"?

author: Benta
author_rank: Super Contributor
timestamp: December 09, 2024, 11:38:47 pm
content: The Horowitz-Hill circuit is simple, but very dangerous. I've used it often in different applications, but after running into trouble I finally found the issue.The problem is, that there's a heck of a lot of gain between the two transistos. Addiing in parasitics, you have an oscillator running anywhere between 20 and 500 MHz.It can be tamed using a base resistor, like in the attached schematic. Precision: no way.

author: Analog Kid
author_rank: Super Contributor
timestamp: December 09, 2024, 11:43:38 pm
content: OK, so forget that as any kind of precision source.One question, though: couldn't any oscillation be prevented by a bypass capacitor?On with the OP's question.

author: Benta
author_rank: Super Contributor
timestamp: December 09, 2024, 11:48:27 pm
content: Quote from: Analog Kid on December 09, 2024, 11:43:38 pmNo.

author: PascalNE
author_rank: Regular Contributor
timestamp: December 10, 2024, 12:02:31 am
content: Ideally 10-20ppm error (excluding things that can be easily calibrated away) Maximum compliance I havent fully decided definitely below 5v.

author: PascalNE
author_rank: Regular Contributor
timestamp: December 10, 2024, 12:05:09 am
content: Yes ill take a look at those datasheets. For some reason I assumed the simplest approach would be using a high precision opamp (due to low voltage and current requirements and greater simplicity)

author: Benta
author_rank: Super Contributor
timestamp: December 10, 2024, 12:11:44 am
content: Quote from: PascalNE on December 10, 2024, 12:02:31 amGood luck finding 0.001% resistors and other parts....

author: DimitriP
author_rank: Super Contributor
timestamp: December 10, 2024, 12:28:17 am
content: QuoteI stumbled on this just two days ago . It appears to be the basic circuit the 34401A is based on (minus the multi-resistor swithing) .https://electronics.stackexchange.com/questions/568340/current-source-using-op-amp-and-mosfet

author: Kleinstein
author_rank: Super Contributor
timestamp: December 10, 2024, 08:02:18 am
content: Quote from: DimitriP on December 10, 2024, 12:28:17 amThat is the basic circuit, but still without the protection and ideally some parts (e.g. RL element) to reduce the tendency ot oscillate with a highly inductive DUT.The difficulty is not finding low tolerance resistors - that is a part that is easy to calibrate out and include in the software side. The difficulty is more with the stability of the resistors and for 1 mA already the self heating effect of the resistor starts to become an issue. Range / resistor switching can add some leakage current, that can be an issue for smaller test currents. It is still only the drift of the leakage that is a real issue.

author: soldar
author_rank: Super Contributor
timestamp: December 10, 2024, 09:33:44 am
content: Quote from: Benta on December 10, 2024, 12:11:44 amNot only that; we're talking levels of precision that require temperature chamber and all sorts of complications.

author: PascalNE
author_rank: Regular Contributor
timestamp: December 10, 2024, 10:35:55 am
content: Yes although I'm only at an early stage in the design I've been planning to encapsulate the analogue board in a small temperature chamber. (which will be difficult but because i'm using mostly SMD components the footprint is only about 2*3cm) I'm also trying to use resistor networks wherever ratio stability is important like in the differential amplifier.But nearly all resistance tolerance issues should be able to be calibrated out. Maybe a more realistic target for the current source is 30-50ppm?

author: PascalNE
author_rank: Regular Contributor
timestamp: December 10, 2024, 11:01:20 am
content: Quote from: DimitriP on December 10, 2024, 12:28:17 amIve had a look at that it really is quite simple. Now to try and select components that won't affect precision too much. (unfortunately most of the components used in the 34401A are not made anymore)Switching is another issue I'm not sure how to solve I'll have to have a look at some other designs

author: Kleinstein
author_rank: Super Contributor
timestamp: December 10, 2024, 12:59:26 pm
content: As relatively simple solution one can use CMOS switches to choose resistors. Though not ideal from the leakage side a dual 1:4 mux (like DG408) could switch between 4 current setting resistors. The FETs are not that critical. A P MOSFETs as in the simple version could be a reasonable solution, as one does not need a voltage more positive than the resistors.The OP-amp for the 1st stage is not that critical as it can work with an easy 5 V - so something simple like OPA202 should be good enough.For the OP-amp for the final stage one has to compromise, as the best choice depends on the current range and voltage at the resistor.Naturally the lowest currents would be a bit less accurate as there are leakage currents that are temperature dependent.It is very hard to find a suitable resistor array to cover a large range. So different from the 34401 one may have to use matching for the first 2 resistors in the path and 4 precission resistors for the ranges.

author: David Hess
author_rank: Super Contributor
timestamp: December 10, 2024, 04:58:25 pm
content: Multimeters use a circuit called an "ohms converter" to generate the constant current for resistance measurement. The ohms converter circuit is inscrutable because it is designed to use the existing decade divider to generate the scaled current for different ranges. In older designs, it has its own reference rather than using the ADC reference. I do not know what modern designs do for the reference.You might look at old multimeter designs to see how the ohms converter works with the decade divider. You may need to redraw them to more easily see what is going on.

author: TimFox
author_rank: Super Contributor
timestamp: December 10, 2024, 05:03:22 pm
content: Quote from: Analog Kid on December 09, 2024, 11:43:38 pmThere's an old rule of thumb to prevent parasitic oscillations with a three-terminal device: make sure there's a resistor in series with each of two terminals (often called "stopper" resistor).

author: jaromir
author_rank: Unknown
timestamp: December 10, 2024, 11:30:49 pm
content: Quote from: PascalNE on December 09, 2024, 10:31:36 pmProject author here.Apart from the tea stained papers I redrawn the schematics into something more intelligible, but it looks like it got lost in the hackaday project page. I'll try to upload it to the project. The schematics are attached to this post, as well.Please note this project was an entry to the "Create something from scrap" themed contest. And here I literally built a DMM from mostly e-waste or decades old NOS parts. Therefore, some component choices may look somehow... unusual. Still, the current source is basically what HP did with the 34401A model.Oh and it was built five years ago, so the schematics has more of historic than educational value.

author: schmitt trigger
author_rank: Super Contributor
timestamp: December 10, 2024, 11:55:34 pm
content: I like your schematic. Well annotated, intelligently grouped circuit blocks, logical signal paths.

author: mawyatt
author_rank: Super Contributor
timestamp: December 11, 2024, 12:55:44 am
content: Here's another current source that the OP might find interesting. From and old EDN Design Idea article and Harrison's Current Sources & Voltage References book.https://www.edn.com/peaking-current-source-has-high-rejection/#google_vignetteBest

author: tggzzz
author_rank: Super Contributor
timestamp: December 11, 2024, 11:07:11 am
content: Quote from: schmitt trigger on December 10, 2024, 11:55:34 pmSeconded.I have used it as a good example, in the thread about the HaasoscopePro

author: PascalNE
author_rank: Regular Contributor
timestamp: December 11, 2024, 03:09:39 pm
content: Quote from: jaromir on December 10, 2024, 11:30:49 pmThanks very much for the download very good schematics. And Im sure its still releveant the multimeter world seems to move pretty slow.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 11, 2024, 04:07:03 pm
content: The old circuits still work and no real need to change. A few more modern OP-amps and switch chips could help if really needed.The old plan has a few odd choices for the OP-amps, as already written in the describtion. The voltage used at the current mirror is only 0.7 V, which is a bit on the low side, especially with a JFET amplifier. It tends to be a compromise anyway. The 1 mA may be OK with 0.7 V or 1 V, but with more a low noise, low dirft amplifier (BJT based or AZ type). The low currents could work better with more voltage and a JFET amplifier.One could consider replacing the p-chanel JFET with a p-MOSFET and this way get away without the zener and extra higher supply voltage.

author: Analog Kid
author_rank: Super Contributor
timestamp: December 12, 2024, 12:52:50 am
content: Quote from: mawyatt on December 11, 2024, 12:55:44 amSo that's your circuit and your article, yes? Impressive; I didn't realize we were among electronic royalty here.A couple question about your circuit if you (and the OP) don't mind:Your text explains everything except how to get the value of R3, which I assume is used to set the initial current (100μA), but we can't use R=E/I here because we don't know E.Also unclear in Eq. 4.67 is what the symboleImeans; is that the constanteraised to the power ofI(which I doubt) or something else?In Eq.4.68 ise-2the square root ofe? Because I don't get 0.13533 for that answer.Otherwise, very interesting.

author: mawyatt
author_rank: Super Contributor
timestamp: December 12, 2024, 02:01:46 am
content: Quote from: Analog Kid on December 12, 2024, 12:52:50 amYes it's our circuit altho no royalty here, for sure our retirement account doesn't indicate suchJust an old Nashville, TN redneck that has been fascinated by electricity/electronics since ~8That e^I should e^1 or ~2.718 and e^-2 is 1/(e^2) or ~0.135.R3 can be calculated to create the input current I as (V-Vbe)/I, so for V of 5 Volts @ 100ua that's ~43KΩ. The input current can vary over quite a range and the output current remains stable, so R3 is not critical.Best

author: David Hess
author_rank: Super Contributor
timestamp: December 13, 2024, 04:31:14 pm
content: I extracted and drew the essential details from the 4-1/2 digit DM501A ohms converter, shown below. The advantage of this circuit configuration is that it uses the already existing high impedance high accuracy decade divider in a multimeter to accurately scale the output current of the ohms converter.The circuit around the operational amplifier produces a high accuracy current mirror that supports multiple ratios of output current to input current. The output of the operational amplifier is buffered with a JFET source follower which is not shown.The series protection on the DM501A is a 1 kilohm PTC to support a claimed 250 volts peak on any ohms range, but I suspect this is insufficient and it would not actually survive. Older designs used a high voltage incandescent lamp. If cost is no object, then high voltage depletion mode MOSFETs could be used. I think the series protection could be moved to be in series with the non-inverting input to simplify things; this would avoid having to short out the series protection in voltage mode.The older DM501 uses the same circuit configuration but details differ. Among other things, JFET input operational amplifiers did not exist yet so it has an operational amplifier preceded by a JFET differential pair to get low input bias current. Its input protection seems better to me with a 33k resistor in series with the non-inverting input.

author: MathWizard
author_rank: Super Contributor
timestamp: December 13, 2024, 10:08:48 pm
content: Quote from: soldar on December 10, 2024, 09:33:44 amAnd the prices, especially for through hole ones. Anytime I've gone looking on Digikey for precision resistors, and low tempco ones, I get scared away by the prices. I need to finalize any designs 1st, and then just get what I need.I'm surprised more op-amp circuits don't use better resistors, especially in test gear like DMM's, PSUs, scopes.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 13, 2024, 10:46:13 pm
content: It is often hard to tell how good the SMD parts actually are. They can look essentially the same. In DMM there are still no that many really critical resistors and many of the critical ones are part of resistor arrays, in quite some units also custom or relatively special ones. Other resistors can be non critical or only critical for voltage rating and not precision.Good resistors can be quite expensive and not that many cicuits need the ultimate performance.In some cases it could even be worth to first look what parts are actually available and design around the values / of the shelf arrays.If standard arrays are a good fit, this can safe quite a bit.

author: TimFox
author_rank: Super Contributor
timestamp: December 13, 2024, 11:03:38 pm
content: If resistor arrays are available that match your requirements, they are a good choice since thermal matching is better than with discretes.Properly-built arrays can achieve better ratio matching than their absolute value tolerance, which is often all you need for a precision analog circuit.

author: prints-f-darkness
author_rank: Contributor
timestamp: December 14, 2024, 06:20:20 pm
content: Take a look at page 17 & page 13 of this lm317 datasheet (attached)also see page 8 of the LM317TG datasheet, I've built the circuit on page 8, it works (I was making a power supply at the time).

author: PascalNE
author_rank: Regular Contributor
timestamp: December 16, 2024, 09:37:35 pm
content: Hello, first off thank you all very much for your suggestions and responses! Ive been messing around a bit with the circuit from the HP 34401A in LTSPICE. And I have two questions.Firstly I tried the circuit using the OPA189 and it seemed to perform extremely well keeping a very stable 100ua or 1ma (I have attached a screenshot) no matter the load and no matter the values of the setting resistors (as long as the ratio was correct of course). I basically wasn't sure if this was realistic behaviour or if the SPICE model was incorrect as it was so different from the performance of other opamps and seemingly extremely ideal.My second question was if the OPA189 is not as ideal as it seems, is it possible to use a simulated result for the AD706 (like the one in the screenshot) as an "ideal value" if we know it to enough digits. So instead of using an "ideal" 100uA to calibrate out resistor error in the source we use 144.98.....uA or is the simulation too unrealistic for this.I apologise if the answer to either of these questions is obvious I am quite new to the hobby.Any help would be appreciated, Thank you.

author: prints-f-darkness
author_rank: Contributor
timestamp: December 18, 2024, 08:26:47 pm
content: Sorry, its me again, see page 13 of the attached PDF, it may help a little bit.EDIT:https://ultimateelectronicsbook.com/op-amp-voltage-reference/use the other half of the duel package opamp as vref.

author: Zero999
author_rank: Super Contributor
timestamp: December 18, 2024, 10:08:35 pm
content: Sorry those schematics are too fuzzy to read. Please post the .asc file.A couple of tips:Use the built-in op-amp symbol, rather than making your own. Insert component, , opamp2.You can paste the model into the schematic, so only one file is required. Download the model file, open it in a text editor, in LTSpice, click on SPICE directive and paste the contents of the file in there. Click Ok and place the text in clear part of the schematic.Right click on the opamp2 and change the text to AD706 or whatever is after the .SUBCKT statement in the model.Here's an example, showing a current sink, with the AD706 embedded into the file.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 18, 2024, 10:33:02 pm
content: The OPA189 is a good solution for the higher currents like 100 µA and 1 mA, but with it's relatively high current noise it is not ideal for the small currents like 1 µA or 10 µA. Chances are one would need a kind of compromise. The LTC2057 could be a reasonable choice, though not ideal for 1 µA. Other candidates could be OPA186, AD8638, OPA205, maybe OPA202 for the 1st step.How good the AZ OP-amps work with a high resistance can vary. The DS values for the current noise are not all correct - some are too good and just a lower limit calculated from the bias current.The simulation can be somewhat realistic, but how accurate the OP-amp modes are can vary. They usually don't inlcude an offset voltage and only a sample bias current, if at all. The main point for the simulation is not about the last few ppm, but more a check for the math and maybe the look at the stability (RL, capacitance) for stability with an inductive DUT.