« Spartan-6のアプリケーション開発で進展 | トップページ | OV7670のカラー表示 »

2010.09.20

Spartan-6ボードにOV7670を接続

特電Spartan-6ボードに、CMOSイメージセンサのOV7670を接続しています。

Spartan6ov7670

これは、特電Spartan-6ボード用に用意したリファレンスデザインが、USBとDDR2メモリとI/Oポートとの間で簡単にデータをやりとりできることを確認するために行っています。

カメラからのデータをDDR2 SDRAMに取り込んで、USBから読み出せるようにするところまでいくのに、だいたい2時間くらいでできました。一度もシミュレーションすることなく、エイヤで作ることができました。

OV7670のデータは、HREFが'1'になっている間に送られてくるようなので、このHREFを使ってデータをFIFOに書き込み、FIFOからSDRAMへ転送してみたところ、なんとなく、絵のようなものがみえました。

Ov7670_image_1

これはパソコンのキーボードの上にSpartan-6ボードを乗せたところです。

縦じまのようなものが見えているうえ、横に伸びているので、数バイトを使って1ピクセル分の絵を送ってきていると思われます。OV7670の出力するフォーマットを理解して、タイミングをうまく合わせれば、もっと綺麗な絵になるのでしょう。

■追記

MITOUJTAG内蔵のロジアナで、OV7670が出す波形を見てみました。
25MHzのクロックを与えた際、HREFの立ち上がりとともに7F 01 7F 01 7F 01 7F 01 ・・という信号を出してきます。
Ov7670_timing

実は、デフォルトではYUVモードになっているようで、上の01の部分がY(輝度)信号です。
V Y U Yか、
U Y V Yか、
UV Y UV Yかはまだわかりません。

Yだけを取ってグレースケールの絵にしてみました。

Ov7670_image_2_2

あまり綺麗ではありません。いままでOmniVisionのCMOSイメージセンサは何個も触ってきましたが、OmniVisionとは思えない画質です。
斜めになっているところを拡大してみると、2×2のブロックの塊がはっきりと見えます。

Ov7670_image_3_2

Bayerパターンのデコードを自分でやれば綺麗になるかもしれません。

|

« Spartan-6のアプリケーション開発で進展 | トップページ | OV7670のカラー表示 »

コメント

確かに他のOmniVisonのCMOSカメラに比べて、綺麗じゃない気がします。
OV7670でYUV4:2:2で取り込んで、データをパソコンに送って、RGB8ビットずつに変換すると、こんな感じで見えています。
http://blog-imgs-34-origin.fc2.com/m/a/r/marsee101/CamDispCntrler_DDR2_pict_23_100920.jpg

投稿: marsee | 2010.09.20 17:30

OV7670はあまり綺麗じゃないですが、AECを調整して、ベイヤで取り込んだら結構綺麗になりましたよ。

http://nahitafu.cocolog-nifty.com/nahitafu/2010/09/ov7670-482f.html

周囲の明るさとの関係が難しいですね。明るいとホワイトバランスが悪くなります。

投稿: なひたふ | 2010.09.21 02:07

コメントを書く



(ウェブ上には掲載しません)




« Spartan-6のアプリケーション開発で進展 | トップページ | OV7670のカラー表示 »