Als 4. von 81 Treffern findet Google mit den Suchworten C3088 camera
datasheet:
http://www.robozes.com/inaki/dproject/
http://www.robozes.com/inaki/dproject/report.pdf
Kurze Zusammenfassung:
In den Datenblättern der C3088 steht nach zwar, dass das I2C Protokoll
benutzt wird, aber es fehlt die Beschreibung der Ansteuerung.
Sie haben daher nachgesehen, wie der eigentliche Controller OV6620 auf
dem Kameramodul angesteuert wird. Durch dessen Datenblatt kommt raus,
dass das sog. SCCB Protokoll benutzt wird. Das ist ähnlich wie I2C aber
nicht genau so.
Sie haben das Protokoll mit Hilfe einer fremden Library per Software
über die TWI Schnittstelle eines Atmega16 (@ 16 MHz!!!) implementiert.
Langwieriges Debuggen war notwendig, bis die Fehler beim Lesen durch
Korrektur des Timings behoben werden konnten.
Der Sourcecode ist auch erhältlich, allerdings ist es C-Quellcode. Mit
Bascom-Code sieht es mit der Kamera relativ dünn aus.
http://www.google.de/search?hl=de&q=%28c3088+OR+ov6620%29+bascom&btnG=Suche&meta=
Über Google findet man die SCCB Beschreibung
Serial Cameral Control Bus Functional Specification
http://www4.cs.umanitoba.ca/~jacky/Robotics/DataSheets/ov-sccb.pdf
Darin sieht es mir beim schnellen Durchblättern so aus, als ob für ein
ordentliches Lesen VIER Bytes übertragen werden (drei vom Master, eins
vom Slave), nicht DREI wie in deinem Beispiel.
ID-Adresse-W, Subadresse ID-Adresse-R, Read Data
<- 2-phase write transm. -><- 2-phase read transm. ->
<--------------- Master -----------------><- Slave ->
Über Google findet man die ID-Adressen im Datenblatt des OV6620:
http://www.ovt.com/pdfs/ov6620DSLF.PDF
http://www.cs.cmu.edu/~cmucam/Downloads/ov6620DSLF.PDF
Die ID-Adresse-W können sein (je nach Hardware-Beschaltung von 3
Adressleitungen am OV6620): C0, C4, C8, ... und die ID-Adresse-R sind
jeweils +1 (C1, C5, ...). Die Subadressen sind ebenfalls aufgeführt.
Nun gibt es hier auch einen über 1 Jahr alte, unbeantwortete Frage
(Beitrag "Kamera C3088, OV6620"), bei der selbst das nicht
hilft. IMHO ist dort möglicherweise ein 1 Byte zu viel Fehler im Teil
(<- 2-phase read transm. ->).