今度はカメラからの画像をSDカード(Eye-fi)に保存することにしましたが、SAM3S4Bでこれを処理するにはいくつかの問題があります。
そこで今回は、OV7670から出力された画像データをいったんFIFOに蓄えることにしました。使うのはAL422BというFIFOで、この商品のようにFIFO付きのカメラが売られていることをきっかけに知りました。秋月の新しいSOP 28P変換基板を使ってハンダ付け。パスコン用のパターンがあるけど、VCC/GNDのピン配置が合わないので使えずとなりました。
このFIFOの容量は384KB. 書き込みと読み出しのデータが独立していますから、カメラからのPCLKで書き込んでおいたデータを、あとからゆっくりとマイコンで読み出すことができます。マイコンではカメラからのPCLKの速度を全く考えなくていいので、8ビットのマイコンでもカメラつなぐことができます。このFIFOを使えば、もはやパラレルキャプチャは必要無いので、HSMCIとの端子重複の問題も解決。FIFOからの読み出しは、GPIOを使って行うことにします。
- SAM3S4Bの内蔵メモリは48KBしかないので、この容量ではVGAどころかQVGAの画像データも保持できない。JPEG圧縮のためにメモリを使うと、QQVGAすら保持できない。SAM3S4Cを使えば、外部メモリを接続できるが、100pinとなり配線作業が大変。
- SAM3S4Bでも、画像データを何回かに分けてカメラから受けて、順次JPEGに変換してカードに書き込むという方法がなくもない。しかし、何フレームにも分けて画像を取得することになるので、対象物が静止していないと、画像がブレることになってしまう。
- CMOSカメラ接続に使うパラレルキャプチャ機能に割り当てられた端子と、SDカード接続に使うHSMCIに割り当てられら端子が重複しているので、これらの機能を同時に使うことができない。順番に使うにしても、バス切り替えが必要になってしまう。
そこで今回は、OV7670から出力された画像データをいったんFIFOに蓄えることにしました。使うのはAL422BというFIFOで、この商品のようにFIFO付きのカメラが売られていることをきっかけに知りました。秋月の新しいSOP 28P変換基板を使ってハンダ付け。パスコン用のパターンがあるけど、VCC/GNDのピン配置が合わないので使えずとなりました。
このFIFOの容量は384KB. 書き込みと読み出しのデータが独立していますから、カメラからのPCLKで書き込んでおいたデータを、あとからゆっくりとマイコンで読み出すことができます。マイコンではカメラからのPCLKの速度を全く考えなくていいので、8ビットのマイコンでもカメラつなぐことができます。このFIFOを使えば、もはやパラレルキャプチャは必要無いので、HSMCIとの端子重複の問題も解決。FIFOからの読み出しは、GPIOを使って行うことにします。