FC2カウンター FPGAの部屋 秋月電子カメラモジュールOV5642を使う12(カメラ画像が表示できた)
fc2ブログ

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

FPGAの部屋

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

秋月電子カメラモジュールOV5642を使う12(カメラ画像が表示できた)

秋月電子カメラモジュールOV5642を使う11(VGA解像度でテスト)”の続き。

前回は、インターフェース2014年11月号の設定値つまりVGA 解像度で、HREF、VSYNC が出てくるのを確認することができた。今回は、SVGA 解像度のレジスタ設定をいじってカメラ画像を表示させてみよう。

インターフェース2014年11月号の特集を読んでどの辺りがおかしいか?を探ってみた。
0x389C 〜 0x380F の水平と垂直のトータル・サイズを増やしてみた。

cam_i2c_write(axi_iic, device_addr, 0x380c, 0x0d);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);


そうすると、画像が表示されるようになった。
OV5642_54_181218.jpg

画像は表示されたがSVGA に比べてVGA くらいの画像しかないし、画像の上下が反転しているし、色味がおかしい。

最初に画像をFlip してMirror してみることにした。Flip しただけだとカメラ画像がひょうじされなくなったからだ。

cam_i2c_write(axi_iic, device_addr, 0x3818, 0xe0); // Flip, Mirror


すると、カメラ画像が反転して、縦はいっぱいに表示されたが、横が同じ幅だったので、縦に伸びてしまった。
OV5642_55_181218.jpg

結構レジスタ設定を決めるのが面倒なので、Android のOV5642のドライバを見つけたので、設定値を頂いてきて、Python で C コードに変換した。
OV5642_57_181219.png

Ultra96 のDebian の~/examples/cam_cap_ov5642/build_android に cam_cap_ov5642.cpp をコピーして、OV5642 の設定レジスタを設定するコードを Android のドライバから生成した C コードに置き換えた。
OV5642_58_181219.png

そして、コンパイルしてカメラ画像を取得した。
OV5642_56_181218.jpg

ちゃんとSVGA の画像になっていたが、色は同じようだった。また、インターフェース2014年11月号の設定では、4 ピクセルを 1 ピクセルに縮めているので、画角が広い。画角が広いほうが良いけど、どうしよう?
とりあえず、色味を合わせてみよう。
うまく行くのだったら、1280 x 720 ピクセルに設定して、真ん中を切り取って 800 x 600 ピクセルにしても良いかもしれない?

最後に、現在のHREF と VSYNC の波形を示す。
OV5642_59_181219.jpg
  1. 2018年12月19日 06:17 |
  2. CMOSイメージセンサ
  3. | トラックバック:0
  4. | コメント:4

コメント

ov5642で画面が紫色っぽくなる件

私も結構悩みましたが以下で解決したと記憶しています。
////RGB565
write_i2c(0x501e ,0x2a);//
write_i2c(0x5002 ,0xf8); ///////
write_i2c(0x501f ,0x01);
write_i2c(0x4300 ,0x61);///61rgb565////////////
http://www.csun.co.jp/SHOP/20120881201.html
ここにあるSTM32サンプルソースを参考にしました。
ちなみに私はVGAでやっています。
ご参考まで
  1. 2018/12/19(水) 14:01:26 |
  2. URL |
  3. 岩田 #-
  4. [ 編集 ]

ありがとうございました。
////RGB565
write_i2c(0x501e ,0x2a);//
write_i2c(0x5002 ,0xf8); ///////
write_i2c(0x501f ,0x01);
write_i2c(0x4300 ,0x61);///61rgb565////////////

やってみたのですが、
write_i2c(0x5002 ,0xf8); では真っ暗で
write_i2c(0x5002 ,0x78); でうまく行きました。
  1. 2018/12/19(水) 18:40:02 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

hrefとvsyncについて

初めまして。
今、ov10626でレジスタの設定をしております。

ov10626はov5642の様に、雑誌等によるレジスタの参考値などがないため本ブログを参考にさせていただいております。

今、ov10626でピクセルクロックは出力されているものの、vsyncとhrefが出力されておらず困っております。

アドバイス等いただけないでしょうか。
  1. 2020/01/27(月) 18:54:36 |
  2. URL |
  3. begginer #-
  4. [ 編集 ]

はっきり言って分かりません。
動いた実績のあるカメラしか買ってません。データが無いとなんともなりません。特にオムニビジョンはNDA結ばないと分からないレジスタがありそうです。
Linuxのドライバを探して読んでみてはいかがでしょうか?
  1. 2020/01/27(月) 22:29:20 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


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

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