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条回答
lvehe
1楼-- · 2019-07-22 17:30
往事啊 发表于 2018-6-28 15:47
你好,我按照你的cif寄存器设置,虽然能出来图像却是一直向上滑动的,不知你有没有遇到过这种情况,应该怎 ...

用我的寄存器参数“OV2640_JPEG_INIT”去初始化。里面一些参数可能不一样导致才这种现象。具体原因不好解释,其实我也不是特别懂。
往事啊
2楼-- · 2019-07-22 22:15
 精彩回答 2  元偷偷看……
lvehe
3楼-- · 2019-07-23 02:48
往事啊 发表于 2018-6-29 10:05
我看你程序里2640初始化是将分辨率设为640*480,你试过CIF格式嘛,就是352*288分辨率

我试的是JPEG输出,RGB565格式的输出是否有问题不清楚。
往事啊
4楼-- · 2019-07-23 08:38
lvehe 发表于 2018-6-29 11:15
我试的是JPEG输出,RGB565格式的输出是否有问题不清楚。

JPEG图像的RGB是什么格式
Alieno
5楼-- · 2019-07-23 13:29
 精彩回答 2  元偷偷看……
hnhebing
6楼-- · 2019-07-23 19:27
usb有数据上传,用amcap还是看不到图像!!!

一周热门 更多>