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.

DS90UB936-Q1: I2C communication error between 936-935

Part Number: DS90UB936-Q1

Hello!

My customers want to remote control the 935 and the Sensor with a 936-page MCU like this(935 Syncronous mode)

However, if I try to make I2C communication to 935 on 936 MCU,I can not receive any response from serializer(935)

The 936's lock pin is currently high.In addition to default, we set the register as follows.Are there any missing or incorrect settings?

//------- serdec check command-----------

       //I2C_Write(CAM0_954, 0x01, 0x01);      //reset 954

       T0_Waitms (1);

       //I2C_Write(CAM0_953, 0x01, 0x01);      // reset 953

       //I2C_EndCheck();

       T0_Waitms (10);

       ID_954_1 = I2C_Read(CAM0_954, 0x00);

       ID_953_1 = I2C_Read(CAM0_953, 0x00);

       I2C_EndCheck();

       //ID_953_2 = I2C_Read(CAM1_953, 0x00);

       I2C_Write(CAM1_954, 0x6d, 0x78);

       I2C_Write(CAM0_954, 0x4c, 0x01);

       T0_Waitms (100);

//------------- ser gpio init---------------------

       I2C_Write(CAM0_954, 0x5b, 0x30);

       I2C_Write(CAM0_954, 0x58, 0x5e);

       //I2C_Write(CAM0_954, 0x5c, 0x18);

       // forward

       //ID_954 = I2C_Read(CAM0_954, 0x04);

       I2C_Write(CAM0_954, 0x6E, 0x07);

       I2C_Write(CAM0_954, 0x6F, 0x21);

       I2C_Write(CAM0_954, 0x0F, 0x7b); //gpio 2 frame sync

 

       //I2C_Write(CAM0_954, 0x11, 0x01);

       I2C_Write(CAM0_954, 0x12, 0x61);

       //I2C_Write(CAM0_954, 0x18, 0xB1);

 

       I2C_Write(CAM0_953, 0x0E, 0x78);

       I2C_Write(CAM0_953, 0x0D, 0x70);

       I2C_Write(CAM0_953, 0x33, 0x07);

 

//-----------------des csi initial

       I2C_Write(CAM0_953, 0x02, 0x43);

       I2C_Write(CAM0_953, 0x03, 0x00);

 

//----------954 csi0-----------

       I2C_Write(CAM0_954, 0x32, 0x01);

       T0_Waitms (100);

       I2C_Write(CAM0_954, 0x1f,0x02);

       I2C_Write(CAM0_954, 0x33, 0x31);

       T0_Waitms (100);

       I2C_Write(CAM0_954, 0x20, 0x20); //e0

       T0_Waitms (50);

       I2C_EndCheck();

Please Check it.

Thnak you

Best regards.

From Anthony.

  • Hi Anthony,

    What's the CAM0_953 address? You should be talking to your 953 using the alias ID from register 0x5C, which in your case, is 0x18.

    Best,

    Jiashow

  • Hi~

    Thank you for your reply.

    Is the value of the 0x5c register of 954 equal to the IDx value of the 953 resistor strap pin?

    We set the IDX value of 953 as follows.

    If the IDX value is correct, is 0x30 (8bit address) the value that should be written to 0x5C?


    Or is it 0x18 (7bit address)?

    If it is not IDX value, what address value of serializer should be written in 954 0x5c to normally call serializer to remote?

    Thank you

    Best Regards

    From Anthony

  • Hi Anthony,

    Register 0x5B holds the 8-bit real I2C address of the serializer (0x30), and register 0x5C holds the 8-bit alias I2C address of the serializer (0x18). Could you talk to the serializer using the 8-bit 0x18 I2C address?

  • Thank you for your reply.

    We succeeded in calling 953 with I2C, but we can not do full i2C communication like the following waveform.

    I think it is caused by CLOCK STRETCH.

    I am communicating with OMNIVISION OV580, but OV580 does not seem to support CLOCK STRETCH.

    Is there a circuit configuration and IC that can do the CLOCK STRETCH implementation externally, or is there any way to get a little effect on the clock stretching from 954-953?

    Please check it.

    Thank you 

    Best Regards

    From anthony.

  • Hi Anthony,

    The imager shouldn't have to support clock stretching since it's a slave. The only hardware that needs to support clock stretching is the process on the deserializer side. Clock stretching is supported on the software side. Please check your processor and see if you can enable clock stretching there.

    Best,

    Jiashow

  • Hi Jiashow

    I understood your words well..

    I understand that we need only a soft type of clock stretch on the processor of the Deserializer side as you said.

    But now our deserializer side's processor (ISP) does not support clock stretch

    I would like to ask if there is any way to configure the clock stretch if we use another IC.

    Pleas check it.

    Thank you.

    Best Regards.

    From Anthony.

  • Dear Jiashow

    Thank you for your helps.

    Can you please confirm the above inquiry?If there is no other way, we will understand.


    Thank you

    Best regards

    From anthony.

  • Hi Anthony,

    Unfortunately, I don't believe there's any way to configure for clock stretching without using a different ISP.

    Best,

    Jiashow