OV2640摄像头实现UVC及CIF模式

2019-07-20 05:58发布

本帖最后由 lvehe 于 2017-4-10 12:46 编辑

USB Video Class(UVC)研究终于告一段落。原来xp和Vista只支持UVC1.0标准,所以XP下无法识别采用UVC1.1和1.5版本的USB摄像头。源码改为UVC1.0标准,故在win7和xp下均可显示。
OV2640 UVC.png
参数设置.jpg

OV2640的CIF模式一直未见网络上有成功的案例和代码放出,刚开始和很多人一样,设置为CIF模式后画面几乎全黑。
下面的寄存器配置则解决了这一难题,其实只是窗口和尺寸设置合理了就行。
和官方手册说的400x296不一样,设置为400x300也是可行的。而且帧率也不只是60fps,设置为120fps仍然可以输出。
不过CIF模式下图像颜 {MOD}和质量跟SVGA和UXGA模式下还是存在一定差异的,但降低帧率会有所改善。是OV2640本身只能达到这种质量还是哪些寄存器存在设置上的问题,也就不得而知了。
OV2640 UVC CIF.png
/* CIF 400x300 60fps */
const uint8_t OV2640_400X300_60D0[][2] =
{
        0xFF, 0x01, // BANK_SEL_SENSOR
        0x11, 0x00, // 影响帧率 (fps = 60 / (CLKRC[5:0] + 1))
        0x12, 0x20, // Bit[6:4]:Resolution Selection 010:CIF
        0x3D, 0x38,
        // 12000000 = 60.0 * (595) * (336)
        0x2A, 0x00,
        0x2B, 0x00,
        0x46, 0x00,
        0x47, 0x00,
        
        // Sensor Window (274, 4, 800, 600)
        0x17, 0x11,
        0x18, 0x43,
        0x32, 0x09,
        
        0x19, 0x00,
        0x1A, 0x4B,
        0x03, 0x0A,
        
        0x37, 0x40,        
        0x4F, 0xBB,
        0x50, 0x9C,
        0x5A, 0x57,
        0x6D, 0x80,
        
        0x39, 0x02,
        0x35, 0x88,
        0x22, 0x0A,
        0x34, 0xA0,
        0x06, 0x02,
        0x0D, 0xB7,
        0x0E, 0x01,
//-----------------------------------------------
        0xFF, 0x00, // BANK_SEL_DSP
        0xE0, 0x04, // RESET (DVPigital Video Port)
        
        // Image Size (800, 600)
        0xC0, 0x64,
        0xC1, 0x4B,
        0x8C, 0x00,
        
        // Image Window (0, 0, 800, 300)
        0x51, 0xC8,
        0x52, 0x4B,
        0x53, 0x00,
        0x54, 0x00,
        0x55, 0x00,
        0x57, 0x00,
        
        // Out Size (400, 300)
        0x5A, 0x64,
        0x5B, 0x4B,
        0x5C, 0x00,
        
        0x86, 0x3D,
        0x50, 0x00,
        0xD3, 0x04,
        
        0xE0, 0x00,
};

STM32F407Video.rar (1.33 MB, 下载次数: 1100) 2017-4-10 12:40 上传 点击文件名下载附件
OV2640_UVC

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
心语心愿
1楼-- · 2019-07-21 15:03
lvehe 发表于 2017-8-2 19:39
看datasheet吧,里面提到是60帧。

但是它OV2640 Software Application Notes 1.03文档里没有CIF配置方法呀
AlarmClock
2楼-- · 2019-07-21 20:03
 精彩回答 2  元偷偷看……
lvehe
3楼-- · 2019-07-22 01:20
 精彩回答 2  元偷偷看……
AlarmClock
4楼-- · 2019-07-22 04:49
lvehe 发表于 2017-8-9 08:31
你们用的初始化代码可能和我的不一样,建议下载我的程序,参考里面的初始化代码再试试。

我用了别人的初始化数组,可以了,但是采光很差,只有强光才能显示,其他基本是一片黑
正点原子
5楼-- · 2019-07-22 08:04
 精彩回答 2  元偷偷看……
往事啊
6楼-- · 2019-07-22 12:03
本帖最后由 往事啊 于 2018-6-28 15:51 编辑

你好,我按照你的cif寄存器设置,虽然能出来图像却是一直向上滑动的,不知你有没有遇到过这种情况,应该怎么解决

由于一直向上滑动,所以手机拍出的图像不是很清晰

一周热门 更多>