一. 简介

从本例开始,接下来的几例,都将围绕OV5640摄像头来学习,教大家学会,如何通过OV5640摄像头,采集图像,并且显示在VGA显示屏上。

本例将简要地介绍一下OV5640摄像头,如何详细讲解一下SCCB接口,该接口主要用于配置OV5640,闲话不多说。

下一篇将介绍 OV5640寄存器


二. 认识OV5640摄像头

先简单了解一下OV5640的设计框图,对其内部架构有个大致的原理,图中可以看到 图像输出接口支持 DVP和 MIPI两种接口,具体使用那种,可以根据自己的需求进行选择,本例程使用的是DVP接口的,黑金的那款。

再来看看整体的引脚接口,整体接口图如下,下面一一介绍

CMOS_SCL 和 CMOS_SDA : 实际上就是SCCB接口的SIO_C和SIO_D,由于SCCB和IIC接口十分相似,只有一个位置的细微差别,所以经常就会叫做SCL和SDA。

D0-D7: 图像数据输出引脚,一共8位,从框图中可以看出,其实是有10位的,那另外两位那去了呢?查看摄像头的外部电路原理图得知,10位中的低两位没有引出来

CMOS_PCLK: 从框图中可以看出,这个时钟是摄像头输出的,用于和D0-D7以及VSYNC同步,也就是说外部采集数据是以PCLK为标准时钟的。

CMOS_XCLK: 从框图中可以看出,这个时钟是外部输入的,用于为摄像头提供时钟。

CMOS_VSYNC: 摄像头输出信号,在每一帧图像输出开始之前,都会拉高一定的时间,用于帧同步。

CMOS_HREF: 摄像头输出信号,拉高,表示D0-D7输出数据有效。

CMOS_RESET: 复位信号,默认为高电平,拉低时间持续1ms以上进行复位,清除OV5640摄像头内部寄存器的所有值为默认值。

CMOS_PWDN: 掉电使能信号,外部输入,高电平有效,正常工作是,应设置为低电平。

最后,看一下OV5640输出的图像格式,实际输出的图像大小是可以调整的,通过配置寄存器。

到这里算是对OV5640有了一个初步的了解。下面将介绍SCCB时序。


三. SCCB时序

SCCB时序,与IIC是非常类似的,如果不涉及到读操作的话,可以说是一样的,配置寄存器的时候,主要涉及到的是写操作,一般读操作用于验证是否成功写入寄存器。

(1)写操作

既然写和IIC一样,那直接上图,第一步写器件的地址,第二步写寄存器的地址,第三步写寄存器的值

其中器件地址为7bit,寄存器的地址为16bit,寄存器的值为8bit。所以配置一个寄存器,一共需要发送8*4(32)bit数据。

从下图可以看出,与IIC的一个区别,就是在应答位的时候,图中是用X表示的,也就是说不关心这一位,为0或1都可以。而IIC的应答是为0的,这是一个需要注意的点。

(2)读操作

读操作如下

起始信号 + 器件地址写 +应答+ 寄存器地址+应答 + 停止信号 + 起始信号 + 器件地址读 + 应答 + 读数据 +应答 + 停止位

对比IIC而言(IIC可有可无),其中多了个停止信号,这个是非常重要的,容易被忽视。一般而言,IIC读操作的时候,是不会加这个停止信号的。这一点通过手册上可以看到。

对IIC时序不清楚的朋友,可以参考博客第五例,或者其它教程。到这里SCCB接口的具体过程就分享到这里了。


四. SCCB代码实现

SCCB相较于IIC而言,是简单了的。

模块的接口信号如下,还是比较容易的。

实现方法和之前的例程IIC类似,也略有区别。主要在写操作时的第二次发送从机地址的判断部分。感兴趣的可以参考对比。

欢迎关注微信公众号 FPGA之旅 回复 FPGA之旅设计99例之第十八例 获取完整代码以及OV5640数据手册

SCCB_Interfacec (input           sys_clk,        //系统时钟input           rst_n,          //复位//SCCB接口output   reg    SIO_C,inout           SIO_D,//读写相关数据input[6:0]      Slave_addr,             //从机地址,摄像头地址input[15:0]     register_addr,          //寄存器地址input[7:0]      write_value,            //写入寄存器的值output[7:0]     read_value,             //从寄存器读出的值//写接口input           Slave_write_req,output          Slave_write_ack,//读接口input           Slave_read_req,output          Slave_read_ack
);

读操作仿真图如上

