使用XILINX的FIFO IPcore遇到的问题

使用XILINX的FIFO IPcore遇到的问题,第1张

有可能你之后写入的数据就已经是全0了,用一个方法确定,你把输入连到一个常数上,如果到最后有数据输出就说明是对的,要是没数据输出就说明是错的,一般来说FIFO IP核没有问题的,用了好多次了。

对于MCB的user interface的控制来讲,往DDR2中写数据时,要将当前的期望数据写到对应的地址中那么就要先将数据写到DATA FIFO中(在这之前DATA FIFO必须为空),再往CMD FIFO中写命令字才能将当前的数据写入预期的地址(当然此时要保证本通道的的CMD FIFO 里面没有别的写命令字还没执行,否则数据将有可能写到别的地址中去),而读 *** 作则是反过来的,先往CMD FIFO中写命令字,等到对应的DATA FIFO为非空的时候读取这样才能有效的保证 *** 作的准确性,不知道解释的够不够清楚,不过实际仿真一遍,看看结果波形时序关系就可以明白了

关于第二个问题,主要现在电路已经做成,有些线已经无法再连接,看能不能从软件方面补救一下。我的FIFO不是靠空满逻辑来读数的,因为我在发送数据给FIFO和从FIFO中读出的数据是一一对应的,有多少数读多少数,不多也不少。但是现在因为FIFO读使能和DMA通道打开之间有个时间差,所以我担心这段时间内没有读到FIFO中的数据,使读上去的数据比预期的要少。

OV7670传感器:CMOS器件;标准的SCCB接口,兼容IIC接口;内置感光阵列,时序发生器,AD转换器,模拟信号处理,数字信号处理器
大致工作过程:光照射到感光阵列产生相应电荷,传输到相应的模拟信号处理单元,再由AD转换为数字信号,在经由数字信号处理器插值到RGB信号,
对于该模块
1、如何存储图像数据;2、如何读取图像数据
1、存储(OV7670往FIFO中写数据)
OV7670模块存储图像数据的过程为:等待OV767同步信号->FIFO写指针复位->FIFO写使能->等待第二个同步信号->FIFO写禁止,通过以上5个步骤就可以完成一帧图像的存储
2、读取(MCU从FIFO中读取数据)
读取过程:FIFO读指针复位->给FIFO读时钟(FIFO RCLK)->读取第一个像素高字节->给FIFO读时钟(FIFO RCLK)->读取第一个像素低字节->给FIFO读时钟(FIFO RCLK)->读取第二个像素高字节->循环读取剩余像素->结束
比如QVGA模式,RGB565格式,我们总共循环读取3202402次,就可以读取一帧数据,把这些数据写入LCD模块,就可以看到摄像头的画面了。

first in first out 是一种先入先出的堆栈,为数据读取添加一个缓存,可以增加cpu的效率,FIFO控制寄存器其中可以对FIFO进行一些设置如中断使能啊,FIFO的读取延时啊,具体看具体的芯片


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13204471.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-20
下一篇 2023-06-20

发表评论

登录后才能评论

评论列表(0条)

保存