找回密码
 注册
搜索
查看: 2857|回复: 18

[讨论] 达人看看啦:ov2640 光圈+偏绿

[复制链接]
发表于 2008-3-13 15:49:17 | 显示全部楼层 |阅读模式
linux下OV2640采集 如图所示效果。大家见笑了阿。
硬件问题排除(winCE下效果很好),寄存器的设置也是和wince一致 。
sensor的寄存器配置(通过I2C设置)和cpu(ARM s3c2440)cam寄存器设置也与wince一样。
现在显示效果光圈+偏绿 ,都没脸见人了
[em03]
达人帮忙看看,是否是数据丢失造成的(内核中DMA传送到framebuffer显示 )
 楼主| 发表于 2008-3-13 15:52:24 | 显示全部楼层

怎么上传不来

怎么上传不了啊[upload=jpg]UploadFile/2008-3/08313@52RD_preview2.jpg[/upload]
点评回复

使用道具 举报

发表于 2008-3-13 16:01:22 | 显示全部楼层
数据丢失严重.
点评回复

使用道具 举报

 楼主| 发表于 2008-3-13 16:28:37 | 显示全部楼层
我是在linux中断下半部分中处理的。
4个DMA通道打开 轮流往framebuffer中填数据。
点评回复

使用道具 举报

 楼主| 发表于 2008-3-13 16:53:43 | 显示全部楼层
试过用1个DMA通道 图像依然没有改观。

流程是这样的 采集———〉CPU产生中断————〉进入中断处理函数————〉读ARM9中摄像头模块的DMA寄存器,得到DMA物理地址(4片DMA区域轮流读取)————〉转化为虚拟地址————〉虚拟地址Memcpy到FrameBuffer中显示——————〉[em03]

数据在那段最可能丢失阿 ,前端采集的数据肯定没有问题的(唉硬件没有问题,wince可以正常显示)。有经验的朋友顶呀!
点评回复

使用道具 举报

发表于 2008-3-13 20:43:00 | 显示全部楼层
采集数据的时候把PCLK中断反相看看,也就是原来上拉中断改成下拉中断。
点评回复

使用道具 举报

 楼主| 发表于 2008-3-17 09:07:51 | 显示全部楼层
谢谢 lingonzhang!
   我在sensor这边使能0x05 R_BYPASS 寄存器 (0x01:Bypass DSP,sensor out directly)我初始化设置的为(0x00:DSP),然后PCLK中断反相(com10寄存器 0x15的bit[4]设置为0x00)改成下拉中断,结果现在一片绿色,连图像都没有了阿。
   555555555,怎么办啊!地毯式搜索设置,检查与WinCE的没有任何区别了。图像怎么还是不正确阿??[em03]
点评回复

使用道具 举报

发表于 2008-3-17 11:14:55 | 显示全部楼层
1,)高位数据线是否与低位数据线接反了,或是高位数据丢。
2,)core,IO,analog电压是否正确。
点评回复

使用道具 举报

 楼主| 发表于 2008-3-17 11:49:55 | 显示全部楼层
[em04]谢谢楼上的

1,)高位数据线与低位数据线没有接反了,或是高位数据丢
       硬件上没有任何问题了WinCE跑通了,图像正常。
2,)core,IO,analog电压量过 ,都正常 。
还有没有别的建议,大家踊跃顶啊[em03]
点评回复

使用道具 举报

发表于 2008-3-17 14:26:20 | 显示全部楼层
看起来还是像数据总线的某根线连接不好。
1,硬件连接问题
2,驱动能力不够,可以试试加大2640输出驱动能力
点评回复

使用道具 举报

 楼主| 发表于 2008-3-27 17:25:01 | 显示全部楼层
狂搞了几天 ,图像依然如此,回楼上的何总阿。
1、硬件的连接没有问题,烧winCE的程序都可以正常显示阿
2、同上阿,不过问一下,如何增大驱动能力,难道增大PCLK。

测试时发现了一个问题,我的 HREF 的极性与OV2640的datasheet上[/COLOR]的极性相反,而VSYNC极性是正常的,PCLK也正常。不知道哪位能告诉我什么问题导致的,如何解决阿。ov的datasheet太简单了,没有详细的说明
小弟谢谢,诸位多提建议阿。[em03]
点评回复

使用道具 举报

 楼主| 发表于 2008-3-31 14:34:08 | 显示全部楼层

winCE下图像

将 0x12寄存器 配置为 0x02 后 ,wince下显示的色条 基本正常
点评回复

使用道具 举报

 楼主| 发表于 2008-3-31 14:35:43 | 显示全部楼层
wince图像
点评回复

使用道具 举报

 楼主| 发表于 2008-3-31 14:42:00 | 显示全部楼层
wince下显示基本正常[upload=jpg]UploadFile/2008-3/08331@52RD_winCE下.jpg[/upload]
点评回复

使用道具 举报

 楼主| 发表于 2008-3-31 14:50:04 | 显示全部楼层