FPGA之旅设计99例之第十八例----OV5640摄像头SCCB时序相关推荐

  1. FPGA之旅设计99例之第二十一例----VGA串口SDRAM显示图片

    一. 简介 本例将接着上一例实现的sdram控制器进行封装.上例中只是实现了一个基本的控制器,在实际使用中,通常读写时钟是两个不同频率的,所以并不能满足要求. 在本例中,将对读写接口进行封装,将读写接 ...

  2. FPGA之旅设计99例之第二十例---SDRAM存储器实现

    一. 简介 本例将介绍SDRAM的使用.SDRAM是一个存储器件,存储容量大,存储速度比较快,速度可达100M,特别适合用来当中视频或者音频中的存储器件. 在采集到OV5640传输过来的图像数据的时候 ...

  3. FPGA之旅设计99例之第二例-----按键

    一.简介 这是FPGA之旅的第二个设计实例了,按键在项目中的作用是非常大的,使用的很频繁,本例将带大家设计一个实用的按键模块. 欢迎关注微信公众号 FPGA之旅 哦 可以在上面联系,有什么问题的话 二 ...

  4. (90)FPGA十进制计数器设计-面试必问(十四)(第18天)

    (90)FPGA十进制计数器设计(第18天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)FPGA十进制计数器设计-面试必问(十四)(第18天) 5)技术交流 ...

  5. 【正点原子FPGA连载】第四十九章OV5640摄像头HDMI灰度显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  6. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写...

    实验十八:SDRAM模块① - 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者.笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙.<整合篇>之际, ...

  7. linux 正点原子ov5640_【正点原子FPGA连载】第二十四章OV5640摄像头HDMI显示-摘自【正点原子】领航者 ZYNQ 之嵌入式开发指南 (amobbs.com 阿莫电子论坛)...

    [code]#----------------------摄像头接口的时钟--------------------------- #72M create_clock -period 13.888 -n ...

  8. Dreamweaver网页编辑技巧十八例

    1>如何制作电子邮件表单处理结果 在<***FORM***>中输入Action="youremail@XXX.XXX" ,提交采用POST方法.使用代码:< ...

  9. FPGA中计数器设计探索

    FPGA中计数器设计探索,以计数器为32位为例: 第一种方式,直接定义32位计数器. reg [31:0]count; quartus ii 下的编译,资源消耗情况. 85C模型下的时钟频率. 0C模 ...

  10. FPGA-Xilinx 7系列FPGA DDR3硬件设计规则

    Xilinx 7系列FPGA DDR3硬件设计规则 引言:本文我们介绍Xilinx 7系列FPGA DDR3硬件设计规则及约束,包括Bank选择.管脚位置约束.管脚分配.端接.I/O标准和走线长度. ...

最新文章

  1. 我的世界java1.15.2光影_2.世界摄影简史
  2. python工作招聘-python爬虫 智联招聘 工作地点
  3. hdu5461(2015沈阳网络赛L题)
  4. linux ssh抓包,如何在SSH连接Linux系统的环境下使用wireshark抓包?
  5. WiFi共享精灵 - 不需路由器一键轻松把网线共享给手机、笔记本等同时无线上网...
  6. html两个div有缝隙_HTML第一课
  7. 误删除MySQL数据库表的ibd文件怎么办
  8. 豆瓣评分9.9!国内外口碑炸裂的强化学习圣经中文版终于来了!
  9. 2018网易内推 堆棋子 规律题
  10. php怎么把时间精确到毫秒,如何使用php获取当前时间戳、日期并精确到毫秒
  11. ios识别人脸自动拍照_ios人脸拍照识别
  12. 双网卡内外网同时使用
  13. android拍照文件没有读写权限,Android6.0之后的拍照+本地存储权限问题
  14. sql like N#39;%%#39;,N 是代表什么意思 及Like语句详解
  15. 第一次用 PHPUnit 写测试就上手(上)
  16. 安排几款实用的内网穿透工具(加教程)
  17. 【数据分析干货】世界杯4强出炉!冠军将花落谁家?看看历年数据!
  18. 转载:left join right join left outer join 区别
  19. JavaScript中splice的用法
  20. 电脑硬件:cpu后边数字及字母的意思

热门文章

  1. 强制删除被占用文件 windows
  2. 怎样才能提取图片中的文字
  3. 练习华为大型公司网络构建拓扑图
  4. mysql-front 8.0_使用SQL-Front启动MySQL8.0报错
  5. 机房服务器配置方案文件,机房搬迁实施方案模版
  6. IDEA配置Android-SDK
  7. 记录一下 MacBook 中 texlive 的安装路径
  8. Python代码加密-PyArmor
  9. 关于二维数组,二维数组指针
  10. linux命令中tar什么意思,Linux中tar命令起什么作用呢?