Problem with I2C Interface with DAC MCP4725 through Arduino pins

Hello everyone,

I’m trying to communicate with an MCP4725 DAC via the Arduino I2C pins on the PYNQ-Z2 (3.0.1) board (AR_SDA = P16, AR_SCL = P15).

To do this, I designed a custom hardware design in Vivado that includes the AXI IIC IP, properly routed through those Arduino pins .


Then, I load the bitstream and test it from a Jupyter notebook using the AxiIIC class from the pynq.lib.iic library. I’m just trying to send a simple test value to generate a random voltage output and confirm the interface works, but the communication always fails, raising a “Could not send I2C data” error.

According to the MCP4725 datasheet, I’m following the “Fast Mode” protocol correctly. I’ve soldered the A0 pin low to fix the address to 0x60.


I think you have a few mistake in your code. Try: iic.send(address=address,data=data,length=len(data), option=0).

depending on the device think you might have to play with the option either at 0 or 1.