TI中文支持网
TI专业的中文技术问题搜集分享网站

MCFW的疑问

各位专家好,

           我们用DM385实现如下框图的功能:

   

通过FPGA从3路视频中选择2路,(如果是TVP5146,就填充到BT.1120)分别输出到DM385的VP0,VP1。

我们有几个疑问想咨询下:

我们软件版本是IPNC3.5,用了ipnc_mcfw/demos/mcfw_api_demose/multich_use

1.现有的demo构架默认是按ISS接口接入camera的做法,如果要改成HDVPSS接口,如何进行配置呢?

2.现有的MCFW构架能否实现我们的功能呢?

3.如果现有的MCFW构架不能实现,只能用Link api提供的接口api,那么Link api里面是否实现了1024*768和720*576的视频输入呢?

非常感谢!

Chris Meng:

你好,

DM385有一个camera接口,两个VIP口,可以直接三路信号,为什们还需要FPGA呢?

使用VIP口,请参考capture link。但IPNC RDK里面没有使用capture link的例子。

jin li3:

回复 Chris Meng:

您好,

       如果我们修改成capture link,有可参考的代码或文档吗?

我们看到在system_m3vpss.c里面有vps platform的初始化部分,从log看tvp7002的驱动挂载不成功,用的是I2C0,在A8里面是可以的。

能给些意见或建议吗?现阶段很困惑。非常感谢!

Ternence_Hsu:

回复 jin li3:

1、关于capture link 的参考

     在ipnc rdk 中已经给 capture link中实现的接口都是可以用的,具体需要根据你的采集来进行配置;

     link的设计,如果你有dvrrdk的源码是最好了,可以直接参考设计,如果没有,可以在 ipnc_3.8/Source/ti_tools/hdvpss_01_00_01_37/packages/ti/psp/examples/common/vps/chains/src中,参考下面的usecase的配置,和其他link的配置模式基本类似的;

2、你的tvp7002不是接入fpga了吗,你是把i2c的驱动接口给了达芬奇板子吗?

jin li3:

回复 Ternence_Hsu:

您好,

         我们再看看能不能找到IPNC3.8的版本,在目前3.5版本中,我们做了如下尝试,试图将camera link修改成captute link。

1.在现有的demo:ti_mcfw_ipnc_main.c中,Vcam的地方修改成Vcap,主要是初始化,start,stop几个函数。

2.修改ti_vcap.c文件,按照我们的配置进行初始化参数修改。

在这个过程中发现ti_vcap.c是按照tvp5158做的,我们准备修改成tvp7002,tvp5146,adv7611。

在ipnc_mcfw/mcfw/src_linux/devices/     下面有tvp5158的驱动,这里有几个疑问,发现这种采集芯片的驱动在3处地方存在:

1.我们应该需要按照类似的方法在ipnc_mcfw/mcfw/src_linux/devices/ 实现tvp7002,tvp5146,adv7611的驱动吧?

2.在linux内核里面已经实现了tvp7002,tvp5146,adv7611驱动,也能跑起来,FPGA可以采集到视频信号。

3.在hdvpss_01_00_01_37/packages/ti/psp/devices/  目录下也有tvp5158等视频采集芯片的驱动。

很迷惑这3个地方驱动的关系,为什么要重复实现?

 

我们的tvp7002,tvp5146,adv7611的I2C接口接在达芬奇板子上了,用的I2C0。M3-VPSS和A8的I2C是对应的吗,如果A8上我们用I2C0,M3-VPSS也是I2C0吗?

 

非常感谢不厌其烦的为我们解答疑惑,非常感谢!

 

 

Ternence_Hsu:

回复 jin li3:

1、这个三个地方的驱动都实现了,你可以选择一个就可以,像ezsdk是通过内核来加载驱动,在DVRRDK中,可以通过A8来加载驱动,也可以通过M3来加载驱动;

     针对你自己的平台,自己选择,方便实现对外围信息的控制就可以;

