NotePublic/Hardware/Peripherals/Camera/OV2460/OV2460.md

29 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OV2640
OV2640 是一款摄像头模块,通过 SCCB类似 I2C总线进行操作通过xxxxxxxxxx进行图像输出。
## SCCB 与 I2C 的差异
总线所值得拥有的三态请不要抛弃。(做人要厚道)
SCCBSerial Camera Control Bus是和I2C相同的一个协议. 相同有木有现象透露本质啊IIC根本没有摸透。
从机地址位最后一位R/W位。既然是读写位那么意味着从机先接受地址位然后根据地址位来判断接下来的动作读还是写。其中IIC可以连续读多个字节SCCB读单字节。
以下为SCCB读写逻辑OV2640地址默认0x60
```logic
写寄存器 Start+0x60+寄存器ID+数据+Stop
读寄存器 Start+0x60+寄存器ID+Stop Start+0x61 + 所读数据+Stop
```
错误方式读寄存器:
```logic
读寄存器 Start+0x61+寄存器ID+Stop Start+0x61 + 所读数据+Stop
```
纠正突破:
在通过示波器观察读写波形时可以看出 写成功但是读失败。其中读寄存器波形当发送完寄存器ID时第九位会出错从机拉总线。此时没有意识到0X61是读操作后面紧跟读数据而不能发送寄存器地址。当尝试用硬件IIC来实现时恍然大悟。IIC中断服务函数中我是使用状态机来实现读写的。状态机有木有从机压根不知道你使用的是状态机还是战斗机那如何区分读写呢没错地址中的读写位。那么意味从机接收到地址位后读写就划分好了。那这个问题就不攻自破了。这与不久之前那惨绝人寰的案子及其相似现在看来构成的连环杀人案的凶手就是他了斗胆敢再次行凶 ,枪毙了!!!)