这个星期要为后面的工作做准备,要先熟悉OV7670的模块。
先介绍一下硬件,shanyan 的0V7670模块,应该是前辈在淘宝上买的。
开发板用LPC1788的板来驱动。两边是用20pin 的接口连接起来的。具体的资料,上淘宝是应该可以找到很多的。
先总结现在遇到的问题。
第一步: 先确认OV7670 的SCCB通信是否OK?
若通信OK,后面的OV设定就都没问题了。
这边程序应该和网上的都差不多,就多说自己的体会吧。
先要知道 OV7670只要V3.3 ,GND,电源连上后,再SCLK和SDATA两根线就可以通信了,其他的pin 脚都可以先不管。
这个看似很简单,但在你搞懂之前这个还是和困扰我。因为当你认为什么东西如: GPIO配置好了,电源也确认过OK了,程序也检查过了,什么都准备好了,之后通信不成功你就会开始怀疑这个了。
我这次碰到的是1788的频率跑的太快,和前辈使用的主IC不同,所以SCCB通信时的延时不同,要乘上20倍。这句话我查了一天才得到结果。
怀疑的过程如下:
1.电源不对,正负反了?验证:用万用表测量,和旧的已经打通的板交叉验证。
2.SCLK和SDATA 信号通道是否正常?验证:修改程序一直设定SCLK 为H,用万用表量电压,再改程序设为L,在用万用表量电压。SDATA也是如此确认。
这个用万用表量电压的也是刚刚从新老师这里学到的。不要问为什么不用示波器直接挂信号呢?你先想想吧。。。
3.是不是主IC上电后马上和OV通信不行,会不会OV上电比较慢,要等一下。验证:增加delay 后还是不行。
最后面在来说这个SCCB通信时的延时。一开始也知道我的主IC跑的120M的应该是比较高的,心想人家什么也会是跑12M的,所以就在延迟的地方乘了个10倍。
搞完之后还是不行,就以为和这个无关,中途也上百度找SCCB 频率,都没有找到,后来就算了。搞到晚上把一大堆怀疑的东西都验证过,都没效果后又回到了这里。又上网找OV SCCB 通信,有看到网上有人说到将SCCB的频率设定0.5HZ来调试的,心里想人