摄像头驱动OV7725学习笔记连载(一):OV7725 电器特性和时序图
OV(豪威科技)已经被中国财团收购。这个昔日的大佬,最终走下神坛。
关于OVsensor的资料包括,OV7725的简介(OmniVsion_OV7725),OV7725的数据手册(OV7725_Datasheet),OV7725 SCCB的接口时序(OmniVision Serial Camera Control Bus (SCCB)
Functional Specification),OV7725 寄存器配置手册(OV7725 Camera Module Software Application Note)。

淘宝上买的一款摄像头如下:

OV7725硬件电路

上图是OV7725的驱动电路,注意sclk和sdat要接4.7K的上拉电阻,这个是因为SCCB接口本质是I2C接口,其输出端是漏极开路或集电极开路,本身只能输出低电平,所以在两个接口处必须接上拉电阻,这一点注意,否则会造成通信不成功。
I2C接口通过从机的唯一地址识别访问,可以实现对每一个器件的控制,这种传输方式,在标准模式下,可以达到100kbps,在快速模式下能达到400 kbps,高速下能达到3.4Mbps。

图1

图1主要是OV7725的内部结构,主要是由XCLK驱动时钟进行图像数据的采样。SCL和SDA是 SCCB的接口,其他接口是OV输出的信号,包括HREF,PCLK,VSYNC,还有就是数据输出接口,一共10bit。注意在DSP模块中,可以实现,镜头阴影校正,降噪,白/黑像素校正,自动白平衡等。
关于缩放功能,其中可以从VGA模式缩放到CIF模式,甚至低于CIF模式。



上图是OV可以输出的格式。
OV7725在VGA模式 下可以达到60fps。可以通过SCCB接口,实际上也就是类似于I2C接口,进行白平衡,gama,色彩校正,曝光控制,色调控制等。通过图1也可以看出相关架构。

上图是OV7725的引脚图。其中用到的引脚如下图所示:


通过上图也可以看出,对于RAW RGB数据输出10bit,若是对于其他格式的输出为8bit,取D输出的高8bit。

上图是OV的电气特性,模拟电源典型值为3.3V,数字电压典型值为1.8V,IO接口电压可以按3.3V。


上图中,驱动时钟需要24MHz,SCCB接口的时钟最高为400KHz。还需要注意一点的是对于每一个寄存器的改变,需要最大300ms时间的延迟,也就是10帧。

上图是SCCB接口的时序图,也是实现各种寄存器配置的时序图,其中SCL的时钟要求不能 超过400KHz。

RGB565格式的输出的拼接示意图。

RGB555格式的输出的拼接示意图。

上图是实现了伴随着PCLK时钟频率,在HREF有效情况下,输出数据。并实现数据的拼接。上图是对应于数据拼接示意图,实现RGB565/RGB555/RGB传输。
RGB444格式的输出的拼接示意图。
不同帧格式的时序图


注意,上述输出一帧图像时PCLK的输出时钟,在OV7725 寄存器配置手册(OV7725 Camera Module Software Application Note)中有提及,如下图所示:

摄像头驱动OV7725学习笔记连载(一):OV7725 电器特性和时序图的更多相关文章
- 摄像头驱动0V7725学习笔记连载(三):0V7725 SCCB时序的实现
上一篇博客主要是讲解了关于需要配置的重要寄存器,那么接下来就是要通过SCCB接口实现对OV7725的配置.参考<OmniVision Serial Camera Control Bus (SCC ...
- 摄像头驱动OV7725学习笔记连载(二):0V7725 SCCB时序的实现之寄存器配置
上一篇博客主要介绍了OV7725的电气特性以及SCCB接口的时序和输出一帧图像的时序图以及数据的拼接.输出一帧图像与输出时钟PCLK有关. 上图是OV7725实现的整体框架,有点丑.FPGA描述SCC ...
- 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址
驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) ...
- Aurora学习笔记连载一:仿真平台搭建
由于公司项目需要,需要学习Aurora协议,才有了这样的连载学习笔记,也算是对自己学习的一份记录吧. 对于Aurora是什么,大家自行百度. 当然,Kevin也在此先提醒大家,本套学习笔记不是你想学就 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十八章:立方体贴图
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十八章:立方体贴图 代码工程地址: https://github.c ...
- USB学习笔记连载(十五):USB固件更新以及安装驱动
前几篇博客已经把如何更改固件程序和更改USB驱动名称,那么接下来就要把之前生成的 .iic 文件烧录到EEPROM里面去,实现USB的C2启动(笔者使用的是此类型,C2启动). 打开Cypress U ...
- 驱动开发学习笔记. 0.06 嵌入式linux视频开发之预备知识
驱动开发读书笔记. 0.06 嵌入式linux视频开发之预备知识 由于毕业设计选择了嵌入式linux视频开发相关的项目,于是找了相关的资料,下面是一下预备知识 UVC : UVC,全称为:USB v ...
- 驱动开发学习笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇
驱动开发读书笔记. 0.04 linux 2.6 platform device register 平台设备注册 1/2 共2篇下面这段摘自 linux源码里面的文档 : Documentatio ...
- 驱动开发学习笔记. 0.02 基于EASYARM-IMX283 烧写uboot和linux系统
驱动开发读书笔记. 0.02 基于EASYARM-IMX283 怎么烧写自己裁剪的linux内核?(非所有arm9通用) 手上有一块tq2440,但是不知道什么原因,没有办法烧boot进norflas ...
随机推荐
- iOS-登录认证/json解析
用户输入用户名和密码,点击登录...我们把用户名和密码(用post方式或者get方式,get方式多用于测试看你需要)传给服务器,服务器进行判断,然后返回一个接口给我们(这里服务器返回的json接口,正 ...
- 自动化运维工具SaltStack详细部署
==========================================================================================一.基础介绍==== ...
- Enum,Int,String的互相转换 枚举转换
Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基 ...
- mongoose更新文档的时候让某个字段自增
Station.update({ _id: req.params.id }, { $set: req.body, $inc: { count: 1 } }, { multi: false }, cal ...
- angular.js测试框架protracotr自带的webdriver-manager启动问题“Invalid or corrupt jarfile”
按照官网安装完protractor. 升级webdriver-manager,获取selenium-server-standalone库文件以及各种浏览器驱动文件. webdriver-manager ...
- python(46):对字典进行排序,多键值排序
注:改于2017-12-07,python3 下 Removed dict.iteritems(), dict.iterkeys(), and dict.itervalues(). Instead: ...
- profile bashrc bash_profile 之间的区别和联系
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个 ...
- iOS进阶指南试读之UI篇
iOS进阶指南试读之UI篇 UI篇 UI是一个iOS开发工程师的基本功.怎么说?UI本质上就是你调用苹果提供给你的API来完成设计师的设计.所以,想提升UI的功力也很简单,没事就看看UIKit里的各个 ...
- http.ResponseWriter的Flush
func handle(res http.ResponseWriter, req *http.Request) { fmt.Fprintf(res, "sending first line ...
- EntityFramework安装和EF升级方法
例如:如何在vs2010上安装EntityFramework5.0? 首先,需要安装一个vs插件,名称为NuGet Package Manager,微软官方发布的,其作用就是为vs工程项目自动下载.安 ...