你好,目前采用FPGA+8168,通过VIN接口16位,BT1120格式,我采用的是分场的格式,VIN接口前8位输入Y数据,后8位输入UV数据,通过A8保存数据,发现数据不对
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.
fpga那边应该没问题,原因有(1)在148.5MHZ的时候,8168能收到数据,就是数据内容不对。(2)之前用过6467,6467和FPGA也是通过BT1120通信,源码一样。我觉得是不是8168配置引起的。我的配置如下:
pCaptureInstPrm = &capturePrm.vipInst[vipInstId];
pCaptureInstPrm->vipInstId = (SYSTEM_CAPTURE_INST_VIP0_PORTA + vipInstId)%SYSTEM_CAPTURE_INST_MAX;
pCaptureInstPrm->videoDecoderId = SYSTEM_DEVICE_VID_DEC_TVP7002_DRV;
pCaptureInstPrm->inDataFormat = SYSTEM_DF_YUV422P;// YUV422P or RGB888
pCaptureInstPrm->standard = SYSTEM_STD_1080I_60;
pCaptureInstPrm->numOutput = 1;
pCaptureOutPrm = &pCaptureInstPrm->outParams[0];
pCaptureOutPrm->dataFormat = SYSTEM_DF_YUV422I_YUYV;
pCaptureOutPrm->scEnable = FALSE;
pCaptureOutPrm->scOutWidth = 0;
pCaptureOutPrm->scOutHeight = 0;
pCaptureOutPrm->outQueId = 0;
inScanFormat = FVID2_SF_INTERLACED;
pVipCreateArgs->inScanFormat = inScanFormat;
pObj->maxWidth = 1920;
pObj->maxHeight = 1080;
pVipCreateArgs->numCh = 1;
pVipCreateArgs->videoCaptureMode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
pVipCreateArgs->videoIfMode = VPS_CAPT_VIDEO_IF_MODE_16BIT;
pVipCreateArgs->periodicCallbackEnable = TRUE;
pVipCreateArgs->numStream = pInstPrm->numOutput;
for (outId = 0; outId < pVipCreateArgs->numStream; outId++)
{
pVipOutPrm = &pVipCreateArgs->outStreamInfo[outId];
pOutPrm = &pInstPrm->outParams[outId];
pVipOutPrm->dataFormat = pOutPrm->dataFormat;
pVipOutPrm->memType = VPS_VPDMA_MT_NONTILEDMEM;
if (pObj->createArgs.tilerEnable && (pOutPrm->dataFormat == FVID2_DF_YUV420SP_UV))
{
pVipOutPrm->memType = VPS_VPDMA_MT_TILEDMEM;
}
pVipOutPrm->pitch[0] = VpsUtils_align(pObj->maxWidth, VPS_BUFFER_ALIGNMENT * 2);
if (pVipOutPrm->dataFormat == FVID2_DF_YUV422I_YUYV)
pVipOutPrm->pitch[0] *= 2;
else if(pVipOutPrm->dataFormat == FVID2_DF_YUV420SP_UV)
pVipOutPrm->pitch[0] /= 2;
else if (pVipOutPrm->dataFormat == FVID2_DF_RGB24_888)
pVipOutPrm->pitch[0] *= 3;
pVipOutPrm->pitch[1] = pVipOutPrm->pitch[0];
pVipOutPrm->pitch[2] = 0;