解决OV系列摄像头寄存器读数据无法收到的问题
2014-03-04 13:56
127 查看
最近工作中接了一款OV7725的sensor,由于平台已经接过很多的家的sensor也就没有太当回事。问题出现的很奇怪,再看了register map后基本确定了要尽心register R/W测试的三个地址也就是0x00 gain增益寄存器 0xa 0xb 两个版本号的寄存器。运行程序之后在reg里没有发现的应该返回的数据 ,用逻辑分析仪看了下波形就是在read发出后sensor返回了device ID之后没有紧接着返回数据而是将总线挂起!! 然后挂载其他例如aptina 130 139 sony的138 等都可以正确的得到数据??? 困惑之后就对比了下波形发现前面发出的波形也一致,也没有发现不符合IIC协议的,但是一个细节还是注意到,就在read的过程中write slave address之后一般为stop 后start,而我是做了一个restart的操作代替了,这样做在多主机的IIC bus中是有好处的 ,可以不释放总线免得被抢走控制权。随后就想是不是这个导致的呢,将restart 改为stop start 之后运行程序果然得到了返回的数据。问题是确定了,就想不明白这样怎么会产生问题呢 ,IIC是支持的啊。后面看了下7725的手册 发现了问题。OV使用的不是标准的IIC协议控制寄存器的读写,用的事SCCB协议,算是一个精简的IIC协议,而这个协议是部分兼容IIC的。连个区别:1.不支持restart 也就是导致我无法读出的罪魁了,stop后必须发送start 否则不返回数据。2. 不知处多字节读写 对于sensor来说这种情况不多 。所以对于自己熟悉的东西更要谨慎细心,稍不注意就会掉进陷阱。后面附件添加了sccb的协议供参考。
本文出自 “风雨如晦鸡鸣不已” 博客,谢绝转载!
本文出自 “风雨如晦鸡鸣不已” 博客,谢绝转载!
相关文章推荐
- 解决OV系列摄像头寄存器读数据无法收到的问题
- 通过JS向表单中增加元素后提交无法获取数据问题的解决。
- eclipse3.2下解决数据插入mysql数据库时乱码无法插入问题(Hibernate)
- DM9000A驱动调试(解决网卡无法接收数据问题)
- 解决fastjson、Jackson、Gson解析Json数据时,key为Java中关键字无法解析的问题
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 解决kindeditor中ajax提交表单无法获取数据的问题
- Android 系列:如何解决安卓SDK无法下载Package的问题
- Ubuntu 16.04 解决虚拟机摄像头无法使用问题
- android 3.2 之后无法直接往sdcard写数据问题解决办法
- SharePoint2007:解决第二回收站大数据无法删除问题
- .NET 并行(多核)编程系列之七 共享数据问题和解决概述
- 解决kafka数据目录迁移后,flume无法正常调用Consumer的问题
- 解决ajax、js无法跨域向服务器请求数据的问题
- 如何解决iis权限问题造成的数据无法读取的解决方法
- CentOS多网卡下 应用层无法收到组播的问题解决
- PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法
- IE下jquery ajax无法获得最新数据的问题解决(IE缓存)
- 解决:hibernate查询过多时与数据库连接断开或无法再查询到数据问题。