実験ボードに載せたOmnivisionのCMOSカメラ OV9650ですが、I2Cでのレジスタ読み出しの段階で苦戦中です。最初のつまずきの原因は勝手な思い込み。レジスタ番号を指定して、その値を読み出せばいいので、てっきり次のように書き込みに続いて読み出しをするシーケンスでいいハズと思って、これまでに書いたコードを流用していたのですが、ちっとも読み出せませんでした。

よくよくデータシートというかOminivisionのSCCBの仕様書を読んでみると、レジスタ番号を指定したら、いったんStopを送出する必要があることが判明。Tech Toysのサンプルプログラムを確認したら、ちゃんとそのようなシーケンスになっていました。
この問題を修正したところ、ちゃんと読みだせるようになったように思えたのですが、連続していくつかのレジスタを読みだそうとすると途中で必ずデータが読み出せなくなってしまいます。うーん、何が悪いのか。。?

よくよくデータシートというかOminivisionのSCCBの仕様書を読んでみると、レジスタ番号を指定したら、いったんStopを送出する必要があることが判明。Tech Toysのサンプルプログラムを確認したら、ちゃんとそのようなシーケンスになっていました。
この問題を修正したところ、ちゃんと読みだせるようになったように思えたのですが、連続していくつかのレジスタを読みだそうとすると途中で必ずデータが読み出せなくなってしまいます。うーん、何が悪いのか。。?