FC2カウンター FPGAの部屋 秋月電子カメラモジュールOV5642を使う2(OV5642の設定の検討)
FC2ブログ

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

FPGAの部屋

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

秋月電子カメラモジュールOV5642を使う2(OV5642の設定の検討)

秋月電子カメラモジュールOV5642を使う1”の続き。

Ultra96 用PMOD 拡張ボードの発注ができたので、OV5642 に戻ってUltra96 や ZYBO-Z7-20 で使えるようにしたい。MT9D111 がディスコンになってしまったので、容易に購入できる秋月電子で売っているOV5642 に乗り換えたいからだ。
問題は、今まで使っていた800 x 600 ピクセルの画像サイズはデフォルトではないので、大きな画像サイズを切り取るしか無いかな?ということだ。もしくは、VGAかXGA に乗り換えるか?大きな画像サイズを切り取るにしてもOV5642 のレジスタ設定で出来るようだ。

タイミングを示す。
秋月電子のOV5642 からダウンロードした。OV5642のPDFデータシートを引用する。
106、107ページの figure 6-9 と table 6-8 の一部を引用する。
OV5642_4_181203.png
OV5642_5_181203.png

figure 6-9 では、VSYNC、HREF はアクティブハイとして描かれているが、デフォルトでは、どちらもアクティブローだ。
OV5642のPDFデータシートの 105 ページの 0x4740 POLARITY CTRL 00 レジスタを引用する。
OV5642_6_181203.png

デフォルトでPCLK はネガティブ・エッジ・トリガ、VSYNC、HREF はアクティブローであることが分かる。VSYNC はアクティブローとして、 HREF はアクティブハイに設定変更しようと思う。ついでにPCLK はポジティブ・エッジ・トリガに変更しよう。つまり、0x4740 は 0x02 に設定変更しよう。figure 6-9 のタイミングチャートはVSYNC がインバートされる以外はそのままとする。(2018/12/05 : VSYNC の極性をアクティブローに変更した)

次にカメラ画像のフォーマットだが、これは、0x4300 FORMAT CONTROL 00 レジスタを設定するようだ。デフォルト値は 0xF8 で、Raw モードだが、MT9D111 と同様のRGB565 モードに設定変更する。
MT9D111 のRGB565 モードは、8ビット幅転送2回で{r[4:0],g[5:3]}, {g[2:0],b[4:0]} というようにパックされているので、0x4300 FORMAT CONTROL 00 レジスタは 0x61 に設定すれば良い。

SVGA 800 x 600 ピクセルの画像にすることを考える。
OV5642のPDFデータシートの 36 ページの figure 4-2 と table 4-2 を引用する。
OV5642_7_181203.png

インターフェースの 2014年11月号の57 〜 60 ページを参照してSVGA での設定値を求めた。

0x3800 TIMING CONTROL HS HIGH BYTE  0x00
0x3801 TIMING CONTROL HS LOW BYTE   0x50(80d)
0x3802 TIMING CONTROL VS HIGH BYTE  0x00
0x3803 TIMING CONTROL VS LOW BYTE   0x08(08d)
0x3804 TIMING HW HIGH BYTE          0x06
0x3805 TIMING HW LOW BYTE           0x40(1600d)
0x3806 TIMING VW HIGH BYTE          0x04
0x3807 TIMING VW LOW BYTE           0xB0(1200d)
0x3808 TIMING DVPHO HIGH BYTE       0x03
0x3809 TIMING DVPHO LOW BYTE        0x20(800d)
0x380A TIMING DVPVO HIGH BYTE       0x02
0x380B TIMING DVPVO LOW BYTE        0x58(600d)
0x380C TIMING HTS HIGH BYTE         0x09
0x380D TIMING HTS LOW BYTE          0x48(2376d, default)
0x380E TIMING VTS HIGH BYTE         0x06
0x380F TIMING VTS LOW BYTE          0x18(1560d, default)
0x3815                              0x2


また、0x3011 PLL CONTROL 02 はデフォルト値の 0x14 とする。
画像加算をするために 0x370D ANALOG CONTROL D は 0x06、0x3621 ANALOG CONTROL 01 は 0x09 とする。
  1. 2018年12月03日 05:10 |
  2. CMOSイメージセンサ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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