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.

TDA4VM: MAX9286:DATATYPE :RAW 12BIT fail

Part Number: TDA4VM

Hi, TI experts.

We are working on several cameras connect to CSIRX via max9286/max9296 deserializes.(we are using PSDK8.00)

 The HW connections are as follows,

      TDA4EVM CSI0  --->  MAX9286  ---> 4 * MAX96705 ----> 4 * sensor

As we use YUYV camera, we skipped all VISS, LDC nodes and configure a CSIRX -> DP display graph.(works, image captured correctly)

howerver we use RAW camera without ISP ,it cannot work.

1、The chip configuration of 9286 + 96705 has been locked, and the data output from 9286 to CSI0 can be tested with an oscilloscope;

2、Camera without ISP (CSI-2 Output uses RAW11/RAW12) ({TIVX_RAW_IMAGE_16_BIT, 11}), found no data update;

3、cameras without ISP (CSI-2 Output uses YUV 422 8-bit) ({VX_DF_IMAGE_UYVY, 7}), change the output format of 9286 to (YUV 422-8 bit), and then there is a data update (9286+ 92705l configuration is valid) The following is a screenshot of the data;

9286:

0x12=0xf3:CSI-2 Output uses YUV 422 8-bit

0x12=0xf7:CSI-2 Output uses RAW11/RAW12

isp.txt

question:

1、LaneBandSpeed=w * h * fps * bpp * blanking / (1024 * 1024 * lane_num),

when:{VX_DF_IMAGE_UYVY, 7}, bpp: 16, blanking: 1.2, w: 1344 h: 968 fps: 30

I want to confirm: {TIVX_RAW_IMAGE_16_BIT, 11}: bpp=? blanking=?(16 and 1.2) (I checked the official website for similar problems, it seems that bpp should be changed to 24), please help to confirm?

2、We want to use the V4l2 framework of linux. Is it supported by SDK8.1? We can adjust the camera on the Linux side on 8.1.

