Part Number: PROCESSOR-SDK-DRA8X
Tool/software: TI C/C++ Compiler
Dear TI
I use the camera which has ISP in camera module, The sensor is AR0233, the ISP is GW5200, the serializer is TI953, the deserializer is TI960 in TDA4M board, the AR0233 and ISP is power on automatic work by itself, it can automatic send picture to TI953. we don't need control ISP and AR0233. the resolution ratio of camera is 1920*1080, the type is YUV4228Bit, the detailed type is YUYV
The board is J721E DRA829/TDA4VM bought fromTI company; I use the version 1.0 SDK.
so I modify [vision_apps\apps\basic_demos\app_single_cam\app_single_cam_main.c], I modify the code and make the openvx_node be capture_node -> display_node, I upload this C file; I also chang the code in (imaging\sensor_drv\src\ar0233), I change the register data of TI953, change the register address of TI953, modify the code in imaging\sensor_drv\src\ar0233\iss_sensor_ar0233.c to disable ar0233.
The most important point is I change some parameters of struct (prms->createPrms), the path is [tiovx\kernels_j7\hwa\capture\vx_capture_target.c function: static vx_status VX_CALLBACK tivxCaptureCreate()], after change the parameters , I call the function:
/* Creating FVID2 handle */
if (VX_SUCCESS == status)
{
Fvid2CbParams_init(&prms->drvCbPrms);
prms->drvCbPrms.cbFxn = (Fvid2_CbFxn) &captDrvCallback;
prms->drvCbPrms.appData = prms;
VX_PRINT(VX_ZONE_ERROR,"the value of raw_capture: %d\r\n", prms->raw_capture);
// prms->raw_capture = 0; // yuv_imagex
if (prms->raw_capture == 0) {
VX_PRINT(VX_ZONE_ERROR,"Start set prms\r\n");
prms->createPrms.chCfg[0].inCsiDataType = FVID2_CSI2_DF_YUV422_8B;
prms->createPrms.chCfg[0].outFmt.dataFormat = FVID2_DF_YUV422I_YUYV;
prms->createPrms.chCfg[0].outFmt.ccsFormat = FVID2_CCSF_BITS8_UNPACKED16;
prms->createPrms.chCfg[0].outFmt.pitch[0] = 0xf00*2;
prms->createPrms.chCfg[0].outFmt.fieldMerged[0] = 1;
prms->createPrms.chCfg[0].outFmt.scanFormat = 0x02;
prms->createPrms.frameDropBufLen = 2148960;
prms->createPrms.chCfg[0].outFmt.height = 1080;
prms->createPrms.chCfg[0].outFmt.width = 1920;
}
prms->drvHandle = Fvid2_create(
CSIRX_CAPT_DRV_ID,
prms->instId,
&prms->createPrms,
&prms->createStatus,
&prms->drvCbPrms);
if ((NULL == prms->drvHandle) ||
(prms->createStatus.retVal != FVID2_SOK))
{
VX_PRINT(VX_ZONE_ERROR, ": Capture Create Failed!!!\r\n");
status = VX_FAILURE;
}
else
{
/* Set CSIRX D-PHY configuration parameters */
Csirx_initDPhyCfg(&prms->dphyCfg);
prms->dphyCfg.inst = prms->instId;
fvid2_status = Fvid2_control(
prms->drvHandle, IOCTL_CSIRX_SET_DPHY_CONFIG,
&prms->dphyCfg, NULL);
if (FVID2_SOK != fvid2_status)
{
status = VX_FAILURE;
VX_PRINT(VX_ZONE_ERROR, ": Failed to set PHY Parameters!!!\r\n");
}
}
}
Image may be NSFW.
Clik here to view.
(Please visit the site to view this file)