[SOLVED: Pi was defective] PR33-43 MCP-3428 needs general call reset from RPi

EDIT: It turns out that my Raspberry Pi was defective, as I tried this with a different one and it worked without issue.

I’m having trouble communicating with the MCP3428 chips on my PR33-43 board. I’m using an I2C bus from a Raspberry Pi (which seems to have no issue communicating with other devices, including your MCP4725 DAC). I try to use i2cset (and the equivalent smbus python functions) to set the initial config for the 0x68 address chip (for which I configured one of the jumpers on the board; the other is a different address). I have the pull-up jumpers removed because the Raspberry Pi master already has them. No matter what I try, I always get back an error that the write failed.

I attached my Bus Pirate to the I2C chain in sniffer mode, and it reports that the chip never ACKs the initial (proper) address byte (0xD0 including the R/W bit). The strange thing is that when I connect the board just to my Bus Pirate, I am able to set configuration and then read back the ADC values like the datasheet promises. Do you know why the board would work with a little USB dongle but not with the Pi?

For additional information, I attached the Pi to common ground and am using the 5V rail on the GPIO header to supply the 5V input on the board.

hi,
can you try this code

Thanks

I actually already tried this among other things. It never gets past bus.write_byte(0x68, 0x10) before I get OSError 121. My I2C bus sniffer indicates that the MCP3428 never ACKs the address byte. The confusing thing is that the the other devices I have on that bus work, and I can communicate with the MCP3428 with my USB Bus Pirate but not with the Pi.

does it come up with an i2c address
i2cdetect -y 1
thanks

It turns out that my Raspberry Pi was defective and on its last legs; today it couldn’t even boot. I tried this out on a different Pi and it worked fine.