OV2640读ID全是FF问题

最近刚好在Cyclone IV上通过LVDS把一个7寸的屏点亮,赶着热度,淘宝买了OV2640这个摄像头模块,初始化因为用Vrilog比C复杂得多,易调试性不如C,所以使用STM32初始化,模块有F3和F4的参考例程,但自己手上只有一块F03的最小系统板,参考了两个参考例程移植了SCCB的基础代码,做第一步测试,读模块ID发现一直读到0xFF,检查了好多遍代码,逻辑分析仪抓波形,协议都没有问题,SCCB的第九位该有响应也有了的,但是数据就是不对。后面只能回去仔细读官方提供的SCCB技术手册,发现下面这么一句话:

 跟着这么一句话,突然意识到去检查自己初始化IO时的处理,果然,我的IO初始化把SIO_D引脚设置成推挽输出了,更改为开漏输出,编译下载验证,果然能正确读到ID了,另外值得注意的是,在第一次调试中发现SCCB发送ID后第九位没有应答,应该注意检查PWDN是否已经拉低了,因为该信号是置高有效,也就是说如果PWDN为高电平,模块会一直处于Power down状态,自然不会理你。下面放一个完整的读写波形供参考

                                         

猜你喜欢

转载自www.cnblogs.com/DPShadow/p/12151748.html
ff