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: FPD4 Multicam with CSIRX speeds > 1,500 Mbps

Part Number: TDA4VM

Tool/software:

Hello,

I have a TDA4VM with a UB9702 (FPD4) Deserializer attached.  I have gotten one IMX728 to stream with the CSIRX set to 2,500 Mbps (and the deserializer is set up to do deskew), but the moment I try to do 2x IMX728's I found that the TDA4 seems to lock up. (cannot get full statistics or exit - it just hangs)

I've also tried this with IMX390s - I can stream an IMX390 @ 2,500 Mbps, or 2x IMX390s @ 1,500Mbps, but I cannot stream 2x IMX390s @2,500Mbps - with similar issues.

How can I troubleshoot this?

UB9702 deskew setup is below:

    // ...
    ub960_drv_readReg(des_addr, UB9702_CSI_CTL_REG, &reg_val);
    reg_val |= UB9702_CSI_CAL_EN << UB9702_CSI_CAL_EN_SHIFT;
    ub960_drv_writeReg(des_addr, UB9702_CSI_CTL_REG, reg_val);

    ub960_drv_readReg(des_addr, UB9702_CSI_CTL2_REG, &reg_val);
    reg_val |= 1 << UB9702_CSI_CLK0_EN_SHIFT;
    reg_val |= 0b11 << UB9702_CSI_CAL_LEN_SHIFT;
    reg_val |= 1 << UB9702_CSI_CAL_SINGLE_SHIFT;
    ub960_drv_writeReg(des_addr, UB9702_CSI_CTL2_REG, reg_val);
    // ...

  • Hi Stuart,

    We have tried IMX390 with UB9702 with 2.5Gbps lane speed on EVM with Fusion-2 board and its working fine. So can you please refer to UB9702 settings from the SDK?

    Regards,

    Brijesh

  • Hi Brijesh,

    I looked through the J721E SDK 10.1 for the UB9702 configs, and noticed a few things:

    1: It's set up for CSI_TX_SPEED = 1500 MHz (CSI_PLL_DIVIDER = 15, PLL_FB_DIV=4, PLL_OUT_DIV=0)

    2: It doesn't do deskew setup (necessary for speeds > 1,600 Mbps)

    3: It's set for FPD3 mode (which is fine for IMX390s, but not for IMX728s)

    Am I not understanding this system? Or did you guys put custom settings into the UB9702 to test this particular case?

    I have successfully tested a singular IMX390 at 2.5Gbps lane speed - so I believe my configurations are mostly correct - I simply cannot get two to stream to the TDA4.

    (Also please remember that I can't get 2x IMX728s to stream, which is the ultimate goall).

    Thank you!

  • Quick update:

    I found out that some of the changes I made to the app_multi_cam.cfg was preventing it from ever working.  After correcting this, I have gotten 2x IMX390's working @ 2.5 Gbps with my deserializer configs (including a tweak from SDK 10.1) - thank you for helping me catch that.

    Can you offer any ideas as to why I can't stream 2x imx728's @ 2.5 Gbps?

    When I run multicam I can switch between running cameras by simply changing register 0x20 to only forward one of the two videos.

  • ok, when you use IMX390, the output is still 2.5Gbps, so this highest speed is working fine. 

    I am not exactly sure about imx728. can you please make that below guidelines are followed when adding a new image sensor? Essentially please make sure to enable streaming from sensor only in streamon callback and not before that callback. 

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/psdk_rtos/docs/user_guide/developer_notes_image_sensor.html

    Regards,

    Brijesh

  • I have followed the guidelines - the camera does not stream until the stream-on function is called.

  • and ub9702 settings are same for imx390 and imx728? If they are, then something still in imx728, which is pending.. Not sure exactly. If it is working fine for imx390, ub9702 is setup correctly. Maybe, can you try first enabling color bar from serializer and see if it works?

    Rgds,

    Brijesh

  • Brijesh, thank you for your reply.

    No, I am not using the same deserializer configurations. The IMX728 is running an FPD4 serializer, so the UB9702 needs to be set in FPD4 mode, which I have done.  A single IMX728 works.  Two imx728s work too, just not at the same time (I flip the upper bits in register 0x20 of the 9702 to enable just one camera instead of 2).

    I'm concerned I have either a bandwidth issue or a deskew issue, or there's an issue in the deserializer for multiple cameras that I missed. but I was hoping you would be able to help me figure out which of those problems it may be.

  • Hi Stuart,

    Any other change except enabling FPD4 link? 

    I am not sure about UB9702, but since IMX390 is working for 2.5Gbps lane speed, UB9702 and CSIRX are working fine. You would need to check where the issue between camera and UB9702.

    Regards,

    Brijesh

  • Brijesh,

    Internally we came to the conclusion that there is not enough horizontal blanking, given that video kind of shows up for a moment before cutting out altogether.

    I did not, however, see any buffer overflow messages in the UB9702 or UB971, which is why I am confused.  Do these registers work the same way as they did in the UB960?

    Thanks,

  • Hi Stuart,

    Sorry, i am no expert in UB9702, so will not able to help much here. I would suggest to start a new thread for UB9702 specific questions. 

    Regards,

    Brijesh