Spartan-6ボードにOV7670を接続
特電Spartan-6ボードに、CMOSイメージセンサのOV7670を接続しています。
これは、特電Spartan-6ボード用に用意したリファレンスデザインが、USBとDDR2メモリとI/Oポートとの間で簡単にデータをやりとりできることを確認するために行っています。
カメラからのデータをDDR2 SDRAMに取り込んで、USBから読み出せるようにするところまでいくのに、だいたい2時間くらいでできました。一度もシミュレーションすることなく、エイヤで作ることができました。
OV7670のデータは、HREFが'1'になっている間に送られてくるようなので、このHREFを使ってデータをFIFOに書き込み、FIFOからSDRAMへ転送してみたところ、なんとなく、絵のようなものがみえました。
これはパソコンのキーボードの上にSpartan-6ボードを乗せたところです。
縦じまのようなものが見えているうえ、横に伸びているので、数バイトを使って1ピクセル分の絵を送ってきていると思われます。OV7670の出力するフォーマットを理解して、タイミングをうまく合わせれば、もっと綺麗な絵になるのでしょう。
■追記
MITOUJTAG内蔵のロジアナで、OV7670が出す波形を見てみました。
25MHzのクロックを与えた際、HREFの立ち上がりとともに7F 01 7F 01 7F 01 7F 01 ・・という信号を出してきます。

実は、デフォルトではYUVモードになっているようで、上の01の部分がY(輝度)信号です。
V Y U Yか、
U Y V Yか、
UV Y UV Yかはまだわかりません。
Yだけを取ってグレースケールの絵にしてみました。
あまり綺麗ではありません。いままでOmniVisionのCMOSイメージセンサは何個も触ってきましたが、OmniVisionとは思えない画質です。
斜めになっているところを拡大してみると、2×2のブロックの塊がはっきりと見えます。

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





コメント
確かに他の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を調整して、ベイヤで取り込んだら結構綺麗になりましたよ。
https://nahitafu.cocolog-nifty.com/nahitafu/2010/09/ov7670-482f.html
周囲の明るさとの関係が難しいですね。明るいとホワイトバランスが悪くなります。
投稿: なひたふ | 2010.09.21 02:07