FC2カウンター FPGAの部屋 Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路28(プロジェクトの公開)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路28(プロジェクトの公開)

今まで作ってきたSpartan-3A Starter KitでCMOSカメラ・ディスプレイ回路をダウンロード公開しようと思います。
いつものように保証はないので、自己責任でお使いください。原則転載禁止(転載したい方はメールでお知らせください)とします。
ここにSpartan-3A Starter KitでCMOSカメラ・ディスプレイ回路のプロジェクトを置いておくので、興味のある方はダウンロードして下さい。

今回は、CMOSカメラを購入したり、変換基板を作成しないとCMOSカメラがSpartan-3A Starter Kitのつながらないので、その説明をする。
CMOSカメラはaitendo カメラモジュール(OV7670)[CAMERA30W-OV7670] を使用している。
これをSpartan-3A Starter Kitに接続するために、ユニバーサル基板を使って、変換基板を作成した。使用した基板は秋月電子の両面スルーホールガラス・ユニバーサル基板 Cタイプ めっき仕上げ (72x48mm)P-03231で、これを必要な大きさに切って使っている。変換基板とCMOSカメラを結ぶソケットは秋月電子のピンソケット(メス) 2×8 (16P)C-02761、変換基板とSpartan-3A Starter KitのJ2を結ぶソケットは秋月電子のピンソケット(メス) 2×20 (40P) C-000085を使用した。変換基板とSpartan-3A Starter KitのJ2を結ぶソケットは40ピンだが、J2は36ピンなので、40ピンソケットの端の4ピン分はセロハンテープを2重に貼って、ヘッダが入らないようにしている。
下に、配線表を示す。
CamDispCntrler_DDR2_49_100927.png

SCCBのクロックとデータはJ2では端子数が足らなかったので、aitendo のピンヘッダ用接続ケーブ[CB-PH10P-250] を購入して、2ピン分だけ引き裂いて使用した。(なお、変換基板を作らなくても、aitendo のピンヘッダ用接続ケーブ[CB-PH10P-250] を2つ購入して、CMOSカメラとSpartan-3A Starter Kitを結んで、コードにアルミフォイルを巻けば、もしかしたら、いけるかもしれない?ただし、ノイズは多いものと思われる。”Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路12(ノイズ?)”参照)
下に変換基板の表側の写真を示す。配線表でcam_sio_cとcam_sio_dはJ2の端子が足りないため、J15に接続するように
、写真の左下のヘッダに配線されている。左下のヘッダからaitendo のピンヘッダ用接続ケーブ[CB-PH10P-250] でJ15に配線した。
CamDisp_DDR2_pict_50_100927.jpg

次に変換基板の裏側の写真を示す。
CamDisp_DDR2_pict_51_100927.jpg

実際に変換基板をSpartan-3A Starter KitのJ2に挿入して、J15の 5, 6番ピンに配線したのが下の写真だ。
CamDisp_DDR2_pict_52_100927.jpg

CMOSカメラをつけると下の写真のようになる。
CamDisp_DDR2_pict_53_100927.jpg

上の写真で操作の説明をすると、ピンクの四角はDDR2 SDRAMの上位アドレスを決めるスライドスイッチで、これを変更するとDDR2 SDRAMバッファのアドレスが変わるので、値を変えると違う画面になる。そして、黄色のスライドスイッチをONにすると、キャプチャ開始、つまり画像が表示される。黄色のスライドスイッチをOFFにすると、キャプチャ終了。つまり、直前の静止画になる。
これで、変換基板とCMOSカメラのつけ方は終了とする。

次に、プロジェクトの使い方を説明する。Spartan-3A Starter KitでCMOSカメラ・ディスプレイ回路のプロジェクトを解凍すると、2つのフォルダが見えると思う。CamDispCntrler_DDR2_Capt_SCCBとDDR2_SDRAM_cont_266だ。DDR2_SDRAM_cont_266は、実際はDDR2-250のDDR2 SDRAMコントローラで、つまり125MHz動作になっている。これは、DDR2 SDRAMコントローラのVerilog-HDLソースだけで、Simulationフォルダは空になっている。ここには、後で、Micron社からダウンロードした512MbitのDDR2 SDRAMのモデルを入れる予定だ。
CamDispCntrler_DDR2_Capt_SCCBの下に、Simulation、Soureces、Synth121フォルダがある。SimulationフォルダにはシミュレーションのテストベンチやISim用のバッチファイル等が置いてある。Sourecesフォルダには、CCMOSカメラ・ディスプレイ回路のソースが入っている。こっちはVerilog-HDLとVHDLの混在となっている。最後のSynth121ファルダは、ISE12.1のプロジェクトが置いてあるフォルダだ。ISE12.2でもプロジェクトを読み込んでそのままインプリメントすることができる。
それでは、ISE12.1を立ち上げて、CamDispCntrler_DDR2_Capt_SCCB\Synth121のCamDisp_Cntrler_DDR2.xise プロジェクトを読み込もう。下がプロジェクトを読み込んだISE12.1だ。
CamDisp_DDR2_1_100927.png

例によって、Generate Programming Fileをダブルクリックすると、論理合成が始まって、bitファイルが生成される。
CamDisp_DDR2_2_100927.png

bitファイルが生成されたので、iMPACTでコンフィギュレーションすれば、画像が写るはずだ。その前に、液晶ディスプレイをVGA端子に接続すればだが。。。

実際に動作させてみた方は、コメント欄等でお知らせ下さい。よろしくお願いします。
  1. 2010年09月27日 05:58 |
  2. 画像処理
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog.fc2.com/tb.php/1600-3ea7010c
この記事にトラックバックする(FC2ブログユーザー)