IIC与OV5640

这篇具有很好参考价值的文章主要介绍了IIC与OV5640。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IIC与OV5640,fpga开发

IIC与OV5640,fpga开发

系统上电后,状态机处于 IDLE(初始状态);

接收到有效的单字节数据读/写开始信号i2c_start 后,状态机跳转到 START_1(起始状态);

FPGA 向 EEPROM 存储芯片发送起始信号,随后状态机跳转到 SEND_D_ADDR(发送器件地址状态);

在此状态下向 EEPROM 存 储芯片写入控制指令,控制指令高 7 位为器件地址,最低位为读写控制字,写入“0”,表 示执行写操作;控制指令写入完毕后,状态机跳转到 ACK_1(应答状态)。

在 ACK_1(应答状态)状态下,要根据存储地址字节数进行不同状态的跳转。 情况一:当 FPGA 接收到 EEPROM 回 传 的 应 答 信 号 且 存 储 地 址 字 节 为 2 字 节 , 状 态 机 跳 转 到SEND_B_ADDR_H(发送高字节地址状态);将存储地址的高 8 位写入 EEPROM,写入完成后,状态机跳转到 ACK_2(应答状态);FPGA 接收到应答信号后,状态机跳转到SEND_B_ADDR_L(发送低字节地址状态); 情况二:当 FPGA 接收到 EEPROM 回传的应答信号且存储地址字节为 单字节,状态机状态机直接跳转到 SEND_B_ADDR_L(发送低字节地址状态);在SEND_B_ADDR_L此状态低 8 位存储地址或单字节存储地址写入完成后,状态机跳转到 ACK_3(应答状态)。
在 ACK_3(应答状态)状态下,要根据读/写使能信号做不同的状态跳转。 情况一:当 FPGA 接收
到应答信号且 写使能信号有效,状态机跳转到 WR_DATA(写数据状态);在写数据状态, 向EEPROM 写入单字节数据后,状态机跳转到 ACK_4(应答状态);待 FPGA 接收到有效应答信号后,状态机跳转到 STOP(停止状态); 情况二:当 FPGA 接收到应答信号且 读使能信号有效, 状态机跳转到 START_2(起始状态);再次向 EEPROM 写入起始信号,状态跳转到SEND_RD_ADDR(发送读控制状态);再次向 EEPROM 写入控制字节,高 7 位器件地址不变,读写控制位写入“1”,表示进行读操作,控制字节写入完毕后,状态机跳转到 ACK_5(应答状态);待 FPGA 接收到有效应答信号后,状态机跳转到 RD_DATA(读数据状态);在 RD_DATA(读数据状态)状态,EEPROM 向 FPGA 发送存储地址对应存储单元下的单字节数据,待数据读取完成户,状态机跳转到 N_ACK(无应答状态),在此状态下向 EEPROM 写入一个时钟的高电平,表示数据读取完成,随后状态机跳转到 STOP(停止状态)。
在 STOP(停止状态)状态,FPGA 向 EEPROM 发送停止信号,一次单字节数据读/写操作完成,随后状态机跳回 IDLE(初始状态),等待下一次单字节数据读/写开始信号 i2c_start。
IIC与OV5640,fpga开发

IIC与OV5640,fpga开发

注:对 EERPROM 的数据读写操作均使用单字节读/写操作,即每次操作只读/写单字
节数据;若想要实现数据的连续读/写,可持续拉高读/写使能 rd_en/wr_en,并输入有效的
单字节数据读/写开始信号 i2c_start 即可。

 IIC与OV5640,fpga开发

IIC与OV5640,fpga开发

IIC与OV5640,fpga开发

IIC与OV5640,fpga开发

下面讲一下配置寄存器的步骤: ov5640的每个寄存器配置之前都要先写入8位器件地址0X78,然后再写入高低16位寄存器地址,再写入8位数据值

前面第1-2红线之间的state=2在SEND_D_ADDR状态表示要写入器件地址,i2c_sda的0111_1000表示ov5640的器件地址0X78;  

第2-3条红线之间的state=3在ACK_1应答状态; 

第3-4和第5-6条红线总共表示写入第一个寄存器地址3103;其中第3-4条红线之间的state=4在SEND_B_ADDR_H状态表示要写ACK入寄存器地址高8位,i2c_sda的0011_0001表示0X31;第4-5条红线之间的state=5在ACK_2应答状态;第5-6条红线之间的state=6在SEND_B_ADDR_L状态表示要写入寄存器地址低8位,i2c_sda的0000_0011表示0X03;第6-7条红线之间的state=7在ACK_3应答状态; 

第7-8条红线之间的state=8在WR_DATA状态表示要写入第一个寄存器的数据值,i2c_sda的0001_0001表示写入的数据值是0x11;  

IIC与OV5640,fpga开发

第8-9条红线之间的state=9在ACK_4应答状态;

在9-10条红线之间的state=f在STOP结束状态;此后i2c_end拉高了一个时钟周期表示一个寄存器配置完成。

IIC与OV5640,fpga开发

每个寄存器配置都是从i2c_start开始,到i2c_end结束的(即两条黄线之间:从state=1~9,再到STOP结束状态f)

IIC与OV5640,fpga开发

