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.

DS90UB935-Q1: Can't get data from ds90ub954-q1, MIPI input

Part Number: DS90UB935-Q1
Other Parts Discussed in Thread: DS90UB953-Q1, , DS90UB954-Q1

Hello,

Our project need two camera input and one image output.

And we can switch between two camera by serial command.

So out structure like below:

Sensor0——>ds90ub953-q1——   |————————————|

                                                        |           ds90ub954-q1         |———(MIPI)———ds90ub935-q1——>(car)

Sensor1——>ds90ub953-q1——   |————————————|

And now, the ds90ub954 already get image from Sensor0,  and we can show image from ds90ub935-q1 Pattern Generator,

but the car can't show image from Sensor0.

How do we config ds90ub954-q1and ds90ub935-q1 to show the right image?

So, anybody help?

Thanks.

  • Hi Qinghua,

    Could you provide the script you are using to initialize the system?

    - Are you able to initialize the sensor properly?

    - Can you check registers 0x61 - 0x63 on the serializer to verify there's valid CSI data coming in?

    Best,

    Jiashow

  • Thanks very much for your help。

    1. The initial script of ds90ub954 as below:

        i2cWrite(TI954, 0x01, 0x03);
        delay(1000);
        i2cRead(TI954, 0x5B);
        i2cWrite(TI954, 0x32, 0x01);
        delay(100);
        i2cWrite(TI954, 0x1F, 0x03);
        delay(100);
        i2cWrite(TI954, 0x33, 0x03);
        i2cWrite(TI954, 0x4c, 0x01);	//port 0
    //    i2cWrite(TI954, 0x4c, 0x12);	//port 1
    
        delay(100);
        i2cWrite(TI954, 0x0c, 0x81);	//port 0
    //    i2cWrite(TI954, 0x0c, 0x16);	//port 1
        i2cWrite(TI954, 0x20, 0x20);	//port 0
    //    i2cWrite(TI954, 0x20, 0x10);	//port 1
        delay(200);
    
        i2cWrite(TI954, 0x58, 0x5E);
        delay(200);
    //    i2cWrite(TI954, 0x5B, 0x30);
        i2cWrite(TI954, 0x5C, 0x30);
    
        i2cWrite(TI954, 0x7D, 0x02);
    
        i2cWrite(TI954, 0x5D, 0x20);
        i2cWrite(TI954, 0x65, 0x20);
    
        delay(100);

    2. We can show image from  ds90ub954-q1 properly, so the sensor is ok.

    3. The value of ds90ub935-q1 is:

    0x61:0x2C,

    0x62:0x46,

    0x63:0x0B

    Read several times, and the value didn't change.

    And we don't know how to config ds90ub935-q1.

    Thanks.

  • Hello,

    There's nothing that stands out to me in the initialization script.

    Could you check register 0x02 on the 953 to make sure it is configured correctly?

    Also, are you able to read the horizontal and vertical count in 954 registers 0x73 - 0x76? Can you check the PASS status in deserializer address 0x04?

    Best,

    Jiashow

  • Hello,

    Our debug script as below:

        delay(1000);
        i2cRead(TI953, 0x02, true);
        i2cRead(TI954, 0x04, true);
        i2cRead(TI954, 0x73, true);
        i2cRead(TI954, 0x74, true);
        i2cRead(TI954, 0x75, true);
        i2cRead(TI954, 0x76, true);
        delay(1000);
        i2cRead(TI953, 0x02, true);
        i2cRead(TI954, 0x04, true);
        i2cRead(TI954, 0x73, true);
        i2cRead(TI954, 0x74, true);
        i2cRead(TI954, 0x75, true);
        i2cRead(TI954, 0x76, true);

    the "true" means debug open, don't care that.

    delay ms,so 1000 meas 1 second.

    the output like this:

    devadd:0x18     regAddr:0x2:    0x33
    devadd:0x3D     regAddr:0x4:    0xDF
    devadd:0x3D     regAddr:0x73:   0x4
    devadd:0x3D     regAddr:0x74:   0x38
    devadd:0x3D     regAddr:0x75:   0xB
    devadd:0x3D     regAddr:0x76:   0x46
    devadd:0x18     regAddr:0x2:    0x33
    devadd:0x3D     regAddr:0x4:    0xDF
    devadd:0x3D     regAddr:0x73:   0x4
    devadd:0x3D     regAddr:0x74:   0x38
    devadd:0x3D     regAddr:0x75:   0xB
    devadd:0x3D     regAddr:0x76:   0x46

    the device addr, register addr, and the value.

    Thanks.

  • Hello,

    Did you find what the problem is?

    We still can't get data from sensor.

    Thanks.

  • Hi Qinghua,

    I see on your code you are setting the CSI rate to 400Mbps. When you set it to 400Mbps you would need to set additional registers:

    The resolution and payload look correct to me. Once you set the above registers, could you check register 0x35[0] to make sure there's valid CSI data coming out of the port? If 0x35 = 1 and you still aren't able to capture the images, that means there's probably something on the processor side that isn't able to capture the video.

    Best,

    Jiashow