OV5640:
简介
OV5640_V5( V5 是版本号,下面均以 OV5640 表示该产品)是芯路恒科技推出的一款高性能 500W 像素高清摄像头模块。该模块采用 OmniVision 公司生产的一颗 1/4 英寸CMOS QSXGA( 25921944)图像传感器 OV5640,配合高质量的光学镜头及为实现更高性能而精心设计的 PCBA,使该模块拥有了尽可能高的成像质量。OV5640 模块的特点如下:
- 1.4μm1.4μm 像素大小,并且使用 OmniBSI 技术以达到更高性能(高灵敏度、低串扰和低噪声)
- 自动图像控制功能:自动曝光( AEC)、自动白平衡( AWB)、自动消除灯光条纹、
- 自动黑电平校准( ABLC)和自动带通滤波器( ABF)等。
- 支持图像质量控制:色饱和度调节、色调调节、 gamma 校准、锐度和镜头校准等标准的 SCCB 接口,兼容 IIC 接口
- 支持 RawRGB、 RGB(RGB565/RGB555/RGB444)、 CCIR656、 YUV(422/420)、 YCbCr
( 422)和压缩图像( JPEG)输出格式
- 支持 QSXGA( 500W)图像尺寸输出,以及按比例缩小到其他任何尺寸
- 支持图像缩放、平移和窗口设置
- 支持图像压缩,即可输出 JPEG 图像数据
- 支持数字视频接口( DVP)
- 自带嵌入式微处理器
- 集成 LDO, 仅需提供 3.3V 电源即可正常工作
硬件电路:
我采用的是网上购买的集成了20Pin引脚的摄像头模块,具体原理图如下:
以下是对各引脚的解释(该图转接于下方原文链接)
DCMI外设简介:
DCMI全称Digital camera interface(数字摄像头接口),是一种用于采集摄像头数据的接口。
主要特性:
下面是代码时间:
业务逻辑
- 进行DCMI外设的初始化
- 初始化DCMI的DMA,采用DMA2Stream1来搬运DCMI获取的数据到外扩sram中,DMA采用双缓冲的方式,用块1KB的缓冲数组,每当1KB的数据搬运完成就在DMA中断函数中将缓冲数组中的数据搬运到数据存储数组中。
- 初始化SCCB接口引脚。使stm32能向ov5640寄存器写入数据
- 通过SCCB接口对ov5640进行基础配置,设置输出图片大小,设置图片输出jpeg格式等。
- 最后就是开始拍照,将数据上传至上位机了。最后是一些关键配置的代码。
注意:当拍照1080P照片时ov5640cfg.h的jpeg初始化数组中0x3035的值要设置为0x81,不能为0x21或0x41会导致图片在上位机传输显示不正常。
成果展示时间:
由于富文本编辑上传代码太丑,因此需要完整代码可私信我(免费!!!)不免费腿打折。
本文部分内容转接为下方文章: