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.

RTOS/TDA2PXEVM: Capture Data from 4 Cameras using CSI2_PHY2

Part Number: TDA2PXEVM

Tool/software: TI-RTOS

Hi All,

We have 4 CVBS cameras connected through decoder to TDA2PX CSI2_PHY2. I have created a Capture+Display use case. Also I have added the decoder by using VisionSDK_UserGuide_ISS_SensorFramework.pdf . Right now I need to verify capture from a Single CVBS camera so that the decoder is verified.

In the file   vision_sdk/apps/src/rtos/iss/src/sensor/iss_sensor_tda2px.c.

const static ChainsCommon_SensorIntfInfo gSensorInterfaceInfo[] = {

{SENSOR_INTERSIL_ISL79987_CSI2,


{4u, {0x88}, {0x88}, FALSE/* Disabling Multichannel*/,

SYSTEM_VIFW_2LANES, SYSTEM_VIFM_SCH_CSI2,

SYSTEM_CSI2_YUV422_8B        /* CSI2 DataFormat*/,

0 /*Virtual Channel Id*/,

0, /* Is CSI Enable Required in UB960 */

{TRUE /* isCplxCfgValid */,
{{FALSE, 1}, /* Clock Lane */
{FALSE, 2}, /* data1Lane */
{FALSE, 3}, /* data2Lane */
{FALSE, 0}, /* data3Lane*/
{FALSE, 0}},/* data4Lane */

216 /* csi2PhyClk */ },

FVID2_VID_DECODER_ISL79987_DRV, /* sensorDrvId */
FALSE, /* sensorBroadcast */
FALSE}}, /* enableFsin */

***********************************************************************

const static IssUtils_Ub96xSerDesCfg gSensorSerDesInfo[] = {

{SENSOR_INTERSIL_ISL79987_CSI2, NULL, 0, NULL, 0, BSPUTILS_FPDCAMPOWERLEVEL_OFF, 0U},

};

Here 0x88 is the I2C address of the decoder.

What changes will be required for connecting 4 cameras to the decoder.

From the available surround view code in Vision SDK the parameter Multichannel has been  made TRUE for all the surround view cases. Do I need  to follow the same? Just to note that we do not have any SERDES connection.

The pipeline is 4 CVBS camera-----------> ISL Decoder--------------------->CSI2_PHY2 ( TDA2P)

Also will there be any changes required in the parameter Virtual Channel Id.

Regards,

Deepika

  • Deepika,

    If you are not planning to use ISS/ISP, and also SERDES, then you could do complete configuration for ISL decoder and also for the CAL from the usecase itself. I dont really think you require to use sensor frame work.
    You could initialize CAL parameters like PHY clock, lane position, polarity etc. from the the usecase itself. Also if ISL decoder requires any configuration, you could do that from the usecase itself..

    Rgds,
    Brijesh
  • Hi Brijesh,

    I am using the Capture Link to capture data from the decoder so according to my understanding ISS will be required to capture and save captured data.
    Please correct me if I am wrong.

    Also for capturing data for 4 cameras, what changes will be required in the use case.
    The decoder has an ISP and it gives YUV422 output.


    Regards,
    Deepika
  • Hi Deepika,

    ISS is required since the Capture module is part of the ISS subsytem, but sensor framework is not required..
    For multi-channel capture, you need to open/configure driver in multichannel mode, set the virtual channels, data type etc..
    Please refer to the ISS capture links userguide or any one of the multi-channel usecase, you will get the idea about how to change for multi-channel capture.

    Rgds,
    Brijesh
  • Hi Brijesh,

    So instead of calling the function appStartIssSensorSerDes() can I write my own function for configuring CAL,the decoder.
    I will try to implement this and let you know if there are any issues.

    Also for multi camera capture can I refer iss_mult_capture_isp_2d_3d_sv_tda3x use case.

    Regards,
    Deepika
  • Hi Brijesh,

    While looking at the use cases I checked the usecase csi2_cal_multi_cam_view.This is not using Sensor framework, and it supports 4 cameras also.Can I add the decoder related register configurations in this use case?

    Regards,
    Deepika
  • Yes, you could this usecase..

    Rgds,

    Brijesh

  • Thanks Brijesh,

    So this use case takes sensor related data from vidSensor params, so we need to add decoder in video_sensor.h?

    Also this use case calls VidSensor_create() to start capture device. Can I bypass the function ChainsCommon_MultiCam_StartCaptureDevice().

    If I bypass the above functions, how to determine that my capture has started??



    Regards,
    Deepika

  • Well you could add a new sensor in video_sensor.
    But as i said, i would recommend make a copy of this usecase, add all config in the usecase itself. That way, your usecase is independent of video sensor or any other layer..

    Rgds,
    Brijesh
  • Thanks Brijesh,

    I will add all the decoder related config in the use case , making it independent of video_sensor layer and the ISS Sensor layer.

    Regards,
    Deepika
  • Hi Brijesh,

    I am using a copy of the use case  csi2_cal_multi_cam_view . But I am stuck inside the function  ChainsCommon_MultiCam_StartCaptureDevice().This function internally calls VidSensor_create() and Fvid2_control()  which sends data of each channel to display . I am not able to understand whether not calling the ChainsCommon_MultiCam_StartCaptureDevice() will create any issues in sending the captured data to display.

    I have done all the decoder related changes in the use case it self before the capture link starts.

    Regards,

    Deepika

  • Hi Deepika,

    I am not sure, i understand this change.
    The Capture Link would receive and send the data and sensor start would just enable the sensor to start streaming.

    If the control / command to start is not supported by sensor (e.g. wrong I2C slave address, slave is not responding), it would timeout after the specified timeout duration.

    regards,
    Sujith
  • Hi Sujith,

    Thanks for your reply. I would just brief you what changes I have made.
    I have created a use case similar to csi2_cal_multi_cam_view. In this use case ,in the StartApp() I have added all the CAL params like clock,complexio,phy instance. After this I added a function for configuring the video decoder registers to stream data.

    I see the csi2_cal_multi_cam_view usecase, it has called the function ChainsCommon_MultiCam_StartCaptureDevice() which I do not need to call.This function internally called Vidsensor_create() and FVid2_control().Now my query is that do I need to call the function Vidsensor_create() and Fvid2_control() to send the captured data to the display driver.

    Regards,
    Deepika
  • Hi Deepika,

    Are you still facing this issue? If not can close this thread?

    Regards,
    Sujith
  • Hi Sujith and Brijesh,

    I have created a use case taking the example of csi2_cal_multi_cam user case and added all the decoder related and csi2 cal configuration data in the use case itself.
    I am closing the thread now.Once the board comes,will have further queries.

    Thanks for your help.
    Deepika