cuter

【原创】OV7725调试笔记

0
阅读(7569)

看了一下上一篇博文的时间,快有半个月的时间没写blog了,但主观上感觉好像很久很久没写了,就好像时间过得特别慢,大概是因为日子过得比较充实,每天都很忙碌…


最近一阵子在调试OV7725摄像头! 摄像头的调试花费的时间太长了,大概用了两个星期,然而实际上解决问题,最主要是靠几天前晚上那张时序图。


显示倒是老早就搞定了,就是效果太差,读写内存的时序 一直都有问题,所以会造成例如偏移,抖动等显示问题。 调试了很久都没有进展,还是某天晚上静下心来设计了一张时序图,照着时序图完成设计,然后才解决了问题。所以说,在进行具体的设计之前,一定要进行很好的规划。比如将摄像头数据转换为axis数据流功能的时序图,又比如,将axis数据写入VDMA的时序设计。


有时候推翻现有设计从头设计不见得比修改别人的设计耗时久。自己的设计可以做到心中有数,别人的东西,一旦碰到问题,调试起来比较麻烦,因为你会怀疑一切不受控的东西。


最初是用bingo写的摄像头视频采集IP驱动OV7725,质量和成熟度自然不用说了。但是,调试过程中发现OV7725的寄存器配置与我设计的系统匹配存在问题,视频数据流很难快速有效地写入VDMA,处理起来比较麻烦,或者需要降低数据速率。所以用起来很不顺手,最后也选择了放弃,用了另外一个可读性好的IP,这是因为时间紧,没法深入研究,自己写IP。


利用FPGA配置OV7725寄存器,调试效率太低,每次修改寄存器配置,都需要很长的时间综合。对于Zynq这种内嵌ARM核的芯片,这种方案显然是不合理的。应该用PS负责寄存器配置过程,这样可以方便的对寄存器进行修改。后续应该对这一块进行优化。结合上一个点,设计出一个适用于Zynq的OV7725驱动IP核,寄存器可以通过软件配置,数据流直接以axis或者vesa标准的形式输出


调试HDMI驱动的时候特别二——显示器接到了VGA接口,这么一个非设计问题白白浪费了好几个晚上,最后都快哭了,逻辑分析仪查了一大堆信号,一点问题都看不出来…昨晚和AET宋桓公聊天还说没进展,结果看到HDMI接口压根没连显示器,连上之后立马有显示,当时真想拔掉眼毛上吊…