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.

TDA2P-ACD: Using dual UB962 for 8 cameras (csi2 ports only)

Part Number: TDA2P-ACD

Hi, ALL.

We're planning to connnect 8 cameras to TDA2P-ACD using only csi-ports (csi_0 with 4 DL config and csi_1 with 2 DL config), please, see picture below.

(1) Is it possible to connect 8 cameras using both csi-ports only (with dual UB962)?

(2) We already tested UB962 with TDA2P using only csi_0 port in 4 DL mode. It works fine with 4 cameras!
Now we want to try UB962 (4 cameras) with csi0_port in 2 DL mode.
Which steps we need to do for using 2 DL connection?
We have problems.
Here is sample vision_sdk code. We changed '_4LANES' constant to 'SYSTEM_VIFW_2LANES', but 4 blank screens was observed.

{SENSOR_SONY_IMX224_CSI2,
        {1u,{0x36,0x37,0x38,0x39},{ 0x20, 0x21, 0x22, 0x23 }, TRUE, SYSTEM_VIFW_2LANES, SYSTEM_VIFM_SCH_CSI2,
            SYSTEM_CSI2_RAW12 /* CSI2 DataFormat*/, 0 /*Virtual Channel Id*/,0, /* IsCSIPostEnable Required */
                {TRUE /* isCplxCfgValid */,
                    {{FALSE, 2u}, /* Clock Lane */
                     {FALSE, 1u}, /* data1Lane */
                     {FALSE, 3u}, /* data2Lane */
                     {TRUE, 4u}, /* data3Lane*/
                     {FALSE, 5u}},/* data4Lane */
                     800u /* csi2PhyClk */ }}},
WriteI2C(UB962, 0x33, 0x35); /* .CSI_CTL, CSI_ENABLE (Enabled), CSI_CONTS_CLOCK (Enabled), CSI_ULP (0x00), CSI_LANE_COUNT (Using 2 Lanes), */

Then we tried to change '800u' csi2PhyClk to '1600u' (or to '1200u)'. But any value greater than 1000 causes an assertion failure in 'DDR_check' code, see below. (1ns check)

    /* Get DDR clock period in nS */
    ddrClkPeriod = (Float32)((Float32)csi2Clk * (Float32)1000000U);
    ddrClkPeriod = (Float32)((Float32)1U / ddrClkPeriod);
    ddrClkPeriod = (Float32)(ddrClkPeriod * (Float32)1000000000U);
    GT_assert(VpsHalTrace, ((uint32_t)ddrClkPeriod > 0U));
    temp    = ((Float32)20U / ddrClkPeriod);
    thsTerm = (uint32_t)temp;

Is it possible to configure TDA2P csi-port in 2 datalane mode using UB962?

Thanks in advance.
Best regards.

  • Hi,

    Please find answers to your questions below.

    1, yes, 8 channels is possible, provided CSI BW is enough.

    2, i did not get this. Are you trying to enable 2L on CSI inst0? In this case, we also need to change ub962 configuration. 

    Rgds,

    Brijesh

  • Hi Senchuss,

    In addition to what Brijesh has mentioned. Presuming that VisionSDK is being used.

    1. Configure UB962 to stream on 2 lanes
    2. Determine the CSI2 clock speed that's being configured in UB962, configure the same in csi2PhyClk
    3. Configure the Capture Link to receive on 2 lanes (refer file vision_sdk\apps\src\rtos\usecases\csi2_cal_multi_cam_view\chains_csi2CalMultiCam.c and function setCaptureParams () )
      1. ensure to turn-off un-used lanes

    Regards, Sujith

  • Hi.
    Thank you for answers.
    We made a mistake in 962 Two-DL config. We fixed config both for CSI2 trasmitter and receiver. Today we tested UB962 with custom TDA3-board using 2DL config. It works with 4 cameras, but sometimes freezes occur when watching all four videos in 2DL config against 4DL config. Maybe the problem is too long FPC-cable in 2DL config when data rate is more faster per lane. Next week we will test the 2DL four cameras configuration now on the TDA2P-EVM board with a shorter FPC-cable. I really hope that there will be no problems. Then we will make a board with two UB962 with a connector type QTH-020 (samtec diff.connector) so that we can connect this board directly to QSH-020 connector located on TDA2P-EVM using both CSI2 ports. I think we need about a month to test this new board. But this thread will be locked. Can I ask some questions later in this thread? I think we will need answers of how to configure both CSI-ports in VisionSDK.
    Thanks a lot.

  • Hi,

    Sure, you could reopen the thread or start new thread.. 

    Rgds,

    Brijesh