linux下配置和wince一致,唯一不同的是linux在初始化时将图像的分辨率设置了

        // OV2640
        {0xff, 0x01},
        {0x12, 0x80}, // Reset sensor

        // delay 1ms

        {0xff, 0x00},
        {0x2c, 0xff},
        {0x2e, 0xdf},

        {0xff, 0x01},
        {0x3c, 0x32},
        {0x11, 0x00}, // 0:72MHz->1:36MHz
        {0x09, 0x02},
        {0x04, 0x28},
        {0x13, 0xe5},
        {0x14, 0x48},
        {0x2c, 0x0c},
        {0x33, 0x78},
        {0x3a, 0x33},
        {0x3b, 0xfb},

        {0x3e, 0x00},
        {0x43, 0x11},
        {0x16, 0x10},

        {0x39, 0x02}, //

        {0x35, 0x88},
        {0x22, 0x09}, //
        {0x37, 0x40},
        {0x23, 0x00},
        {0x34, 0xa0},
        {0x36, 0x1a},
        {0x06, 0x02},
        {0x07, 0xc0},
        {0x0d, 0xb7},
        {0x0e, 0x01},
        {0x4c, 0x00},

        {0x4a, 0x81},
        {0x21, 0x99},

        {0x24, 0x40},
        {0x25, 0x38},
        {0x26, 0x82},
        {0x5c, 0x00},
        {0x63, 0x00},
        {0x46, 0x3f},
        {0x0c, 0x3c}, // manual banding

        {0x61, 0x70},
        {0x62, 0x80},
        {0x7c, 0x05},
               
        {0x20, 0x80},
        {0x28, 0x30},
        {0x6c, 0x00},
        {0x6d, 0x80},
        {0x6e, 0x00},
        {0x70, 0x02},
        {0x71, 0x94},
        {0x73, 0xc1},

        {0x3d, 0x34},
        {0x5a, 0x57},
        {0x4f, 0xbb},
        {0x50, 0x9c},

        {0xff, 0x00},
        {0xe5, 0x7f},
        {0xf9, 0xc0},
        {0x41, 0x24},
        {0xe0, 0x04},
        {0x76, 0xff},
        {0x33, 0xa0},
        {0x42, 0x20},
        {0x43, 0x18},
        {0x4c, 0x00},
        {0x87, 0xd0},
        {0x88, 0x3f},
        {0xd7, 0x03},
        {0xd9, 0x10},
        {0xd3, 0x82},

        {0xc8, 0x08},
        {0xc9, 0x80},

        {0x7c, 0x00},
        {0x7d, 0x00},
        {0x7c, 0x03},
        {0x7d, 0x48},
        {0x7d, 0x48},
        {0x7c, 0x08},
        {0x7d, 0x20},
        {0x7d, 0x10},
        {0x7d, 0x0e},

        // contrast level 3
        {0x7c, 0x00},
        {0x7d, 0x04},
        {0x7c, 0x07},
        {0x7d, 0x20},
        {0x7d, 0x1c},
        {0x7d, 0x2a},
        {0x7d, 0x06},

        {0x90, 0x00},
        {0x91, 0x0e},
        {0x91, 0x1a},
        {0x91, 0x31},
        {0x91, 0x5a},
        {0x91, 0x69},
        {0x91, 0x75},
        {0x91, 0x7e},
        {0x91, 0x88},
        {0x91, 0x8f},
        {0x91, 0x96},
        {0x91, 0xa3},
        {0x91, 0xaf},
        {0x91, 0xc4},
        {0x91, 0xd7},
        {0x91, 0xe8},
        {0x91, 0x20},

        {0x92, 0x00},
        {0x93, 0x06},
        {0x93, 0xe3},
        {0x93, 0x05},
        {0x93, 0x05},
        {0x93, 0x00},
        {0x93, 0x04},
        {0x93, 0x00},
        {0x93, 0x00},
        {0x93, 0x00},
        {0x93, 0x00},
        {0x93, 0x00},
        {0x93, 0x00},
        {0x93, 0x00},

        {0x96, 0x00},
        {0x97, 0x08},
        {0x97, 0x19},
        {0x97, 0x02},
        {0x97, 0x0c},
        {0x97, 0x24},
        {0x97, 0x30},
        {0x97, 0x28},
        {0x97, 0x26},
        {0x97, 0x02},
        {0x97, 0x98},
        {0x97, 0x80},
        {0x97, 0x00},
        {0x97, 0x00},

        {0xc3, 0xed},
        {0xc4, 0x9a},
        {0xa4, 0x00},
        {0xa8, 0x00},
        {0xc5, 0x11},
        {0xc6, 0x51},
        {0xbf, 0x80},
        {0xc7, 0x10},
        {0xb6, 0x66},
        {0xb8, 0xA5},
        {0xb7, 0x64},
        {0xb9, 0x7C},
        {0xb3, 0xaf},
        {0xb4, 0x97},
        {0xb5, 0xFF},
        {0xb0, 0xC5},
        {0xb1, 0x94},
        {0xb2, 0x0f},
        {0xc4, 0x5c},

        {0xc0, 0xc8},
        {0xc1, 0x96},
        {0x86, 0x3d},
        {0x50, 0x00},
        {0x51, 0x90},
        {0x52, 0x2c},
        {0x53, 0x00},
        {0x54, 0x00},
        {0x55, 0x88},
        {0x57, 0x00},
        {0x5a, 0x90},
        {0x5b, 0x2c},
        {0x5c, 0x05},

        {0xc3, 0xed},
        {0x7f, 0x00},

        {0xda, 0x01},

        {0xe5, 0x1f},
        {0xe1, 0x67},
        {0xe0, 0x00},
        {0xdd, 0xff}, //
        {0x05, 0x00},

        {0xff, 0x00},
        {0xc3, 0xef},
        {0xa6, 0x00},
        {0xa7, 0x20},
        {0xa7, 0x58},
        {0xa7, 0x3e},
        {0xa7, 0x33},
        {0xa7, 0x00},
        {0xa7, 0x25},
        {0xa7, 0x40},
        {0xa7, 0x58},
        {0xa7, 0x30},
        {0xa7, 0x33},
        {0xa7, 0x00},
        {0xa7, 0x25},
        {0xa7, 0x20},
        {0xa7, 0x58},
        {0xa7, 0x2d},
        {0xa7, 0x33},
        {0xa7, 0x00},
        {0xa7, 0x25},
        {0xbf, 0x00},
        {0xba, 0xdc},
        {0xbb, 0x08},
        {0xb6, 0x20},
        {0xb8, 0x30},
        {0xb7, 0x20},
        {0xb9, 0x30},
        {0xb3, 0xb4},
        {0xb4, 0xca},
        {0xb5, 0x34},
        {0xb0, 0x46},
        {0xb1, 0x46},
        {0xb2, 0x06},
        {0xc7, 0x00},
        {0xc6, 0x51},
        {0xc5, 0x11},
        {0xc4, 0x9c},

