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.

C6748的VPIF如何采集CCIR656信号



手头一块C6748LCDK,运行自带的facedetect程序OK。

原来是“模拟前端+TVP5147M1PFP”输出8bits的BT656信号到C6748的VPIF,

现在将TVP5147M1PFP断开,使用OV7740数字sensor替换,通过IIC配置OV7740输出CCIR656格式的信号,但是例程运行失败,

修改代码使能VPIF的错误中断,果然程序运行后VPIF产生了错误中断,手册上写的原因如下:

– Internal buffer overflow  
– Length of EAV2SAV or SAV2EAV is not the same as the configured value
– Bit error detected on 4th field of TRC

由于采集的640*480的隔行数据(N制)需要对VPIF寄存器进行设置,是否因为OV7740输出信号Timing与标准BT656信号Timing不同,而需要进行修改?

如果需要,下面提供了相应的数据,如何根据OV7740的Timing进行修改?谢谢~~~~~~

一.C6748的VPIF采集视频时需设置的寄存器以及根据BT656标准信号提供的推荐值及其意义:

2.OV7740输出的CCIR656信号Timing:

  • 发现StarterWare中提供了以下函数,可以查询错误原因,是从VPIF基地址偏移0x14,ERRSTAT 寄存器中读取的,但是手册上并没有这个寄存器的详细说明。

    unsigned int VPIFErrorStatus ( unsigned int  baseAddr,
    unsigned int  err 
    )

    查StarterWare的源代码,第二个参数为:VPIF_BITERR0 时函数返回1

    /* Error in EAV2SAV/SAV2EAV code for channel 0 */ 

    #define VPIF_BITERR0 (1 << VPIF_ERRSTAT_BITERR0_SHIFT)

    /* Synchronization error for channel 0 (mismatch EAV2SAV/SAV2EAV) */
    #define VPIF_SYNCDISTERR0 (1 << VPIF_ERRSTAT_SYNCDISTERR0_SHIFT)

    请问VPIF_BITERR0出现错误是EAV2SAV/SAV2EAV设置的问题吗?VPIF_SYNCDISTERR0的含义呢?

    一直以为是设置的EAV2SAV/SAV2EAV与输入信号的EAV2SAV/SAV2EAV不同导致的,现在看好像还有点区别。

    烦请技术支持回答一下吧,谢谢!