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.

DS90UB953-Q1: OV2724 does not output images to the monitor

Part Number: DS90UB953-Q1
Other Parts Discussed in Thread: ALP

Hi, TI engineers.

I am currently building my system with Raspberry Pi 4B, UB954, UB953 and sensor. I made two adapter boards, one for the connection between sensor and UB953, and the other for connection between UB954 and Raspberry Pi. There are four main types of sensors selected: OV5647 (2lane, 10bit), OV10640 (1/2/4lane, 12/16/20/2*12/3*12bit), OH0210 (2lane, 10bit), OV2724 (2lane, 10bit). I use the Raspberry Pi to output images to the monitor. OV5647 can output 1080p, 30FPS images, OV10640 can output complete 12bit format images, or incomplete 2*12bit/3*12bit images. However, 16/20bit images cannot be output. By consulting related answers, the 953 has CSI-2 v1.3 Compliant System Interface. So it supports only what the CSI2 V1.3 allows which is RAW6, 7, 8, 10, 12 and 14. OH0210 can output 1080p 60fps image.

there is a problem about OV2724. I can detect the I2c address of OV2724, and also detect data outflow, but I can't output the image to the monitor. I set up a comparison experiment. The same sensorOV2724 and the same register configuration can output images in another system. This proves that the sensor itself and the sensor register configuration are normal.

Some information about OV2724 can be seen from ti's simulation tool.


The construction of the entire system is shown in the figure below.

What's the problem?

