Close

I2C

A project log for PicSniffer

Xilinx ZYNQ based HDMI input video processor (for Ambilight substitution)

marsupilamiMarsupilami 01/04/2015 at 15:010 Comments

Ok, last day of vacation. Tomorrow I'll try to integrate myself back to work to be a useful part of society. On this day I should've presented you the working system. Well I guess I'm a bit behind. :P

So I2C. The AD7611 has a quite strict read sequence. First you have to address it in write mode, sent the sub-address (register address) then re-address it in read mode to get the value from it. The trouble comes from the fact that between the initial write and then the read transactions there can not be a normal bus stop-start cycle because then the chip won't respond.

What do you think can the ZYNQ PS I2C driver (hw?) do this?

NOPE. At least not the latest one. Strangely if I do some very-very unprofessional text edits in the SDK source files, then it lets me to use an older revision of the driver (2.2 instead of 2.3) where there is a Repeated Start Condition option. This seems to solve the issue. According to the changelist this was removed from 2.3 wihtout stating the reason.

I found several forum entries both on Xilinx and Analog Devices websites related this issue. There are some quite popular ZYNQ boards out there that has an ADI ADV7511 for HDMI output. That chip has the exact same isse, and unfortunatelly there was no proper solution presented for this case.

Discussions