您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 请教:摄像头 I2C 系列函数
本帖共有1299个阅读者
发表帖子 发表投票 回复主题
请教:摄像头 I2C 系列函数
bh99(论坛新手)
bh99
头衔:社区公民
帮派:无帮无派
帖数:25
金钱:337
积分:41
注册时间:2012/4/24
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
请教:摄像头 I2C 系列函数
板子自带的OV9650调试通过了,我更换了一个摄像头,沿用OV代码中的OV9653_read,write,更换了#define OV9653_ADDRESS ,跟踪波形,发现start->write  adress 后,没有收到ACK。  请问,我需要根据每款摄像头更改I2C read write甚至更底层的实现吗?如果需要改动,主要更改点是什么地方?
另外,我看 i2c.c 中定义了  __CORE_CLK_IN__ 25 * 1000 * 1000, 而OV9650 是24M的晶振,我新更换的是 27M 晶振,不知道有没有影响。硬件是自己做的,硬件是否是好的也不知道。从I2C的资料看,好像不用修改,那难道是硬件坏了吗?


「该帖子被 bh99 在 2012-09-01 21:19:31 编辑过」

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/1 20:58:21
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

检查你的摄像头硬件电压是不是摄像头允许范围内的,检查摄像头硬件,另外可以单步执行调试。

__CORE_CLK_IN__ 25 * 1000 * 1000 是CPU输入时钟,不是摄像头的频率。

你看看是否你的摄像头允许输入27M。

IIC代码基本上不用改。你可以修改:

mcu_i2c.low_ns 和 mcu_i2c.high_ns  这两个延时的值。   打通硬件需要细心,任何一点错误硬件都没有办法打通,尤其是在软件和硬件都是未知的情况下。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/2 16:49:56
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你重点看一下硬件,尤其是摄像头的复位和类似SHUTDOWN功能的管脚高低位状态对不对。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/2 16:52:52
bh99(论坛新手)
bh99
头衔:社区公民
帮派:无帮无派
帖数:25
金钱:337
积分:41
注册时间:2012/4/24
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
多谢andy!

上周刚焊接好的时候,能抓到Frame,Line信号,读出来的图像数据貌似一个几乘以几的棋盘,每个棋盘里面象个等高线图。I2C好像是通的,但ADDRESS与文档中描述的不符,设置文档中的地址时写不进REG地址。(上周的事情了,记不太清了)

这个周再接上,I2C无论写那个ADDRESS,都收不到ACK了。FRAME 和 Line 波形居然是一致的。后来用万用表测试,Frame线与旁边一条不用的信号引脚是通的,单纯芯片或者成品是不通的。怀疑芯片坏掉了,也不知道什么时候坏掉的。

正在买工具,等拆下来再看吧。

硬件还挺麻烦的,比想象的莫名其妙的事情多多了!


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2012/9/2 21:57:48
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
IIC地址时7Bit的,第8bit是读写位,我们的代码中的地址是包含读写位的,你注意你写的地址是否包含读写位。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2012/9/3 9:44:18
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159301 Call, 1 Queries, Processed in 0.015625 second(s),