OV5640摄像头模块的详解
本篇文章基于开发板的手册 第四十七章 OV5640 摄像头 RGB-LCD 显示实验 进行整理,后期进行摄像头结合机器学习并在HDMI上显示的项目.
OV5640 是一款 1/4 英寸单芯片图像传感器,其感光阵列达到 2592*1944(即 500W 像素),能实现最 快 15fps QSXVGA(2592*1944)或者 90fps VGA(640*480)分辨率的图像采集.
传输时配置寄存器的接口就是 SCCB 接口,该接口协议兼容 IIC 协议。
OV5640 配置寄存器。
OV5640 是用 16 位(两个字节)表示寄存器地址。在 OV5640 正常工作之前,必须先对传感器进行初始化。因为 SCCB 的写传输协议和 IIC 几乎相同,大部分情况下可以直接使用 IIC 的驱动程序来配置摄像头。
OV5640 的 ISP 输入窗口设置:使用寄存器 0x3800 ~ 0x3814 进行窗口设置
ISP 输入窗口设置(ISP Input Size)允许用户设置整个传感器显示区域,开窗范围从 0*0~2632*1951 都可以任意设置。也就是上图中 的 X_ADDR_ST、X_ADDR_END、Y_ADDR_ST、 Y_ADDR_END寄存器。具体对应查看参考手册,本文不做详解。该窗口设置范围中的像素数据将进入 ISP 进行图像处理。
预缩放窗口设置(pre-scaling size)允许用户在 ISP 输入窗口的基础上进行裁剪,该设置仅在 ISP 输入窗口内进行 X/Y 方向的减小。可以通过 X_OFFSET和 Y_OFFSET进行配置。
上述基本不变,后面进行自定义配置。 为像素点和像素大小。OV5640内部的ISP算法可以直接将压缩前获得的图像通过算法压缩成定义的像素大小,只需要在输入中给出像素大小即可。
分辨率配置
下表为图像大小为分辨率 :800*480的配置:
DVPHO :800 | 0x3808 = 0x03; 0x3809 = 0x20; | 0d800=0x320 |
DVPVO :480 | 0x380A = 0x01; 0x380B = 0xe0; | 0d480=0x1e0 |
输出像素格式
通过寄存器地址 0x4300设置。由于数据像素格式常用 RGB565,将 ov5640 配置为 RGB565 格式。将0x4300寄存器的Bit[7:4]设置 。
RAW | 0x4300 =0x00 |
Y8 | 0x4300 =0x10 |
YUV444/RGB888 | 0x4300 =0x20 |
YUV422 | 0x4300 =0x30 |
YUV420 | 0x4300 =0x40 |
YUV420(仅在MIPI输出接口有效) | 0x4300 =0x50 |
RGB565 | 0x4300 =0x60 |
图像输出时序
放入iic详解
彩条测试模式
通过配置寄存器0x503d 的 Bit[7]位.关闭为0,打开设置为1。
打开彩条模式 | 0x80 |
关闭彩条模式 | 0x00 |
LED 闪光灯配置
寄存器 0x3016、0x301c 使能 LED ;寄存器 0x3019 配置是否开关。
开灯 | 关灯 |
1、0x3016=0x02,0x301c=0x02使能 | 1、0x3016=0x02,0x301c=0x02使能 |
2、0x3019=0x02 | 2、0x3019=0x02 |