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.

DS90UB954-Q1: can't access remote serializer in a long chain 953/954 connection

Part Number: DS90UB954-Q1

Hello Team,

        We have a long chain connection show as below:

 

          Main Board support i2c clock stretching. For now, 954(A)\953(A)\954(B) are ok with main board i2c read and write. But sensor and 953(B) are not.

          If we directly connect CAM(sensor/953(B)) to main board 954(A), i2c read/write to sensor and 953(B) are ok, that means CAM is ok.

          Here is my config for long chain 954/953:

954(A):

0x58=0x5e, //enable pass-through

0x5c=0x08, //ser alias for 953(A)

0x5d=0x32, //slave0

0x65=0x40, //slave0 alias

0x5e=0xa0, //save 1 alias

0x66=0x40, //slave 1 alias

953(A)

0x32=0x49, //enable ass-through

954(B)

0x58=0x5e, //enable pass-through

0x5c=0x40, //ser alias for 953(B)

after these setting, i2c access to 953(B) is not ok.  

Am I missing something?

Best regards

         

  • Hello Xingzhu,

    We will need a couple days to check on this configuration before we respond back. Are you operating all of these devices in synchronous mode?

    Best Regards,

    Casey 

  • Hello Casey,

              Yes, all 954 and 953 are designed and set as synchronous mode.

    Best regards

  • Hello Xingzhu,

    As I told you in the other thread, and as you are using a different I2C address for the second 953, you need to program the following:

    In the Serializers do not enable Pass-through

    Program 954 (A):

    0x58[6]=1 for Pass-throu enabled
    0x5B: SER ID = will be recognized by DES
    0x5C: SER Alias ID = 0x04
    0x5D: SlaveID[0] = 0x50
    0x5E: SlaveID[1] = 0x19
    0x65: SlaveAlias[0] = 0x50
    0x66: SlaveAlias[1] = 0x20

     

    Program 954 (B):

    0x58[6]=1 for Pass-throu enabled
    0x5B: SER ID = will be recognized by DES
    0x5C: SER Alias ID = 0x20
    0x5D: SlaveID[0] = 0x50
    0x65: SlaveAlias[0] = 0x50

  • Hello Hamzeh,

          sorry for late reply. Firstly, I would apologize for the i2c address problem in previous comment, here is the correct:

          note: 953(A) is 0x19, 953(B) is 0x18

          And yes, I follow the setting as you told me in the comment(change address and alias as picture above), the 953(B) and sensor can't be accessed from main board.

    here is my setting read from 954(A):     

    0x58[6]=1 for Pass-throu enabled, is 0x5e
    0x5B: SER ID = will be recognized by DES, is 0x32(8bit)
    0x5C = 0x08 /953(A) alias 0x08(8bit)
    0x5D = 0x7a //954(B) is treated as slave for 954(A), is 0x7a(8bit)
    0x5E = 0x30 //953(B) is
    0x5f = 0x50 //sensor address 0xA0(8bit), 0x50(7bit)
    0x65 = 0x80 //954(B) alias is 0x80(8bit)
    0x66 = 0x40 //953(B) alias is 0x40(8bit)

    setting read from 953(A):

    0x32 = 0x09 //this is the default value, we don't enable 954(A) Pass-through as you told

    setting read from 954 (B):

    0x58[6]=1 for Pass-throu enabled, is 0x5e
    0x5B: SER ID = will be recognized by DES , is 0x30(8bit)
    0x5C = 0x40 //alis for 953(B)
    0x5D = 0xA0 //sensor address 0xA0(8bit), 0x50(7bit)
    0x65 = 0xA0 //sensor alias 0xA0(8bit)

    As you told in this thread and the other thread, here is my understanding for this long chain setting, correct me if I am wrong:

    1. For 954(A), 954(B)\953(B)\sensor are the slaves, so We need set slave address corresponding to the three devices, Is it right?

    2. For 953(A), there is not need to enable pass-through, becuase all the i2c to 954(A)'s slave is automatically pass to the slaves, Is it right?

    After these setting, 953(B) and sensor are still not accessible from main board.  Any problem for these settings?

    953(A) and 954(B) are accessible from main board.

    Best regards

  • Hello Hamzeh,

            We set 954(B)'s register 0x58 = 0xde, all i2c to sensor and 953(B) are ok.

            But we are not sure why this happens, any ideal why "I2C Pass-Through All Transactions" should be enabled?

    Best regards

  • Hello Xingzhu,

    either ways will work. If you implement correct settings I mentioned above or if you enable pass-through-all.