# An electronic logarythmic resistor array, how to dimension?

Status
Not open for further replies.

#### Mr.Big

##### Junior Member level 3
I need a logarythmic resistor array, 8bit resolution, maybe I can provide 9 or 10 Bit

I need the range of 10-500Ohm in very fine steps
And then another 8bit with 500 to 5kOhm

Last edited:

Hi,

factor = (300/10) ^(1/256) = 1.01337 // 8 bits = 256

10
10 x 1.01337 = 10.1337
10.1337 * 1.0337 = 10.2693
10.2693 * 1.0337 = 10.4066
and so on

do the same for 300 Ohms to 5000 Ohms

Klaus

I don't understand.
I mean, what value does the resistors need to have.
R1 R2 ...R8

Last edited:

8 bits is 256 steps, from 0 to 255
with range of 10 to 500 and 256 steps
(500/10)^(1/256) = 1.0153987
i changed Klaus's 300 to 500

R0 = 10
R1 = 10 x 1.0153987 = 10.153987
R2 = 10 x 1.0153987 x 1.0153987 = 10.310345

RN = 10 x (1.0153987)^N

R255 = 10 x (1.0153987)^255 = 492.417414

and R256 = 500

I suspect the question is how to choose 8 weighted resistors so that, when switched in all 256 possible binary patterns, they yield the desired spread of ohm values.

To obtain 10 to 500 ohms.
Start with 500 ohm in parallel with the network. (This is default value when all bits are turned Off.)
Place 20 ohms at bit 8, 40 at bit 7, then 80, 160, 320, 640, 1280, 2560.

Notice all 8 bits create resistance 10 ohms.

To obtain 500 to 5k.
1000 ohm at bit 8.
2000 at bit 7. Etc.

Buy a 256 bit digital pot.

Making it with resistors with more than 1% accuracy will be too expensive.

Here is csv file with the values

#### Attachments

• Book1.txt
6.1 KB · Views: 92

First I'd look for "digipot" IC products with log taper, a common
audio feature.

If I didn't find one, but families look suitable for voltage, current,
bandwidth, distortion etc., I'd consider picking a linear and
"cal-mapping" log to linear-address through a PROM or a data
table in the host (if that's a thing).

You "could" make a taper ladder and access the taps through
a wide mux bank (like (16) 16:1s feeding a final 16:1 - you can
get wider, but cost goes up and performance, down as a rule).
Do it log(2) style and it's just like 100, 200, 400, 800, 1600, ...
all the way out. You might even be clever enough to do an
interpolation scheme and gain better resolution in the mid to
high range (using low bits) if you made two muxes, top and
bottom, that could pick any two points on the string.

At the low end you may find switch on resistance starts to
meddle with delivered value.

Buy a 256 bit digital pot.
Digital pots give a output 3-input potentiometer ratio accurate to 8-bits, but their actual resistance between the wiper and either terminal is not.
--- Updated ---

I need a logarythmic resistor array,
That's quite difficult to do.
What will this array be used for?

I need a logarythmic resistor array, 8bit resolution, maybe I can provide 9 or 10 Bit

I need the range of 10-500Ohm in very fine steps
And then another 8bit with 500 to 5kOhm
Your question is not clear enough.

You want an array with 10 bit res; that means you will have 2^(10) or 1024 distinct elements or steps.

Each step will give you 1 bit resolution. That is how I understand it.

For a mechanical switch, this means 1024 distinct position.

You want a log scale; that means the series must be geometric. Take the lowest value as a.

The final value is b (say). So your series will look like:

a, ar, ar^2, ar^3, ar^4 .... ar^(1023)=b

Hence r is (b/a)^(1/1023).

I am sure you wanted something else!!
--- Updated ---

I suspect the question is how to choose 8 weighted resistors so that, when switched in all 256 possible binary patterns, they yield the desired spread of ohm values.

To obtain 10 to 500 ohms.
Start with 500 ohm in parallel with the network. (This is default value when all bits are turned Off.)
Place 20 ohms at bit 8, 40 at bit 7, then 80, 160, 320, 640, 1280, 2560.

Notice all 8 bits create resistance 10 ohms.

To obtain 500 to 5k.
1000 ohm at bit 8.
2000 at bit 7. Etc.
I am not so sure that is what Mr Big wanted. But that is still simpler:

select R for LSB - your choice.

2R for bit 1; 4R for bit 2, 8R for bit 3, 16R for bit 4... and finally 128R bit 7.

you will need 8 SPDT switches to select the desired number.

You can get any number from 0-255.

Last edited:
• d123

Status
Not open for further replies.