// UXGA(1600x1200), 14fps
       
                {0xff, 0x01},
                {0x11, 0x00},
                {0x12, 0x00}, // Bit[6:4]: Resolution selection
                {0x17, 0x11}, // HREFST[10:3]
                {0x18, 0x75}, // HREFEND[10:3]
                {0x32, 0x36}, // Bit[5:3]: HREFEND[2:0]; Bit[2:0]: HREFST[2:0]
                {0x19, 0x01}, // VSTRT[9:2]
                {0x1a, 0x97}, // VEND[9:2]
                {0x03, 0x0f}, // Bit[3:2]: VEND[1:0]; Bit[1:0]: VSTRT[1:0]
                {0x37, 0x40},
                {0x4f, 0xbb},
                {0x50, 0x9c},
                {0x5a, 0x57},
                {0x6d, 0x80},
                {0x3d, 0x34},
                {0x39, 0x02},
                {0x35, 0x88},
                {0x22, 0x0a},
                {0x37, 0x40},
                {0x34, 0xa0},
                {0x06, 0x02},
                {0x0d, 0xb7},
                {0x0e, 0x01},

                {0xff, 0x00},
                {0xe0, 0x04}, // Reset DVP
                {0x50, 0x00},
                {0x51, 0x90}, // H_SIZE[7:0] (real/4)
                {0x52, 0x2c}, // V_SIZE[7:0] (real/4)
                {0x55, 0x88}, // Bit[7]: V_SIZE[8]; Bit[3]: H_SIZE[8]
                {0x5a, 0x90}, // OUTW[7:0] (real/4)
                {0x5b, 0x2c}, // OUTH[7:0] (real/4)
                {0x5c, 0x05}, // Bit[2]: OUTH[8]; Bit[1:0]: OUTW[9:8]
                {0x8c, 0x00}, // Bit[6]: HSIZE[11]; Bit[5:3]: HSIZE[2:0]; Bit[2:0]: VSIZE[2:0]
                {0xc0, 0xc8}, // HSIZE[10:3]
                {0xc1, 0x96}, // VSIZE[10:3]
                {0xe0, 0x00}
结果显示如下:
灰色的明显偏绿[upload=jpg]UploadFile/2008-3/08331@52RD_linux下.jpg[/upload]
点评回复

使用道具 举报

发表于 2008-3-31 19:47:18 | 显示全部楼层
HREF 就是0x15[3]控制的!

欢迎加我的MSN:lingonzhang@hotmail.com
点评回复

使用道具 举报

 楼主| 发表于 2008-4-1 09:31:20 | 显示全部楼层
已经加你了 共同探讨阿
点评回复

使用道具 举报

发表于 2008-4-28 13:13:48 | 显示全部楼层
...你的数据失真的也太过分了吧,是不是颜色取样点取反了?再检查下你的几个输出端口的连接是不是有问题,我做过个实验如果输出端口有高位没输出数据的话,会出现你这个效果的[em12]
要是已经解决了请把你解决的方法共享下[em08]
点评回复

使用道具 举报

发表于 2008-11-7 11:18:49 | 显示全部楼层
楼主,问题怎么解决的,把解决方法共享下啊
小弟也遇到了这个问题
谢谢了。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-5 14:37 , Processed in 0.051465 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表