in reply to Calculating resistor pairs to generate a range of voltages

I needed to generate resistor pairings for a resistor voltage divider to generate voltages from 0 to full scale in 256 steps for use with configuration on a PCB. [...] The report shows the actual values generated with ideal resistors and the range of values taking resistor tolerances into account. The z value is the effective impedance the ADC input sees. min R is the minimum series resistance of any resistor pair which relates to the maximum current through the resistors.

Nice.

Just a warning for future readers: Don't assume that a real-world 8 bit ADC can tell apart 256 different voltages. Even with excellent hardware, the effective resolution is less than 8 bit, and at least the LSB tends to jump around. A 10 or 12 bit ADC should work fine, especially if the resistor divider is connected to the ADC reference voltage. One or two LSB will still jump around, and you should average a few samples. Also, real-world ADCs are not perfectly linear and have an offset voltage.

You also should consider the ADC startup. Some ADCs (e.g. the one in the Atmel SAMD21) just return garbage for the first sample after power-up or reset or switch to a different reference voltage.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
  • Comment on Re: Calculating resistor pairs to generate a range of voltages

Replies are listed 'Best First'.
Re^2: Calculating resistor pairs to generate a range of voltages
by GrandFather (Saint) on Feb 16, 2021 at 20:08 UTC

    We are actually using the 12 bit converter baked into TM4C129 series processors. Time to get a value isn't a concern so I'm using the maximum sample and hold time and have the ADC averaging 256 samples so I'm expecting pretty low noise. I'm throwing away the bottom 4 bits in any case and linearity and offset are of the order of +/-3 LSB so we should be good.

    Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond