工具与软件:
我要在 SDK 9.2上进行测试。
我想将 imx390摄像头导出到 CSITX。
我通过拍摄检查出的图像和正常的访问。

然后检查 CSITX 节点是否正常显示、但实际接收映像不正常。

我可以调试什么部分?
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.
工具与软件:
我要在 SDK 9.2上进行测试。
我想将 imx390摄像头导出到 CSITX。
我通过拍摄检查出的图像和正常的访问。

然后检查 CSITX 节点是否正常显示、但实际接收映像不正常。

我可以调试什么部分?
你(们)好
我写了下面的代码,指的是 CSITX 补丁代码。
代码有问题吗?
/* CSI-TX initialization */
tivx_csitx_params_t local_csitx_config;
uint32_t loopCnt;
/* CSITX Config initialization */
tivx_csitx_params_init(&local_csitx_config);
local_csitx_config.numInst = 1U;
local_csitx_config.numCh = 1;
local_csitx_config.instId[0U] = 0;
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 = TIVX_CAPTURE_LANE_BAND_SPEED_360_TO_400_MBPS;
local_csitx_config.instCfg[0U].laneSpeedMbps = (400U);
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 < 1; loopCnt++)
{
local_csitx_config.chVcNum[loopCnt] = loopCnt;
local_csitx_config.chInstMap[loopCnt] = 0;
}
obj->csitx_config = vxCreateUserDataObject(obj->context, "tivx_csitx_params_t", sizeof(tivx_csitx_params_t), &local_csitx_config);
/* DSS M2M initialization */
tivx_display_m2m_params_init(&obj->display_m2m_params);
obj->display_m2m_params.instId = 0;
obj->display_m2m_params.numPipe = 1;
obj->display_m2m_params.pipeId[0U] = 3;
obj->display_m2m_params.overlayId = 3;
printf ("Enabling DSS_M2M \n");
obj->display_m2m_output_image = vxCreateImage(obj->context, obj->width_in, obj->height_in, VX_DF_IMAGE_UYVY);
obj->display_m2m_param_obj = vxCreateUserDataObject(obj->context, "tivx_display_m2m_params_t", sizeof(tivx_display_m2m_params_t), &obj->display_m2m_params);
obj->displaym2mNode = tivxDisplayM2MNode(obj->graph, obj->display_m2m_param_obj, ldc_in_image, obj->display_m2m_output_image);
if(status == VX_SUCCESS)
{
status = vxSetNodeTarget(obj->displaym2mNode, VX_TARGET_STRING, TIVX_TARGET_DISPLAY_M2M1);
}
if(status == VX_SUCCESS)
{
status = tivxSetNodeParameterNumBufByIndex(obj->displaym2mNode, 2u, obj->num_cap_buf);
}
obj->csitx_image_arr = vxCreateObjectArray(obj->context, (vx_reference)obj->display_m2m_output_image, num_capture_frames);
obj->csitx_node = tivxCsitxNode(obj->graph, obj->csitx_config, obj->csitx_image_arr);
vxSetNodeTarget(obj->csitx_node, VX_TARGET_STRING, TIVX_TARGET_CSITX);
它由 imx390 (raw12)-> vis -> M2M -> csitx 结构组成。
此致、
Kim
您好、Kim、
在以下陈述中、您是否尝试将通道速度设为400Mbps?
" local_csitx_config.instCfg[0U].laneSpeedMbps =(400U);"
此外、在创建显示节点时、什么是 LDC_IN_IMAGE? 它来自 LDC 吗? 但您不会使用 LDC、对吧?
obj->displaym2mNode = tivxDisplayM2MNode (obj->graph、obj->display_m2m_param_obj、 LDC_IN_IMAGE 、obj->display_m2m_output_image);
变量 num_capture_FRAMES 是否设置为1?
此致、
Brijesh
你(们)好
[报价 userid="80721" url="~/support/processors-group/processors/f/processors-forum/1469561/tda4vh-q1-csitx-debug/5641271 #5641271"]在以下陈述中、您是否尝试将通道速度设为400Mbps?
[报价]是的、我尝试使用400Mbps。
[报价 userid="80721" url="~/support/processors-group/processors/f/processors-forum/1469561/tda4vh-q1-csitx-debug/5641271 #5641271"]此外、在创建显示节点时、什么是 LDC_IN_IMAGE? 它来自 LDC 吗? 但您不会使用 LDC、对吧?
[报价]LDC_IN_image 是来自 vis 的图像。 LDC 块实际上并不会进展。
[报价 userid="80721" url="~/support/processors-group/processors/f/processors-forum/1469561/tda4vh-q1-csitx-debug/5641271 #5641271"]变量 num_capture_FRAMES 是否设置为1?
[报价]是设置1
此致、
Kim
您好、Kim、
否、除非您已在捕获节点中设置了错误帧。 如果捕获节点没有在帧时间段内接收帧、则会将此错误帧传递到下一个组件。 但要做到这一点、您必须在捕获节点中设置该错误帧。
从 CSITX 实施来看、它确实支持 YUV422格式。 但观察驱动器、我认为驱动器可能需要做一些小的改变。
在 API CsitxDrv_setDMACfgParams 中、在文件 ti-processor-sdk-rtos-j721s2-evm-10_00_00_05\pdk_j721s2_10_00_00_27\packages\ti\drv\csitx\msitx_drvUdma.c 中 src、您能否进行以下突出显示的更改并看看它是否正常工作?
否则为((FVID2_CSI2_DF_YUV420_10b == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_YUV422_10b == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_YUV422_8B == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_RAW10 == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_RAW12 == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_RAW14 == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_RAW16 == chObj->chCfg->outCsiDataType)||
(FVID2_CSI2_DF_RGB888 == chObj->chCfg->outCsiDataType))
{
chObj->dmaCfgParams.dataSizeShift =
CSL_CSITX_DMA_DATA_SIZE_SHIFT_32位;
如果(FVID2_CSI2_DF_YUV422_8B == chObj->chCfg->outCsiDataType)
{
chObj->dmaCfgParams.dataSizeShift =
CSL_CSITX_DMA_DATA_SIZE_SHIFT_8bits;
}
if (((FVID2_CSI2_DF_RAW12 == chObj->chCfg->outCsiDataType)&&
(FVID2_CCSF_BITS12_PACKED == chObj->chCfg->inFmt.ccsFormat)
{
chObj->dmaCfgParams.dataSizeShift =
CSL_CSITX_DMA_DATA_SIZE_SHIFT_8bits;
}
}
此致、
Brijesh
你(们)好
// Save display_m2m_output_image for checking CST-TX
#ifdef USE_CSITX
{
snprintf(yuv_image_fname, MAX_FNAME, "%s/%s_%04d.yuv", test_data_path, "csitx", file_index);
printf("YUV file name %s \n", yuv_image_fname);
num_bytes_io = write_output_image_yuv422_8bit(yuv_image_fname, obj->display_m2m_output_image);
if(num_bytes_io < 0)
{
printf("Error writing to CSITX file \n");
return VX_FAILURE;
}
}
#endif // USE_CSITX
这是保存 M2M 输出映像的代码。
e2e.ti.com/.../csitx_5F00_0000.zip
查看已保存的文件、看起来它是正常保存为 UYVY。
我错了吗?
此致、
Kim
您好、Kim、
是的、我查看了您昨天分享的 DSS M2M 的输出图像、看起来没有问题。 它的大小为1936x1096帧大小和 YUV422格式。 此外、CSITX 的测试模式似乎正确。
1936x2也与 TIOVX 框架预期的16字节对齐。
统计数据还显示 CSITX 运行正常。
这是否可以在接收端有所作为? 假设它配置不正确、因此无法正确解释 传入的图像。
此致、
Brijesh
你(们)好
[MCU2_0] 75.004283 s: src/csitx_drvUdma.c @ Line 222:
[MCU2_0] 75.004313 s: TEST!!
[MCU2_0] 75.007005 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007040 s: pTr->flags : 52225
[MCU2_0] 75.007059 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007078 s: pTr->icnt0 : 3872
[MCU2_0] 75.007095 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007115 s: pTr->icnt1 : 1100
[MCU2_0] 75.007132 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.007151 s: pTr->dim1 : 3872
[MCU2_0] 75.007175 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007196 s: pTr->flags : 52225
[MCU2_0] 75.007213 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007242 s: pTr->icnt0 : 3872
[MCU2_0] 75.007259 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007278 s: pTr->icnt1 : 1100
[MCU2_0] 75.007295 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.007314 s: pTr->dim1 : 3872
[MCU2_0] 75.007332 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007351 s: pTr->flags : 52225
[MCU2_0] 75.007368 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007387 s: pTr->icnt0 : 3872
[MCU2_0] 75.007403 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007422 s: pTr->icnt1 : 1100
[MCU2_0] 75.007439 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.007458 s: pTr->dim1 : 3872
[MCU2_0] 75.007475 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007495 s: pTr->flags : 52225
[MCU2_0] 75.007512 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007530 s: pTr->icnt0 : 3872
[MCU2_0] 75.007547 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007566 s: pTr->icnt1 : 1100
[MCU2_0] 75.007583 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.007601 s: pTr->dim1 : 3872
[MCU2_0] 75.007619 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007638 s: pTr->flags : 52225
[MCU2_0] 75.007655 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007673 s: pTr->icnt0 : 3872
[MCU2_0] 75.007690 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007709 s: pTr->icnt1 : 1100
[MCU2_0] 75.007726 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.007744 s: pTr->dim1 : 3872
[MCU2_0] 75.007762 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007781 s: pTr->flags : 52225
[MCU2_0] 75.007798 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007816 s: pTr->icnt0 : 3872
[MCU2_0] 75.007833 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007852 s: pTr->icnt1 : 1100
[MCU2_0] 75.007868 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.007887 s: pTr->dim1 : 3872
[MCU2_0] 75.007905 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.007924 s: pTr->flags : 52225
[MCU2_0] 75.007941 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.007960 s: pTr->icnt0 : 3872
[MCU2_0] 75.007976 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.007995 s: pTr->icnt1 : 1100
[MCU2_0] 75.008011 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.008030 s: pTr->dim1 : 3872
[MCU2_0] 75.008048 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.008067 s: pTr->flags : 52225
[MCU2_0] 75.008084 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.008102 s: pTr->icnt0 : 3872
[MCU2_0] 75.008119 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.008138 s: pTr->icnt1 : 1100
[MCU2_0] 75.008155 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.008174 s: pTr->dim1 : 3872
[MCU2_0] 75.008191 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.008210 s: pTr->flags : 52225
[MCU2_0] 75.008230 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.008249 s: pTr->icnt0 : 3872
[MCU2_0] 75.008265 s: src/csirx_drvUdma.c @ Line 486:
app_create_graph exiting
[MCU2_0] 75.008284 s: pTr->icnt1 : 1100
app_create_graph done
[MCU2_0] 75.008301 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.008320 s: pTr->dim1 : 3872
[MCU2_0] 75.008337 s: src/csirx_drvUdma.c @ Line 484:
[MCU2_0] 75.008356 s: pTr->flags : 52225
[MCU2_0] 75.008373 s: src/csirx_drvUdma.c @ Line 485:
[MCU2_0] 75.008392 s: pTr->icnt0 : 3872
[MCU2_0] 75.008408 s: src/csirx_drvUdma.c @ Line 486:
[MCU2_0] 75.008427 s: pTr->icnt1 : 1100
[MCU2_0] 75.008444 s: src/csirx_drvUdma.c @ Line 487:
[MCU2_0] 75.008462 s: pTr->dim1 : 3872
75.339560 s: ISS: Starting sensor [IMX390-MAX9295] ... !!!
是这样吗?
此致、
Kim
您好!
如果您按如下所示更改方法、则该方法有效。
我将 csitx_image_arr 数组分配给 display_M2M_output_image。
obj->display_m2m_output_image = (vx_image)vxGetObjectArrayItem(obj->csitx_image_arr, 0);
上述配置是否存在任何问题?
此致、
Kim