100k Digipot only reaches 63k - Page 1
Forum section: electronics / beginners

author: cyrix2000
author_rank: Contributor
timestamp: November 30, 2022, 11:29:44 pm
content: Hi,I'm wondering what I'm doing wrong here...I have MCP42100 DigiPot connected via SPI to a RaspberryPi. The control works but I can't get it to go above around 63K (even if I measure between the PA and PB terminals which should always be 100k I'm only getting 63k. Throughout the whole range it is outputting lower resistances than it should and maxes out at 63k. I tried to different MCP42100 both with the same effect, so I guess it isn't an equipment error but more an user error. The supply voltage provide by the RPi is 5V.So what am I doing wrong here? I'm using a multi-meter to check the resistance between PA and PB or PA and PW.

author: thm_w
author_rank: Super Contributor
timestamp: December 01, 2022, 12:11:01 am
content: Where did you purchase the IC from?Did you tie pin "B" to ground when measuring?Anything else connected? Is the MCP42100 on a SMD breakout or something.

author: Geoff-AU
author_rank: Frequent Contributor
timestamp: December 01, 2022, 12:37:00 am
content: PAx to PBx should be 100k regardless of wiper setting. Make sure you never apply any voltage outside the Vss to Vdd range to any of the potentiometer pins. If you sourced it from a reputable vendor (eg Digikey/Mouser) then it is likely user error, if you bought it from grey market (ebay, aliexpress, etc) it is probably a counterfeit part.

author: mikerj
author_rank: Super Contributor
timestamp: December 01, 2022, 01:01:43 am
content: Quote from: Geoff-AU on December 01, 2022, 12:37:00 amEnd to end resistance range is 70k-130k, so the OP's measurement isn't quite as far out as it seems. Datasheet shows measurement performed with the B terminal referenced to a fixed voltage (0-Vdd) rather than floating, so the OP should replicate that.

author: Geoff-AU
author_rank: Frequent Contributor
timestamp: December 02, 2022, 01:26:26 am
content: oh yeah, I missed that. Gee those are fairly loose tolerances. Better used as a voltage divider then it doesn't matter aside from circuit loading (not usually a critical parameter for a divider)

author: EPAIII
author_rank: Super Contributor
timestamp: December 02, 2022, 02:05:03 am
content: I have seen specs for actual pots that were intended for the radio-TV repair industry where the overall resistance spec was +100/-50%. They would work quite nicely as volume, tone, horizontal lock, etc. controls. And were probably the same spec as the OEM parts. So 63K doesn't sound that shocking to me.Quote from: mikerj on December 01, 2022, 01:01:43 am

author: jwet
author_rank: Frequent Contributor
timestamp: December 02, 2022, 05:39:13 am
content: That 70-130K is also only at room temp. The 800 ppm/deg C tempco will add another few percent at anything but dead on room temp. Also note that the wiper resistance is 250 ohms max.Digital pots are mainly used as "potential dividers" rather than variable resistors- the difference is subtle. The wiper output will track well with the digital code but the end to end resistance is poorly toleranced especially on these high value guys. You should also lightly load the wiper so the wiper resistance doesn't get in the way.Believe it or not, making large accurate resistors on chip is very expensive. They need to be long and skinny and there are tolerances involved all which take up IC area. They track well but they have poor tolerances. The only way to get really good R's on chip is to laser trim which is super expensive.Note that the lower resistance variants of the parts have somewhat better tolerances (their 10k is +-20% end to end at room).The microchip parts are designed to be very low cost, there are fancier pots from ADI/Maxim that have tighter end to end tolerances- (as good as 1%)You can also get clever by putting fixed R's around the digipots to tailor them for what you want. Maxim had an app note on these kind of tricks.

author: cyrix2000
author_rank: Contributor
timestamp: December 02, 2022, 08:02:45 am
content: Hi,thanks for all the advice. One thing I missed was grounding the output side when measuring it. After doing that, the end-to-end value improved to 92k which is more acceptable.I guess what I'll need to do is more or less generate a table of resistance for each of the 256 wiper positions and work with that. I hope these are at least somehow repeatable.

author: mikerj
author_rank: Super Contributor
timestamp: December 02, 2022, 11:11:11 am
content: Quote from: cyrix2000 on December 02, 2022, 08:02:45 amThey should be repeatable given the same operating conditions. Don't forget the rather high temperature coefficient of this part, a nominal 800ppm works out around 74 ohms/Celsius for your part which doesn't seem much, but if this will be used outdoors or in a non-heated building you could see 30C change or more over the seasons which may be significant for your application.

author: WattsThat
author_rank: Frequent Contributor
timestamp: December 02, 2022, 11:36:26 am
content: QuoteStarting to sound like an X-Y problem.Why do you care about the absolute resistance? It’s a potentiometer and when used correctly, absolute value should not mater. If you need a programable resistor, there maybe better ways to achieve your goal. If that’s the case, tell us about the bigger picture, not whats on the bench in front of you.

author: cyrix2000
author_rank: Contributor
timestamp: December 05, 2022, 08:15:43 am
content: Hi,I need a programmable resistor. I'm trying to replace a 12k NTC for controlling the temperature curve of a heating system. It doesn't need to be mega accurate but being able to replicate the resistance of the equivalent NTC, so that the temperature can be estimated with a deviation of max 5K. I think I'd need to use the Digipot in Rheostat mode for that.

author: SeanB
author_rank: Super Contributor
timestamp: December 05, 2022, 08:43:34 am
content: Instead of a digital pot simply use a set of CMOS analogue switches and a R 2R ladder network, or just a set of binary resistor values to make a DAC, and as you likely will only be using the range between 10 and 15k you can get by with only having a few values switched, to give low, 3 mid and high temperatures, easy to do with a quad switch, and appropriate resistors being switched in parallel with a 15k resistor.

author: Terry Bites
author_rank: Super Contributor
timestamp: December 05, 2022, 10:40:34 am
content: Check the wiper load impedance. Too low?

author: cyrix2000
author_rank: Contributor
timestamp: December 07, 2022, 08:02:54 pm
content: Unfortunately I need quite a wide resistive range (-20C = ~100k, +20C = ~15k).I have setup my control system now with a digipot and it seems to be working, just needs some fine tuning...

author: Zero999
author_rank: Super Contributor
timestamp: December 07, 2022, 09:03:07 pm
content: Quote from: cyrix2000 on December 02, 2022, 08:02:45 amYou got an incorrect measurement, because the voltage on the digital potentiometer floated outside the power supply rails. All terminals on a digital potentiometer need to be within the power supply rails voltages, otherwise it won't work properly.Quote from: cyrix2000 on December 07, 2022, 08:02:54 pmHow about using a dual channel digital potentiometer? The matching between channels should be very good. One channel could be used as feedback, to calibrate it, with the other being the actual resistance.