カメラモジュール奮闘記-その3-
カメラが使えそうだということがわかってきたので、カメラから流れてくるデータの保存方法を考えました。
以前書いたこの回路
久ぶりに見たら無駄だらけで吐き気がしたんですw
こんな面倒なことをしないでもっと簡単にならないかと思い、世の中の記憶媒体やら通信方式やらについて、3日間こもりっきりで調べていました。
今までカメラのデータをRAMに保存して、それをPCに取り込んでということを考えていたのですが、そもそもそれが面倒な考え方でした。
カメラから出るデータをそのままPCに流し込めばいいんですよ。
そうすれば撮影効率も大幅にアップしますし。
そのアイディアは前からあったんですが、RS232Cじゃ速度が足りないしUSBを使うのは難しそうだし・・・で断念していました。
でも探してみると案外でてくるものです。
FT232H(1ch)高速USBシリアル変換モジュールキット
I2C、SPI、FIFO等をUSBへ変換してくれるICです。
カメラモジュールは1ピクセルのデータ16ビットを上位と下位8ビットずつに分けて、8ビットパラレル(24MHz)で出力するようになっています。
そして、FT232HはFIFOモードにすると8ビットパラレル(60MHz)の信号を読み込みUSBに変換してくれます。
つまりFT232Hでカメラモジュールの信号をそのままUSBへ変換できるのです。
しかし、実際はそのまま変換というのは無理で、FT232Hから出力される同期クロック周波数60MHzにカメラデータの出力周波数24Hzを合わせなければいけません。
さらに、このモードだとFT232HはいわばカメラとPCを繋ぐパイプのようなものなので、例えばPCが別の処理をしていて、ちょっと今はデータをうけとれないよぉ//ってなったときに
カメラからどんどんデータはくるわ、PCにはデータを拒否されるわでFT232Hはデータを破棄せざるを得なくなります。
実はそんなときのためにFT232Hから、ちょwwおまwwwまてよwwwwという信号がカメラに向けてでるようになっているので、それを見るようにしないといけません。
そこでカメラとFT232Hの間にロジックデバイスMAXIIをいれます。
このMAXIIに先ほどの転送レートとデータ破棄の問題を解決してもらいます。
(実際、USBシリアル変換モジュールとロジックデバイスが一緒になっているキットは結構出回っているのでそのマネごとに近いです。ただ自分で作った方がかなり安く済みます。)
配線イメージ
これで転送レートの変換とPCの受け取り状態はみれるようになりました。
しかし、このままだとPCが受け取れない分のデータの保存場所がないので、外付けRAM等必要です。
まあ、受け取れない状態がどれだけ発生するのか検討がつかないので、とりあえずこのまま作ってみます。
そもそも60MHzの受け取り体制に24MHzでデータを送るんですから、うけとれないよぉ//にはならないかもしれないし。
そんなわけで、今FT232HとMAXIIを注文して待っているところです。


