Super Sylphide 進捗状況(20) -- カメラモジュール基板の企画
オートパイロットシステム Super Sylphideですが、ブルガリアの格安基板会社Olimexが長期の夏休みに入ってしまう(8月は丸々休み)ということもあり、最近は色々な基板を設計していました。その中で先日sparkfunより入手した最大SXGA対応(1.3M Pixel)のカメラモジュール『TCM8240MD』(東芝製)も実験してみようという気になり、ここ数日はその設計を行っていました。
結果から言ってしまうと、このモジュールはマイコンに直結して気軽に遊べるほど生易しいモノではないことがわかりました。データがかなりのハイレート(4M~20MHz、8bitバス)でモジュールから垂れ流れてくるので、それを頑張って記録しなければならないようです。供給クロックをとめてデータの垂れ流しを一時停止してしまうという荒業もあるようですが、フレームバッファIC(いわゆるFIFO)を用意するというのが、sparkfunのuser forumでは正攻法と見られているようでした。
フレームバッファを探してみましたが、さすがにSXGAのデータ量を処理してくれるものは入手困難なようでした。デュアルポートSRAM等も検討してみたのですが、容量が全然小さいです。仕方がないので、力技でCPLD+SDRAMでフレームバッファをこさえてみることにしました。SRAMではなくSDRAMにしたのは安かったからです。CPLDのHDLはあとから如何様にもできるはずなので、まずは基板を設計し終えることにしました。出来上がったのはこんな感じです。残念ながらOlimexでは製造できない(0.3mmドリルが必要です)のですが、サイズはかなりがんばりました。
機能的にも詰め込みすぎて、動作するかどうかは少々疑わしいフシがあります。特長を箇条書きすると以下のとおりです。
- カメラモジュールによるSXGA画像の取得
- Altera CPLD(MAX2シリーズのEPM570 TQFP100Pin 570LE)と64MBit SDRAMでフレームバッファを構成
- C8051F342によるUSB、micro SD(SPI接続)
- バッテリ動作可能、TI BQ25015によるUSBまたは外部電源からのLiPo充電機能および3VへのDC/DC変換(これはGPSロガーで使用経験あり)
- 同じく効率を稼ぐためカメラモジュール用の1.5Vをつくるため、TI TPS60503使用
- 基板サイズは1.4 in (約36mm) x 1.4 in の2層(ケチった)
- 四隅に穴があって固定できる(かなり重要)
果たして動くのでしょうか。動けば飛行機に搭載できること間違い無しなのですが、小さくしすぎたことがアダとならないことを祈るばかりです。暇を見つけつつ弄っていきたいと思います。
※実装が完了しました。電源電圧は正常に出ているようです。
※※次の進捗状況は飛行機の搭載機器の写真です。
コメント
>odawaraさん
モジュール自体は最大15fpsで流してくるようですが、はじめから動画はあきらめて静止画狙いです。時刻に同期した高解像度空撮写真が欲しい(使い道はご想像くださいね)ので、遅いSDのためにSDRAMで受ける感じですかね。浅草○研の製品を横目に見つつ頑張りたいと思います(笑)
H.264もいつかやってみたいですね。StratixとかVirtex用意しないと厳しいのかなぁ
なるほど。ずっとSDRAMに書き続けて、トリガで撮影を止める方法ですね。それだと高解像度のメリットが大きいですねぇ。
H.264はちょっと見たことがありますが、大変そうです。まだ専用LSIが必要な分野だと思います。2年位するとFPGAに普通に入ってしまうんでしょうが(笑)
>odawaraさん
でかいSRAMやFIFOが安く簡単に手に入ればいいのですが、メモリ関係の部品はPCがメインストリームのためSDRAMです。少し探してみましたが、H.264のフリーIPコア見つかりませんでした、残念です。
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。
うらやましい!僕も一度やってみたかったんです。
Posted by: odawara : July 23, 2008 07:46 AMしかし…そうなんですよね。画像の生データって実はものすごいクロック&スループットが必要なんですよね。記録するのは、SDRAMにがんばるとして、問題なのはその後ろです。USBやSDで流すにはスループットが足りないし、だからといってH.264とかJPEGで圧縮できるかというと、そういう訳にもいかず…(さすがに大規模すぎる…)以下省略。
あ、画像処理モジュールを同僚が作っていたときがあるのですが、見事にCCDを静電破壊していました。CCDとかCMOSセンサは静電気に弱いのでご注意ください。
そして、動いたら教えてください!ほしい!(笑)