Quantcast
Viewing all articles
Browse latest Browse all 262198

Compiler/PROCESSOR-SDK-DRA8X: Picture captured from camera module can't work

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: 

            prms->drvHandle = Fvid2_create( CSIRX_CAPT_DRV_ID, prms->instId, &prms->createPrms, &prms->createStatus, &prms->drvCbPrms) to initialize the CSIRX driver. you can look the code below.
but the picture is very strange,  I think some of my parameter Settings are wrong, can you tell me which parameters are wrong?

/* 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)


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>