野火 ov7725 学习笔记 (fifo)

AL422B-FIFO简介
STM32F4系列的控制器主频高、一般会扩展外部SRAM、SDRAM等 存储器,且具有DCMI外设,可以直接根据VGA时序接收并存储摄像头输出的图 像数据;而STM32F1系列的控制器一般主频较低、为节省成本可能不扩展 SRAM存储器,而且不具DCMI外设,难以直接接收和存储OV7725图像传感器
输出的数据。 为了解决上述问题,针对类似STM32F1或更低级的控制器,秉火的 OV7725摄像头在图像传感器之外还添加了一个型号为AL422B的FIFO,用于缓 冲数据。AL422B的本质是一种RAM存储器,它的容量大小为393216字节,支 持同时写入和读出数据,这正是专门用于FIFO缓冲功能而设计的

管脚名称 管脚类型 管脚描述
DI[0:7]  输入 数据输入引脚
WCK    输入 数据输入同步时钟
/WE     输入 写使能信号,低电平有效
/WRST 输入 写指针复位信号,低电平有效
DO[0:7] 输出 数据输出引脚
     RCK 输入 数据输出同步时钟
      /RE 输入 读使能信号,低电平有效
   /RRST 输入 读指针复位信号,低电平有效
       /OE 输入 数据输出使能,低电平有效
       TST 输入 测试引脚,实际使用时设置为低电平

写时序:在写时序中,当WE管脚为低电平时,FIFO写入处于使能状态,随着 读时钟WCK的运转, DI[0:7]表示的数据将会就会按地址递增的方式存入FIFO; 当WE管脚为高电平时,关闭输入,DI[0:7]的数据不会被写入FIFO。 在控制写入数据时,一般会先控制写指针作一个复位操作:把WRST设置为低 电平,写指针会复位到FIFO的0地址,然后FIFO接收到的数据会从该地址开始按自增的方式写入。

读时序:

FIFO的读时序类似,不过读使能由两个引脚共同控制,即OE和RE引 脚均为低电平时,输出处于使能状态,随着读时钟RCK的运转,在数据输出管 脚DO[0:7]就会按地址递增的方式输出数据。

总引脚:

管脚名称 管脚关系 管脚描述
OE FIFO的OE引脚 数据输出使能,低电平有效
RRST FIFO的RRST引脚 读指针复位信号,低电平有效
RCLK FIFO的RCK引脚 数据输出同步时钟
VSYNC OV7725的VSYNC引脚 场同步信号
WRST FIFO的WRST引脚 写指针复位信号,低电平有效
WEN 与下面的HREF共同组成与非门
的输入
与HREF共同控制FIFO的WE引脚,WEN与HREF同时为 高电平时,WE为低电平,OV7725可以向FIFO写入数据
HREF OV7725的HREF引脚 行同步信号
DO[0:7] FIFO的DO[0:7]引脚 数据输出引脚
SIO_C OV7725的SCL引脚 SCCB总线的时钟线
SIO_D OV7725的SDA引脚 SCCB总线的数据线

时间: 2024-10-19 18:56:17

野火 ov7725 学习笔记 (fifo)的相关文章

摄像头驱动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 Applic

嵌入式学习笔记008-裸奔篇之串口

串口是个好东西,前几篇裸奔程序由于没有串口,自己调试都是有led等来表示的,比较"苦逼",终于可以用串口了~~~,这里主要采用上一篇博文(嵌入式学习笔记007-裸奔篇之定时器),也就是串口也是用中断实现的,而且也只是在前一篇博文增加串口的初始化uart0_init(),以及在中断处理函数增加对串口的处理.只要稍微改造前一篇博文就是一个通用的中断处理程序! 这里主要实现在串口输入一个字符,接受后+2再发送到串口,所以在串口输入a 会返回c---. 由于code都有相应的注释,读者自行查看

Android-Universal-Image-Loader学习笔记(3)--内存缓存

前面的两篇博客写了文件缓存,现在说说Android-Universal-Image-Loader的内存缓存,该内存缓存涉及到的类如图所示 这些类的继承关系如下图所示: 如同文件缓存一样,内存缓存涉及的接口也有两个:MemoryCacheAware 和MemoryCache,其中MemoryCache只是简单的继承了MemoryCacheAware并没有声明其他的方法.MemoryCacheAware接口的方法如下: @Deprecated public interface MemoryCache

<<C++标准程序库>>中的STL简单学习笔记

0. 内容为个人学习笔记, 仅供参考, 如有错漏, 欢迎指正! 1. STL中的所有组件都是由模板构成的, 所以其元素可以是任意型别的. 组件有: - 容器: 管理某类对象的集合. 不同的容器有各自的优缺点. - 迭代器: 用来在一个对象集群(Collection of Objects) 的元素上进行遍历. 这个CoB可以是容器/容器的一部分. 每种容器都提供了自己的迭代器. - 算法(Algorithm): 用来处理集群内的元素(比如: 查询,修改,排序等). - 适配器(adapter) -

Ruby学习笔记

Ruby学习笔记 Ruby语言中,以对象为基本单位,可以说所有的元素都是对象.按照之前对于面向对象程序的理解,对象是指包含了特定属性和方法集合的一组程序.对象由类来定义,具体的表现为对象实例.也就是说,对象是类的实例化[2]. Ruby语言的基础元素 对象:数值对象.字符串对象.正则表达式对象.时间对象.文件对象.目录对象.数组.哈希.例外对象等 数值对象   由于Ruby中一切数据都是对象,所以我们处理的数字实际上也是对象. a = 10,这样一个简单的赋值语句,实际上应当理解为 a = Nu

Linux程序设计学习笔记----进程间通信——管道

转载请注明出处: http://blog.csdn.net/suool/article/details/38444149, 谢谢! 进程通信概述 在Linux系统中,进程是一个独立的资源管理单元,但是独立而不孤立,他们需要之间的通信,因此便需要一个进程间数据传递.异步.同步的机制,这个机制显然需要由OS来完成管理和维护.如下: 1.同一主机进程间数据交互机制:无名管道(PIPE),有名管道(FIFO),消息队列(Message Queue)和共享内存(Share Memory).无名管道多用于亲

Java多线程之JUC包:ReentrantReadWriteLock源码学习笔记

若有不正之处请多多谅解,并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/go2sea/p/5634701.html ReentrantLock提供了标准的互斥操作,但在应用中,我们对一个资源的访问有两种方式:读和写,读操作一般不会影响数据的一致性问题.但如果我们使用ReentrantLock,则在需要在读操作的时候也独占锁,这会导致并发效率大大降低.JUC包提供了读写锁ReentrantReadWriteLock,使得读写锁分离,在上述情

Java多线程之JUC包:Semaphore源码学习笔记

若有不正之处请多多谅解,并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/go2sea/p/5625536.html Semaphore是JUC包提供的一个共享锁,一般称之为信号量. Semaphore通过自定义的同步器维护了一个或多个共享资源,线程通过调用acquire获取共享资源,通过调用release释放. 源代码: /* * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to lic

APUE学习笔记:第四章 文件和目录

4.1 引言 本章将描述文件的特征和文件的性质 4.2 stat.fstat和lstat函数 #include<sys/stat.h> int stat(const char *restrict pathname,struct stat *restrict buf); int fstat(int filedes,struct stat *buf) int lstat(const char *restrict pathname,struct stat *restrict buf); 三个函数的返