IIC与OV5640,fpga开发IIC与OV5640,fpga开发IIC与OV5640,fpga开发 IIC与OV5640,fpga开发IIC与OV5640,fpga开发IIC与OV5640,fpga开发IIC与OV5640,fpga开发

本身ov5640的器件地址是0X78(即0111_1000)。但是野火写的器件地址是0X3c(即0011_1100), 但是在i2c_sda_reg的8位SEND_D_ADDR地址中,用cnt_bit计数8个,在前7个写入的是器件地址0X3c(取低位的7个数011_1100),最后一个是读写控制字0(0表示写),合起来也是0X78(即0111_1000)。

IIC与OV5640,fpga开发 

写使能有效,读使能无效(即只是写入了ov5640的寄存器地址和数据值,但不读出),所以只有左边圈住的状态需要操作,右边的没圈住的状态不用管。IIC与OV5640,fpga开发文章来源地址https://www.toymoban.com/news/detail-827366.html

到了这里,关于IIC与OV5640的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【正点原子FPGA连载】 第二十七章OV5640摄像头LCD显示 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html OV5640是OmniVision(豪威科技)公司生产的一颗CMOS图像传感器,该传感器功耗低、分辨率高以及采集速率快,主

    2024年02月16日
    浏览(54)
  • FPGA2-采集OV5640乒乓缓存后经USB3.0发送到上位机显示

    基于特权A7系列开发板,采用OV5640摄像头实时采集图像数据,并将其经过USB3.0传输到上位机显示。这是验证数据流能力的很好的项目。其中,用到的软件版本,如下表所示,基本的硬件情况如下。该项目对应FPGA工程源码,qt工程源码,以及USB固件的下载地址 软件 版本 QT 5.15

    2024年02月15日
    浏览(41)
  • 【正点原子FPGA连载】 第三十章双目OV5640摄像头LCD显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html 双目摄像头是在一个模组上集成了两个摄像头,实现了双通道的图像采集。双目摄像头一般应用于安防监控、

    2024年02月13日
    浏览(48)
  • FPGA 多路视频处理:图像缩放+视频拼接显示,OV5640采集,提供2套工程源码和技术支持

    FPGA高端项目:Xilinx Kintex7系列FPGA 多路视频缩放拼接 工程解决方案 ov5640版本 提供4套工程源码+技术支持 没玩过图像缩放和视频拼接都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。本文使用Xilinx的Kintex7系列FPGA实现多路视频缩放拼接方案,视频

    2024年02月08日
    浏览(43)
  • FPGA基于RIFFA实现PCIE采集ov5640图像传输,提供工程源码和QT上位机

    PCIE是目前速率很高的外部板卡与CPU通信的方案之一,广泛应用于电脑主板与外部板卡的通讯,PCIE协议极其复杂,想要掌握不容易,所以Xilinx和Altera等FPGA厂商直接推出了相关IP供用户使用,比如Xilinx的XDMA,这种IP直接集成了PCIE通信的所有内核资源,并已封装为AXIS接口,用户在

    2023年04月09日
    浏览(71)
  • FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码

    目前USB3.0的实现方案很多,但就简单好用的角度而言,FT601应该是最佳方案,因为它电路设计简单,操作时序简单,软件驱动简单,官方甚至提供了包括FPGA驱动在内的丰富的驱动源码和测试软件; 本设计用FPGA驱动FT601芯片实现USB3.0数据通信,使用同步245模式通信,提供2套v

    2024年02月11日
    浏览(39)
  • FPGA GTP全网最细讲解 aurora 8b/10b协议OV5640摄像头视频传输 提供2套工程源码和技术支持

    没玩过GT资源都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 GT资源是Xilinx系列FPGA的重要卖点,也是做高速接口的基础,不管是PCIE、SATA、MAC等,都需要用到GT资源来做数据高速串化和解串处理,Xilinx不同的FPGA系列拥有不同的GT资源类型,低端

    2024年02月09日
    浏览(49)
  • OV5640 自用资料

              OV5640 PLL 允许输入时钟频率范围为 6~27 MHz,最大 VCO 频率为 800 MHz。         MipiClk 用于 MIPI,SysClk 用于图像信号处理 (ISP) 模块的内部时钟。         可以通过将寄存器 0x​​3039[7] 设置为 1 来旁路 PLL。         串行相机控制总线 (SCCB) 接口控制图像传

    2024年02月03日
    浏览(32)
  • 基于OV2640/ OV5640 的图像采集显示系统

    基于OV2640/ OV5640 的图像采集显示系统系列文章目录: (1)基于 OV5640 摄像头理论知识讲解-成像和采样原理 (2)基于 OV5640 摄像头理论知识讲解-数字接口和控制接口 (3)基于 OV5640 摄像头理论知识讲解-典型工作模式配置 (4)基于OV2640/ OV5640 的图像采集显示系统 本节将在实

    2024年02月11日
    浏览(43)
  • OV5640像素时钟的计算方法

    按照配置表中380c、380d、380e、380f计算。 这里如果将分辨率设置为1280*720,加上无效的像素行列 配置表中,加上无效行像素16进制为:0764(H),转换为十进制为1892,也就是总行数为1892行 加上无效列像素16进制为:02e4(H),转换为十进制为740,也就是总列数为740 这里配置O

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包