BitArt

Ideas Worth Spreading

导航

基于ADV7183a和BF533的图像采集调试记录

Posted on 2012-11-21 22:29  BitArt  阅读(933)  评论(0编辑  收藏  举报

  最近忙于CCD视频图像的采集,但调试了两天,只调出了灰度图像,对于YUV422图像却总是有错误,今天总算将程序调通了,现将调试流程记录于下:

  系统配置:BF533-EZKIT + CCD摄像头,摄像头输入信号为PAL/NTSC制式,有效像素为720×576;  

  1.首先采用BF533-EZKIT的VideoIn例程,来验证数据通路即CCD以及系统的正常,进入到中断后,用imageview按照例程中readme的设置,可以看到分离的奇场和偶场的上下两幅图像。

  2.单场图像的采集

  由于PAL制式输出的图像分为奇、偶两场,因此先采集到的图像为奇场图像,长×宽=720×288,接下来采集到的偶场图像同样为长×宽=720×288,将二维DMA channel0设置如下:

 1 void Init_DMA(void)
 2 {
 3 
 4     //connect PPI to DMA channel 0
 5     *pDMA0_PERIPHERAL_MAP = 0x0;    
 6     
 7     *pDMA0_X_COUNT =360;  //720×2/4=360
 8     
 9     //The modifier is set  to 4 because of the 32 bit transfers
10     *pDMA0_X_MODIFY = 4;    
11     
12     *pDMA0_Y_COUNT = 288; 
13 
14     *pDMA0_Y_MODIFY =  4;    
15         
16     *pDMA0_START_ADDR = sFrame0;    
17     
18     //DMA Config: Disable DMA | Memory write DMA | 2-D DMA | Discard DMA FIFO before start | enable assertation of interrupt | NDSIZE for stop mode |  STOP Model
19     *pDMA0_CONFIG =  DI_EN | WNR | WDSIZE_32| DMA2D  ;    
20     ssync();
21 
22 }//end Init_DMA

在image view中,设置起始地址为sFrame0,memory stride = 1, 720×288,像素格式为UYVY422,结果采集到的图像出现重影,仿佛左右都挤到中间重合了一样,

 

图像出现重影,重新配置了PPI和DMA无数次,几经折腾,无意中发现533的DAB总线是16bit的,与BF561的寄存器相比,PPI CONTROL REGISTER中无“DMA32”位,无法打包32bit数据(目前不知道这里理解的对不对,总之程序是调通了),于是重新修改上述程序如下:

void Init_DMA(void)
{

    //connect PPI to DMA channel 0
    *pDMA0_PERIPHERAL_MAP = 0x0;    
    
    *pDMA0_X_COUNT =720;  //
    
    //The modifier is set  to 2 because of the 16 bit transfers
    *pDMA0_X_MODIFY = 2;    
    
    *pDMA0_Y_COUNT = 288; //

    *pDMA0_Y_MODIFY =  2;   
    *pDMA0_START_ADDR = sFrame0;    
    //DMA Config: Disable DMA | Memory write DMA | 2-D DMA | Discard DMA FIFO before start | enable assertation of interrupt | NDSIZE for stop mode |  STOP Model
    *pDMA0_CONFIG =  DI_EN | WNR | WDSIZE_16| DMA2D  ;    
    ssync();

}//end Init_DMA

  注意红色字迹标明了修改的地方,图像终于采集成功,虽然只是奇场图像,但偶场图像同理,只需要用2D DMA重新分配一下像素的存储位置,即可交织成一幅完整的图像了。浪费了两天时间,怪就怪在对BF533的内核结构了解的不深,广大朋友们在使用DSP时一定要认真看手册呀……

第一副采集到的完整图像如下:分辨率720×576