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.

WEBENCH® Tools/DS90UB953-Q1: I2C control over multiple Serializer

Part Number: DS90UB953-Q1

Tool/software: WEBENCH® Design Tools

Hi ,

We are trying to interface 16 DS90UB953-Q1 IC's to FPGA to transfer camera data. 

But we want to use single I2C to communicate with all DS90UB953-Q1 IC's. 

So if i change the SLAVE_ID_ALIAS address for all 16 IC's, Is it possible to communicate with one I2C bus?

For example, my slave ID is common (0x30) for all DS90UB953-Q1, If i set SLAVE_ID_ALIAS as 0x40, 0x50, ... 0xF0 for all DS90UB953-Q1 IC's is it possible to communicate with individual IC with SLAVE_ID_ALIAS address?

So after setting SLAVE_ID_ALIAS to different address, my I2C packet will change to "Start + New SLAVE_ID_ALIAS-R/W + Memory Address + Data + stop"

Is my understanding is correct? Please suggest us the best way to connect 16 DS90UB953-Q1 IC's with single I2C master.

Regards,

PraveenKumar.

  • Hello Praveen,

    Yes your understanding is correct and it can work as you say above. 

    Best Regards,

    Casey 

  • Hi Casey,

    Thanks for quick reply.

    I have implemented the same in way but we are not able to communicate with serializer using Alise address. 

    Here are the steps which I followed to communicate with Alise address.

    1. Write SLAVE_ID_ALIAS_0 with new address 0x50;

    2. Read back SLAVE_ID_ALIAS_0 and received 0x50;

    3. Write SLAVE_ID_0 with new address 0x50;

    4. Read back SLAVE_ID_0 and received 0x50;

    5. Read Serializer device ID register (0x00) with new SLAVE_ID_ALIAS_0 address (0x50) - No Ack from serializer.

    Also tried reading the same with device address 0xA0(As per data sheet the 0x50 will be left shifted and become 0xA0) and still there is no Ack from serializer.

    Do I need to do soft reset DIGITAL_RESET_0(Resets the entire digital block except registers) and then only will it reflect?

    Currently we are stuck in changing serializer address and please let me know if I am missing something here.

    Regards,

    Praveen Kumar.

  • Hi Casey,

    I am attaching the block diagram of my current project here to give better understanding.

    Actually we are not working on Deserializer IC as that is part of ECU itself. But whatever documents we are getting are explaining from the point of Deserializer to Serializer concept.

    But our main moto is to make our FPGA as I2C Master when the FPGA starts and configure the Serializer address to different address (as all the serializers have the same ID ) to communicate with ECU(Deserializer's) and go back to slave mode(FPGA). 

    In order to configure 16 serializers from the FPGA side, we want to use Alise addressing technique. 

    The block diagram has example Alise address ID's. 

    Now we are trying to change the alise address and try to communicate with FPGA, but we are not able to communicate with Alise address.

    Please let me know how to proceed here.

    Regards,

    Praveenkumar.

  • Hi Praveen,

    To configure all the 953's with different I2C addresses you will have to do the following:

    1. Power up the 953's but hold all the PDB bits low.

    2. Let PDB of 953_01 go high and write the register 0x00 to be 0x40.

    3. Let PDB of 953_02 go high and write the register 0x00 to be 0x50.

    4. Let PDB of 953_03 go high and write the register 0x00 to be 0x60.

    5. Let PDB of 953_04 go high and write the register 0x00 to be 0x70.

    ...... do all of this through the 16th 953 

    You will have to do this every time you power up your system but then you will be able to write to every 953 at a separate address.

    Regards,

    Michael