This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB960-Q1: Bidirectional control channel over the FPD-Link III

Part Number: DS90UB960-Q1
Other Parts Discussed in Thread: DS90UB953-Q1EVM, DS90UB953-Q1

Hello.
I'm working with following setup:
CY8CKIT-059 PSoC(Host I2C) <-- I2C bus --> DS90UB960-Q1EVM <-- COAX --> DS90UB953-Q1EVM
I try to read DS90UB953 registers, but receive no acknowledge on Host I2C.

Here is my sequence:

register value
0x10 0x81 # configure GPIO0 to bring out Lock for Port0
0x32 0x01 # CSI0 select
0x1f 0x02 # CSI0 800mbps
0x33 0x01 # CSI_EN & CSI0 4L
0x20 0xe0 # forwarding of RX 0 to CSI0
0x4c 0x01 # RX_PORT0
0x58 0x58 # enable pass through
0x5c 0x30 # SER_ALIAS_ID here I put DS90UB953-Q1 address ***** if I write 0 - doesn't help !
0x5d 0x30 # SlaveID[0] here I put DS90UB953-Q1 address as well
0x65 0x30 # SlaveAlias[0] DS90UB953-Q1 address again ***** if I write 0 - doesn't help !
From this point I suppose to have access to remote serializer DS90UB953-Q1 registers through an FPD-Link III interface using standard coaxial cable.
I send I2C Start Condition to remote address 0x30 but no ACK !!!

Thanks

  • Hello,

    Do not write the serializer ID to register 0x5D and 0x65, this is aliasing other I2C devices on the remote bus.  Try to read back 0x4D to verify you have lock and pass.  If so make sure 0x5B is populating correctly.

    Regards,

    Nick

  • Hi Nick.

    I write

    reg.0x5C val.0x30 (Slave serializer address)

    reg.0x5d val.0x00

    reg.0x65 val.0x00

    Read back

    reg.0x4D val.0x10 (something gone wrong?)

    reg.0x5B val.0x30 (populated correctly)

  • Hello,

    0x4D not showing lock makes me thing that the devices are not set up correctly.  Can you verify the strapping modes of both devices to make sure that they are in the same mode?  Also if you can read registers from both devices locally for a full reg dump.

    Regards,

    Nick

  • Hi Nick

    I uploaded two dumps.

    Can You take a look and help me to find out were is a problem

    DS90UB960_regs_dump.pdfDS90UB953_regs_dump.pdf

  • Hello Arkady,

    Due to US holiday we are currently out of office but will be back in tomorrow to assist further. Thank you for your patience.

    Best Regards,

    Casey

  • Hello Arkady,

    It looks like you are operating in the correct modes but I think you need to be careful when changing register 0x58.  It looks like you are selecting to work in DVP mode which is incorrect.  Try writing 0x5E to this register instead to ensure you are still using the 50Mbps backchannel.

    Regards,

    Nick

  • Hi Nick.

    I wrote 0x5E to register 0x58 and it starts to work.

    Read back from register 0x4D is 0x13 - Receiver PASS and Receiver is locked to incoming data

    Now I have acces to remote serializer registers through back channel.

    Thanks a lot!

  • Hi Nick

    I added one more serializer DS90UB953 to port 1 with same I2C address

    How I should configurate DS90UB960 ports to access two serializers simultaneously?

    Here is my logic:

    1. Configure DS90UB960 Port0

    register    value

    0x4C         0x01

    0x58         0x5E

    0x5C        0x30       // Remote Serializer1 Alias ID. 0x18

    0x5D        0x00

    0x65        0x00

    2. Configure DS90UB960 Port1

    register    value

    0x4C         0x12

    0x58         0x5E

    0x5C        0x30       // Remote Serializer2 Alias ID. 0x18

    0x5D        0x00

    0x65        0x00

    3. to access Serializer1

    0x0C       0x01         // enable Port 0, all others are disabled

    now I put 0x18 on the bus and access the Serializer connected to coax port 0

    4. to access Serializer1

    0x0C       0x02         // enable Port 1, all others are disabled

    now I put 0x18 on the bus and access the Serializer connected to coax port 1

    The problem is that Ican not do it if there are more DS90UB960 devices on the I2C bus with connected serializers with 0x18 address. 

    How I can manage this chain?

  • Hi Arkady,

    What you want to do is set a different I2C address in register 0x5C on either port. For example if you set port 0 to 0x30 and port 1 to 0x32, this will allow you to talk to the serializer on port 0 and port 1 using the respective address as if they are on the same bus.

    Regards,

    Nick