スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

カメラモジュール奮闘記-USBデバイスFT232HでCPLDからPCへデータを送ってみた-


最終的には、カメラ→CPLD→USB→PCの予定ですが、とりあえずCPLDから正確にデータが送れるのか?!ということで、CPLD→USB→PCで通信ができるか試してみました。

前回も紹介しましたがCPLDはMAXII、USBデバイスはFT232H、両者は同期FIFOで通信をします。

接続様子


PICとCameraは今後のことを考えて繋いでいるだけです。今回は関係ありません。

データシートより、同期FIFOモードにおいて、FT232HとCPLDは以下のタイミングで通信をする必要があります。


今回はPCへ書き込むだけなのでWrite Timingをみます。


TXEはFT232Hの状態を示す信号、'1'の時はビジー、'0'の時はWrite可能な状態です。
WRはFT232Hへ書き込みを命令する信号、'0'にすると同時にデータも送ります。
図より、TXEが'0'になったあと1クロック空けてWRを'0'にしなければならないようです。

これを実現するロジックを設計し、CPLDへ書き込みました。


今回は、送信毎にカウントアップされるデータ"CNT"を送信してみました。

データの受信側(PC)のソフトです。適当に作りました。
FTDIのドライバFTD2XXを使っています。


カメラから画像を30枚送ったと仮定して、それと同じ量のデータ約18[Mbyte]を送信。
約0.5秒で受信できました。平均約36[Mbyte/s]で、USBメモリ並みです。

2[byte]を1[pixel]として、受信データを画像に起こしてみました。


”CNT"は0,1,2...255,0,1,2...255...と256回で1周期、1[pixel]は2[byte]、画像の横幅は640[pixel]なので
640/256*2=5、パターンは5回繰り返されることになります。
どうやらちゃんと受信できているようです。

バイナリエディタでも確認しました。


さて、次はカメラからのデータをCPLDを通してFT232Hへ渡すことになるのですが、ここがなかなか難しかったです。

課題は2つありました。
1. カメラのデータ送信クロック24[MHz]から、FT232Hのデータ受信クロック60[MHz]への変換
2. カメラからはひっきり無にデータが送られてくるから、FT232Hがビジーの時にデータを退避する場所の確保

1.については、カメラからデータを受け取るごとにフラグを立てて、次のFT232Hのクロックでデータを送信してみたり。リングバッファを構成してみたり・・・10種類近くの手を打ってみましたが思うようにいかず。。。
受信はできるんですけどデータが壊れてしまうんです。。。
調べてみるとかなり難易度が高い技だということがわかりました。

2.についてですが、実験からFT232Hは256byte受け取るごとにビジー状態になることがわかりました。
ビジー状態の長さは毎回変わります。
その間にカメラからのデータをRAM等に退避するのですが、長さが予想できない程ばらついているのでRAMの大きさを安易に決められません。

(そして、非同期FIFOや別のモードにすれば解決はできるけど、今回欲しい転送速度は同期FIFO以外では得られないという厳しい現実・・・)

以上より、クロック周波数の変換ができない。退避データの大きさが予測でないということになりました・・・

色々考えましたが、カメラのデータを一度全部RAM等に保存して、あとからPCに送ろうと思います。
たぶんそれが最もシンプルです。

RAMはPCのメモリに使われているSDRAMが安くて高速なので使いたいです。
(まだ、SDRAMがどんなものかもしらないのでなんとも言えませんが)

これからそのデータシートを読もうと思っていますが・・・
そういえば、未だにカメラからちゃんとしたデータが送られてくるのか確認していませんよね・・・w

というころで、ひとまず同期FIFOではなく、非同期FIFOで先ほどの2つの問題を解決して、それでデータをPCに送り、ちゃんとカメラが動くかどうか確認しようと考えています。
(ただし、その場合十分な転送速度が得られないので、カメラの動作クロックを遅くしなければいけません)

被写体が止まっているのなら、非同期FIFOでのんびりデータを送ればいいんですけどね・・・

引きこもり機と人間がバトってるワンシーンは動きが大きいので、30fpsで撮影して、データを同期FIFOで高速に送りたいのです・・・




にほんブログ村 その他趣味ブログ 趣味の工作へ にほんブログ村 その他趣味ブログ ビデオ撮影・編集へ

コメントの投稿

非公開コメント

プロフィール

回路師

Author:回路師
趣味がロボットと動画製作です。
便利な機械やあほなマシンの動画を投稿しています.

最新記事
最新コメント
カテゴリ
電子工作キット








月別アーカイブ
書籍






Twitter
リンク
RSSリンクの表示
ソーシャル

検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。