OV7670摄像头调试

时间:2021-05-21 16:49:41

  这个OV7670的摄像头是带有fifo芯片的,fifo容量大小只可以存储320*240的图像帧,存不了640*480的,而我是在VGA上显示视频,所以必须准确调好fifo读写的时序才能正确使用。这个地方花了很长的时间,从一开始没图像到出现不规整快速闪屏的画面分割的图像,然后又出现模糊的红绿色点的图片(花了一天时间才弄明白是是两字节的像素没有对齐的原因,可见我是多么的菜!)几乎每改动一点就会久问题没解决又出现新的问题。后来索性将fifo去掉,画面不闪也不分割了但出现红绿色点图片,纯菜的我还以为是焊接时把摄像头芯片弄坏了,又把fifo焊上去试了下,出来的还是红绿色点图,之前调的是没有这种情况的,所以当真以为坏了。谁知第二天上班时又试了下竟然又出来不断闪屏分割的图像了。后来看看fifo芯片的手册,发现是读写计数器的复位时序不对,复位时需要至少两个时钟周期,可我只给了一个,大概是这里造成了读写数据的不稳定,使得字节读写时没有对齐。修改后,出来的图像达到了预期效果。

至于去掉fifo后的调试还没开始,出现了问题不解决掉总感觉不爽。

一堆的事都没时间做,还没怎么开始就发现又一大截时间倏忽过去了。


2017.5.15

带有fifo芯片的时候总是无法显示完整的图像,总是有一部分图像由于fifo的容量大小是同样的,调了很久总是出现莫名其妙的问题。去掉了fifo芯片后,终于调通了,显示器上出现了完整清晰的图像,不得不感慨这过程的艰难繁复,总之是我太菜了!

      其实还是有很多问题没有完全搞懂,比如为什么直接用FPGA驱动摄像头时,需要用摄像头的像素时钟pclk将视频行同步信号vhref锁存一拍后再读取数据才能得到两字节正确对齐的的图像数据流,而原来的摄像头用fifo芯片缓存图像数据时是直接用pclk的上升沿作为锁存信号,用hvref信号作为写使能的,这样也可以得到正确的数据流。在这里确实有点不明白了!据我猜测,可能是和PCB的走线有关,去掉fifo后,pclk和hvref走线发生了很大的变化,原来直接接在fifo芯片引脚上,走线不过1cm左右,去掉fifo芯片直接接fifo引脚后估计走线到了10cm左右。

   得好好学习下时序分析了,不然遇到时序问题简直是两眼一抹黑。