OV2640でのJPEG取得には成功したものの、使用しているPCLKが5MHzだと4フレーム/秒にしかなりません。これだと、動画撮影に使うには苦しいので、もう少し早くならないものかと試してみたのですが、うまくいきません。
これまでの設定だとXCLKとして20MHzを与えて、それをOV2640で4分周して5MHzのPCLKを作っていました。OV2640の設定を変更して、3分周にするとカメラからは次のように6FPSの信号が出力されるのですが、これを正しく受信できないでいます。実際の問題点は次の2点です。
まずは6FPSになった時の全体的なタイミングを確認。
4FPSの時と基本的に同じです。各フレームの間、VSYNCがLになっている期間はおよそ10msあります。VSYNCの立ち上がり部分を拡大してみると...
ここで示したPCLKはカメラからのPCLKとHREF信号のANDをとったもので、実際にデータを拾うべきタイミングを示しています。有効なPCLKは、VSYNCの立ち上がりから3μsほどで始まっっています。さらにZoomしてPCLKの周波数を確認してみると...
PCLKが7.5MHz近くになっています。20MHzを3分周する設定に変更したので、PCLKは6.6MHz程度になるものと思っていたのですが、そういうわけでもなさそうです。予想以上にPCLKが高いことがわかったので、対策としてPCKとHREFのANDをとるのに使っていた74HC00を74LCX08に変更することでゲート遅延を短縮してみたりもしてみましたが、状況に大きな変化無し。ちょっと残念ではありますが、4FPSが限界かな。
これまでの設定だとXCLKとして20MHzを与えて、それをOV2640で4分周して5MHzのPCLKを作っていました。OV2640の設定を変更して、3分周にするとカメラからは次のように6FPSの信号が出力されるのですが、これを正しく受信できないでいます。実際の問題点は次の2点です。
- JPEGデータの最初の1バイトが欠けてしまう
- データ内容が化ける
まずは6FPSになった時の全体的なタイミングを確認。
4FPSの時と基本的に同じです。各フレームの間、VSYNCがLになっている期間はおよそ10msあります。VSYNCの立ち上がり部分を拡大してみると...
ここで示したPCLKはカメラからのPCLKとHREF信号のANDをとったもので、実際にデータを拾うべきタイミングを示しています。有効なPCLKは、VSYNCの立ち上がりから3μsほどで始まっっています。さらにZoomしてPCLKの周波数を確認してみると...
PCLKが7.5MHz近くになっています。20MHzを3分周する設定に変更したので、PCLKは6.6MHz程度になるものと思っていたのですが、そういうわけでもなさそうです。予想以上にPCLKが高いことがわかったので、対策としてPCKとHREFのANDをとるのに使っていた74HC00を74LCX08に変更することでゲート遅延を短縮してみたりもしてみましたが、状況に大きな変化無し。ちょっと残念ではありますが、4FPSが限界かな。