Author Topic: 100k Digipot only reaches 63k  (Read 1432 times)

0 Members and 1 Guest are viewing this topic.

Offline cyrix2000Topic starter

  • Contributor
  • Posts: 12
  • Country: gb
100k Digipot only reaches 63k
« on: November 30, 2022, 11:29:44 pm »
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.
 

Online thm_w

  • Super Contributor
  • ***
  • Posts: 6278
  • Country: ca
  • Non-expert
Re: 100k Digipot only reaches 63k
« Reply #1 on: December 01, 2022, 12:11:01 am »
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.
Profile -> Modify profile -> Look and Layout ->  Don't show users' signatures
 

Offline Geoff-AU

  • Regular Contributor
  • *
  • Posts: 144
  • Country: au
Re: 100k Digipot only reaches 63k
« Reply #2 on: December 01, 2022, 12:37:00 am »
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.
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3233
  • Country: gb
Re: 100k Digipot only reaches 63k
« Reply #3 on: December 01, 2022, 01:01:43 am »
PAx to PBx should be 100k regardless of wiper setting.

End 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.
 
The following users thanked this post: Geoff-AU

Offline Geoff-AU

  • Regular Contributor
  • *
  • Posts: 144
  • Country: au
Re: 100k Digipot only reaches 63k
« Reply #4 on: December 02, 2022, 01:26:26 am »
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)
 

Offline EPAIII

  • Super Contributor
  • ***
  • Posts: 1022
  • Country: us
Re: 100k Digipot only reaches 63k
« Reply #5 on: December 02, 2022, 02:05:03 am »
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.



PAx to PBx should be 100k regardless of wiper setting.

End 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.
Paul A.  -   SE Texas
And if you look REAL close at an analog signal,
You will find that it has discrete steps.
 

Offline jwet

  • Frequent Contributor
  • **
  • Posts: 447
  • Country: us
Re: 100k Digipot only reaches 63k
« Reply #6 on: December 02, 2022, 05:39:13 am »
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.
« Last Edit: December 02, 2022, 07:21:53 am by jwet »
 
The following users thanked this post: JPortici

Offline cyrix2000Topic starter

  • Contributor
  • Posts: 12
  • Country: gb
Re: 100k Digipot only reaches 63k
« Reply #7 on: December 02, 2022, 08:02:45 am »
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.
 
The following users thanked this post: thm_w

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3233
  • Country: gb
Re: 100k Digipot only reaches 63k
« Reply #8 on: December 02, 2022, 11:11:11 am »
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.

They 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.
 

Offline WattsThat

  • Frequent Contributor
  • **
  • Posts: 764
  • Country: us
Re: 100k Digipot only reaches 63k
« Reply #9 on: December 02, 2022, 11:36:26 am »
Quote
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.

Starting 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.
 

Offline cyrix2000Topic starter

  • Contributor
  • Posts: 12
  • Country: gb
Re: 100k Digipot only reaches 63k
« Reply #10 on: December 05, 2022, 08:15:43 am »
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.
 

Offline SeanB

  • Super Contributor
  • ***
  • Posts: 16272
  • Country: za
Re: 100k Digipot only reaches 63k
« Reply #11 on: December 05, 2022, 08:43:34 am »
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.
 
The following users thanked this post: thm_w

Offline Terry Bites

  • Super Contributor
  • ***
  • Posts: 2353
  • Country: gb
  • Recovering Electrical Engineer
Re: 100k Digipot only reaches 63k
« Reply #12 on: December 05, 2022, 10:40:34 am »
Check the wiper load impedance. Too low?
 

Offline cyrix2000Topic starter

  • Contributor
  • Posts: 12
  • Country: gb
Re: 100k Digipot only reaches 63k
« Reply #13 on: December 07, 2022, 08:02:54 pm »
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...
 

Offline Zero999

  • Super Contributor
  • ***
  • Posts: 19345
  • Country: gb
  • 0999
Re: 100k Digipot only reaches 63k
« Reply #14 on: December 07, 2022, 09:03:07 pm »
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.
You 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.

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...
How 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.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf