之前发过一个贴,咨询关于利用OMAPL138和TVP5151来实现视频的采集问题,现在每天都在实验,有了一点点的进展,但是问题还是很多,所以还是继续请教高人解答。
简要概述硬件系统:输入信号 PAL制复合视频信号,进入TVP5151后通过 ITU-R BT.656标准(8bit数据线 27MHz时钟线)来同OMAPL138的VPIF接口相连。
TVP5151寄存器配置:配置了0x03地址=0x09(Miscellaneous Controls Register = 0x09),配置了0x28地址=0x04(Video Standard Register = 0x04)
之前VPIF的中断服务函数一直进不了,今天实验可以进入。但还有一些问题:
中断问题:
1.在中断中设置了一个计数器,计算中断进入的次数,同时在中断进入后修改数据接收缓存的地址,发现中断进入的次数为5次,然而填写的内容只有3片,后来在中断服务函数中每次修改地址后加入了0.1s的延时,中断次数和输入的数据片数才相同,请问这个是为什么(附上中断服务函数,在asm("nop")处打上断点查看num的值和对应缓存空间DDR2内是否有数据写入)
vpif_isr()
{
static int num=0;
VPIF->INTSTATCLR = 0x01;
if(num > 0)
{
VPIF_CAP_CH0-> TLUMA = 0xc1000000+num*(720*288*4);
VPIF_CAP_CH0-> TLUMA = 0xc1000000+720*288+num*(720*288*4);
VPIF_CAP_CH0-> TLUMA = 0xc1000000+720*288*2+num*(720*288*4);
VPIF_CAP_CH0-> TLUMA = 0xc1000000+720*288*3+num*(720*288*4);
USTIMER_delay(100000);
}
if(num == 4)
{
CLRBIT(VPIF->CH0CTRL, CHANEN);
asm(" nop ");
}
}
2.VPIF的中断状态寄存器 INTSTAT 的中断标志为什么清除不了,我向INTSTATCLR里写了对应位,但是INTSTAT里的标志依旧存在
传输数据问题:
为什么我收到的一帧图像的TOP帧的亮度和色度值均为0x10或0x01,而BOTTOM帧收到的数据均为0x08。十分不解。附上所配置的VPIF接口代码
VPIF_initReceive()
{
SETBIT(VPIF->INTENCLR, INT_FRAME_CH0);
CLRBIT(VPIF->INTEN, INT_FRAME_CH0);
VPIF->CH0CTRL =0;
VPIF->REQSIZE = 0x20;
VPIF->EMUCTRL = 0x01;
VPIF->CH0CTRL = INTFRAME_BOTTOM_ONLY | YCMUX;
configReceiveVpifRegs(VPIF_CAP_CH0);
SETBIT(VPIF->INTEN, INT_FRAME_CH0);
SETBIT(VPIF->INTENCLR, INT_FRAME_CH0);
SETBIT(VPIF->CH0CTRL, CHANEN);
}
configReceiveVpifRegs(vpif_cap_regs_t *vpif_cap_ch)
{
vpif_cap_ch->TLUMA = 0xc1000000;
vpif_cap_ch->BLUMA = 0xc1000000+720*288*1;
vpif_cap_ch->TCHROMA = 0xc1000000+720*288*2;
vpif_cap_ch->BCHROMA = 0xc1000000+720*288*3;
// 配置BT.656的帧格式数据
vpif_cap_ch->HCFG = (280 << 16)| 1440;
vpif_cap_ch->VCFG0 = (1 << 16)| 23;
vpif_cap_ch->VCFG1 = (311 << 16)| 313;
vpif_cap_ch->VCFG2 = (336 << 16)| 624;
vpif_cap_ch->VSIZE = 625;
vpif_cap_ch->IMGOFFSET = 720;
}
使用PAL制输入信号,上述的BT.656帧格式配置是否正确
谢谢解答
chenghe huang:
你好 我现在也准备用OPMAL138和TVP5150来采集视频 ,请问你调通了吗 想向您请教下
Karlphy Fong:
你好 问题解决了吗?
方便留个QQ吗? 有事想请教下你的.
谢谢.