AnsweredAssumed Answered


Question asked by sjolivieri on Oct 20, 2015
Latest reply on Oct 29, 2015 by DragosB



I am using a custom VHDL I2C controller to communicate with the AD-FMCOMMS1-EBZ board. First, I tried this:


I2C_START | 0x58(W) | 0x02 | I2C_STOP


I can see the blue light blinking, so I2C seems to be working. Also, I can see the ack in ChipScope.


However, no other commands seem to work properly. For instance, I tried this command:


I2C_START | 0x58(W) | 0x01 | I2C_STOP

I2C_START | 0x58(R) | ... (x32) | I2C_STOP


I expect to get the 32-byte firmware ID, but I see one byte of '0x10' and then thirty-one bytes of '0xFF'. In ChipScope, I saw the ack for the 0x01 command, so I'm not sure why I can't read the firmware ID.


I see similar results with other commands. I tried this:


I2C_START | 0x58(W) | 0x03 | 0x00 | 0x48 | 0x00 | 0x02 | I2C_STOP

I2C_START | 0x58(W) | 0x04 | 0x80 | 0x01 | I2C_STOP

I2C_START | 0x58(W) | 0x03 | 0x04 | 0x68 | 0x00 | 0x02 | I2C_STOP

I2C_START | 0x58(R) | ... (x1) | I2C_STOP


I expect to get 0x82, but I actually get 0x3F. In fact, I get 0x3F for any register that I try to read on the AD9643 device. Sometimes, I eventually see 0x20 instead, but I never see anything other than those two values. I have similar results with the other devices on the board. Regardless, I always see acks for all of my commands in ChipScope.


So, it seems like the I2C is working, but I never get the expected results. Any ideas?