Sccb Serial Camera Control Bus

Posted by admin
  1. Serial Camera Module
  2. Serial Camera Control Bus (sccb) Specification
  3. Sccb Interface Full Form

1 APPLICATION NOTE Omni ision OmniVision Serial Camera Control Bus (SCCB) Functional Specification Last Modified: 25 June 2007 Document Version: 2.2 Revision Number Date Revision /07/00 Initial Release /08/ /08/02 Nomenclature change entire document - SIO1 changed to, SIO0 changed to, SCS changed to Inclusion of Section 3.5 documenting the 2-wire master/slave implementation where is not available in the CAMERACHIP sensor /26/03 Incorporated into new template /25/07 In subsection 2.2, changed last sentence from 'The minimum of t CYC is 10 µs' to 'Typical for t CYC is 10 µs.' In Table 5-1, added column for Typ values and moved t CYC value of 10 µs from Min value to Typ value. This document is provided 'as is' with no warranties whatsoever, including any warranty of merchantability, non-infringement, fitness for any particular purpose, or any warranty otherwise arising out of any proposal, specification, or sample. OmniVision Technologies, Inc. Disclaims all liability, including liability for infringement of any proprietary rights, relating to the use of information in this document. No license, expressed or implied, by estoppel or otherwise, to any intellectual property rights is granted herein. Third-party brands, names, and trademarks are the property of their respective owners.

Serial Camera Module

Note: The information contained in this document is considered proprietary to OmniVision Technologies, Inc. This information may be distributed only to individuals or organizations authorized by OmniVision Technologies, Inc. To receive said information. Individuals and/or organizations are not allowed to re-distribute said information2 OmniVision Serial Camera Control Bus (SCCB) Omni ision 00Table of Contents Section 1, Overview Wire SCCB Interface Section 2, Pin Functions Signal Section 3, Data Transmission Wire Data Transmission Transmission Cycles Suspend Mode Section 4, SCCB Structure Master Device Slave Devices Conflict-Protection Resistors Suspend Circuits Section 5, Electrical Characteristics Section 6, Terminology Proprietary to OmniVision Technologies, Inc.

I'm writing a driver to interface with an autofocus camera module. The OmniVision OV3640.It has a serial interface for command I/O.

At first I thought it was a standard i2c interface. But no.It turns out they have their own serial interface. It's called the SCCB (Serial Camera Control Bus). Instead of an 8-bit interface, it has a 9-bit interface.I was wondering if anyone has experience with this or has written a driver to support it.I've attached a copy of the SCCB Spec Sheet.Any help or suggestions will be greatly appreciated. I can write it, but I'd rather not re-invent the wheel.Thank you for your help and support.Jim.

Sccb

Its actually exactly the same as I2C except they say that the ACK bit is optional. But, most of their devices do send the ACK bit.

They did that most likely because the I2C bus had to be licensed until recently. So they made a bus that is 'similar' to I2C to avoid patent issues.PRI SCCBWriteRegister(register, data) ' Writes a camera register.' Notes:' Register - The register number to write.' Data - The value to write.' ' Returns true on success and false on failure.I2CStartresult:= I2CWrite(SCCBCAMERAWRITEADDRESS)result and= I2CWrite(register)result and= I2CWrite(data)I2CStopPRI SCCBReadRegister(register, longDataAddress) ' Reads a camera register.' Notes:' Register - The register number to read.'

LongDataAddress - The address of the value to store data to.' ' Returns true on success and false on failure.I2CStartresult:= I2CWrite(SCCBCAMERAWRITEADDRESS)result and= I2CWrite(register)I2CStopif(result)I2CStartresult:= I2CWrite(SCCBCAMERAREADADDRESS)longlongDataAddress:= I2CRead(0)I2CStopPRI I2CWrite(data) ' Write out data.' Notes:' Data - The 8 bit packet to transmit.' ' Returns true if the receiving device ACK'ed and false if not.data:= ((!data) = 1' Leave with clock low and data low.diraI2CDATAPIN:= 0diraI2CCLOCKPIN:= 0result:= not(inaI2CDATAPIN)diraI2CCLOCKPIN:= 1diraI2CDATAPIN:= 1PRI I2CRead(aknowledge) ' Read in data.'

Serial Camera Control Bus (sccb) Specification

Sccb serial camera control bus video

Notes:' Aknowledge - True to send the transmitting device an ACK and false to not send a NCK.' ' Returns the received 8 bit packet.diraI2CDATAPIN:= 0repeat 8 ' Read in all 8 data bits.

Leave with clock low.result. Hi Kye,Thanks for getting back to me. I'm still coming up to speed on this camera, so I have a couple of questions:1. I looked over your code.

It looks great. It seems to send an 8-bit i2c address byte, followed by an 8-bit register number, followed by 8-bits of data. The spec sheet for this camera seems to have 16-bit register addresses (see attached page). Do you know what's going on here? Should I change the code to send the two bytes of the register address?

Or am I missing something.2. I ran the i2c register scan program by James Burrows from the OBEX. It has no trouble finding the serial EEPROM.

Sccb Interface Full Form

But it doesn't see the camera read or write addresses at all. It's like the ACK status is never set. Do you have any thoughts on this?Thank you for your help.Jim.