Go Down

Topic: MCP45HVX1, an undeservedly poorly documented device (Read 127 times) previous topic - next topic


The MCP45HVX1 digital potentiometer family looks a brilliant set of devices, also because it is rated to work up to 36 volt, yet one of the less documented and supported. Its 100+ pages data sheet is useful for the library designers, not for the end users. Many threads quoting this device describe weird behaviours (like the ones I've experienced) but end up with no solutions.
 The library https://www.arduino.cc/reference/en/libraries/mcp45hvx1/ documentation lacks of the key sections, like wiring and troubleshooting.
 Is there anybody, having successfully used this device, who can publish once and for all some useful hints?
 In particular what prevents me from using the device is a randomly corrupted i2c data exchange unless a particular i2c address (0x3F) is used and the impossibility to connect the potentiometer terminals.
Thanks to all people of good will.....


If it causes so much trouble, why do you want to use it ?

Manufacturer's page: https://www.microchip.com/wwwproducts/en/MCP45HV51.

The datasheet is not 100+ pages, it is exactly 100 pages ;)

Did you read the "MCP45HVX1 Rev. A1 Silicon/Data Sheet Errata" ?
It says:
1: "Each MCP45HVX1 device would need to be on a unique I2C bus with no other I2C devices".
2: "If the second byte of the I2C General Call command is a different value than the three reserved commands or the four Microchip-specific commands, then the MCP45HVX1 device would need to be on a separate I2C bus where those commands would not occur."

They are saying that its hardware interface to the I2C is so bad designed, that the chip is almost useless.

Don't pick an old banana out of the garbage and wonder why it is bad. Don't use this bad chip !


Hmmm, I'm hesitating between your totally justified statement and what I experienced. On one hand, the MCP45HVX1 fails and currupts the data even with the simplest piece of code like an i2c address scanner and no other i2c units. On the other hand, if I change the i2c address using 0x3F (I did it not to avoid conflicts, but to change the boundary conditions) I obtain a perfect bidirectional i2c conversation capable to control the wiper, even in presence of an i2c OLED display. So, the i2c problem is not blocking. The only blocking problem is the lack of resistance variation at the pot terminals. It connects the wiper and only one of the other two terminals (rheostat mode) but the resistance is always 2500 ohm, irrespective of the wiper position. Obviously, same behaviour with Uno, Nano and Mega, and with two different chips of the many that I bought(!). Changing the voltage on the analog section rails in the range from 5 to 36 volt did not result in any improvement.

Let us wait and see if somebody else has found a trick making the pot work….
Tank you.


Question: I found an old banana in the garbage. I even think that I have a magic spell that makes it almost as good as new, but it is not perfect. Do you know a better magic spell ?
Answer: Don't.


Go Up