OV5640 简介
OV5640 是一款高性能的 CMOS 图像传感器,广泛用于摄像头模组中。该芯片支持多种图像输出格式与接口协议,适用于工业检测、嵌入式视觉系统等场景。
主要特性
- 支持最大分辨率为 2592 × 1944(500 万像素)
- 输出格式包括:YUV(422/420)、YCbCr422、RGB565、RAW、JPEG
- 支持 VGA 时序输出图像数据
- 支持 DVP 和 MIPI 接口输出
- 支持伽马曲线、白平衡、饱和度、色度等图像处理
- 帧率范围:15 ~ 60 fps
- 工作功耗:150mW ~ 200mW
管脚说明
管脚名称 | 类型 | 描述 |
---|---|---|
SIO_C | 输入 | SCCB 总线时钟线(类似 I2C 的 SCL) |
SIO_D | I/O | SCCB 总线数据线(类似 I2C 的 SDA) |
RESET | 输入 | 复位信号,低电平有效 |
PWDN | 输入 | 掉电模式控制,高电平有效 |
HREF | 输出 | 行同步信号 |
VSYNC | 输出 | 场同步信号 |
PCLK | 输出 | 像素时钟输出 |
XCLK | 输入 | 外部时钟输入 |
Y2~Y9 | 输出 | 像素数据输出(8-bit 数据线) |
控制寄存器
地址 (HEX) | 寄存器名 | 默认值 | 功能描述 |
---|---|---|---|
0x3008 | SYSTEM_CONTROL0 | 0x02 | 软件复位 / 电源休眠控制 |
0x3016 | PAD_OUTPUT_ENABLE00 | 0x00 | 设置闪光灯输出使能 |
0x3017 | PAD_OUTPUT_ENABLE01 | 0x00 | 设置 D[9:6]、HREF、VSYNC、PCLK 输出使能 |
0x3018 | PAD_OUTPUT_ENABLE02 | 0x00 | 设置 D[5:0]、GPIO0/1 输出使能 |
0x3019 | PAD_OUTPUT_VALUE00 | 0x00 | 控制闪光灯开关(Bit1) |
0x301C | PAD_SELECT00 | 0x00 | 设置闪光灯 IO 选择 |
0x3035 | SC_PLL_CONTRL1 | 0x11 | 系统时钟分频设置 |
0x3036 | SC_PLL_CONTRL2 | 0x69 | PLL 倍频器设置 |
0x3808 | TIMING_DVPHO_H | 0x0A | 水平像素数高位 |
0x3809 | TIMING_DVPHO_L | 0x20 | 水平像素数低位 |
0x380A | TIMING_DVPVO_H | 0x07 | 垂直像素数高位 |
0x380B | TIMING_DVPVO_L | 0x98 | 垂直像素数低位 |
0x4300 | FORMAT_CONTROL | 0xF8 | 设置输出格式(如 RGB565) |
通信与时钟信号
OV5640 使用 SCCB 协议 进行寄存器配置,与 I2C 协议兼容,常用于 STM32 或 FPGA 上的图像采集系统。
- XCLK:外部时钟输入,驱动整个传感器芯片(类比 STM32 的 HSE)
- PCLK:像素时钟输出,用于同步数据传输
- HREF:行同步信号,高电平时数据有效
- VSYNC:帧同步信号,表示一帧图像开始
提示:
- 若使用 FPGA 控制 OV5640,需先通过 SCCB 接口写入初始化寄存器,再接收图像数据。
- 图像数据通过 Y2-Y9 共 8 根数据线并行输出。
数据输出方式
OV5640 支持多种图像格式输出,其中常用的有:
格式 | 说明 |
---|---|
RAW | 原始 Bayer 格式 |
RGB565 | 每像素占 16 位,R:5, G:6, B:5 |
YUV422 | 亮度+色度格式,压缩率较高 |
JPEG | 直接输出 JPEG 编码图像 |
FPGA 引脚映射
信号名 | 方向 | 管脚 |
---|---|---|
cam_pclk | input | W14 |
cam_vsync | input | U12 |
cam_href | input | T12 |
cam_rst_n | output | P14 |
cam_pwdn | output | V15 |
cam_data[0] | input | R14 |
cam_data[1] | input | U13 |
cam_data[2] | input | V13 |
cam_data[3] | input | U15 |
cam_data[4] | input | U14 |
cam_data[5] | input | W13 |
cam_data[6] | input | V12 |
cam_data[7] | input | Y14 |
emio_sccb_tri_io[0] | inout | T10 |
emio_sccb_tri_io[1] | inout | T11 |
SCCB 通信简述
SCCB 协议是 OV5640 的配置接口,其操作分为两类:
1. 三步写操作
用于向某个寄存器地址写入数据:
- 发送设备 ID + W 标志(相当于 I2C 设备地址)
- 发送寄存器地址(Sub-address High + Low)
- 发送 8 位数据
2. 两步读操作
用于读取寄存器中的数据:
- 发送设备 ID + R 标志
- 读取 8 位数据