Other Parts Discussed in Thread: ALP
Dear TI,
I am working on a high speed camera interface project, in which I will use a ZCU102 Evaluation Board (https://www.xilinx.com/support/documentation/boards_and_kits/zcu102/ug1182-zcu102-eval-bd.pdf), DS90UB953-Q1EVM and logiFMC-FPD3-934 (https://www.logicbricks.com/Documentation/Datasheets/HW/logiFMC-FPD3-934_hds.pdf). In this project, the serializer sends video data through a coaxial cable to the DS90UB934 deserializer according to the FPD-Link III protocol. In the end, the deserializer sends the data back to the ZCU102.
I have already read the compatibility pdf (SNLA270A) and the related documents to the serializer, deserializer, EVM board etc. many times. I could configure the deserializer locally using the ZCU102 I2C interface. The problem is to reach the serializer from the deserializer using the pass-through function. They are not locked to each other and when I try to read a register value from the serializer, I always get a NACK from the deserializer.
In this state of the project, I do not send data, I only want to configure the serializer using the back channel. In ZCU102, I only use the Zynq Ultrascale+ MPSoC. On the logiFMC-FPD3-934 board, I configure the first deserializer modul, which has an address 0x60 (8 bit) and I use the RIN1 port. On the EVM board, I have made three changes. I put a short circuit to R1, so the serializer gets the 50 MHz oscillator clock. I changed the R12 resistace from 402 to 20k to set the serializer into DVP mode. Finally, I changed the L7 inductor to short circuit, because it was open circuit and the board could not get enough power from the PoC through the R25 resistance (of course I did not have an other inductor). Now the voltage values (PoC voltage, VDD3V3, VDD1V8) are correct.
On the software side for I2C read and write, I use the XIicPs_MasterSendPolled and XIicPs_MasterRecvPolled functions from the xiicps driver (https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/iicps). I configured the deserializer according to the compatibility document and I added the write permission for RX port 1. I set a serializer alias ID 0x18 which is equal to the serializer ID (I have already tried other values too) and I enabled the pass-through bit (0x58, bit [6]). After this, the SER ID register (0x5B) contains the appropriate ID, but the deserializer and the serializer are not locked to each other. I know it because I read the device status register (address 0x04) and the bit [0] is always 0, so the lock status is always low. I can not find out what should I do or not do to get a high lock status.
If you need more information, I will send it in a reply. It would be nice, If you could help me.
Regards,
Adam Boronyak