本文参考了以下网站的文章:
等等还有很多文章,我参考了很多文章但是现在找不到网址了(我也懒得找了),如果有雷同可能是参考了某位大佬的文章请勿介意,联系本人然后加上网址或出处如有冒犯现在这里先说抱歉了。不管有没有人看,我权当笔记记录。哈哈哈,正文开始了!!!!
最近调试了一个OV5640摄像头,故障现象:图像显示不稳定,会错位,图像稳定时会有横纹。如下图所示:
首先我也没接触过这个东西(OV5640),只是看到故障现象也不知道从哪里入手,问题不大,别慌!那就先看看用什么接口的,数据线有那些,数据格式是什么样的,一样样来。
为了方便我已经把它整理成思维导图了,如下图所示:
从思维导图哪里我们可以看到这里我是用了dvp接口的,当然还有其他的接口:LVDS 接口、CSI(MIPI)接口这些我也没接触过不懂,需要了解的小伙伴自己去找。这里我分为电源、输入、输出三个部分,电源是个大问题,纹波如果大会影响图像的质量,这里我使用了LDO为摄像头模块(注意:压差不能太大,摄像头本来就发热严重,如果加上LDO发热就成烫手山芋)供电纹波不会太大,实测约20mv,可以接受,这里我还尝试过换成钽电容但效果不是很大,除了白点会少点,图像显示还是不稳定(图片还是忘记拍了,下次注意!)。
所以我也怀疑是不是线太长了阻抗不匹配导致了反射,因为走线实在太长了5000多mil外加10cmFFC软排线。因为时钟线上有串电阻,所以在主时钟(XCLK)走线上尝试换电阻22ohm,33ohm,75ohm,100ohm也尝试过,通过测试发现串上33ohm电阻是比较稳定,但是还是会有条纹出现。所以要出动示波器了,看看信号质量(这里我犯了一个严重的错误,第一应该先用示波器查看信号质量才去换电阻而不是换了电阻采取看示波器)发现信号时钟不稳定如下图所示
宝子们看到这里都能猜到下一步应该干嘛了,就是查主时钟(XCLK)不稳定的原因,首先这个时钟信号是从IO里面出来的,正常25M时钟信号不会这么不稳定,所以我查看了IO口处的信号,确实是稳定在25M,但是这个时钟信号到模块就变成上图这个模样了。
初步分析:时钟信号从io到模块经历了5000多mil信号已经不完整了。辛苦这个25M了!
所以独立提供了一个25M时钟信号,看看怎么样测试结果如下图
非常稳定,不管怎么抖动摄像头(OV5640)显示依旧稳定。
总结:
第一、了解接口,数据线的定义、用途。
第二、LDO压差不能太大。
第三、善用工具,指导实际debug。