Showing results for 
Search instead for 
Did you mean: 

I2C Commanding of MCP4661T

I'm mostly an RF guy so understanding and reading digital datasheets kind of get to me. I need some help understanding the command protocol for this Potentiometer (MCP4661T). I cant program different resistances.


My Schematic is the following:


My Device address is 0101001 so the 7-bit address is 0x29. Then in order to control/change the P0W I have been setting the internal address to 0x00 to command POT 0 registers, then I am sending any hex value from 0x00 to 0x100 for resistances.


My LabVIEW code is as followed:


Can anyone help me understand the datasheet?


0 Kudos
Message 1 of 2

1. Your 10k pull-up and pull-down resistors on the address lines should be 0 Ohm.  The device has built-in pull-up resistors, so you are causing a voltage divider and likely putting your device into an unknown address.


2. You should enable the internal pull-up on your I2C controller.


3. Unfortunately, you need to do some bit manipulations to build up a proper command here.  The is due to the Command Byte (the first byte of your command) has the register address, the command, and 2 bits of data in it.

There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 2 of 2