最近工作中接了一款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系列摄像头寄存器读数据无法收到的问题
原创十字星 ©著作权
文章标签 OV7725 读寄存器 & 文章分类 后端开发
上一篇:一步步学习python
-
网络监控摄像头通过OBS取流变身电脑摄像头
OBS 网络摄像头接入腾讯会议
Windows 视频流 用户名 -
摄像头ov2685中关于sensor id 设置的相关的寄存器地址【转】
本
结构体数组 取地址 寄存器 -
Ubuntu下摄像头无法使用问题
在Vmware中使用虚拟机,有时候会需要使用摄像头,虽然已经将摄像头与虚拟机建立了连接,但是使用Ubuntu下的“茄子”拍照时,是黑屏状态,无法正常使用...
Vmware 摄像头 Ubuntu 使用摄像头黑屏 html linux