I have a Zynq 7000 running an IIC interface to a TI LMK03318 clock generator.
On the first power up of my board the interface will work 1 time. Clock and data look fine and the part gets programmed correctly. After a power cycle of the board the Zynq the interface only sends out the address repeatedly. The (TI) part is issuing an ack after the address but the data is not sent and there is only 10 clocks. That will repeat until my pc controlling software via a simple socket server, gets to the end of the programming sequence. This will repeat if I try to program the part again.
On the next power cycle , the start bit transitions and the first and second upper address bits are put on the bus. After that, the bus is held low, the SCL line looks the same, one transition at the start and then a Hi , a low, then stays low . After that I get a timeout error on my controlling software on the pc.
The code is running on an older board.
When the IIC code to configure the part is put in the boot code it also will not complete.
This scenario is the same on 4 of my new boards. The only change between the new and old board is that, on the old board I had the SCL and SDA swapped and had to cut and jumper them to the correct pin. The new board is routed correctly.