2、I2C0是在M3上还是在M3-VPSS上,可以自己配置的;

jin li3:

回复 Ternence_Hsu:

您好,

        经过这几天的摸索,修改了一个capturelink的usecase,在之前的demo里面修改成了capture link方式,发现获取不到视频数据,但是FPGA确实有数据输入。发现

ipnc_mcfw\mcfw\src_bios6\links_m3vpss\capture\captureLink_drv.c里面的函数:

Int32 CaptureLink_drvPrintRtStatus(CaptureLink_Obj * pObj, UInt32 frameCount, UInt32 elaspedTime)

{    UInt32 fps = (frameCount * 100) / (elaspedTime / 10);

Vps_rprintf        (" %d: CAPTURE: Fields = %d (fps = %d), Total Resets = %d (Avg %d ms per reset)\r\n",                 Utils_getCurTimeInMsec(), frameCount, fps, pObj->resetCount,                           pObj->resetTotalTime / pObj->resetCount);

    return 0;}

打印log如下:

[m3vpss ]  21699: CAPTURE: Fields = 0 (fps = 0), Total Resets = 0 (Avg 0 ms per reset)

我们的usecase暂时只配置了VP0,我们的原理是TVP7002输出数据经过FPGA到VP0,流程如下:

CAPUTER(VPSSM3)—->FRAMES OUT(VPSSM3)—->FRAMES IN(VIDEOM3)—->ENC(VIDEOM3)—->BITS OUT(VIDEOM3)—->BITS IN(A8)

具体代码请看附件singlech_encode.c。

现在不知道问题出在哪里,麻烦帮忙看看,万分感谢!

 

 

 

 

 

Ternence_Hsu:

回复 jin li3:

你的FPGA输出给dm8168的视频信号是内同步输出还是离散同步输出的,这个你有在

ipnc_mcfw\mcfw\src_bios6\links_m3vpss\capture\captureLink_drv.c

中进行配置吗?

Ternence_Hsu:

回复 jin li3:

你的FPGA输出给dm8168的视频信号是内同步输出还是离散同步输出的,这个你有在

ipnc_mcfw\mcfw\src_bios6\links_m3vpss\capture\captureLink_drv.c

中进行配置吗?

Ternence_Hsu:

回复 Ternence_Hsu:

可以参考:

/*** \brief Video capture operation mode
*/
typedef enum
{VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC = 0,/**< Single Channel non multiplexed mode */VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_LINE_MUX_EMBEDDED_SYNC,/**< Multi-channel line-multiplexed mode */VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC,/**< Multi-channel pixel muxed */VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VBLK,/**< Single Channel non multiplexed discrete sync mode with HSYNC andVBLK as control signals. */VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC,/**< Single Channel non multiplexed discrete sync mode with HSYNC andVSYNC as control signals. */VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_ACTVID_VBLK,/**< Single Channel non multiplexed discrete sync mode with ACTVID andVBLK as control signals. */VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_ACTVID_VSYNC,/**< Single Channel non multiplexed discrete sync mode with ACTVID andVBLK as control signals. */VPS_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_LINE_MUX_SPLIT_LINE_EMBEDDED_SYNC,/**< Multi-channel line-multiplexed mode - split line mode */VPS_CAPT_VIDEO_CAPTURE_MODE_MAX/**< Maximum modes */
} Vps_CaptVideoCaptureMode;

jin li3:

回复 Ternence_Hsu:

您好,

      我们在usecase设置的inDataFormat = YUV422P.

       在captureLink_drv.c里函数CaptureLink_drvCreatInst会根据inDataFormat,设置videocapturemode=

VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC
videoifmode=VPS_CAPT_VIDEO_IF_MODE_16BIT

FPGA输出到VP0硬件上确实是16位的。

赞(0)
未经允许不得转载:TI中文支持网 » MCFW的疑问
分享到: 更多 (0)