A recent project that I have been working on requires me to control the maximum
speed of a motor controller. The motor controller was designed by another company and requires a potentiometer input to vary the maximum
speed output of the controller.
I have seen some design work done to vary the appearance of an output so that the output looks like different resistor values, but I
had only dealt with designs that would appear like a resistance relative to ground or another known voltage level. This design needed to
work more closely to an actual potentiometer by not being tied down to a specific reference level. So the hardware engineer that I am
working with incorporated a digitally controlled potentiometer into the design.
We are using a Xicor X9C104 digitally
controlled potentiometer. It is a 100 k
potentiometer with a 3-wire serial interface. Some of
the characteristics include an ability to store the pot setting in nonvolatile memory, 100 interface positions, and temperature compensation.
There are several other similar Xicor parts with a variety of characteristics found
here.
I had never dealt with a digitally controlled potentiometer before, but I shall pass on what I have learned. The Xicor part that I used
was fairly simple and straightforward. I had the part running in a few minutes, but I spent a significant amount of time finding out why
the part seemed so unreliable, and have included what I discovered below.
- Digitally controlled potentiometers are expensive. If cost is an issue, you may want to explore other options. The Xicor data sheet
shows an excellent diagram of how the part is working internally. You might be able a duplicate a similar type of setup on your board
that might be cheaper if you only need a couple of positions on your pot and have some extra output pins.
- The allowable tolerance on this part is ± 20%. It isn't very accurate. If you need higher accuracy, then you probably will need
to try to make your remaining circuitry less sensitive or design your own digitally controlled potentiometer.
- The Xicor part that we used seemed to require a substantial current flowing from high to low before the potentiometer would work correctly.
When I first tried to adjust the pot settings up and down on this part, I wouldn't measure the correct resistance between low and wiper or
between high and wiper on the part. I found that once I tied high to 5 V and low to ground, then I could measure the voltage on the wiper pin,
and it would be the voltage that I would expect.
- Be careful with your ground reference. This problem took us a while to figure out, and I'm not 100% sure why it caused problems. If we
supplied our circuit with a benchtop power supply, we needed to make certain that the ground reference was tied to Earth ground. If it wasn't,
then the potentiometer would not work properly. This was a concern to us since the application would be running on battery power. However,
the potentiometer worked fine when connected to our battery supply. If your application is having problems, this might be a good thing to check.
Other solutions include some parts from Dallas Semiconductor such
as the DS1669. The DS1669 has a different
communication standard and only 64 positions, but it does store its setting in EEPROM to hold its value while power is absent. Dallas also has a
potentiometer designed specifically for audio attenuation. You can sift through some more Dallas data sheets
here.
Response to Reader Feedback
I was very glad to hear some feedback from my article about digital potentiometers. Digital potentiometers are wonderful devices that have a variety
of potential applications. As I have been working with the Xicor device a little more, I discovered a very informative
application note that would be good for you to read if you are
considering using this part or any type of digital potentiometer. The application note lists several characteristics that I had never really
considered that apply to their products and undoubtedly everyone else. The application note also gives equations for calculating parameters about
your circuit or device.
Embedded Engineering Archive