3、 Can you give some advices on debugging the raw camera?(9286+96705)

  • Hi,

    3、cameras without ISP (CSI-2 Output uses YUV 422 8-bit) ({VX_DF_IMAGE_UYVY, 7}), change the output format of 9286 to (YUV 422-8 bit), and then there is a data update (9286+ 92705l configuration is valid) The following is a screenshot of the d

    Do you mean when data format is set to YUV422, it is able to detect the input and able to capture input data? 

    1、LaneBandSpeed=w * h * fps * bpp * blanking / (1024 * 1024 * lane_num),

    when:{VX_DF_IMAGE_UYVY, 7}, bpp: 16, blanking: 1.2, w: 1344 h: 968 fps: 30

    I want to confirm: {TIVX_RAW_IMAGE_16_BIT, 11}: bpp=? blanking=?(16 and 1.2) (I checked the official website for similar problems, it seems that bpp should be changed to 24), please help to confirm?

    For 12bit data, bpp is 12, blanking is typically kept as 20%. But lane speed could be higher than what is calculated from above equation. So please check the lane speed from deserializer output. The above equation gives minimum required lane speed.

    2、We want to use the V4l2 framework of linux. Is it supported by SDK8.1? We can adjust the camera on the Linux side on 8.1.

    Yes, but it still does not support framework to configure SERDES, i would recommend using R5F drivers for the time being. 

    3、 Can you give some advices on debugging the raw camera?(9286+96705)

    can you help me above questions?

    Regards,

    Brijesh

  • HI

        it cannot work well.

    For 12bit data, bpp is 12, blanking is typically kept as 20%. But lane speed could be higher than what is calculated from above equation. So please check the lane speed from deserializer output. The above equation gives minimum required lane speed.

       I check the lane speed from deserializer output:OK( Auto-detect D-PHY data rate rangge)

    9286:

    0x13:0x0f( Auto-detect D-PHY data rate rangge)

    0x12: 0xf7(Enable CSI data lanes D0–D3\CSI-2 Output uses RAW11/RAW12)

    0x15:0x3->0x0b(when Stream on set =>0x03->0x0b)

    The following log and driver parameters to fail:

    LaneBandSpeed=w * h * fps * bpp * blanking / (1024 * 1024 * lane_num) =》140.4 

    static IssSensor_CreateParams raw_testpat_CreatePrms = {
    UB9XX_RAW_TESTPAT, /*sensor name*/
    0x0, /*i2cInstId*/
    {0, 0, 0, 0, 0, 0, 0, 0}, /*i2cAddrSensor*/
    {0, 0, 0, 0, 0, 0, 0, 0}, /*i2cAddrSer*/
    /*IssSensor_Info*/
    {
    {
    RAWTESTPAT_OUT_WIDTH, /*width*/
    RAWTESTPAT_OUT_HEIGHT, /*height*/
    1, /*num_exposures*/
    vx_false_e, /*line_interleaved*/
    {
    {TIVX_RAW_IMAGE_16_BIT, 11},/*dataFormat and MSB [0]*/
    },
    0, /*meta_height_before*/
    0, /*meta_height_after*/
    },
    ISS_SENSOR_RAWTESTPAT_FEATURES, /*features*/
    ALGORITHMS_ISS_AEWB_MODE_NONE, /*aewbMode*/
    30, /*fps*/
    4, /*numDataLanes*/
    {1, 2, 3, 4}, /*dataLanesMap*/
    {0, 0, 0, 0}, /*dataLanesPolarity*/
    CSIRX_LANE_BAND_SPEED_120_TO_160_MBPS, /*csi_laneBandSpeed*/
    },
    1, /*numChan*/
    9702, /*dccId*/
    };

    [15-42-18-157]root@j7-evm:~# i2cdump -y -f 3 0x48
    [15-42-18-286]No size specified (using byte-data access)
    [15-42-18-286] 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
    [15-42-18-286]00: ef 00 00 01 00 00 40 ac 27 90 ff e4 91 f3 50 0b ?..?..@?'?.???P?
    [15-42-18-287]10: 00 00 f7 0f e4 03 00 01 00 00 60 00 f6 ff 40 02 ..????.?..`.?.@?
    [15-42-18-287]20: 55 00 00 00 00 00 00 b1 00 00 00 00 00 00 00 00 U......?........
    [15-42-18-287]30: 00 40 99 99 35 00 00 00 00 00 00 2e 24 54 c8 22 .@??5.......$T?"
    [15-42-18-287]40: 5a 10 00 a0 00 00 01 11 e1 01 ff 00 00 a0 02 00 Z?.?..????...??.
    [15-42-18-287]50: 00 00 00 00 00 00 00 00 00 00 00 40 ac 27 00 00 ...........@?'..
    [15-42-18-287]60: 45 ff 1f 00 00 12 96 00 50 be 00 00 00 00 00 00 E.?..??.P?......
    [15-42-18-287]70: 10 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ??..............
    [15-42-18-288]80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-288]90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-288]a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-288]b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-288]c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-288]d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-289]e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    [15-42-18-291]f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

    raw_failed.log

  • Hi

    0x13:0x0f( Auto-detect D-PHY data rate rangge)

    What is auto-detect D_PHY data rate range? I think the lane speed has to be fixed, it should not be auto-detection...

    LaneBandSpeed=w * h * fps * bpp * blanking / (1024 * 1024 * lane_num) =》140.4

    Please replace 1024 -> 1000. Please include the number of channels in this equation. I still think 140Mbps lane speed seems very less. Are you sure deserializer is transmitting data at this speed? Could you please check with the deserializer provider? 

    Regards,

    Brijesh

  • 1、{VX_DF_IMAGE_UYVY, 7},0x12 = 0xf3 LaneBandSpeed=CSIRX_LANE_BAND_SPEED_120_TO_160_MBPS,

    Sensor data through the screen  show :


    2、{TIVX_RAW_IMAGE_16_BIT, 11}  0x12 = 0xf7 LaneBandSpeed=CSIRX_LANE_BAND_SPEED_120_TO_160_MBPS,

    it cannot work well.

    send :p

    [15-02-23-456] PERF: TOTAL: avg = 0 usecs, min/max = 4294967295 / 0 usecs, #executions = 0
    [15-02-23-456]
    [15-02-23-457] PERF: TOTAL: 0. 0 FPS

    [15-01-19-134][MCU2_0] 1027.106682 s: VX_ZONE_ERROR:[tivxGetTargetKernelInstanceContext:279] target kernel instance is OK
    [15-01-19-136][MCU2_0] 1027.106737 s: VX_ZONE_ERROR:[tivxGetTargetKernelInstanceState:257] target kernel instance is OK
    [15-01-19-228][MCU2_0] 1027.106802 s: VX_ZONE_ERROR:[tivxCaptureEnqueueFrameToDriver:381] CAPTURE: retrieve buffer from buffer queue!!!
    [15-01-19-229][MCU2_0] 1027.106975 s: VX_ZONE_ERROR:[tivxCaptureProcess:1031] CAPTURE: tivxCaptureEnqueueFrameToDriver !!!
    [15-01-19-229][MCU2_0] 1027.107034 s: VX_ZONE_WARNING:[tivxCaptureIsAllChFrameAvailable:813] tivxCaptureIsAllChFrameAvailable!!!
    [15-01-19-229][MCU2_0] 1027.107092 s: VX_ZONE_ERROR:[tivxCaptureProcess:1062] CAPTURE: is_all_ch_frame_available=0 !!!
    [15-01-19-230][MCU2_0] 1027.107138 s: VX_ZONE_ERROR:[tivxCaptureTimeout:283] CAPTURE: tivxCaptureTimeout start!!!
    [15-01-19-230][MCU2_0] 1027.107309 s: VX_ZONE_ERROR:[tivxGetTargetKernelInstanceContext:279] target kernel instance is OK
    [15-01-19-230][MCU2_0] 1027.139544 s: VX_ZONE_ERROR:[tivxCaptureTimeout:287] CAPTURE: tivxCaptureTimeout end!!!
    [15-01-19-230][MCU2_0] 1027.139607 s: VX_ZONE_ERROR:[tivxCaptureTimeout:304] CAPTURE: tivxCaptureTimeout 5!!!
    [15-01-19-231][MCU2_0] 1027.139654 s: VX_ZONE_ERROR:[tivxCaptureDequeueFrameFromDriver:870] tivxCaptureDequeueFrameFromDriver
    [15-01-19-231][MCU2_0] 1027.139734 s: VX_ZONE_WARNING:[tivxCaptureIsAllChFrameAvailable:813] tivxCaptureIsAllChFrameAvailable!!!
    [15-01-19-231][MCU2_0] 1027.139798 s: VX_ZONE_ERROR:[tivxCaptureProcess:1062] CAPTURE: is_all_ch_frame_available=1 !!!
    [15-01-19-233][MCU2_0] 1027.139905 s: VX_ZONE_ERROR:[tivxCaptureProcess:1081] CAPTURE: tivxQueueGet !!!
    [15-01-19-236][MCU2_0] 1027.239428 s: CsirxDrv_udmaCQEventCb
    [15-01-19-237][MCU2_0] 1027.572668 s: CsirxDrv_udmaCQEventCb
    [15-01-19-299][MCU2_0] 1027.905910 s: CsirxDrv_udmaCQEventCb
    [15-01-19-634][MCU2_0] 1028.239152 s: CsirxDrv_udmaCQEventCb
    [15-01-19-971][MCU2_0] 1028.572394 s: CsirxDrv_udmaCQEventCb
    [15-01-20-305][MCU2_0] 1028.905637 s: CsirxDrv_udmaCQEventCb
    [15-01-20-622][MCU2_0] 1029.238881 s: CsirxDrv_udmaCQEventCb

    3、0x13:0x0f( Auto-detect D-PHY data rate rangge)

    What is auto-detect D_PHY data rate range? I think the lane speed has to be fixed, it should not be auto-detection...

    it is ok.Camera without ISP can work well(0x13 = 0xf)

  • Hi xiangxu kong,

    Not sure how auto-detect works in maxim deserializer.

    But since it works fine, i am closing this ticket.

    Thank you.

    Regards,

    Brijesh 

  • Hi:

    But since it works fine, i am closing this ticket.

    {TIVX_RAW_IMAGE_16_BIT, 11}  0x12 = 0xf7 LaneBandSpeed=CSIRX_LANE_BAND_SPEED_120_TO_160_MBPS,

    it cannot work well.

  • HI:

     4 * sensor---->4 * MAX96705 ---->MAX9286  --->(RAW) CSI0  --->  VISS(isp :RAW---->YUV420)---->DISPLAY

  • Hi xiangxu kong,

    Between YUV and RAW capture, the only thing which changes is data type and probably lane speed. If it is working fine for the YUV data type, we would just have to change data type for the RAW capture in the CSIRX. There is nothing else required. 

    So i would suggest checking the configuration in your deserializer. 

    Regards,

    Brijesh