在正式开始OV7725视频采集实现之前,Bingo不得不先讲解一下OV7725的寄存器配置接口。OV7725上电会默认输出YUV422格式的视频流,但我们希望传感器能够按照我们预期的模式工作,我们需要配置分辨率,配置内部时钟,配置亮度、色差、3A参数等。因此我们需要一个接口,来完成OV7725寄存器的配置——这就是SCCB接口,即Serial Camera Control Bus,串行相机控制总线。OV7725的SCCB总线,实际上就是我们常用的I2C通信总线,这在前文已经提到过,只不过OmniVision针对Camera的控制,专门提供了一个术语。OV7725的SCCB接口有两个信号,即时钟信号SCL、数据信号SDA。OV7725通过这两个信号,完成寄存器的配置,实现预期配置的视频流输出。Bingo曾在2012年的时候写过《从零开始走进OV7670世界》,详细的介绍了OV7725的SSCB(I2C)接口的HDL初始化,介绍了CMOS视频数据的采集,同时介绍了YUV2RGB等内容。由于OV7760与OV7725属于OmniVision的同系列数字相机,驱动方式与时序完全一样,因此SCCB总线的初始化可以参照该手册。I2C/SCCB总线制方式简单,器件封装形式小,主要有一下几个特点:(1) I2C总线只需要两条总线:一条串行数据线SDA,一条串行时钟线SCL(2) I2C总线不需要片选就可以实现多个设备的链接,并且通过从机为唯一地址识别器件,通过地址的响应,完成每一个器件的配置(3) I2C是一个真正的多主机总线,如果多个主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏(4) 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s(5) 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制官方手册给出了SCCB总线8Bit数据串行发送的时序图,如下图所示(其中SCCB_E作为I2C的使能信号,类似于SPI总线的CS信号,这里我们不需要关心):SCCB总线通过串行方式发送8Bit数据,先发送MSB,再发送LSB,与SPI总线协议的数据发送很类似(除了不需要SPI_CS)。在发送完8Bit数据后,通过器件的响应信号,完成一次数据的传输。很久前在《从零开始走进OV7670世界》中,Bingo移植并优化了Terasic的I2C控制器;但是可读性和bug实在太多,因此后面花了九牛二虎之力,自己大淘了一套I2C读写代码,每一个代码都经过苛刻的追求,无数次Modelsim+CMOS测试(虽然完美是没有极限的)。在没个Sensor采集工程中的cmos_i2c_oVxxxx,均可找到i2c_timing_ctrl.v文件,该模块完整的描述了I2C时序,实现了CMOS Sensor的SCCB寄存器读写功能。详情请仔细分析i2c_timing_ctrl.v文件,Bingo在状态机的基础上完美的实现了I2C总线时序的封装,接口及例化如下所示:从接口例化中可见,Bingo还额外的为OV7725 SCCB初始化配套的设计了寄存器接口,如下表所示(部分参照了Terasic的代码):

 

i2c通信的详细讲解_【博文连载】SCCB(I2C)初始化时序介绍相关推荐

  1. i2c时序图的详细讲解_外脚手架及外架防护棚搭设详细讲解,附做法图

    1外架综合管理规定 1.建筑工程实行施工总承包的,外架专项方案应当由施工总承包单位编制.附着脚手架等专业工程实行分包的,其专项方案可由总承包单位组织专业承包单位编制: 2.架体高度超过20m(含20m ...

  2. 红旗linux mysql_恢复 - 红旗Linux案例精选:Amanda集中备份实例详细讲解_数据库技术_Linux公社-Linux系统门户网站...

    五.恢复 假定我们需要恢复cp3上一些丢失的数据,首先用amandabackup帐号登录cp2机器,创建/etc/amanda/amanda-client.conf文件,内容如下: # # amand ...

  3. cad工具箱详细讲解_筑龙网CAD工具箱使用说明

    __________________________________________________________________ ######## 筑龙网CAD工具箱的安装.设置与卸载 ##### ...

  4. cad工具箱详细讲解_正确使用AutoCAD插件CAD工具箱如何使用?

    正确使用AutoCAD插件CAD工具箱如何使用? 2018-10-18 17:17:39 0点赞 15收藏 0评论 本程序为VLX格式,需要在CAD软件中加载. 1.CAD工具箱安装步骤 1.1解压软 ...

  5. cad工具箱详细讲解_分享一个好用的工具箱

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 小葛CAD工具箱是我自己根据自己的平时的工作需求开发的一个自己用的CAD小工具. 开始自己用,后来也有越来越多的人喜欢使用它了,现在分享给大家. 工具箱默 ...

  6. 共模电感适用的频率_【连载】手机常见电子元件介绍数据共模电感

    看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:华人手机维修师专属工具集合店,不锈钢拆机片5个只需9.9元!包邮 山猫潮品:手机渠道直供, ...

  7. Xcode使用教程详细讲解 (下)

    转载:http://mobile.51cto.com/iphone-273738.htm Xcode使用教程详细讲解 (下)是本节要介绍的内容,继续Xcode使用教程详细讲解 (上)的内容开始介绍. ...

  8. pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)

    原标题:[博文连载]PCIe扫盲--Ack/Nak 机制详解(一) 前面在数据链路层入门的文章中简单地提到过Ack/Nak机制的原理和作用,接下来的几篇文章中将对Ack/Nak机制进行详细地介绍. A ...

  9. stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解)

    stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解) 首先看看效果吧 手机端发送一个数据在OLED屏幕上显示 其实蓝牙通信就是个蓝牙转串口的过程,手机 ...

最新文章

  1. 45 jQuery中的常用API
  2. 在使用 interface 声明一个接口时,只可以使用那个修饰符修饰该接口?
  3. windows下查看当前进程,杀掉进程等
  4. ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application
  5. 三、案例:留言板 url.parse()
  6. 设置笔记笔触摸区(Vista)
  7. java应用挂死故障排查
  8. day02数据类型方法整理
  9. iconv linux 开源代码,每天一个 Linux 命令(123):iconv 命令
  10. C语言入门20个简单程序|最新更新2021.7.13
  11. Setup Factory安装及程序安装包制作教程
  12. Pygame之滑稽球壁碰
  13. 拉结尔微信开到多少服务器了,拉结尔微信渠道服
  14. 量子力学考研书籍介绍
  15. python爬取豆瓣电影排行榜前250名
  16. leetcode 739. Daily Temperatures 每日温度(中等)
  17. 新生宝宝取名大全:带梓字寓意大气的男孩名字
  18. 【Arduino】入门篇——人体红外自动报警
  19. 懂球帝Android客户端WebView优化之路
  20. Python人脸识别—我的眼里只有你

热门文章

  1. css那些事儿4 背景图像
  2. 思科模拟器:[1]安装及汉化详解
  3. 【翻译】在Ext JS中创建特定主题的重写
  4. 嵌入式系统Linux内核开发工程师必须掌握的三十道题
  5. std::unique_ptr<T>与boost::scoped_ptr<T>的特殊性
  6. [dts]DTS实例分析
  7. 计算机资产管理,▪ 资产管理
  8. linux下I2C驱动发送IO时序,笔记四:linux下IO口模拟实现I2C协议
  9. python调用arcgis_arcgis python 调用工具两种两种方法
  10. python网络编程证书_python 网络编程——客户端