您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF54X摄像头数据采集同步问题求助
本帖共有377个阅读者
发表帖子 发表投票 回复主题
BF54X摄像头数据采集同步问题求助
HI无厘头(论坛新手)
HI无厘头
头衔:社区公民
帮派:无帮无派
帖数:17
金钱:258
积分:26
注册时间:2014/6/18
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF54X摄像头数据采集同步问题求助
图片采集同步问题求助:

硬件平台:BF544+CMOS摄像头
软件平台:VDSP5.12

遇到的问题是帧不同步问题,视频输出上看不是不断走屏,而是隔一段时间走几行,有时候又很长时间都不走,硬件上我做了一个为摄像头打光的灯光控制,一帧开灯一帧灭灯,如此循环,所有很容易看到不同步的时候是图片上部分和下部分明显就是开灯的图和不开灯的图拼在一起。我的感觉就是会不会是我配置问题或者硬件问题,比如某一帧由于硬件原因造成丢失了N行,然后这帧不完整,之后就一直不同步,以后每次就都是偏了N行,而没有在下一帧的时候根据帧同步信号去同步。

我的配置如下:(基本上都是由BF548开发板上的程序移植过来的)

#define FLOW_7    0x7000
#define NDSIZE_9  0x900
#define FLOW_STOP 0x0000
#define DI_En 0x0080
void InitPPI1DMA(void)
{
*pDMA13_START_ADDR = cmosbuffer1;
// Line_Length 2 bit transfers will be executed
*pDMA13_X_COUNT = 640/4;
// The modifier is set to 2 because of the 16 bit transfers
*pDMA13_X_MODIFY = 0x4;
// Frame_Length 16 bit transfers will be executed
*pDMA13_Y_COUNT = 480;
// The modifier is set to 2 because of the 16 bit transfers
*pDMA13_Y_MODIFY = 0x4;
// DMA Config: Enable DMA | Generate interrupt on completion | Memory read DMA |
// 16-bit xfers | 2-D DMA | Discard DMA FIFO before start
*pDMA13_CONFIG = WNR |DI_EN |WDSIZE_32 | DMA2D | SYNC ;
ssync();
}

#define POLS_3   0<<13
#define POLC_3   2<<11
#define FS_CFG_2     2<<4
#define DIR_RX 0<<1
#define XFR_TYPE11   3<<2

#define DLEN8 0<<15

void InitEPPI1(void)
{
*pEPPI1_CONTROL =   POLS_3| POLC_3 | DIR_RX | XFR_TYPE11 | FS_CFG_2 | PACKEN ;
ssync();

   *pEPPI1_LINE = 640;
    ssync();  
    //The PPI is set to receive 525 lines for each frame
*pEPPI1_FRAME = 480; // this is active plus verticle blanking line total
*pEPPI1_VDELAY  = 0;      
*pEPPI1_HDELAY  = 56;
ssync();
}

#pragma optimize_off
EX_INTERRUPT_HANDLER(EPPI1_RxIsr)
{
static unsigned char flag = 0;  
if(flag ==0)
{
*pPORTB &= 0xffbf;    //关灯、开灯
cmosp->led_flag = flag = 1;//置此帧数据为无灯光图
}
else
{
*pPORTB |= 0x0040;        //关灯、开灯
cmosp->led_flag = flag = 0;//置此帧数据为有灯光图
}

csync();
    *pDMA13_IRQ_STATUS |= DMA_DONE;
*pDMA13_CONFIG &= ~0x1;  

    cmosp->cmosflag= 0x1;
    cmosp = cmosp->next;
    if(cmosp->cmosflag&0x10)
     cmosp = cmosp->next;
cmosp->cmosflag = 0x0;
cmosp->led_flag = 0xff;
*pDMA13_START_ADDR = cmosp->ptr;
*pDMA13_CONFIG |= 0x1;
}



摄像头为MT9V034,输出的是752*480的一维黑白灰度图,上面的配置我做了一个*pEPPI1_HDELAY  = 56;配置,裁剪出640*480的黑白图。
POLS_3、POLC_3这两位我不断更换配置也还是一样,现在比较没有头绪。也不知道问题表达有没问题,如有问题我会补充,请帮帮忙,谢谢!





这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/9/4 16:10:55
HI无厘头(论坛新手)
HI无厘头
头衔:社区公民
帮派:无帮无派
帖数:17
金钱:258
积分:26
注册时间:2014/6/18
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
补充一下,用的是GP 2 FS模式

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/9/4 16:59:45
lzhfdwpl(论坛新手)
lzhfdwpl
头衔:社区公民
帮派:无帮无派
帖数:26
金钱:331
积分:39
注册时间:2017/4/26
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
我一帧图片都还没出来呢,一起努力加油

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2017/9/6 12:01:45
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159156 Call, 1 Queries, Processed in 0.000000 second(s),