EEVblog Electronics Community Forum
Products => Test Equipment => Topic started by: forrestc on May 27, 2017, 01:30:53 pm
-
Before I go and build one I figured I'd ask if there is something I should be searching for which does this.
I'm looking for the equivalent of a digital potentiometer. I have some automatic test procedures where I need to vary the resistance across a pair of terminals.
Off the shelf digital pot ic's (that I've found) are relatively low voltage devices across the pot - I may end up with around 50V across the pot, and so a 5V one won't work.
I considered (and experimented with) a digital load set to constant resistance mode but there are some challenges there when there is very little current thorough the resistor - these are really designed for sinking current. And there seems to be various stability issues since the load is adjusting the effective resistance of the FET's based on current through and voltage across them.
I looked at various process calibrators (such as the fluke 725), but they all seem to top out at around 3-5K and aren't cheap.
I did find the fluke (and similar) multifunction calibrators. The older ones like a 5100B *may* work, but they're big and heavy and old enough that I would worry about their reliability without a refurbishment. The more modern ones are very expensive.
I'm almost at the point of building a decade box with a pile of resistors and relays instead of switches. There are a lot of things going for this option, with the main disadvantage being the fact I have to build it (I have lots of other projects I would rather build). I'm hoping that someone knows of something else I haven't looked at just because I don't know what to search for.
In an ideal world, I'd love to see something like 1% over the range of 1 ohm to 1Mohm. But I realize I don't live in an ideal world, so I'd accept something less than that - I definitely need this to go up into the 1K-100K range though since that is the area of interest for the current project. At the higher ranges (10K-100K) I may have up to 50V across this, so I need something which would survive that (1/2 or 1W).
Any ideas of something else I should look at before I go build me a suitable equivalent?
P.S. I just realized I hadn't searched for 'programmable decade box'. Seems like there's some options out there, but still fairly pricey for a couple dozen relays + resistors ($1.5K is the cheapest I found). So still looking...
-
you could build such an item ? 1% resistors in series ... and create ranges with small relays, and code something with an arduino ???
-
You might be able to mod an audio relay attenuator, there are quite a few designs available, usually controlled by a pic. I've seen an arduino design too that may be more easily hackable to what you need.
I've used several designs that give 64 x 1dB steps.
-
I took apart a relatively cheap stereo. It had a motorized pot for remote control. With a stereo pot, one would give position, the other resistance. These must be located on ebay. Recording studios used to have these motorized pots
-
oohh good one Seekonk never tough of this one, but the op want an 1% precision, maybe hacking one with an 1% pot ???
-
What frequency response is needed? If it isn't too high, perhaps a FET could be used an "electronic load".
-
A resistor is a device that meets the equation: R=U/I
If you want to have a variable R that can be controlled by an external signal (a voltage perhaps) then you can use a multiplying op-amp. Of course this is for low-ish powers if you want to drive that directly. With I2R above 100mW I'd recommend a power stage.
Anway, a multiplying opamp works more or less like an opamp with ln() converter on all inputs and ln-1() on output.
So:
ln(U) - ln(I) - ln(R) = 0
This is a summing amplifier that sums three signals.
If some device can make that happen at all times then it is indistinguishable from a resistor (at least for the circuit that is wired into it).
-
oohh good one Seekonk never tough of this one, but the op want an 1% precision, maybe hacking one with an 1% pot ???
You can't put 50V across a regular potentiometer.
If there's a limited number of fixed values then relays/MOSFETs + fixed resistors is easy.
If you need a fully programmable capability then how about a "Binary Resistance Box" with resistors that add up in powers of two and a MOSFET to bypass each one. Switch on the right combination of MOSFETs and you can get any value up to twice your maximum resistor -1.
(Has this ever been done? Should I patent my idea?)
-
You do automated test equipment ? Chances are you have some switching boxes, like keithley 7000s or hp 3488. (If not - get some!)
Just add a string of resistors and use a relay card to short out some of them if demanded, do measurements if it qualifies for your task... tadaa, programmable resistor without adding too many boxes or program lines.
-
You could use a BJT like a 2N3904 controlling the LED current of an LDR like an NSL-32SL2. The base voltage then comes from a function gen which of course can be remote controlled. You'll need to calibrate for R(Vb).
Or, should you happen to have one, a lateral power MOSFET, but these are hard to find and expensive when you do, so practical only if you happen to have some on hand. (If you buy them on ebay they're guaranteed to be fake.) Verticals will have too small of an ohmic region in terms of Vgs to be practical, maybe only a volt or two.
-
It is very difficult to get 1 Ohm with 1% precision. It is even more difficult to put 50V across it, which would require 2500W.
If you remove the low end from your specs and settle for 500 Ohm to 1 MOhm range, then it's only 12 resistors and 11 relays to get all the possible values in the range with 500 Ohm step.
-
It is very difficult to get 1 Ohm with 1% precision.
Depends what you mean by "get". If you mean "obtain" then no, it's not, you just have to know where to look. Just the other day I bought some 2 ohm 0.1% 0.5W 5 ppm/C resistors from Vishay from a range that includes a 1 ohm 0.1% part.
If on the other hand by "get" you mean "engineer", then yes. Just to begin with, at that level you have to specify where along the lead you are measuring the resistance. Most PCB traces have enough resistance that you have to take them into account at that level.
Case in point, those 2 ohm resistors mentioned above were to replace the lowest 2 values in a 0-99999 ohm resistance decade box that's a little bit special. It was made by Vishay in 1969 and originally contained 25 hermetically sealed Vishay HP202 resistors. The two lowest values had been blown by the previous owner and needed replacing. I lucked on someone with some stock of suitable, albeit inferior to the original, 2 ohm resistors in stock and I ended up using one 2 ohm and a pair of 2 ohm resistors in parallel as a 1 ohm resistor. The values of the original resistors clearly take the boxes switches and wiring into account, they have specified values of 1.9860 ohms and 0.9824 ohms. I now have to remember that if I use the lowest dial on the box I could be out by a few milliohms.
-
It is very difficult to get 1 Ohm with 1% precision. It is even more difficult to put 50V across it, which would require 2500W.
If you remove the low end from your specs and settle for 500 Ohm to 1 MOhm range, then it's only 12 resistors and 11 relays to get all the possible values in the range with 500 Ohm step.
Figure this is a good one for me to reply to and clarify my needs.
Just to dispel a couple of things I think I may have not clarified well: I don't need 50V survivability at the bottom end. What I do need is a box which can handle 50V at appropriate portions of the curve, say with a 100K resistor across the load.
The problem I am having with all of the active solutions (fet, etc) is generally that they are unidirectional (they don't work if you switch the leads), or don't support a wide enough range of voltages. Plus, the stability of some of these solutions are less than adequate. I'll take some time to review the suggestions in this thread to see if any of them lead me down a path which I haven't already considered, as often I find that I just simply missed a logical solution that somehow I discarded.
Generally, what I need would be met perfectly by a typical 1W 1% 'decade box'. You know, the type with lots of resistors, each being able to be shorted with a switch. With all the switches closed, you actually get close to zero ohms (effectively the aggregate resistance of all of the switches when closed, plus the internal wiring resistance). With all of them open, often you'll get on the order of 10M or so. The only problem with this is the lack of automatic control.
Which is what I am headed toward - load up a whole bunch of 1% 1W resistors across a whole bunch of relays, control the whole thing with a microcontroller. Where a whole bunch means something on the order of 28. (probably a few less, as I suspect I can actually just use powers of two all the way through, which means somewhere around 20.. for 1ohm to 1Mohm. ). Probably can calibrate the whole thing against my reference 7 1/2 digit DMM to help improve accuracy (i.e. use the lower value resistor(s) to trim the higher value resistors if needed)
My problem is that I just don't need another R&D project right now as I'm extremely busy with the projects I'm currently working on, so I was hoping something off the shelf and relatively inexpensive (definitely under $1K, although that is probably still too high) existed. At this point, I'll probably go ahead and spend the day or two it will take to get this put together, unless I find something else.
-
Generally, what I need would be met perfectly by a typical 1W 1% 'decade box'.
Which is what I am headed toward - load up a whole bunch of 1% 1W resistors across a whole bunch of relays, control the whole thing with a microcontroller. Where a whole bunch means something on the order of 28. (probably a few less, as I suspect I can actually just use powers of two all the way through, which means somewhere around 20.. for 1ohm to 1Mohm. ).
You won't be able to buy resistors with nominal values in the power of two. That is because these are sold as the N-th root of 10. Go, figure.
To get 1% match you need 96-th root of 10. At least E96. Otherwise there would be voids in resistance values.
Concluding, you need 6 decades of E96.
Or some wild switching board that adjusts that in parallel/series.
Even if you find some custom power-of-two resistor series (if you expect 20 of them to span 6 decades), how do you imagine rearranging them with relays?
Now it ispossible but if you consider the series of:
- 1R,2R,4R,8R,.....,524288R (20 powers of 2)
even when these are 1% nominal, there are huge voids within that series near bottom end. You want 2.5R? Get 2R and accept 20% error..
Anyway, pictures are welcome!
-
Why does it need to be bidirectional? Are we talking AC, or just that the current direction may change from time to time?
-
Another thought: is it okay if it takes a few seconds to set the resistance? Because you could take something like this:
http://www.tedss.com/2021013231 (http://www.tedss.com/2021013231)
and attach a worm-gear drive. Even if you hired somebody to custom build that... could probably be < $1k, right?
-
Generally, what I need would be met perfectly by a typical 1W 1% 'decade box'.
Which is what I am headed toward - load up a whole bunch of 1% 1W resistors across a whole bunch of relays, control the whole thing with a microcontroller. Where a whole bunch means something on the order of 28. (probably a few less, as I suspect I can actually just use powers of two all the way through, which means somewhere around 20.. for 1ohm to 1Mohm. ).
You won't be able to buy resistors with nominal values in the power of two. That is because these are sold as the N-th root of 10. Go, figure.
To get 1% match you need 96-th root of 10. At least E96. Otherwise there would be voids in resistance values.
Concluding, you need 6 decades of E96.
Or some wild switching board that adjusts that in parallel/series.
Even if you find some custom power-of-two resistor series (if you expect 20 of them to span 6 decades), how do you imagine rearranging them with relays?
Now it ispossible but if you consider the series of:
- 1R,2R,4R,8R,.....,524288R (20 powers of 2)
even when these are 1% nominal, there are huge voids within that series near bottom end. You want 2.5R? Get 2R and accept 20% error..
Anyway, pictures are welcome!
You can do this with E24 series resistors, 4 per decade with 4 SPST relays per decade. Simply connect 1, 2, 3 and 3 ohm resistors in series (or 10, 20 etc. etc) and then connect a SPST relay across each resistor to short it out if it's not in use. It should be obvious that any value in the range 0-9 ohms can be made with these combinations. Simply connect as many decades in series as you need, obviously increasing the resistor values by a factor of 10 each time. I'd suggest latching relays for all the obvious reasons (power consumption, induced currents etc.).
There is an electronic solution that could use a digital potentiometer chip that is very simple in principle - just use a variable gain amplifier, gain set by the digital pot, to multiply the voltage from a reference resistor to synthesize a resistor that is (1+gain) times the reference resistor. In practice to make that work it requires a floating supply relative to the circuitry that needs to 'see' the synthesized resistance, also needs an op amp with an output capability that meets your voltage and current requirements (which could both be high compared to typical op amp specifications) and needs an isolated SPI (or similar) interface to control the digital potentiometer. Those alone make it sound more impractical than good old relays. Also an 'electronics' solution would struggle to work well over, say, a 10,000:1 range (think "gain bandwidth product") whereas the relay based solution scales better.
-
You can do this with E24 series resistors, 4 per decade with 4 SPST relays per decade. Simply connect 1, 2, 3 and 3 ohm resistors in series (or 10, 20 etc. etc) and then connect a SPST relay across each resistor
Very interesting. 1,2,4 and there you stopped. Lets proceed: how do you plan to buy 2^19? That is 524288R. I am afraid power-of-two decade box cannot be made with 20 x E24 resistors. BTW, anyone wishes to count how many 1% E24 resistors are needed to match 2^19=524288R to within 1%??
Also E24 series resistors are about 24-th root of 10 apart. That is 10% of one value with respect to the next one (1R1/1R = 1.1). Not sure how do you expect to fill those voids to get 1% coverage.
Otoh, if the coverage can have voids of arbitrary size, why not two resistors: 1% 1R and 1% 1M, one relay and we have a variable resistor that covers 1R-1M range :-DD
It should be obvious that any value in the range 0-9 ohms can be made with these combinations. Simply connect as many decades in series as you need, obviously increasing the resistor values by a factor of 10 each time.
This means 4 binary steps over 6 decades = 24 relays at least. Sweet.
Mind in this idea there are still huge voids at lower end. For example between 1R and 2R there is a void like hell. 100% jump between adjacent values. Nowhere near 1%.
I would love to see that contraption. Pictures welcome. I seriously doubt this route is within 1k$ range but I'd love to prove wrong.
-
It is very difficult to get 1 Ohm with 1% precision.
Really?
http://www.ebay.com/itm/262880450911 (http://www.ebay.com/itm/262880450911)
Very interesting. 1,2,4 and there you stopped. Lets proceed: how do you plan to buy 2^19? That is 524288R.
You don't buy them, you start with 680k and use a file to 'adjust' them. :)
-
You don't buy them, you start with 680k and use a file to 'adjust' them. :)
Here on northern hemisphere filing down 680k resistor won't get you nowhere near 524288R. Doh, those Australians.. Is everything down there upside-down?
But I get your point - any resistance is obtainable, with any tolerance, with adequate funds and adequate patience.
-
Depends what you mean by "get".
By "get" I mean making sure that it is still within 1% of 1 Ohm after you account for all the wire resistances, relay resistances, fuses, lead wires to the DUT etc.
Very interesting. 1,2,4 and there you stopped. Lets proceed: how do you plan to buy 2^19? That is 524288R. I am afraid power-of-two decade box cannot be made with 20 x E24 resistors.
If you want the result to be within 1%, you only need the resistors to 1%, so anything having real resistance from 520k to 530k will do.
Even if you use several resistors to produce desired values by combining them, binary is still better than decades because it minimizes the number of relays.
-
You can do this with E24 series resistors, 4 per decade with 4 SPST relays per decade. Simply connect 1, 2, 3 and 3 ohm resistors in series (or 10, 20 etc. etc) and then connect a SPST relay across each resistor
Very interesting. 1,2,4 and there you stopped. Lets proceed: how do you plan to buy 2^19? That is 524288R. I am afraid power-of-two decade box cannot be made with 20 x E24 resistors. BTW, anyone wishes to count how many 1% E24 resistors are needed to match 2^19=524288R to within 1%??
Read that again: "Simply connect 1, 2, 3 and 3 ohm resistors in series" and I kept using the word "decades", at no time did I mention powers of 2. Note that 10, 20 and 30 are all standard E24 values and that E24 values are also E96 values so available in at least 1% precision and in practice in much, much greater precision.
1 = 1
2 = 2
1+2 = 3
1+3 = 4
2+3 = 5
3+3 = 6
1+3+3 = 7
2+3+3 = 8
1+2+3+3 = 9
Now multiply all those by 10 and do it again, and again...
Also E24 series resistors are about 24-th root of 10 apart. That is 10% of one value with respect to the next one (1R1/1R = 1.1). Not sure how do you expect to fill those voids to get 1% coverage.
Otoh, if the coverage can have voids of arbitrary size, why not two resistors: 1% 1R and 1% 1M, one relay and we have a variable resistor that covers 1R-1M range :-DD
It should be obvious that any value in the range 0-9 ohms can be made with these combinations. Simply connect as many decades in series as you need, obviously increasing the resistor values by a factor of 10 each time.
This means 4 binary steps over 6 decades = 24 relays at least. Sweet.
Mind in this idea there are still huge voids at lower end. For example between 1R and 2R there is a void like hell. 100% jump between adjacent values. Nowhere near 1%.
I would love to see that contraption. Pictures welcome. I seriously doubt this route is within 1k$ range but I'd love to prove wrong.
(https://www.eevblog.com/forum/metrology/teardown-coming-soon-vishay-model-1303-ohmic-standard/?action=dlattach;attach=225489;image)
It uses rotary switches rather than relays but operates on exactly the same principle and it's sitting not three feet away from me. Original factory spec was 0.005% across 5 decades; how close it is now I can't say as it's still more accurate that the most accurate meter I own (a 200,000 count Keithley 197) but it hasn't drifted much since it was made in 1969.
Approximate cost to reproduce with 6 decades with 0.1% through hole 15ppm resistors (TE connectivity R series 1/4W @£0.40 each) 4x6x0.4 = £9.60, call it a tenner. Twenty four dual coil latching relays at ~£4.00 each, call it £100. A board, call it a tenner. Six x TPIC6595 8 bit open drain shift registers to drive the relays @£2.50 each, £15. A handful of catch diodes and the total comes to around £140. Say £200 once it's in a box with some connectors and your favourite cheap micro dev. board to drive the whole thing.
If one wants total overkill, go to Vishay for some S102 0.005% 2ppm/C resistors at ~£20 each and the total would be closer to £600-700.
-
Even if you use several resistors to produce desired values by combining them, binary is still better than decades because it minimizes the number of relays.
A 0-999999 ohm range in binary will take you 20 relays and 20 hard to source resistors and 2 1/2 octal relay drivers (or 5 if you use dual coil relays). In decades it will take another 4 relays and 24 easy to source resistors. Sometimes counting on your fingers or toes is the easier engineering option.
-
A 0-999999 ohm range in binary will take you 20 relays and 20 hard to source resistors and 2 1/2 octal relay drivers (or 5 if you use dual coil relays). In decades it will take another 4 relays and 24 easy to source resistors. Sometimes counting on your fingers or toes is the easier engineering option.
Not really that hard to source. For example, DigiKey has 73 different part numbers in stock, any of which would be suitable for the 524k resistor being discussed.
https://www.digikey.com/products/en/resistors/chip-resistor-surface-mount/52?k=&pkeyword=&pv1=586&FV=ffe00034&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=25 (https://www.digikey.com/products/en/resistors/chip-resistor-surface-mount/52?k=&pkeyword=&pv1=586&FV=ffe00034&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=25)
You can even get picky about what to choose.
-
A 0-999999 ohm range in binary will take you 20 relays and 20 hard to source resistors and 2 1/2 octal relay drivers (or 5 if you use dual coil relays). In decades it will take another 4 relays and 24 easy to source resistors. Sometimes counting on your fingers or toes is the easier engineering option.
Not really that hard to source. For example, DigiKey has 73 different part numbers in stock, any of which would be suitable for the 524k resistor being discussed.
https://www.digikey.com/products/en/resistors/chip-resistor-surface-mount/52?k=&pkeyword=&pv1=586&FV=ffe00034&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=25 (https://www.digikey.com/products/en/resistors/chip-resistor-surface-mount/52?k=&pkeyword=&pv1=586&FV=ffe00034&mnonly=0&newproducts=0&ColumnSort=0&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=25)
You can even get picky about what to choose.
That's one value, you need the whole 2n series and have to put up with roughly tolerancing to hit values like 4096 (nearest E96 402 or 412), 8192 (nearest E96 806 or 825) to some nominal accuracy, just as you've done with 523k for 524.288k. That's going to throw any idea of linearity out of the window. Whereas if you stick with decades you don't have to do any fudging, you keep linearity and you get to choose a straightforward tolerance from the standard ranges available, 1% 0.1%, 0.05% and so on to as arbitrary a level of accuracy as your wallet will allow.
-
That's one value, you need the whole 2n series and have to put up with roughly tolerancing to hit values like 4096 (nearest E96 402 or 412), 8192 (nearest E96 806 or 825) to some nominal accuracy,
So, you do it with 2 resistors when you can't do it with ones. Resistors are small and cheap compared to relays, not to mention driving circuits.
just as you've done with 523k for 524.288k. That's going to throw any idea of linearity out of the window.
Resistors are not exactly nominal values. They have tolerances. If you had 1% resistor with 524.288, the actual resistance could be way below 523 (or above 526 for that matter). The difference is 0.24%. Doesn't really matter if resistor tolerances are 1% as OP wants.
If you want better accuracy, you can always add compensating resistors (e.g. 523k + 1.29k) to get closer to the value that you want. The compensating resistors don't even need to be precise. Even a dozen of extra resistors is still better than 4 extra relays.
Whereas if you stick with decades you don't have to do any fudging, you keep linearity and you get to choose a straightforward tolerance from the standard ranges available, 1% 0.1%, 0.05% and so on to as arbitrary a level of accuracy as your wallet will allow.
Accuracy-wise, it's exact the same properties as with binary. Linearity error depends on the tolerance of the resistors you use. 1% resistors will yield approximately 1% errors. 0.1% resistors will yield approximately 0.1% errors. I don't see any difference here.
-
How about this? Instead of having something that you set up with some values and hope it will be accurate, use a feedback loop. For example a motorized pot (maybe several one in ranges) and you set it up while measuring the value. Depending on accuracy requirement, you could use an Arduino or a bench meter via gpib. Once set, a relay disconnects the meaduring device and connects your test setup.
This takes some setup time, of course, but can be fully automated.
-
Accuracy-wise, it's exact the same properties as with binary. Linearity error depends on the tolerance of the resistors you use. 1% resistors will yield approximately 1% errors. 0.1% resistors will yield approximately 0.1% errors. I don't see any difference here.
No, it's not. A decade scheme doesn't need a 4096+/-1% resistor that gets implemented as a 4020+/-1% or 4120+/-1%, it needs a 4000 that gets implemented as a 4000+/-1%. The decade option has 1% error and at that point my error analysis is complete and I can go for a beer. The 'pick the nearest to 2n' scheme has, for 4096, -3% to +1.6% error for that single resistor, and you're stuck at your desk with another 19 resistors left to do the error analysis for, or work out a series/parallel combination that will keep the error to 1%, while I'm in the pub. You'll spend 1/2 a day working everything out (at whatever marginal cost your time has), I'll spend < £20 on four more relays and resistors.
-
No, it's not. A decade scheme doesn't need a 4096+/-1% resistor that gets implemented as a 4020+/-1% or 4120+/-1%, it needs a 4000 that gets implemented as a 4000+/-1%. The decade option has 1% error and at that point my error analysis is complete and I can go for a beer. The 'pick the nearest to 2n' scheme has, for 4096, -3% to +1.6% error for that single resistor, and you're stuck at your desk with another 19 resistors left to do the error analysis for, or work out a series/parallel combination that will keep the error to 1%, while I'm in the pub. You'll spend 1/2 a day working everything out (at whatever marginal cost your time has), I'll spend < £20 on four more relays and resistors.
Of course, if it takes half a day to figure out that 4096 = 4020 + 76, it is better to use more relays.
-
No, it's not. A decade scheme doesn't need a 4096+/-1% resistor that gets implemented as a 4020+/-1% or 4120+/-1%, it needs a 4000 that gets implemented as a 4000+/-1%. The decade option has 1% error and at that point my error analysis is complete and I can go for a beer. The 'pick the nearest to 2n' scheme has, for 4096, -3% to +1.6% error for that single resistor, and you're stuck at your desk with another 19 resistors left to do the error analysis for, or work out a series/parallel combination that will keep the error to 1%, while I'm in the pub. You'll spend 1/2 a day working everything out (at whatever marginal cost your time has), I'll spend < £20 on four more relays and resistors.
Of course, if it takes half a day to figure out that 4096 = 4020 + 76, it is better to use more relays.
Given that 76 isn't a standard value, yes. Because if you're doing the job properly you have to look up and check standard values, then you have to check they're available in the tolerance, tempco, aging and power you require. All that time adds up. An actual complete, accurate, engineered solution always takes time. It's not as simple as reaching for a calculator and doing some subtraction.
We're back to my original argument. A decade solution makes the engineering trade off between using standard single, easily sourced, off the shelf resistors with 4 extra relays, drivers and resistors with little NRE cost against using a mixed selection of resistors with four fewer relays, drivers and resistors that will require extra time to calculate, source and confirm the solution against the error budget. If you're making a few dozen you can afford the NRE and your approach is probably overall cheaper, but we're talking about a one off and in that case I contend that my trade off with less NRE cost wins.
-
How about this? Instead of having something that you set up with some values and hope it will be accurate, use a feedback loop. For example a motorized pot (maybe several one in ranges) and you set it up while measuring the value. Depending on accuracy requirement, you could use an Arduino or a bench meter via gpib. Once set, a relay disconnects the meaduring device and connects your test setup.
This takes some setup time, of course, but can be fully automated.
Yeah, that's what I'm saying. All of this switching with huge (by modern standards) arrays of relays is a brute force approach.
-
How about this? Instead of having something that you set up with some values and hope it will be accurate, use a feedback loop. For example a motorized pot (maybe several one in ranges) and you set it up while measuring the value. Depending on accuracy requirement, you could use an Arduino or a bench meter via gpib. Once set, a relay disconnects the meaduring device and connects your test setup.
How will you measure the value? Normally these resistors are inserted in a circuit.
-
How about this? Instead of having something that you set up with some values and hope it will be accurate, use a feedback loop. For example a motorized pot (maybe several one in ranges) and you set it up while measuring the value. Depending on accuracy requirement, you could use an Arduino or a bench meter via gpib. Once set, a relay disconnects the meaduring device and connects your test setup.
How will you measure the value? Normally these resistors are inserted in a circuit.
He said it's disconnected from circuit via relay.
-
How about this? Instead of having something that you set up with some values and hope it will be accurate, use a feedback loop. For example a motorized pot (maybe several one in ranges) and you set it up while measuring the value. Depending on accuracy requirement, you could use an Arduino or a bench meter via gpib. Once set, a relay disconnects the meaduring device and connects your test setup.
How will you measure the value? Normally these resistors are inserted in a circuit.
He said it's disconnected from circuit via relay.
I guess you could disconnect it from the circuit every time you change the value, but:
a) That might harm other components in the circuit (depending on the circuit)
b) He said "I may end up with around 50V across the pot" so a simple pot won't do (it will burn if you set it 'wrong').
-
How about this? Instead of having something that you set up with some values and hope it will be accurate, use a feedback loop. For example a motorized pot (maybe several one in ranges) and you set it up while measuring the value. Depending on accuracy requirement, you could use an Arduino or a bench meter via gpib. Once set, a relay disconnects the meaduring device and connects your test setup.
How will you measure the value? Normally these resistors are inserted in a circuit.
He said it's disconnected from circuit via relay.
I guess you could disconnect it from the circuit every time you change the value, but:
a) That might harm other components in the circuit (depending on the circuit)
b) He said "I may end up with around 50V across the pot" so a simple pot won't do (it will burn if you set it 'wrong').
Yes, these are requirements, that we do not know about. Open circuit may be avoided by having a fixed resistor switched in, while taking measurement on the pot. If you want really complex setup, there may be two pots on the same shaft, one into the circuit, and one to take measurements. Obviously, with appropriate calibration tables (even those could be created automatically).
For high voltage, one would need to sense the voltage and disconnect if required. Just like some scopes do if you overload the 50ohms termination in the input.
So there are various ways to solve problems, but until the requirements are clear, it's just a brainstorming session.
-
Maybe you could have a dual pot, or two pots attached to the same motor.
One channel is in-circuit, the other is used for the control feedback loop.
If it's all nicely calibrated then there's no reason it won't work well enough.
There's still the problem of whether a pot is a good solution though, given their power limitations, etc. It doesn't take much power to burn a permanent spot on the track.
-
How about this? Instead of having something that you set up with some values and hope it will be accurate
What do you mean 'hope'?
Do we not own enough multimeters? :popcorn:
-
@Fungus, There are adjustable power resistors. I linked to one earlier in the thread.
-
Very interesting. 1,2,4 and there you stopped. Lets proceed: how do you plan to buy 2^19? That is 524288R. I am afraid power-of-two decade box cannot be made with 20 x E24 resistors. BTW, anyone wishes to count how many 1% E24 resistors are needed to match 2^19=524288R to within 1%??
Since we are dealing with software here, and can calibrate, there is a very easy way to make a "almost power of two" decade box.
Start with a 1 ohm 1% resistor resistor. This resistor is going to be at minimum 0.99 ohms.
Double it. 1.98 ohms
Look at the E24 range, pick the largest value which will never be above that value. in this case, we're talking a 1.8 ohm resistor, maximum value +1 % of 1.818 ohms.
Now repeat. A 1.8 ohm resisistor has a minimum value of 1.782. Double it you get 3.564. Look at the E24 resistors... you get 3.3 ohms (max value 3.333).
Repeat until you reach 10Mohm....
I'm going to roughly choose the following values, there may be one or two which is not accurately calculated based on above - i.e. I may need to reduce one and the successive value.
1, 1.8, 3.3, 6.2, 12, 22, 43, 82, 160, 300, 560, 1K1, 2K0, 3K9, 7K5, 13K, 24K, 47K, 91K, 180K, 330K, 620K, 1.2M, 2.2M, 4.3M, 8.2M.
Wire them up. Measure each one individually in circuit. You'll get the exact value, calibrated, of each. Let's just assume they're all perfect for the next part.
Let's say you need a 132K245 ohm resistor, you enable the following resistors:
91K, 24K, 13K, 3K9, 300, 43, 1.8. For a total of 132,244.8 Ohms.
So: decade box to just under 16.4M with 26 resistors and relays. Note that because of it being software driven, it doesn't matter the exact resistance values, as long as you have covered the entire range without any holes not able to be 'covered' by the lower value resistors.
I will need to do some math as to how tempco/drift does in relation to this.
-
Let's say you need a 132K245 ohm resistor, you enable the following resistors:
91K, 24K, 13K, 3K9, 300, 43, 1.8. For a total of 132,244.8 Ohms..
The temperature changes 0.2 degrees, your 91K resistor drifts 20ppm so your 1.8 Ohm resistor is suddenly pointless. And don't get me started with things, like relay contact resistance and Thermal EMF because of relay self heating.
I would just design a relay card with turret standoffs for resistors, 4 relay per card, maybe a 5th one to bypass the entire card. 4 relays are switching 1R 2R 4R 3R in series, or bypassed SPDT. Each card is a decade. Place card in series. controlled by a I2C GPIO extender.
Probably it will be in the end slightly more expensive than buying the test gear.
-
The temperature changes 0.2 degrees, your 91K resistor drifts 20ppm so your 1.8 Ohm resistor is suddenly pointless.
OP is interested in relative (%), not absolute (Ohm) errors. Therefore when you move to 100K range all the small resistors become pointless. This will happen no matter how you arrange your resistors.
If you want 1 Ohm accuracy across the range (so that the small resistors get pointless), then the biggest problem is that you would need 0.0005% 200K resistors.
In the realm of reasonable, IMHO the biggest problem is to figure out power ratings for the low end resistors, or possibly some sort of protective measures against applying too much voltage.
-
If you want 1 Ohm accuracy across the range (so that the small resistors get pointless), then the biggest problem is that you would need 0.0005% 200K resistors.
You need 0.0005% 200k resistors OR feedback OR a half-intelligent controller + one-off characterization.
-
The temperature changes 0.2 degrees, your 91K resistor drifts 20ppm so your 1.8 Ohm resistor is suddenly pointless. And don't get me started with things, like relay contact resistance and Thermal EMF because of relay self heating.
I'm really only worried about 1% (or less) across the range. Admittedly my example was piss-poor to illustrate this. And I agree about the thermal issues.
So the bottom end (as you point out) really will be useless at the higher ranges..... even with a decade scheme.
One trick I have learned over the years though is that something like this can be calibrated on the fly if you really really care about the exact value. Use your relay matrix to connect it to your DMM, measure the value, and adjust to be exactly where you want it based on the DMM, then switch it into the test circuit.
-
The temperature changes 0.2 degrees, your 91K resistor drifts 20ppm so your 1.8 Ohm resistor is suddenly pointless. And don't get me started with things, like relay contact resistance and Thermal EMF because of relay self heating.
I'm really only worried about 1% (or less) across the range. Admittedly my example was piss-poor to illustrate this. And I agree about the thermal issues.
So the bottom end (as you point out) really will be useless at the higher ranges..... even with a decade scheme.
One trick I have learned over the years though is that something like this can be calibrated on the fly if you really really care about the exact value. Use your relay matrix to connect it to your DMM, measure the value, and adjust to be exactly where you want it based on the DMM, then switch it into the test circuit.
That will work with a current source, or a zero source resistance voltage source. With the resistor string, as soon as you connect a different voltage to it (different from DMM test current), the resistors will start to self heat, and you have a different resistance there.
-
The way this is done in e.g. Transmille calibration instruments is to put resistors in a switchable array. If you want high precision, then you'd want to select close values then trim with pots across each base resistor. This approach looks simple on paper, but quickly turns problematic and expensive.
An alternative if you intend this for DC applications would be an electronic load. If you characterise it then you should be able to dial in very accurate settings, and they are designed to sink power.
-
What's really needed is feedback on voltage and current so it can continuously recalibrate itself as it drifts.
-
If only 1% precision is needed then the temperature drift may not be a significant problem.
At the high end the heating will be minimal.
It may become a problem at the low end if voltages are relatively high, but it depends on what are voltage/current requirements for the low end.
-
It may become a problem at the low end if voltages are relatively high, but it depends on what are voltage/current requirements for the low end.
Yep. It may not actually be a problem in real life.
Me? I'd put in a current sensor to light up a warning LED and disconnect the box if it detects dangerous levels of current.
(or at least put in a fuse)
-
That will work with a current source, or a zero source resistance voltage source. With the resistor string, as soon as you connect a different voltage to it (different from DMM test current), the resistors will start to self heat, and you have a different resistance there.
Let me see if I can re-state my thinking here:
I need 1% accuracy. Ignore setting errors at the low end... We're talking around 10K here...
If my box is make up of 50PPM/C resistors (widely available, not that expensive), once I 'calibrate it', even if I self-heat by 100*C (not even close to likely), I'm only at 5000PPM, which is still 0.5%. Unless I don't understand the math here...
-
That will work with a current source, or a zero source resistance voltage source. With the resistor string, as soon as you connect a different voltage to it (different from DMM test current), the resistors will start to self heat, and you have a different resistance there.
Let me see if I can re-state my thinking here:
I need 1% accuracy. Ignore setting errors at the low end... We're talking around 10K here...
If my box is make up of 50PPM/C resistors (widely available, not that expensive), once I 'calibrate it', even if I self-heat by 100*C (not even close to likely), I'm only at 5000PPM, which is still 0.5%. Unless I don't understand the math here...
I was pointing out the errors in others calculations. They were making assumptions that you can easily create lots of digits accuracy by online calibrations and using lots of ranges.
You are absolutely right it is off topic for 1% accuracy.
-
Very interesting. 1,2,4 and there you stopped. Lets proceed: how do you plan to buy 2^19? That is 524288R. I am afraid power-of-two decade box cannot be made with 20 x E24 resistors. BTW, anyone wishes to count how many 1% E24 resistors are needed to match 2^19=524288R to within 1%??
Since we are dealing with software here, and can calibrate, there is a very easy way to make a "almost power of two" decade box.
(..)
1, 1.8, 3.3, 6.2, 12, 22, 43, 82, 160, 300, 560, 1K1, 2K0, 3K9, 7K5, 13K, 24K, 47K, 91K, 180K, 330K, 620K, 1.2M, 2.2M, 4.3M, 8.2M.
Ok, so how do you plan to set 1R4 to 1% with those values?
No, I do not get it. Schematics please.
As mentioned earlier, with arbitrary size of voids the task is trivial: 1R + 1M, one relay and whole 1R:1M range is "covered", to 1%, as long as you are limited in selection to those several values.
So could you narrow down your requirements, the goal is to:
a) cover whole range, with any value from the range, to 1%,
b) cover selected 123 values to 1%,
c) cover unspecified count of randomly distributed values but not using more than 26 relays and 34 m of wire,
d) use up to 26 relays and E24 1% resistors ?
...
z) Use up to 26 of E24 1% resistors and unspecified count of relays?
??
-
I have a JRL automatic resistance standard that does the 1 Ohm to 1 Meg at .01%. However it may be overkill. Fluke made a similar box. There are occasionally boards from instruments on ebay with relays and resistors.
One approach I have seen for calibration is essentially a dynamic load with voltage and current sensors that adjusts to the target equivalent resistance. http://exodus.poly.edu/~kurt/manuals/manuals/Other/VALHALLA%202724A%20Operation.pdf (http://exodus.poly.edu/~kurt/manuals/manuals/Other/VALHALLA%202724A%20Operation.pdf)
For calibration you do one approach, for tuning circuits you need to know how the circuit reacts to parasitics before to try or it may all be a waste of time.
-
1, 1.8, 3.3, 6.2, 12, 22, 43, 82, 160, 300, 560, 1K1, 2K0, 3K9, 7K5, 13K, 24K, 47K, 91K, 180K, 330K, 620K, 1.2M, 2.2M, 4.3M, 8.2M.
Ok, so how do you plan to set 1R4 to 1% with those values?
I don't think it was ever claimed that that scale was 1%, it's just a reasonable scale that could be made with standard values.
(...with 2-3% accuracy? Something like that, I haven't looked at all combinations)
If you want exact values you could do it with standard resistors and a file for manual adjustment.
(is that an advantage? Why do you need whole numbers? Maybe your circuit really needs 13.8 Ohms, not 14 :popcorn: )
-
https://www.eevblog.com/forum/blog/eevblog-544-fluke-5450a-resistance-calibrator-teardown/msg323986/#msg323986 (https://www.eevblog.com/forum/blog/eevblog-544-fluke-5450a-resistance-calibrator-teardown/msg323986/#msg323986)
:-//
-
A lot of this thread is dedicated to making something that I'll just call a "precision resistor substitution box". In other words, what we all imagine but at high precision. However, I think the OP has stumbled onto an interesting question, namely:
Why aren't there dirt cheap programmable resistor substitution boxes? Forget the requirement of being 0.1% or even 1% precision for the moment; surely there is a technique (as just mentioned above) where you could cheaply generate the target resistences in a consistent way without resorting to mechanical substitution (e.g. rotary switches, DIP switches, jumper tabs).
The cheapest resistor substitution device (https://www.tindie.com/products/gerrysweeney/seven-decade-prog-resistor-1r-9999999r-1-500mw/?pt=full_prod_search) (there's also a capacitor version) is the one Gerry Sweeney made. I think the other ones with rotary dials are probably nicer in the hand, and look better, and perhaps are easier to use.
However, you can simply make the argument that a programmable one would be orders of magnitude easier to use (no removing jumpers and putting them back). You could also realistically do resistance sweeps to search for the optimal point you are presumably trying to find...
Anyone know about this kind of thing?
-
I think IET Labs PRS series are ok. GPIB interface or local control.
http://www.ebay.com/itm/iET-Labs-PRS-201-1EEE-RM-Programmable-Resistance-Substituter-Used-Working-/382061957304?hash=item58f4aad0b8:g:0kYAAOSwuMZZAmJw (http://www.ebay.com/itm/iET-Labs-PRS-201-1EEE-RM-Programmable-Resistance-Substituter-Used-Working-/382061957304?hash=item58f4aad0b8:g:0kYAAOSwuMZZAmJw)
-
You could also realistically do resistance sweeps to search for the optimal point you are presumably trying to find...
Search for a given current. That would be fun.
Or manually dial a voltage or current on the LCD display then see a readout of the resistance needed to obtain that.
-
You could also realistically do resistance sweeps to search for the optimal point you are presumably trying to find...
Search for a given current. That would be fun.
Or manually dial a voltage or current on the LCD display then see a readout of the resistance needed to obtain that.
I am not very creative with circuit design yet, but I sort of see two options that both suck:
In one, you would manage the mess of using banks of solid state relays to connect and disconnect various SMD resistors.
In another, you would use some active device. But what? (digital potentiometers seem to be out; you need to be able to handle maybe a few hundred volts; you need better precision then 20%)
I'm not sure studying e.g. the aforementioned IET PRS will yield insight into the kind of small cheap thing one would want to build.
-
surely there is a technique (as just mentioned above) where you could cheaply generate the target resistences in a consistent way without resorting to mechanical substitution (e.g. rotary switches, DIP switches, jumper tabs).
Sure is, but it needs calibration for the range you want to use and its not particularly stable over temperature (both are solvable):
https://en.wikipedia.org/wiki/Resistive_opto-isolator
Otherwise called a vactrol.
-
Even the optoisolators have significant drawbacks. They change with light and temperature and they are not all that predictable with some hysteresis changing depending on going up or down.
A scheme using FET's would not work predictably for higher power and would most likely need an opamp and some other tricks to get a known resistance. A resistor array would need mechanical relays for the lowest values and FET's could work for higher values. The FET's could be controlled from PV optocouplers. It would be a lot of stuff to solve a problem.
Another option would be a 2 gang 10 turn pot + motor to drive using the second pot to servo to the desired value. Still a lot of stuff and only 3 digits. I have used pots to tweak analog circuits in design. Turn the knob until you get the desired result and then measure.
-
1, 1.8, 3.3, 6.2, 12, 22, 43, 82, 160, 300, 560, 1K1, 2K0, 3K9, 7K5, 13K, 24K, 47K, 91K, 180K, 330K, 620K, 1.2M, 2.2M, 4.3M, 8.2M.
Ok, so how do you plan to set 1R4 to 1% with those values?
I don't. Let me see if I can clarify:
With the arrangement above (with a switchable relay 'shorting' each resistor when contacts are closed), you can set the box to any ohm value +- appx 1ohm. All the resistors are in series, so with all of the relays open, you get the sum of all of the resistor values. With all of the resistors closed, you get whatever the contact resistance of all of the relays are. So, you effectively you can set the box to a nominal value from something around 1ohm, to something over 10Mohm.
This is not the accuracy of the box - it's the resolution, or in ADC terms, step size. You can't get 1R4, but you can definitely set to a value you believe is something like 23.837K+-1Ohm. To do this, you need the actual measured resistance of the box when all relays are closed, and then the resistance delta for each relay when opened individually - which will be close to the value of the resistor in parallel with the contact. Once you have those values, writing a bit of code to adjust the relays appropriately to make any value by opening the correct relays is rather trivial.
Which gets us back to the accuracy question.
Below about 100 ohms you're limited by the appx 1 ohm step size.
Above 100 ohms you're limited by drift effects of the resistors+relay+copper+everything else. Trying to set a box made from 50ppm resistors to something like 10,000,000 ohms and expecting it to be +- 1 ohm isn't likely, since 1 degree of temperature drift will net you 500 ohms of change. But expecting 1% at the top end of the scale is more than reasonable. Probably more like 0.1% (but don't quote me on that as it would need to be characterized/simulated).
In relation to the goal, it's mostly these two:
a) cover whole range, with any value from the range, to 1%,
c) cover unspecified count of randomly distributed values but not using more than 26 relays and 34 m of wire,
With the caveat of the low end of the scale is going to be swamped by the step size, and the number of relays+resistors is still to be determined.
or an additional option: Buy something off the shelf which simulates a real resistor.
-
I think IET Labs PRS series are ok. GPIB interface or local control.
http://www.ebay.com/itm/iET-Labs-PRS-201-1EEE-RM-Programmable-Resistance-Substituter-Used-Working-/382061957304?hash=item58f4aad0b8:g:0kYAAOSwuMZZAmJw (http://www.ebay.com/itm/iET-Labs-PRS-201-1EEE-RM-Programmable-Resistance-Substituter-Used-Working-/382061957304?hash=item58f4aad0b8:g:0kYAAOSwuMZZAmJw)
Wow! THANK YOU!!!!!
How the heck did I not try "programmable resistance" in my search? I know I searched for "programmable decade" and a dozen other options such as "resistance source". But a ebay search for 'programmable resistance' yields very interesting results.
This appears to be exactly what I'm looking for....
-
I think IET Labs PRS series are ok. GPIB interface or local control.
http://www.ebay.com/itm/iET-Labs-PRS-201-1EEE-RM-Programmable-Resistance-Substituter-Used-Working-/382061957304?hash=item58f4aad0b8:g:0kYAAOSwuMZZAmJw (http://www.ebay.com/itm/iET-Labs-PRS-201-1EEE-RM-Programmable-Resistance-Substituter-Used-Working-/382061957304?hash=item58f4aad0b8:g:0kYAAOSwuMZZAmJw)
Wow! THANK YOU!!!!!
How the heck did I not try "programmable resistance" in my search? I know I searched for "programmable decade" and a dozen other options such as "resistance source". But a ebay search for 'programmable resistance' yields very interesting results.
This appears to be exactly what I'm looking for....
I don't remember you clarifying the reversibility requirement, but that thing doesn't look like it would work for that, having designated high and low jacks.
…regular decade box and a handful of motors?
-
It should work just fine. I happen to have a PRS-201 model and took a few photos. The room was a little dark but I think you can get a good idea of its capabilities.
I slowly rocked each of the decades and could hear relays chatter. Some did it more than others so perhaps mine spent a good part of its life in remote mode? The Coto relays are a nice touch and IET could have cheaped out. These are hermetically sealed and low thermal.
There are two different types of boards in there.