Cai

  • kui cai said:

    Part Number: DS90UB953-Q1

    Hi, TI engineers.

    I am currently building my system with Raspberry Pi 4B, UB954, UB953 and sensor. I made two adapter boards, one for the connection between sensor and UB953, and the other for connection between UB954 and Raspberry Pi. There are four kinds of sensors selected: OV5647 (2lane, 10bit), OV10640 (1/2/4lane, 12/16/20/2*12/3*12bit), OH0210 (2lane, 10bit), OV2724 (2lane, 10bit). I use the Raspberry Pi to output images to the monitor. OV5647 can output 1080p, 30FPS images, OV10640 can output complete 12bit format images, and incomplete 2*12bit/3*12bit images. However, 16/20bit images cannot be output. By consulting related answers, the 953 has CSI-2 v1.3 Compliant System Interface. So it supports only what the CSI2 V1.3 allows which is RAW6, 7, 8, 10, 12 and 14. OH0210 can output 1080p 60fps image.

    there is a problem about OV2724. I can detect the I2c address of OV2724, and also detect data outflow, but I can't output the image to the monitor. I set up a comparison experiment. The same sensor OV2724 and the same register configuration can output images in another system. This proves that the sensor itself and the sensor register configuration are normal.

    Some information about OV2724 can be seen from ti's simulation tool.


    The construction of the entire system is shown in the figure below.

    What's the problem?

    Cai

  • Hello Cai,

    it looks like you are receiving the video stream from the SER into the DES. In this case I would suspect a timing issue between the 954 and the RP.

  • Hello Hamzeh,thanks for your time.

      I use the same UB954 settings in OH0210 and OV5647, both of which can output normal images. What are the timing issues you mentioned? Is it about reference clock? The input clock of these sensors is 24MHz. I have done experiments with OH0210 and OV10640, and found that there are two situations where similar phenomena occur (the UB953-UB954 has signal outflow, but the monitor has no image).

    1 is to change the clock register of OH0210sensor, frequency multiplication and frequency division, OH0210 will have this phenomenon.

    2 is to change the output format of the sensor. For example, if OV10640 is changed to 16 bit output, it will be found that the information of the TI simulation tool is normal and the monitor has no signal outflow.

    The situation of OV2724 does not belong to these two kinds, its output format is 10 bit, the input clock is 24 MHz, in another system that it works normally, whose clock input is also 24MHz.

    Are there any registers in UB953 and UB954 that can help us find the problem?

  • Hello Kui,

    For checking if you are receiving data correctly in the 954, you can use FrameValid and LineValid.


    You can set the FrameValid and LineValid it in the registers of the 954. The FrameValid will be your frame rate and the LineValid will be your vertical line count.

    If your frame rate is 30fps you should be able to measure 30fps on the scope. You should also be able to count all the vertical lines by using the delay feature on the scope. Just make sure you set the horizontal scale properly to see the correct waveform.

    If you can see the expected numbers on the scope, you need to check if the Port forwarding and CSI ports are enable (reg 0x33, reg 0x20).

    If all is correct, please check if CSI PASS is high or no (reg 0x35).

    Additionally you can check all debuging and error detection registers on the 954. These registers are:

     0x04, 0x05, 0x06, 0x36, 0x37, 0x41, 0x4D, 0x4E, 0x55, 0x56, 0x57, 0x6D, 0x72-0x76, 0x7A, 0x7B, 0xD2-0xDB

  • Hello Hamzeh,thanks for your time.

           I have checked all the registers on the UB954, and now post the status of the register when connected to OV2724, the status cannot output  image.

    OV2724 register status, which does not output image.

    [REGISTERS]
    Device = ALP Nano 1 - DS90UB954, Connector 1     
    Comments = "954_27243"
    Date = 02/20/2021
    Time = 09:51:51
    Reg = 0,0x0000,0x60
    Reg = 0,0x0001,0x00
    Reg = 0,0x0002,0x1E
    Reg = 0,0x0003,0x20
    Reg = 0,0x0004,0xDF
    Reg = 0,0x0005,0x01
    Reg = 0,0x0006,0x00
    Reg = 0,0x0007,0xFE
    Reg = 0,0x0008,0x1C
    Reg = 0,0x0009,0x10
    Reg = 0,0x000A,0x7A
    Reg = 0,0x000B,0x7A
    Reg = 0,0x000C,0x83
    Reg = 0,0x000D,0x09
    Reg = 0,0x000E,0x08
    Reg = 0,0x000F,0x7F
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x00
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x00
    Reg = 0,0x0016,0x00
    Reg = 0,0x0017,0x00
    Reg = 0,0x0018,0x00
    Reg = 0,0x0019,0x00
    Reg = 0,0x001A,0x00
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x04
    Reg = 0,0x001F,0x02
    Reg = 0,0x0020,0x20
    Reg = 0,0x0021,0x81
    Reg = 0,0x0022,0x00
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x00
    Reg = 0,0x0029,0x00
    Reg = 0,0x002A,0x00
    Reg = 0,0x002B,0x00
    Reg = 0,0x002C,0x00
    Reg = 0,0x002D,0x00
    Reg = 0,0x002E,0x00
    Reg = 0,0x002F,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x23
    Reg = 0,0x0034,0x40
    Reg = 0,0x0035,0x01
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x01
    Reg = 0,0x003C,0x14
    Reg = 0,0x003D,0x6F
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x40
    Reg = 0,0x0040,0x00
    Reg = 0,0x0041,0xA7
    Reg = 0,0x0042,0x71
    Reg = 0,0x0043,0x01
    Reg = 0,0x0044,0x00
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x00
    Reg = 0,0x0049,0x00
    Reg = 0,0x004A,0x00
    Reg = 0,0x004B,0x12
    Reg = 0,0x004C,0x01
    Reg = 0,0x004D,0x03
    Reg = 0,0x004E,0x04
    Reg = 0,0x004F,0x64
    Reg = 0,0x0050,0x00
    Reg = 0,0x0051,0x00
    Reg = 0,0x0052,0x00
    Reg = 0,0x0053,0x02
    Reg = 0,0x0054,0x00
    Reg = 0,0x0055,0x00
    Reg = 0,0x0056,0x00
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x5E
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0x00
    Reg = 0,0x005B,0x30
    Reg = 0,0x005C,0x18
    Reg = 0,0x005D,0x6C
    Reg = 0,0x005E,0x00
    Reg = 0,0x005F,0x00
    Reg = 0,0x0060,0x00
    Reg = 0,0x0061,0x00
    Reg = 0,0x0062,0x00
    Reg = 0,0x0063,0x00
    Reg = 0,0x0064,0x00
    Reg = 0,0x0065,0x80
    Reg = 0,0x0066,0x00
    Reg = 0,0x0067,0x00
    Reg = 0,0x0068,0x00
    Reg = 0,0x0069,0x00
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x006D,0x7C
    Reg = 0,0x006E,0x88
    Reg = 0,0x006F,0x88
    Reg = 0,0x0070,0x2B
    Reg = 0,0x0071,0x2C
    Reg = 0,0x0072,0xE4
    Reg = 0,0x0073,0x04
    Reg = 0,0x0074,0x38
    Reg = 0,0x0075,0x09
    Reg = 0,0x0076,0x60
    Reg = 0,0x0077,0xC5
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x01
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x20
    Reg = 0,0x007D,0x00
    Reg = 0,0x007E,0x00
    Reg = 0,0x007F,0x00
    Reg = 0,0x00A0,0x02
    Reg = 0,0x00A1,0x0F
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00A4,0x08
    Reg = 0,0x00A5,0x18
    Reg = 0,0x00A7,0x00
    Reg = 0,0x00A8,0x00
    Reg = 0,0x00A9,0x00
    Reg = 0,0x00AA,0x00
    Reg = 0,0x00AB,0x00
    Reg = 0,0x00AC,0x00
    Reg = 0,0x00AD,0x00
    Reg = 0,0x00AE,0x00
    Reg = 0,0x00AF,0x00
    Reg = 0,0x00B0,0x08
    Reg = 0,0x00B1,0x14
    Reg = 0,0x00B2,0x3F
    Reg = 0,0x00B3,0x08
    Reg = 0,0x00B4,0x25
    Reg = 0,0x00B5,0x00
    Reg = 0,0x00B6,0x18
    Reg = 0,0x00B7,0x00
    Reg = 0,0x00B8,0x8C
    Reg = 0,0x00B9,0x33
    Reg = 0,0x00BA,0x83
    Reg = 0,0x00BB,0x74
    Reg = 0,0x00BC,0x80
    Reg = 0,0x00BD,0x00
    Reg = 0,0x00BE,0x00
    Reg = 0,0x00BF,0x00
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D2,0x94
    Reg = 0,0x00D3,0x02
    Reg = 0,0x00D4,0x60
    Reg = 0,0x00D5,0xF2
    Reg = 0,0x00D6,0x00
    Reg = 0,0x00D7,0x00
    Reg = 0,0x00D8,0x00
    Reg = 0,0x00D9,0x00
    Reg = 0,0x00DA,0x00
    Reg = 0,0x00DB,0x00
    Reg = 0,0x00DC,0x00
    Reg = 0,0x00DD,0x00
    Reg = 0,0x00DE,0x00
    Reg = 0,0x00DF,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x35
    Reg = 0,0x00F5,0x34
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00
    Reg = 0,0x00FA,0x00
    Reg = 0,0x00FB,0x00


    Then I posted the register status when linking to OH0210. In this case, the image can be output normally. The only difference found is on register 0x54.

    [REGISTERS]
    Device = ALP Nano 1 - DS90UB954, Connector 1
    Comments = "954_02104"
    Date = 02/20/2021
    Time = 09:45:53
    Reg = 0,0x0000,0x60
    Reg = 0,0x0001,0x00
    Reg = 0,0x0002,0x1E
    Reg = 0,0x0003,0x20
    Reg = 0,0x0004,0xDF
    Reg = 0,0x0005,0x01
    Reg = 0,0x0006,0x00
    Reg = 0,0x0007,0xFE
    Reg = 0,0x0008,0x1C
    Reg = 0,0x0009,0x10
    Reg = 0,0x000A,0x7A
    Reg = 0,0x000B,0x7A
    Reg = 0,0x000C,0x83
    Reg = 0,0x000D,0x09
    Reg = 0,0x000E,0x08
    Reg = 0,0x000F,0x7F
    Reg = 0,0x0010,0x00
    Reg = 0,0x0011,0x00
    Reg = 0,0x0012,0x00
    Reg = 0,0x0013,0x00
    Reg = 0,0x0014,0x00
    Reg = 0,0x0015,0x00
    Reg = 0,0x0016,0x00
    Reg = 0,0x0017,0x00
    Reg = 0,0x0018,0x00
    Reg = 0,0x0019,0x00
    Reg = 0,0x001A,0x00
    Reg = 0,0x001B,0x00
    Reg = 0,0x001C,0x00
    Reg = 0,0x001D,0x00
    Reg = 0,0x001E,0x04
    Reg = 0,0x001F,0x02
    Reg = 0,0x0020,0x20
    Reg = 0,0x0021,0x81
    Reg = 0,0x0022,0x00
    Reg = 0,0x0023,0x00
    Reg = 0,0x0024,0x00
    Reg = 0,0x0025,0x00
    Reg = 0,0x0026,0x00
    Reg = 0,0x0027,0x00
    Reg = 0,0x0028,0x00
    Reg = 0,0x0029,0x00
    Reg = 0,0x002A,0x00
    Reg = 0,0x002B,0x00
    Reg = 0,0x002C,0x00
    Reg = 0,0x002D,0x00
    Reg = 0,0x002E,0x00
    Reg = 0,0x002F,0x00
    Reg = 0,0x0030,0x00
    Reg = 0,0x0031,0x00
    Reg = 0,0x0032,0x00
    Reg = 0,0x0033,0x23
    Reg = 0,0x0034,0x40
    Reg = 0,0x0035,0x01
    Reg = 0,0x0036,0x00
    Reg = 0,0x0037,0x00
    Reg = 0,0x0038,0x00
    Reg = 0,0x0039,0x00
    Reg = 0,0x003A,0x00
    Reg = 0,0x003B,0x01
    Reg = 0,0x003C,0x14
    Reg = 0,0x003D,0x6F
    Reg = 0,0x003E,0x00
    Reg = 0,0x003F,0x40
    Reg = 0,0x0040,0x00
    Reg = 0,0x0041,0xA7
    Reg = 0,0x0042,0x71
    Reg = 0,0x0043,0x01
    Reg = 0,0x0044,0x00
    Reg = 0,0x0045,0x00
    Reg = 0,0x0046,0x00
    Reg = 0,0x0047,0x00
    Reg = 0,0x0048,0x00
    Reg = 0,0x0049,0x00
    Reg = 0,0x004A,0x00
    Reg = 0,0x004B,0x12
    Reg = 0,0x004C,0x01
    Reg = 0,0x004D,0x03
    Reg = 0,0x004E,0x04
    Reg = 0,0x004F,0x64
    Reg = 0,0x0050,0x00
    Reg = 0,0x0051,0x00
    Reg = 0,0x0052,0x00
    Reg = 0,0x0053,0x02
    Reg = 0,0x0054,0x01
    Reg = 0,0x0055,0x00
    Reg = 0,0x0056,0x00
    Reg = 0,0x0057,0x00
    Reg = 0,0x0058,0x5E
    Reg = 0,0x0059,0x00
    Reg = 0,0x005A,0x00
    Reg = 0,0x005B,0x30
    Reg = 0,0x005C,0x18
    Reg = 0,0x005D,0x6C
    Reg = 0,0x005E,0x00
    Reg = 0,0x005F,0x00
    Reg = 0,0x0060,0x00
    Reg = 0,0x0061,0x00
    Reg = 0,0x0062,0x00
    Reg = 0,0x0063,0x00
    Reg = 0,0x0064,0x00
    Reg = 0,0x0065,0x66
    Reg = 0,0x0066,0x00
    Reg = 0,0x0067,0x00
    Reg = 0,0x0068,0x00
    Reg = 0,0x0069,0x00
    Reg = 0,0x006A,0x00
    Reg = 0,0x006B,0x00
    Reg = 0,0x006C,0x00
    Reg = 0,0x006D,0x7C
    Reg = 0,0x006E,0x88
    Reg = 0,0x006F,0x88
    Reg = 0,0x0070,0x2B
    Reg = 0,0x0071,0x2C
    Reg = 0,0x0072,0xE4
    Reg = 0,0x0073,0x04
    Reg = 0,0x0074,0x38
    Reg = 0,0x0075,0x09
    Reg = 0,0x0076,0x60
    Reg = 0,0x0077,0xC5
    Reg = 0,0x0078,0x00
    Reg = 0,0x0079,0x01
    Reg = 0,0x007A,0x00
    Reg = 0,0x007B,0x00
    Reg = 0,0x007C,0x20
    Reg = 0,0x007D,0x00
    Reg = 0,0x007E,0x00
    Reg = 0,0x007F,0x00
    Reg = 0,0x00A0,0x02
    Reg = 0,0x00A1,0x0F
    Reg = 0,0x00A2,0x00
    Reg = 0,0x00A3,0x00
    Reg = 0,0x00A4,0x08
    Reg = 0,0x00A5,0x18
    Reg = 0,0x00A7,0x00
    Reg = 0,0x00A8,0x00
    Reg = 0,0x00A9,0x00
    Reg = 0,0x00AA,0x00
    Reg = 0,0x00AB,0x00
    Reg = 0,0x00AC,0x00
    Reg = 0,0x00AD,0x00
    Reg = 0,0x00AE,0x00
    Reg = 0,0x00AF,0x00
    Reg = 0,0x00B0,0x08
    Reg = 0,0x00B1,0x14
    Reg = 0,0x00B2,0x3F
    Reg = 0,0x00B3,0x08
    Reg = 0,0x00B4,0x25
    Reg = 0,0x00B5,0x00
    Reg = 0,0x00B6,0x18
    Reg = 0,0x00B7,0x00
    Reg = 0,0x00B8,0x8C
    Reg = 0,0x00B9,0x33
    Reg = 0,0x00BA,0x83
    Reg = 0,0x00BB,0x74
    Reg = 0,0x00BC,0x80
    Reg = 0,0x00BD,0x00
    Reg = 0,0x00BE,0x00
    Reg = 0,0x00BF,0x00
    Reg = 0,0x00D0,0x00
    Reg = 0,0x00D2,0x94
    Reg = 0,0x00D3,0x02
    Reg = 0,0x00D4,0x60
    Reg = 0,0x00D5,0xF2
    Reg = 0,0x00D6,0x00
    Reg = 0,0x00D7,0x00
    Reg = 0,0x00D8,0x00
    Reg = 0,0x00D9,0x00
    Reg = 0,0x00DA,0x00
    Reg = 0,0x00DB,0x00
    Reg = 0,0x00DC,0x00
    Reg = 0,0x00DD,0x00
    Reg = 0,0x00DE,0x00
    Reg = 0,0x00DF,0x00
    Reg = 0,0x00F0,0x5F
    Reg = 0,0x00F1,0x55
    Reg = 0,0x00F2,0x42
    Reg = 0,0x00F3,0x39
    Reg = 0,0x00F4,0x35
    Reg = 0,0x00F5,0x34
    Reg = 0,0x00F8,0x00
    Reg = 0,0x00F9,0x00
    Reg = 0,0x00FA,0x00
    Reg = 0,0x00FB,0x00

    conclusion:When OV2724 is initialized, the value of register 0x54 is 0x00, and images cannot be output in this state. When OH0210 is initialized, the value of register 0x54 is 0x01, and images can be output in this state.

    What is the normal state of register 0x54? Why is its value 0x01 when it can output images, and its value is  0x00 when it can't output images?

    Could you help me explain this phenomenon?  If 0x01 is its normal value, what can I do to change its value?

    Kui

  • Hello Kui,

    reg 0x54 is not the reason of getting data or not. The default value should be 0x00. having 0x01 means there is at least one CSI-2 error detected by the SER from the Image sensor.

    But, as per the register dumps, It looks like you are receiving data in both cases.

    Can you please measure the output CSI-2 signal (1x CLK lane and 1x Data lane) from the 954, in both cases, and compare them?

  • Hello Hamzeh,

            Thanks for your time. I have checked the signal output from 954 with an oscilloscope and found that there is little difference between the two states. So I checked the driver again and found that it was a problem similar to image-id. Now I have solved it. Thanks again for your time.

           I would like to ask you another question. I have connected a sensor to the 953. Can I connect an I2C communication temperature sensor to the same UB953? Communication between temperature sensor and 953 via I2c

  • Hello Kui,

    do you mean the problem is found to be in the driver of the Raspberry Pi, correct?

    Sure, you can connect any device to the local I2C bus in the camera, and communicate with it remotely through the SER.

  • Hello Hamzeh,

              
               Yes, the problem is found  in the driver of the Raspberry Pi.  thanks again for your time.

  • Glad that you have solved the problem!