Low tolerance digital variable resistors

Go To Last Post
9 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

I'm designing a circuit (24 dB/octave Linkwitz/Riley audio crossover) that calls for 16 adjustable resistors and they have to match within 1% of each other, or maybe 2%.

I'm upgrading a piece of equipment which already has I2c with spare plugs on the bus present, so I'm thinking I2c chips. One that I have in mind, is the Intersil ISL23345. It's a quad I2c variable resistor chip.

However, even though channel-to-channel tolerance is 1%, global tolerance is 20% or 30%, which is way too much for me.

This tolerance figure seems to be the norm for all brands of digital VR's (Analog Devices, Microchip, Intersil,...).

So, what are my options here? How can I set the value for 16 resistors to within 1% tolerance?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You won't like my suggestion.

I can make any project more complex...

If the intra-chip VR tolerance is good, then you could use 3 of the 4 VR's per chip for the main project, and set the 4th one up in a resistive voltage divider. Measure the voltage from the divider and you can now generate a calibration factor for that specific chip, and its three channels.

This, of course, requires an analog multiplexer to feed the six different VR chip calibration VR signals into an ADC input on the uC.

This requires more VR chips than you originally planned, as one channel per chip is allocated to calibration, and it adds the multiplexer chip ( s ).

JC

Last Edited: Sat. Nov 10, 2012 - 09:31 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

halfgaar wrote:
So, what are my options here? How can I set the value for 16 resistors to within 1% tolerance?

For the intersil resistor that you cite, the linearity is quite good (~2LSB, or about 0.8% for the "W" spec part). There's also some zero offset. So one option would be to measure the resistance of each resistor at zero and full scale, and use that to derive a calibration offset + calibration factor.

- S

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Some kind of calibration did occur to me, and I especially like DocJC's idea :) (maybe not practically, but in its own right), but there is a problem.

The VR's have 256 steps. Let's say I have the 20k, that means that each step is 78 Ohm. When you're all the way down to 1 kOhm on the VR, a step of 78 Ohm is about 8%. So there is no way to compensate a 4% mismatch. Only if I don't go lower than about 3 or 4 k would it work.

I will have to do some math first, to see what range I actually need.

BTW, if linearity is good, does that mean a 20k VR with 20% (or even 30%) tolerance might easily be 16k? Maybe I should get a couple of chips and test.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You won't like this suggestion, either.

Do it in stages.

The first stge is a course adjustment.

The second stage is a fine adjustment.

At least you can order the parts in quantity!

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

halfgaar wrote:
BTW, if linearity is good, does that mean a 20k VR with 20% (or even 30%) tolerance might easily be 16k? Maybe I should get a couple of chips and test.

Linearity simply means that a linear function is a good approximation of the resistance vs the setting. So if you know the resistance at zero and full settings, you can do a linear interpolation to get the resistance at all other settings.

- S

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You're going to need lots more steps.

Don't confuse precision and accuracy. Accuracy says "It's never more than x% from spec." Precision, on the other hand is related to resolution and says, "Adjustable to within y."

If you're varying between 0 and 20k, and have 256 steps, then each step is 78R. (We REALLY need an omega key.) If you want 1% precision at 1K, you need to hit within 10 ohms, so you'll need more than 200,000 steps.

For calibrating, assuming your resistor has good linearity, that is, each step is the same R, you have 2 values you need to worry about: Offset and Scale. Offset you add to the value, and scale you multiply. You set the value to 0, and adjust the offset to get an output of 0. Then you set the value to "full scale," and adjust the gain to get the proper full scale output.

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If the circuit function is as a voltage divider rather than a two-terminal variable resistor, then you can use a DAC instead of a digital pot.

While digital pots may be poor tolerance, they are, at least, monotonic.

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I actually need a rheostat (two terminal VR).