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.
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
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