return to SSR TOP
return to Daemon Lab TOP

CPLD版ビデオキャプチャ

・これはなに?

マイコンに接続することを前提としたビデオキャプチャです。
かわさきロボットコンテストに参加するロボット(まるちぷらい)用に開発されたビデオキャプチャで 以下のような特徴を持ちます

・外観とサンプル


Fig.システム例(プリンタポートに接続)

Fig.キャプチャ本体

Fig.サンプル画像(実は8bit画像なのに1ビットすてて7bit画像として表示)

・作り方

主な材料 (括弧内は買った場所)

回路図はこちら
私は160x115サイズの基板で試作品をつくりましたが、頑張れば半分のさいずで収まりそうです。
配線材にはUEW線を使うと楽です。(http://elm-chan.org/docs/wire/wiring.htmlの受け売りです)
実際の製作は多くの部分をAoki.labの人が実装しました。
製作時間は12時間程度でした

・CPLDについて

上記回路図ではCPLDの配線を書いていません。CPLDのピン配置はある程度変えることができるので、配線しやすいように各自で変えるのがいいでしょう
ソースはこちらです
自分でコンパイルするの面倒だよという人のために合成済jedファイルをおいておきます。
jedファイルはこちら
ピン配置はこちら
ucfファイルはこちら(参考)
※注意:

・CPLDの焼き方

XilinxのWebPack(無料)か、なひたふ新聞のnaxjp(無料)をつかってください。
焼くだけならnaxjpのほうがダウンロードが楽でおすすめです。
※注意
ダウンロードケーブルを作成するさいは、naxjpにあるようなお手軽なケーブルでいいのですが....
なにも考えずにつくると信号が混信してうまく焼けません。
おすすめの方法はプリンタ延長ケーブルをつかって自作部分のケーブルを可能な限り短くしてください。
フラットケーブルでコネクタから直接もってくる場合は各信号の間にGNDをはさんでください。(理想はツイストペア)
なお8,11,12番のピンをショートさせておくとWebPackでもnaxjpでもつかえてべんりです

・キャプチャの使い方

前回作ったビデオキャプチャのインターフェイスを引き継いでいるので、前回のビデオキャプチャをそのまま置換して使えます
ただし、前回のビデオキャプチャがHsyncを0が連続した所を基準にして判定していましたが、今回は明示的に0xffをデリミタとして挿入するようになりました。
(0で判定するプログラムもある程度動きますが0xff 1個をデリミタに使うように書き換えたほうが安定した画像が得られます)

なお追加の信号線としてack(clk_test)ができました。これは単純にm_rclkの信号の内容をそのまま出力する端子で、パラレルポート等どれくらいdelayがあるか分からない物を使ったり、デバイスが接続されているかの確認に使います.

1.go信号をHにする
2.sig_endがHになるまでまつ
3.DATAバスの内容を読む
4.m_rclkをHにしてLにすることによりアドレスをインクリメント
5.全データを取り込むまで3を繰り返す

・プリンタポートにつないでみる

FreeBSDでプリンタポートにつないで、データをとりこむサンプルを書いてみました
データを文字列として出力するので。適当なファイルにリダイレクトして
gnuplot 3.8系列で。

set pm3d map
set palette gray
splot '出力したふぁいる'
とすれば画像が見れます。
ソースはこちら
配線は
DATA:2-9ピン
ack:10ピン
m_rclk:15ピン
sig_end:16ピン
go:17ピン
注意:
前述のとおりプリンタポートはノイジーなことが多いのであまり推奨できないかも
テスト用の余計なこーどが入ってるので遅いです。