zoukankan      html  css  js  c++  java
  • 基于ADV7183a和BF533的图像采集调试记录

      最近忙于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

  • 相关阅读:
    怎样跟老板提加薪,来看看自己值多少钱
    leetcode-204-Count Primes
    Atitit. 异常的使用总结最佳实践java .net php Vo8f
    设计模式——第一课
    linux svn命令具体解释
    BTrace介绍和生产环境样例
    5.3.5 namedtuple() 创建命名字段的元组结构
    linux驱动开发之九鼎板载蜂鸣器驱动测试【转】
    hrtimer高精度定时器的简单使用【学习笔记】
    Linux时间子系统之(一):时间的基本概念【转】
  • 原文地址:https://www.cnblogs.com/BitArt/p/2781644.html
Copyright © 2011-2022 走看看