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: CSITX block when csirx input 2ch

Part Number: TDA4VM


We use J721S2 and SDK8.4

We use example code vx_app_multi_cam to test CSITX function.

We use csirx source connect to csitx input.

obj->csitx_node = tivxCsitxNode(obj->graph, csitx_config, obj->captureObj.raw_image_arr[0]);

If we select csirx 1 ch and csitx will output successfully.

But if we  select csirx 2 ch and csitx will block on tivxCsitxProcess function.

It seems stop at tivxEventWait(prms->frame_available, TIVX_EVENT_TIMEOUT_WAIT_FOREVER);

How can I use CSITX function when source csirx is 2ch?

  • Hi,

    How do you select second channel in csitx? I really doubt that CSITX node yet supports multiple channel output. I think it just selects one channel and sends it out. 

    Regards,

    Brijesh 

  • Because our capture node is 8ch camera.

    We only want to select one ch camera display on csitx.

    We test csitx output successfully when capture node is 1ch camera.

    If capture node more than 1ch, csitx will fail.

    This is our csitx config setting.

    _________________________________________________________

    #define NUM_CHANNELS (1U)
    #define CSITX_INST_ID (0U)
    #define CSITX_INST_ID_1 (1U)

    #define CAPT_INST_ID (0U)

    #define CSITX_LANE_BAND_SPEED (TIVX_CSITX_LANE_BAND_SPEED_770_TO_870_MBPS)
    #define CSIRX_LANE_BAND_SPEED (TIVX_CAPTURE_LANE_BAND_SPEED_720_TO_800_MBPS)
    #define CSITX_LANE_SPEED_MBPS (300)

    vx_user_data_object csitx_config;
    tivx_csitx_params_t local_csitx_config;
    uint32_t loopCnt;
    tivx_csitx_params_init(&local_csitx_config);
    local_csitx_config.numInst = 1U;
    local_csitx_config.numCh = NUM_CHANNELS;
    local_csitx_config.instId[0U] = CSITX_INST_ID;
    local_csitx_config.instCfg[0U].rxCompEnable = (uint32_t)vx_true_e;
    local_csitx_config.instCfg[0U].rxv1p3MapEnable = (uint32_t)vx_true_e;
    local_csitx_config.instCfg[0U].laneBandSpeed = CSITX_LANE_BAND_SPEED;
    local_csitx_config.instCfg[0U].laneSpeedMbps = CSITX_LANE_SPEED_MBPS;
    local_csitx_config.instCfg[0U].numDataLanes = 4U;
    for (loopCnt = 0U ;
    loopCnt < local_csitx_config.instCfg[0U].numDataLanes ;
    loopCnt++)
    {
    local_csitx_config.instCfg[0U].lanePolarityCtrl[loopCnt] = 0u;
    }
    for (loopCnt = 0U; loopCnt < NUM_CHANNELS; loopCnt++)
    {
    local_csitx_config.chVcNum[loopCnt] = loopCnt;
    local_csitx_config.chInstMap[loopCnt] = CSITX_INST_ID;
    }

    csitx_config = vxCreateUserDataObject(obj->context, "tivx_csitx_params_t", sizeof(tivx_csitx_params_t), &local_csitx_config);

    obj->csitx_node = tivxCsitxNode(obj->graph, csitx_config, obj->captureObj.raw_image_arr[0]);

  • Hi,

    Are you sure that the number of channels are set to 1? Because as per below statement, it is set based on number of items in the input array in file tiovx\kernels_j7\hwa\csitx\vx_csitx_target.c. Can you please check and make sure that numCh is set to 1?

    /* Set number of channels to number of items in input object array */
    prms->numCh = (uint8_t)input_desc->num_items;

    Regards,

    Brijesh

  • Because our capture node is set 2ch and we only want display one ch on CSITX. 

    CSITX

    prms->numCh = 2

    But program will block on csitx process function.

  • Hi,

    Can you please set prms->numCh to 1 and see if it works? 

    Since it is working in single channel, i am expecting this also to work fine. 

    I will them show you how to select second channel in case it is required. So lets first get this change working.

    Regards,

    Brijesh 

  • Yes.

    if we set prms->numCh to 1, csitx work successfully.

    We need to select second channel.

    Please provide us how to select second channel.

  • ok thanks, i will look into it today and provide you changes.

  • Hi,

    I have added create parameter active_ch in the attached patch, which allows you select the channel to be sent out. Can you please this patch on ti-processor-sdk-rtos-j721e-evm-08_05_00_11\tiovx folder, rebuild the SDK and then you should be able to select the channel to be sent out? 

    Please keep the previous changes, ie prms->numCh, even with this patch.

    /cfs-file/__key/communityserver-discussions-components-files/791/CSITX_5F00_Added_5F00_Support_5F00_for_5F00_Channel_5F00_Select.patch

    Regards,

    Brijesh